https://v4.bootcss.com/docs/components/modal/
package edu.td.peanut.controller;
import db.model.UserMaster;
import db.model.UserRule;
import db.service.UserMasterService;
import db.service.UserRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import peanut.bean.*;
import peanut.utils.PeanutUtils;
import java.util.Objects;
@Controller
@RequestMapping(value = "master", method = RequestMethod.POST)
public class MasterApiController extends PublicController {
@Autowired
private UserMasterService masterService;
@Autowired
private UserRuleService ruleService;
@RequestMapping("loginDeal")
@ResponseBody//表示直接返回数据给请求对象(浏览器),无需加载指定界面
public ErrorBean loginDeal(@RequestBody LoginBean loginBean) {
if (loginBean == null) {
return ErrorBean.getInstance(1);
}
if (!checkCode(loginBean.getTdCode())) {
//验证码错误,请重试
return ErrorBean.getInstance(2);
}
UserMaster master = masterService.findMasterByUsername(loginBean.getTdUsername());
if (master == null) {
//用户名不存在,请重试
return ErrorBean.getInstance(101);
}
if (!Objects.equals(master.getMasterPassword(), PeanutUtils.md5(loginBean.getTdPassword()))) {
//登录密码错误,请重试
return ErrorBean.getInstance(102);
}
if (!checkToken(loginBean.getToken())) {
//token错误,当前请求非法
return ErrorBean.getInstance(3);
}
//先做其他数据验证,最终验证token
//记录登录对象
session.setAttribute("loginUser", master);
//构造返回对象
return ErrorBean.getInstance(0)
.setTitle("登陆成功")
.setMsg("登陆成功,即将跳转首页")
.setUrl("/master/index.do");
}
@RequestMapping("loginDeal2")
public String loginDeal2(String tdUsername, String tdPassword, String tdCode, String token) {
if (!checkToken(token)) {
modelMap.addAttribute("url", "/master/login.do");
modelMap.addAttribute("msg", "token错误,当前请求非法");
return "error";
}
if (!checkCode(tdCode)) {
modelMap.addAttribute("url", "/master/login.do");
modelMap.addAttribute("msg", "验证码错误,请重试");
return "error";
}
if (!"admin".equals(tdUsername)) {
modelMap.addAttribute("url", "/master/login.do");
modelMap.addAttribute("msg", "用户名不存在,请重试");
return "error";
}
if (!"123456".equals(tdPassword)) {
modelMap.addAttribute("url", "/master/login.do");
modelMap.addAttribute("msg", "登录密码错误,请重试");
return "error";
}
//记录用户的登录状态
session.setAttribute("loginUser", "admin");
return "redirect:/master/index.do";
}
@RequestMapping("unlock")
@ResponseBody//表示直接返回数据给请求对象(浏览器),无需加载指定界面
public Object unlock() {
return null;
}
@RequestMapping("userRuleData")
@ResponseBody//表示直接返回数据给请求对象(浏览器),无需加载指定界面
public BootsTableResponse userRuleData(@RequestBody BootsTableRequest tableRequest) {
return ruleService.bootsData(tableRequest);
}
@RequestMapping("editUserRule")
@ResponseBody//表示直接返回数据给请求对象(浏览器),无需加载指定界面
public ErrorBean editUserRule(@RequestBody UserRule record) {
if (record == null) return ErrorBean.getInstance(1);
int lineCount = 0;//记录被影响的数据行数
if (record.getId() == null) {
//新增
lineCount = ruleService.insertSelective(record);
} else {
//修改
lineCount = ruleService.updateByPrimaryKey(record);
}
if (lineCount == 0) return ErrorBean.getInstance(4);
return ErrorBean.getInstance(0);
}
@RequestMapping("delUserRule")
@ResponseBody//表示直接返回数据给请求对象(浏览器),无需加载指定界面
public ErrorBean delUserRule(@RequestBody DeleteBean deleteBean) {
if (deleteBean == null || deleteBean.getIdList() == null) return ErrorBean.getInstance(1);
if (ruleService.delElementByIdList(deleteBean.getIdList()) == 0) return ErrorBean.getInstance(4);
return ErrorBean.getInstance(0);
}
}
3.MasterController添加实现方法
4.UserRuleServiceImpl中增加实现方法
package edu.td.peanut.service;
import com.github.pagehelper.PageHelper;
import db.mapper.UserRuleMapper;
import db.model.UserRule;
import db.service.UserRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import peanut.bean.BootsTableRequest;
import peanut.bean.BootsTableResponse;
import java.util.List;
import static org.mybatis.dynamic.sql.SqlBuilder.*;
import static db.mapper.UserRuleDynamicSqlSupport.*;
@Service
@Primary
public class UserRuleServiceImpl implements UserRuleService {
@Autowired
private UserRuleMapper ruleMapper;
@Override
public UserRule findByPrimaryKey(Integer key) {
if (key == null || key < 1) return null;
return ruleMapper.selectByPrimaryKey(key).orElse(null);
}
@Override
public BootsTableResponse bootsData(BootsTableRequest tableRequest) {
if (tableRequest == null) return null;
//添加查询分页
PageHelper.offsetPage(tableRequest.getOffset(), tableRequest.getLimit());
return new BootsTableResponse<>(ruleMapper.select(entity -> {
//添加花括号是为了实现多行编码
entity.where(delTime, isEqualTo(0))
.and(
ruleName, isLikeWhenPresent(tableRequest.getSearch()),
or(ruleMethod, isLikeWhenPresent(tableRequest.getSearch())),
or(ruleType, isLikeWhenPresent(tableRequest.getSearch())),
or(ruleUrl, isLikeWhenPresent(tableRequest.getSearch()))
);
//添加排序规则
if (tableRequest.getSort() == null) {
//使用默认排序规则
entity.orderBy(addTime.descending());
} else if ("ASC".equals(tableRequest.getOrder())) {
//升序排列
entity.orderBy(userRule.column(tableRequest.getSort()));
} else {
//降序排列
entity.orderBy(userRule.column(tableRequest.getSort()).descending());
}
return entity;
}));
}
@Override
public int insertSelective(UserRule record) {
record.setId(null);
record.setDelTime(null);
record.setUpdateTime(null);
record.setAddTime(null);
return ruleMapper.insertSelective(record);
}
@Override
public int updateByPrimaryKey(UserRule record) {
record.setDelTime(null);
record.setUpdateTime(null);
record.setAddTime(null);
return ruleMapper.updateByPrimaryKeySelective(record);
}
@Override
public int delElementByIdList(List idList) {
if (idList == null || idList.isEmpty()) return 0;
return ruleMapper.update(entity -> entity
.set(delTime).equalTo((int) (System.currentTimeMillis() / 1000))
.where(id, isIn(idList))
);
}
@Override
public List selectAllParentList() {
return ruleMapper.select(entity -> entity
.where(delTime, isEqualTo(0))
.and(ruleType, isEqualTo("PAGE"))
.orderBy(ruleType, ruleMethod, ruleName)
);
}
}
5.UserRuleService中添加实现方法
6.baseService中添加实现方法
7.新建DeleteBean.java
8.编辑edit.jsp界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ include file="/WEB-INF/layout/header.jsp" %><%@include file="/WEB-INF/layout/footer.jsp"%>


