欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Springboot實(shí)例講解實(shí)現(xiàn)專業(yè)材料認(rèn)證管理系統(tǒng)流程

 更新時(shí)間:2022年06月06日 10:54:44   作者:編程指南針  
這是一個(gè)基于java的畢業(yè)設(shè)計(jì)項(xiàng)目,畢設(shè)課題為springboot框架的知識(shí)產(chǎn)權(quán)服務(wù)平臺(tái)系統(tǒng),是一個(gè)采用b/s結(jié)構(gòu)的javaweb項(xiàng)目,需要的朋友可以參考下

一,項(xiàng)目簡(jiǎn)介

這是一個(gè)基于java的畢業(yè)設(shè)計(jì)項(xiàng)目,畢設(shè)課題為springboot框架的知識(shí)產(chǎn)權(quán)服務(wù)平臺(tái)系統(tǒng), 是一個(gè)采用b/s結(jié)構(gòu)的javaweb項(xiàng)目, 開(kāi)發(fā)工具eclipsei/eclipse, 項(xiàng)目框架jsp+springboot+mybatis, 知識(shí)產(chǎn)權(quán)服務(wù)平臺(tái)系統(tǒng)采用mysql進(jìn)行數(shù)據(jù)存儲(chǔ), 并基于mybatis進(jìn)行了orm實(shí)體關(guān)系映射, 該知識(shí)產(chǎn)權(quán)服務(wù)平臺(tái)系統(tǒng)系統(tǒng)通過(guò)模塊化實(shí)現(xiàn),支持多角色權(quán)限管理系統(tǒng), 提升了管理效率, 知識(shí)產(chǎn)權(quán)服務(wù)平臺(tái)系統(tǒng)參考文獻(xiàn)可見(jiàn)附件中的畢業(yè)論文與畢設(shè)源碼

該知識(shí)產(chǎn)權(quán)服務(wù)平臺(tái)系統(tǒng)項(xiàng)目采用mvc設(shè)計(jì)模式, 其中知識(shí)產(chǎn)權(quán)服務(wù)平臺(tái)系統(tǒng)的視圖與知識(shí)產(chǎn)權(quán)服務(wù)平臺(tái)系統(tǒng)業(yè)務(wù)邏輯進(jìn)行了分層設(shè)計(jì), 特別方便后續(xù)知識(shí)產(chǎn)權(quán)服務(wù)平臺(tái)系統(tǒng)系統(tǒng)的開(kāi)發(fā)

設(shè)計(jì)這種mvc的架構(gòu)的好處是完全的可以將業(yè)務(wù)進(jìn)行分層, 進(jìn)行高內(nèi)聚低耦合, 分為service層, dao層, controller層, 架構(gòu)清晰

本項(xiàng)目主要基于Springboot 和ruoyi來(lái)開(kāi)發(fā)一套專業(yè)認(rèn)證材料管理系統(tǒng),對(duì)各專業(yè)相關(guān)的文檔材料進(jìn)行管理,主要包含的功能模塊有:

系統(tǒng)管理:用戶管理、角色管理、菜單管理、操作日志

業(yè)務(wù)模塊:專業(yè)管理、認(rèn)證材料管理、相關(guān)網(wǎng)站管理

二,環(huán)境介紹

語(yǔ)言環(huán)境:Java: jdk1.8

數(shù)據(jù)庫(kù):Mysql: mysql5.7

應(yīng)用服務(wù)器:Tomcat: tomcat8.5.31

開(kāi)發(fā)工具:IDEA或eclipse

開(kāi)發(fā)技術(shù):Springboot+ruoyi+bootstrap

三,系統(tǒng)展示

用戶登陸:

用戶注冊(cè):

用戶管理

角色管理

菜單管理

操作管理

專業(yè)管理

認(rèn)證材料管理

相關(guān)網(wǎng)站

個(gè)人中心

修改密碼

四,核心代碼展示

package com.code.project.common;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import com.code.common.constant.Constants;
import com.code.common.utils.StringUtils;
import com.code.common.utils.file.FileUploadUtils;
import com.code.common.utils.file.FileUtils;
import com.code.common.utils.security.ShiroUtils;
import com.code.framework.config.RuoYiConfig;
import com.code.framework.config.ServerConfig;
import com.code.framework.web.domain.AjaxResult;
/**
 * 通用請(qǐng)求處理
 *
 * @author ruoyi
 */
@Controller
public class CommonController
{
    private static final Logger log = LoggerFactory.getLogger(CommonController.class);
    @Autowired
    private ServerConfig serverConfig;
    /**
     * 通用下載請(qǐng)求
     *
     * @param fileName 文件名稱
     * @param delete 是否刪除
     */
    @GetMapping("common/download")
    public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
    {
        try
        {
            if (!FileUtils.isValidFilename(fileName))
            {
                throw new Exception(StringUtils.format("文件名稱({})非法,不允許下載。 ", fileName));
            }
            String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
            String filePath = System.getProperty("user.dir").replace('\\','/')+RuoYiConfig.getDownloadPath() + fileName;
            System.out.println(filePath);
            response.setCharacterEncoding("utf-8");
            response.setContentType("multipart/form-data");
            response.setHeader("Content-Disposition",
                    "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, realFileName));
            FileUtils.writeBytes(filePath, response.getOutputStream());
            if (delete)
            {
                FileUtils.deleteFile(filePath);
            }
        }
        catch (Exception e)
        {
            log.error("下載文件失敗", e);
        }
    }
    /**
     * 通用上傳請(qǐng)求
     */
    @PostMapping("/common/upload")
    @ResponseBody
    public AjaxResult uploadFile(MultipartFile file) throws Exception
    {
        try
        {
            // 上傳文件路徑
            String filePath = System.getProperty("user.dir").replace('\\','/')+RuoYiConfig.getUploadPath();
            System.out.println(filePath);
            // 上傳并返回新文件名稱
            String fileName = FileUploadUtils.upload(filePath, file);
            String url = serverConfig.getUrl() + fileName;
            AjaxResult ajax = AjaxResult.success();
            ajax.put("fileName", fileName);
            ajax.put("url", url);
            return ajax;
        }
        catch (Exception e)
        {
            return AjaxResult.error(e.getMessage());
        }
    }
    /**
     * 本地資源通用下載
     */
    @GetMapping("/common/download/resource")
    public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
            throws Exception
    {
        // 本地資源路徑
        String localPath = System.getProperty("user.dir").replace('\\','/')+RuoYiConfig.getProfile();
        // 數(shù)據(jù)庫(kù)資源地址
        String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX);
        // 下載名稱
        String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
        response.setCharacterEncoding("utf-8");
        response.setContentType("multipart/form-data");
        response.setHeader("Content-Disposition",
                "attachment;fileName=" + FileUtils.setFileDownloadHeader(request, downloadName));
        FileUtils.writeBytes(downloadPath, response.getOutputStream());
    }
}
package com.code.project.monitor.online.controller;
import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import com.code.common.utils.security.ShiroUtils;
import com.code.framework.aspectj.lang.annotation.Log;
import com.code.framework.aspectj.lang.enums.BusinessType;
import com.code.framework.shiro.session.OnlineSessionDAO;
import com.code.framework.web.controller.BaseController;
import com.code.framework.web.domain.AjaxResult;
import com.code.framework.web.page.TableDataInfo;
import com.code.project.monitor.online.domain.OnlineSession;
import com.code.project.monitor.online.domain.UserOnline;
import com.code.project.monitor.online.domain.OnlineSession.OnlineStatus;
import com.code.project.monitor.online.service.IUserOnlineService;
/**
 * 在線用戶監(jiān)控
 * 
 * @author ruoyi
 */
@Controller
@RequestMapping("/monitor/online")
public class UserOnlineController extends BaseController
{
    private String prefix = "monitor/online";
    @Autowired
    private IUserOnlineService userOnlineService;
    @Autowired
    private OnlineSessionDAO onlineSessionDAO;
    @RequiresPermissions("monitor:online:view")
    @GetMapping()
    public String online()
    {
        return prefix + "/online";
    }
    @RequiresPermissions("monitor:online:list")
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(UserOnline userOnline)
    {
        startPage();
        List<UserOnline> list = userOnlineService.selectUserOnlineList(userOnline);
        return getDataTable(list);
    }
    @RequiresPermissions("monitor:online:batchForceLogout")
    @Log(title = "在線用戶", businessType = BusinessType.FORCE)
    @PostMapping("/batchForceLogout")
    @ResponseBody
    public AjaxResult batchForceLogout(@RequestParam("ids[]") String[] ids)
    {
        for (String sessionId : ids)
        {
            UserOnline online = userOnlineService.selectOnlineById(sessionId);
            if (online == null)
            {
                return error("用戶已下線");
            }
            OnlineSession onlineSession = (OnlineSession) onlineSessionDAO.readSession(online.getSessionId());
            if (onlineSession == null)
            {
                return error("用戶已下線");
            }
            if (sessionId.equals(ShiroUtils.getSessionId()))
            {
                return error("當(dāng)前登陸用戶無(wú)法強(qiáng)退");
            }
            onlineSession.setStatus(OnlineStatus.off_line);
            onlineSessionDAO.update(onlineSession);
            online.setStatus(OnlineStatus.off_line);
            userOnlineService.saveOnline(online);
        }
        return success();
    }
    @RequiresPermissions("monitor:online:forceLogout")
    @Log(title = "在線用戶", businessType = BusinessType.FORCE)
    @PostMapping("/forceLogout")
    @ResponseBody
    public AjaxResult forceLogout(String sessionId)
    {
        UserOnline online = userOnlineService.selectOnlineById(sessionId);
        if (sessionId.equals(ShiroUtils.getSessionId()))
        {
            return error("當(dāng)前登陸用戶無(wú)法強(qiáng)退");
        }
        if (online == null)
        {
            return error("用戶已下線");
        }
        OnlineSession onlineSession = (OnlineSession) onlineSessionDAO.readSession(online.getSessionId());
        if (onlineSession == null)
        {
            return error("用戶已下線");
        }
        onlineSession.setStatus(OnlineStatus.off_line);
        onlineSessionDAO.update(onlineSession);
        online.setStatus(OnlineStatus.off_line);
        userOnlineService.saveOnline(online);
        return success();
    }
}
package com.code.project.monitor.server.controller;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.code.framework.web.controller.BaseController;
import com.code.project.monitor.server.domain.Server;
/**
 * 服務(wù)器監(jiān)控
 * 
 * @author ruoyi
 */
@Controller
@RequestMapping("/monitor/server")
public class ServerController extends BaseController
{
    private String prefix = "monitor/server";
    @RequiresPermissions("monitor:server:view")
    @GetMapping()
    public String server(ModelMap mmap) throws Exception
    {
        Server server = new Server();
        server.copyTo();
        mmap.put("server", server);
        return prefix + "/server";
    }
}

五,項(xiàng)目總結(jié)

本項(xiàng)目界面簡(jiǎn)潔大方,功能完整,適合做課程設(shè)計(jì)和畢業(yè)設(shè)計(jì)使用,另外可以在此項(xiàng)目框架的基礎(chǔ)上自行添加或修改相關(guān)的功能。

到此這篇關(guān)于Springboot實(shí)例講解實(shí)現(xiàn)專業(yè)材料認(rèn)證管理系統(tǒng)流程的文章就介紹到這了,更多相關(guān)Springboot材料認(rèn)證管理系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JAVA中常見(jiàn)異常類

    JAVA中常見(jiàn)異常類

    本文主要介紹了JAVA中的常見(jiàn)異常類。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • MyBatis saveBatch 性能調(diào)優(yōu)的實(shí)現(xiàn)

    MyBatis saveBatch 性能調(diào)優(yōu)的實(shí)現(xiàn)

    本文主要介紹了MyBatis saveBatch 性能調(diào)優(yōu)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • SpringCloud融入Python的實(shí)現(xiàn)

    SpringCloud融入Python的實(shí)現(xiàn)

    這篇文章主要介紹了SpringCloud融入Python的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • mybatis plus的3種查詢方式(小結(jié))

    mybatis plus的3種查詢方式(小結(jié))

    這篇文章主要介紹了mybatis plus的3種查詢方式(小結(jié)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 帶有@Transactional和@Async的循環(huán)依賴問(wèn)題的解決

    帶有@Transactional和@Async的循環(huán)依賴問(wèn)題的解決

    這篇文章主要介紹了帶有@Transactional和@Async的循環(huán)依賴問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Java AbstractMethodError原因案例詳解

    Java AbstractMethodError原因案例詳解

    這篇文章主要介紹了Java AbstractMethodError原因案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • mybatis使用foreach查詢不出結(jié)果也不報(bào)錯(cuò)的問(wèn)題

    mybatis使用foreach查詢不出結(jié)果也不報(bào)錯(cuò)的問(wèn)題

    這篇文章主要介紹了mybatis使用foreach查詢不出結(jié)果也不報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Springcloud服務(wù)注冊(cè)consul客戶端過(guò)程解析

    Springcloud服務(wù)注冊(cè)consul客戶端過(guò)程解析

    這篇文章主要介紹了Springcloud服務(wù)注冊(cè)consul客戶端過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Spring Boot如何整合FreeMarker模板引擎

    Spring Boot如何整合FreeMarker模板引擎

    這篇文章主要介紹了Spring Boot如何整合FreeMarker模板引擎,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 你真的會(huì)使用Java的方法引用嗎

    你真的會(huì)使用Java的方法引用嗎

    這篇文章主要給大家介紹了關(guān)于Java方法引用的相關(guān)資料,方法引用是Java8的新特性,方法引用其實(shí)也離不開(kāi)Lambda表達(dá)式,本文通過(guò)示例代碼介紹的很詳細(xì),需要的朋友可以參考下
    2021-08-08

最新評(píng)論