89 lines
2.4 KiB
PHP
89 lines
2.4 KiB
PHP
<?php
|
|
|
|
namespace app\api\model\app\agent;
|
|
|
|
use think\Model;
|
|
use think\Db;
|
|
class Money extends Model
|
|
{
|
|
|
|
|
|
// 表名
|
|
protected $name = 'app_agent_member_money_log';
|
|
|
|
// 自动写入时间戳字段
|
|
protected $autoWriteTimestamp = 'integer';
|
|
|
|
// 定义时间戳字段名
|
|
protected $createTime = 'createtime';
|
|
protected $updateTime = false;
|
|
protected $deleteTime = false;
|
|
|
|
// 追加属性
|
|
protected $append = [
|
|
|
|
];
|
|
|
|
|
|
|
|
/**
|
|
* 变更资金
|
|
* @param $type 资金类型
|
|
* @param $userId 用户ID
|
|
* @param $money 变更金额
|
|
* @param $isFreeze 是否冻结 $type=money 有效
|
|
* @param $memo 备注
|
|
* @return bool
|
|
*/
|
|
public static function changeMoney($userId,$type,$money,$isFreeze = false,$memo = ''){
|
|
$user = \app\common\model\app\agent\Member::lock(true)->where([
|
|
'user_id'=>$userId
|
|
])->find();
|
|
if (!$user) {
|
|
return false;
|
|
}
|
|
|
|
$before = $user->money;
|
|
if($type == 'money'){
|
|
$after = function_exists('bcadd') ? bcadd($user->money, $money, 2) : $user->money + $money;
|
|
if($money > 0){
|
|
$totalMoney = function_exists('bcadd') ? bcadd($user->money_total, $money, 2) : $user->money_total + $money;
|
|
$changeParams['money_total'] = $totalMoney;
|
|
}
|
|
if($isFreeze){
|
|
$freezeMoney = function_exists('bcadd') ? bcadd($user->money_freeze, ($money * -1), 2) : $user->money_freeze + ($money * -1);
|
|
$changeParams['money_freeze'] = $freezeMoney;
|
|
}
|
|
}else{
|
|
$after = $before;
|
|
}
|
|
|
|
$totalMoney = function_exists('bcadd') ? bcadd($user->$type, $money, 2) : $user->$type + $money;
|
|
$changeParams[$type] = $totalMoney;
|
|
|
|
$user->save($changeParams);
|
|
//写入日志
|
|
if($memo !== false){
|
|
if($type != 'money'){
|
|
$money = 0;
|
|
}
|
|
self::addLog($userId,$money,$before,$after,$memo);
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* 添加日志
|
|
* @param $userId
|
|
* @param $money
|
|
* @param $before
|
|
* @param $after
|
|
* @param $memo
|
|
* @return void
|
|
*/
|
|
public static function addLog($userId,$money,$before,$after,$memo = '')
|
|
{
|
|
self::create(['user_id' => $userId, 'money' => $money, 'before' => $before, 'after' => $after, 'memo' => $memo,'uniacid'=>UNIACID]);
|
|
}
|
|
} |