You've already forked think-plugs-staff
160 lines
4.6 KiB
PHP
160 lines
4.6 KiB
PHP
<?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'] ?? []);
|
|
if (!empty($data['id'])) {
|
|
$systemUser = SystemUser::mk()->findOrEmpty($data['id']);
|
|
if ($systemUser->isExists()) {
|
|
$systemUser->save($user);
|
|
} else {
|
|
SystemUser::mk()->save($user);
|
|
}
|
|
} else {
|
|
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();
|
|
}
|
|
}
|
|
}
|
|
} |