diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java index 2df5cdff1..55671466d 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/EventDetailServiceImpl.java @@ -44,6 +44,7 @@ import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.math.RoundingMode; +import java.time.Duration; import java.time.LocalDateTime; import java.util.*; @@ -184,7 +185,11 @@ public class EventDetailServiceImpl extends ServiceImpl + * + *

+ * + * @author xy + * @since 2024-11-21 + */ +@Getter +@Setter +@TableName("app_version") +public class AppVersion extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + private String id; + + /** + * app版本名称 + */ + private String versionName; + + /** + * 版本发布时间 + */ + private LocalDateTime publishTime; + + /** + * 严重度(0:优化 1:bug调整) + */ + private Integer sev; + + /** + * 版本类型 APP Web + */ + private String versionType; + + /** + * 修改内容 + */ + private String content; + + +} diff --git a/pqs-system/system-api/src/main/java/com/njcn/system/pojo/vo/AppVersionVo.java b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/vo/AppVersionVo.java new file mode 100644 index 000000000..349284562 --- /dev/null +++ b/pqs-system/system-api/src/main/java/com/njcn/system/pojo/vo/AppVersionVo.java @@ -0,0 +1,25 @@ +package com.njcn.system.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @author xy + */ +@Data +public class AppVersionVo implements Serializable { + + @ApiModelProperty("app版本名称") + private String versionName; + + @ApiModelProperty("版本发布时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime publishTime; + + @ApiModelProperty("严重度(0:优化 1:bug调整)") + private Integer sev; +} diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/VersionController.java b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/VersionController.java new file mode 100644 index 000000000..be81c8748 --- /dev/null +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/VersionController.java @@ -0,0 +1,76 @@ +package com.njcn.system.controller; + + +import com.njcn.common.pojo.annotation.OperateInfo; +import com.njcn.common.pojo.enums.common.LogEnum; +import com.njcn.common.pojo.enums.response.CommonResponseEnum; +import com.njcn.common.pojo.response.HttpResult; +import com.njcn.common.utils.HttpResultUtil; +import com.njcn.system.pojo.param.AppVersionParam; +import com.njcn.system.pojo.po.AppVersion; +import com.njcn.system.pojo.vo.AppVersionVo; +import com.njcn.system.service.IAppVersionService; +import com.njcn.web.controller.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + *

+ * 前端控制器 + *

+ * + * @author xy + * @since 2024-11-21 + */ +@RestController +@Slf4j +@RequestMapping("/appVersion") +@Api(tags = "版本信息") +@AllArgsConstructor +public class VersionController extends BaseController { + + private final IAppVersionService appVersionService; + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/add") + @ApiOperation("新增版本信息") + @ApiImplicitParam(name = "param", value = "app版本信息", required = true) + public HttpResult add(@RequestBody @Validated AppVersionParam param){ + String methodDescribe = getMethodDescribe("add"); + boolean result = appVersionService.add(param); + if (result) { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, "新增成功", methodDescribe); + } else { + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, "新增失败", methodDescribe); + } + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getLastData") + @ApiOperation("查询最新版本信息") + @ApiImplicitParam(name = "versionType", value = "版本类型(APP WEB)", required = true) + public HttpResult getLastData(@RequestParam("versionType") String versionType){ + String methodDescribe = getMethodDescribe("getLastData"); + AppVersionVo vo = appVersionService.getLastData(versionType); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe); + } + + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getAllData") + @ApiOperation("查询所有版本信息") + @ApiImplicitParam(name = "versionType", value = "版本类型(APP WEB)") + public HttpResult< List> getAllData(@RequestParam(value = "versionType",required = false) String versionType){ + String methodDescribe = getMethodDescribe("getAllData"); + List list = appVersionService.getAllData(versionType); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + +} + diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/AppVersionMapper.java b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/AppVersionMapper.java new file mode 100644 index 000000000..8f0752b60 --- /dev/null +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/AppVersionMapper.java @@ -0,0 +1,16 @@ +package com.njcn.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.njcn.system.pojo.po.AppVersion; + +/** + *

+ * Mapper 接口 + *

+ * + * @author xy + * @since 2024-11-21 + */ +public interface AppVersionMapper extends BaseMapper { + +} diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/IAppVersionService.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/IAppVersionService.java new file mode 100644 index 000000000..cb9b24ae8 --- /dev/null +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/IAppVersionService.java @@ -0,0 +1,25 @@ +package com.njcn.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.njcn.system.pojo.param.AppVersionParam; +import com.njcn.system.pojo.po.AppVersion; +import com.njcn.system.pojo.vo.AppVersionVo; + +import java.util.List; + +/** + *

+ * 服务类 + *

+ * + * @author xy + * @since 2024-11-21 + */ +public interface IAppVersionService extends IService { + + boolean add(AppVersionParam param); + + AppVersionVo getLastData(String versionType); + + List getAllData(String versionType); +} diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AppVersionServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AppVersionServiceImpl.java new file mode 100644 index 000000000..1d29ec6e6 --- /dev/null +++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/AppVersionServiceImpl.java @@ -0,0 +1,61 @@ +package com.njcn.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.system.mapper.AppVersionMapper; +import com.njcn.system.pojo.param.AppVersionParam; +import com.njcn.system.pojo.po.AppVersion; +import com.njcn.system.pojo.vo.AppVersionVo; +import com.njcn.system.service.IAppVersionService; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Objects; + +/** + *

+ * 服务实现类 + *

+ * + * @author xy + * @since 2024-11-21 + */ +@Service +public class AppVersionServiceImpl extends ServiceImpl implements IAppVersionService { + + @Override + public boolean add(AppVersionParam param) { + AppVersion appVersion = new AppVersion(); + appVersion.setVersionName(param.getAppVersion()); + appVersion.setPublishTime(LocalDateTime.now()); + appVersion.setSev(param.getSev()); + appVersion.setVersionType(param.getVersionType()); + appVersion.setContent(param.getContent()); + return this.save(appVersion); + } + + @Override + public AppVersionVo getLastData(String versionType) { + AppVersionVo vo = new AppVersionVo(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AppVersion::getVersionType, versionType); + queryWrapper.orderByDesc(AppVersion::getPublishTime).last("limit 1"); + AppVersion appVersion = this.getOne(queryWrapper); + if (Objects.nonNull(appVersion)) { + BeanUtils.copyProperties(appVersion, vo); + } + return vo; + } + + @Override + public List getAllData(String versionType) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (Objects.nonNull(versionType)) { + queryWrapper.eq(AppVersion::getVersionType, versionType); + } + queryWrapper.orderByDesc(AppVersion::getPublishTime); + return this.list(queryWrapper); + } +}