优化:用户钱包操作方法修改。
This commit is contained in:
@@ -241,68 +241,70 @@ 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)
|
||||
{
|
||||
//如果是金币 则表为user_wallet_coin 否则 表为user_wallet_earnings
|
||||
if ($money_type == self::MONEYTYPECOIN) {
|
||||
$table_name = 'user_wallet_coin';
|
||||
} else {
|
||||
$table_name = 'user_wallet_earnings';
|
||||
}
|
||||
if ($change_type == 1) {//后台充值逻辑处理
|
||||
if ($money_type == self::MONEYTYPECOIN) {//金币
|
||||
if ($change_value > 0) {//大于0为增加金币
|
||||
$change_type = self::BACKGROUND_RECHARGE_COIN;
|
||||
} else {//小于0为扣除金币
|
||||
$change_type = self::BACKGROUND_DEDUCTION_COIN;
|
||||
}
|
||||
} else {//钻石
|
||||
if ($change_value > 0) {// 大于0为增加钻石
|
||||
$change_type = self::BACKGROUND_RECHARGE_DIAMOND;
|
||||
} else {// 小于0为扣除钻石
|
||||
$change_type = self::BACKGROUND_DEDUCTION_DIAMOND;
|
||||
}
|
||||
// 确定操作的表
|
||||
$table_name = $money_type == self::MONEYTYPECOIN ? 'user_wallet_coin' : 'user_wallet_earnings';
|
||||
|
||||
// 如果是后台操作(change_type == 1),则根据金额正负自动设置具体的变更类型
|
||||
if ($change_type == 1) {
|
||||
if ($money_type == self::MONEYTYPECOIN) {
|
||||
$change_type = $change_value > 0 ? self::BACKGROUND_RECHARGE_COIN : self::BACKGROUND_DEDUCTION_COIN;
|
||||
} else {
|
||||
$change_type = $change_value > 0 ? self::BACKGROUND_RECHARGE_DIAMOND : self::BACKGROUND_DEDUCTION_DIAMOND;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 验证用户信息
|
||||
$user_info = db::name('user')->find($user_id);
|
||||
if (empty($user_info['id'])) {
|
||||
return ['code' => 0, 'msg' => "用户信息错误", 'data' => null];
|
||||
}
|
||||
|
||||
// 获取用户钱包信息
|
||||
$user_wallet = db::name($table_name)->where(['user_id' => $user_id])->find();
|
||||
if (empty($user_wallet['id'])) {
|
||||
return ['code' => 0, 'msg' => "用户信息错误", 'data' => null];
|
||||
return ['code' => 0, 'msg' => "用户钱包信息错误", 'data' => null];
|
||||
}
|
||||
|
||||
// 验证资金类型
|
||||
$money_type_str = $this->getMoneyType($money_type);
|
||||
if (empty($money_type_str)) {
|
||||
return ['code' => 0, 'msg' => "非法资金类型", 'data' => null];
|
||||
}
|
||||
|
||||
// 检查金额是否为数字
|
||||
if (!is_numeric($change_value)) {
|
||||
return ['code' => 0, 'msg' => "变动的数值必须为数字", 'data' => null];
|
||||
}
|
||||
|
||||
// 验证并检查余额上限
|
||||
if ($money_type == self::MONEYTYPECOIN) {
|
||||
$after_coin = $user_wallet['coin'];
|
||||
$after_coin += $change_value;
|
||||
$after_coin = $user_wallet['coin'] + $change_value;
|
||||
if ($after_coin > 99999999) {
|
||||
return ['code' => 0, 'msg' => "当前用户金币已达上限", 'data' => null];
|
||||
}
|
||||
} elseif ($money_type == self::MONEYTYPEARNINGS) {
|
||||
$after_earnings = $user_wallet['earnings'];
|
||||
$after_earnings += $change_value;
|
||||
$after_earnings = $user_wallet['earnings'] + $change_value;
|
||||
if ($after_earnings > 99999999) {
|
||||
return ['code' => 0, 'msg' => "当前用户钻石已达上限", 'data' => null];
|
||||
}
|
||||
} else {
|
||||
return ['code' => 0, 'msg' => "非法资金类型", 'data' => null];
|
||||
}
|
||||
|
||||
// 验证变更类型
|
||||
$change_name = $this->ChangeTypeLable($change_type);
|
||||
if (empty($change_name)) {
|
||||
return ['code' => 0, 'msg' => "非法资金变动类型", 'data' => null];
|
||||
}
|
||||
if (!is_numeric($change_value)) {
|
||||
return ['code' => 0, 'msg' => "变动的数值必须为数字", 'data' => null];
|
||||
}
|
||||
|
||||
// 记录资金变动日志
|
||||
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 {
|
||||
|
||||
Reference in New Issue
Block a user