| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- <?php
- namespace app\controller\merchant;
- use app\extra\basic\Base;
- use app\extra\douyin\Order as DouyinOrder;
- use app\extra\service\saas\OrderLogService;
- use app\extra\service\saas\OrderService;
- use app\middleware\AuthMiddleware;
- use app\model\saas\SaasOrder;
- use app\model\saas\SaasOrderLog;
- use DI\Attribute\Inject;
- use LinFly\Annotation\Route\Controller;
- use LinFly\Annotation\Route\Route;
- use support\Request;
- use support\Response;
- use Webman\Annotation\Middleware;
- #[Controller(prefix: "/api/merchant/order"),Middleware(AuthMiddleware::class)]
- class Order extends Base
- {
- #[Inject]
- protected OrderService $service;
- #[Inject]
- protected OrderLogService $log;
- #[Inject]
- protected SaasOrder $mode;
- #[Route(path: "list",methods: "get")]
- public function getOrderList(Request $request): Response
- {
- try {
- $param = $request->get();
- $param['agent'] = $request->user['agent_id'];
- $list = $this->service->getList($param);
- return successTrans("success.data",pageFormat($list),200);
- } catch (\Throwable $throwable) {
- return error($throwable->getMessage());
- }
- }
- #[Route(path: "log",methods: "get")]
- public function getOrderLog(Request $request): Response
- {
- try {
- $param = $request->get();
- $list = $this->log->getList($param);
- return successTrans("success.data",$list,200);
- } catch (\Throwable $throwable) {
- return error($throwable->getMessage());
- }
- }
- /**
- * 批量修改订单状态
- * @param Request $request
- * @return Response
- */
- #[Route(path: "batch",methods: "post")]
- public function batchSetState(Request $request): Response
- {
- try {
- $param = $this->_valid([
- "order.require" => trans("empty.require")
- ],"post");
- if (!is_array($param)) return error($param);
- $state = $this->mode->where("order_sn","in",$param['order'])->save(['express_status' => 1,'status' => 2]);
- $log = [];
- foreach ($param['order'] as $key=>$val) {
- $log[$key] = [
- 'order_id' => $val,
- "title" => "手动发货",
- "remark" => "管理员手动完成发货,订单进入待核销"
- ];
- }
- (new SaasOrderLog)->insertAll($log);
- if (!$state) return errorTrans("error.data");
- return successTrans("success.data");
- } catch (\Throwable $throwable) {
- return error($throwable->getMessage());
- }
- }
- /**
- * 同意解锁申请
- * @param Request $request
- * @return Response
- */
- #[Route(path: "agree",methods: "post")]
- public function setOrderAgree(Request $request): Response
- {
- try {
- $param = $this->_valid([
- "order.require" => trans("empty.require")
- ],"post");
- if (!is_array($param)) return error($param);
- $order = $this->mode->where("order_sn",$param['order'])->with(['goods' => function($query){
- $query->field("out_id,product_name,product_img,product_price");
- },'poi' => function ($query) {
- $query->field("poi_id,poi_name,poi_address");
- }])->findOrEmpty();
- if ($order->isEmpty()) return error("订单数据异常");
- $resp = (new DouyinOrder)->config($this->getDyConfig())->token()->orderLock(1,$order['order_id'],$order['certificate_id'],$order['lock_key']);
- if ($resp['err_no'] <> 0) return error($resp['err_msg']);
- $order->status = 3;
- $order->express_status = 3;
- $order->refund_at = getDateFull();
- $state = $order->save();
- (new SaasOrderLog)->insertGetId([
- 'order_id' => $param['order'],
- "title" => "同意解锁申请",
- "remark" => "管理员手动同意解锁申请,用户可以申请退款"
- ]);
- if (!$state) return errorTrans("error.data");
- return successTrans("success.data");
- } catch (\Throwable $throwable) {
- return error($throwable->getMessage());
- }
- }
- /**
- * 拒绝解锁申请
- * @param Request $request
- * @return Response
- */
- #[Route(path: "refuse",methods: "post")]
- public function setOrderRefuse(Request $request): Response
- {
- try {
- $param = $this->_valid([
- "order.require" => trans("empty.require")
- ],"post");
- if (!is_array($param)) return error($param);
- $order = $this->mode->where("order_sn",$param['order'])->findOrEmpty();
- if ($order->isEmpty()) return error("订单数据异常");
- $order->status = 3;
- $order->express_status = 1;
- $order->refund_at = getDateFull();
- $state = $order->save();
- (new SaasOrderLog)->insertGetId([
- 'order_id' => $param['order'],
- "title" => "拒绝解锁申请",
- "remark" => "管理员手动拒绝解锁申请,用户还不能申请退款"
- ]);
- if (!$state) return errorTrans("error.data");
- return successTrans("success.data");
- } catch (\Throwable $throwable) {
- return error($throwable->getMessage());
- }
- }
- }
|