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

1.角色接口

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

import java.util.List;

import com.sundablog.pojo.AdminRole;
import com.sundablog.pojo.AdminRolePermission;
import com.sundablog.result.LayUiResult;

/**
 * 角色接口類
 * @ClassName:  RoleService   
 * @Description:角色接口類   
 * @author: 噠噠 
 * @date:   2018年3月14日 下午6:55:15   
 *     
 * @Copyright: 2018 www.sundablog.com Inc. All rights reserved.
 */
public interface RoleService {
    
    /**
     * 添加一條角色信息
     * @Title: addRole   
     * @Description: 添加一條角色   
     * @param: @param adminRole
     * @param: @return      
     * @return: int      
     * @throws
     */
    int addRole(AdminRole adminRole);
    
    /**
     * 修改一條角色信息
     * @Title: updataRole   
     * @Description: 修改一條角色信息   
     * @param: @param adminRole
     * @param: @return      
     * @return: int      
     * @throws
     */
    int updataRole(AdminRole adminRole);
    
    /**
     * 刪除一條角色信息
     * @Title: delectRoleByRoleId   
     * @Description: 刪除一條角色信息   
     * @param: @param roleId
     * @param: @return      
     * @return: int      
     * @throws
     */
    int delectRoleByRoleId(int roleId);
    
    /**
     * 根據RoleId查詢一條數據
     * @Title: selectRoleByRoleId   
     * @Description: 根據RoleId查詢一條數據   
     * @param: @param roleId
     * @param: @return      
     * @return: AdminRole      
     * @throws
     */
    AdminRole selectRoleByRoleId(int roleId);
    /**
     * 分頁查詢
     * @Title: findPagingQuery   
     * @Description: 分頁查詢   
     * @param: @param page
     * @param: @param limit
     * @param: @return      
     * @return: LayUiResult      
     * @throws
     */
    LayUiResult findPagingQuery(int page,int limit);
    
    /**
     * 查詢全部角色
     * @Title: selectRole   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @return      
     * @return: List<AdminRole>      
     * @throws
     */
    List<AdminRole> selectRole();
    
    /**
     * 根據角色id查詢角色權限關聯表
     * @Title: selectRolePermissionByRoleId   
     * @Description: 根據角色id查詢角色權限關聯表
     * @param: @param roleId
     * @param: @return      
     * @return: List<AdminRolePermission>      
     * @throws
     */
    List<AdminRolePermission> selectRolePermissionByRoleId(int roleId);
    
    /**
     * 根據角色ID 向權限關聯表中添加權限id
     * @Title: addRolePermission   
     * @Description: 根據角色ID 向權限關聯表中添加權限id
     * @param: @param roleId
     * @param: @param permissionId
     * @param: @return      
     * @return: int      
     * @throws
     */
    int addRolePermission(int roleId,String permissionId);
    
}

2.角色接口實現

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

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.sundablog.mapper.AdminRoleMapper;
import com.sundablog.mapper.AdminRolePermissionMapper;
import com.sundablog.pojo.AdminRole;
import com.sundablog.pojo.AdminRoleExample;
import com.sundablog.pojo.AdminRolePermission;
import com.sundablog.pojo.AdminRolePermissionExample;
import com.sundablog.pojo.AdminRolePermissionExample.Criteria;
import com.sundablog.result.LayUiResult;
import com.sundablog.service.backend.system.upms.role.RoleService;

import cn.hutool.core.util.StrUtil;

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

    @Autowired
    private AdminRoleMapper adminRoleMapper;
    
    @Autowired
    private AdminRolePermissionMapper adminRolePermissionMapper;
    
    /**
     * 添加角色信息
     * Title: addRole   
     * Description:    
     * @param adminRole
     * @return   
     * @see com.sundablog.service.backend.system.upms.role.RoleService#addRole(com.sundablog.pojo.AdminRole)
     */
    @Override
    public int addRole(AdminRole adminRole) {
        
        int i = adminRoleMapper.insertSelective(adminRole);
        return i;
    }

    /**
     * 更新角色信息
     * Title: updataRole   
     * Description:    
     * @param adminRole
     * @return   
     * @see com.sundablog.service.backend.system.upms.role.RoleService#updataRole(com.sundablog.pojo.AdminRole)
     */
    @Override
    public int updataRole(AdminRole adminRole) {
        int i = adminRoleMapper.updateByPrimaryKeySelective(adminRole);
        return i;
    }

    /**
     * 刪除角色信息
     * Title: delectRoleByRoleId   
     * Description:    
     * @param roleId
     * @return   
     * @see com.sundablog.service.backend.system.upms.role.RoleService#delectRoleByRoleId(int)
     */
    @Override
    public int delectRoleByRoleId(int roleId) {
        int i = adminRoleMapper.deleteByPrimaryKey(roleId);
        if (i > 0) {
            AdminRolePermissionExample example = new AdminRolePermissionExample();
            Criteria criteria = example.createCriteria();
            criteria.andRoleIdEqualTo(roleId);
            int j = adminRolePermissionMapper.deleteByExample(example);
            if (j  > 0) {
                return j;
            } else {
                return 0;
            }
        } else {
            return 0;
        }
    }

    /**
     * 根據角色id查詢角色信息
     * Title: selectRoleByRoleId   
     * Description:    
     * @param roleId
     * @return   
     * @see com.sundablog.service.backend.system.upms.role.RoleService#selectRoleByRoleId(int)
     */
    @Override
    public AdminRole selectRoleByRoleId(int roleId) {
        AdminRole adminRole = adminRoleMapper.selectByPrimaryKey(roleId);
        return adminRole;
    }

    /**
     * 分頁查詢
     * Title: findPagingQuery   
     * Description:    
     * @param page
     * @param limit
     * @return   
     * @see com.sundablog.service.backend.system.upms.role.RoleService#findPagingQuery(int, int)
     */
    @Override
    public LayUiResult findPagingQuery(int page, int limit) {
        PageHelper.startPage(page, limit);
        AdminRoleExample example = new AdminRoleExample();
        List<AdminRole> list = adminRoleMapper.selectByExample(example);
        PageInfo<AdminRole> pageInfo = new PageInfo<>(list);
        LayUiResult layUiResult = new LayUiResult();
        layUiResult.setCode(0);
        layUiResult.setMsg("");
        layUiResult.setCount(pageInfo.getTotal());
        layUiResult.setData(list);
        return layUiResult;
    }

    /**
     * 根據角色id查詢角色權限關聯表
     * Title: selectRolePermissionByRoleId   
     * Description:    
     * @param roleId
     * @return   
     * @see com.sundablog.service.backend.system.upms.role.RoleService#selectRolePermissionByRoleId(int)
     */
    @Override
    public List<AdminRolePermission> selectRolePermissionByRoleId(int roleId) {
        AdminRolePermissionExample example = new AdminRolePermissionExample();
        Criteria criteria = example.createCriteria();
        criteria.andRoleIdEqualTo(roleId);
        List<AdminRolePermission> list = adminRolePermissionMapper.selectByExample(example);
        return list;
    }

    /**
     * 根據角色ID 向權限關聯表中添加權限id
     * Title: addRolePermission   
     * Description:    
     * @param roleId
     * @param permissionId
     * @return   
     * @see com.sundablog.service.backend.system.upms.role.RoleService#addRolePermission(int, java.lang.String)
     */
    @Override
    public int addRolePermission(int roleId, String permissionId) {
        //刪除角色權限關聯表中是數據
        AdminRolePermissionExample example = new AdminRolePermissionExample();
        Criteria criteria = example.createCriteria();
        criteria.andRoleIdEqualTo(roleId);
        int i = adminRolePermissionMapper.deleteByExample(example);
        
        //添加
        List<String> list = StrUtil.split(permissionId, ',');
        try {
            for (String string : list) {
                AdminRolePermission adminRolePermission = new AdminRolePermission();
                adminRolePermission.setRoleId(roleId);
                adminRolePermission.setPermissionId(Integer.valueOf(string));
                adminRolePermissionMapper.insert(adminRolePermission);
            }
            return 1;
        } catch (Exception e) {
            return 0;
        }
    }

    /**
     * 查詢全部角色
     * Title: selectRole   
     * Description:    
     * @return   
     * @see com.sundablog.service.backend.system.upms.role.RoleService#selectRole()
     */
    @Override
    public List<AdminRole> selectRole() {
        AdminRoleExample example = new AdminRoleExample();
        List<AdminRole> list = adminRoleMapper.selectByExample(example);
        return list;
    }

}

3.角色控制器

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

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

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.fasterxml.jackson.databind.deser.Deserializers.Base;
import com.sundablog.pojo.AdminRole;
import com.sundablog.pojo.AdminRolePermission;
import com.sundablog.result.BaseResult;
import com.sundablog.result.LayUiResult;
import com.sundablog.service.backend.system.upms.role.RoleService;

import cn.hutool.setting.Setting;

/**
 * 角色權限控制器
 * @ClassName:  RoleController   
 * @Description:角色權限控制器   
 * @author: 噠噠 
 * @date:   2018年3月14日 下午7:10:26   
 *     
 * @Copyright: 2018 www.sundablog.com Inc. All rights reserved.
 */
@Controller
@RequestMapping("/backend/system/upms/role")
public class RoleController {
    
    @Autowired
    private RoleService roleService;

    /**
     * 角色界面顯示
     * @Title: index   
     * @Description: 添加界面顯示  
     * @param: @return      
     * @return: String      
     * @throws
     */
    @RequiresPermissions("backend_system_upms_role_index")
    @RequestMapping("/index")
    public String index() {
        return "backend/system/upms/role/index";
    }
    
    /**
     * 添加角色界面顯示
     * @Title: addIndex   
     * @Description: 添加角色界面顯示
     * @param: @return      
     * @return: String      
     * @throws
     */
    @RequiresPermissions("backend_system_upms_role_add")
    @RequestMapping("/add")
    public String addIndex() {
        return "backend/system/upms/role/add";
    }
    
    /**
     * 設置權限界面顯示
     * @Title: settingIndex   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @return      
     * @return: String      
     * @throws
     */
    @RequiresPermissions("backend_system_upms_role_setting")
    @RequestMapping("/setting")
    public String settingIndex() {
        return "backend/system/upms/role/setting";
    }
    
    
    /**
     * 刪除角色
     * @Title: delectRole   
     * @Description:  刪除角色
     * @param: @param roleId
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequiresPermissions("backend_system_upms_role_delectRole")
    @RequestMapping("/delectRole")
    @ResponseBody
    public BaseResult delectRole(int roleId) {
        int i = roleService.delectRoleByRoleId(roleId);
        if (i > 0) {
            return BaseResult.build(200, BaseResult.delectSuccess);
        } else {
            return BaseResult.build(201, BaseResult.delectFail);
        }
    }
    
    
    /**
     * 分頁查詢
     * @Title: findPagingQuery   
     * @Description: 分頁查詢   
     * @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 = roleService.findPagingQuery(page, limit);
        return result;
    }
    
    /**
     * 查詢全部角色
     * @Title: selectRole   
     * @Description:查詢全部角色
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequestMapping("/selectRole")
    @ResponseBody
    public BaseResult selectRole() {
        List<AdminRole> list = roleService.selectRole();
        return BaseResult.build(200, "", list);
    }
    
    /**
     * 添加角色
     * @Title: addRole   
     * @Description: 添加角色
     * @param: @param adminRole
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequestMapping("/addRole")
    @ResponseBody
    public BaseResult addRole(AdminRole adminRole) {
        adminRole.setCtime(new Date());
        int i = roleService.addRole(adminRole);
        if (i > 0) {
            return BaseResult.build(200, BaseResult.addSuccess);
        } else {
            return BaseResult.build(209, BaseResult.addFail);
        }
    }
    
    
    
    /**
     * 根據角色id查詢角色權限關聯表
     * @Title: selectRolePermissionByRoleId   
     * @Description: 根據角色id查詢角色權限關聯表
     * @param: @param roleId
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequestMapping("/selectRolePermissionByRoleId")
    @ResponseBody
    public BaseResult selectRolePermissionByRoleId(int roleId) {
        List<AdminRolePermission> list = roleService.selectRolePermissionByRoleId(roleId);
        return BaseResult.build(200, "", list);
    }
    
    /**
     * 根據角色ID 向權限關聯表中添加權限id
     * @Title: addRolePermission   
     * @Description: TODO(這裏用一句話描述這個方法的作用)   
     * @param: @param roleId
     * @param: @param permissionId
     * @param: @return      
     * @return: BaseResult      
     * @throws
     */
    @RequestMapping("/addRolePermission")
    @ResponseBody
    public BaseResult addRolePermission(int roleId,String permissionId) {
        int i = roleService.addRolePermission(roleId, permissionId);
        if (i > 0) {
            return BaseResult.build(200, BaseResult.addSuccess);
        } else {
            return BaseResult.build(209, BaseResult.addFail);
        }
    }
    
    
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章