|
@@ -352,116 +352,124 @@ class User extends BaseController{
|
|
|
return app_show(0,"获取成功",$list);
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 修改用户基础信息
|
|
|
- */
|
|
|
- public function setRole(){
|
|
|
- $post=$this->request->only(["id"=>"","nickname"=>"","mobile"=>"","relaComNo"=>"","companyNo"=>"","roleid"=>"",
|
|
|
- "token"=>""],"post","trim");
|
|
|
-
|
|
|
- $valide=Validate::rule([
|
|
|
- "id|账户ID"=>"require|number|gt:0",
|
|
|
- "nickname|名称"=>"require|max:255",
|
|
|
- "mobile|手机号"=>"require|mobile",
|
|
|
- "relaComNo|业务公司"=>"max:255",
|
|
|
- "companyNo|业务公司"=>"max:255",
|
|
|
- "roleid|角色ID"=>"require|number",
|
|
|
- ]);
|
|
|
- if($valide->check($post)==false) return error_show(1004,$valide->getError());
|
|
|
- if($post['roleid']!=0){
|
|
|
- $roleinfo =Db::name("role")->where("id","=",$post['roleid'])->find();
|
|
|
- if(empty($roleinfo)){
|
|
|
- return error_show(1002,"角色不存在");
|
|
|
- }
|
|
|
- if($roleinfo['status']==0){
|
|
|
- return error_show(1002,"角色已禁用");
|
|
|
- }
|
|
|
- if($roleinfo['level']==1){
|
|
|
- return error_show(1002,"超管级别角色不允许设置");
|
|
|
- }
|
|
|
- }
|
|
|
- if($this->level==1){
|
|
|
- $companyNo = isset($post['companyNo'])&&$post['companyNo']!=='' ? trim($post['companyNo']) :"";
|
|
|
- }else{
|
|
|
- $companyNo = isset($post['relaComNo'])&&$post['relaComNo']!=='' ? trim($post['relaComNo']) :"";
|
|
|
- }
|
|
|
- if($companyNo==""){
|
|
|
- return error_show(1004,"业务公司编号不能为空");
|
|
|
- }
|
|
|
- $company =Db::name("supplier_info")->where(["code"=>$companyNo])->find();
|
|
|
- if($company==false){
|
|
|
- return error_show(1004,"业务公司不存在");
|
|
|
- }
|
|
|
- $isSuper = Db::name("user_role")->alias("a")
|
|
|
- ->leftJoin("role b","a.roleid=b.id")
|
|
|
- ->where(["a.uid"=>$post['id'],"a.is_del"=>0,"b.level"=>1])
|
|
|
- ->findOrEmpty();
|
|
|
- if(!empty($isSuper))return error_show(1002,"超管账户不允许设置其他角色");
|
|
|
- $userrole = Db::name("user_role")
|
|
|
- ->where(["uid"=>$post['id'],"companyNo"=>$companyNo,"is_del"=>0])
|
|
|
- ->find();
|
|
|
- $ismain =Db::name("user_role")->where(["uid"=>$post['id'],"is_main"=>1,"is_del"=>0])->find();
|
|
|
- Db::startTrans();
|
|
|
- try{
|
|
|
+ /**
|
|
|
+ * 修改用户基础信息
|
|
|
+ */
|
|
|
+ public function setRole()
|
|
|
+ {
|
|
|
+ $post = $this->request->only(["id", 'nickname', 'mobile', "relaComNo" => "", "companyNo" => "", "roleid", "token" => ""], "post", "trim");
|
|
|
+
|
|
|
+ $valide = Validate::rule([
|
|
|
+ "id|账户ID" => "require|number|gt:0",
|
|
|
+ "nickname|名称" => "require|max:255",
|
|
|
+ "mobile|手机号" => "require|mobile",
|
|
|
+ "relaComNo|业务公司" => "max:255",
|
|
|
+ "companyNo|业务公司" => "max:255",
|
|
|
+ "roleid|角色ID" => "require|number",
|
|
|
+ ]);
|
|
|
+ if ($valide->check($post) == false) return error_show(1004, $valide->getError());
|
|
|
+ if ($post['roleid'] != 0) {
|
|
|
+ $roleinfo = Db::name("role")
|
|
|
+ ->field('id,status,level')
|
|
|
+ ->where("id", $post['roleid'])
|
|
|
+ ->find();
|
|
|
+ if (empty($roleinfo)) return error_show(1002, "角色不存在");
|
|
|
+ if ($roleinfo['status'] == 0) return error_show(1002, "角色已禁用");
|
|
|
+ if ($roleinfo['level'] == 1) return error_show(1002, "超管级别角色不允许设置");
|
|
|
|
|
|
- if(empty($userrole)){
|
|
|
- $roledata =[
|
|
|
- "uid"=>$post['id'],
|
|
|
- "roleid"=>$post['roleid'],
|
|
|
- "nickname"=>$post['nickname'],
|
|
|
- "companyNo"=>$companyNo,
|
|
|
- "company_type"=>$company["type"]==3?2:1,
|
|
|
- "is_main"=>$ismain?0:1,
|
|
|
- "status"=>1,
|
|
|
- "addtime"=>date("Y-m-d H:i:s"),
|
|
|
- "updatetime"=>date("Y-m-d H:i:s")
|
|
|
- ];
|
|
|
- $companyarr=[
|
|
|
- [
|
|
|
- "companyCode"=>$company["code"],
|
|
|
- "companyName"=>$company["name"],
|
|
|
- "company_type"=>$company["type"]==3?2:1,
|
|
|
- "is_main"=>$ismain?0:1
|
|
|
- ]
|
|
|
- ];
|
|
|
-
|
|
|
- $companyinfo = ["id"=>$post['id'],"company"=>$companyarr,"token"=>$post['token']];
|
|
|
- $companyset =setUserCompany($companyinfo);
|
|
|
- if(!isset($companyset['code'])||$companyset['code']!=0){
|
|
|
- return error_show(1004,$companyset['message']);
|
|
|
- }
|
|
|
-
|
|
|
- $up= Db::name("user_role")->insert($roledata);
|
|
|
- }else{
|
|
|
- $userrole['roleid'] = $post['roleid'];
|
|
|
- $userrole['nickname'] = $post['nickname'];
|
|
|
- $userrole['companyNo'] = $companyNo;
|
|
|
- $userrole['company_type'] =$company["type"]==3?2:1;
|
|
|
- $userrole['updatetime'] = date("Y-m-d H:i:s");
|
|
|
- $up=Db::name("user_role")->where(["uid"=>$post['id'],"companyNo"=>$companyNo,"is_del"=>0])->save($userrole);
|
|
|
- }
|
|
|
- $saveinfo =[
|
|
|
- "id"=>$post['id'],
|
|
|
- "nickname"=>$post['nickname'],
|
|
|
- "mobile"=>$post['mobile'],
|
|
|
- "token"=>$post['token']
|
|
|
- ];
|
|
|
- $saev= resetinfo($saveinfo);
|
|
|
-
|
|
|
- if(!isset($saev['code'])||$saev['code']!=0){
|
|
|
- return error_show(1004,$saev['message']);
|
|
|
- }
|
|
|
- if($up==false){
|
|
|
- Db::rollback();
|
|
|
- return error_show(1004,'用户信息更新失败');
|
|
|
- }
|
|
|
- Db::commit();
|
|
|
- return app_show(0,'用户信息更新成功');
|
|
|
- }catch (\Exception $e){
|
|
|
- Db::rollback();
|
|
|
- return error_show(1004,$e->getMessage());
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ if ($this->level == 1) {
|
|
|
+ $companyNo = isset($post['companyNo']) && $post['companyNo'] !== '' ? trim($post['companyNo']) : "";
|
|
|
+ } else {
|
|
|
+ $companyNo = isset($post['relaComNo']) && $post['relaComNo'] !== '' ? trim($post['relaComNo']) : "";
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($this->level !== 3) {
|
|
|
+ if ($companyNo == "") return error_show(1004, "业务公司编号不能为空");
|
|
|
+ $company = Db::name("supplier_info")->field('code')->where(["code" => $companyNo])->find();
|
|
|
+ if ($company == false) return error_show(1004, "业务公司不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ $isSuper = Db::name("user_role")->alias("a")
|
|
|
+ ->leftJoin("role b", "a.roleid=b.id")
|
|
|
+ ->where(["a.uid" => $post['id'], "a.is_del" => 0, "b.level" => 1])
|
|
|
+ ->findOrEmpty();
|
|
|
+ if (!empty($isSuper)) return error_show(1002, "超管账户不允许设置其他角色");
|
|
|
+
|
|
|
+ $userrole_where = ["uid" => $post['id'], "is_del" => 0];
|
|
|
+ if ($this->level !== 3) $userrole_where['companyNo'] = $companyNo;
|
|
|
+
|
|
|
+ $userrole = Db::name("user_role")
|
|
|
+ ->field('id')
|
|
|
+ ->where($userrole_where)
|
|
|
+ ->find();
|
|
|
+ $ismain = Db::name("user_role")->field('id')->where(["uid" => $post['id'], "is_main" => 1, "is_del" => 0])->find();
|
|
|
+ Db::startTrans();
|
|
|
+ try {
|
|
|
+
|
|
|
+ if (empty($userrole)) {
|
|
|
+ $roledata = [
|
|
|
+ "uid" => $post['id'],
|
|
|
+ "roleid" => $post['roleid'],
|
|
|
+ "nickname" => $post['nickname'],
|
|
|
+ "companyNo" => $this->level == 2 ? $companyNo : '',
|
|
|
+ "company_type" => $this->level == 2 ? ($company["type"] == 3 ? 2 : 1) : 0,
|
|
|
+ "is_main" => $ismain ? 0 : 1,
|
|
|
+ "status" => 1,
|
|
|
+ "addtime" => date("Y-m-d H:i:s"),
|
|
|
+ "updatetime" => date("Y-m-d H:i:s")
|
|
|
+ ];
|
|
|
+
|
|
|
+ //level 为1,3时,角色不和公司关联,所以不需要操作
|
|
|
+ if ($this->level == 2) {
|
|
|
+ $companyarr = [
|
|
|
+ [
|
|
|
+ "companyCode" => $company["code"],
|
|
|
+ "companyName" => $company["name"],
|
|
|
+ "company_type" => $company["type"] == 3 ? 2 : 1,
|
|
|
+ "is_main" => $ismain ? 0 : 1
|
|
|
+ ]
|
|
|
+ ];
|
|
|
+
|
|
|
+ $companyinfo = ["id" => $post['id'], "company" => $companyarr, "token" => $post['token']];
|
|
|
+ $companyset = setUserCompany($companyinfo);
|
|
|
+ if (!isset($companyset['code']) || $companyset['code'] != 0) {
|
|
|
+ return error_show(1004, $companyset['message']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ $up = Db::name("user_role")->insert($roledata);
|
|
|
+ } else {
|
|
|
+ $userrole['roleid'] = $post['roleid'];
|
|
|
+ $userrole['nickname'] = $post['nickname'];
|
|
|
+ $userrole['companyNo'] = $this->level == 2 ? $companyNo : '';
|
|
|
+ $userrole['company_type'] = $this->level == 2 ? ($company["type"] == 3 ? 2 : 1) : 0;
|
|
|
+ $userrole['updatetime'] = date("Y-m-d H:i:s");
|
|
|
+ $up = Db::name("user_role")->where(["id" => $userrole['id'], "is_del" => 0])->save($userrole);
|
|
|
+ }
|
|
|
+// $saveinfo = [
|
|
|
+// "id" => $post['id'],
|
|
|
+// "nickname" => $post['nickname'],
|
|
|
+// "mobile" => $post['mobile'],
|
|
|
+// "token" => $post['token']
|
|
|
+// ];
|
|
|
+// $saev = resetinfo($saveinfo);
|
|
|
+
|
|
|
+// if (!isset($saev['code']) || $saev['code'] != 0) {
|
|
|
+// return error_show(1004, $saev['message']);
|
|
|
+// }
|
|
|
+ if ($up == false) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1004, '用户信息更新失败');
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ return app_show(0, '用户信息更新成功');
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ Db::rollback();
|
|
|
+ return error_show(1004, $e->getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
/**获取用户关联业务公司
|
|
|
* @return \think\response\Json|void
|
|
|
* @throws \think\db\exception\DataNotFoundException
|