|
@@ -4,6 +4,7 @@ namespace app\controller\v2;
|
|
|
|
|
|
|
|
use app\extra\basic\Base;
|
|
use app\extra\basic\Base;
|
|
|
use app\middleware\AuthMiddleware;
|
|
use app\middleware\AuthMiddleware;
|
|
|
|
|
+use app\model\saas\SaasComplaint;
|
|
|
use app\model\saas\SaasOrder;
|
|
use app\model\saas\SaasOrder;
|
|
|
use app\model\saas\SaasOrderItem;
|
|
use app\model\saas\SaasOrderItem;
|
|
|
use app\model\saas\SaasUserOpen;
|
|
use app\model\saas\SaasUserOpen;
|
|
@@ -12,6 +13,7 @@ use DI\Attribute\Inject;
|
|
|
use LinFly\Annotation\Attributes\Route\Controller;
|
|
use LinFly\Annotation\Attributes\Route\Controller;
|
|
|
use LinFly\Annotation\Attributes\Route\GetMapping;
|
|
use LinFly\Annotation\Attributes\Route\GetMapping;
|
|
|
use LinFly\Annotation\Attributes\Route\Middleware;
|
|
use LinFly\Annotation\Attributes\Route\Middleware;
|
|
|
|
|
+use LinFly\Annotation\Attributes\Route\PostMapping;
|
|
|
use support\Request;
|
|
use support\Request;
|
|
|
use support\Response;
|
|
use support\Response;
|
|
|
|
|
|
|
@@ -39,7 +41,7 @@ class Order extends Base
|
|
|
}
|
|
}
|
|
|
$param['openid'] = $request->user['openid'];
|
|
$param['openid'] = $request->user['openid'];
|
|
|
$data = $this->service->setModel()->getList($param,['product' => function($query){
|
|
$data = $this->service->setModel()->getList($param,['product' => function($query){
|
|
|
- $query->field("product_id,product_name,price");
|
|
|
|
|
|
|
+ $query->field("product_id,product_name,price,is_new,line_price");
|
|
|
},'poi' => function($query){
|
|
},'poi' => function($query){
|
|
|
$query->field("poi_id,poi_name");
|
|
$query->field("poi_id,poi_name");
|
|
|
}]);
|
|
}]);
|
|
@@ -82,7 +84,11 @@ class Order extends Base
|
|
|
"option.default" => ""
|
|
"option.default" => ""
|
|
|
],$request->method());
|
|
],$request->method());
|
|
|
if (!is_array($param)) return error($param);
|
|
if (!is_array($param)) return error($param);
|
|
|
- $order = $this->model->where("out_order_no",$param['order'])->with(['product','poi'])->append(['refund_num'])->withAttr(['refund_num' => function($data,$next){
|
|
|
|
|
|
|
+ $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();
|
|
return (new SaasOrderItem)->where(['order_sn' => $next['order_sn'],'status' => 2])->count();
|
|
|
}])->findOrEmpty();
|
|
}])->findOrEmpty();
|
|
|
if ($order->isEmpty()) return errorTrans("empty.data");
|
|
if ($order->isEmpty()) return errorTrans("empty.data");
|
|
@@ -101,4 +107,39 @@ class Order extends Base
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 订单投诉
|
|
|
|
|
+ * @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());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|