167 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			167 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | likeshop开源商城系统
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
 | ||
| // | gitee下载:https://gitee.com/likeshop_gitee
 | ||
| // | github下载:https://github.com/likeshop-github
 | ||
| // | 访问官网:https://www.likeshop.cn
 | ||
| // | 访问社区:https://home.likeshop.cn
 | ||
| // | 访问手册:http://doc.likeshop.cn
 | ||
| // | 微信公众号:likeshop技术社区
 | ||
| // | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
 | ||
| // |  likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
 | ||
| // | 禁止对系统程序代码以任何目的,任何形式的再发布
 | ||
| // | likeshop团队版权所有并拥有最终解释权
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | author: likeshop.cn.team
 | ||
| // +----------------------------------------------------------------------
 | ||
| 
 | ||
| 
 | ||
| namespace app\admin\logic;
 | ||
| 
 | ||
| 
 | ||
| use app\common\basics\Logic;
 | ||
| use app\common\model\Admin;
 | ||
| use app\common\model\Role;
 | ||
| 
 | ||
| class AdminLogic extends Logic
 | ||
| {
 | ||
| 
 | ||
|     /**
 | ||
|      * Notes: 列表
 | ||
|      * @param $get
 | ||
|      * @author 段誉(2021/4/10 11:05)
 | ||
|      * @return array
 | ||
|      * @throws \think\db\exception\DataNotFoundException
 | ||
|      * @throws \think\db\exception\DbException
 | ||
|      * @throws \think\db\exception\ModelNotFoundException
 | ||
|      */
 | ||
|     public static function lists($get)
 | ||
|     {
 | ||
|         $roleModel = new  Role();
 | ||
|         $adminModel = new Admin();
 | ||
| 
 | ||
|         $role_column = $roleModel->getNameColumn();
 | ||
| 
 | ||
|         $where[] = ['del', '=', 0];
 | ||
|         if (isset($get['role_id']) && $get['role_id']) {
 | ||
|             $where[] = ['role_id', '=', $get['role_id']];
 | ||
|         }
 | ||
|         if (isset($get['name']) && $get['name']) {
 | ||
|             $where[] = ['name', 'like', "%{$get['name']}%"];
 | ||
|         }
 | ||
|         if (isset($get['account']) && $get['account']) {
 | ||
|             $where[] = ['account', 'like', "%{$get['account']}%"];
 | ||
|         }
 | ||
| 
 | ||
|         $result = $adminModel->where($where)
 | ||
|             ->hidden(['password', 'salt'])
 | ||
|             ->paginate([
 | ||
|                 'list_rows'=> $get['limit'],
 | ||
|                 'page'=> $get['page'],
 | ||
|             ]);
 | ||
| 
 | ||
|         foreach ($result as $k => $item) {
 | ||
|             if ($item['root'] == 1) {
 | ||
|                 $role = '超级管理员';
 | ||
|             } else {
 | ||
|                 $role = $role_column[$item['role_id']] ?? '';
 | ||
|             }
 | ||
|             $result[$k]['role'] = $role;
 | ||
|         }
 | ||
|         return ['count' => $result->total(), 'lists' => $result->getCollection()];
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     /**
 | ||
|      * Notes: 添加管理员
 | ||
|      * @param $post
 | ||
|      * @author 段誉(2021/4/10 16:14)
 | ||
|      * @return Admin|\think\Model
 | ||
|      */
 | ||
|     public static function addAdmin($post)
 | ||
|     {
 | ||
|         $time = time();
 | ||
|         $salt = substr(md5($time . $post['name']), 0, 4);//随机4位密码盐
 | ||
|         $password = generatePassword($post['password'], $salt);//生成密码
 | ||
|         return Admin::create([
 | ||
|             'name'     => $post['name'],
 | ||
|             'root'     => 0,
 | ||
|             'account'  => $post['account'],
 | ||
|             'password' => $password,
 | ||
|             'salt'     => $salt,
 | ||
|             'role_id'  => $post['role_id'],
 | ||
|             'disable' => $post['disable']
 | ||
|         ]);
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     /**
 | ||
|      * Notes: 更新管理员
 | ||
|      * @param $post
 | ||
|      * @author 段誉(2021/4/10 17:11)
 | ||
|      * @return bool
 | ||
|      * @throws \think\db\exception\DataNotFoundException
 | ||
|      * @throws \think\db\exception\DbException
 | ||
|      * @throws \think\db\exception\ModelNotFoundException
 | ||
|      */
 | ||
|     public static function editAdmin($post)
 | ||
|     {
 | ||
|         $admin = Admin::find($post['id']);
 | ||
| 
 | ||
|         $data = [
 | ||
|             'name'          => $post['name'],
 | ||
|             'account'       => $post['account'],
 | ||
|             'role_id'       => $post['role_id'],
 | ||
|             'disable'       => $post['disable']
 | ||
|         ];
 | ||
| 
 | ||
|         //生成密码
 | ||
|         if ($post['password']) {
 | ||
|             $data['password'] = generatePassword($post['password'], $admin['salt']);
 | ||
|         }
 | ||
| 
 | ||
|         //TODO 禁用管理员并强制下线
 | ||
|         if (1 == $post['disable'] || $admin['role_id'] != $post['role_id']) {
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         return $admin->save($data);
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     /**
 | ||
|      * Notes: 删除
 | ||
|      * @param $id
 | ||
|      * @author 段誉(2021/4/10 17:30)
 | ||
|      * @return Admin
 | ||
|      */
 | ||
|     public static function delAdmin($id)
 | ||
|     {
 | ||
|         return Admin::update(['account' => time() . '_' . $id, 'del' => 1], ['id' => $id]);
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
|     /**
 | ||
|      * Notes: 修改密码
 | ||
|      * @param $password
 | ||
|      * @param $admin_id
 | ||
|      * @author 段誉(2021/4/30 11:59)
 | ||
|      * @return bool
 | ||
|      */
 | ||
|     public static function updatePassword($password, $admin_id)
 | ||
|     {
 | ||
|         try {
 | ||
|             $admin = Admin::find($admin_id);
 | ||
|             $admin->password = generatePassword($password, $admin['salt']);
 | ||
|             $admin->save();
 | ||
|             return true;
 | ||
|         } catch (\Exception $e) {
 | ||
|             self::$error = $e->getMessage();
 | ||
|             return false;
 | ||
|         }
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
| } |