Browse Source

账号角色查询列表和修改

wufeng 2 years ago
parent
commit
926202dcbb
2 changed files with 168 additions and 88 deletions
  1. 165 87
      app/admin/controller/User.php
  2. 3 1
      app/admin/route/app.php

+ 165 - 87
app/admin/controller/User.php

@@ -58,64 +58,15 @@ class User extends Base
 
     }
 
-    //列表
-    public function list()
-    {
-        $post = $this->request->only(["token" => "", "nickname" => "", "relaComNo" => "", "islevel" => "", "username" => "", "companyNo" => "", "status" => "", "page" => 1, "size" => 10], "post");
-        if ($this->level == 1) {
-            $companyNo = $post['companyNo'] ?? "";
-        } else {
-            $companyNo = $post['relaComNo'] ?? "";
-            $post['companyNo'] = $post['relaComNo'] ?? "";
-        }
-        $where = [["a.is_del", "=", 0]];
-        unset($post['relaComNo']);
-        if ($post['companyNo'] != "") {
-            $where[] = ["a.companyNo", "=", $companyNo];
-        }
-        if ($post['status'] !== '') {
-            $uid = Db::name("user_role")->alias("a")->where(["status" => 1, "is_del" => 0])->where($where)->column("uid");
-            if ($post['status'] == 1) {
-                $where[] = ["a.status", "=", 1];
-                $post['uid'] = $uid;
-            } else {
-                $post['nuid'] = $uid;
-            }
-            unset($post['status']);
-        }
-        if ($post["islevel"] != "") {
-            $uid = Db::name("user_role")->alias("a")
-                ->leftJoin("role b", "a.roleid=b.id")->where([["b.level", "=", 1], ["a.is_del", "=", 0]])->where($where)->column
-                ("uid");
-            if ($post['islevel'] == 1) {
-                $post['uid'] = $uid;
-            } else {
-                $post['nuid'] = $uid;
-            }
-            unset($post["islevel"]);
-        }
-//    	var_dump($post);
-//        $userinfo=GetUserList($post);
+
+    public function list(){
+        $param = $this->request->only(['nickname' => '', 'username' => '', 'status' => '', 'page' => 1, 'size' => 10, 'uid' => '', 'nuid' => ''], 'post', 'trim');
+
         $userCommon = new CommonUser();
-        $userinfo = $userCommon->GetList($post);
-        $userinfo = json_decode($userinfo, true);
-        if (empty($userinfo) || $userinfo['code'] != 0) {
-            return app_show($userinfo['code'], $userinfo['msg']);
-        }
-        $data = $userinfo['data']['list'];
-        $list = [];
-        foreach ($data as $value) {
-            $roleArr = Db::name("user_role")->alias("a")
-                ->leftJoin("role b", "a.roleid=b.id")
-                ->where(["uid" => $value['id'], "a.companyNo" => $value['companyCode'], "is_del" => 0])
-                ->field("role_name,roleid,a.status,b.level")->findOrEmpty();
-            $value['roleid'] = $roleArr['roleid'] ?? "";
-            $value['status'] = $value['status'] == 1 ? ($roleArr['status'] ?? 0) : 0;
-            $value["role_name"] = $roleArr['role_name'] ?? "";
-            $value["role_level"] = $roleArr['level'] ?? "";
-            $list[] = $value;
-        }
-        return app_show(0, "获取成功", ["list" => $list, "count" => $userinfo['data']["count"]]);
+        $rs = $userCommon->GetUserlist($param);
+
+        $rs = json_decode($rs, true);
+        return json_show($rs['code'], $rs['message'], $rs['data']);
     }
 
     //删除
@@ -366,41 +317,168 @@ class User extends Base
         return app_show(0, "获取成功", ["list" => $list, "count" => $userinfo['data']["count"]]);
     }
 
+    //账户角色列表
+    public function userRoleList()
+    {
+        $post = $this->request->only(["token" => "", "nickname" => "", "relaComNo" => "", "islevel" => "", "username" => "", "companyNo" => "", "status" => "", "page" => 1, "size" => 10], "post");
+        if ($this->level == 1) {
+            $companyNo = $post['companyNo'] ?? "";
+        } else {
+            $companyNo = $post['relaComNo'] ?? "";
+            $post['companyNo'] = $post['relaComNo'] ?? "";
+        }
+        $where = [["a.is_del", "=", 0]];
+        unset($post['relaComNo']);
+        if ($post['companyNo'] != "") {
+            $where[] = ["a.companyNo", "=", $companyNo];
+        }
+        if ($post['status'] !== '') {
+            $uid = Db::name("user_role")->alias("a")->where(["status" => 1, "is_del" => 0])->where($where)->column("uid");
+            if ($post['status'] == 1) {
+                $where[] = ["a.status", "=", 1];
+                $post['uid'] = $uid;
+            } else {
+                $post['nuid'] = $uid;
+            }
+            unset($post['status']);
+        }
+        if ($post["islevel"] != "") {
+            $uid = Db::name("user_role")->alias("a")
+                ->leftJoin("role b", "a.roleid=b.id")->where([["b.level", "=", 1], ["a.is_del", "=", 0]])->where($where)->column
+                ("uid");
+            if ($post['islevel'] == 1) {
+                $post['uid'] = $uid;
+            } else {
+                $post['nuid'] = $uid;
+            }
+            unset($post["islevel"]);
+        }
+//    	var_dump($post);
+//        $userinfo=GetUserList($post);
+        $userCommon = new CommonUser();
+        $userinfo = $userCommon->GetList($post);
+        $userinfo = json_decode($userinfo, true);
+        if (empty($userinfo) || $userinfo['code'] != 0) {
+            return app_show($userinfo['code'], $userinfo['msg']);
+        }
+        $data = $userinfo['data']['list'];
+        $list = [];
+        foreach ($data as $value) {
+            $roleArr = Db::name("user_role")->alias("a")
+                ->leftJoin("role b", "a.roleid=b.id")
+                ->where(["uid" => $value['id'], "a.companyNo" => $value['companyCode'], "is_del" => 0])
+                ->field("role_name,roleid,a.status,b.level")->findOrEmpty();
+            $value['roleid'] = $roleArr['roleid'] ?? "";
+            $value['status'] = $value['status'] == 1 ? ($roleArr['status'] ?? 0) : 0;
+            $value["role_name"] = $roleArr['role_name'] ?? "";
+            $value["role_level"] = $roleArr['level'] ?? "";
+            $list[] = $value;
+        }
+        return app_show(0, "获取成功", ["list" => $list, "count" => $userinfo['data']["count"]]);
+    }
 
+    //账号角色修改
     public function setRole()
     {
-        $post = $this->request->post();
-        $token = isset($post['token']) ? trim($post['token']) : "";
-        if ($token == "") {
-            return app_show(101, 'token不能为空');
+        $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 json_show(1004, $valide->getError());
+        if ($post['roleid'] != 0) {
+            $roleinfo = Db::name("role")->where("id", "=", $post['roleid'])->find();
+            if (empty($roleinfo)) return json_show(1002, "角色不存在");
+            if ($roleinfo['status'] == 0) return json_show(1002, "角色已禁用");
+            if ($roleinfo['level'] == 1) return json_show(1002, "超管级别角色不允许设置");
         }
-        $effetc = VerifyTokens($token);
-        if (!empty($effetc) && $effetc['code'] != 0) {
-            return app_show($effetc['code'], $effetc['message']);
+        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 json_show(1004, "业务公司编号不能为空");
+
+        $company = Db::name("supplier_info")->where(["code" => $companyNo])->find();
+        if ($company == false) return json_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 json_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 {
+
+            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']];
+
+                $userCommon = new \app\admin\common\User();
+                $rs = $userCommon->handle('setcompany', $companyinfo);
+                $companyset = json_decode($rs, true);
+
+                if (!isset($companyset['code']) || $companyset['code'] != 0) return json_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);
+            $userCommon = new \app\admin\common\User();
+            $rs = $userCommon->handle('usersave', $saveinfo);
+            $saev = json_decode($rs, true);
+            if (!isset($saev['code']) || $saev['code'] != 0) {
+                return json_show(1004, $saev['message']);
+            }
+            if ($up == false) {
+                Db::rollback();
+                return json_show(1004, '用户信息更新失败');
+            }
+            Db::commit();
+            return json_show(0, '用户信息更新成功');
+        } catch (\Exception $e) {
+            Db::rollback();
+            return json_show(1004, $e->getMessage());
         }
-        $uid = isset($post['id']) && $post['id'] !== '' ? intval($post['id']) : "";
-        if ($uid === '') {
-            return error_show(1004, "参数id 不能为空");
-        }
-        $role = isset($post['roleid']) && $post['roleid'] !== "" ? intval($post['roleid']) : "";
-        if ($role === '') {
-            return error_show(1004, "参数roleid 不能为空");
-        }
-        $isRole = Db::name('role')->where([['id', "=", $role], ['status', "=", 1]])->find();
-        if (empty($isRole)) {
-            return error_show(1004, "所选角色不存在");
-        }
-        $data = [
-            'uid' => $uid,
-            'roleid' => $role,
-            'status' => 1,
-            'addtime' => date('Y-m-d H:i:s'),
-            'updatetime' => date('Y-m-d H:i:s'),
-        ];
-        $insert = Db::name('user_role')->insert($data);
-        $st = ["order_code" => $uid, "status" => 1, "action_remark" => '', "action_type" => "create"];
-        ActionLog::logAdd($token, $st, "resign_info", 1, $st);
-        return $insert ? app_show(0, '数据新建成功') : error_show(1004, '数据新建失败');
     }
 
     //修改

+ 3 - 1
app/admin/route/app.php

@@ -136,7 +136,9 @@ Route::rule('allotgood', 'admin/Allot/goodlist');
 
 //【运营账号】
 Route::rule('login', 'admin/User/login');//登录
-Route::rule('user_role_list', 'admin/User/list');//账号角色查询
+Route::rule('userlist', 'admin/User/list');//列表
+Route::rule('user_role_list', 'admin/User/userRoleList');//账号角色查询
+Route::rule('setrole', 'admin/User/setRole');//账号角色修改
 Route::rule('userinfo', 'admin/User/userInfo');
 //Route::rule('userall', 'admin/User/userAll');
 //Route::rule("userstatus", "admin/User/userStatus");