更新若干功能

This commit is contained in:
2026-08-20 19:16:49 +08:00
parent 72bc6502eb
commit 4ddf5e3c5f
48 changed files with 1908 additions and 18 deletions

View File

@@ -0,0 +1,38 @@
<?php
namespace App\Http\Controllers\Api;
use App\BaseApp\BaseController;
use App\Service\business\AfterSaleService;
use Illuminate\Http\JsonResponse;
/**
* 后台售后
*/
class AfterSaleController extends BaseController
{
protected array $exceptRoute = ['option', 'create'];
public function __construct()
{
parent::__construct();
$this->service = AfterSaleService::getInstance();
}
/**
* 审核售后
* @Method POST
*/
public function audit(): JsonResponse
{
$pass = (int) request()->post('status', 1) === 1;
return jok(
$this->service->audit(
(int) request()->post('id', 0),
$pass,
(string) request()->post('admin_remark', '')
),
$pass ? '已通过' : '已拒绝'
);
}
}

View File

@@ -18,7 +18,7 @@ class CatalogueController extends BaseController
$this->service = CatalogueService::getInstance();
$this->insertField = ['title', 'category_id', 'cover', 'identifier'];
$this->updateField = ['id', 'title', 'category_id', 'cover', 'identifier'];
$this->notRequest = ['alias', 'pdf', 'price', 'status'];
$this->notRequest = ['alias', 'pdf', 'video', 'price', 'status'];
}
/**
@@ -32,4 +32,27 @@ class CatalogueController extends BaseController
$params = $this->checkRequiredFields(request()->post());
return jok($this->service->status($params['id'], $params['status']), '操作成功');
}
/**
* 导出商品表(结构化数据,前端 ExcelJS xlsx
* @Method GET
*/
public function export(): JsonResponse
{
return jok($this->service->exportExcel());
}
/**
* 导入商品表:前端已把 xlsx 拆成 rows
* @Method POST
*/
public function import(): JsonResponse
{
$rows = request()->post('rows', []);
$priceSheets = request()->post('price_sheets', []);
return jok($this->service->importRows(
is_array($rows) ? $rows : [],
is_array($priceSheets) ? $priceSheets : [],
), '导入完成');
}
}

View File

@@ -32,4 +32,23 @@ class FactoryInfoController extends BaseController
$params = $this->checkRequiredFields(request()->post());
return jok($this->service->status($params['id'], $params['status']), '操作成功');
}
/**
* 导出工厂表(结构化数据,前端 ExcelJS xlsx
* @Method GET
*/
public function export(): JsonResponse
{
return jok($this->service->exportExcel());
}
/**
* 导入工厂表:前端已把 xlsx 拆成 rows
* @Method POST
*/
public function import(): JsonResponse
{
$rows = request()->post('rows', []);
return jok($this->service->importRows(is_array($rows) ? $rows : []), '导入完成');
}
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\Http\Controllers\Api;
use App\BaseApp\BaseController;
use App\Service\business\FeedbackService;
use Illuminate\Http\JsonResponse;
/**
* 后台用户反馈
*/
class FeedbackController extends BaseController
{
protected array $exceptRoute = ['option', 'create'];
public function __construct()
{
parent::__construct();
$this->service = FeedbackService::getInstance();
$this->updateField = ['id', 'reply'];
}
/**
* 回复
* @Method POST
*/
public function reply(): JsonResponse
{
return jok(
$this->service->reply((int) request()->post('id', 0), (string) request()->post('reply', '')),
'已回复'
);
}
}

View File

@@ -58,4 +58,13 @@ class ListController extends BaseController
{
return jok($this->service->deleteItem(request()->post('ids', [])), '删除成功');
}
/**
* 导出清单报价(结构化数据 + 分享文本)
* @Method GET
*/
public function exportQuote(): JsonResponse
{
return jok($this->service->exportQuote((int) request()->get('id', 0)));
}
}

View File

@@ -18,7 +18,7 @@ class PriceSheetController extends BaseController
$this->service = PriceSheetService::getInstance();
$this->insertField = ['catalogue_id'];
$this->updateField = ['id'];
$this->notRequest = ['specification', 'dimension', 'routine', 'rows', 'status'];
$this->notRequest = ['specification', 'dimension', 'routine', 'stock', 'rows', 'status'];
}
/**

View File

@@ -19,7 +19,8 @@ class WxAppController extends BaseController
$this->updateField = ['id'];
$this->notRequest = [
'app_secret', 'mch_id', 'mch_key', 'mch_serial_no', 'mch_private_key',
'platform_public_key', 'notify_url', 'template_code', 'package_enabled', 'remark', 'name', 'app_id',
'platform_public_key', 'notify_url', 'template_code', 'package_enabled',
'subscribe_pay_tpl', 'subscribe_ship_tpl', 'remark', 'name', 'app_id',
];
}

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Http\Controllers\Wx;
use App\BaseApp\BaseController;
use App\Service\wx\WxAddressService;
use Illuminate\Http\JsonResponse;
/**
* 小程序收货地址
*/
class AddressController extends BaseController
{
protected array $exceptRoute = ['option'];
public function __construct()
{
parent::__construct();
$this->service = WxAddressService::getInstance();
}
/**
* 默认地址
* @Method GET
*/
public function defaultOne(): JsonResponse
{
return jok($this->service->defaultOne());
}
/**
* 设为默认
* @Method POST
*/
public function setDefault(): JsonResponse
{
return jok($this->service->setDefault((int) request()->post('id', 0)), '已设为默认');
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Controllers\Wx;
use App\BaseApp\BaseController;
use App\Service\wx\WxAfterSaleService;
use Illuminate\Http\JsonResponse;
/**
* 小程序售后
*/
class AfterSaleController extends BaseController
{
protected array $exceptRoute = ['option', 'detail', 'update', 'delete'];
public function __construct()
{
parent::__construct();
$this->service = WxAfterSaleService::getInstance();
}
/**
* 申请售后
* @Method POST
*/
public function create(): JsonResponse
{
return jok($this->service->create(request()->post()), '已提交');
}
}

View File

@@ -0,0 +1,39 @@
<?php
namespace App\Http\Controllers\Wx;
use App\BaseApp\BaseController;
use App\Service\wx\WxColorcardService;
use Illuminate\Http\JsonResponse;
/**
* 小程序色卡(免登录)
*/
class ColorcardController extends BaseController
{
protected array $exceptRoute = ['option', 'create', 'update', 'delete'];
public function __construct()
{
parent::__construct();
$this->service = WxColorcardService::getInstance();
}
/**
* 色卡分类
* @Method GET
*/
public function classList(): JsonResponse
{
return jok($this->service->classList());
}
/**
* 色卡公司
* @Method GET
*/
public function companyList(): JsonResponse
{
return jok($this->service->companyList());
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Controllers\Wx;
use App\BaseApp\BaseController;
use App\Service\wx\WxFactoryService;
use Illuminate\Http\JsonResponse;
/**
* 小程序工厂(免登录)
*/
class FactoryController extends BaseController
{
protected array $exceptRoute = ['option', 'create', 'update', 'delete'];
public function __construct()
{
parent::__construct();
$this->service = WxFactoryService::getInstance();
}
/**
* 工厂分类
* @Method GET
*/
public function classList(): JsonResponse
{
return jok($this->service->classList());
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Controllers\Wx;
use App\BaseApp\BaseController;
use App\Service\wx\WxFavoriteService;
use Illuminate\Http\JsonResponse;
/**
* 小程序收藏
*/
class FavoriteController extends BaseController
{
protected array $exceptRoute = ['option', 'detail', 'create', 'update', 'delete'];
public function __construct()
{
parent::__construct();
$this->service = WxFavoriteService::getInstance();
}
/**
* 切换收藏
* @Method POST
*/
public function toggle(): JsonResponse
{
return jok($this->service->toggle((int) request()->post('catalogue_id', 0)));
}
}

View File

@@ -0,0 +1,30 @@
<?php
namespace App\Http\Controllers\Wx;
use App\BaseApp\BaseController;
use App\Service\wx\WxFeedbackService;
use Illuminate\Http\JsonResponse;
/**
* 小程序反馈
*/
class FeedbackController extends BaseController
{
protected array $exceptRoute = ['option', 'detail', 'update', 'delete'];
public function __construct()
{
parent::__construct();
$this->service = WxFeedbackService::getInstance();
}
/**
* 提交反馈
* @Method POST
*/
public function create(): JsonResponse
{
return jok($this->service->create(request()->post()), '已提交');
}
}

View File

@@ -93,4 +93,13 @@ class ListController extends BaseController
{
return jok($this->service->updateItem(request()->post()), '保存成功');
}
/**
* 导出清单报价
* @Method GET
*/
public function exportQuote(): JsonResponse
{
return jok($this->service->exportQuote((int) request()->get('id', 0)));
}
}

View File

@@ -48,4 +48,13 @@ class UserController extends BaseController
'保存成功'
);
}
/**
* 已绑定企业详情
* @Method GET
*/
public function enterprise(): JsonResponse
{
return jok($this->service->enterprise());
}
}