Browse Source

公司账号相关优化

wufeng 2 years ago
parent
commit
5c5acfcab0
2 changed files with 81 additions and 28 deletions
  1. 44 26
      app/admin/controller/UserCompany.php
  2. 37 2
      app/admin/controller/UserCompanyBasic.php

+ 44 - 26
app/admin/controller/UserCompany.php

@@ -13,7 +13,7 @@ class UserCompany extends Base
     public function getList()
     {
 
-        $param = $this->request->only(['nickname' => '', 'username' => '', 'status' => '', 'page' => 1, 'size' => 10], 'post', 'trim');
+        $param = $this->request->only(['account_id' => '', 'status' => '', 'page' => 1, 'size' => 10], 'post', 'trim');
 
         $userCommon = new UserCommon();
 
@@ -25,13 +25,15 @@ class UserCompany extends Base
 
                 $tmp = Db::name('user_role')
                     ->alias('a')
-                    ->field('b.role_name,b.level')
+                    ->field('b.role_name,b.level,c.name item_name')
                     ->leftJoin('role b', 'b.id=a.roleid')
-                    ->where(['a.uid' => $item['account_id'], 'is_del' => 0, 'a.supplierNo' => $item['companyCode']])
+                    ->leftJoin('company_item c', 'c.id=a.itemid and c.companyNo=a.companyNo')
+                    ->where(['a.uid' => $item['account_id'], 'is_del' => 0, 'a.companyNo' => $item['companyCode']])
                     ->findOrEmpty();
 
                 $item['role_name'] = $tmp['role_name'] ?? '';
                 $item['level'] = $tmp['level'] ?? '';
+                $item['item_name'] = $tmp['item_name'] ?? '';
             }
         }
 
@@ -41,12 +43,13 @@ class UserCompany extends Base
     //编辑
     public function update()
     {
-        $param = $this->request->only(['account_id', 'role_supplierNo', 'roleid'], 'post');
+        $param = $this->request->only(['account_id', 'companyNo', 'roleid', 'itemid'], 'post');
 
         $val = Validate::rule([
             'account_id|账户id' => 'require|number|gt:0',
-            'role_supplierNo|公司编码' => 'require|length:18',
+            'companyNo|公司编码' => 'require|length:18',
             'roleid|角色' => 'require|number|gt:0',
+            'itemid|部门id' => 'require|number|gt:0',
         ]);
 
         if (!$val->check($param)) return json_show(1004, $val->getError());
@@ -59,28 +62,23 @@ class UserCompany extends Base
 
         if (empty($role)) return json_show(1004, '角色不存在或等级不符合要求');
 
-        $tmp = Db::name('user_role')
+        $item = Db::name('company_item')
             ->field('id')
-            ->where(['uid' => $param['account_id'], 'supplierNo' => $param['role_supplierNo'], 'is_del' => 0])
+            ->where(['id' => $param['itemid'], 'companyNo' => $param['companyNo']])
             ->findOrEmpty();
+        if (empty($item)) return json_show(1004, '该公司部门不存在');
+
+//        $tmp = Db::name('user_role')
+//            ->field('id')
+//            ->where(['uid' => $param['account_id'], 'companyNo' => $param['companyNo'], 'is_del' => 0])
+//            ->findOrEmpty();
 
         $date = date('Y-m-d H:i:s');
-        if (empty($tmp)) {
-            $rs = Db::name('user_role')
-                ->insert([
-                    'uid' => $param['account_id'],
-                    'supplierNo' => $param['role_supplierNo'],
-                    'roleid' => $param['roleid'],
-                    'status' => 1,
-                    'is_del' => 0,
-                    'addtime' => $date,
-                    'updatetime' => $date
-                ]);
-        } else {
-            $rs = Db::name('user_role')
-                ->where(['id' => $tmp['id']])
-                ->update(['roleid' => $param['roleid'], 'updatetime' => $date]);
-        }
+
+        $rs = Db::name('user_role')
+            ->where(['uid' => $param['account_id'], 'companyNo' => $param['companyNo'], 'is_del' => 0])
+            ->update(['roleid' => $param['roleid'], 'itemid' => $param['itemid'], 'updatetime' => $date]);
+
 
 //        $userCommon = new UserCommon();
 //        $rs = json_decode($userCommon->handle('userCompanyUpdate', $param), true);
@@ -93,10 +91,27 @@ class UserCompany extends Base
     {
         $param = $this->request->only(['id', 'status'], 'post', 'trim');
 
+        $val = Validate::rule([
+            'id' => 'require|number|gt:0',
+            'status' => 'require|number|in:0,1',
+        ]);
+
+        if ($val->check($param) == false) return json_show(1004, $val->getError());
+
         $userCommon = new UserCommon();
         $rs = json_decode($userCommon->handle('userCompanyStatus', $param), true);
 
-        return json_show($rs['code'], $rs['message'], $rs['data']);
+        if (!isset($rs['code']) || $rs['code'] != 0) return json_show($rs['code'], $rs['message'], $rs['data']);
+        else {
+
+            $res = Db::name('user_role')
+                ->where('status', '<>', $param['status'])
+                ->where(['uid' => $rs['data']['account_id'], 'companyNo' => $rs['data']['companyNo'], 'is_del' => 0])
+                ->update(['status' => $param['status'], 'updatetime' => date('Y-m-d H:i:s')]);
+
+            return $res ? json_show(0, '操作成功') : json_show(1004, '操作失败');
+
+        }
     }
 
     //详情
@@ -110,15 +125,18 @@ class UserCompany extends Base
         $rs = json_decode($userCommon->handle('userCompanyInfo', $param), true);
 
         if (isset($rs['code']) && $rs['code'] == 0) {
+
             $tmp = Db::name('user_role')
                 ->alias('a')
-                ->field('b.role_name,b.level')
+                ->field('b.role_name,b.level,c.name item_name')
                 ->leftJoin('role b', 'b.id=a.roleid')
-                ->where(['a.uid' => $rs['data']['account_id'], 'is_del' => 0, 'a.supplierNo' => $rs['data']['companyCode']])
+                ->leftJoin('company_item c', 'c.id=a.itemid and c.companyNo=a.companyNo')
+                ->where(['a.uid' => $rs['data']['account_id'], 'is_del' => 0, 'a.companyNo' => $rs['data']['companyCode']])
                 ->findOrEmpty();
 
             $rs['data']['role_name'] = $tmp['role_name'] ?? '';
             $rs['data']['level'] = $tmp['level'] ?? '';
+            $rs['data']['item_name'] = $tmp['item_name'] ?? '';
         }
         return json_show($rs['code'], $rs['message'], $rs['data']);
     }

+ 37 - 2
app/admin/controller/UserCompanyBasic.php

@@ -3,6 +3,8 @@
 namespace app\admin\controller;
 
 use app\admin\common\User as UserCommon;
+use think\Exception;
+use think\facade\Db;
 use think\facade\Validate;
 
 //【公司账号管理】
@@ -40,6 +42,8 @@ class UserCompanyBasic extends Base
             'companyName|公司名称' => 'require',
             'company_type|公司类型' => 'require|number',
             'is_main|是否默认公司' => 'require|in:0,1',
+            'roleid|角色id' => 'require|number|gt:0',
+            'itemid|部门id' => 'require|number|gt:0',
         ]);
 
         foreach ($param['companyArr'] as $company) {
@@ -52,7 +56,38 @@ class UserCompanyBasic extends Base
         $userCommon = new UserCommon();
         $rs = json_decode($userCommon->handle('userCompanyBasicAdd', $param), true);
 
-        return json_show($rs['code'], $rs['message'], $rs['data']);
+        if(!isset($rs['code']) || $rs['code']!=0) return json_show($rs['code'], $rs['message'], $rs['data']);
+        else{
+
+            Db::startTrans();
+            try{
+                $date = date('Y-m-d H:i:s');
+                $insert_data=[];
+                foreach ($param['companyArr'] as $company) {
+                    $insert_data[] = [
+                        'uid' => $rs['data']['uid'],
+                        'nickname'=>$param['nickname'],
+                        'roleid' => $company['roleid'],
+                        'companyNo' => $company['companyCode'],
+                        'company_type' => $company['company_type'],
+                        'itemid' => $company['itemid'],
+                        'status' => 1,
+                        'is_main' => $company['is_main'],
+                        'is_del' => 0,
+                        'addtime' => $date,
+                        'updatetime' => $date,
+                    ];
+                }
+
+                Db::name('user_role')->insertAll($insert_data);
+
+                Db::commit();
+                return json_show($rs['code'], $rs['message'], $rs['data']);
+            }catch (Exception $exception){
+                Db::rollback();
+                return json_show(1004,'账户注册失败,'.$exception->getMessage());
+            }
+        }
     }
 
     //删除
@@ -105,7 +140,7 @@ class UserCompanyBasic extends Base
     //详情
     public function info(){
 
-        $param = $this->request->post(['id'], 'post', 'trim');
+        $param = $this->request->only(['id'], 'post', 'trim');
 
         $userCommon = new UserCommon();