Explorar o código

Merge branch 'master-new-dev-wf' of wugg/phpstock into master-new

wufeng %!s(int64=2) %!d(string=hai) anos
pai
achega
095dd80c95

+ 2 - 2
app/admin/controller/Menu.php

@@ -78,7 +78,7 @@ class Menu extends Base
             $role['action_conllect'] = Db::name('action')
                 ->where(['is_del' => 0, 'status' => 1])
                 ->column('id');
-            $where[] = ['level', 'in', [0, 1, 2]];
+            $where[] = ['blevel', 'in', [0, 1, 2]];
         } else {
             $role['action_conllect'] = Db::name('user_role')
                 ->alias('a')
@@ -86,7 +86,7 @@ class Menu extends Base
                 ->where(['a.uid' => $this->uid, 'a.is_del' => 0, 'a.companyNo' => $post['relaComNo']])
                 ->value('b.action_conllect');
 
-            $where[] = ['level', '=', $level];
+            $where[] = ['blevel', 'in', [0, $level]];
         }
 
 //        if (empty($role['action_conllect'])) {

+ 34 - 18
app/admin/controller/Role.php

@@ -71,14 +71,15 @@ class Role extends Base
 
     public function roleAdd()
     {
-        $post = $this->request->only(["role_name", "action", "action_data" => "", "private_data" => "", "relaComNo" => "", "companyNo" => "", 'is_allow_see_price', 'private_field'], "post");
+        $post = $this->request->only(["role_name", "action", "action_data" => "", "private_data" => "", "relaComNo" => "", 'is_allow_see_price', 'private_field','level','desc'=>''], "post");
         $valid = Validate::rule([
             "role_name|角色名称" => "require|max:255|min:2",
-            "relaComNo|业务公司编号" => "requireWithout:companyNo|max:255",
-            "companyNo|业务公司编号" => "requireWithout:relaComNo|max:255",
+            "relaComNo|业务公司编号" => "requireIf:level,2|max:255",
+//            "companyNo|业务公司编号" => "requireWithout:relaComNo|max:255",
             "action|角色权限" => "require|array",
             "is_allow_see_price|是否允许查看价格" => "require|in:0,1",
-            'private_field|关键字段权限' => 'require|array|max:3'
+            'private_field|关键字段权限' => 'require|array|max:3',
+            "level|角色级别"=>"require|number|in:1,2,3",
         ]);
         if ($valid->check($post) == false) return error_show(1004, $valid->getError());
 //        if ($post['relaComNo'] != "" && $post["level"] == 1) return error_show(1002, "超管权限角色不可关联业务公司");
@@ -86,11 +87,10 @@ class Role extends Base
 //        if ($this->level == 1) $companyNo = $post['companyNo'] ?? "";
 //        else $companyNo = $post['relaComNo'] ?? "";
 
-        $companyNo = $post['relaComNo']=='' ? $post['companyNo']:'';
+//        $companyNo = $post['relaComNo']=='' ? $post['companyNo']:'';
 
         $where = [["role_name", "=", $post['role_name']]];
-        if ($companyNo != "") $where[] = ["companyNo", "=", $companyNo];
-
+        if ($post['relaComNo'] != "") $where[] = ["companyNo", "=", $post['relaComNo']];
 
         $isT = Db::name("role")->field('id')->where($where)->find();
         if ($isT) return error_show(1002, "角色名称已存在");
@@ -105,11 +105,13 @@ class Role extends Base
             $date = date("Y-m-d H:i:s");
             $list = [
                 "role_name" => $post['role_name'],
-                "companyNo" => $companyNo,
+                "companyNo" => $post['level']==2?$post['relaComNo']:'',
                 "status" => 1,
                 "addtime" => $date,
                 "updatetime" => $date,
-                'is_allow_see_price' => $post['is_allow_see_price']
+                'role_level'=>$post['level'],
+                'is_allow_see_price' => $post['is_allow_see_price'],
+                'desc' => $post['desc']
             ];
             $role = Db::name("role")->insert($list, true);
 
@@ -187,14 +189,16 @@ class Role extends Base
      */
     public function roleSave()
     {
-        $post = $this->request->only(["roleid" => "", "role_name" => "", "relaComNo" => "", "companyNo" => "", "action" => "", "action_data" => "", "private_data" => "",'is_allow_see_price','private_field'], "post");
+        $post = $this->request->only(["roleid" => "", "role_name" => "", "relaComNo" => "", "action" => "", "action_data" => "", "private_data" => "",'is_allow_see_price','private_field','level','desc'], "post");
         $valid = Validate::rule([
             "role_name|角色名称" => "require|max:255|min:2",
-            "relaComNo|业务公司编号" => "max:255",
-            "companyNo|业务公司编号" => "max:255",
+//            "relaComNo|业务公司编号" => "max:255",
+//            "companyNo|业务公司编号" => "max:255",
+            "relaComNo|业务公司编号" => "requireIf:level,2|max:255",
             "action|角色权限" => "require|array",
             "is_allow_see_price|是否允许查看价格" => "require|in:0,1",
-            'private_field|关键字段权限'=>'require|array|max:3'
+            'private_field|关键字段权限'=>'require|array|max:3',
+            "level|角色级别"=>"require|number|in:1,2,3",
         ]);
         if ($valid->check($post) == false) return error_show(1004, $valid->getError());
         $info = Db::name("role")->where("id", "=", $post['roleid'])->find();
@@ -207,13 +211,22 @@ class Role extends Base
 //        }else{
 //        	$companyNo =$post['relaComNo']??"";
 //        }
-        $vers = Db::name("role")->where([["id", '<>', $post['roleid']], ["role_name", "=", $post['role_name']], ["companyNo", "=", $info['companyNo']]])->find();
+
+        $tmp_where=[
+            ["id", '<>', $post['roleid']],
+            ["role_name", "=", $post['role_name']],
+        ];
+        if($post['level']==2) $tmp_where[]=['companyNo','=',$post['relaComNo']];
+        $vers = Db::name("role")
+            ->field('id')
+            ->where($tmp_where)
+            ->find();
         if ($vers) return error_show(1002, "角色名已存在");
 
         $action = isset($post['action']) && is_array($post['action']) ? implode(",", $post['action']) : "";
-        if ($action == "") {
-            return error_show(1004, "功能权限不能为空");
-        }
+//        if ($action == "") {
+//            return error_show(1004, "功能权限不能为空");
+//        }
         $data = isset($post['action_data']) && is_array($post['action_data']) ? implode(",", $post['action_data']) : "";
         $private_data = isset($post['private_data']) && is_array($post['private_data']) ? implode(",", $post['private_data']) : "";
         Db::startTrans();
@@ -222,7 +235,10 @@ class Role extends Base
                 "role_name" => $post['role_name'],
                 "updatetime" => date("Y-m-d H:i:s"),
                 'id' => $post['roleid'],
-                'is_allow_see_price' => $post['is_allow_see_price']
+                'is_allow_see_price' => $post['is_allow_see_price'],
+                'role_level'=>$post['level'],
+                "companyNo" => $post['level']==2?$post['relaComNo']:'',
+                'desc' => $post['desc']
             ];
             $role = Db::name("role")->save($list);
             if ($role) {

+ 28 - 11
app/admin/controller/User.php

@@ -435,13 +435,22 @@ class User extends Base
 
         $post = $this->request->only(["id", "roleid", 'companyNo'], "post", "trim");
 
+        //待修改的账户详情
+        $userCommon = new \app\admin\common\User();
+        $userinfo = $userCommon->handle('userinfo', ['id' => $post['id']]);
+        if (!isset($userinfo['code']) || $userinfo['code'] != 0) return json_show($userinfo['code'], $userinfo['message'], $userinfo['data']);
+
+        $post['level'] = $userinfo['data']['level'];
+
+        if ($post['level'] == 1) return json_show(1004, '超管账号不允许设置角色');
+
         $valide = Validate::rule([
             "id|账户ID" => "require|number|gt:0",
 //            "nickname|名称" => "require|max:255",
 //            "mobile|手机号" => "require|mobile",
 //            "relaComNo|业务公司" => "max:255",
             "roleid|角色ID" => "require|number|gt:0",
-            "companyNo|业务公司" => "max:255",
+            "companyNo|业务公司" => "requireIf:level,2|max:255",
         ]);
         if ($valide->check($post) == false) return json_show(1004, $valide->getError());
         if ($post['roleid'] != 0) {
@@ -467,18 +476,26 @@ class User extends Base
 //            ->findOrEmpty();
 //        if (!empty($isSuper)) return json_show(1002, "超管账户不允许设置其他角色");
 
-        $userCommon = new UserCommon();
-
-        $tmp = $userCommon->handle('userCompanyList', ['account_id' => $post['id'], 'companyCode' => $post['companyNo']]);
-
-        if (!isset($tmp['code']) || $tmp['code'] != 0) return json_show($tmp['code'], $tmp['message'], $tmp['data']);
-        if ($tmp['data']['count'] != 1) return json_show(1005, '尚未绑定该公司');
-        $is_main = $tmp['data']['list'][0]['is_main'];
-        $company_type = $tmp['data']['list'][0]['company_type'];
+        $where = [
+            ['uid', '=', $post['uid']],
+            ['is_del', '=', 0],
+        ];
+
+        $is_main = 1;
+        $company_type = 0;
+        if ($post['level'] == 2) {
+            $tmp = $userCommon->handle('userCompanyList', ['account_id' => $post['id'], 'companyCode' => $post['companyNo']]);
+
+            if (!isset($tmp['code']) || $tmp['code'] != 0) return json_show($tmp['code'], $tmp['message'], $tmp['data']);
+            if ($tmp['data']['count'] != 1) return json_show(1005, '尚未绑定该公司');
+            $is_main = $tmp['data']['list'][0]['is_main'];
+            $company_type = $tmp['data']['list'][0]['company_type'];
+            $where[] = ['companyNo', '=', $post['companyNo']];
+        }
 
         $userrole = Db::name("user_role")
             ->field('id')
-            ->where(["uid" => $post['id'], "companyNo" => $post['companyNo'], "is_del" => 0])
+            ->where($where)
             ->find();
 //        $ismain = Db::name("user_role")->where(["uid" => $post['id'], "is_main" => 1, "is_del" => 0])->find();
         Db::startTrans();
@@ -489,7 +506,7 @@ class User extends Base
                     "uid" => $post['id'],
                     "roleid" => $post['roleid'],
 //                    "nickname" => $post['nickname'],
-                    "companyNo" => $post['companyNo'],
+                    "companyNo" => $post['level'] == 2 ? $post['companyNo'] : '',
                     "company_type" => $company_type,
                     "is_main" => $is_main,
                     "status" => 1,

+ 2 - 2
app/command/SplitSale.php

@@ -216,7 +216,7 @@ class SplitSale extends Command
         $sale_price = $sale['good_num'] > 0 ? bcdiv($sale_total, $sale['good_num'], 5) : 0;
         $tmp_sale = [
             'origin_price' => $sale['origin_price'] ?? 0,
-            'sale_price' => round($sale_price, 4),
+            'sale_price' => round($sale_price, 2),
             'total_price' => $sale_total,
             'post_fee' => $sale['post_fee'] ?? 0,
             'is_diff' => $sale['is_diff'] ?? 0,
@@ -298,7 +298,7 @@ class SplitSale extends Command
         $good_price = $sale['good_num'] > 0 ? bcdiv($cgd_total, $sale['good_num'], 5) : 0;
 
         $tmp_cgd = [
-            'good_price' => round($good_price, 4),
+            'good_price' => round($good_price, 2),
             'total_fee' => $cgd_total,
             'pakage_fee' => $cgd['pakge_fee'] ?? 0,
             'open_fee' => $cgd['open_fee'] ?? 0,