where([ ['user_id', '=', $cash['user_id']], ['wallet_id', '=', $cash['wallet_id']], ['cash_id', '=', $cash['id']], ['status', '=', 0] ])->update([ 'status' => 3, 'reason' => '未处理关闭', 'upd_time' => time(), ]); } /** * 转账添加 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2024-09-19 * @desc description * @param [array] $cash [提现数据] * @param [string] $pay_no [支付单号] * @param [array] $request_params [请求数据] * @param [array] $params [输入参数] */ public static function CashPaymentInsert($cash, $pay_no, $request_params, $params = []) { $data = [ 'user_id' => $cash['user_id'], 'wallet_id' => $cash['wallet_id'], 'cash_id' => $cash['id'], 'cash_no' => $cash['cash_no'], 'pay_no' => $pay_no, 'pay_type' => $cash['cash_type']-1, 'status' => 0, 'request_params' => is_array($request_params) ? json_encode($request_params, JSON_UNESCAPED_UNICODE) : $request_params, 'add_time' => time(), ]; $data_id = Db::name('PluginsWalletCashPayment')->insertGetId($data); if($data_id > 0) { return DataReturn('success', 0, $data_id); } return DataReturn('转账日志添加失败', -1); } /** * 转账回调 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2024-09-19 * @desc description * @param [array] $cash [提现数据] * @param [int] $data_id [数据id] * @param [int] $start_time [开始时间] * @param [string] $response [回调数据] * @param [int] $status [状态] * @param [string] $reason [原因] * @param [string] $out_order_no [外部单号] */ public static function CashPaymentResponse($cash, $data_id, $start_time, $response, $status, $reason, $out_order_no) { switch($status) { // 待用户收款 case 1 : $ret = CashService::CashStatusUpdate([ 'id' => $cash['id'], 'status' => 1, ]); break; // 支付成功 case 2 : $ret = CashService::CashAudit([ 'id' => $cash['id'], 'pay_money' => $cash['money'], 'type' => 'agree', 'msg' => '平台自动打款('.$out_order_no.')', ]); if($ret['code'] == 0) { $ret['msg'] = MyLang('pay_success'); } break; // 失败 case 3 : $ret = CashService::CashStatusUpdate([ 'id' => $cash['id'], 'status' => 0, ]); break; } if(!empty($ret) && $ret['code'] == 0) { $upd_data = [ 'status' => $status, 'reason' => $reason, 'response_data' => empty($response) ? '' : (is_array($response) ? json_encode($response, JSON_UNESCAPED_UNICODE) : $response), 'out_order_no' => $out_order_no, 'tsc' => time()-$start_time, 'upd_time' => time(), ]; if(Db::name('PluginsWalletCashPayment')->where(['id'=>$data_id])->update($upd_data) !== false) { return $ret; } else { return DataReturn('转账日志更新失败', -1); } } return DataReturn('转账日志回调失败('.$reason.')', -1); } /** * 转账刷新 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2024-09-19 * @desc description * @param [array] $cash [提现数据] * @param [int] $data_id [数据id] * @param [int] $status [状态] * @param [string] $reason [原因] * @param [string] $out_order_no [外部单号] */ public static function CashPaymentRefresh($cash, $data_id, $status, $reason, $out_order_no) { switch($status) { // 待用户收款 case 1 : $ret = CashService::CashStatusUpdate([ 'id' => $cash['id'], 'status' => 1, ]); break; // 支付成功 case 2 : $ret = CashService::CashAudit([ 'id' => $cash['id'], 'pay_money' => $cash['money'], 'type' => 'agree', 'msg' => '平台自动打款('.$out_order_no.')', ]); if($ret['code'] == 0) { $ret['msg'] = MyLang('pay_success'); } break; // 失败 case 3 : $ret = CashService::CashStatusUpdate([ 'id' => $cash['id'], 'status' => 0, ]); break; } if(!empty($ret) && $ret['code'] == 0) { $upd_data = [ 'status' => $status, 'reason' => $reason, 'upd_time' => time(), ]; if(Db::name('PluginsWalletCashPayment')->where(['id'=>$data_id])->update($upd_data) !== false) { return $ret; } else { return DataReturn('转账日志更新失败', -1); } } return DataReturn('转账日志回调失败('.$reason.')', -1); } /** * 删除 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-11-18 * @desc description * @param [array] $params [输入参数] */ public static function CashPaymentDelete($params = []) { // 参数是否有误 if(empty($params['ids'])) { return DataReturn(MyLang('data_id_error_tips'), -1); } // 是否数组 if(!is_array($params['ids'])) { $params['ids'] = explode(',', $params['ids']); } // 删除操作 if(Db::name('PluginsWalletCashPayment')->where(['id'=>$params['ids']])->delete()) { return DataReturn(MyLang('delete_success'), 0); } return DataReturn(MyLang('delete_fail'), -100); } /** * 清空全部 * @author Devil * @blog http://gong.gg/ * @version 1.0.0 * @date 2021-11-18 * @desc description * @param [array] $params [输入参数] */ public static function CashPaymentAllDelete($params = []) { $where = [ ['id', '>', 0] ]; if(Db::name('PluginsWalletCashPayment')->where($where)->delete() === false) { return DataReturn(MyLang('operate_fail'), -100); } return DataReturn(MyLang('operate_success'), 0); } } ?>