Files
amb_wechatapp/application/api/model/app/agent/Money.php
T

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]);
}
}