feat():新增版本查,增,改接口

yuan
yuan 2024-08-27 18:56:10 +08:00
parent 9ffc2533ad
commit 2d9c466435
9 changed files with 384 additions and 0 deletions

View File

@ -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
* @Packagecom.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();
}
}

View File

@ -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
* @Packagecom.muyu.common.domain.req
* @Projectcloud-rule
* @nameRuleVersionAddReq
* @Date2024/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 ;
}

View File

@ -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
* @Packagecom.muyu.common.domain.req
* @Projectcloud-rule
* @nameRuleVersionAddReq
* @Date2024/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 ;
}

View File

@ -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
* @Packagecom.muyu.common.domain.resp
* @Projectcloud-rule
* @nameRuleVersionVersion
* @Date2024/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 ;
}

View File

@ -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
* @Packagecom.muyu.controller
* @Projectcloud-rule
* @nameRuleVersionController
* @Date2024/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<List<RuleVersionResp>> selectList(
@PathVariable("ruleId") Long ruleId
){
return Result.success(ruleVersionService.selectList(ruleId));
}
@PostMapping("/add")
@Operation(summary = "规则版本接口添加",description = "根据客户需求创建对应规则版本")
public Result<String> add(
@Validated @RequestBody RuleVersionAddReq ruleVersionAddReq
){
ruleVersionService.save(RuleVersion.addBuild(ruleVersionAddReq));
return Result.success(null,"操作成功");
}
@PutMapping("/upd")
@Operation(summary = "规则版本接口修改",description = "对激活、测试、状态等进行修改")
public Result<String> 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,"操作成功");
}
}

View File

@ -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
* @Packagecom.muyu.mapper
* @Projectcloud-rule
* @nameRuleVersionMapper
* @Date2024/8/27 11:45
*/
@Mapper
public interface RuleVersionMapper extends BaseMapper<RuleVersion> {
List<RuleVersionResp> selectByIdList(@Param("ruleId") Long ruleId);
void updateStatus(@Param("ruleVersionId") Long ruleVersionId, RuleVersionUpdReq ruleVersionUpdReq);
}

View File

@ -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
* @Packagecom.muyu.servier
* @Projectcloud-rule
* @nameRuleVersionServier
* @Date2024/8/27 11:46
*/
public interface RuleVersionService extends IService<RuleVersion> {
List<RuleVersionResp> selectList(Long ruleId);
void updateStatus(Long ruleVersionId, RuleVersionUpdReq ruleVersionUpdReq);
}

View File

@ -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
* @Packagecom.muyu.servier.impl
* @Projectcloud-rule
* @nameRuleVersionServiceImpl
* @Date2024/8/27 11:47
*/
@Service
public class RuleVersionServiceImpl
extends ServiceImpl<RuleVersionMapper, RuleVersion>
implements RuleVersionService {
@Autowired private RuleVersionMapper ruleVersionMapper;
@Override
public List<RuleVersionResp> selectList(Long ruleId) {
List<RuleVersionResp> ruleVersion = ruleVersionMapper.selectByIdList(ruleId);
return ruleVersion;
}
@Override
public void updateStatus(Long ruleVersionId, RuleVersionUpdReq ruleVersionUpdReq) {
ruleVersionMapper.updateStatus(ruleVersionId,ruleVersionUpdReq);
}
}

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.@//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.muyu.mapper.RuleVersionMapper">
<update id="updateStatus">
UPDATE `rule_version` SET
<if test="ruleVersionActivate != null">
`rule_version_activate` = NULL,
</if>
<if test="ruleVersionStatus != null">
`rule_version_status` = NULL,
</if>
<if test="ruleVersionTest != null">
`rule_version_test` = NULL
</if>
WHERE `rule_version_id` = #{ruleVersionId};
</update>
<select id="selectByIdList" resultType="com.muyu.common.domain.resp.RuleVersionResp">
SELECT
rule_version_id,
rule_id,
rule_version_type,
rule_version_name,
rule_version_code,
rule_version_activate,
rule_version_status,
rule_version_test,
rule_version_text,
rule_version_remark
FROM
rule_version
WHERE
rule_id = #{ruleId}
</select>
</mapper>