进销存系统_角色管理(11)

Posted 上善若水

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进销存系统_角色管理(11)相关的知识,希望对你有一定的参考价值。

一、代码结构

二、角色管理模块

2.1、角色主页列表展示

  • 界面原型
  • 角色主页列表查询流程
    参考用户列表查询
  • 代码

RoleQuery.java

package com.xbmu.admin.query;

import lombok.Data;
/**
 * <p>
 * 角色查询条件
 * </p>
 *
 * @author bitaotao
 * @since 2021-09-15
 */
@Data
public class RoleQuery extends BaseQuery{
    private String roleName;
}

RoleController.java

package com.xbmu.admin.controller;


import com.xbmu.admin.model.RespBean;
import com.xbmu.admin.pojo.Role;
import com.xbmu.admin.query.RoleQuery;
import com.xbmu.admin.service.IRoleService;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 角色表 前端控制器
 * </p>
 *
 * @author bitaotao
 * @since 2021-09-11
 */
@Controller
@RequestMapping("/role")
public class RoleController {
    @Resource
    private IRoleService roleService;
    /**
     * 用户管理主页
     * @return
     */
    @RequestMapping("index")
    public String index(){
        return "role/role";
    }

    /**
     * 角色列表查询接口
     * @param roleQuery 角色查询条件
     * @return
     */
    @RequestMapping("list")
    @ResponseBody
    public Map<String,Object> roleList(RoleQuery roleQuery){
        return roleService.roleList(roleQuery);
    }
}

RoleServiceImpl.java

package com.xbmu.admin.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xbmu.admin.pojo.Role;
import com.xbmu.admin.mapper.RoleMapper;
import com.xbmu.admin.query.RoleQuery;
import com.xbmu.admin.service.IRoleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xbmu.admin.util.AssertUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 角色表 服务实现类
 * </p>
 *
 * @author bitaotao
 * @since 2021-09-11
 */
@Service
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IRoleService {

    @Override
    public Map<String, Object> roleList(RoleQuery roleQuery) {
        IPage<Role> page = new Page<Role>(roleQuery.getPage(),roleQuery.getLimit());
        QueryWrapper<Role> queryWrapper = new QueryWrapper<Role>();
        queryWrapper.eq("is_del",0);
        if(StringUtils.isNotBlank(roleQuery.getRoleName())){
            queryWrapper.like("name",roleQuery.getRoleName());
        }
        page = this.baseMapper.selectPage(page,queryWrapper);
        Map<String,Object> resultMap = new HashMap<>();
        resultMap.put("code",0);
        resultMap.put("msg","");
        resultMap.put("data",page.getRecords());
        resultMap.put("count",page.getTotal());
        return resultMap;
    }
}

2.2、添加 | 更新角色记录

  • 界面原型
  • 添加 | 更新用户记录流程
    参考用户添加 | 更新流程图
  • 代码

RoleController.java

   /**
     * 添加 或 更新 角色页
     * @param id
     * @param model
     * @return
     */
    @RequestMapping("addOrUpdateRolePage")
    public String addOrUpdatePage(Integer id, Model model){
        if(null != id){
            model.addAttribute("role",roleService.getById(id));
        }
        return "role/add_update";
    }

    /**
     * 角色记录添加接口
     * @param role
     * @return
     */
    @RequestMapping("save")
    @ResponseBody
    public RespBean saveRole(Role role){
        roleService.saveRole(role);
        return RespBean.success("角色记录添加成功!");
    }

    /**
     * 角色记录更新接口
     * @param role
     * @return
     */
    @RequestMapping("update")
    @ResponseBody
    public RespBean updateRole(Role role){
        roleService.updateRole(role);
        return RespBean.success("角色记录更新成功!");
    }

RoleServiceImpl.java

    @Override
    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
    public void saveRole(Role role) {
        AssertUtil.isTrue(StringUtils.isBlank(role.getName()),"请输入角色名!");
        AssertUtil.isTrue(null != this.findRoleByRoleName(role.getName()),"角色名已存在!");
        role.setIsDel(0);
        AssertUtil.isTrue(!(this.save(role)),"角色添加失败!");
    }

    @Override
    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
    public void updateRole(Role role) {
        AssertUtil.isTrue(StringUtils.isBlank(role.getName()),"请输入角色名!");
        Role tempRole = this.findRoleByRoleName(role.getName());
        AssertUtil.isTrue(null != tempRole && !(tempRole.getId().equals(role.getId())),"角色名已存在!");
        AssertUtil.isTrue(!(this.updateById(role)),"角色更新失败!");
    }

    @Override
    public Role findRoleByRoleName(String roleName) {
        return this.baseMapper.selectOne(new QueryWrapper<Role>().eq("is_del",0).eq("name",roleName));
    }

2.3、删除角色记录

  • 界面原型
  • 删除用户记录流程
    参考用户记录删除流程
  • 代码

RoleController.java

   /**
     * 角色记录删除接口
     * @param id
     * @return
     */
    @RequestMapping("delete")
    @ResponseBody
    public RespBean deleteRole(Integer id){
        roleService.deleteRole(id);
        return RespBean.success("角色记录删除成功!");
    }

RoleServiceImpl.java

    @Override
    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)
    public void deleteRole(Integer id) {
        AssertUtil.isTrue(null == id,"请选择待删除记录!");
        Role role = this.getById(id);
        AssertUtil.isTrue(null == role,"待删除记录不存在!");
        role.setIsDel(1);
        AssertUtil.isTrue(!(this.updateById(role)),"角色记录删除失败!");
    }

三、页面结果处理工具类

PageResultUtil.java

package com.xbmu.admin.util;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 页面结果处理工具类
 *
 * @author bitaotao
 * @version 1.0
 */
public class PageResultUtil {

    public static Map<String,Object> getResult(Long total, List<?> records){
        Map<String,Object> result = new HashMap<String,Object>();
        result.put("count",total);
        result.put("data",records);
        result.put("code",0);
        result.put("msg","");
        return result;
    }
}

以上是关于进销存系统_角色管理(11)的主要内容,如果未能解决你的问题,请参考以下文章

进销存系统_系统权限管理-用户&角色管理

进销存系统_系统权限管理-用户&角色管理

进销存系统_用户角色分配(12)

进销存系统_菜单管理(14)

进销存系统_用户管理(10)

基于ssm框架JAVAWeb进销存库存管理系统设计与实现(论文+项目源码+开题报告+系统使用说明+用户操作手册+系统设计文件)