王总上门按摩后台代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
shangmenanmo/app/agent/controller/AdminController.php

207 lines
6.3 KiB

<?php
namespace app\agent\controller;
use think\App;
use app\AdminRest;
use app\agent\model\AdminModel;
use app\agent\model\AppAdminModel;
use app\AgentRest;
use app\agent\validate\AgentAdminValidate;
class AdminController extends AgentRest
{
public function __construct ( App $app ){
parent::__construct( $app );
if ($this->_user['role_name'] != 'admin') {
echo json_encode(['code' => 401, 'error' => lang('Permission denied')]);
exit;
}
}
/*
*获取用户列表
*/
public function list()
{
$param = $this->_param;
$dis = [];
if(!empty($param['name'])){
$dis[] = ['a.account','like',"%".$param['name'].'%'];
$dis[] = ['d.mini_app_name','like',"%".$param['name'].'%'];
}
$list = AdminModel::alias('a')
->field(['a.admin_id', 'a.level','a.account', 'a.role_id', 'a.create_time', 'r.description','d.mini_app_name as mini_name','c.modular_id'])
->leftJoin('longbing_role r', 'a.role_id = r.role_id')
->leftJoin('longbing_app_admin c', 'a.admin_id = c.admin_id')
->leftJoin('longbing_card_config d', 'c.modular_id = d.uniacid')
->where([['a.status', '=', 1], ['a.uniacid', '=', $this->_uniacid]])
->where(function ($query) use ($dis){
$query->whereOr($dis);
})
->order('a.create_time desc')
->paginate(['list_rows' => $param['page_count'] ? $param['page_count'] : 10, 'page' => $param['page'] ? $param['page'] : 1])
->toArray();
// $admin_ids = array_column($list['data'], 'admin_id');
// $app_admins = [];
// $app_admins_tmp = AppAdminModel::alias('aa')
// ->field(['aa.admin_id', 'aa.modular_id', 'c.mini_app_name' => 'mini_name'])
// ->leftJoin('longbing_card_config c', 'aa.modular_id = c.uniacid')
// ->where([['aa.admin_id', 'IN', $admin_ids]])->select();
//
// foreach ($app_admins_tmp as $k => $v) {
// $app_admins[$v['admin_id']] = $v;
// }
foreach ($list['data'] as $k => $v) {
$list['data'][$k]['is_bind'] = !empty($v['mini_name']);
if($v['description']!='超级管理员'){
$list['data'][$k]['description'] = $v['level']==0?'管理员':'员工';
}
// $list['data'][$k]['mini_name'] = $app_admins[$v['admin_id']]['mini_name'] ?? null;
// $list['data'][$k]['modular_id'] = $app_admins[$v['admin_id']]['modular_id'] ?? null;
}
$list['zhihuituike'] = longbingIsZhihuituike();
return $this->success($list);
}
//添加用户
public function addSubAdmin()
{
$input = $this->_input;
$validate = new AgentAdminValidate();
if (false == $validate->scene('addSubAdmin')->check($input)) {
return $this->error($validate->getError());
};
/**
* @var AdminModel $subAdmin
*/
$subAdmin = AdminModel::where([['account', '=', $input['account']], ['status', '=', 1]])->findOrEmpty();
if (!$subAdmin->isEmpty()) {
return $this->error('该账号已存在');
}
$offset = createOffset();
$new = [
'admin_id' => uuid(),
'account' => $input['account'],
'uniacid' => $this->_uniacid,
'offset' => $offset,
'passwd' => createPasswd($input['passwd'], $offset),
'role_id' => 'e7d81116997011e99b985595a87cbdcb',
'creator_id' => $this->_user['admin_id'],
'status' => 1,
'level' => $input['level']
];
$rst = $subAdmin->save($new);
if (!$rst) {
return $this->error('fail');
}
return $this->success($rst);
}
/*
* 管理员修改用户信息
*/
public function updateSubAdmin()
{
//获取数据
$input = $this->_input;
//字段校验
$validate = new AgentAdminValidate();
if (false == $validate->scene('addSubAdmin')->check($input)) {
return $this->error($validate->getError());
};
/**
* @var AdminModel $subAdmin
*/
$subAdmin = AdminModel::where([['admin_id', '=', $input['admin_id']], ['uniacid', '=', $this->_uniacid]])->find();
if (empty($subAdmin)) {
return $this->error('用户不存在');
}
//强制修改密码
$input['passwd'] = createPasswd($input['passwd'] ,$subAdmin['offset']);
$result = $subAdmin->save([
'passwd' => $input['passwd'],
'level' => $input['level'],
]);
return $this->success($result);
}
public function delSubAdmin()
{
$input = $this->_input;
$validate = new AgentAdminValidate();
if (false == $validate->scene('delSubAdmin')->check($input)) {
return $this->error($validate->getError());
};
/**
* @var AdminModel $subAdmin
*/
$subAdmin = AdminModel::where([['admin_id', '=', $input['admin_id']], ['uniacid', '=', $this->_uniacid]])->findOrEmpty();
if ($subAdmin->isEmpty()) {
return $this->error('用户不存在');
}
if ($subAdmin->admin_id == $this->_user['admin_id']) {
return $this->error("不可以删除自己");
}
$rst = $subAdmin->save([
'status' => 0,
]);
return $this->success($rst);
}
public function bindApp()
{
$input = $this->_input;
$admin_id = $input['admin_id'];
$modular_id = $input['modular_id'];
if ($admin_id == $this->_user['admin_id']) {
return $this->error("超级管理员不能绑定小程序, 您可以创建子账号绑定");
}
$admin_bind_count = AppAdminModel::where([['admin_id', '=', $admin_id]])->count();
if ($admin_bind_count > 0) {
return $this->error('该用户已经绑定了一个小程序');
}
$appAdmin = new AppAdminModel();
$rst = $appAdmin->save([
'id' => md5($modular_id . $admin_id),
'modular_id' => $modular_id,
'uniacid' => $this->_uniacid,
'admin_id' => $admin_id
]);
return $this->success($rst);
}
}