You've already forked think-plugs-staff
Init
This commit is contained in:
151
src/controller/User.php
Normal file
151
src/controller/User.php
Normal file
@@ -0,0 +1,151 @@
|
||||
<?php
|
||||
|
||||
namespace jerryyan\staff\controller;
|
||||
|
||||
use jerryyan\staff\model\StaffDept;
|
||||
use jerryyan\staff\model\StaffUser;
|
||||
use think\admin\Controller;
|
||||
use think\admin\helper\QueryHelper;
|
||||
use think\admin\model\SystemAuth;
|
||||
use think\admin\model\SystemUser;
|
||||
|
||||
/**
|
||||
* 部门员工管理
|
||||
*/
|
||||
class User extends Controller
|
||||
{
|
||||
/**
|
||||
* 部门员工管理
|
||||
* @menu true
|
||||
* @auth true
|
||||
* @return null
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return StaffUser::mQuery()->layTable(function () {
|
||||
$this->title = '部门员工';
|
||||
$this->dept = StaffDept::tree();
|
||||
}, static function (QueryHelper $query) {
|
||||
$query->equal('dept_id,status')->like('name');
|
||||
$query->with('dept')->append(['dept_name']);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加员工
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @return void
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
StaffUser::mForm('form');
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑员工
|
||||
* @auth true
|
||||
* @return void
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
StaffUser::mForm('form');
|
||||
}
|
||||
|
||||
protected function _form_filter(array &$data)
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
// 检查资料是否完整
|
||||
$this->_vali([
|
||||
'name.require' => '用户名称不能为空!',
|
||||
'phone.require' => '手机号码不能为空!',
|
||||
'phone.mobile' => '手机号码格式错误!',
|
||||
'email.email' => '邮箱地址格式错误!',
|
||||
'dept_id.require' => '部门名称不能为空!',
|
||||
'authorize.require' => '未配置权限!'
|
||||
]);
|
||||
if (!empty($data['password'])) {
|
||||
if (strlen($data['password']) < 6) {
|
||||
$this->error('密码长度不能少于6位!');
|
||||
};
|
||||
}
|
||||
} else {
|
||||
if (!empty($data['id'])) {
|
||||
$user = SystemUser::mk()->find($data['id']);
|
||||
$data['authorize'] = str2arr($user['authorize'] ?? '');;
|
||||
} else {
|
||||
$data['authorize'] = [];
|
||||
}
|
||||
$data['dept_id'] = $data['dept_id'] ?? '';
|
||||
$this->auths = SystemAuth::items();
|
||||
$this->depts = StaffDept::items();
|
||||
}
|
||||
}
|
||||
|
||||
protected function _form_result(bool $state, $data)
|
||||
{
|
||||
if ($state) {
|
||||
$user = [];
|
||||
// 检查账号是否重复
|
||||
$map = ['username' => $data['phone'], 'is_deleted' => 0];
|
||||
$systemUser = SystemUser::mk()->where($map)->findOrEmpty();
|
||||
if ($systemUser->isExists() && $systemUser->id != $data['id']) {
|
||||
$this->error("账号已经存在,请使用其它账号!");
|
||||
}
|
||||
$user['id'] = $data['id'];
|
||||
$user['username'] = $data['phone'];
|
||||
if (!empty($data['password'])) {
|
||||
$user['password'] = md5($data['password']);
|
||||
}
|
||||
$user['nickname'] = $data['name'];
|
||||
$user['contact_mail'] = $data['email'];
|
||||
// 处理上传的权限格式
|
||||
$user['authorize'] = arr2str($data['authorize'] ?? []);
|
||||
SystemUser::mk()->save($user);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用禁用员工
|
||||
* @return void
|
||||
*/
|
||||
public function state()
|
||||
{
|
||||
StaffUser::mSave($this->_vali([
|
||||
'status.in:0,1' => '状态值范围异常!',
|
||||
'status.require' => '状态值不能为空!',
|
||||
]));
|
||||
}
|
||||
|
||||
protected function _state_save_result(bool $state, $data)
|
||||
{
|
||||
if ($state) {
|
||||
$systemUser = SystemUser::mk()->findOrEmpty($this->request->post('id'));
|
||||
if ($systemUser->isExists()) {
|
||||
$systemUser->status = $this->request->post('status');
|
||||
$systemUser->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除员工
|
||||
* @auth true
|
||||
* @return void
|
||||
*/
|
||||
public function del()
|
||||
{
|
||||
StaffUser::mDelete();
|
||||
}
|
||||
|
||||
protected function _del_delete_result(bool $state)
|
||||
{
|
||||
if ($state) {
|
||||
$systemUser = SystemUser::mk()->findOrEmpty($this->request->post('id'));
|
||||
if ($systemUser->isExists()) {
|
||||
$systemUser->is_deleted = 1;
|
||||
$systemUser->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user