Spring boot实操演练4 ——系统版本管理功能的设计与实现

目录

1、业务场景

(1)、需求分析

2、开发环境和工具

3、代码思路

4、参考代码

controller

iService

serviceImpl

AppUpdateManage

SystemManageInfo

SystemUpdateLog

AppVersionVo

HistoryVersionVo

SystenInfoSelectVo

总结


1、业务场景

(1)、需求分析

1)、总计七个接口,主要为查询和新增;

2)、查询分为对系统基本信息的查询和对系统版本信息的查询;

3)、新增为新增系统版本信息;

4)、每个接口的具体需求我会注释在参考代码和数据库设计里,代码思路也会提到;

5)、一张主表(system_manage_info),两张子表(app_update_manage + system_update_log);

2、开发环境和工具

因为该业务功能是已有项目下的拓展,所以环境依赖较多,我将重点阐述代码逻辑,开发环境和工具只会简单带过;

(1)、IDE:IntelliJ IDEA 2022.1;

(2)、数据库:Navicat 16;

(3)、测试:Postman;

(4)、JDK:jdk-11.0.15;

(5)、Spring Boot Version:2.2.5.RELEASE;

(6)、modelVersion:4.0.0;

(7)、pomVersion:0.0.1-SNAPSHOT;

(8)、数据库表设计:

主表:system_manage_info

 子表1:app_update_manage

 子表2:system_update_log

3、代码思路

4、参考代码

controller

//controller所在的包目录
package xxx.system.controller;

//注入所需的实体类和其他东西,我使用idea时一般可以手动快捷添加甚至自动添加
import xxx.entity.model.AppUpdateManage;
import xxx.entity.model.SystemManageInfo;
import xxx.entity.model.SystemUpdateLog;
import xxx.util.CommonResponse;
import xxx.system.controller.vo.AppVersionVo;
import xxx.system.controller.vo.HistoryVersionVo;
import xxx.system.controller.vo.SystemInfoSelectVo;
import xxx.system.service.IVersionManageService;
import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;

/**
 * @author Mike-GY
 */
// 告知Spring这是一个控制器
@RestController
// 告知Spring,下面的这个函数或者类是用来映射到哪个URL地址
@RequestMapping("/system/VersionManage")

public class VersionManageController {

    // 注入service服务接口
    private final IVersionManageService iVersionManageService;

    public VersionManageController(IVersionManageService iVersionManageService) {
        this.iVersionManageService = iVersionManageService;
    }

    /**
     * 查询系统信息
     *
     * @param systemInfoSelectVo 系统基本信息对象
     * @return res 查询结果
     * @author Mike-GY
     * @since 2022/8/10
     */
    @PostMapping(value = "/querySystemInfo")
    public CommonResponse querySystemInfo(@RequestBody SystemInfoSelectVo systemInfoSelectVo) {
        CommonResponse res = CommonResponse.getInstance();
        Integer systemSelectCode = systemInfoSelectVo.getSystemSelectCode();
        Integer systemId = systemInfoSelectVo.getSystemId();
        String systemName = systemInfoSelectVo.getSystemName();
        Integer systemType = systemInfoSelectVo.getSystemType();
        Integer current = systemInfoSelectVo.getCurrent();
        Integer size = systemInfoSelectVo.getSize();
        // 如果前端未传值给current和size,则将括号内的指定值赋给current和size
        int c = Optional.ofNullable(current).orElse(1);
        int s = Optional.ofNullable(size).orElse(5);
        // 分页操作
        Page<SystemManageInfo> page;
        page = new Page<>(c, s);
        List<SystemManageInfo> systemInfo = iVersionManageService.querySystemInfo(systemSelectCode, systemId, systemName, systemType, page);
        res.setTotalRowNumber(page.getTotal());
        res.setResultData(systemInfo);
        return res;
    }

    /**
     * 新增app系统版本
     *
     * @param newAppVersionVo 新app系统版本对象
     * @return res 新增成功或失败提示
     * @author Mike-GY
     * @since 2022/8/11
     */
    @PostMapping(value = "/addAppVersionInfo")
    public CommonResponse addAppVersionInfo(@RequestBody @Validated AppVersionVo newAppVersionVo) {
        CommonResponse res = CommonResponse.getInstance();
        Integer result = iVersionManageService.addAppVersionInfo(newAppVersionVo);
        res.setResultData(result > 0);
        return res;
    }

    /**
     * 获取app系统对应最新版本信息
     *
     * @param historyVersionVo 历史版本信息对象
     * @return res 查询结果
     * @author Mike-GY
     * @since 2022/8/17
     */
    @PostMapping(value = "/getAppVersionInfo")
    public  CommonResponse getAppVersionInfo(@RequestBody HistoryVersionVo historyVersionVo) {
        CommonResponse res = CommonResponse.getInstance();
        Integer systemId = historyVersionVo.getSystemId();
        List<AppUpdateManage> appVersionInfo = iVersionManageService.getAppVersionInfo(systemId);
        res.setResultData(appVersionInfo);
        return res;
    }

    /**
     * 查询app系统历史版本
     *
     * @param historyVersionVo 历史版本信息对象
     * @return res 查询结果
     * @author Mike-GY
     * @since 2022/8/11
     */
    @PostMapping(value = "/queryAppHistoryVersion")
    public CommonResponse queryAppHistoryVersion(@RequestBody HistoryVersionVo historyVersionVo) {
        CommonResponse res = CommonResponse.getInstance();
        Integer systemId = historyVersionVo.getSystemId();
        Integer current = historyVersionVo.getCurrent();
        Integer size = historyVersionVo.getSize();
        int c = Optional.ofNullable(current).orElse(1);
        int s = Optional.ofNullable(size).orElse(5);
        Page<SystemUpdateLog> page = new Page<>(c, s);
        List<SystemUpdateLog> appHistoryVersion = iVersionManageService.queryAppHistoryVersion(systemId, page);
        res.setResultData(appHistoryVersion);
        res.setTotalRowNumber(page.getTotal());
        return res;
    }

    /**
     * 新增web系统版本
     *
     * @param newSystemUpdateLog 新web系统版本对象
     * @return res 新增成功或失败提示
     * @author Mike-GY
     * @since 2022/8/11
     */
    @PostMapping(value = "/addWebVersionInfo")
    public CommonResponse addWebVersionInfo(@RequestBody @Validated SystemUpdateLog newSystemUpdateLog) {
        CommonResponse res = CommonResponse.getInstance();
        Integer result = iVersionManageService.addWebVersionInfo(newSystemUpdateLog);
        res.setResultData(result > 0);
        return res;
    }

    /**
     * 获取web系统对应最新版本信息
     *
     * @param historyVersionVo 历史版本信息对象
     * @return res 查询结果
     * @author Mike-GY
     * @since 2022/8/17
     */
    @PostMapping("/getWebVersionInfo")
    public CommonResponse getWebVersionInfo(@RequestBody HistoryVersionVo historyVersionVo) {
        CommonResponse res = CommonResponse.getInstance();
        Integer systemId = historyVersionVo.getSystemId();
        List<SystemUpdateLog> webVersionInfo = iVersionManageService.getWebVersionInfo(systemId);
        res.setResultData(webVersionInfo.get(0));
        return res;
    }

    /**
     * 查询web系统历史版本
     *
     * @param historyVersionVo 历史版本信息对象
     * @return res
     * @author Mike-GY
     * @since 2022/8/11
     */
    @PostMapping(value = "/queryWebHistoryVersion")
    public CommonResponse queryWebHistoryVersion(@RequestBody HistoryVersionVo historyVersionVo) {
        CommonResponse res = CommonResponse.getInstance();
        Integer systemId = historyVersionVo.getSystemId();
        Integer current = historyVersionVo.getCurrent();
        Integer size = historyVersionVo.getSize();
        int c = Optional.ofNullable(current).orElse(1);
        int s = Optional.ofNullable(size).orElse(5);
        Page<SystemUpdateLog> page = new Page<>(c, s);
        List<SystemUpdateLog> webHistoryVersion = iVersionManageService.queryWebHistoryVersion(systemId, page);
        res.setResultData(webHistoryVersion);
        res.setTotalRowNumber(page.getTo
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值