基于java SSM springboot實(shí)現(xiàn)抗疫物質(zhì)信息管理系統(tǒng)
主要功能設(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"; } }
用戶首頁超級管理員頁面功能:
用戶管理:每個(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(); } }
用戶申請抗疫物質(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)于抗疫物質(zhì)信息管理系統(tǒng)基于JAVA SSM springboot實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)信息管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot整合redis實(shí)現(xiàn)輸入密碼錯(cuò)誤限制登錄功能
遇到這樣的需求需要實(shí)現(xiàn)一個(gè)登錄功能,并且2分鐘之內(nèi)只能輸入5次錯(cuò)誤密碼,若輸入五次之后還沒有輸入正確密碼,系統(tǒng)將會將該賬號鎖定1小時(shí),這篇文章主要介紹了SpringBoot整合redis并實(shí)現(xiàn)輸入密碼錯(cuò)誤限制登錄功能,需要的朋友可以參考下2024-02-02spring中@ControllerAdvice 注解的使用
@ControllerAdvice注解是Spring3.2中新增的注解,主要用于Controller的全局配置,本文就來介紹一下spring中@ControllerAdvice 注解的使用,感興趣的可以了解一下2024-09-09java異常繼承何類,運(yùn)行時(shí)異常與一般異常的區(qū)別(詳解)
下面小編就為大家?guī)硪黄猨ava異常繼承何類,運(yùn)行時(shí)異常與一般異常的區(qū)別(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11java.io.IOException:?UT010029:?Stream?is?closed異常分析及解決
這篇文章主要給大家介紹了關(guān)于java.io.IOException:?UT010029:?Stream?is?closed異常分析及解決辦法,文中通過代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-02-02java使用wait和notify實(shí)現(xiàn)線程通信
這篇文章主要為大家詳細(xì)介紹了java如何使用wait和notify實(shí)現(xiàn)線程之間通信,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10Java實(shí)現(xiàn)更新順序表中的指定元素的示例
本文主要介紹了Java實(shí)現(xiàn)更新順序表中的指定元素的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(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邏輯,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04