2024-05-30 21:37:55 +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\admin\logic\user;
|
|
|
|
|
|
2024-06-20 11:41:14 +08:00
|
|
|
|
use app\common\enum\OrderEnum;
|
2024-05-30 21:37:55 +08:00
|
|
|
|
use app\common\enum\user\UserTerminalEnum;
|
2024-06-20 11:41:14 +08:00
|
|
|
|
use app\common\enum\YesNoEnum;
|
2024-05-30 21:37:55 +08:00
|
|
|
|
use app\common\logic\BaseLogic;
|
2024-06-20 11:41:14 +08:00
|
|
|
|
use app\common\model\finance\CapitalFlow;
|
2024-06-15 16:07:50 +08:00
|
|
|
|
use app\common\model\store_finance_flow\StoreFinanceFlow;
|
2024-05-30 21:37:55 +08:00
|
|
|
|
use app\common\model\user\User;
|
2024-06-14 16:05:48 +08:00
|
|
|
|
use app\common\model\user\UserAddress;
|
2024-06-15 13:44:32 +08:00
|
|
|
|
use app\common\model\user\UserRecharge;
|
2024-06-18 15:01:36 +08:00
|
|
|
|
use app\common\model\user_label\UserLabel;
|
2024-06-20 11:41:14 +08:00
|
|
|
|
use app\common\model\user_sign\UserSign;
|
|
|
|
|
use app\common\model\vip_flow\VipFlow;
|
2024-05-30 21:37:55 +08:00
|
|
|
|
use think\facade\Db;
|
|
|
|
|
use app\common\service\FileService;
|
|
|
|
|
use Webman\Config;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 用户逻辑层
|
|
|
|
|
* Class UserLogic
|
|
|
|
|
* @package app\admin\logic\user
|
|
|
|
|
*/
|
|
|
|
|
class UserLogic extends BaseLogic
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* @notes 添加用户列表
|
|
|
|
|
* @param array $params
|
|
|
|
|
* @return bool
|
|
|
|
|
* @author likeadmin
|
|
|
|
|
* @date 2024/04/25 10:20
|
|
|
|
|
*/
|
|
|
|
|
public static function add(array $params)
|
|
|
|
|
{
|
|
|
|
|
$passwordSalt = Config::get('project.unique_identification');
|
|
|
|
|
$password = create_password($params['password'], $passwordSalt);
|
|
|
|
|
$defaultAvatar = config('project.default_image.admin_avatar');
|
|
|
|
|
$avatar = !empty($params['avatar']) ? FileService::setFileUrl($params['avatar']) : $defaultAvatar;
|
|
|
|
|
|
|
|
|
|
Db::startTrans();
|
|
|
|
|
try {
|
|
|
|
|
$res=User::create([
|
|
|
|
|
'avatar' => $avatar,
|
|
|
|
|
'real_name' => $params['real_name'],
|
|
|
|
|
'nickname' => $params['nickname'],
|
|
|
|
|
'account' => $params['account'],
|
|
|
|
|
'password' => $password,
|
|
|
|
|
'mobile' => $params['mobile'],
|
|
|
|
|
'sex' => $params['sex'],
|
|
|
|
|
'is_disable' => $params['is_disable'],
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
Db::commit();
|
|
|
|
|
return $res;
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
Db::rollback();
|
|
|
|
|
self::setError($e->getMessage());
|
2024-06-14 15:53:47 +08:00
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static function StoreAdd(array $params)
|
|
|
|
|
{
|
|
|
|
|
$passwordSalt = Config::get('project.unique_identification');
|
2024-06-15 09:44:23 +08:00
|
|
|
|
$password = create_password(123456, $passwordSalt);
|
2024-06-14 15:53:47 +08:00
|
|
|
|
$defaultAvatar = config('project.default_image.admin_avatar');
|
|
|
|
|
$avatar = !empty($params['avatar']) ? FileService::setFileUrl($params['avatar']) : $defaultAvatar;
|
|
|
|
|
|
|
|
|
|
Db::startTrans();
|
|
|
|
|
try {
|
2024-06-14 16:05:48 +08:00
|
|
|
|
$data=[
|
2024-06-14 15:53:47 +08:00
|
|
|
|
'avatar' => $avatar,
|
2024-06-18 10:12:36 +08:00
|
|
|
|
'real_name' => $params['real_name']??"",
|
2024-06-14 15:53:47 +08:00
|
|
|
|
'nickname' => '用户'.time(),
|
|
|
|
|
'account' => $params['mobile'],
|
|
|
|
|
'password' => $password,
|
|
|
|
|
'mobile' => $params['mobile'],
|
2024-06-17 10:07:30 +08:00
|
|
|
|
'user_ship' => $params['user_ship']??0,
|
2024-06-15 09:44:23 +08:00
|
|
|
|
|
2024-06-14 16:05:48 +08:00
|
|
|
|
];
|
|
|
|
|
$res=User::create($data);
|
|
|
|
|
UserAddress::create([
|
|
|
|
|
'uid' => $res['id'],
|
2024-06-18 10:12:36 +08:00
|
|
|
|
'real_name' => $params['real_name']??"",
|
2024-06-14 16:05:48 +08:00
|
|
|
|
'mobile' => $params['mobile'],
|
|
|
|
|
'province' => $params['province'],
|
|
|
|
|
'city' => $params['city'],
|
2024-06-15 09:44:23 +08:00
|
|
|
|
'area' => $params['area'],
|
2024-06-14 16:05:48 +08:00
|
|
|
|
'street' => $params['street'],
|
|
|
|
|
'village' => $params['village'],
|
|
|
|
|
'brigade' => $params['brigade'],
|
|
|
|
|
'is_default' => 1,
|
2024-06-14 15:53:47 +08:00
|
|
|
|
]);
|
|
|
|
|
Db::commit();
|
|
|
|
|
return $res;
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
Db::rollback();
|
|
|
|
|
self::setError($e->getMessage());
|
2024-05-30 21:37:55 +08:00
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* @notes 编辑用户列表
|
|
|
|
|
* @param array $params
|
|
|
|
|
* @return bool
|
|
|
|
|
* @author likeadmin
|
|
|
|
|
* @date 2024/04/25 10:20
|
|
|
|
|
*/
|
|
|
|
|
public static function edit(array $params): bool
|
|
|
|
|
{
|
|
|
|
|
Db::startTrans();
|
|
|
|
|
try {
|
|
|
|
|
User::where('id', $params['id'])->update([
|
2024-06-17 18:00:40 +08:00
|
|
|
|
// 'avatar' => $params['avatar'] ?? '',
|
|
|
|
|
// 'real_name' => $params['real_name'],
|
|
|
|
|
// 'nickname' => $params['nickname'],
|
|
|
|
|
// 'account' => $params['account'],
|
|
|
|
|
// 'password' => $params['password'] ?? '',
|
|
|
|
|
// 'mobile' => $params['mobile'] ?? '',
|
|
|
|
|
// 'sex' => $params['sex'] ?? 0,
|
|
|
|
|
// 'is_disable' => $params['is_disable'] ?? 0,
|
|
|
|
|
'label_id'=>$params['label_id']
|
2024-05-30 21:37:55 +08:00
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
Db::commit();
|
|
|
|
|
return true;
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
Db::rollback();
|
|
|
|
|
self::setError($e->getMessage());
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @notes 用户详情
|
|
|
|
|
* @param int $userId
|
|
|
|
|
* @return array
|
|
|
|
|
* @author 乔峰
|
|
|
|
|
* @date 2022/9/22 16:32
|
|
|
|
|
*/
|
|
|
|
|
public static function detail(int $userId): array
|
|
|
|
|
{
|
|
|
|
|
$field = [
|
2024-06-18 15:01:36 +08:00
|
|
|
|
'id', 'account', 'nickname', 'avatar', 'real_name','integral','label_id',
|
2024-06-15 16:07:50 +08:00
|
|
|
|
'sex', 'mobile', 'create_time', 'login_time', 'channel','now_money','purchase_funds'
|
2024-05-30 21:37:55 +08:00
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
$user = User::where(['id' => $userId])->field($field)
|
|
|
|
|
->findOrEmpty();
|
|
|
|
|
|
|
|
|
|
$user['channel'] = UserTerminalEnum::getTermInalDesc($user['channel']);
|
|
|
|
|
$user->sex = $user->getData('sex');
|
2024-06-15 16:07:50 +08:00
|
|
|
|
$user['number']=StoreFinanceFlow::where('other_uid',$userId)->where(['status'=>0,'financial_pm'=>1,'type'=>1])->sum('number');
|
2024-06-18 15:01:36 +08:00
|
|
|
|
$user['label_name']=$user->label_id?UserLabel::where('label_id',$user->label_id)->value('label_name'):"";
|
2024-05-30 21:37:55 +08:00
|
|
|
|
return $user->toArray();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @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']
|
|
|
|
|
]);
|
|
|
|
|
}
|
2024-06-20 11:41:14 +08:00
|
|
|
|
|
|
|
|
|
public static function dealDetails($params)
|
|
|
|
|
{
|
|
|
|
|
switch ($params['type']){
|
|
|
|
|
case 1:
|
|
|
|
|
//采购款明细
|
|
|
|
|
$query =CapitalFlow::where(['uid'=>$params['id']]);
|
|
|
|
|
$count = $query->count();
|
|
|
|
|
$data = $query
|
|
|
|
|
->page($params['page_no'],$params['page_size'])
|
|
|
|
|
->select()->toArray();
|
|
|
|
|
break;
|
|
|
|
|
case 2:
|
|
|
|
|
//余额明细
|
|
|
|
|
|
|
|
|
|
$query = StoreFinanceFlow::with(['store'])
|
|
|
|
|
->where([
|
|
|
|
|
'other_uid'=>$params['id'],'financial_type'=> OrderEnum::VIP_ORDER_OBTAINS,
|
|
|
|
|
'financial_pm'=>YesNoEnum::YES
|
|
|
|
|
]);
|
|
|
|
|
$count = $query->count();
|
|
|
|
|
$data = $query
|
|
|
|
|
->page($params['page_no'],$params['page_size'])
|
|
|
|
|
->select()->toArray();
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
case 3:
|
|
|
|
|
//礼品券明细
|
|
|
|
|
$query = UserSign::where(['uid'=>$params['id']]);
|
|
|
|
|
$count = $query->count();
|
|
|
|
|
$data =$query
|
|
|
|
|
->page($params['page_no'],$params['page_size'])
|
|
|
|
|
->select()->toArray();
|
|
|
|
|
break;
|
|
|
|
|
case 4:
|
|
|
|
|
//返还金明细 -todo back
|
|
|
|
|
$query = VipFlow::with('store')->where(['user_id'=>$params['id']]);
|
|
|
|
|
$count = $query->count();
|
|
|
|
|
$data = $query
|
|
|
|
|
->page($params['page_no'],$params['page_size'])
|
|
|
|
|
->select()->toArray();
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
$data = [];
|
|
|
|
|
$count = 0;
|
|
|
|
|
}
|
|
|
|
|
return [
|
|
|
|
|
'list' => $data,
|
|
|
|
|
'count' => $count
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2024-05-30 21:37:55 +08:00
|
|
|
|
}
|