|
|
@@ -1545,7 +1545,7 @@ class ServiceWorkLogic extends BaseLogic
|
|
|
$pay_status = 0;
|
|
|
$order_id = $v['id'];
|
|
|
$sn = $v['sn'];
|
|
|
- $work_amount += $v['order_amount'];
|
|
|
+ $work_amount = $v['order_amount'];
|
|
|
}
|
|
|
}
|
|
|
$result['id'] = $externalShareOrder->id;
|
|
|
@@ -1569,6 +1569,8 @@ class ServiceWorkLogic extends BaseLogic
|
|
|
return $result;
|
|
|
}
|
|
|
|
|
|
+ // 生成工单售卖 shareOrder
|
|
|
+ // 售卖工单是由客资场景下单,所以一定有尾款单
|
|
|
public static function shareOrderToNative($params){
|
|
|
|
|
|
// 创建分享单Id
|
|
|
@@ -1617,11 +1619,31 @@ class ServiceWorkLogic extends BaseLogic
|
|
|
return ['info'=>$shareOrder->isEmpty()?[]:$shareOrder->toArray(),'share_url'=>$shareOrder->isEmpty()?'':$share_url];
|
|
|
}
|
|
|
|
|
|
- // 固定的尾款即同当前工单中的尾款金额
|
|
|
- public static function shareFixedAmountToNative($params){
|
|
|
+
|
|
|
+ // 定金金额 - 即可以设置首笔金额然后让其支付
|
|
|
+ // 一定是尾款没有报价首款未支付
|
|
|
+ public static function shareFirstAmountToNative($params){
|
|
|
try {
|
|
|
- // 创建分享单Id
|
|
|
- $amount = RechargeOrder::where(['work_id'=>$params['id'],'pay_status'=>0])->sum('order_amount');
|
|
|
+ if(empty($params['amount'])) throw new \Exception('需填写金额');
|
|
|
+ $rechargeOrder = RechargeOrder::where(['work_id'=>$params['id'],'payment_type'=>2])->findOrEmpty();
|
|
|
+ if(!$rechargeOrder->isEmpty() && $rechargeOrder->pay_status == 1){
|
|
|
+ throw new \Exception('尾款支付异常');
|
|
|
+ }
|
|
|
+ // 创建 $params['order_amount']
|
|
|
+ $rechargeOrder = RechargeOrder::where(['work_id'=>$params['id'],'payment_type'=>1])->findOrEmpty();
|
|
|
+ if($rechargeOrder->isEmpty()){
|
|
|
+ throw new \Exception('无需支付');
|
|
|
+ }else{
|
|
|
+ if(empty($rechargeOrder->pay_time)){
|
|
|
+ $rechargeOrder->order_total= $params['amount']??0;
|
|
|
+ $rechargeOrder->order_amount= $params['amount']??0;
|
|
|
+ $rechargeOrder->pay_status= 0;
|
|
|
+ $rechargeOrder->save();
|
|
|
+ }else{ // 已结束 - 不用分享二维码
|
|
|
+ throw new \Exception('订单已支付无需支付');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// 查询出未支付的总金额
|
|
|
$shareOrder = ExternalShareOrder::where(['work_id'=>$params['id']])->findOrEmpty();
|
|
|
if($shareOrder->isEmpty()){
|
|
|
@@ -1640,4 +1662,32 @@ class ServiceWorkLogic extends BaseLogic
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 固定的尾款即同当前工单中的尾款金额
|
|
|
+ // 要付尾款则首款肯定已支付
|
|
|
+ public static function shareFixedAmountToNative($params){
|
|
|
+ try {
|
|
|
+ $rechargeOrder = RechargeOrder::where(['work_id'=>$params['id'],'pay_status'=>1,'payment_type'=>1])->findOrEmpty();
|
|
|
+ if($rechargeOrder->isEmpty()){
|
|
|
+ throw new \Exception('首款未支付');
|
|
|
+ }
|
|
|
+ // 前提是已经报价
|
|
|
+ $amount = RechargeOrder::where(['work_id'=>$params['id'],'pay_status'=>0,'payment_type'=>2])->sum('order_amount');
|
|
|
+ // 必须有未支付的尾款存在
|
|
|
+ if(empty($amount)) throw new \Exception('订单金额为0/或已支付,无需支付');
|
|
|
+ // 查询出未支付的总金额
|
|
|
+ $shareOrder = ExternalShareOrder::where(['work_id'=>$params['id']])->findOrEmpty();
|
|
|
+ if($shareOrder->isEmpty()){
|
|
|
+ $shareOrder = ExternalShareOrder::create(['order_status'=>1,'work_id'=>$params['id'],'paid_amount'=>$amount??0]);
|
|
|
+ }else{
|
|
|
+ $shareOrder->order_status = 1;
|
|
|
+ $shareOrder->paid_amount = $amount??0;
|
|
|
+ $shareOrder->save();
|
|
|
+ }
|
|
|
+ return ['info'=>$shareOrder->isEmpty()?[]:$shareOrder->toArray(),'share_url'=>(env('project.share_fixed_host','').'?id='.$shareOrder->id)];
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ self::setError($e->getMessage());
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|