基于java SSM springboot實(shí)現(xiàn)抗疫物質(zhì)信息管理系統(tǒng)
主要功能設(shè)計(jì):
用戶、區(qū)域、物質(zhì)類(lèi)型、物質(zhì)詳情、物質(zhì)申請(qǐng)和審核以及我的申請(qǐng)和通知公告以及靈活控制菜單權(quán)限

主要技術(shù)實(shí)現(xiàn):spring、 springmvc、 springboot、springboot security權(quán)限框架 mybatis 、 jquery 、 md5 、bootstarp.js tomcat、器、攔截器等
具體功能模塊:用戶模塊、角色模塊、菜單模塊、部門(mén)模塊以及靈活的權(quán)限控制,可控制到頁(yè)面或按鈕,滿足絕大部分的權(quán)限需求 業(yè)務(wù)模塊功能:區(qū)域管理、對(duì)不同區(qū)域的進(jìn)行管理以及物質(zhì)發(fā)放等、物質(zhì)類(lèi)型管理、物質(zhì)詳情管理、物質(zhì)申請(qǐng)管理、物質(zhì)審核管理、我的物質(zhì)申請(qǐng)管理、以及系統(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("賬號(hào)或密碼不正確");
}catch (LockedAccountException e) {
return R.error("賬號(hào)已被鎖定,請(qǐng)聯(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";
}
}
用戶首頁(yè)超級(jí)管理員頁(yè)面功能:

用戶管理:每個(gè)模塊對(duì)應(yīng)的CRUD功能都是完善的

角色靈活設(shè)置權(quán)限:

菜單管理:

區(qū)域管理:

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

抗疫物質(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();
}
}

用戶申請(qǐng)抗疫物質(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ī)號(hào)' , `status` tinyint(4) NULL DEFAULT NULL COMMENT '狀態(tài) 0:禁用 1:正常' , `dept_id` bigint(20) NULL DEFAULT NULL COMMENT '部門(mén)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)于抗疫物質(zhì)信息管理系統(tǒng)基于JAVA SSM springboot實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)信息管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot整合redis實(shí)現(xiàn)輸入密碼錯(cuò)誤限制登錄功能
遇到這樣的需求需要實(shí)現(xiàn)一個(gè)登錄功能,并且2分鐘之內(nèi)只能輸入5次錯(cuò)誤密碼,若輸入五次之后還沒(méi)有輸入正確密碼,系統(tǒng)將會(huì)將該賬號(hào)鎖定1小時(shí),這篇文章主要介紹了SpringBoot整合redis并實(shí)現(xiàn)輸入密碼錯(cuò)誤限制登錄功能,需要的朋友可以參考下2024-02-02
這篇文章主要介紹了SpringBoot 定時(shí)任務(wù)遇到的坑,今天踩的這個(gè)坑和 cron 表達(dá)式有關(guān),文中給大家介紹了cron 表達(dá)式的解釋?zhuān)枰呐笥岩黄鹂纯窗?/div> 2017-11-11
spring中@ControllerAdvice 注解的使用
@ControllerAdvice注解是Spring3.2中新增的注解,主要用于Controller的全局配置,本文就來(lái)介紹一下spring中@ControllerAdvice 注解的使用,感興趣的可以了解一下2024-09-09
java異常繼承何類(lèi),運(yùn)行時(shí)異常與一般異常的區(qū)別(詳解)
下面小編就為大家?guī)?lái)一篇java異常繼承何類(lèi),運(yùn)行時(shí)異常與一般異常的區(qū)別(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
java.io.IOException:?UT010029:?Stream?is?closed異常分析及解決
這篇文章主要給大家介紹了關(guān)于java.io.IOException:?UT010029:?Stream?is?closed異常分析及解決辦法,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-02-02
java使用wait和notify實(shí)現(xiàn)線程通信
這篇文章主要為大家詳細(xì)介紹了java如何使用wait和notify實(shí)現(xiàn)線程之間通信,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10
Java實(shí)現(xiàn)更新順序表中的指定元素的示例
本文主要介紹了Java實(shí)現(xiàn)更新順序表中的指定元素的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06
如何在java 8 stream表達(dá)式實(shí)現(xiàn)if/else邏輯
這篇文章主要介紹了如何在java 8 stream表達(dá)式實(shí)現(xiàn)if/else邏輯,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04最新評(píng)論

