wesmiler 3 bulan lalu
induk
melakukan
82124e98a1

+ 3 - 1
app/Http/Controllers/Api/v1/IndexController.php

@@ -39,7 +39,9 @@ class IndexController extends webApp
                     'alipay_open' => ConfigService::make()->getConfigByCode('alipay_open', 0),
                     'alipay_open' => ConfigService::make()->getConfigByCode('alipay_open', 0),
                     'agent_apply_desc' => format_content(ConfigService::make()->getConfigByCode('agent_apply_desc', '')),
                     'agent_apply_desc' => format_content(ConfigService::make()->getConfigByCode('agent_apply_desc', '')),
                     'withdraw_desc' => format_content(ConfigService::make()->getConfigByCode('withdraw_desc', '')),
                     'withdraw_desc' => format_content(ConfigService::make()->getConfigByCode('withdraw_desc', '')),
-                    'recharge_desc' => format_content(ConfigService::make()->getConfigByCode('recharge_desc', '')),
+                    'recharge_desc_1' => format_content(ConfigService::make()->getConfigByCode('recharge_desc_1', '')),
+                    'recharge_desc_2' => format_content(ConfigService::make()->getConfigByCode('recharge_desc_2', '')),
+                    'recharge_desc_3' => format_content(ConfigService::make()->getConfigByCode('recharge_desc_3', '')),
                     'wxpay_open' => ConfigService::make()->getConfigByCode('wxpay_open', 0),
                     'wxpay_open' => ConfigService::make()->getConfigByCode('wxpay_open', 0),
                     'pay_recharge_open' => ConfigService::make()->getConfigByCode('pay_recharge_open', 0),
                     'pay_recharge_open' => ConfigService::make()->getConfigByCode('pay_recharge_open', 0),
                     'social_open' => $socialOpen,
                     'social_open' => $socialOpen,

+ 13 - 1
app/Services/Api/SettleService.php

@@ -104,7 +104,16 @@ class SettleService extends BaseService
         return $result;
         return $result;
     }
     }
 
 
-    public function agentBonus($userId, $money, $order, $parentId)
+    /**
+     * 代理收益
+     * @param $userId
+     * @param $money
+     * @param $order
+     * @param $parentId
+     * @param int $type
+     * @return array|false|int
+     */
+    public function agentBonus($userId, $money, $order, $parentId, $type=0)
     {
     {
         $orderNo = isset($order['order_no'])? $order['order_no'] : '';
         $orderNo = isset($order['order_no'])? $order['order_no'] : '';
         if($money<=0 || $userId<=0 || $parentId<=0){
         if($money<=0 || $userId<=0 || $parentId<=0){
@@ -145,6 +154,7 @@ class SettleService extends BaseService
             'date'=>date('Y-m-d'),
             'date'=>date('Y-m-d'),
             'create_time'=>time(),
             'create_time'=>time(),
             'remark'=> '推广收益',
             'remark'=> '推广收益',
+            'remark1'=> ['','话费充值','电费充值','燃气充值'][$type],
             'status'=>1
             'status'=>1
         ];
         ];
 
 
@@ -178,6 +188,7 @@ class SettleService extends BaseService
                 'date'=>date('Y-m-d'),
                 'date'=>date('Y-m-d'),
                 'create_time'=>time()+1,
                 'create_time'=>time()+1,
                 'remark'=> '一级代理收益',
                 'remark'=> '一级代理收益',
+                'remark1'=> ['','话费充值','电费充值','燃气充值'][$type],
                 'status'=>1
                 'status'=>1
             ];
             ];
         }
         }
@@ -208,6 +219,7 @@ class SettleService extends BaseService
                 'date'=>date('Y-m-d'),
                 'date'=>date('Y-m-d'),
                 'create_time'=>time()+2,
                 'create_time'=>time()+2,
                 'remark'=> '二级代理收益',
                 'remark'=> '二级代理收益',
+                'remark1'=> ['','话费充值','电费充值','燃气充值'][$type],
                 'status'=>1
                 'status'=>1
             ];
             ];
         }
         }

+ 17 - 3
app/Services/PaymentService.php

@@ -16,6 +16,7 @@ use App\Models\MemberModel;
 use App\Models\OrderModel;
 use App\Models\OrderModel;
 use App\Models\PaymentModel;
 use App\Models\PaymentModel;
 use App\Models\PayOrdersModel;
 use App\Models\PayOrdersModel;
+use App\Services\Api\SettleService;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\DB;
 use Yansongda\Pay\Pay;
 use Yansongda\Pay\Pay;
 use Yansongda\Pay\Provider\Wechat;
 use Yansongda\Pay\Provider\Wechat;
@@ -638,10 +639,13 @@ class PaymentService extends BaseService
             return false;
             return false;
         }
         }
 
 
-        $orderInfo = PayOrdersModel::where(['order_no'=>$out_trade_num,'mark'=>1])->first();
+        $orderInfo = PayOrdersModel::with(['user'])->where(['order_no'=>$out_trade_num,'mark'=>1])->first();
         $orderId = isset($orderInfo['id'])? $orderInfo['id'] : 0;
         $orderId = isset($orderInfo['id'])? $orderInfo['id'] : 0;
+        $orderUserId = isset($orderInfo['user_id'])? $orderInfo['user_id'] : 0;
         $status = isset($orderInfo['status'])? $orderInfo['status'] : 0;
         $status = isset($orderInfo['status'])? $orderInfo['status'] : 0;
         $total = isset($orderInfo['total'])? $orderInfo['total'] : 0;
         $total = isset($orderInfo['total'])? $orderInfo['total'] : 0;
+        $userInfo = isset($orderInfo['user'])? $orderInfo['user'] : [];
+        $parentId = isset($userInfo['parent_id'])?$userInfo['parent_id'] : 0;
         if(empty($orderInfo) || $orderId<=0 || $total<=0){
         if(empty($orderInfo) || $orderId<=0 || $total<=0){
             $this->error = '充值订单不存在';
             $this->error = '充值订单不存在';
             $this->saveLog("caches:payments:payNotify_{$productId}:notify_{$out_trade_num}_error", ['error'=>$this->error,'order' => $orderInfo, 'notify' => $data]);
             $this->saveLog("caches:payments:payNotify_{$productId}:notify_{$out_trade_num}_error", ['error'=>$this->error,'order' => $orderInfo, 'notify' => $data]);
@@ -674,9 +678,11 @@ class PaymentService extends BaseService
         }
         }
 
 
         // 更新订单状态
         // 更新订单状态
+        DB::beginTransaction();
         $this->saveLog("caches:payments:payNotify_{$productId}:notify_{$out_trade_num}", ['error'=>$this->error,'order' => $orderInfo, 'notify' => $data]);
         $this->saveLog("caches:payments:payNotify_{$productId}:notify_{$out_trade_num}", ['error'=>$this->error,'order' => $orderInfo, 'notify' => $data]);
         if(!PayOrdersModel::where(['id'=>$orderId])->update(['status'=>$status,'charge_kami'=>$charge_kami,'refund_status'=>$status!=4?2:0,'charge_amount'=>$amount,'update_time'=>time()])){
         if(!PayOrdersModel::where(['id'=>$orderId])->update(['status'=>$status,'charge_kami'=>$charge_kami,'refund_status'=>$status!=4?2:0,'charge_amount'=>$amount,'update_time'=>time()])){
             $this->error = '更新订单状态错误~';
             $this->error = '更新订单状态错误~';
+            DB::rollBack();
             return false;
             return false;
         }
         }
 
 
@@ -689,16 +695,24 @@ class PaymentService extends BaseService
             if(!PayOrdersModel::where(['id'=>$orderId])->update(['refund_status'=> $refundStatus?1:3,'refund_money'=>$refundStatus?$refundAmount:0,'update_time'=>time()])){
             if(!PayOrdersModel::where(['id'=>$orderId])->update(['refund_status'=> $refundStatus?1:3,'refund_money'=>$refundStatus?$refundAmount:0,'update_time'=>time()])){
                 $this->saveLog("caches:payments:payNotify_{$productId}:notify_{$out_trade_num}_error", ['error'=>$this->error,'order' => $orderInfo, 'notify' => $data]);
                 $this->saveLog("caches:payments:payNotify_{$productId}:notify_{$out_trade_num}_error", ['error'=>$this->error,'order' => $orderInfo, 'notify' => $data]);
                 $this->error = '订单退款状态更新错误~';
                 $this->error = '订单退款状态更新错误~';
+                DB::rollBack();
                 return false;
                 return false;
             }
             }
 
 
         }
         }
 
 
-        if($status == 4)
+        // 订单完成,代理收益结算
+        if($status == 4 && $amount>0)
         {
         {
-            
+            // 代理佣金结算
+            if (SettleService::make()->agentBonus($orderUserId, $amount, $orderInfo, $parentId) < 0) {
+                DB::rollBack();
+                $this->error = SettleService::make()->getError();
+                return false;
+            }
         }
         }
 
 
+        DB::commit();
         $this->error = '充值订单处理成功~';
         $this->error = '充值订单处理成功~';
         return true;
         return true;
     }
     }