wugg 2 years ago
parent
commit
7499fdeb54
2 changed files with 29 additions and 14 deletions
  1. 2 1
      app/admin/BaseController.php
  2. 27 13
      app/admin/controller/User.php

+ 2 - 1
app/admin/BaseController.php

@@ -53,7 +53,8 @@ class BaseController extends base{
             	 return ["code"=>101,"message"=>"账户已禁用"];
             }
             $this->roleid=$role['roleid'];
-            $this->level=Db::name("role")->where(["id"=>$role['roleid']])->value("level",'');
+            $this->level=Db::name("role")->where(["id"=>$role['roleid'],"status"=>1])->value("level",'');
+            if($this->level=='') return ["code"=>101,"message"=>"账户角色已禁用"];
              return ["code"=>0,"message"=>"验证通过"];
      }
 

+ 27 - 13
app/admin/controller/User.php

@@ -2,7 +2,7 @@
 
 declare (strict_types = 1);
 namespace app\admin\controller;
-use app\admin\BaseController;use think\App;use think\facade\Db;use think\facade\Validate;
+use app\admin\BaseController;use think\App;use think\Exception;use think\facade\Db;use think\facade\Validate;
 
 class User extends BaseController{
  public function __construct(App $app) {parent::__construct($app);}
@@ -25,32 +25,46 @@ class User extends BaseController{
 	        ->where(["a.uid"=>$post['id'],"a.is_del"=>0,"b.level"=>1])
 	        ->findOrEmpty();
 	        if(!empty($isSuper) && !empty($post['companyArr']))return error_show(1002,"超管账户不允许设置关联业务公司");
-        	$saveinfo =[
+	        Db::startTrans();
+	        try{
+	        $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']);
+					throw new Exception($saev['message']);
         	}
 			if(!empty($post['companyArr'])){
-					if(!empty($post['companyArr'])){
-			foreach ($post['companyArr'] as &$item){
-				$company =Db::name("supplier_info")->where(["code"=>$item['companyCode']])->find();
-				$item['company_type'] = $company["type"]==3?2:1;
-			}
-		}
+				$is_delArr= array_column($post['companyArr'],"is_del");
+				foreach ($post['companyArr'] as &$item){
+					$company =Db::name("supplier_info")->where(["code"=>$item['companyCode']])->find();
+					$item['company_type'] = $company["type"]==3?2:1;
+					if($item['is_del']==1){
+						if($item['is_main']==1 && in_array(0,$is_delArr)) throw new Exception("默认企业不可删除");
+						$re = Db::name("user_role")->where(["uid"=>$post['id'],"is_del"=>0,"companyNo"=>$item['companyCode']])
+						->update(["is_del"=>1,"is_mian"=>0,"updatetime"=>date("Y-m-d H:i:s")]);
+					}else{
+						$re = Db::name("user_role")->where(["uid"=>$post['id'],"is_del"=>0,"companyNo"=>$item['companyCode']])
+						->update(["nickname"=>$post['nickname'],"updatetime"=>date("Y-m-d H:i:s")]);
+					}
+					if($re==false)throw new Exception("关联企业保存失败");
+				}
 				$companyinfo = ["id"=>$post['id'],"company"=>$post['companyArr'],"token"=>$post['token']];
 				$companyset =setUserCompany($companyinfo);
 				if(!isset($companyset['code'])||$companyset['code']!=0){
-					return error_show(1004,$companyset['message']);
+					throw new Exception($companyset['message']);
 	            }
 			}
-
+			Db::commit();
 			return app_show(0,"设置成功");
+	        }catch (Exception $e){
+	        	Db::rollback();
+				return error_show(1005,$e->getMessage());
+	        }
+
     }
     /**
 	 * 用户列表
@@ -150,7 +164,7 @@ class User extends BaseController{
 		        ->leftJoin("role b","a.roleid=b.id")
 		        ->where(["uid"=>$value['id'],"a.companyNo"=>$item['companyCode'],"is_del"=>0])
 		        ->field("role_name,roleid,a.status,b.level")->findOrEmpty();
-        		 $item['roleid']=$roleArr['roleid']??"";
+        		$item['roleid']=$roleArr['roleid']??"";
 	            $item['status']=$roleArr['status']??0;
 	            $item["role_name"] =$roleArr['role_name']??"";
 	            $item["role_level"] =$roleArr['level']??"";