|
|
@@ -6,13 +6,18 @@ use app\extra\basic\Base;
|
|
|
use app\extra\douyin\Crypt;
|
|
|
use app\extra\tools\CodeExtend;
|
|
|
use app\middleware\DyMiddleware;
|
|
|
+use app\model\saas\SaasAddress;
|
|
|
+use app\model\saas\SaasGoods;
|
|
|
use app\model\saas\SaasMember;
|
|
|
+use app\model\saas\SaasOrder;
|
|
|
use app\model\saas\SaasOrderLife;
|
|
|
+use app\model\saas\SaasOrderLog;
|
|
|
use app\model\saas\SaasStore;
|
|
|
use LinFly\Annotation\Route\Controller;
|
|
|
use LinFly\Annotation\Route\Middleware;
|
|
|
use LinFly\Annotation\Route\Route;
|
|
|
use Shopwwi\WebmanAuth\Auth as AuthMode;
|
|
|
+use app\extra\douyin\Order as DouyinOrder;
|
|
|
use support\Request;
|
|
|
use support\Response;
|
|
|
|
|
|
@@ -33,15 +38,70 @@ class Confirm extends Base
|
|
|
if ($order->isEmpty()) return error("订单尚未同步");
|
|
|
$store = (new SaasStore)->where("store_id",$order['store_id'])->where("agent_id",$order['agent_id'])->field("service_mobile,service_type,service_at_start,service_at_end")->findOrEmpty();
|
|
|
$time = [];
|
|
|
+ $weekdays_cn = ['日', '一', '二', '三', '四', '五', '六'];
|
|
|
for ($i = 0;$i <= 15;$i ++)
|
|
|
{
|
|
|
+ $weekNum = date("w",strtotime("+{$i} day"));
|
|
|
$time[$i]['day'] = date("m月d日",strtotime("+{$i} day"));
|
|
|
+ $time[$i]['full'] = date("Y-m-d",strtotime("+{$i} day"));
|
|
|
+ $time[$i]['week'] = "星期".$weekdays_cn[$weekNum];
|
|
|
$time[$i]['children'] = getHourlyTimeSlots();
|
|
|
}
|
|
|
- return successTrans("success.data",compact("order","store",'time'));
|
|
|
+ $specs = [];
|
|
|
+ $goods = (new SaasGoods)->where("out_id",$order['out_id'])->findOrEmpty();
|
|
|
+ if (!$goods->isEmpty()) $specs = $goods['data_specs'];
|
|
|
+ return successTrans("success.data",compact("order","store",'time','specs'));
|
|
|
} catch (\Throwable $throwable) {
|
|
|
return error($throwable->getMessage());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ #[Route(path: "submit",methods: "post")]
|
|
|
+ public function submitOrder(Request $request): Response
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $request->post();
|
|
|
+ $orderLife = (new SaasOrderLife)->where("order_id",$param['order'])->with(['store','agent'])->findOrEmpty();
|
|
|
+ if ($orderLife->isEmpty()) return errorTrans("empty.data");
|
|
|
+ $order = (new SaasOrder)->where("order_id",$param['order'])->where("status","in",[1,2,4])->findOrEmpty();
|
|
|
+ if (!$order->isEmpty()) return error("请勿重复提交");
|
|
|
+ $param['service_type'] = $orderLife['store']['service_type'];
|
|
|
+ $address = !empty($param['address']) ? json_decode($param['address'],true): [];
|
|
|
+ $param['order_sn'] = CodeExtend::random(18,1,date("md"));
|
|
|
+ $param['order_id'] = $param['order'];
|
|
|
+ $param['open_id'] = $request->user['open_id'];
|
|
|
+ $param['uuid'] = $request->user['id'];
|
|
|
+ $param['store_id'] = $orderLife['store_id'];
|
|
|
+ $param['agent_id'] = $orderLife['agent_id'];
|
|
|
+ $param['product_id'] = $orderLife['out_id'];
|
|
|
+ $param['product_name'] = $orderLife['product_name'];
|
|
|
+ $param['status'] = 2;
|
|
|
+ $param['username'] = $address['username']??'';
|
|
|
+ $param['mobile'] = $address['mobile']??'';
|
|
|
+ $param['region'] = $address['region']??'';
|
|
|
+ $param['address'] = $address['address']??'';
|
|
|
+ $orderDetail = (new DouyinOrder)->config($this->getDyConfig())->token()->getOrderDetail([$param['order']]);
|
|
|
+ if (!isset($orderDetail['data']['certificate_info_list'][0]['certificate_id'])) return error("订单数据异常");
|
|
|
+ $param['certificate_id'] = $orderDetail['data']['certificate_info_list'][0]['certificate_id'];
|
|
|
+ $param['lock_key'] = strtoupper(CodeExtend::random(18,3));
|
|
|
+ // 锁码
|
|
|
+ $endTime = strtotime("+{$orderLife['store']['code_time']} day");
|
|
|
+ $resp = (new DouyinOrder)->config($this->getDyConfig())->token()->orderLock(2,$param['order'],$param['certificate_id'],$param['lock_key'],time(),$endTime);
|
|
|
+ if ($resp['err_no'] <> 0) return error("订单数据异常");
|
|
|
+ $orderLife->status = 2;
|
|
|
+ $orderLife->save();
|
|
|
+ $state = $order->setAutoData($param);
|
|
|
+ (new SaasOrderLog)->insertGetId([
|
|
|
+ 'order_id' => $param['order_sn'],
|
|
|
+ "title" => "提交核销",
|
|
|
+ "remark" => "用户提交核销信息"
|
|
|
+ ]);
|
|
|
+ if (!$state) return error("处理失败");
|
|
|
+ return success("提交成功");
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
+ return error($throwable->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
}
|