Browse Source

Merge branch 'dev_wf' of wugg/cxinv into dev

wufeng 2 years ago
parent
commit
76bc60ad22
2 changed files with 157 additions and 165 deletions
  1. 25 15
      app/admin/controller/Action.php
  2. 132 150
      app/admin/controller/User.php

+ 25 - 15
app/admin/controller/Action.php

@@ -9,25 +9,35 @@ class Action extends BaseController{
     public function __construct(App $app) {parent::__construct($app);}
 
     //获取素有菜单列表数据
- public function index(){
-    	$post=$this->request->post();
+    public function index()
+    {
+        $post = $this->request->post();
 
-		$where=[["status","=",1],["is_del","=",0],["level",">=",$post["level"]??1],['menu_type',"=",2]];
-        $data = Db::name("admin_menu")->where($where)->order("weight desc")->column("id,menu_name,menu_img,menu_route,menu_url,pid,level,is_show,is_private,menu_type,status");
+        $where = [["status", "=", 1], ["is_del", "=", 0], ['menu_type', "=", 2]];
+
+        if (isset($post['level']) && $post['level'] !== '') $where[] = ['level', 'in', $post['level']];
+
+        $data = Db::name("admin_menu")
+            ->where($where)
+            ->order("weight desc")
+            ->column("id,menu_name,menu_img,menu_route,menu_url,pid,level,is_show,is_private,menu_type,status");
         $result = [];
-        if(empty($data)){
-            return app_show(0,"获取成功",$result);
+        if (empty($data)) {
+            return app_show(0, "获取成功", $result);
         }
-        $list=[];
-        $menu=[];
-        foreach ($data as $k=>$value){
-            $action = Db::name("action")->alias("a")->leftJoin("action_list b","a.action_code=b.action_code")->where
-            (["menuid"=>$value['id'],"a.status"=>1,"a.is_del"=>0,"b.is_del"=>0])->column("a.id,a.action_code,b.action_name");
-            if($value['menu_type']==2) $value['action']=$action;
-            $list[]=$value;
+        $list = [];
+        $menu = [];
+        foreach ($data as $k => $value) {
+            $action = Db::name("action")
+                ->alias("a")
+                ->leftJoin("action_list b", "a.action_code=b.action_code")
+                ->where(["menuid" => $value['id'], "a.status" => 1, "a.is_del" => 0, "b.is_del" => 0])
+                ->column("a.id,a.action_code,b.action_name");
+            if ($value['menu_type'] == 2) $value['action'] = $action;
+            $list[] = $value;
         }
-        menuAction($list,$menu);
-        return app_show(0,"获取成功",array_values($menu));
+        menuAction($list, $menu);
+        return app_show(0, "获取成功", array_values($menu));
     }
 
     public function ActionList(){

+ 132 - 150
app/admin/controller/User.php

@@ -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
@@ -592,52 +600,26 @@ class User extends BaseController{
                 return error_show(1004, $nam['message']);
             }
 
-            $userrole = [];
-            foreach ($post['companyArr'] as $company) {
-                switch ($post['level']) {
-                    case 1:
-                        $userrole[] = [
-                            "uid" => $nam['data']["userid"],
-                            "nickname" => $nam['data']["nickname"],
-                            "roleid" => env('default_admin_addcount_role_id', 1),
-                            "companyNo" => $company['companyCode'],
-                            "company_type" => 0,
-                            "status" => 1,
-                            "is_main" => 1,
-                            "is_del" => 0,
-                            "addtime" => date("Y-m-d H:i:s"),
-                            "updatetime" => date("Y-m-d H:i:s"),
-                        ];
-                        break;
-                    case 3:
-                        $userrole[] = [
-                            "uid" => $nam['data']["userid"],
-                            "nickname" => $nam['data']["nickname"],
-                            "roleid" => env('default_supplier_addcount_role_id', 90),//需要专门为供应商账号指定一个默认的角色id,要同步到采销;
-                            "companyNo" => $company['companyCode'],
-                            "company_type" => '2',
-                            "status" => 1,
-                            "is_main" => 1,
-                            "is_del" => 0,
-                            "addtime" => date("Y-m-d H:i:s"),
-                            "updatetime" => date("Y-m-d H:i:s"),
-                        ];
-                        break;
-                }
-            }
+            $userrole = [
+                "uid" => $nam['data']["userid"],
+                "nickname" => $nam['data']["nickname"],
+                "roleid" => env('default_supplier_addcount_role_id', 90),//需要专门为供应商账号指定一个默认的角色id,要同步到采销;,
+                "companyNo" => '',
+                "company_type" => '',
+                "status" => 1,
+                "is_main" => 1,
+                "is_del" => 0,
+                "addtime" => date("Y-m-d H:i:s"),
+                "updatetime" => date("Y-m-d H:i:s"),
+            ];
+
 //            if (!empty($userrole)) {
 //                $userrole['uid'] = $nam['data']["userid"];
 //                $userrole['nickname'] = $nam['data']["nickname"];
 
-
-            if ($userrole) {
-                $up = Db::name("user_role")->insertAll($userrole);
-                if ($up == false) {
-                    return error_show(1004, '账户角色分配失败');
-                }
-            }
-
 //            }
+            $up = Db::name("user_role")->insert($userrole);
+            if ($up == false) return error_show(1004, '账户角色分配失败');
         }
 
         return $post['id'] == "" ? app_show(0, "账户新建成功") : app_show(0, "账户编辑成功");