瀏覽代碼

【Mod】后台管理修改优化

liuxiangxin 4 月之前
父節點
當前提交
682060f587

+ 55 - 107
app/Http/Controllers/Admin/AdminUser.php

@@ -24,74 +24,53 @@ class AdminUser extends Auth{
 	 * 列表页
 	 * 
 	 * */
-    public function index(Model $Model){
-        $mp                     =   [];
-        $session                = session('userRule');
-        if ($session){
-            $mp[]               =   ['admin_rule.company_id','=',$session['company_id']];
-            if ($session['business_id']){
-                $mp[]               =   ['admin_rule.business_id','=',$session['business_id']];
-            }
-        }
-        if(!in_array(admin('uid'), explode(',', config('administrator')))){
-            $mp['admin_rule.type']       = 1;
+    public function index(Model $Model,Business $Business,Company $Company){
+		// 查询数据
+        $map                     	= [];
+		// 当前登录用户角色数据
+        $session				 	= session('userRule') ? session('userRule') : ['menu_type'=>0,'company_id'=>1,'business_id'=>0];
+		// 非超管
+		if( !in_array(admin('uid'), explode(',', config('administrator'))) ){
+			// 规格条件
+            $map[]					= ['admin_rule.type','=',1];
+			$map[]                	= ['admin_rule.company_id','=',$session['company_id']];
+            if ($session['business_id']) $map[] = ['admin_rule.business_id','=',$session['business_id']];
         }
  		// 查询系统用户
-		$list					= $Model::query();
-		if($mp) 				$list->join('admin_rule','admin_rule.admin_uid','=','admin.uid');
-        $list					= $list->where($mp)
-                                ->orderByDesc('admin.uid')
-                                ->paginate(config('page_num',10));
+		$list						= $Model->query()->join('admin_rule','admin_rule.admin_uid','=','admin.uid','LEFT')->where($map)->orderByDesc('admin.uid')->paginate(config('page_num',10));
 		// 循环处理
 		foreach ($list as $key => $value) {
 			// 获取分组名
-			$group				= DB::table('auth_group')
+			$group					= DB::table('auth_group')
 									->join('auth_group_access','auth_group_access.group_id','=','auth_group.id')
 									->where([['auth_group_access.user_uid','=',$value['uid']]])
 									->pluck('auth_group.title')->toArray();
-			if (in_array($value['uid'],explode(',',config('administrator')))) $group[] = '超管';
+			// 返回结果
+			if ( in_array($value['uid'],explode(',',config('administrator'))) ) $group[] = '超管';
 			// 切成字符串
-			$value['title']		= implode('、', $group);
+			$value['title']			= implode('、', $group);
             //获取用户角色
-            $rule               = DB::table('admin_rule')->where('admin_uid',$value['uid'])->first();
-            $rule_title         =   '';
-            if ($rule){
-                switch ($rule['menu_type']){
-                    case 1:
-                        $rule_title         =  '商户';
-                        break;
-                    case 2:
-                        $rule_title         =  '店铺';
-                        break;
-                }
-                if ($rule['menu_type'] == 1){
-                    if ($rule['data_type'] == 1){
-                        $rule_title     =   '商户普通员工';
-                    }elseif ($rule['data_type'] == 2){
-                        $rule_title     =   '商户代表';
-                    }
-                }elseif ($rule['menu_type'] == 2){
-                    if ($rule['data_type'] == 1){
-                        $rule_title     =   '店铺普通员工';
-                    }elseif ($rule['data_type'] == 2){
-                        $rule_title     =   '店铺推广员';
-                    }
-                }
+            $rule               	= DB::table('admin_rule')->where('admin_uid',$value['uid'])->first();
+			// 角色标题
+            $rule_title         	= '';
+			// 角色标题
+            if ( $rule )			{
+				if( $rule['menu_type'] == 1 && $rule['data_type'] == 1 )  $rule_title     =   '商户普通员工';
+				if( $rule['menu_type'] == 1 && $rule['data_type'] == 2 )  $rule_title     =   '商户代表';
+				if( $rule['menu_type'] == 2 && $rule['data_type'] == 1 )  $rule_title     =   '店铺普通员工';
+				if( $rule['menu_type'] == 2 && $rule['data_type'] == 2 )  $rule_title     =   '店铺推广员';
             }
-            $value['rule_title']    =   $rule_title;
-            $value['business_name']         =   '';
-            if ($value['business_id']){
-                $value['business_name']      =  Business::query()->where('id', $value['business_id'])->value('name');
-            }
-            $value['company_name']      =   Company::query()->where('id', $value['company_id'])->value('name');
+            $value['rule_title']    = $rule_title;
+            $value['business_name'] = $value['business_id'] ? (string)$Business->getOne($value['business_id'] ,'name') : '';
+            $value['company_name']  = $value['company_id'] ? $Company->getOne($value['company_id'],'name') : '';
 			// 重组
-			$list[$key]			= $value;
+			$list[$key]				= $value;
 		}
 		// 分配数据
 		$this->assign('empty', '<tr><td colspan="20">~~暂无数据</td></tr>');
 		$this->assign('list',$list);
 		// 加载模板
-		return $this->fetch();   
+		return						$this->fetch();   
     }
 
 	/**
@@ -110,14 +89,13 @@ class AdminUser extends Auth{
 			$data['password']					= request('password','');
 			$data['password']					= md5($data['password']);
             $dataType		        			= request('data_type',1);
+			$groups								= (array) request('groups',[]);
 			// 角色数据
             $ruleData               			= ['menu_type'=>1,'data_type'=>$dataType,'type'=>1,'company_id'=>1,'business_id'=>0];
 			// 修改数据
 			if( $session['menu_type'] ) 		$ruleData['menu_type'] = $session['menu_type'];
 			if( $session['company_id'] ) 		$ruleData['company_id'] = $session['company_id'];
 			if( $session['business_id'] ) 		$ruleData['business_id'] = $session['business_id'];
-			// 所属权限组
-			$groups								= (array) request('groups',[]);
 			// 开启事务
 			DB::beginTransaction();
 			// 写入数据表
@@ -161,37 +139,24 @@ class AdminUser extends Auth{
 			// 告知结果
 			return								json_send(['code'=>'success','msg'=>'新增成功','action'=>'add']);
 		}
-		$whereGroup = [];
+		// 查询条件
+        $map  									= [];
 		// 如果不是超管 查询当前用户所属组
-		$administrator = explode(',', config('administrator'));
-		/*if(!in_array(admin('uid'),$administrator)){
-		    //用户所属组
-			$gsGroup = DB::table('auth_group_access')->where(['user_uid'=>admin('uid')])->pluck('group_id')->toArray();
-			//用户所属组 上级
-			$upGroup = DB::table('auth_group')->whereIn('id',$gsGroup)->pluck('group_pid')->toArray();
-			//用户所属组的下级
-			$groupLower = DB::table('auth_group')->whereIn('group_pid',$gsGroup)->pluck('id')->toArray();
-			//var_dump($groupLower);
-		    $whereGroup = array_merge($upGroup,$gsGroup,$groupLower);
-		}*/
-        $where  =   [];
-        if(!in_array(admin('uid'),$administrator)){
-            if($session && $session['menu_type'] ) 		    $where['menu_type'] = $session['menu_type'];
-            if($session && $session['company_id'] ) 		$where['company_id'] = $session['company_id'];
-            if($session && $session['business_id'] ) 		$where['business_id'] = $session['business_id'];
-            $where['type']       = 1;
+        if(!in_array(admin('uid'),explode(',', config('administrator')))){
+			$map[]       									= ['type','=',1];
+            if($session && $session['menu_type'] ) 		    $map[] = [['menu_type'],'=',$session['menu_type']];
+            if($session && $session['company_id'] ) 		$map[] = [$map['company_id'],'=',$session['company_id']];
+            if($session && $session['business_id'] ) 		$map[] = [$map['business_id'],'=',$session['business_id']];
         }
 		// 查询用户组
-	    $query 						= DB::table('auth_group');
-	    if($where) 			        $query->where($where);
-		$group						= $query->whereNotIn('id',explode(',',config('CUSTOM_GROUP')))->select(['id','title'])->get()->toArray();
+	    $group 									= DB::table('auth_group')->where($map)->select(['id','title'])->get()->toArray();
 		// 错误告知
-		if( !$group )				$this->error('请先添加用户组');
+		if( !$group )							$this->error('请先添加用户组');
 		// 分配数据
 		$this->assign('group',$group);
 		$this->assign('crumbs','新增');
 		// 加载模板
-		return						$this->fetch(); 
+		return									$this->fetch(); 
 	}
 
 	/**
@@ -202,13 +167,10 @@ class AdminUser extends Auth{
 		// 接收参数
 		$uid									= request('uid',0);
 		// 查询用户
-		$oldData								= $Model
-                    ->join('admin_rule','admin_rule.admin_uid','=','admin.uid')
-                    ->where(['uid'=>$uid])
-                    ->select('admin.*','admin_rule.data_type','admin_rule.menu_type')
-                    ->first();
+		$oldData								= $Model->query()->join('admin_rule','admin_rule.admin_uid','=','admin.uid','LEFT')->where(['uid'=>$uid])->first();
         // 当前登录用户角色数据
         $session							    = session('userRule') ? session('userRule') : ['menu_type'=>0,'company_id'=>0,'business_id'=>0];
+		// 修改提交
 		if(request()->isMethod('post')){
 			// 验证参数
 			$request->scene('edit')->validate();
@@ -216,18 +178,18 @@ class AdminUser extends Auth{
 			$data['username']					= request('username','');
 			$data['phone']						= request('phone','');
 			$dataType			    			= request('data_type',1);
+			$groups								= (array) request('groups',[]);
 			// 角色数据
             $ruleData               			= $AdminRule::query()->where([['admin_uid','=',$uid]])->first(['id','admin_uid','menu_type','data_type','type','company_id','business_id']);
 			// 如果不存在的话
-			$ruleData							= $ruleData ? $ruleData->toArray() : ['admin_uid'=>$uid,'menu_type'=>1,'data_type'=>$dataType,'type'=>1,'company_id'=>1,'business_id'=>0];
+			$ruleData							= $ruleData ? $ruleData->toArray() : ['admin_uid'=>$uid,'menu_type'=>0,'data_type'=>$dataType,'type'=>1,'company_id'=>1,'business_id'=>0];
 			// 修改数据
+			if( $dataType ) 					$ruleData['data_type'] = $dataType;
 			if( $session['menu_type'] ) 		$ruleData['menu_type'] = $session['menu_type'];
 			if( $session['company_id'] ) 		$ruleData['company_id'] = $session['company_id'];
 			if( $session['business_id'] ) 		$ruleData['business_id'] = $session['business_id'];
 			// 密码
 			$password							= request('password','');
-			// 所属权限组
-			$groups								= (array) request('groups',[]);
 			// 如果用户不存在
 			if( !$oldData )						return json_send(['code'=>'error','msg'=>'用户不存在']);
 			// 不能修改超管的账号
@@ -279,31 +241,17 @@ class AdminUser extends Auth{
 			// 告知结果
 			return					json_send(['code'=>'success','msg'=>'修改成功','action'=>'edit']);
 		}
-		//$whereGroup = [];
+		// 查询条件
+        $map  						= [];
 		// 如果不是超管 查询当前用户所属组
-		$administrator = explode(',', config('administrator'));
-		/*if(!in_array(admin('uid'),$administrator)){
-		    // 用户所属组
-			$gsGroup				= DB::table('auth_group_access')->where(['user_uid'=>admin('uid')])->pluck('group_id')->toArray();
-			// 用户所属组 上级
-			$upGroup				= DB::table('auth_group')->whereIn('id',$gsGroup)->pluck('group_pid')->toArray();
-			// 用户所属组的下级
-			$groupLower				= DB::table('auth_group')->whereIn('group_pid',$gsGroup)->pluck('id')->toArray();
-			// 下属组
-		    $whereGroup				= array_merge($upGroup,$gsGroup,$groupLower);
-		}*/
-        $where  =   [];
-        if(!in_array(admin('uid'),$administrator)){
-            if($session && $session['menu_type'] ) 		    $where['menu_type'] = $session['menu_type'];
-            if($session && $session['company_id'] ) 		$where['company_id'] = $session['company_id'];
-            if($session && $session['business_id'] ) 		$where['business_id'] = $session['business_id'];
-            $where['type']       = 1;
+        if(!in_array(admin('uid'),explode(',', config('administrator')))){
+			$map[]       									= ['type','=',1];
+            if($session && $session['menu_type'] ) 		    $map[] = [['menu_type'],'=',$session['menu_type']];
+            if($session && $session['company_id'] ) 		$map[] = [$map['company_id'],'=',$session['company_id']];
+            if($session && $session['business_id'] ) 		$map[] = [$map['business_id'],'=',$session['business_id']];
         }
         // 查询用户组
-        $query 						= DB::table('auth_group');
-        if($where) 			        $query->where($where);
-		// 获取
-		$group						= $query->whereNotIn('id',explode(',',config('CUSTOM_GROUP')))->select(['id','title'])->get()->toArray();
+		$group						= DB::table('auth_group')->where($map)->select(['id','title'])->get()->toArray();
 		// 错误告知
 		if( !$group )				return $this->error('请先添加用户组');
 		// 错误告知
@@ -330,7 +278,7 @@ class AdminUser extends Auth{
     	$this->assign('breadcrumb2','操作记录');
 		$this->assign('list',$list);
 		// 加载模板
-		return $this->fetch();   
+		return						$this->fetch();   
     }
 
 	/**

+ 8 - 42
app/Models/Company.php

@@ -31,7 +31,7 @@ class Company extends Model
         // 写入数据表
         $id						            = $this->query()->insertGetId($data);
         // 如果操作失败
-        if( !$id )                          return $id;
+        if( !$id )                          return 0;
         // 更新缓存
         $this->getList(true);
         // 返回结果
@@ -49,11 +49,11 @@ class Company extends Model
         // 写入数据表
         $result						        = $this->query()->where(['id'=>$id])->update($data);
         // 如果操作失败
-        if( !$result )                      return $result;
+        if( !$result )                      return 0;
         // 更新缓存
         $this->getList(true);
         // 返回结果
-        return                              $result;
+        return                              $id;
     }
 
     /**
@@ -64,35 +64,22 @@ class Company extends Model
     public function getList($force = false)
     {
         // 结果数据
-        //$list                  = $force ? [] : cache('admin:business:list');
-        $list                   =   [];
+        $list                  = $force ? [] : cache('admin:company:list');
         // 不存在数据
-        if ( !$list ) {
-            $session           = session('userRule');
-            $map                =   [];
-            $map[] = ['status','=',0];
-            if ($session){
-                $map[] = ['company_id','=',$session['company_id']];
-                if ($session['business_id']){
-                    $map[] = ['id','=',$session['business_id']];
-                }
-                if ($session['menu_type'] == 1 && $session['data_type'] == 2){
-                    $map[] = ['leader_uid','=',$session['admin_uid']];
-                }
-            }
+        if ( !$list )           {
             // 从数据库获取数据
-            $data              = $this->query()->where($map)->get();
+            $data              = $this->query()->where([['status','=',0]])->get();
             // 是否有数据
             $data              = $data ? $data->toArray() : [];
             // 循环处理数据
             $list              = [];
             // 进行更新
-            foreach ($data as $value) {
+            foreach ( $data as $value ) {
                 // 重组数据
                 $list[$value['id']] = $value;
             }
             // 存起来
-            cache(['admin:business:list'=>$list]);
+            cache(['admin:company:list'=>$list]);
         }
         // 返回结果
         return                  $list;
@@ -138,25 +125,4 @@ class Company extends Model
         return                              $id;
     }
 
-
-    /**
-     * 编码转id
-     * 
-     * @param  string $code 编码
-     * 
-     */
-    public function codeToId($code){
-        return intval(str_ireplace('klsj','',$code));
-    }
- 
-    /**
-     * id转编码
-     * 
-     * @param  int  $id 编码
-     * 
-     */
-    public function idToCode($id){
-         return 'klsj'. str_pad($id, 9, '0', STR_PAD_LEFT);
-    }
-
 }

+ 2 - 2
resources/views/admin/admin_user/edit.blade.php

@@ -20,7 +20,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 		<label class="control-label">账户角色</label>
 		<div class="clearfix">
 			<label class="checkbox-inline">
-				<input type="checkbox" value="1" name="data_type" @if($oldData['data_type'] == 1) checked @endif>
+				<input type="radio" value="1" name="data_type" @if($oldData['data_type'] == 1) checked @endif>
 				@if(session('userRule.business_id'))
 					店铺普通员工
 				@else
@@ -28,7 +28,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 				@endif
 			</label>
 			<label class="checkbox-inline">
-				<input type="checkbox" value="2" name="data_type" @if($oldData['data_type'] == 2) checked @endif>
+				<input type="radio" value="2" name="data_type" @if($oldData['data_type'] == 2) checked @endif>
 				@if(session('userRule.business_id'))
 					推广员
 				@else

+ 2 - 0
resources/views/admin/admin_user/index.blade.php

@@ -22,6 +22,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 					<tr>
 						<th>序号</th>
 						<th>用户账号</th>
+						<th>用户手机</th>
 						<th>商户名称</th>
 						<th>商业公司名称</th>
 						<th>用户角色</th>
@@ -36,6 +37,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 						<tr>
 							<th>{{$a['uid']}}</th>
 							<td>{{$a['username']}}</td>
+							<td>{{$a['phone']}}</td>
 							<td>{{$a['company_name']}}</td>
 							<td>{{$a['business_name']}}</td>
 							<td>{{$a['rule_title']}}</td>

+ 1 - 1
resources/views/admin/weiban_external/index.blade.php

@@ -56,7 +56,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 									<span class="btn btn-xs btn-default">{{$v['name']}}</span>
 								@endforeach
 							</td>
-							<td> <a href="{{url('admin/custom/index?'.http_build_query(['custom_code'=>$a['custom_code']]))}}">{{$a['custom_name']}}</a></td>
+							<td> <a href="{{url('admin/custom/index?'.http_build_query(['custom_code'=>$a['custom_code']]))}}">{{$a['custom_code']}}</a></td>
 							<td> {{date('Y/m/d H:i:s',$a['insert_time'])}}</td>
 							<td> {{date('Y/m/d H:i:s',$a['update_time'])}}</td>
 							<td>