|
|
@@ -5,9 +5,12 @@ namespace app\api\logic;
|
|
|
use app\adminapi\service\DistributeLeafletsService;
|
|
|
use app\common\enum\GoodsEnum;
|
|
|
use app\common\enum\PayEnum;
|
|
|
+use app\common\enum\RefundEnum;
|
|
|
use app\common\enum\WorkEnum;
|
|
|
+use app\common\enum\YesNoEnum;
|
|
|
use app\common\logic\BaseLogic;
|
|
|
use app\common\logic\PaymentLogic;
|
|
|
+use app\common\logic\RefundLogic;
|
|
|
use app\common\model\coupon\UserCoupon;
|
|
|
use app\common\model\dict\DictData;
|
|
|
use app\common\model\goods\Goods;
|
|
|
@@ -822,6 +825,39 @@ class ServiceOrderLogic extends BaseLogic
|
|
|
}
|
|
|
$work->refund_approval = 1;
|
|
|
$work->save();
|
|
|
+
|
|
|
+ //判断是否已下单时间过了两小时,并且师傅暂未上门,距离预约时间两小时以上
|
|
|
+ if(($order['pay_time']+7200)>time() and $work['work_status']<4 and ($work['appointment_time']-7200)>time()){
|
|
|
+ //生成退款订单
|
|
|
+ \app\common\model\recharge\RechargeOrder::update([
|
|
|
+ 'id' => $order['id'],
|
|
|
+ 'refund_status' => YesNoEnum::YES,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ // 生成退款记录
|
|
|
+ $recordSn = generate_sn(RefundRecord::class, 'sn');
|
|
|
+ $record = RefundRecord::create([
|
|
|
+ 'sn' => $recordSn,
|
|
|
+ 'user_id' => $order['user_id'],
|
|
|
+ 'order_id' => $order['id'],
|
|
|
+ 'order_sn' => $order['sn'],
|
|
|
+ 'order_type' => RefundEnum::ORDER_TYPE_ORDER,
|
|
|
+ 'order_amount' => $order['order_amount'],
|
|
|
+ 'refund_amount' => $order['order_amount'],
|
|
|
+ 'refund_type' => RefundEnum::TYPE_ADMIN,
|
|
|
+ 'transaction_id' => $order['transaction_id'] ?? '',
|
|
|
+ 'refund_way' => RefundEnum::getRefundWayByPayWay($order['pay_way']),
|
|
|
+ ]);
|
|
|
+
|
|
|
+ //更新工单状态
|
|
|
+ ServiceWork::update([
|
|
|
+ 'id'=>$order['work_id'],
|
|
|
+ 'service_status'=>5
|
|
|
+ ]);
|
|
|
+
|
|
|
+ // 退款
|
|
|
+ RefundLogic::refund($order, $record['id'], $order['order_amount'], 1);
|
|
|
+ }
|
|
|
Db::commit();
|
|
|
}
|
|
|
catch (\Exception $e) {
|