From fb0608d7b0dd55976db62e475021e4ba555be7dd Mon Sep 17 00:00:00 2001 From: jianglong Date: Sun, 17 Sep 2023 12:52:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/qingdong/model/Staff.php | 16 +++++--- .../admin/controller/qingdong/department/Staff.php | 45 ++++++++++++++++++++++ application/admin/library/Auth.php | 2 +- application/admin/view/index/index.html | 2 +- application/admin/view/index/register.html | 5 ++- application/config.php | 2 +- public/assets/js/require-backend.min.js | 4 +- public/assets/js/require-form.js | 4 +- 8 files changed, 66 insertions(+), 14 deletions(-) diff --git a/addons/qingdong/model/Staff.php b/addons/qingdong/model/Staff.php index af53d3e..b4a5640 100644 --- a/addons/qingdong/model/Staff.php +++ b/addons/qingdong/model/Staff.php @@ -7,6 +7,7 @@ use app\admin\controller\qingdong\Base; use app\admin\library\Auth; use app\admin\model\AuthGroup; use app\admin\model\AuthGroupAccess; +use app\admin\model\MemberGroup; use app\admin\model\MemberGroupAccess; use think\Db; use think\Model; @@ -224,7 +225,7 @@ class Staff Extends Model { if(!is_array($l_ids)){ $l_ids=explode(',',$l_ids); } - $ids=AuthGroup::where(['pid' =>['in',$l_ids]])->column('id'); + $ids=MemberGroup::where(['pid' =>['in',$l_ids]])->column('id'); if ($ids) { $w_ids = self::getLowerId($ids,false); $ids = array_merge($ids, $w_ids); @@ -256,7 +257,7 @@ class Staff Extends Model { case 3://本部门 $uids = MemberGroupAccess::where(['group_id' => ['in', $groupIds]])->column('uid'); $l_ids = self::where([ - 'id' => ['in', $uids], + 'id' => ['admin_id', $uids], 'status' => 1, // 'id' => ['neq', $staff->id] ])->column('id'); @@ -265,7 +266,7 @@ class Staff Extends Model { $groupIds = self::getLowerId($groupIds, false); $uids = MemberGroupAccess::where(['group_id' => ['in', $groupIds]])->column('uid'); $l_ids = self::where([ - 'id' => ['in', $uids], + 'admin_id' => ['in', $uids], 'status' => 1, // 'id' => ['neq', $staff->id] ])->column('id'); @@ -274,13 +275,18 @@ class Staff Extends Model { $groupIds = self::getLowerId($groupIds, true); $uids = MemberGroupAccess::where(['group_id' => ['in', $groupIds]])->column('uid'); $l_ids = self::where([ - 'id' => ['in', $uids], + 'admin_id' => ['in', $uids], 'status' => 1, // 'id' => ['neq', $staff->id] ])->column('id'); break; case 6://全部 - $l_ids = Db::where("member_company")->where("cid",CID)->where( 'uid','neq',$staff->id)->column("uid"); + $uids = Db::where("member_company")->where("cid",CID)->where( 'uid','neq',$staff->id)->column("uid"); + $l_ids = self::where([ + 'admin_id' => ['in', $uids], + 'status' => 1, +// 'id' => ['neq', $staff->id] + ])->column('id'); // $l_ids = self::where([ // 'cid'=>CID, // 'status' => 1, diff --git a/application/admin/controller/qingdong/department/Staff.php b/application/admin/controller/qingdong/department/Staff.php index 9e1ccb9..e4c8546 100644 --- a/application/admin/controller/qingdong/department/Staff.php +++ b/application/admin/controller/qingdong/department/Staff.php @@ -9,6 +9,7 @@ use app\admin\model\AuthGroup; use app\admin\controller\qingdong\Base; use app\admin\model\MemberCompany; use app\admin\model\MemberGroup; +use app\admin\model\MemberGroupAccess; use fast\Tree; use think\Db; use think\Exception; @@ -118,9 +119,15 @@ class Staff extends Base { $data['admin_id'] = $admin['id']; } $result = $this->model->save($data); + $staffId = $this->model->getLastInsID(); + $admin = Admin::where(['username'=>$mobile])->find(); if($admin){ + //当前表再次同步下admin_id $userId = $admin['id']; + $this->model->save(['admin_id'=>$userId],['id'=>$staffId]); + + //同步企业数据 $memberUserCount = MemberCompany::where(['uid'=>$userId,'cid'=>CID])->count(); if($memberUserCount == 0){ $memberCompany = [ @@ -132,9 +139,22 @@ class Staff extends Base { $memberCompanym = new MemberCompany(); $memberCompanym->save($memberCompany); } + + //同步权限数据 + foreach ($group as $gid){ + $staffGroupData = [ + 'uid' => $userId, + 'cid' => CID, + 'group_id' => $gid + ]; + $memberGroupAccess = new MemberGroupAccess(); + $memberGroupAccess->save($staffGroupData); + } + } Db::commit(); }catch (Exception $e){ + var_dump($e); Db::rollback(); $this->error($e->getMessage()); } @@ -193,6 +213,31 @@ class Staff extends Base { $data['group_ids']=implode(',',$group); $data['id']=$map['id']; $result=$this->model->save($data,$map); + + $admin = Admin::where(['username'=>$mobile])->find(); + if($admin){ + + $userId = $admin['id']; + + //当前表再次同步下admin_id + $nowData = StaffModel::where(['mobile'=>$mobile,'id'=>['neq',$ids],'CID'=>CID])->count(); + if(!$nowData['admin_id']){ + $this->model->save(['admin_id'=>$userId],['id'=>$map['id']]); + } + + //删除现有权限 重新添加权限 + $memberGroupAccess = new MemberGroupAccess(); + $memberGroupAccess->where('uid','=',$userId)->delete(); + //同步权限数据 + foreach ($group as $gid){ + $staffGroupData = [ + 'uid' => $userId, + 'cid' => CID, + 'group_id' => $gid + ]; + $memberGroupAccess->save($staffGroupData); + } + } Db::commit(); }catch (Exception $e){ Db::rollback(); diff --git a/application/admin/library/Auth.php b/application/admin/library/Auth.php index 599ba0a..64de757 100644 --- a/application/admin/library/Auth.php +++ b/application/admin/library/Auth.php @@ -410,7 +410,7 @@ class Auth extends \fast\Auth } } - if($v['uid'] < 100000){ + if($v['uid'] < 100000 || !defined("CID") || CID==0){ // 取出所有分组 $groupList = \app\admin\model\AuthGroup::where(['status' => 'normal'])->select(); }else{ diff --git a/application/admin/view/index/index.html b/application/admin/view/index/index.html index 0fd259a..33a5b90 100644 --- a/application/admin/view/index/index.html +++ b/application/admin/view/index/index.html @@ -4,7 +4,7 @@ {include file="common/meta" /} - +
diff --git a/application/admin/view/index/register.html b/application/admin/view/index/register.html index cfd35f0..0727b67 100644 --- a/application/admin/view/index/register.html +++ b/application/admin/view/index/register.html @@ -111,11 +111,11 @@
- 获取验证码 + 获取验证码
- +
@@ -124,6 +124,7 @@ + {include file="common/script" /}