提交 e3845646 作者: 沈振路

人群包配置、接口

上级 b6300744
...@@ -13,6 +13,16 @@ import lombok.EqualsAndHashCode; ...@@ -13,6 +13,16 @@ import lombok.EqualsAndHashCode;
@Data @Data
public class GenericsResult<T> extends BaseResult{ public class GenericsResult<T> extends BaseResult{
public GenericsResult(Boolean success, String message) {
if (success) {
success();
} else {
error();
}
this.message = message;
this.data = null;
}
public GenericsResult(Boolean success, String message, T data) { public GenericsResult(Boolean success, String message, T data) {
if (success) { if (success) {
success(); success();
......
package com.yaoyaozw.customer.components;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.NetUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
/**
* @author darker
* @date 2022/9/21 10:26
*/
@Component
@Slf4j
public class SnowflakeComponent {
@JsonFormat(shape = JsonFormat.Shape.STRING)
private long workerId ;
private final long dataCenterId = 1;
private final Snowflake snowFlake = IdUtil.createSnowflake(workerId,dataCenterId);
@PostConstruct
public void init(){
workerId = NetUtil.ipv4ToLong(NetUtil.getLocalhostStr());
log.info("当前机器的workId:{}",workerId);
}
public synchronized long snowflakeId(){
return snowFlake.nextId();
}
public synchronized long snowflakeId(long workerId,long datacenterId){
Snowflake snowflake = IdUtil.createSnowflake(workerId, datacenterId);
return snowflake.nextId();
}
}
\ No newline at end of file
...@@ -16,4 +16,10 @@ public class CrowdPackageCommonConstant { ...@@ -16,4 +16,10 @@ public class CrowdPackageCommonConstant {
public static final String MATERIAL_DATA_BASE = "material"; public static final String MATERIAL_DATA_BASE = "material";
public static final String COMPARE_TYPE = "compare";
public static final String RANGE_IN = "in";
public static final String GROUP_OR = "group_or";
} }
...@@ -6,10 +6,7 @@ import com.yaoyaozw.customer.dto.crowd.CrowdPackageQueryDTO; ...@@ -6,10 +6,7 @@ import com.yaoyaozw.customer.dto.crowd.CrowdPackageQueryDTO;
import com.yaoyaozw.customer.dto.crowd.CrowdPackageConditionDTO; import com.yaoyaozw.customer.dto.crowd.CrowdPackageConditionDTO;
import com.yaoyaozw.customer.service.CrowdPackageService; import com.yaoyaozw.customer.service.CrowdPackageService;
import com.yaoyaozw.customer.vo.CommonOptionResponseVO; import com.yaoyaozw.customer.vo.CommonOptionResponseVO;
import com.yaoyaozw.customer.vo.crowd.CrowdPackageCommonIdVO; import com.yaoyaozw.customer.vo.crowd.*;
import com.yaoyaozw.customer.vo.crowd.CrowdPackageConditionVO;
import com.yaoyaozw.customer.vo.crowd.CrowdPackageDetailVO;
import com.yaoyaozw.customer.vo.crowd.CrowdPackageListVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -31,15 +28,15 @@ public class CrowdPackageController { ...@@ -31,15 +28,15 @@ public class CrowdPackageController {
@ApiOperation("新增人群包") @ApiOperation("新增人群包")
@GetMapping("/insertPackage/{name}") @GetMapping("/insertPackage")
public GenericsResult<CrowdPackageCommonIdVO> insertCrowdPackage(@PathVariable("name")String name) { public GenericsResult<CrowdPackageCommonIdVO> insertCrowdPackage(@RequestParam Long id, @RequestParam String name) {
return crowdPackageService.insertCrowdPackage(name); return crowdPackageService.insertCrowdPackage(id, name);
} }
@ApiOperation("新增包内条件") @ApiOperation("向人群包内新增条件")
@PostMapping("/insertCondition") @PostMapping("/insertCondition")
public GenericsResult<CrowdPackageCommonIdVO> insertCondition(@RequestBody CrowdPackageConditionDTO conditionDto) { public GenericsResult<CrowdPackageCommonIdVO> insertCondition(@RequestBody CrowdPackageConditionDTO conditionDto) {
return crowdPackageService.insertCondition(conditionDto); return crowdPackageService.insertConditionIntoPackage(conditionDto);
} }
@ApiOperation("查询") @ApiOperation("查询")
...@@ -54,10 +51,10 @@ public class CrowdPackageController { ...@@ -54,10 +51,10 @@ public class CrowdPackageController {
return crowdPackageService.removeCrowdPackage(id); return crowdPackageService.removeCrowdPackage(id);
} }
@ApiOperation("删除包内条件") @ApiOperation("从人群包中删除条件")
@GetMapping("/removePackage/{linkedId}") @GetMapping("/removeCondition/{linkedId}")
public BaseResult removeCondition(@PathVariable("linkedId") Long linkedId) { public BaseResult removeCondition(@PathVariable("linkedId") Long linkedId) {
return crowdPackageService.removeCondition(linkedId); return crowdPackageService.removeConditionFromPackage(linkedId);
} }
@ApiOperation("获取已配置的人群包条件") @ApiOperation("获取已配置的人群包条件")
...@@ -74,7 +71,7 @@ public class CrowdPackageController { ...@@ -74,7 +71,7 @@ public class CrowdPackageController {
@ApiOperation("获取条件的可选项") @ApiOperation("获取条件的可选项")
@GetMapping("/getOptions/{conditionId}") @GetMapping("/getOptions/{conditionId}")
public GenericsResult<List<CommonOptionResponseVO>> getOptions(@PathVariable("conditionId") Long conditionId) { public GenericsResult<ConditionOptionResponseVO> getOptions(@PathVariable("conditionId") Long conditionId) {
return crowdPackageService.getOptions(conditionId); return crowdPackageService.getOptions(conditionId);
} }
......
...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* @author darker * @author darker
...@@ -20,7 +21,13 @@ public class CrowdPackageConditionDTO implements Serializable { ...@@ -20,7 +21,13 @@ public class CrowdPackageConditionDTO implements Serializable {
@ApiModelProperty("人群包主键") @ApiModelProperty("人群包主键")
private Long packageId; private Long packageId;
@ApiModelProperty("比较运算符")
private String compareOperator;
@ApiModelProperty("设置的条件值") @ApiModelProperty("设置的条件值")
private String conditionValue; private String conditionValue;
@ApiModelProperty("设置的条件值")
private List<String> multipleOptions;
} }
...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableField; ...@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
/** /**
...@@ -17,6 +18,7 @@ import org.springframework.data.annotation.Id; ...@@ -17,6 +18,7 @@ import org.springframework.data.annotation.Id;
*/ */
@Data @Data
@TableName("crowd_package_main") @TableName("crowd_package_main")
@NoArgsConstructor
public class CrowdPackage implements Serializable { public class CrowdPackage implements Serializable {
/** /**
* 主键ID * 主键ID
...@@ -68,5 +70,19 @@ public class CrowdPackage implements Serializable { ...@@ -68,5 +70,19 @@ public class CrowdPackage implements Serializable {
private Long modifiedUser; private Long modifiedUser;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public CrowdPackage(Long id, String packageName) {
this.id = id;
this.packageName = packageName;
}
public void handleInfo(Date now, Long userId, Boolean isCreate) {
if (isCreate) {
this.createTime = now;
this.createUser = userId;
}
this.modifiedTime = now;
this.modifiedUser = userId;
}
} }
package com.yaoyaozw.customer.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import org.springframework.data.annotation.Id;
/**
* 人群包条件匹配
*
* @author darker
* @date 2022/09/21
*/
@Data
public class CrowdPackageConditionMatch implements Serializable {
/**
* 主键
*/
@Id
@TableId("id")
private Long id;
/**
* 人群包ID
*/
@TableField("package_id")
private Long packageId;
/**
* 条件表主键ID
*/
@TableField("condition_id")
private Long conditionId;
/**
* 条件运算符
*/
@TableField("condition_operator")
private String conditionOperator;
/**
* 运算值
*/
@TableField("operator_value")
private String operatorValue;
/**
* 条件表达式
*/
@TableField("operator_expression")
private String operatorExpression;
/**
* 条件描述
*/
@TableField("operator_description")
private String operatorDescription;
private static final long serialVersionUID = 1L;
}
package com.yaoyaozw.customer.enums;
import cn.hutool.core.util.ObjectUtil;
/**
* @author darker
* @date 2022/9/21 16:40
*/
public enum CrowdPackageConditionEnum {
/**
* 人群包条件的运算符枚举
*/
GIANT_THAN("gt", ">", "大于"),
LITTLE_THEN("lt", "<", "小于"),
GIANT_AND_EQUALS("ge", ">=", "大于等于"),
LITTLE_AND_EQUALS("le", "<=", "小于等于"),
PURE_EQUALS("eq", "=", "等于"),
;
/**
* 关键
*/
private final String key;
/**
* 意义
*/
private final String meaning;
/**
* 描述
*/
private final String description;
CrowdPackageConditionEnum(String key, String meaning, String description) {
this.key = key;
this.meaning = meaning;
this.description = description;
}
public String getKey() {
return key;
}
public String getMeaning() {
return meaning;
}
public String getDescription() {
return description;
}
/**
* 获取运算信息
* @param operator 运算符
* @return 结果
*/
public static CrowdPackageConditionEnum getInfoByOperator(String operator) {
if (ObjectUtil.isNull(operator)) {
return null;
}
for (CrowdPackageConditionEnum value : CrowdPackageConditionEnum.values()) {
if (operator.equals(value.getKey())) {
return value;
}
}
return null;
}
}
package com.yaoyaozw.customer.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yaoyaozw.customer.entity.CrowdPackageConditionMatch;
import org.springframework.stereotype.Repository;
/**
* @author darker
* @date 2022/9/21 15:08
*/
@Repository
public interface CrowdPackageConditionMatchMapper extends BaseMapper<CrowdPackageConditionMatch> {
}
...@@ -2,9 +2,11 @@ package com.yaoyaozw.customer.mapper; ...@@ -2,9 +2,11 @@ package com.yaoyaozw.customer.mapper;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yaoyaozw.customer.dto.crowd.CrowdPackageQueryDTO;
import com.yaoyaozw.customer.entity.CrowdPackage; import com.yaoyaozw.customer.entity.CrowdPackage;
import com.yaoyaozw.customer.entity.CrowdPackageCondition; import com.yaoyaozw.customer.entity.CrowdPackageCondition;
import com.yaoyaozw.customer.vo.CommonOptionResponseVO; import com.yaoyaozw.customer.vo.CommonOptionResponseVO;
import com.yaoyaozw.customer.vo.crowd.CrowdPackageListVO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -26,4 +28,20 @@ public interface MaterialCrowdPackageMapper extends BaseMapper<CrowdPackage> { ...@@ -26,4 +28,20 @@ public interface MaterialCrowdPackageMapper extends BaseMapper<CrowdPackage> {
*/ */
List<CommonOptionResponseVO> getConditionOptionByConfig(@Param("conditionItem") CrowdPackageCondition conditionItem); List<CommonOptionResponseVO> getConditionOptionByConfig(@Param("conditionItem") CrowdPackageCondition conditionItem);
/**
* 获得页面列表
*
* @param queryDto 查询dto
* @return {@link List}<{@link CrowdPackageListVO}>
*/
List<CrowdPackageListVO> getPageList(@Param("queryDto") CrowdPackageQueryDTO queryDto);
/**
* 删除条件
*
* @param linkedId 相关id
*/
void removeCondition(@Param("linkedId") Long linkedId);
} }
package com.yaoyaozw.customer.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yaoyaozw.customer.entity.CrowdPackageConditionMatch;
/**
* @author darker
* @date 2022/9/21 15:08
*/
public interface CrowdPackageConditionMatchService extends IService<CrowdPackageConditionMatch> {
}
...@@ -7,10 +7,7 @@ import com.yaoyaozw.customer.dto.crowd.CrowdPackageQueryDTO; ...@@ -7,10 +7,7 @@ import com.yaoyaozw.customer.dto.crowd.CrowdPackageQueryDTO;
import com.yaoyaozw.customer.dto.crowd.CrowdPackageConditionDTO; import com.yaoyaozw.customer.dto.crowd.CrowdPackageConditionDTO;
import com.yaoyaozw.customer.entity.CrowdPackage; import com.yaoyaozw.customer.entity.CrowdPackage;
import com.yaoyaozw.customer.vo.CommonOptionResponseVO; import com.yaoyaozw.customer.vo.CommonOptionResponseVO;
import com.yaoyaozw.customer.vo.crowd.CrowdPackageCommonIdVO; import com.yaoyaozw.customer.vo.crowd.*;
import com.yaoyaozw.customer.vo.crowd.CrowdPackageConditionVO;
import com.yaoyaozw.customer.vo.crowd.CrowdPackageDetailVO;
import com.yaoyaozw.customer.vo.crowd.CrowdPackageListVO;
import java.util.List; import java.util.List;
...@@ -22,10 +19,11 @@ public interface CrowdPackageService extends IService<CrowdPackage> { ...@@ -22,10 +19,11 @@ public interface CrowdPackageService extends IService<CrowdPackage> {
/** /**
* 插入人群包 * 插入人群包
* *
* @param id 人群包id
* @param name 人群包名 * @param name 人群包名
* @return {@link BaseResult} * @return {@link BaseResult}
*/ */
GenericsResult<CrowdPackageCommonIdVO> insertCrowdPackage(String name); GenericsResult<CrowdPackageCommonIdVO> insertCrowdPackage(Long id, String name);
/** /**
...@@ -34,7 +32,7 @@ public interface CrowdPackageService extends IService<CrowdPackage> { ...@@ -34,7 +32,7 @@ public interface CrowdPackageService extends IService<CrowdPackage> {
* @param conditionDto 条件dto * @param conditionDto 条件dto
* @return {@link BaseResult} * @return {@link BaseResult}
*/ */
GenericsResult<CrowdPackageCommonIdVO> insertCondition(CrowdPackageConditionDTO conditionDto); GenericsResult<CrowdPackageCommonIdVO> insertConditionIntoPackage(CrowdPackageConditionDTO conditionDto);
/** /**
* 页面列表 * 页面列表
...@@ -59,7 +57,7 @@ public interface CrowdPackageService extends IService<CrowdPackage> { ...@@ -59,7 +57,7 @@ public interface CrowdPackageService extends IService<CrowdPackage> {
* @param linkedId 人群包-条件 关联主键 * @param linkedId 人群包-条件 关联主键
* @return {@link BaseResult} * @return {@link BaseResult}
*/ */
BaseResult removeCondition(Long linkedId); BaseResult removeConditionFromPackage(Long linkedId);
/** /**
...@@ -83,7 +81,7 @@ public interface CrowdPackageService extends IService<CrowdPackage> { ...@@ -83,7 +81,7 @@ public interface CrowdPackageService extends IService<CrowdPackage> {
* 得到某个条件的可选项 * 得到某个条件的可选项
* *
* @param conditionId 状态标识 * @param conditionId 状态标识
* @return {@link GenericsResult}<{@link List}<{@link CrowdPackageConditionVO}>> * @return {@link GenericsResult}<{@link ConditionOptionResponseVO}
*/ */
GenericsResult<List<CommonOptionResponseVO>> getOptions(Long conditionId); GenericsResult<ConditionOptionResponseVO> getOptions(Long conditionId);
} }
package com.yaoyaozw.customer.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yaoyaozw.customer.entity.CrowdPackageConditionMatch;
import com.yaoyaozw.customer.mapper.CrowdPackageConditionMatchMapper;
import com.yaoyaozw.customer.service.CrowdPackageConditionMatchService;
import org.springframework.stereotype.Service;
/**
* @author darker
* @date 2022/9/21 15:09
*/
@Service
public class CrowdPackageConditionMatchServiceImpl extends ServiceImpl<CrowdPackageConditionMatchMapper, CrowdPackageConditionMatch> implements CrowdPackageConditionMatchService {
}
package com.yaoyaozw.customer.vo.crowd;
import com.yaoyaozw.customer.vo.CommonOptionResponseVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.List;
/**
* @author darker
* @date 2022/9/21 19:34
*/
@Data
@ApiModel("条件选项实体")
@NoArgsConstructor
public class ConditionOptionResponseVO implements Serializable {
@ApiModelProperty("条件类型")
private String frontType;
@ApiModelProperty("选项列表")
private List<CommonOptionResponseVO> optionList;
public ConditionOptionResponseVO(String frontType, List<CommonOptionResponseVO> optionList) {
this.frontType = frontType;
this.optionList = optionList;
}
}
package com.yaoyaozw.customer.vo.crowd; package com.yaoyaozw.customer.vo.crowd;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
...@@ -12,12 +15,22 @@ import java.io.Serializable; ...@@ -12,12 +15,22 @@ import java.io.Serializable;
*/ */
@Data @Data
@ApiModel("接口执行生成的主键") @ApiModel("接口执行生成的主键")
@NoArgsConstructor
public class CrowdPackageCommonIdVO implements Serializable { public class CrowdPackageCommonIdVO implements Serializable {
@ApiModelProperty("人群包主键ID") @ApiModelProperty("人群包主键ID")
@JsonSerialize(using = ToStringSerializer.class)
private Long packageId; private Long packageId;
@ApiModelProperty("人群包与条件关联主键") @ApiModelProperty("人群包与条件关联主键")
@JsonSerialize(using = ToStringSerializer.class)
private Long linkedId; private Long linkedId;
@ApiModelProperty("新增的条件描述")
private String conditionDescription;
public CrowdPackageCommonIdVO(Long packageId, Long linkedId) {
this.packageId = packageId;
this.linkedId = linkedId;
}
} }
package com.yaoyaozw.customer.vo.crowd; package com.yaoyaozw.customer.vo.crowd;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yaoyaozw.customer.vo.CommonOptionResponseVO; import com.yaoyaozw.customer.vo.CommonOptionResponseVO;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -17,6 +19,7 @@ import java.util.List; ...@@ -17,6 +19,7 @@ import java.util.List;
public class CrowdPackageConditionVO implements Serializable { public class CrowdPackageConditionVO implements Serializable {
@ApiModelProperty("人群包下的条件ID") @ApiModelProperty("人群包下的条件ID")
@JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
@ApiModelProperty("条件key") @ApiModelProperty("条件key")
......
package com.yaoyaozw.customer.vo.crowd; package com.yaoyaozw.customer.vo.crowd;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -16,6 +18,7 @@ import java.util.List; ...@@ -16,6 +18,7 @@ import java.util.List;
public class CrowdPackageDetailVO implements Serializable { public class CrowdPackageDetailVO implements Serializable {
@ApiModelProperty("人群包主键") @ApiModelProperty("人群包主键")
@JsonSerialize(using = ToStringSerializer.class)
private Long packageId; private Long packageId;
@ApiModelProperty("人群包名") @ApiModelProperty("人群包名")
......
package com.yaoyaozw.customer.vo.crowd; package com.yaoyaozw.customer.vo.crowd;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -15,6 +17,7 @@ import java.io.Serializable; ...@@ -15,6 +17,7 @@ import java.io.Serializable;
public class CrowdPackageListVO implements Serializable { public class CrowdPackageListVO implements Serializable {
@ApiModelProperty("人群包主键") @ApiModelProperty("人群包主键")
@JsonSerialize(using = ToStringSerializer.class)
private Long id; private Long id;
@ApiModelProperty("人群包名称") @ApiModelProperty("人群包名称")
......
...@@ -15,4 +15,22 @@ ...@@ -15,4 +15,22 @@
</select> </select>
<select id="getPageList" resultType="com.yaoyaozw.customer.vo.crowd.CrowdPackageListVO">
select
cpm.id, cpm.package_name as packageName,
cpm.create_time as createTime, cpm.modified_time as modifiedTime,
cau.nick_name as createUser, mau.nick_name as modifiedUser
from crowd_package_main cpm
left join acl_user cau
on cpm.create_user = cau.id
left join acl_user mau
on cpm.modified_user = mau.id
</select>
<delete id="removeCondition">
delete from crowd_package_condition_match where id = #{linkedId}
</delete>
</mapper> </mapper>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论