提交 1eeea098 作者: 沈振路

人群包 + 阳光控制

上级 ddf959cf
......@@ -554,7 +554,7 @@ public class CustomerServiceCommonAsyncComponent {
* 以下是公有方法
*/
public void getCopyReferral(String dateStr, AuthInfoVO authInfoVo, ReferralEntity referralEntity) {
// ygAccessLimit(true, authInfoVo.getStoreType());
ygAccessLimit(true, authInfoVo.getStoreType());
referralEntity.setStoreType(authInfoVo.getStoreType());
// 非常用链接类型的name需要处理
String name = referralEntity.getName();
......
......@@ -37,4 +37,6 @@ public class CrowdPackageCommonConstant {
public static final Pattern NUMBER_COMPILE = Pattern.compile("[\\d]");
public static final Long HOUR_TO_MILLION_RATE = 60 * 60 * 1000L;
}
......@@ -11,6 +11,7 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.List;
/**
......@@ -28,8 +29,11 @@ public class CrowdPackageController {
@ApiOperation("新增人群包")
@GetMapping("/insertPackage")
public GenericsResult<CrowdPackageCommonIdVO> insertCrowdPackage(@RequestParam(required = false) Long id, @RequestParam(required = false) String name) {
return crowdPackageService.insertCrowdPackage(id, name);
public GenericsResult<CrowdPackageCommonIdVO> insertCrowdPackage(@RequestParam(required = false) Long id,
@RequestParam(required = false) String name,
@RequestParam(required = false) Double activeTimeMin,
@RequestParam(required = false) Double activeTimeMax) {
return crowdPackageService.insertCrowdPackage(id, name, activeTimeMin, activeTimeMax);
}
@ApiOperation("向人群包内新增条件")
......
......@@ -3,9 +3,11 @@ package com.yaoyaozw.customer.entity;
import java.io.Serializable;
import java.util.Date;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yaoyaozw.customer.constants.CrowdPackageCommonConstant;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
......@@ -34,6 +36,18 @@ public class CrowdPackage implements Serializable {
private String packageName;
/**
* 活跃时间左边界
*/
@TableField("active_time_min")
private Long activeTimeMin;
/**
* 活跃时间右边界
*/
@TableField("active_time_max")
private Long activeTimeMax;
/**
* 人群包用户人数
*/
@TableField("crowd_num")
......@@ -71,9 +85,15 @@ public class CrowdPackage implements Serializable {
private static final long serialVersionUID = 1L;
public CrowdPackage(Long id, String packageName) {
public CrowdPackage(Long id, String packageName, Double activeTimeMin, Double activeTimeMax) {
this.id = id;
this.packageName = packageName;
if (ObjectUtil.isNotNull(activeTimeMin)) {
this.activeTimeMin = Long.parseLong(String.valueOf(activeTimeMin * CrowdPackageCommonConstant.HOUR_TO_MILLION_RATE));
}
if (ObjectUtil.isNotNull(activeTimeMax)) {
this.activeTimeMin = Long.parseLong(String.valueOf(activeTimeMax * CrowdPackageCommonConstant.HOUR_TO_MILLION_RATE));
}
}
public void handleInfo(Date now, Long userId, Boolean isCreate) {
......
......@@ -38,8 +38,6 @@ public class SchedulingTask {
private CustomerDelayPublishService customerDelayPublishService;
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private CrowdPackageServiceImpl crowdPackageService;
......
......@@ -7,6 +7,7 @@ import com.yaoyaozw.customer.dto.crowd.CrowdPackageQueryDTO;
import com.yaoyaozw.customer.dto.crowd.CrowdPackageConditionDTO;
import com.yaoyaozw.customer.entity.CrowdPackage;
import com.yaoyaozw.customer.vo.crowd.*;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
......@@ -20,9 +21,11 @@ public interface CrowdPackageService extends IService<CrowdPackage> {
*
* @param id 人群包id
* @param name 人群包名
* @param activeTimeMin 活跃时间左边界
* @param activeTimeMax 活跃时间右边界
* @return {@link BaseResult}
*/
GenericsResult<CrowdPackageCommonIdVO> insertCrowdPackage(Long id, String name);
GenericsResult<CrowdPackageCommonIdVO> insertCrowdPackage(Long id, String name, Double activeTimeMin, Double activeTimeMax);
/**
......
......@@ -65,12 +65,12 @@ public class CrowdPackageServiceImpl extends ServiceImpl<MaterialCrowdPackageMap
@Override
public GenericsResult<CrowdPackageCommonIdVO> insertCrowdPackage(Long id, String name) {
public GenericsResult<CrowdPackageCommonIdVO> insertCrowdPackage(Long id, String name, Double activeTimeMin, Double activeTimeMax) {
// 根据是否传了主键判断是创建还是更新
boolean isCreate = ObjectUtil.isNull(id);
// 获取操作人
Long userId = tokenManager.getUserIdFromToken();
CrowdPackage crowdPackage = new CrowdPackage(id, name);
CrowdPackage crowdPackage = new CrowdPackage(id, name, activeTimeMin, activeTimeMax);
crowdPackage.handleInfo(new Date(), userId, isCreate);
if (ObjectUtil.isNotNull(name)) {
// 判断是否有重名
......@@ -128,7 +128,7 @@ public class CrowdPackageServiceImpl extends ServiceImpl<MaterialCrowdPackageMap
if (ObjectUtil.isNull(byId)) {
return new GenericsResult<>(false, "无法获取主体数据");
}
CrowdPackageDetailVO vo = new CrowdPackageDetailVO(id, byId.getPackageName());
CrowdPackageDetailVO vo = new CrowdPackageDetailVO(byId);
// 获取条件数据
List<CrowdPackageConditionMatch> conditionMatchList = matchService.list(new QueryWrapper<CrowdPackageConditionMatch>().eq("package_id", id));
JSONArray jsonArray = JSONUtil.parseArray(conditionMatchList);
......
package com.yaoyaozw.customer.vo.crowd;
import cn.hutool.core.util.ObjectUtil;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yaoyaozw.customer.constants.CrowdPackageCommonConstant;
import com.yaoyaozw.customer.entity.CrowdPackage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -26,11 +29,23 @@ public class CrowdPackageDetailVO implements Serializable {
@ApiModelProperty("人群包名")
private String packageName;
@ApiModelProperty("活跃时间左边界")
private Double activeTimeMin;
@ApiModelProperty("活跃时间右边界")
private Double activeTimeMax;
@ApiModelProperty("已配置的人群包条件")
private List<CrowdPackageConditionMatchVO> conditionList;
public CrowdPackageDetailVO(Long packageId, String packageName) {
this.packageId = packageId;
this.packageName = packageName;
public CrowdPackageDetailVO(CrowdPackage byId) {
this.packageId = byId.getId();
this.packageName = byId.getPackageName();
if (ObjectUtil.isNotNull(byId.getActiveTimeMin())) {
this.activeTimeMin = byId.getActiveTimeMin().doubleValue() / CrowdPackageCommonConstant.HOUR_TO_MILLION_RATE;
}
if (ObjectUtil.isNotNull(byId.getActiveTimeMax())) {
this.activeTimeMax = byId.getActiveTimeMax().doubleValue() / CrowdPackageCommonConstant.HOUR_TO_MILLION_RATE;
}
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论