2023-11-21 11:51:27 +08:00
|
|
|
|
<?php
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | likeadmin快速开发前后端分离管理后台(PHP版)
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
|
|
|
|
// | 开源版本可自由商用,可去除界面版权logo
|
|
|
|
|
// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
|
|
|
|
|
// | github下载:https://github.com/likeshop-github/likeadmin
|
|
|
|
|
// | 访问官网:https://www.likeadmin.cn
|
|
|
|
|
// | likeadmin团队 版权所有 拥有最终解释权
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | author: likeadminTeam
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
namespace app\adminapi\logic\user;
|
|
|
|
|
|
|
|
|
|
use app\common\enum\user\AccountLogEnum;
|
|
|
|
|
use app\common\enum\user\UserTerminalEnum;
|
|
|
|
|
use app\common\logic\AccountLogLogic;
|
|
|
|
|
use app\common\logic\BaseLogic;
|
|
|
|
|
use app\common\model\user\User;
|
|
|
|
|
use think\facade\Db;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 用户逻辑层
|
|
|
|
|
* Class UserLogic
|
|
|
|
|
* @package app\adminapi\logic\user
|
|
|
|
|
*/
|
|
|
|
|
class UserLogic extends BaseLogic
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @notes 用户详情
|
|
|
|
|
* @param int $userId
|
|
|
|
|
* @return array
|
|
|
|
|
* @author 段誉
|
|
|
|
|
* @date 2022/9/22 16:32
|
|
|
|
|
*/
|
|
|
|
|
public static function detail(int $userId): array
|
|
|
|
|
{
|
|
|
|
|
$field = [
|
|
|
|
|
'id', 'sn', 'account', 'nickname', 'avatar', 'real_name',
|
2023-11-22 18:10:32 +08:00
|
|
|
|
'sex', 'mobile', 'create_time', 'login_time', 'channel', 'is_disable',
|
2023-11-21 11:51:27 +08:00
|
|
|
|
'user_money',
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
$user = User::where(['id' => $userId])->field($field)
|
|
|
|
|
->findOrEmpty();
|
|
|
|
|
|
|
|
|
|
$user['channel'] = UserTerminalEnum::getTermInalDesc($user['channel']);
|
|
|
|
|
$user->sex = $user->getData('sex');
|
|
|
|
|
return $user->toArray();
|
|
|
|
|
}
|
|
|
|
|
|
2023-12-05 20:08:24 +08:00
|
|
|
|
public function datas($params): array
|
|
|
|
|
{
|
|
|
|
|
$userWhere['id'] = 0;
|
|
|
|
|
// 超级管理员数据
|
|
|
|
|
if (request()->adminInfo['root'] && !request()->adminInfo['user_id']) {
|
|
|
|
|
unset($userWhere['id']);
|
|
|
|
|
}
|
|
|
|
|
// 普通用户数据
|
|
|
|
|
if (!request()->adminInfo['root'] && request()->adminInfo['user_id']) {
|
|
|
|
|
$userWhere['id'] = request()->adminInfo['user_id'];
|
|
|
|
|
}
|
|
|
|
|
$where = [];
|
|
|
|
|
if (!empty($params['keyword'])) {
|
|
|
|
|
$where[] = ['sn|nickname|account|mobile', 'like', '%' . $params['keyword'] . '%'];
|
|
|
|
|
}
|
|
|
|
|
$field = "id,sn,nickname,sex,avatar,account,mobile,channel,is_disable,create_time";
|
|
|
|
|
$lists = User::where($userWhere)->where($where)
|
|
|
|
|
->limit(0, 100)
|
|
|
|
|
->field($field)
|
|
|
|
|
->order('id desc')
|
|
|
|
|
->select()->toArray();
|
|
|
|
|
foreach ($lists as &$item) {
|
2023-12-06 11:07:24 +08:00
|
|
|
|
$item['userinfo'] = $item['id'] . ' / ' . $item['account'];
|
2023-12-05 20:08:24 +08:00
|
|
|
|
}
|
|
|
|
|
return $lists;
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-21 11:51:27 +08:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @notes 更新用户信息
|
|
|
|
|
* @param array $params
|
|
|
|
|
* @return User
|
|
|
|
|
* @author 段誉
|
|
|
|
|
* @date 2022/9/22 16:38
|
|
|
|
|
*/
|
|
|
|
|
public static function setUserInfo(array $params)
|
|
|
|
|
{
|
|
|
|
|
return User::update([
|
|
|
|
|
'id' => $params['id'],
|
|
|
|
|
$params['field'] => $params['value']
|
|
|
|
|
]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @notes 调整用户余额
|
|
|
|
|
* @param array $params
|
|
|
|
|
* @return bool|string
|
|
|
|
|
* @author 段誉
|
|
|
|
|
* @date 2023/2/23 14:25
|
|
|
|
|
*/
|
|
|
|
|
public static function adjustUserMoney(array $params)
|
|
|
|
|
{
|
|
|
|
|
Db::startTrans();
|
|
|
|
|
try {
|
|
|
|
|
$user = User::find($params['user_id']);
|
|
|
|
|
if (AccountLogEnum::INC == $params['action']) {
|
|
|
|
|
//调整可用余额
|
|
|
|
|
$user->user_money += $params['num'];
|
|
|
|
|
$user->save();
|
|
|
|
|
//记录日志
|
|
|
|
|
AccountLogLogic::add(
|
|
|
|
|
$user->id,
|
|
|
|
|
AccountLogEnum::UM_INC_ADMIN,
|
|
|
|
|
AccountLogEnum::INC,
|
|
|
|
|
$params['num'],
|
|
|
|
|
'',
|
|
|
|
|
$params['remark'] ?? ''
|
|
|
|
|
);
|
|
|
|
|
} else {
|
|
|
|
|
$user->user_money -= $params['num'];
|
|
|
|
|
$user->save();
|
|
|
|
|
//记录日志
|
|
|
|
|
AccountLogLogic::add(
|
|
|
|
|
$user->id,
|
|
|
|
|
AccountLogEnum::UM_DEC_ADMIN,
|
|
|
|
|
AccountLogEnum::DEC,
|
|
|
|
|
$params['num'],
|
|
|
|
|
'',
|
|
|
|
|
$params['remark'] ?? ''
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Db::commit();
|
|
|
|
|
return true;
|
|
|
|
|
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
Db::rollback();
|
|
|
|
|
return $e->getMessage();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|