优化:用户钱包操作方法修改。
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
namespace app\common\model;
|
||||
|
||||
use think\Db;
|
||||
use think\Model;
|
||||
|
||||
@@ -30,7 +31,7 @@ class UserWallet extends Model
|
||||
//金币转增(送出)
|
||||
const OPERATION_CONSUME = 4;
|
||||
//每日任务奖励
|
||||
const DAILY_TASKS_REWARD = 5;
|
||||
const DAILY_TASKS_REWARD = 5;
|
||||
//推广用户充值返利
|
||||
const OPERATION_INVITE_REBATE = 6;
|
||||
//购买装扮
|
||||
@@ -112,11 +113,18 @@ class UserWallet extends Model
|
||||
const BOMB_COIN = 58;
|
||||
//红包手续费
|
||||
const RED_PACKET_FEE = 59;
|
||||
|
||||
//后台充值金币
|
||||
const BACKGROUND_RECHARGE_COIN = 40;
|
||||
//后台充值钻石
|
||||
const BACKGROUND_RECHARGE_DIAMOND = 41;
|
||||
//后台扣除金币
|
||||
const BACKGROUND_DEDUCTION_COIN = 42;
|
||||
//后台扣除钻石
|
||||
const BACKGROUND_DEDUCTION_DIAMOND = 43;
|
||||
|
||||
|
||||
//金币支出类型数组
|
||||
public $coin_consumption_type_array = [
|
||||
public $coin_consumption_type_array = [
|
||||
self::OPERATION_CONSUME,
|
||||
self::OPERATION_DECORATION,
|
||||
self::OPERATION_GIFT,
|
||||
@@ -129,19 +137,18 @@ class UserWallet extends Model
|
||||
self::RED_PACKET_FEE,
|
||||
];
|
||||
//钻石支出类型数组
|
||||
public $diamond_consumption_type_array = [
|
||||
public $diamond_consumption_type_array = [
|
||||
self::OPERATION_WITHDRAW,
|
||||
self::MONEY_CONVERSION,
|
||||
self::RED_PACKET_DIAMOND
|
||||
];
|
||||
|
||||
|
||||
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->hasOne('User', 'id', 'user_id');
|
||||
}
|
||||
|
||||
//钱包类型
|
||||
public static function getMoneyType($value)
|
||||
{
|
||||
@@ -152,60 +159,65 @@ class UserWallet extends Model
|
||||
return isset($status[$value]) ? $status[$value] : '';
|
||||
|
||||
}
|
||||
public static function ChangeTypeLable($type="")
|
||||
|
||||
public static function ChangeTypeLable($type = "")
|
||||
{
|
||||
$status = [
|
||||
self::OPERATION_SYSTEM => '系统调节',
|
||||
self::OPERATION_RECHARGE => '会员充值',
|
||||
self::OPERATION_WITHDRAW => '会员提现',
|
||||
self::OPERATION_CONSUME => '金币转增(送出)',
|
||||
self::DAILY_TASKS_REWARD => '任务奖励',
|
||||
self::OPERATION_INVITE_REBATE => '邀请用户充值返利',
|
||||
self::OPERATION_DECORATION => '购买装扮',
|
||||
self::GIFT_BOX_REWARD => '礼盒奖励',
|
||||
self::ROOM_SUBSIDY => '房间补贴',
|
||||
self::OPERATION_GIFT => '购买礼物',
|
||||
self::GIVE_GIFT_EARNING => '送礼增加收益',
|
||||
self::GUILD_SUBSIDY => '工会补贴',
|
||||
self::USER_RECEIVE => '会员转赠(接收)',
|
||||
self::MONEY_CONVERSION => '钻石兑换金币',
|
||||
self::FIRST_CHARGE => '首充',
|
||||
self::DROP_GIFT_REWARD => '天降好礼充值',
|
||||
self::GUILD_EXIT => '退出工会扣款',
|
||||
self::ROOM_OWNER_EARNINGS => '房主收益',
|
||||
self::HOST_EARNINGS => '主持人收益',
|
||||
self::HEADLINE_REWARD => '抢头条',
|
||||
self::GUILD_EARNINGS => '公会长收益',
|
||||
self::WITHDRAW_FAILURE => '提现驳回或提现失败返还',
|
||||
self::FINANCE_LEVEL_REWARD => '财富等级奖励金币领取',
|
||||
self::DELETE_RELATION_COIN => '删除关系扣金币',
|
||||
self::TRANSFER_COIN => '赠送好友金币',
|
||||
self::RECEIVE_COIN => '好友转赠所得金币',
|
||||
self::HOUR_RANK_COIN => '小时榜获得金币',
|
||||
self::NEW_USER_CHARGE_GIFT => '新人充值好礼',
|
||||
self::RED_PACKET_COIN => '发红包(金币)',
|
||||
self::RED_PACKET_DIAMOND => '发红包(钻石)',
|
||||
self::RED_PACKET_COIN_RECEIVE => '抢红包(金币)',
|
||||
self::OPERATION_SYSTEM => '系统调节',
|
||||
self::OPERATION_RECHARGE => '会员充值',
|
||||
self::OPERATION_WITHDRAW => '会员提现',
|
||||
self::OPERATION_CONSUME => '金币转增(送出)',
|
||||
self::DAILY_TASKS_REWARD => '任务奖励',
|
||||
self::OPERATION_INVITE_REBATE => '邀请用户充值返利',
|
||||
self::OPERATION_DECORATION => '购买装扮',
|
||||
self::GIFT_BOX_REWARD => '礼盒奖励',
|
||||
self::ROOM_SUBSIDY => '房间补贴',
|
||||
self::OPERATION_GIFT => '购买礼物',
|
||||
self::GIVE_GIFT_EARNING => '送礼增加收益',
|
||||
self::GUILD_SUBSIDY => '工会补贴',
|
||||
self::USER_RECEIVE => '会员转赠(接收)',
|
||||
self::MONEY_CONVERSION => '钻石兑换金币',
|
||||
self::FIRST_CHARGE => '首充',
|
||||
self::DROP_GIFT_REWARD => '天降好礼充值',
|
||||
self::GUILD_EXIT => '退出工会扣款',
|
||||
self::ROOM_OWNER_EARNINGS => '房主收益',
|
||||
self::HOST_EARNINGS => '主持人收益',
|
||||
self::HEADLINE_REWARD => '抢头条',
|
||||
self::GUILD_EARNINGS => '公会长收益',
|
||||
self::WITHDRAW_FAILURE => '提现驳回或提现失败返还',
|
||||
self::FINANCE_LEVEL_REWARD => '财富等级奖励金币领取',
|
||||
self::DELETE_RELATION_COIN => '删除关系扣金币',
|
||||
self::TRANSFER_COIN => '赠送好友金币',
|
||||
self::RECEIVE_COIN => '好友转赠所得金币',
|
||||
self::HOUR_RANK_COIN => '小时榜获得金币',
|
||||
self::NEW_USER_CHARGE_GIFT => '新人充值好礼',
|
||||
self::RED_PACKET_COIN => '发红包(金币)',
|
||||
self::RED_PACKET_DIAMOND => '发红包(钻石)',
|
||||
self::RED_PACKET_COIN_RECEIVE => '抢红包(金币)',
|
||||
self::RED_PACKET_DIAMOND_RECEIVE => '抢红包(钻石)',
|
||||
self::RED_PACKET_LEFT_COIN => '红包剩余退回(金币)',
|
||||
self::RED_PACKET_LEFT_DIAMOND => '红包剩余退回(钻石)',
|
||||
self::NOBILITY_PURCHASE_COIN => '爵位购买赠送(金币)',
|
||||
self::SIGN => '签约支出',
|
||||
self::SIGN_FAILURE => '签约失败退回',
|
||||
self::FIRST_SIGN_INCOME => '首次被签约收入',
|
||||
self::SIGN_MASTER_DAILY_RETURN => '签约师傅每日返还',
|
||||
self::BELIEVER_COMPENSATION => '解约补偿',
|
||||
self::SIGN_BE_SIGNED_INCOME => '被签约者收礼返佣给上级',
|
||||
self::RENEWAL => '续约',
|
||||
self::DAILY_SIGN => '每日签到',
|
||||
self::BOMB_COIN => '参与幸运币活动获得',
|
||||
self::RED_PACKET_FEE => '发红包手续费'
|
||||
self::RED_PACKET_LEFT_COIN => '红包剩余退回(金币)',
|
||||
self::RED_PACKET_LEFT_DIAMOND => '红包剩余退回(钻石)',
|
||||
self::NOBILITY_PURCHASE_COIN => '爵位购买赠送(金币)',
|
||||
self::SIGN => '签约支出',
|
||||
self::SIGN_FAILURE => '签约失败退回',
|
||||
self::FIRST_SIGN_INCOME => '首次被签约收入',
|
||||
self::SIGN_MASTER_DAILY_RETURN => '签约师傅每日返还',
|
||||
self::BELIEVER_COMPENSATION => '解约补偿',
|
||||
self::SIGN_BE_SIGNED_INCOME => '被签约者收礼返佣给上级',
|
||||
self::RENEWAL => '续约',
|
||||
self::DAILY_SIGN => '每日签到',
|
||||
self::BOMB_COIN => '参与幸运币活动获得',
|
||||
self::RED_PACKET_FEE => '发红包手续费',
|
||||
self::BACKGROUND_RECHARGE_COIN => '后台充值金币',
|
||||
self::BACKGROUND_RECHARGE_DIAMOND => '后台充值钻石',
|
||||
self::BACKGROUND_DEDUCTION_COIN => '后台扣除金币',
|
||||
self::BACKGROUND_DEDUCTION_DIAMOND => '后台扣除钻石'
|
||||
|
||||
|
||||
];
|
||||
if($type){
|
||||
if ($type) {
|
||||
return $status[$type] ?? '';
|
||||
}else{
|
||||
} else {
|
||||
return $status;
|
||||
}
|
||||
|
||||
@@ -227,13 +239,30 @@ class UserWallet extends Model
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public function change_user_money($user_id, $change_value, $money_type,$change_type, $remarks = "", $room_id=0,$from_uid = 0, $from_id = 0)
|
||||
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){
|
||||
if ($money_type == self::MONEYTYPECOIN) {
|
||||
$table_name = 'user_wallet_coin';
|
||||
}else{
|
||||
} 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
$user_info = db::name('user')->find($user_id);
|
||||
if (empty($user_info['id'])) {
|
||||
@@ -247,36 +276,36 @@ class UserWallet extends Model
|
||||
if (empty($money_type_str)) {
|
||||
return ['code' => 0, 'msg' => "非法资金类型", 'data' => null];
|
||||
}
|
||||
if ($money_type==self::MONEYTYPECOIN) {
|
||||
if ($money_type == self::MONEYTYPECOIN) {
|
||||
$after_coin = $user_wallet['coin'];
|
||||
$after_coin += $change_value;
|
||||
if($after_coin > 99999999){
|
||||
if ($after_coin > 99999999) {
|
||||
return ['code' => 0, 'msg' => "当前用户金币已达上限", 'data' => null];
|
||||
}
|
||||
} elseif ($money_type==self::MONEYTYPEARNINGS) {
|
||||
} elseif ($money_type == self::MONEYTYPEARNINGS) {
|
||||
$after_earnings = $user_wallet['earnings'];
|
||||
$after_earnings += $change_value;
|
||||
if($after_earnings > 99999999){
|
||||
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)){
|
||||
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 ($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) {
|
||||
if ($return) {
|
||||
return ['code' => 0, 'msg' => "请重试", 'data' => null];
|
||||
}else{
|
||||
} else {
|
||||
return ['code' => 1, 'msg' => "操作成功", 'data' => null];
|
||||
}
|
||||
}
|
||||
@@ -284,47 +313,48 @@ class UserWallet extends Model
|
||||
/*
|
||||
* 用户资金变动日志
|
||||
*/
|
||||
public function money_change_log($user_id,$seach, $money_type=0, $page=0,$page_limit=30){
|
||||
if($money_type==self::MONEYTYPECOIN){
|
||||
public function money_change_log($user_id, $seach, $money_type = 0, $page = 0, $page_limit = 30)
|
||||
{
|
||||
if ($money_type == self::MONEYTYPECOIN) {
|
||||
$table_name_log = 'user_coin_log';
|
||||
}else{
|
||||
} else {
|
||||
$table_name_log = 'user_earnings_log';
|
||||
}
|
||||
if($seach['stime']){
|
||||
$where['createtime'] = ['>=',strtotime($seach['stime'])];
|
||||
if ($seach['stime']) {
|
||||
$where['createtime'] = ['>=', strtotime($seach['stime'])];
|
||||
}
|
||||
if($seach['etime']){
|
||||
$where['createtime'] = ['<=',strtotime($seach['etime'])];
|
||||
if ($seach['etime']) {
|
||||
$where['createtime'] = ['<=', strtotime($seach['etime'])];
|
||||
}
|
||||
if($seach['change_type']){
|
||||
$where['change_type'] =$seach['change_type'];
|
||||
if ($seach['change_type']) {
|
||||
$where['change_type'] = $seach['change_type'];
|
||||
}
|
||||
$log['count'] = Db::name($table_name_log)->where($where)->where('user_id',$user_id)->count('id');
|
||||
$log_select = Db::name($table_name_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)
|
||||
->where('user_id', $user_id)
|
||||
->order('log_id desc');
|
||||
if($page){
|
||||
$log_select->page($page,$page_limit);
|
||||
if ($page) {
|
||||
$log_select->page($page, $page_limit);
|
||||
}
|
||||
$log['list'] = $log_select->select();
|
||||
foreach ($log['list'] as $key => &$value) {
|
||||
$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==self::MONEYTYPECOIN){
|
||||
if(in_array($change_type,$this->coin_consumption_type_array)){
|
||||
$value['createtime'] = date('Y-m-d H:i:s', $value['createtime']);
|
||||
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;
|
||||
}else{
|
||||
$value['change_value'] = $value['change_value'] * -1;
|
||||
} else {
|
||||
$value['change_in_out'] = "收入";
|
||||
}
|
||||
}else{
|
||||
if(in_array($change_type,$this->diamond_consumption_type_array)){
|
||||
} else {
|
||||
if (in_array($change_type, $this->diamond_consumption_type_array)) {
|
||||
$value['change_in_out'] = "支出";
|
||||
$value['change_value'] = $value['change_value']*-1;
|
||||
}else{
|
||||
$value['change_value'] = $value['change_value'] * -1;
|
||||
} else {
|
||||
$value['change_in_out'] = "收入";
|
||||
}
|
||||
}
|
||||
@@ -336,7 +366,8 @@ class UserWallet extends Model
|
||||
/*
|
||||
* 获取用户资金类型
|
||||
*/
|
||||
public function getChangeTypeLableList(){
|
||||
public function getChangeTypeLableList()
|
||||
{
|
||||
return $this->ChangeTypeLable();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user