|
|
@@ -398,6 +398,80 @@ class ServiceOrderLogic extends BaseLogic
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 获取订单支付详情
|
|
|
+ * @param $params
|
|
|
+ * @return array|false
|
|
|
+ */
|
|
|
+ public static function orderPayInfo($params)
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $order_info = \app\common\model\recharge\RechargeOrder::with(['service_work'=>function ($query) {
|
|
|
+ $query->visible(['spare_total','service_work_spare_id']);
|
|
|
+ }])
|
|
|
+ ->visible(['id','sn','work_id'])
|
|
|
+ ->where([
|
|
|
+ 'order_type' => 0,
|
|
|
+ 'user_id' => $params['user_id'],
|
|
|
+ 'sn'=>$params['sn']
|
|
|
+ ])->findOrEmpty()->toArray();
|
|
|
+
|
|
|
+ if(empty($order_info)){
|
|
|
+ throw new Exception('订单不存在');
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询总价
|
|
|
+ $order_info['order_amount'] = \app\common\model\recharge\RechargeOrder::where(['order_type'=>0,'user_id'=>$params['user_id'],'work_id'=>$order_info['work_id']])->sum('order_amount');
|
|
|
+ $order_info['paid_amount'] = \app\common\model\recharge\RechargeOrder::where(['order_type'=>0,'user_id'=>$params['user_id'],'work_id'=>$order_info['work_id']])->sum('paid_amount');
|
|
|
+
|
|
|
+ //搜索当前工单下的所有订单记录
|
|
|
+ $order_info['pay_orders'] = \app\common\model\recharge\RechargeOrder::where(['work_id'=>$order_info['work_id']])->field('id as order_id, pay_status,payment_type,pay_way,pay_time,order_total,order_amount,coupon_price')->order('id asc')->select()->toArray();
|
|
|
+
|
|
|
+ $pay_status_data = DictData::where('type_value','pay_status')->column('name','value');
|
|
|
+ $payment_type_data = DictData::where('type_value','payment_type')->column('name','value');
|
|
|
+ $pay_way_data = DictData::where('type_value','pay_way')->column('name','value');
|
|
|
+ $coupon_price = 0;
|
|
|
+ foreach ($order_info['pay_orders'] as $k=>&$v){
|
|
|
+ $v['pay_status_name'] = $pay_status_data[$v['pay_status']];
|
|
|
+ $v['payment_type_name'] = $payment_type_data[$v['payment_type']];
|
|
|
+ $v['pay_way_name'] = $pay_way_data[$v['pay_way']];
|
|
|
+
|
|
|
+ if($v['payment_type']!=1 and !empty($order_info['service_work']['spare_total'])){
|
|
|
+ $v['order_total'] = $v['order_total'] - $order_info['service_work']['spare_total'];
|
|
|
+ $v['order_amount'] = $v['order_amount'] - $order_info['service_work']['spare_total'];
|
|
|
+ }
|
|
|
+
|
|
|
+ $coupon_price += $v['coupon_price'];
|
|
|
+ }
|
|
|
+
|
|
|
+ //汇总优惠卷额度
|
|
|
+ $order_info['coupon_price'] = $coupon_price;
|
|
|
+
|
|
|
+ // 所有配件
|
|
|
+ $order_info['spare_total'] = $order_info['service_work']['spare_total']??0;
|
|
|
+ $order_info['spare_parts'] = [];
|
|
|
+ if($order_info['service_work']['service_work_spare_id']){
|
|
|
+ $work_spare_parts = json_decode(ServiceWorkSpare::where('id',$order_info['service_work']['service_work_spare_id'])->value('spare_parts'),true);
|
|
|
+ $spare_parts = SparePart::where('id','in',array_column($work_spare_parts,'id'))
|
|
|
+ ->field(['id', 'goods_category_id', 'spare_name', 'spare_image', 'spare_number', 'spare_unit','spare_status'])
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+ $spare_parts = array_column($spare_parts,null,'id');
|
|
|
+ foreach (array_column($work_spare_parts,null,'id') as $k=>&$v){
|
|
|
+ $spare_parts[$k] = array_merge($spare_parts[$k],$v);
|
|
|
+ }
|
|
|
+ $order_info['spare_parts'] = array_values($spare_parts)??[];
|
|
|
+ }
|
|
|
+
|
|
|
+ return $order_info;
|
|
|
+ }
|
|
|
+ catch (\Exception $e) {
|
|
|
+ self::setError($e->getMessage());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 取消订单
|
|
|
* @param $params
|