diff --git a/cloud-rule-common/src/main/java/com/muyu/common/domain/RuleVersion.java b/cloud-rule-common/src/main/java/com/muyu/common/domain/RuleVersion.java index 19f54fa..1396675 100644 --- a/cloud-rule-common/src/main/java/com/muyu/common/domain/RuleVersion.java +++ b/cloud-rule-common/src/main/java/com/muyu/common/domain/RuleVersion.java @@ -4,12 +4,16 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.muyu.common.core.web.domain.BaseEntity; +import com.muyu.common.domain.req.RuleVersionAddReq; +import com.muyu.common.domain.req.RuleVersionUpdReq; import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; +import java.util.function.Supplier; + /** * @Author:蓬叁 * @Package:com.muyu.common.domain @@ -67,4 +71,15 @@ public class RuleVersion extends BaseEntity { */ private String ruleVersionRemark ; + public static RuleVersion addBuild(RuleVersionAddReq ruleVersionAddReq) { + return RuleVersion.builder() + .ruleId(ruleVersionAddReq.getRuleId()) + .ruleVersionType(ruleVersionAddReq.getRuleVersionType()) + .ruleVersionName(ruleVersionAddReq.getRuleVersionName()) + .ruleVersionCode(ruleVersionAddReq.getRuleVersionCode()) + .ruleVersionActivate(ruleVersionAddReq.getRuleVersionActivate()) + .ruleVersionStatus(ruleVersionAddReq.getRuleVersionStatus()) + .build(); + } + } diff --git a/cloud-rule-common/src/main/java/com/muyu/common/domain/req/RuleVersionAddReq.java b/cloud-rule-common/src/main/java/com/muyu/common/domain/req/RuleVersionAddReq.java new file mode 100644 index 0000000..fa87c9d --- /dev/null +++ b/cloud-rule-common/src/main/java/com/muyu/common/domain/req/RuleVersionAddReq.java @@ -0,0 +1,62 @@ +package com.muyu.common.domain.req; + +import com.muyu.common.core.validation.custom.IsSysRuleActivate; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.constraints.NotEmpty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:蓬叁 + * @Package:com.muyu.common.domain.req + * @Project:cloud-rule + * @name:RuleVersionAddReq + * @Date:2024/8/27 下午3:17 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "规则版本添加请求对象") +public class RuleVersionAddReq { + + /** + * 规则ID + */ + @NotEmpty(message = "规则ID不可为空") + @Schema(title = "规则ID",type = "Long",description = "一对多") + private Long ruleId ; + /** + * 版本类 + */ + @NotEmpty(message = "版本类不可为空") + @Schema(title = "版本类",type = "String",description = "规则状态+引擎编码+类名") + private String ruleVersionType ; + /** + * 版本名称 + */ + @NotEmpty(message = "版本名称不可为空") + @Schema(title = "版本名称",type = "String",description = "QQ检验") + private String ruleVersionName ; + /** + * 版本编码 + */ + @NotEmpty(message = "版本编码不可为空") + @Schema(title = "版本编码",type = "String",description = "email") + private String ruleVersionCode ; + /** + * 是否激活 + */ + @Schema(title = "激活状态",type = "String",description = "U") + @IsSysRuleActivate + private String ruleVersionActivate ; + /** + * 版本状态 + */ + @Schema(title = "版本状态",type = "String",description = "I") + private String ruleVersionStatus ; + +} diff --git a/cloud-rule-common/src/main/java/com/muyu/common/domain/req/RuleVersionUpdReq.java b/cloud-rule-common/src/main/java/com/muyu/common/domain/req/RuleVersionUpdReq.java new file mode 100644 index 0000000..52fb287 --- /dev/null +++ b/cloud-rule-common/src/main/java/com/muyu/common/domain/req/RuleVersionUpdReq.java @@ -0,0 +1,43 @@ +package com.muyu.common.domain.req; + +import com.muyu.common.core.validation.custom.IsSysRuleActivate; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.constraints.NotEmpty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:蓬叁 + * @Package:com.muyu.common.domain.req + * @Project:cloud-rule + * @name:RuleVersionAddReq + * @Date:2024/8/27 下午3:17 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "规则版本添加请求对象") +public class RuleVersionUpdReq { + + /** + * 是否激活 + */ + @Schema(title = "激活状态",type = "String",description = "U") + @IsSysRuleActivate + private String ruleVersionActivate ; + /** + * 版本状态 + */ + @Schema(title = "版本状态",type = "String",description = "I") + private String ruleVersionStatus ; + /** + * 是否测试 + */ + @Schema(title = "测试状态",type = "String",description = "W") + private String ruleVersionTest ; + +} diff --git a/cloud-rule-common/src/main/java/com/muyu/common/domain/resp/RuleVersionResp.java b/cloud-rule-common/src/main/java/com/muyu/common/domain/resp/RuleVersionResp.java new file mode 100644 index 0000000..e375d7a --- /dev/null +++ b/cloud-rule-common/src/main/java/com/muyu/common/domain/resp/RuleVersionResp.java @@ -0,0 +1,78 @@ +package com.muyu.common.domain.resp; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @Author:蓬叁 + * @Package:com.muyu.common.domain.resp + * @Project:cloud-rule + * @name:RuleVersionVersion + * @Date:2024/8/27 上午11:56 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Tag(name = "接口规则版本信息对应对象",description = "负责接口规则版本信息查询的相应结果") +public class RuleVersionResp { + + /** + * 规则版本ID + */ + @TableId(value = "rule_version_id",type = IdType.AUTO) + @Schema(description = "规则版本ID",type = "Long") + private Long ruleVersionId ; + /** + * 规则ID + */ + @Schema(description = "规则ID",type = "Long") + private Long ruleId ; + /** + * 版本类 + */ + @Schema(description = "版本类",type = "String") + private String ruleVersionType ; + /** + * 版本名称 + */ + @Schema(description = "版本名称",defaultValue = "QQ邮箱剔除",type = "String") + private String ruleVersionName ; + /** + * 版本编号 + */ + @Schema(description = "版本编号",defaultValue = "ISNW2F4S",type = "String") + private String ruleVersionCode ; + /** + * 是否激活 + */ + @Schema(description = "激活状态",defaultValue = "S",type = "String") + private String ruleVersionActivate ; + /** + * 版本状态 + */ + @Schema(description = "版本状态",defaultValue = "I",type = "String") + private String ruleVersionStatus ; + /** + * 是否测试 + */ + @Schema(description = "测试状态",defaultValue = "W",type = "String") + private String ruleVersionTest ; + /** + * 代码 + */ + @Schema(description = "代码",type = "String") + private String ruleVersionText ; + /** + * 备注 + */ + @Schema(description = "备注",type = "String") + private String ruleVersionRemark ; + +} diff --git a/cloud-rule-server/src/main/java/com/muyu/controller/RuleVersionController.java b/cloud-rule-server/src/main/java/com/muyu/controller/RuleVersionController.java new file mode 100644 index 0000000..e90e5ad --- /dev/null +++ b/cloud-rule-server/src/main/java/com/muyu/controller/RuleVersionController.java @@ -0,0 +1,67 @@ +package com.muyu.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.domain.RuleData; +import com.muyu.common.domain.RuleVersion; +import com.muyu.common.domain.req.RuleDataAddReq; +import com.muyu.common.domain.req.RuleDataUpdReq; +import com.muyu.common.domain.req.RuleVersionAddReq; +import com.muyu.common.domain.req.RuleVersionUpdReq; +import com.muyu.common.domain.resp.RuleVersionResp; +import com.muyu.servier.RuleVersionService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @Author:蓬叁 + * @Package:com.muyu.controller + * @Project:cloud-rule + * @name:RuleVersionController + * @Date:2024/8/27 上午11:42 + */ +@RestController +@RequestMapping("/ruleVersion") +@Tag(name = "规则版本控制层",description = "进行版本制定,查看等操作") +public class RuleVersionController { + + @Autowired private RuleVersionService ruleVersionService; + + /** + * 查询规则版本接口 + * @param ruleId + * @return 查询结果 + */ + @RequestMapping(path = "/list/{ruleId}",method = RequestMethod.POST) + @Operation(summary = "查询接口规则版本", description = "对当前规则下的版本进行查询版本信息") + public Result> selectList( + @PathVariable("ruleId") Long ruleId + ){ + return Result.success(ruleVersionService.selectList(ruleId)); + } + + @PostMapping("/add") + @Operation(summary = "规则版本接口添加",description = "根据客户需求创建对应规则版本") + public Result add( + @Validated @RequestBody RuleVersionAddReq ruleVersionAddReq + ){ + ruleVersionService.save(RuleVersion.addBuild(ruleVersionAddReq)); + return Result.success(null,"操作成功"); + } + + @PutMapping("/upd") + @Operation(summary = "规则版本接口修改",description = "对激活、测试、状态等进行修改") + public Result update( + @Schema(title = "客户ID",type = "Long",defaultValue = "1",description = "修改接口规则版本信息需要唯一条件") + @PathVariable("ruleVersionId") Long ruleVersionId, + @Validated @RequestBody RuleVersionUpdReq ruleVersionUpdReq){ + ruleVersionService.updateStatus(ruleVersionId,ruleVersionUpdReq); + return Result.success(null,"操作成功"); + } + +} diff --git a/cloud-rule-server/src/main/java/com/muyu/mapper/RuleVersionMapper.java b/cloud-rule-server/src/main/java/com/muyu/mapper/RuleVersionMapper.java new file mode 100644 index 0000000..0a2c1c1 --- /dev/null +++ b/cloud-rule-server/src/main/java/com/muyu/mapper/RuleVersionMapper.java @@ -0,0 +1,24 @@ +package com.muyu.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.common.domain.RuleVersion; +import com.muyu.common.domain.req.RuleVersionUpdReq; +import com.muyu.common.domain.resp.RuleVersionResp; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @Author:蓬叁 + * @Package:com.muyu.mapper + * @Project:cloud-rule + * @name:RuleVersionMapper + * @Date:2024/8/27 上午11:45 + */ +@Mapper +public interface RuleVersionMapper extends BaseMapper { + List selectByIdList(@Param("ruleId") Long ruleId); + + void updateStatus(@Param("ruleVersionId") Long ruleVersionId, RuleVersionUpdReq ruleVersionUpdReq); +} diff --git a/cloud-rule-server/src/main/java/com/muyu/servier/RuleVersionService.java b/cloud-rule-server/src/main/java/com/muyu/servier/RuleVersionService.java new file mode 100644 index 0000000..7c1312b --- /dev/null +++ b/cloud-rule-server/src/main/java/com/muyu/servier/RuleVersionService.java @@ -0,0 +1,21 @@ +package com.muyu.servier; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.domain.RuleVersion; +import com.muyu.common.domain.req.RuleVersionUpdReq; +import com.muyu.common.domain.resp.RuleVersionResp; + +import java.util.List; + +/** + * @Author:蓬叁 + * @Package:com.muyu.servier + * @Project:cloud-rule + * @name:RuleVersionServier + * @Date:2024/8/27 上午11:46 + */ +public interface RuleVersionService extends IService { + List selectList(Long ruleId); + + void updateStatus(Long ruleVersionId, RuleVersionUpdReq ruleVersionUpdReq); +} diff --git a/cloud-rule-server/src/main/java/com/muyu/servier/impl/RuleVersionServiceImpl.java b/cloud-rule-server/src/main/java/com/muyu/servier/impl/RuleVersionServiceImpl.java new file mode 100644 index 0000000..05f93e9 --- /dev/null +++ b/cloud-rule-server/src/main/java/com/muyu/servier/impl/RuleVersionServiceImpl.java @@ -0,0 +1,38 @@ +package com.muyu.servier.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.muyu.common.domain.RuleVersion; +import com.muyu.common.domain.req.RuleVersionUpdReq; +import com.muyu.common.domain.resp.RuleVersionResp; +import com.muyu.mapper.RuleVersionMapper; +import com.muyu.servier.RuleVersionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Author:蓬叁 + * @Package:com.muyu.servier.impl + * @Project:cloud-rule + * @name:RuleVersionServiceImpl + * @Date:2024/8/27 上午11:47 + */ +@Service +public class RuleVersionServiceImpl + extends ServiceImpl + implements RuleVersionService { + + @Autowired private RuleVersionMapper ruleVersionMapper; + + @Override + public List selectList(Long ruleId) { + List ruleVersion = ruleVersionMapper.selectByIdList(ruleId); + return ruleVersion; + } + + @Override + public void updateStatus(Long ruleVersionId, RuleVersionUpdReq ruleVersionUpdReq) { + ruleVersionMapper.updateStatus(ruleVersionId,ruleVersionUpdReq); + } +} diff --git a/cloud-rule-server/src/main/resources/mapper/RuleVersionMapper.xml b/cloud-rule-server/src/main/resources/mapper/RuleVersionMapper.xml new file mode 100644 index 0000000..ae20188 --- /dev/null +++ b/cloud-rule-server/src/main/resources/mapper/RuleVersionMapper.xml @@ -0,0 +1,36 @@ + + + + + UPDATE `rule_version` SET + + `rule_version_activate` = NULL, + + + `rule_version_status` = NULL, + + + `rule_version_test` = NULL + + WHERE `rule_version_id` = #{ruleVersionId}; + + +