|
@@ -11,6 +11,7 @@ use app\model\saas\SaasOrder;
|
|
|
use app\model\saas\SaasOrderAddress;
|
|
use app\model\saas\SaasOrderAddress;
|
|
|
use app\model\saas\SaasOrderExpress;
|
|
use app\model\saas\SaasOrderExpress;
|
|
|
use app\model\saas\SaasOrderItem;
|
|
use app\model\saas\SaasOrderItem;
|
|
|
|
|
+use app\model\saas\SaasOrderRefund;
|
|
|
use app\model\saas\SaasOrderVerify;
|
|
use app\model\saas\SaasOrderVerify;
|
|
|
use app\model\saas\SaasStore;
|
|
use app\model\saas\SaasStore;
|
|
|
use app\model\saas\SaasUserOpen;
|
|
use app\model\saas\SaasUserOpen;
|
|
@@ -45,7 +46,7 @@ class Order extends Base
|
|
|
{
|
|
{
|
|
|
try {
|
|
try {
|
|
|
$param = $request->all();
|
|
$param = $request->all();
|
|
|
-// $param['poi_id'] = $request->user['store_id'];
|
|
|
|
|
|
|
+ $param['poi_id'] = $request->user['store_id'];
|
|
|
$productType = $this->goodsService->productType();
|
|
$productType = $this->goodsService->productType();
|
|
|
$data = $this->service->setModel()->getList($param,['product' => function($query) use($productType){
|
|
$data = $this->service->setModel()->getList($param,['product' => function($query) use($productType){
|
|
|
$query->field("product_id,product_name,product_type,is_new,price,line_price")->append(['types'])->withAttr(['types' => function($query,$resp) use($productType){
|
|
$query->field("product_id,product_name,product_type,is_new,price,line_price")->append(['types'])->withAttr(['types' => function($query,$resp) use($productType){
|
|
@@ -83,7 +84,7 @@ class Order extends Base
|
|
|
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','user','address' => function($query){
|
|
$order = $this->model->where("out_order_no",$param['order'])->with(['product','poi','user','address' => function($query){
|
|
|
$query->with(['goods']);
|
|
$query->with(['goods']);
|
|
|
- },'express'])->findOrEmpty();
|
|
|
|
|
|
|
+ },'express','refund'])->findOrEmpty();
|
|
|
if ($order->isEmpty()) return errorTrans("empty.data");
|
|
if ($order->isEmpty()) return errorTrans("empty.data");
|
|
|
if ($order['poi_id'] <> $request->user['store_id'] && $request->user['is_super'] == 0) return errorTrans("empty.data");
|
|
if ($order['poi_id'] <> $request->user['store_id'] && $request->user['is_super'] == 0) return errorTrans("empty.data");
|
|
|
$order['end_time'] = timeDiff(strtotime("+30 minutes",strtotime($order['create_at'])),time());
|
|
$order['end_time'] = timeDiff(strtotime("+30 minutes",strtotime($order['create_at'])),time());
|
|
@@ -353,7 +354,7 @@ class Order extends Base
|
|
|
if (!is_array($param)) return error($param);
|
|
if (!is_array($param)) return error($param);
|
|
|
$order = (new SaasOrder)->where("out_order_no",$param["order"])->with(['poi'])->findOrEmpty();
|
|
$order = (new SaasOrder)->where("out_order_no",$param["order"])->with(['poi'])->findOrEmpty();
|
|
|
if ($order->isEmpty()) return error("关联订单错误");
|
|
if ($order->isEmpty()) return error("关联订单错误");
|
|
|
- if (!in_array($order['status'],[1,6,7])) return error("关联订单错误");
|
|
|
|
|
|
|
+ if (!in_array($order['status'],[1,6,7,8])) return error("关联订单错误");
|
|
|
if (empty($order['item_order_id'])) return error("订单数据不完整");
|
|
if (empty($order['item_order_id'])) return error("订单数据不完整");
|
|
|
$data = (new OrderData)->config([
|
|
$data = (new OrderData)->config([
|
|
|
"appid" => sConf("wechat.mini_appid"),
|
|
"appid" => sConf("wechat.mini_appid"),
|
|
@@ -427,7 +428,43 @@ class Order extends Base
|
|
|
} catch (\Throwable $throwable) {
|
|
} catch (\Throwable $throwable) {
|
|
|
return error($throwable->getMessage());
|
|
return error($throwable->getMessage());
|
|
|
}
|
|
}
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 核销后退款申请审核
|
|
|
|
|
+ * @param Request $request
|
|
|
|
|
+ * @return Response
|
|
|
|
|
+ */
|
|
|
|
|
+ #[PostMapping("audit")]
|
|
|
|
|
+ public function auditRefund(Request $request): Response
|
|
|
|
|
+ {
|
|
|
|
|
+ try {
|
|
|
|
|
+ $param = $this->_valid([
|
|
|
|
|
+ "order.require" => trans("empty.require"),
|
|
|
|
|
+ "status.require" => trans("empty.require"),
|
|
|
|
|
+ "sign.default" => "",
|
|
|
|
|
+ "reason.default" => ""
|
|
|
|
|
+ ],$request->method());
|
|
|
|
|
+ if (!is_array($param)) return error($param);
|
|
|
|
|
+ if ($param['status'] == 1 && empty($param['sign'])) return error("请上传打款凭证");
|
|
|
|
|
+ if ($param['status'] == 2 && empty($param['reason'])) return error("请输入拒绝原因");
|
|
|
|
|
+ $refund = (new SaasOrderRefund)->where("order_sn",$param["order"])->findOrEmpty();
|
|
|
|
|
+ if ($refund->isEmpty()) return error("退款申请不存在");
|
|
|
|
|
+ $refund->status = $param['status'];
|
|
|
|
|
+ $refund->last_at = getDateFull();
|
|
|
|
|
+ if ($param['status'] == 1) {
|
|
|
|
|
+ $refund->sign = $param['sign'];
|
|
|
|
|
+ $this->model->where("out_order_no",$param["order"])->save(['status' => 3]);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ $refund->reason = $param['reason'];
|
|
|
|
|
+ $this->model->where("out_order_no",$param["order"])->save(['is_error' => 1,'status' => 2]);
|
|
|
|
|
+ }
|
|
|
|
|
+ $state = $refund->save();
|
|
|
|
|
+ if (!$state) return errorTrans("error.data");
|
|
|
|
|
+ return successTrans("success.data");
|
|
|
|
|
+ } catch (\Throwable $throwable) {
|
|
|
|
|
+ return error($throwable->getMessage());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|