通用後臺管理系統(6)-編寫管理員接口、實現、控制器

管理員接口

package com.sundablog.service.backend.system.upms.user;

import com.sundablog.pojo.AdminUser;
import com.sundablog.pojo.AdminUserRole;
import com.sundablog.result.LayUiResult;

/**
 * 管理員用戶接口類
 * @ClassName:  UserService   
 * @Description:管理員用戶接口類   
 * @author: 噠噠 
 * @date:   2018年3月14日 下午6:59:29   
 *     
 * @Copyright: 2018 www.sundablog.com Inc. All rights reserved.
 */
public interface UserService {

    /**
     * 添加管理員信息
     * @Title: addAdminUser   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param adminUser
     * @param: @return      
     * @return: int      
     * @throws
     */
    int addAdminUser(AdminUser adminUser,int roleId);
    
    /**
     * 修改管理員信息
     * @Title: updataAdminUser   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param adminUser
     * @param: @return      
     * @return: int      
     * @throws
     */
    int updataAdminUser(AdminUser adminUser,int roleId);
    
    /**
     * 禁用管理員用戶
     * @Title: updataDisableUserId   
     * @Description: 禁用管理員用戶
     * @param: @param userId
     * @param: @return      
     * @return: int      
     * @throws
     */
    int updataDisableUserId(int userId);
    
    /**
     * 刪除用戶
     * @Title: delectUser   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param userId
     * @param: @return      
     * @return: int      
     * @throws
     */
    int delectUser(int userId);
    
    /**
     * 根據用戶ID查詢管理員信息
     * @Title: selectAdminUserByUserId   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param userId
     * @param: @return      
     * @return: AdminUser      
     * @throws
     */
    AdminUser selectAdminUserByUserId(int userId);
    
    /**
     * 根據用戶名查詢用戶信息
     * @Title: selectAdminUserByUserName   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param UserName
     * @param: @return      
     * @return: AdminUser      
     * @throws
     */
    AdminUser selectAdminUserByUserName(String UserName);
    
    
    /**
     * 分頁查詢
     * @Title: findPagingQuery   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param page
     * @param: @param limit
     * @param: @return      
     * @return: LayUiResult      
     * @throws
     */
    LayUiResult findPagingQuery(int page,int limit);
    
    /**
     * 根據角色ID 獲取用戶角色關聯的信息
     * @Title: selectByUserId   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param userId
     * @param: @return      
     * @return: AdminUserRole      
     * @throws
     */
    AdminUserRole selectByUserId(int userId);
    
}

管理員實現

package com.sundablog.service.impl.backend.system.upms.user;

import java.util.Date;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sun.jna.platform.win32.WinUser.KBDLLHOOKSTRUCT;
import com.sundablog.mapper.AdminUserMapper;
import com.sundablog.mapper.AdminUserRoleMapper;
import com.sundablog.pojo.AdminUser;
import com.sundablog.pojo.AdminUserExample;
import com.sundablog.pojo.AdminUserExample.Criteria;
import com.sundablog.pojo.AdminUserRole;
import com.sundablog.pojo.AdminUserRoleExample;
import com.sundablog.result.LayUiResult;
import com.sundablog.service.backend.system.upms.filesystem.FilesyStemService;
import com.sundablog.service.backend.system.upms.user.UserService;

import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;

/**
 * 管理員接口實現類
 * @ClassName:  UserServiceImpl   
 * @Description:TODO(這裏用一句話描述這個類的作用)   
 * @author: 噠噠 
 * @date:   2018年3月14日 下午7:02:19   
 *     
 * @Copyright: 2018 www.sundablog.com Inc. All rights reserved.
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private AdminUserMapper adminUserMapper;
    
    @Autowired
    private FilesyStemService filesyStemService;
    
    @Autowired
    private AdminUserRoleMapper adminUserRoleMapper;
    /**
     * 添加管理員
     * Title: addAdminUser   
     * Description:    
     * @param adminUser
     * @return   -2(有相同的用戶名)
     * @see com.sundablog.service.backend.system.upms.user.UserService#addAdminUser(com.sundablog.pojo.AdminUser)
     */
    @Override
    public int addAdminUser(AdminUser adminUser,int roleId) {
        //查詢用戶名是否有一樣的
        AdminUserExample example = new AdminUserExample();
        Criteria criteria = example.createCriteria();
        criteria.andUsernameEqualTo(adminUser.getUsername());
        List<AdminUser> list = adminUserMapper.selectByExample(example);
        if (list.size() > 0) {
            return -2;
        } 
        //添加管理員用戶
        String salt = RandomUtil.simpleUUID();
        String md5PWD = DigestUtil.md5Hex(adminUser.getPassword() + salt);
        adminUser.setSalt(salt);
        adminUser.setPassword(md5PWD);
        adminUser.setCtime(new Date());
        adminUser.setLocked((byte) 0);
        int i = adminUserMapper.insertSelective(adminUser);
        if (i > 0) {
            //根據用戶名查詢用戶信息
            AdminUserExample example1 = new AdminUserExample();
            Criteria criteria1 = example1.createCriteria();
            criteria1.andUsernameEqualTo(adminUser.getUsername());
            List<AdminUser> list2 = adminUserMapper.selectByExample(example1);
            AdminUser user = list2.get(0);  
            //用戶角色關聯
            AdminUserRole adminUserRole = new AdminUserRole();
            adminUserRole.setUserId(user.getUserId());
            adminUserRole.setRoleId(roleId);
            
            int j = adminUserRoleMapper.insert(adminUserRole);
            return j;
        } else {
            return i;
        }
        
        
    }

    /**
     * 更新用戶信息
     * Title: updataAdminUser   
     * Description:    
     * @param adminUser
     * @return   
     * @see com.sundablog.service.backend.system.upms.user.UserService#updataAdminUser(com.sundablog.pojo.AdminUser)
     */
    @Override
    public int updataAdminUser(AdminUser adminUser,int roleId) {
        AdminUser user = adminUserMapper.selectByPrimaryKey(adminUser.getUserId());
        
        if (StrUtil.isEmpty(adminUser.getPassword())) {
            adminUser.setPassword(user.getPassword());
        } else {
            String md5PWD = DigestUtil.md5Hex(adminUser.getPassword() + user.getSalt());
            adminUser.setPassword(md5PWD);
        }
        if (StrUtil.isEmpty(adminUser.getAvatar())) {
            adminUser.setAvatar(user.getAvatar());
        }
        
        
        
        int i = adminUserMapper.updateByPrimaryKeySelective(adminUser);
        if (i > 0) {
            AdminUserRoleExample example = new AdminUserRoleExample();
            com.sundablog.pojo.AdminUserRoleExample.Criteria criteria = example.createCriteria();
            criteria.andUserIdEqualTo(adminUser.getUserId());
            List<AdminUserRole> list = adminUserRoleMapper.selectByExample(example);
            AdminUserRole userRole = list.get(0);
            userRole.setRoleId(roleId);
            int j = adminUserRoleMapper.updateByPrimaryKeySelective(userRole);
            return j;
        }
        
        return i;
    }

    /**
     * 鎖定管理員用戶(如果當前狀態是鎖定,這次調用是正常)
     * Title: updataDisableUserId   
     * Description:    
     * @param userId
     * @return   
     * @see com.sundablog.service.backend.system.upms.user.UserService#updataDisableUserId(int)
     */
    @Override
    public int updataDisableUserId(int userId) {
        AdminUser adminUser = adminUserMapper.selectByPrimaryKey(userId);
        if (0 == adminUser.getLocked().intValue()) {
            adminUser.setLocked((byte) 1);
        } else {
            adminUser.setLocked((byte) 0);
        }
        int i = adminUserMapper.updateByPrimaryKeySelective(adminUser);
        
        return i;
    }

    /**
     * 根據角色ID查詢用戶信息
     * Title: selectAdminUserByUserId   
     * Description:    
     * @param userId
     * @return   
     * @see com.sundablog.service.backend.system.upms.user.UserService#selectAdminUserByUserId(int)
     */
    @Override
    public AdminUser selectAdminUserByUserId(int userId) {
        AdminUser adminUser = adminUserMapper.selectByPrimaryKey(userId);
        
        String downloadUrl = filesyStemService.getDownloadUrl(adminUser.getAvatar());
        adminUser.setAvatar(downloadUrl);
        return adminUser;
    }

    /**
     * 分頁查詢
     * Title: findPagingQuery   
     * Description:    
     * @param page
     * @param limit
     * @return   
     * @see com.sundablog.service.backend.system.upms.user.UserService#findPagingQuery(int, int)
     */
    @Override
    public LayUiResult findPagingQuery(int page, int limit) {
        PageHelper.startPage(page, limit);
        AdminUserExample example = new AdminUserExample();
        List<AdminUser> list = adminUserMapper.selectByExample(example);
        for (AdminUser adminUser : list) {
            String avatar = filesyStemService.getDownloadUrl(adminUser.getAvatar());
            adminUser.setAvatar(avatar);
        }
        PageInfo<AdminUser> pageInfo = new PageInfo<>(list);
        LayUiResult layUiResult = new LayUiResult();
        layUiResult.setCode(0);
        layUiResult.setMsg("");
        layUiResult.setCount(pageInfo.getTotal());
        layUiResult.setData(list);
        return layUiResult;
    }

    /**
     * 根據角色ID 獲取用戶角色關聯的信息
     * Title: selectByUserId   
     * Description:    
     * @param userId
     * @return   
     * @see com.sundablog.service.backend.system.upms.user.UserService#selectByUserId(int)
     */
    @Override
    public AdminUserRole selectByUserId(int userId) {
        AdminUserRoleExample example = new AdminUserRoleExample();
        com.sundablog.pojo.AdminUserRoleExample.Criteria criteria = example.createCriteria();
        criteria.andUserIdEqualTo(userId);
        List<AdminUserRole> list = adminUserRoleMapper.selectByExample(example);
        return list.get(0);
    }

    /**
     * 刪除用戶
     * Title: delectUser   
     * Description:    
     * @param userId
     * @return   
     * @see com.sundablog.service.backend.system.upms.user.UserService#delectUser(int)
     */
    @Override
    public int delectUser(int userId) {
        AdminUserRoleExample example = new AdminUserRoleExample();
        com.sundablog.pojo.AdminUserRoleExample.Criteria criteria = example.createCriteria();
        criteria.andUserIdEqualTo(userId);
        int i = adminUserRoleMapper.deleteByExample(example);
        if (i > 0) {
            int j = adminUserMapper.deleteByPrimaryKey(userId);
            return j;
        } else {
            return 0;
        }
    }

    @Override
    public AdminUser selectAdminUserByUserName(String UserName) {
        AdminUserExample example = new AdminUserExample();
        Criteria criteria = example.createCriteria();
        criteria.andUsernameEqualTo(UserName);
        List<AdminUser> list = adminUserMapper.selectByExample(example);
        return list.get(0);
    }

}

控制器

package com.sundablog.controller.backend.system.upms.user;

import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.sundablog.pojo.AdminUser;
import com.sundablog.pojo.AdminUserRole;
import com.sundablog.result.BaseResult;
import com.sundablog.result.LayUiResult;
import com.sundablog.service.backend.system.upms.user.UserService;

/**
 * 管理員用戶角色控制器
 * @ClassName:  UserController   
 * @Description:用戶角色控制器   
 * @author: 噠噠 
 * @date:   2018年3月14日 下午7:10:35   
 *     
 * @Copyright: 2018 www.sundablog.com Inc. All rights reserved.
 */
@Controller
@RequestMapping("/backend/system/upms/user")
public class UserController {

    @Autowired
    public UserService userService;
    
    /**
     * 管理員用戶界面顯示
     * @Title: index   
     * @Description: 管理員用戶界面顯示   
     * @param: @return      
     * @return: String      
     * @throws
     */
    @RequiresPermissions("backend_system_upms_user_index")
    @RequestMapping("/index")
    public String index() {
        return "backend/system/upms/user/index";
    }
    
    /**
     * 管理員用戶添加
     * @Title: addIndex   
     * @Description: 管理員用戶添加 
     * @param: @return      
     * @return: String      
     * @throws
     */
    @RequiresPermissions("backend_system_upms_user_add")
    @RequestMapping("/add")
    public String addIndex() {
        return "backend/system/upms/user/add";
    }
    
    /**
     * 刪除管理員用戶
     * @Title: delectUser   
     * @Description: 刪除管理員用戶
     * @param: @param userId
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequiresPermissions("backend_system_upms_user_delectUser")
    @RequestMapping("/delectUser")
    @ResponseBody
    public BaseResult delectUser(int userId) {
        int i = userService.delectUser(userId);
        if (i > 0) {
            return BaseResult.build(200, BaseResult.delectSuccess); 
        } else {
            return BaseResult.build(209, BaseResult.delectFail);
        }
    }
    
    /**
     * 管理員用戶編輯
     * @Title: editIndex   
     * @Description: 管理員用戶編輯
     * @param: @return      
     * @return: String      
     * @throws
     */
    @RequiresPermissions("backend_system_upms_user_edit")
    @RequestMapping("/edit")
    public String editIndex() {
        return "backend/system/upms/user/edit";
    }
    
    /**
     * 禁用管理員用戶
     * @Title: updataDisableUserId   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param userId
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequiresPermissions("backend_system_upms_user_disable")
    @RequestMapping("/updataDisableUserId")
    @ResponseBody
    public BaseResult updataDisableUserId(int userId) {
        int i = userService.updataDisableUserId(userId);
        if (i > 0) {
            return BaseResult.build(200, BaseResult.updataSuccess);
        } else {
            return BaseResult.build(201, BaseResult.updataFail);
        }
    }
    
    
    /**
     * 分頁查詢
     * @Title: findPagingQuery   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param page
     * @param: @param limit
     * @param: @return      
     * @return: LayUiResult      
     * @throws
     */
    @RequestMapping("/findPagingQuery")
    @ResponseBody
    public LayUiResult findPagingQuery(@RequestParam(value="page", defaultValue="1") int page,@RequestParam(value="limit", defaultValue="10") int limit) {
        LayUiResult result = userService.findPagingQuery(page, limit);
        return result;
    }
    
    /**
     * 添加管理員
     * @Title: addAdminUser   
     * @Description: 添加管理員 
     * @param: @param adminUser
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequestMapping("/addAdminUser")
    @ResponseBody
    public BaseResult addAdminUser(AdminUser adminUser,int roleId) {
        int i = userService.addAdminUser(adminUser,roleId);
        if (i > 0) {
            return BaseResult.build(200, BaseResult.addSuccess);
        } else {
            return BaseResult.build(209, BaseResult.addFail);
        }
    }
    
    /**
     * 根據角色ID 獲取用戶角色關聯的信息
     * @Title: selectByUserId   
     * @Description: 根據角色ID 獲取用戶角色關聯的信息
     * @param: @param userId
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequestMapping("/selectByUserId")
    @ResponseBody
    public BaseResult selectByUserId(int userId) {
        AdminUserRole userRole = userService.selectByUserId(userId);
        return BaseResult.build(200, "", userRole);
    }
    
    /**
     * 根據用戶ID查詢管理員信息
     * @Title: selectAdminUserByUserId   
     * @Description: 根據用戶ID查詢管理員信息
     * @param: @param userId
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequestMapping("/selectAdminUserByUserId")
    @ResponseBody
    public BaseResult selectAdminUserByUserId(int userId) {
        AdminUser adminUser = userService.selectAdminUserByUserId(userId);
        return BaseResult.build(200, "", adminUser);
    }
    
    /**
     * 修改用戶信息
     * @Title: updataAdminUser   
     * @Description: 修改用戶信息
     * @param: @param adminUser
     * @param: @param roleId
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequestMapping("/updataAdminUser")
    @ResponseBody
    public BaseResult updataAdminUser(AdminUser adminUser,int roleId) {
        int i = userService.updataAdminUser(adminUser,roleId);
        if (i > 0) {
            return BaseResult.build(200, BaseResult.updataSuccess);
        } else {
            return BaseResult.build(209, BaseResult.updataFail);
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章