Order.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace app\controller\mini;
  3. use app\extra\basic\Base;
  4. use app\extra\douyin\Crypt;
  5. use app\extra\service\saas\OrderService;
  6. use app\extra\tools\CodeExtend;
  7. use app\middleware\DyMiddleware;
  8. use app\model\saas\SaasMember;
  9. use app\model\saas\SaasOrderLife;
  10. use app\model\saas\SaasStore;
  11. use LinFly\Annotation\Route\Controller;
  12. use LinFly\Annotation\Route\Middleware;
  13. use LinFly\Annotation\Route\Route;
  14. use Shopwwi\WebmanAuth\Auth as AuthMode;
  15. use support\Request;
  16. use support\Response;
  17. #[Controller(prefix: "/api/dy/order"),Middleware(DyMiddleware::class)]
  18. class Order extends Base
  19. {
  20. protected array $noNeedLogin = ["getLifeOrder"];
  21. /**
  22. * 来客订单详情
  23. * @param Request $request
  24. * @return Response
  25. */
  26. #[Route(path: "life",methods: "post")]
  27. public function getLifeOrder(Request $request): Response
  28. {
  29. try {
  30. $param = $this->_valid([
  31. "order.require" => "请求参数错误",
  32. "code.require" => "请求参数错误"
  33. ],'post');
  34. if (!is_array($param)) return error($param);
  35. $config = sConf("dy.");
  36. $sessionKey = (new Crypt)->config(['appid' => $config['appid'],'secret' => $config['secret']])->getSessionKey($param['code']);
  37. if (empty($sessionKey)) return error("授权登录失败");
  38. if (!isset($sessionKey['openid'])) return error("获取数据失败");
  39. $openId = $sessionKey['openid'];
  40. $userIn = [
  41. 'open_id' => $openId,
  42. "create_ip" => $request->getRealIp(),
  43. "nickname" => "用户_".strtoupper(CodeExtend::random(3,5)),
  44. "avatar" => "https://img.inmei.cc/logo.png"
  45. ];
  46. $user = (new SaasMember)->where("open_id",$openId)->findOrEmpty();
  47. $userIn['id'] = $user['id'];
  48. if ($user->isEmpty()) {
  49. $userIn['id'] = $user->insertGetId($userIn);
  50. }
  51. $order = (new SaasOrderLife)->where("order_id",$param['order'])->where("open_id",$openId)->findOrEmpty();
  52. if ($order->isEmpty()) return error("订单尚未同步");
  53. return successTrans("success.data",[
  54. "user" => get_object_vars((new AuthMode)->guard("member")->login($userIn)),
  55. "order" => $order
  56. ]);
  57. } catch (\Throwable $throwable) {
  58. return error($throwable->getMessage());
  59. }
  60. }
  61. /**
  62. * 获取门店
  63. * @param Request $request
  64. * @return Response
  65. */
  66. #[Route(path: "store",methods: "post")]
  67. public function getLocationStore(Request $request): Response
  68. {
  69. try {
  70. $param = $this->_valid([
  71. "order.require" => "请求参数错误",
  72. "location.require" => "请求参数错误"
  73. ],'post');
  74. if (!is_array($param)) return error($param);
  75. $order = (new SaasOrderLife)->where("order_id",$param['order'])->where("open_id",$request->user['open_id'])->findOrEmpty();
  76. if ($order->isEmpty()) return error("订单尚未同步");
  77. $location = explode(",",$param['location']);
  78. $resp = store_region($location[1],$location[0],2,"store_id={$order['store_id']} and agent_id={$order['agent_id']}");
  79. foreach ($resp as $key=>$val) {
  80. $resp[$key] = $val;
  81. $resp[$key]['juli'] = format_money($val['juli']/1000);
  82. }
  83. $store = (new SaasStore)->where("store_id",$order['store_id'])->where("agent_id",$order['agent_id'])->findOrEmpty();
  84. return success("ok",[
  85. "data" => $resp,
  86. "store" => $store->toArray()
  87. ]);
  88. } catch (\Throwable $throwable) {
  89. return error($throwable->getMessage());
  90. }
  91. }
  92. /**
  93. * 订单列表
  94. * @param Request $request
  95. * @return Response
  96. */
  97. #[Route(path: "data",methods: "get")]
  98. public function getOrderList(Request $request): Response
  99. {
  100. try {
  101. $param = $this->_valid([
  102. "page.default" => 1,
  103. "size.default" => 10,
  104. "status.default" => 0
  105. ]);
  106. if (!is_array($param)) return error($param);
  107. $param['open_id'] = $request->user['open_id'];
  108. $list = (new OrderService)->getDataListMini($param);
  109. return successTrans(100010,pageFormat($list));
  110. } catch (\Throwable $throwable) {
  111. return error($throwable->getMessage());
  112. }
  113. }
  114. }