基于JAVA SSM springboot實(shí)現(xiàn)的抗疫物質(zhì)信息管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)
主要功能設(shè)計(jì):
用戶、區(qū)域、物質(zhì)類型、物質(zhì)詳情、物質(zhì)申請和審核以及我的申請和通知公告以及靈活控制菜單權(quán)限
主要技術(shù)實(shí)現(xiàn):spring、 springmvc、 springboot、springboot security權(quán)限框架 mybatis 、 jquery 、 md5 、bootstarp.js tomcat、器、攔截器等
具體功能模塊:用戶模塊、角色模塊、菜單模塊、部門模塊以及靈活的權(quán)限控制,可控制到頁面或按鈕,滿足絕大部分的權(quán)限需求
業(yè)務(wù)模塊功能:區(qū)域管理、對不同區(qū)域的進(jìn)行管理以及物質(zhì)發(fā)放等、物質(zhì)類型管理、物質(zhì)詳情管理、物質(zhì)申請管理、物質(zhì)審核管理、我的物質(zhì)申請管理、以及系統(tǒng)通知公告查看等具體功能模塊、以及修改密碼退出等。
功能截圖如下:

/**
* .
*
*
*
*
*/
package io.renren.modules.sys.controller;
import com.google.code.kaptcha.Constants;
import com.google.code.kaptcha.Producer;
import io.renren.common.utils.R;
import io.renren.modules.sys.shiro.ShiroUtils;
import org.apache.shiro.authc.*;
import org.apache.shiro.subject.Subject;
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.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;
/**
* 登錄相關(guān)
*
* @author Mark s.com
*/
@Controller
public class SysLoginController {
@Autowired
private Producer producer;
@RequestMapping("captcha.jpg")
public void captcha(HttpServletResponse response)throws IOException {
response.setHeader("Cache-Control", "no-store, no-cache");
response.setContentType("image/jpeg");
//生成文字驗(yàn)證碼
String text = producer.createText();
//生成圖片驗(yàn)證碼
BufferedImage image = producer.createImage(text);
//保存到shiro session
ShiroUtils.setSessionAttribute(Constants.KAPTCHA_SESSION_KEY, text);
ServletOutputStream out = response.getOutputStream();
ImageIO.write(image, "jpg", out);
}
/**
* 登錄
*/
@ResponseBody
@RequestMapping(value = "/sys/login", method = RequestMethod.POST)
public R login(String username, String password, String captcha) {
String kaptcha = ShiroUtils.getKaptcha(Constants.KAPTCHA_SESSION_KEY);
if(!captcha.equalsIgnoreCase(kaptcha)){
return R.error("驗(yàn)證碼不正確");
}
try{
Subject subject = ShiroUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(username, password);//md5+Jiayan
subject.login(token);
}catch (UnknownAccountException e) {
return R.error(e.getMessage());
}catch (IncorrectCredentialsException e) {
return R.error("賬號或密碼不正確");
}catch (LockedAccountException e) {
return R.error("賬號已被鎖定,請聯(lián)系管理員");
}catch (AuthenticationException e) {
return R.error("賬戶驗(yàn)證失敗");
}
return R.ok();
}
/**
* 退出
*/
@RequestMapping(value = "logout", method = RequestMethod.GET)
public String logout() {
ShiroUtils.logout();
return "redirect:login.html";
}
}
復(fù)制代碼用戶首頁超級管理員頁面功能:

用戶管理:每個(gè)模塊對應(yīng)的CRUD功能都是完善的
角色靈活設(shè)置權(quán)限:

菜單管理:

區(qū)域管理:

抗疫物質(zhì)類型管理:

抗疫物質(zhì)詳情管理;

package io.renren.modules.sys.controller;
import io.renren.common.utils.PageUtils;
import io.renren.common.utils.R;
import io.renren.modules.sys.entity.MatterApply;
import io.renren.modules.sys.service.MatterApplyService;
import io.renren.modules.sys.service.impl.MatterApplyServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.Date;
import java.util.Map;
@RestController
@RequestMapping("/sys/matterApply")
public class MatterApplyController extends AbstractController {
@Autowired
private MatterApplyService MatterApplyService;
@Autowired
MatterApplyServiceImpl MatterApplyServiceImpe;
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params){
PageUtils page = MatterApplyService.queryPage(params);
return R.ok().put("page", page);
}
@RequestMapping("/AuditList")
public R AuditList(@RequestParam Map<String, Object> params){
params.put("applyStu","未審核");
PageUtils page = MatterApplyService.queryPage(params);
return R.ok().put("page", page);
}
@RequestMapping("/listByUser")
public R listByUser(@RequestParam Map<String, Object> params){
params.put("applyUserId",String.valueOf(getUserId()));
PageUtils page = MatterApplyService.queryPage(params);
return R.ok().put("page", page);
}
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
MatterApply matterApply = MatterApplyService.getById(id);
return R.ok().put("matterApply", matterApply);
}
@RequestMapping("/save")
public R save(@RequestBody MatterApply matterApply){
matterApply.setApplyTime(new Date());
matterApply.setApplyUserId(getUserId());
matterApply.setApplyStu("未審核");
MatterApplyService.save(matterApply);
return R.ok();
}
@RequestMapping("/update")
public R update(@RequestBody MatterApply matterApply){
MatterApplyService.updateById(matterApply);
return R.ok();
}
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
MatterApplyService.removeByIds(Arrays.asList(ids));
return R.ok();
}
}
復(fù)制代碼
用戶申請抗疫物質(zhì):

管理員審核:

普通用戶權(quán)限;

數(shù)據(jù)集設(shè)計(jì)ER圖:

CREATE TABLE `NewTable` (
`user_id` bigint(20) NOT NULL AUTO_INCREMENT ,
`username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用戶名' ,
`password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密碼' ,
`salt` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '鹽' ,
`email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '郵箱' ,
`mobile` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手機(jī)號' ,
`status` tinyint(4) NULL DEFAULT NULL COMMENT '狀態(tài) 0:禁用 1:正常' ,
`dept_id` bigint(20) NULL DEFAULT NULL COMMENT '部門ID' ,
`create_time` datetime NULL DEFAULT NULL COMMENT '創(chuàng)建時(shí)間' ,
PRIMARY KEY (`user_id`),
UNIQUE INDEX `username` (`username`) USING BTREE
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8mb4 COLLATE=utf8mb4_general_ci
COMMENT='系統(tǒng)用戶'
AUTO_INCREMENT=3
ROW_FORMAT=COMPACT
;
關(guān)注博主一健三聯(lián)喲
作者:java李楊勇
鏈接:https://juejin.cn/post/6992377124581556238
來源:掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
評論
圖片
表情

