diff --git a/application/common/model/UserWallet.php b/application/common/model/UserWallet.php index 9762410a..514c0b29 100644 --- a/application/common/model/UserWallet.php +++ b/application/common/model/UserWallet.php @@ -229,17 +229,17 @@ class UserWallet extends Model */ public function change_user_money($user_id, $change_value, $money_type,$change_type, $remarks = "", $room_id=0,$from_uid = 0, $from_id = 0) { - if (in_array($change_type, $this->coin_consumption_type_array) && $money_type==self::MONEYTYPECOIN) {//金币支出 - $change_value = $change_value * -1; - } - if (in_array($change_type, $this->diamond_consumption_type_array) && $money_type==self::MONEYTYPEARNINGS){//钻石支出 - $change_value = $change_value * -1; + //如果是金币 则表为user_wallet_coin 否则 表为user_wallet_earnings + if($money_type==self::MONEYTYPECOIN){ + $table_name = 'user_wallet_coin'; + }else{ + $table_name = 'user_wallet_earnings'; } $user_info = db::name('user')->find($user_id); if (empty($user_info['id'])) { return ['code' => 0, 'msg' => "用户信息错误", 'data' => null]; } - $user_wallet = db::name('user_wallet')->where(['user_id' => $user_id])->find(); + $user_wallet = db::name($table_name)->where(['user_id' => $user_id])->find(); if (empty($user_wallet['id'])) { return ['code' => 0, 'msg' => "用户信息错误", 'data' => null]; } @@ -247,16 +247,14 @@ class UserWallet extends Model if (empty($money_type_str)) { return ['code' => 0, 'msg' => "非法资金类型", 'data' => null]; } - $after_coin = $user_wallet['coin']; - $after_earnings = $user_wallet['earnings']; - if ($money_type == 1) { - $change_field = "coin"; + if ($money_type==self::MONEYTYPECOIN) { + $after_coin = $user_wallet['coin']; $after_coin += $change_value; if($after_coin > 99999999){ return ['code' => 0, 'msg' => "当前用户金币已达上限", 'data' => null]; } - } elseif ($money_type == 2) { - $change_field = "earnings"; + } elseif ($money_type==self::MONEYTYPEARNINGS) { + $after_earnings = $user_wallet['earnings']; $after_earnings += $change_value; if($after_earnings > 99999999){ return ['code' => 0, 'msg' => "当前用户钻石已达上限", 'data' => null]; @@ -271,43 +269,15 @@ class UserWallet extends Model if (!is_numeric($change_value)) { return ['code' => 0, 'msg' => "变动的数值必须为数字", 'data' => null]; } - - $data = []; - $data['user_id'] = $user_id; - $data['room_id'] = $room_id; - $data['change_type'] = $change_type; - $data['money_type'] = $money_type; - $data['change_value'] = abs($change_value); - $data['after_coin'] = $after_coin; - $data['after_earnings'] = $after_earnings; - $data['from_id'] = $from_id; - $data['from_uid'] = $from_uid; - $data['remarks'] = $remarks; - $data['createtime'] = time(); - $data['updatetime'] = time(); - Db::startTrans(); - try { - if($change_value < 0){ - $change_value_abs = abs($change_value); - $change_value_up = $user_wallet[$change_field] - $change_value_abs; - if($change_value_up<0){ - Db::rollback(); - return ['code' => 0, 'msg' => $money_type_str . "不足", 'data' => null]; - } - } - Db::name('user_wallet')->where('user_id', $user_id)->inc($change_field, $change_value)->update(['updatetime' => time()]); - $reslut = Db::name('vs_user_money_log')->insert($data); - if (!$reslut) { - Db::rollback(); - return ['code' => 0, 'msg' => "请重试", 'data' => null]; - } - // 提交事务 - Db::commit(); - return ['code' => 1, 'msg' => "操作成功", 'data' => null]; - } catch (\Exception $e) { - // 回滚事务 - Db::rollback(); + if($money_type==self::MONEYTYPECOIN){ + $return = model('api/UserWallet')->change_user_cion_log($user_id,$change_value,$room_id,$change_type,$remarks); + }else{ + $return = model('api/UserWallet')->change_user_earnings_log($user_id,$change_value,$room_id,$change_type,$remarks); + } + if($return) { return ['code' => 0, 'msg' => "请重试", 'data' => null]; + }else{ + return ['code' => 1, 'msg' => "操作成功", 'data' => null]; } } @@ -315,8 +285,10 @@ class UserWallet extends Model * 用户资金变动日志 */ public function money_change_log($user_id,$seach, $money_type=0, $page=0,$page_limit=30){ - if($money_type){ - $where['money_type'] =$money_type; + if($money_type==self::MONEYTYPECOIN){ + $table_name_log = 'user_coin_log'; + }else{ + $table_name_log = 'user_earnings_log'; } if($seach['stime']){ $where['createtime'] = ['>=',strtotime($seach['stime'])]; @@ -327,8 +299,8 @@ class UserWallet extends Model if($seach['change_type']){ $where['change_type'] =$seach['change_type']; } - $log['count'] = Db::name('vs_user_money_log')->where($where)->where('user_id',$user_id)->count(); - $log_select = Db::name('vs_user_money_log') + $log['count'] = Db::name($table_name_log)->where($where)->where('user_id',$user_id)->count('id'); + $log_select = Db::name($table_name_log) ->where($where) ->where('user_id',$user_id) ->order('log_id desc'); @@ -337,11 +309,11 @@ class UserWallet extends Model } $log['list'] = $log_select->select(); foreach ($log['list'] as $key => &$value) { - $value['money_type'] = $this->getMoneyType($value['money_type']); + $value['money_type'] = $this->getMoneyType($money_type); $change_type = $value['change_type']; $value['change_type'] = $this->ChangeTypeLable($value['change_type']); $value['createtime'] = date('Y-m-d H:i:s',$value['createtime']); - if($money_type==1 ){ + if($money_type==self::MONEYTYPECOIN){ if(in_array($change_type,$this->coin_consumption_type_array)){ $value['change_in_out'] = "支出"; $value['change_value'] = $value['change_value']*-1;