all(); if (!empty($param['size'])) { $param['pageSize'] = $param['size']; } if (empty($param['status'])) { $param['statusGt'] = 1; } $param['openid'] = $request->user['openid']; $data = $this->service->setModel()->getList($param,['product' => function($query){ $query->field("product_id,product_name,price,is_new,line_price"); },'poi' => function($query){ $query->field("poi_id,poi_name"); }]); return successTrans("success.data",pageFormat($data)); } catch (\Throwable $th) { return error($th->getMessage()); } } #[GetMapping('chat')] public function getDataListChat(Request $request): Response { try { $param = $request->all(); if (!empty($param['size'])) { $param['pageSize'] = $param['size']; } if (empty($param['status'])) { $param['statusGt'] = 1; } // $param['openid'] = $request->user['openid']; $data = $this->service->setModel()->getList($param,['product' => function($query){ $query->field("product_id,product_name,price"); },'poi' => function($query){ $query->field("poi_id,poi_name"); }]); return successTrans("success.data",pageFormat($data)); } catch (\Throwable $th) { return error($th->getMessage()); } } #[GetMapping('detail')] public function getDataDetail(Request $request): Response { try { $param = $this->_valid([ "order.require" => trans("empty.require"), "option.default" => "" ],$request->method()); if (!is_array($param)) return error($param); $order = $this->model->where("out_order_no",$param['order'])->with(['product' => function($query){ $query->field("product_id,product_name,price,is_new,line_price"); },'poi' => function($query){ $query->field("poi_id,poi_name,poi_address,poi_logo,longitude,latitude,poi_city,service_mobile,start_at,end_at"); }])->append(['refund_num'])->withAttr(['refund_num' => function($data,$next){ return (new SaasOrderItem)->where(['order_sn' => $next['order_sn'],'status' => 2])->count(); }])->findOrEmpty(); if ($order->isEmpty()) return errorTrans("empty.data"); $order['end_time'] = timeDiff(strtotime("+30 minutes",strtotime($order['create_at'])),time()); $order['mobile'] = $order['mobile']?hide_mobile($order['mobile']):'-'; $user = (new SaasUserOpen)->where(['openid' => $request->user['openid']])->findOrEmpty(); if ($user->isEmpty()) return error("数据错误"); $userState = 1; if (empty($user['avatar'])) { $userState = 0; } $order['user'] = $userState; return $this->encode("ok",$order->toArray()); } catch (\Throwable $th) { return error($th->getMessage()); } } /** * 订单投诉 * @param Request $request * @return Response */ #[PostMapping("complaint")] public function setOrderComplaint(Request $request): Response { try { $param = $this->_valid([ "content.require" => trans("empty.require"), "mobile.default" => "", "order.require" => trans("empty.require"), "text.require" => trans("empty.require"), ],$request->method()); if (!is_array($param)) return error($param); $order = (new SaasOrder)->where("out_order_no",$param['order'])->findOrEmpty(); if ($order->isEmpty()) return error("该笔交易不存在"); if ($order['openid'] <> $request->user['openid']) return error("非法操作"); $state = (new SaasComplaint)->insertGetId([ "openid" => $request->user['openid'], "poi_id" => $order['poi_id'], "content" => $param['content'], "question" => $param['text'], "order_sn" => $param['order'], "mobile" => $param['mobile']??$order['mobile'], ]); if (!$state) return error("提交失败"); return success("提交成功,请耐心等待"); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } #[GetMapping("goods")] public function getOrderGoods(Request $request): Response { try { $param = $this->_valid([ "order.require" => trans("empty.require"), "page.default" => 0, "size.require" => 10, ],$request->method()); if (!is_array($param)) return error($param); $order = (new SaasOrder)->where("out_order_no",$param['order'])->findOrEmpty(); if ($order->isEmpty()) return error("该笔交易不存在"); // if ($order['openid'] <> $request->user['openid']) return error("非法操作"); $goods = (new SaasGoodsOff)->where("goods_id",$order['life_goods_id'])->append(['check','number'])->withAttr(['check' => function(){ return false; },'number' => function () { return 1; }])->paginate([ "list_rows" => $param['size'], "page" => $param['page'] ]); return successTrans("success.data",$goods->toArray()); } catch (\Throwable $th) { return error($th->getMessage()); } } /** * 提交核销信息-状态变为 进行中 * @param Request $request * @return Response */ #[PostMapping("done")] public function setOrderAddress(Request $request): Response { try { $param = $this->_valid([ "city.require" => trans("empty.require"), "mobile.require" => trans("empty.require"), "mobile.mobile" => trans("error.mobile"), "address.require" => trans("empty.require"), "nickname.require" => trans("empty.require"), "order.require" => trans("empty.require"), "goods.require" => trans("empty.require"), ],$request->method()); if (!is_array($param)) return error($param); $cityJson = json_decode($param['city'],true); $goodsJson = json_decode($param['goods'],true); $param['city_text'] = $cityJson['hide']; $param['city_code'] = json_encode($cityJson['list']); $param['goods'] = $goodsJson[0]['id']; $param['openid'] = $request->user['openid']; $order = (new SaasOrder)->where("out_order_no",$param["order"])->with(['poi'])->findOrEmpty(); if ($order->isEmpty()) return error("关联订单错误"); if ($order['openid'] <> $request->user['openid']) return error("关联订单错误"); if ($order['status'] <> 1) return error("关联订单错误"); $address = (new SaasOrderAddress)->where(['openid' => $request->user['openid'],'order_sn' => $param['order']])->findOrEmpty(); if (!$address->isEmpty()) return error("请勿重复提交"); $address->setAutoData($param); $order->status = 7; // 7进行中 $order->express_status = 1; $order->save(); return success("提交成功"); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } /** * 发货后申请退款 * Array * ( * [order] => AL202608215835460704413 * [msg] => 计划有变,暂时不需要了 * [type] => alipay * [content] => {"truename":"测试","account":"13213442334"} * [content] => {"truename":"测试","bank":"13213442334","name":"中国银行xxx支行"} * ) * @param Request $request * @return Response */ #[PostMapping("refund")] public function setOrderRefund(Request $request): Response { try { print_r($request->all()); return error("error"); } catch (\Throwable $throwable) { return error($throwable->getMessage()); } } }