|
|
@@ -0,0 +1,126 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace app\controller\mini;
|
|
|
+
|
|
|
+use app\extra\basic\Base;
|
|
|
+use app\extra\douyin\Crypt;
|
|
|
+use app\extra\service\saas\OrderService;
|
|
|
+use app\extra\tools\CodeExtend;
|
|
|
+use app\middleware\DyMiddleware;
|
|
|
+use app\model\saas\SaasMember;
|
|
|
+use app\model\saas\SaasOrderLife;
|
|
|
+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 support\Request;
|
|
|
+use support\Response;
|
|
|
+
|
|
|
+
|
|
|
+#[Controller(prefix: "/api/dy/order"),Middleware(DyMiddleware::class)]
|
|
|
+class Order extends Base
|
|
|
+{
|
|
|
+
|
|
|
+ protected array $noNeedLogin = ["getLifeOrder"];
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 来客订单详情
|
|
|
+ * @param Request $request
|
|
|
+ * @return Response
|
|
|
+ */
|
|
|
+ #[Route(path: "life",methods: "post")]
|
|
|
+ public function getLifeOrder(Request $request): Response
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $this->_valid([
|
|
|
+ "order.require" => "请求参数错误",
|
|
|
+ "code.require" => "请求参数错误"
|
|
|
+ ],'post');
|
|
|
+ if (!is_array($param)) return error($param);
|
|
|
+ $config = sConf("dy.");
|
|
|
+ $sessionKey = (new Crypt)->config(['appid' => $config['appid'],'secret' => $config['secret']])->getSessionKey($param['code']);
|
|
|
+ if (empty($sessionKey)) return error("授权登录失败");
|
|
|
+ if (!isset($sessionKey['openid'])) return error("获取数据失败");
|
|
|
+ $openId = $sessionKey['openid'];
|
|
|
+ $userIn = [
|
|
|
+ 'open_id' => $openId,
|
|
|
+ "create_ip" => $request->getRealIp(),
|
|
|
+ "nickname" => "用户_".strtoupper(CodeExtend::random(3,5)),
|
|
|
+ "avatar" => "https://img.inmei.cc/logo.png"
|
|
|
+ ];
|
|
|
+ $user = (new SaasMember)->where("open_id",$openId)->findOrEmpty();
|
|
|
+ $userIn['id'] = $user['id'];
|
|
|
+ if ($user->isEmpty()) {
|
|
|
+ $userIn['id'] = $user->insertGetId($userIn);
|
|
|
+ }
|
|
|
+ $order = (new SaasOrderLife)->where("order_id",$param['order'])->where("open_id",$openId)->findOrEmpty();
|
|
|
+ if ($order->isEmpty()) return error("订单尚未同步");
|
|
|
+ return successTrans("success.data",[
|
|
|
+ "user" => get_object_vars((new AuthMode)->guard("member")->login($userIn)),
|
|
|
+ "order" => $order
|
|
|
+ ]);
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
+ return error($throwable->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取门店
|
|
|
+ * @param Request $request
|
|
|
+ * @return Response
|
|
|
+ */
|
|
|
+ #[Route(path: "store",methods: "post")]
|
|
|
+ public function getLocationStore(Request $request): Response
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $this->_valid([
|
|
|
+ "order.require" => "请求参数错误",
|
|
|
+ "location.require" => "请求参数错误"
|
|
|
+ ],'post');
|
|
|
+ if (!is_array($param)) return error($param);
|
|
|
+ $order = (new SaasOrderLife)->where("order_id",$param['order'])->where("open_id",$request->user['open_id'])->findOrEmpty();
|
|
|
+ if ($order->isEmpty()) return error("订单尚未同步");
|
|
|
+ $location = explode(",",$param['location']);
|
|
|
+ $resp = store_region($location[1],$location[0],2,"store_id={$order['store_id']} and agent_id={$order['agent_id']}");
|
|
|
+ foreach ($resp as $key=>$val) {
|
|
|
+ $resp[$key] = $val;
|
|
|
+ $resp[$key]['juli'] = format_money($val['juli']/1000);
|
|
|
+ }
|
|
|
+ $store = (new SaasStore)->where("store_id",$order['store_id'])->where("agent_id",$order['agent_id'])->findOrEmpty();
|
|
|
+ return success("ok",[
|
|
|
+ "data" => $resp,
|
|
|
+ "store" => $store->toArray()
|
|
|
+ ]);
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
+ return error($throwable->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 订单列表
|
|
|
+ * @param Request $request
|
|
|
+ * @return Response
|
|
|
+ */
|
|
|
+ #[Route(path: "data",methods: "get")]
|
|
|
+ public function getOrderList(Request $request): Response
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $this->_valid([
|
|
|
+ "page.default" => 1,
|
|
|
+ "size.default" => 10,
|
|
|
+ "status.default" => 0
|
|
|
+ ]);
|
|
|
+ if (!is_array($param)) return error($param);
|
|
|
+ $param['open_id'] = $request->user['open_id'];
|
|
|
+ $list = (new OrderService)->getDataListMini($param);
|
|
|
+ return successTrans(100010,pageFormat($list));
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
+ return error($throwable->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|