zory há 1 semana atrás
pai
commit
c2464e995f

+ 34 - 0
app/controller/merchant/Order.php

@@ -6,6 +6,8 @@ use app\extra\basic\Base;
 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;
@@ -24,6 +26,9 @@ class Order extends Base
     #[Inject]
     protected OrderLogService $log;
 
+    #[Inject]
+    protected SaasOrder $mode;
+
 
     #[Route(path: "list",methods: "get")]
     public function getOrderList(Request $request): Response
@@ -51,5 +56,34 @@ class Order extends Base
         }
     }
 
+    /**
+     * 批量修改订单状态
+     * @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());
+        }
+    }
 
 }

+ 12 - 11
app/controller/mini/Order.php

@@ -208,26 +208,27 @@ class Order extends Base
             }])->findOrEmpty();
             if ($order->isEmpty()) return error("订单数据异常");
             if ($order['open_id'] <> $request->user['open_id']) return error("订单数据异常");
-            if (empty($order['certificate_id'])) {
-                $orderDetail = (new DouyinOrder)->config($this->getDyConfig())->token()->getOrderDetail([$order['order_id']]);
-                if (!isset($orderDetail['data']['certificate_info_list'][0]['certificate_id'])) return error("订单数据异常");
-                $order->certificate_id = $orderDetail['data']['certificate_info_list'][0]['certificate_id'];
-                $order['certificate_id'] = $orderDetail['data']['certificate_info_list'][0]['certificate_id'];
-            }
-            $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("取消失败,请重试");
-            $order->status = 3;
             if ($param['type'] == 1) {
+                if (empty($order['certificate_id'])) {
+                    $orderDetail = (new DouyinOrder)->config($this->getDyConfig())->token()->getOrderDetail([$order['order_id']]);
+                    if (!isset($orderDetail['data']['certificate_info_list'][0]['certificate_id'])) return error("订单数据异常");
+                    $order->certificate_id = $orderDetail['data']['certificate_info_list'][0]['certificate_id'];
+                    $order['certificate_id'] = $orderDetail['data']['certificate_info_list'][0]['certificate_id'];
+                }
+                $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("取消失败,请重试");
                 $order->express_status = 3;
             } else {
                 $order->express_status = 4;
             }
+            $order->refund_apply_at = getDateFull();
+            $order->status = 3;
             $order->save();
             (new SaasOrderLife)->where("order_id",$order['order_id'])->update(['status' => 1]);
             (new SaasOrderLog)->insertGetId([
                 'order_id'  => $param['order'],
-                "title"     => "取消订单",
-                "remark"    => "用户取消核销信息"
+                "title"     => "取消预约/服务",
+                "remark"    => ($param['type']==1?'用户取消预约,未发货自动同意解锁':'该订单已发货,需审核通过后才可解锁退款按钮')
             ]);
             return successTrans("success.data",$order->toArray());
         } catch (\Throwable $throwable) {

+ 1 - 1
app/extra/service/saas/LifeService.php

@@ -39,7 +39,7 @@ class LifeService extends Service
     protected function searchFilter(array $param = []): array
     {
         $filter = [];
-        !empty($param['agent']) && $filter[] = ["agent_id", '=', $param['shop']];
+        !empty($param['agent']) && $filter[] = ["agent_id", '=', $param['agent']];
         !empty($param['open_id']) && $filter[] = ["open_id", '=', $param['open_id']];
         !empty($param['statusLt']) && $filter[] = ["status", '=', ($param['statusLt']-1)];
         !empty($param['status']) && $filter[] = ["status", '=', $param['status']];

+ 1 - 1
app/extra/service/saas/OrderLogService.php

@@ -17,7 +17,7 @@ class OrderLogService extends Service
     protected function searchFilter(array $param = []): array
     {
         $filter = [];
-        !empty($param['agent']) && $filter[] = ["agent_id", '=', $param['shop']];
+        !empty($param['agent']) && $filter[] = ["agent_id", '=', $param['agent']];
         !empty($param['open_id']) && $filter[] = ["open_id", '=', $param['open_id']];
         !empty($param['statusLt']) && $filter[] = ["status", '=', ($param['statusLt']-1)];
         !empty($param['status']) && $filter[] = ["status", '=', $param['status']];

+ 1 - 1
app/extra/service/saas/OrderService.php

@@ -44,7 +44,7 @@ class OrderService extends Service
     protected function searchFilter(array $param = []): array
     {
         $filter = [];
-        !empty($param['agent']) && $filter[] = ["agent_id", '=', $param['shop']];
+        !empty($param['agent']) && $filter[] = ["agent_id", '=', $param['agent']];
         !empty($param['open_id']) && $filter[] = ["open_id", '=', $param['open_id']];
         !empty($param['statusLt']) && $filter[] = ["status", '=', ($param['statusLt']-1)];
         !empty($param['status']) && $filter[] = ["status", '=', $param['status']];