Просмотр исходного кода

Wesmiler 人人车 初始化项目 0816

APPLE 3 лет назад
Родитель
Сommit
97ef44d77a

+ 79 - 16
application/admin/controller/store/TaxiUserWithdraw.php

@@ -82,10 +82,38 @@ class TaxiUserWithdraw extends AdminController
                     IResponse::failure('司机账户错误,请联系管理员处理');
                     IResponse::failure('司机账户错误,请联系管理员处理');
                 }
                 }
 
 
-
                 // 写入资金记录
                 // 写入资金记录
                 $Users = new Users();
                 $Users = new Users();
-                $Users->changePartnership($user['id'], $withdraw['amount'], '资产提现失败退还', 20,true);
+                $Users->changePartnership($user['id'], $withdraw['amount'], '资产余额提现失败退还', 20,true);
+            }
+            // 打款到账
+            else if ($params['status'] == 20){
+                $wechat = sys_config('', 'wechat');
+                $config = [
+                    // 前面的appid什么的也得保留哦
+                    'app_id' => $wechat['mini_appid'],
+                    'mch_id' => $wechat['pay_mch_id'],
+                    'key' => $wechat['pay_secret_key'],
+                    // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
+                    'cert_path'          => $wechat['cert_path'], // XXX: 绝对路径!!!!
+                    'key_path'           => $wechat['key_path'],      // XXX: 绝对路径!!!!
+                ];
+                $user = Users::findBy($withdraw['user_id']);
+                // 创建应用实例
+                $app = Factory::payment($config);
+                $result = $app->transfer->toBalance([
+                    'partner_trade_no' => $withdraw['order_no'], // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
+                    'openid' => $user['open_id'],
+                    'check_name' => 'FORCE_CHECK', // NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名
+                    're_user_name' => $withdraw['real_name'], // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名
+                    'amount' => $withdraw['amount'] * 100, // 企业付款金额,单位为分
+                    'desc' => '司机用户提现', // 企业付款操作说明信息。必填
+                ]);
+                $result = $result['return_code'] == 'SUCCESS' && $result['result_code'] != 'FAIL';
+                if(!$result){
+                    Db::rollback();
+                    IResponse::failure('司机账户错误,请联系管理员处理');
+                }
             }
             }
 
 
             Db::commit();
             Db::commit();
@@ -128,30 +156,65 @@ class TaxiUserWithdraw extends AdminController
             $withdraw = model('common/UsersWithdraw')->getBy($id);
             $withdraw = model('common/UsersWithdraw')->getBy($id);
             if ($this->request->isDelete()){
             if ($this->request->isDelete()){
                 $withdraw->deleteBy($id);
                 $withdraw->deleteBy($id);
-            }else
+            }else{
                 // 等待审核状态下才做更新
                 // 等待审核状态下才做更新
-                if ($withdraw['status'] == 1){
-                    $withdraw->allowField(true)->updateBy($id, $params);
+                if ($withdraw['status'] == 10){
                     Db::startTrans();
                     Db::startTrans();
                     try {
                     try {
-                        if ($params['status'] == 2){
+                        if(!$withdraw->allowField(true)->updateBy($id, $params)){
+                           Db::rollback();
+                           continue;
+                        }
+
+                        // 拒绝退款
+                        if($params['status'] == 30){
                             // 查用户
                             // 查用户
                             $user = model('common/Users')->getBy($withdraw['user_id']);
                             $user = model('common/Users')->getBy($withdraw['user_id']);
-                            // 更新资金
-                            $user->where(['id' => $withdraw['user_id']])->setDec('balance', $withdraw['amount']);
+                            if(empty($user)){
+                                Db::rollback();
+                                continue;
+                            }
+
                             // 写入资金记录
                             // 写入资金记录
-                            model('common/UsersBalanceRecord')::create([
-                                'user_id' => $withdraw['user_id'],
-                                'dec_amount' => $withdraw['amount'],
-                                'aft_amount' => round($user['balance'] - $withdraw['amount']),
-                                'remark' => '主动提现,¥' . $withdraw['amount'] . ',单号;' . $withdraw['draw_no']
-                            ], true);
+                            $Users = new Users();
+                            $Users->changePartnership($user['id'], $withdraw['amount'], '资产余额提现失败退还', 20,true);
+                        }
+                        // 打款到账
+                        else if ($params['status'] == 20){
+                            $wechat = sys_config('', 'wechat');
+                            $config = [
+                                // 前面的appid什么的也得保留哦
+                                'app_id' => $wechat['mini_appid'],
+                                'mch_id' => $wechat['pay_mch_id'],
+                                'key' => $wechat['pay_secret_key'],
+                                // 如需使用敏感接口(如退款、发送红包等)需要配置 API 证书路径(登录商户平台下载 API 证书)
+                                'cert_path'          => $wechat['cert_path'], // XXX: 绝对路径!!!!
+                                'key_path'           => $wechat['key_path'],      // XXX: 绝对路径!!!!
+                            ];
+                            $user = Users::findBy($withdraw['user_id']);
+                            // 创建应用实例
+                            $app = Factory::payment($config);
+                            $result = $app->transfer->toBalance([
+                                'partner_trade_no' => $withdraw['order_no'], // 商户订单号,需保持唯一性(只能是字母或者数字,不能包含有符号)
+                                'openid' => $user['open_id'],
+                                'check_name' => 'FORCE_CHECK', // NO_CHECK:不校验真实姓名, FORCE_CHECK:强校验真实姓名
+                                're_user_name' => $withdraw['real_name'], // 如果 check_name 设置为FORCE_CHECK,则必填用户真实姓名
+                                'amount' => $withdraw['amount'] * 100, // 企业付款金额,单位为分
+                                'desc' => '司机用户提现', // 企业付款操作说明信息。必填
+                            ]);
+                            $result = $result['return_code'] == 'SUCCESS' && $result['result_code'] != 'FAIL';
+                            if(!$result){
+                                Db::rollback();
+                                continue;
+                            }
                         }
                         }
-                        Db::commit();
-                    }catch (\Exception $e){
+                    } catch (\Exception $exception){
                         Db::rollback();
                         Db::rollback();
                     }
                     }
+
                 }
                 }
+            }
+
         }
         }
         return IResponse::success([],'操作成功');
         return IResponse::success([],'操作成功');
     }
     }

+ 11 - 12
application/api/controller/v1/Taxi.php

@@ -451,19 +451,18 @@ class Taxi extends ApiController
                             $this->ApiJson(-1, '失败');
                             $this->ApiJson(-1, '失败');
                         }
                         }
                     }
                     }
-                    else {
-                        // 退款扣除金额直接给司机
-                        if($taxiUserId && $cost_price>0){
-                            model('common/Users')->changePartnership(
-                                $taxiUserId,
-                                $cost_price,
-                                "取消订单,扣除金额到账【" . $cost_price . "】",
-                                30,
-                                true
-                            );
-                        }
-                        $this->ApiJson(-1, '成功');
+
+                    // 退款扣除金额直接给司机
+                    if($taxiUserId && $cost_price>0){
+                        model('common/Users')->changePartnership(
+                            $taxiUserId,
+                            $cost_price,
+                            "取消订单,扣除金额到账【" . $cost_price . "】",
+                            30,
+                            true
+                        );
                     }
                     }
+
                 }
                 }
             }
             }
 
 

+ 1 - 1
application/api/controller/v1/taxiUser/User.php

@@ -165,7 +165,7 @@ class User extends ApiController
             $ret = model('common/TaxiUsersWithdraw')::create($params,true);
             $ret = model('common/TaxiUsersWithdraw')::create($params,true);
 
 
             $Users = new Users();
             $Users = new Users();
-            $Users->changePartnership($user['id'], $ret['amount'], '资产提现', 20);
+            $Users->changePartnership($user['id'], $ret['amount'], '资产余额提现', 20);
             Db::commit();
             Db::commit();
 
 
             return IResponse::success('提现申请成功,请等候审核');
             return IResponse::success('提现申请成功,请等候审核');