From 6725f7bf320d952bfb09d98e8610e425558c9b3e Mon Sep 17 00:00:00 2001 From: GYJ <1157756119@qq.com> Date: Wed, 12 Feb 2025 16:24:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=BF=A1=E6=81=AF=E6=93=8D?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SysParamController.java | 2 +- .../java/com/czg/admin/VersionController.java | 79 +++++++++++++++++ .../com/czg/controller/FeignController.java | 34 -------- .../com/czg/user/UserVersionController.java | 31 +++++++ .../java/com/czg/system/dto/VersionDTO.java | 32 +++++++ .../java/com/czg/system/entity/Version.java | 14 +-- .../czg/system/service/VersionService.java | 38 ++++++++ .../service/impl/VersionServiceImpl.java | 87 ++++++++++++++++++- 8 files changed, 272 insertions(+), 45 deletions(-) rename cash-api/system-server/src/main/java/com/czg/{controller => admin}/SysParamController.java (98%) create mode 100644 cash-api/system-server/src/main/java/com/czg/admin/VersionController.java delete mode 100644 cash-api/system-server/src/main/java/com/czg/controller/FeignController.java create mode 100644 cash-api/system-server/src/main/java/com/czg/user/UserVersionController.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/system/dto/VersionDTO.java diff --git a/cash-api/system-server/src/main/java/com/czg/controller/SysParamController.java b/cash-api/system-server/src/main/java/com/czg/admin/SysParamController.java similarity index 98% rename from cash-api/system-server/src/main/java/com/czg/controller/SysParamController.java rename to cash-api/system-server/src/main/java/com/czg/admin/SysParamController.java index 93752e0c..8392bb13 100644 --- a/cash-api/system-server/src/main/java/com/czg/controller/SysParamController.java +++ b/cash-api/system-server/src/main/java/com/czg/admin/SysParamController.java @@ -1,4 +1,4 @@ -package com.czg.controller; +package com.czg.admin; import com.czg.annotation.SaAdminCheckPermission; import com.czg.resp.CzgResult; diff --git a/cash-api/system-server/src/main/java/com/czg/admin/VersionController.java b/cash-api/system-server/src/main/java/com/czg/admin/VersionController.java new file mode 100644 index 00000000..50f7a24c --- /dev/null +++ b/cash-api/system-server/src/main/java/com/czg/admin/VersionController.java @@ -0,0 +1,79 @@ +package com.czg.admin; + +import com.czg.annotation.SaAdminCheckPermission; +import com.czg.resp.CzgResult; +import com.czg.system.dto.VersionDTO; +import com.czg.system.service.VersionService; +import com.czg.validator.group.InsertGroup; +import com.czg.validator.group.UpdateGroup; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author GYJoker + */ +@RestController +@RequestMapping("/admin/version") +public class VersionController { + @Resource + private VersionService versionService; + + + /** + * 新增版本 + * @param versionDTO 版本信息 + * @return Long id + */ + @PostMapping + @SaAdminCheckPermission("version:add") + public CzgResult insertVersion(@RequestBody @Validated({InsertGroup.class}) VersionDTO versionDTO) { + return versionService.insertVersion(versionDTO); + } + + /** + * 更新版本 + * @param versionDTO 版本信息 + * @return Long id + */ + @PutMapping + @SaAdminCheckPermission("version:update") + public CzgResult updateVersion(@RequestBody @Validated({UpdateGroup.class}) VersionDTO versionDTO) { + return versionService.updateVersion(versionDTO); + } + + /** + * 删除版本 + * @param id 版本id + * @return Long id + */ + @DeleteMapping("/{id}") + @SaAdminCheckPermission("version:delete") + public CzgResult deleteVersion(@PathVariable Long id) { + return versionService.deleteVersion(id); + } + + /** + * 获取版本信息 + * @param source 渠道 + * @param type 类型 + * @return VersionDTO + */ + @GetMapping("/{source}/{type}") + @SaAdminCheckPermission("version:get") + public CzgResult getVersionInfo(@PathVariable("source") String source, @PathVariable("type") String type) { + return versionService.getVersionInfo(source, type); + } + + /** + * 获取版本列表 + * @return List + */ + @GetMapping("/list") + @SaAdminCheckPermission("version:getList") + public CzgResult> getVersionList() { + return versionService.getVersionList(); + } +} diff --git a/cash-api/system-server/src/main/java/com/czg/controller/FeignController.java b/cash-api/system-server/src/main/java/com/czg/controller/FeignController.java deleted file mode 100644 index e12a0166..00000000 --- a/cash-api/system-server/src/main/java/com/czg/controller/FeignController.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.czg.controller; - -import com.czg.SysParamsDTO2; -import com.czg.resp.CzgResult; -import com.czg.system.dto.SysParamsDTO; -import com.czg.system.service.SysParamsService; -import jakarta.annotation.Resource; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @author GYJoker - */ -@RestController -@RequestMapping("/admin/feign") -public class FeignController { - - @Resource - private SysParamsService sysParamsService; - - @RequestMapping("/testCall/{name}") - public CzgResult testCall(@PathVariable String name) { - return CzgResult.success(new SysParamsDTO2().setParamCode("system-server:" + name)); - } - - @GetMapping("/sysParam/code/{code}") - public SysParamsDTO getParamsByCode(@PathVariable String code) { - CzgResult paramsByCode = sysParamsService.getParamsByCode(code); - return paramsByCode.getData(); - } - -} diff --git a/cash-api/system-server/src/main/java/com/czg/user/UserVersionController.java b/cash-api/system-server/src/main/java/com/czg/user/UserVersionController.java new file mode 100644 index 00000000..7f0f004c --- /dev/null +++ b/cash-api/system-server/src/main/java/com/czg/user/UserVersionController.java @@ -0,0 +1,31 @@ +package com.czg.user; + +import com.czg.resp.CzgResult; +import com.czg.system.dto.VersionDTO; +import com.czg.system.service.VersionService; +import jakarta.annotation.Resource; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author GYJoker + */ +@RestController +@RequestMapping("/user/version") +public class UserVersionController { + @Resource + private VersionService versionService; + + /** + * 获取版本信息 + * @param source 渠道 + * @param type 类型 + * @return VersionDTO + */ + @GetMapping("/info/{source}/{type}") + public CzgResult getVersionInfo(@PathVariable("source") String source, @PathVariable("type") String type) { + return versionService.getVersionInfo(source, type); + } +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/system/dto/VersionDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/system/dto/VersionDTO.java new file mode 100644 index 00000000..ed4891ef --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/system/dto/VersionDTO.java @@ -0,0 +1,32 @@ +package com.czg.system.dto; + +import com.czg.validator.group.Group; +import com.czg.validator.group.UpdateGroup; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author GYJoker + */ +@Data +public class VersionDTO { + + @NotNull(message = "版本id不能为空", groups = {UpdateGroup.class}) + private Long id; + + @NotBlank(message = "渠道不能为空", groups = {Group.class}) + private String source; + + @NotBlank(message = "版本类型不能为空", groups = {Group.class}) + private String type; + + @NotBlank(message = "版本号不能为空", groups = {Group.class}) + private String version; + + private Integer isForce = 0; + private String message; + + @NotBlank(message = "下载地址不能为空", groups = {Group.class}) + private String url; +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/system/entity/Version.java b/cash-common/cash-common-service/src/main/java/com/czg/system/entity/Version.java index 12dabd07..099e980d 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/system/entity/Version.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/system/entity/Version.java @@ -31,15 +31,15 @@ public class Version implements Serializable { private static final long serialVersionUID = 1L; @Id(keyType = KeyType.Auto) - private Integer id; + private Long id; /** - * LDBL_APP;WX; + * pc 桌面端, manager_app 管理端, phone_book 电话机点餐 */ private String source; /** - * ios;android; + * 0 windows,1 安卓,2 iOS */ private String type; @@ -49,9 +49,9 @@ public class Version implements Serializable { private String version; /** - * 0:不更新;1:更新 + * 0:不强制更新;1:强制更新 */ - private Integer isUp; + private Integer isForce; /** * 更新提示内容 @@ -64,9 +64,9 @@ public class Version implements Serializable { private String url; /** - * 选中 0否 1是 + * 更新者id */ - private Integer sel; + private Long updateUserId; /** * 创建时间 diff --git a/cash-common/cash-common-service/src/main/java/com/czg/system/service/VersionService.java b/cash-common/cash-common-service/src/main/java/com/czg/system/service/VersionService.java index 661ddb0f..bb7320f9 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/system/service/VersionService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/system/service/VersionService.java @@ -1,8 +1,12 @@ package com.czg.system.service; +import com.czg.resp.CzgResult; +import com.czg.system.dto.VersionDTO; import com.mybatisflex.core.service.IService; import com.czg.system.entity.Version; +import java.util.List; + /** * 版本管理 服务层。 * @@ -11,4 +15,38 @@ import com.czg.system.entity.Version; */ public interface VersionService extends IService { + /** + * 新增版本 + * @param versionDTO 版本信息 + * @return Long id + */ + CzgResult insertVersion(VersionDTO versionDTO); + + /** + * 更新版本 + * @param versionDTO 版本信息 + * @return Long id + */ + CzgResult updateVersion(VersionDTO versionDTO); + + /** + * 删除版本 + * @param id 版本id + * @return Long id + */ + CzgResult deleteVersion(Long id); + + /** + * 获取版本信息 + * @param source 渠道 + * @param type 类型 + * @return VersionDTO + */ + CzgResult getVersionInfo(String source, String type); + + /** + * 获取版本列表 + * @return List + */ + CzgResult> getVersionList(); } diff --git a/cash-service/system-service/src/main/java/com/czg/service/system/service/impl/VersionServiceImpl.java b/cash-service/system-service/src/main/java/com/czg/service/system/service/impl/VersionServiceImpl.java index 79715ba3..c039d529 100644 --- a/cash-service/system-service/src/main/java/com/czg/service/system/service/impl/VersionServiceImpl.java +++ b/cash-service/system-service/src/main/java/com/czg/service/system/service/impl/VersionServiceImpl.java @@ -1,10 +1,19 @@ package com.czg.service.system.service.impl; -import com.mybatisflex.spring.service.impl.ServiceImpl; -import com.czg.system.entity.Version; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; +import com.czg.resp.CzgResult; +import com.czg.sa.StpKit; import com.czg.service.system.mapper.VersionMapper; +import com.czg.system.dto.VersionDTO; +import com.czg.system.entity.Version; +import com.czg.system.service.VersionService; +import com.mybatisflex.core.query.QueryWrapper; +import com.mybatisflex.spring.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.List; + /** * 版本管理 服务层实现。 * @@ -12,6 +21,78 @@ import org.springframework.stereotype.Service; * @since 2025-02-12 */ @Service -public class VersionServiceImpl extends ServiceImpl { +public class VersionServiceImpl extends ServiceImpl implements VersionService { + @Override + public CzgResult insertVersion(VersionDTO versionDTO) { + Version version = getVersionBySource(versionDTO.getSource(), versionDTO.getType()); + if (version != null) { + return CzgResult.failure("版本已存在"); + } + + version = BeanUtil.toBean(versionDTO, Version.class); + version.setUpdateUserId(StpKit.ADMIN.getLoginId(1L)); + save(version); + return CzgResult.success(version.getId()); + } + + @Override + public CzgResult updateVersion(VersionDTO versionDTO) { + Version version = getVersionBySource(versionDTO.getSource(), versionDTO.getType()); + if (version != null && !version.getId().equals(versionDTO.getId())) { + return CzgResult.failure("版本已存在"); + } + + version = getById(versionDTO.getId()); + if (version == null) { + return CzgResult.failure("版本不存在"); + } + + if (StrUtil.isNotBlank(versionDTO.getSource())) { + version.setSource(versionDTO.getSource()); + } + if (StrUtil.isNotBlank(versionDTO.getVersion())) { + version.setVersion(versionDTO.getVersion()); + } + if (StrUtil.isNotBlank(versionDTO.getType())) { + version.setType(versionDTO.getType()); + } + if (StrUtil.isNotBlank(versionDTO.getUrl())) { + version.setUrl(versionDTO.getUrl()); + } + version.setIsForce(versionDTO.getIsForce()); + version.setMessage(versionDTO.getMessage()); + version.setUpdateUserId(StpKit.ADMIN.getLoginId(1L)); + + updateById(version); + return CzgResult.success(version.getId()); + } + + @Override + public CzgResult deleteVersion(Long id) { + boolean exists = super.exists(new QueryWrapper().eq(Version::getId, id)); + if (!exists) { + return CzgResult.failure("版本不存在"); + } + removeById(id); + return CzgResult.success(id); + } + + @Override + public CzgResult getVersionInfo(String source, String type) { + Version version = getVersionBySource(source, type); + VersionDTO versionDTO = BeanUtil.toBean(version, VersionDTO.class); + return CzgResult.success(versionDTO); + } + + @Override + public CzgResult> getVersionList() { + List versions = list(); + List dtoList = BeanUtil.copyToList(versions, VersionDTO.class); + return CzgResult.success(dtoList); + } + + private Version getVersionBySource(String source, String type) { + return getOne(new QueryWrapper().eq(Version::getSource, source).eq(Version::getType, type)); + } }