进销存系统_角色管理(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)的主要内容,如果未能解决你的问题,请参考以下文章
基于ssm框架JAVAWeb进销存库存管理系统设计与实现(论文+项目源码+开题报告+系统使用说明+用户操作手册+系统设计文件)