Browse Source

[标签][修改]:新增会员核销动向,会员登陆动向过滤器

release_toaliyun_real
hupeng 7 years ago
parent
commit
172022f495
6 changed files with 194 additions and 7 deletions
  1. +44
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoDto.java
  2. +11
    -3
      mallinkService/src/main/java/com/iformall/enums/EnumTag.java
  3. +1
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumTagType.java
  5. +119
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java
  6. +17
    -0
      mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml

+ 44
- 0
mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoDto.java View File

@@ -44,6 +44,18 @@ public class WxCUserBasicInfoDto implements Serializable{
@Transient
private Date birthEndTime;

@Transient
private Date loginStartTime;

@Transient
private Date loginEndTime;

@Transient
private Date verifiedStartTime;

@Transient
private Date verifiedEndTime;

@Transient
private Integer levelStartScore;

@@ -103,6 +115,38 @@ public class WxCUserBasicInfoDto implements Serializable{
this.birthEndTime = birthEndTime;
}

public Date getLoginStartTime() {
return loginStartTime;
}

public void setLoginStartTime(Date loginStartTime) {
this.loginStartTime = loginStartTime;
}

public Date getLoginEndTime() {
return loginEndTime;
}

public void setLoginEndTime(Date loginEndTime) {
this.loginEndTime = loginEndTime;
}

public Date getVerifiedStartTime() {
return verifiedStartTime;
}

public void setVerifiedStartTime(Date verifiedStartTime) {
this.verifiedStartTime = verifiedStartTime;
}

public Date getVerifiedEndTime() {
return verifiedEndTime;
}

public void setVerifiedEndTime(Date verifiedEndTime) {
this.verifiedEndTime = verifiedEndTime;
}

public Integer getSex() {
return sex;
}


+ 11
- 3
mallinkService/src/main/java/com/iformall/enums/EnumTag.java View File

@@ -190,9 +190,17 @@ public enum EnumTag {
ID_1010(1010L, EnumTagType.ID_50,"一周以上"),
ID_1011(1011L, EnumTagType.ID_50,"一天以上"),

ID_1100(1100L, EnumTagType.ID_50,"今天生日"),
ID_1101(1101L, EnumTagType.ID_50,"本周生日"),
ID_1102(1102L, EnumTagType.ID_50,"当月生日"),
ID_1100(1100L, EnumTagType.ID_52,"今天生日"),
ID_1101(1101L, EnumTagType.ID_52,"本周生日"),
ID_1102(1102L, EnumTagType.ID_52,"当月生日"),

ID_1200(1200L, EnumTagType.ID_53,"今天登陆"),
ID_1201(1201L, EnumTagType.ID_53,"本周登陆"),
ID_1202(1202L, EnumTagType.ID_53,"当月登陆"),

ID_1300(1300L, EnumTagType.ID_54,"今天核销"),
ID_1301(1301L, EnumTagType.ID_54,"本周核销"),
ID_1302(1302L, EnumTagType.ID_54,"当月核销"),
;




+ 1
- 1
mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java View File

@@ -10,7 +10,7 @@ public enum EnumTagGroup {
ID_3(3L, "消费偏好"),
ID_4(4L, "行为偏好"),

ID_10(10L, "会员属性"),
ID_10(10L, "会员动态"),
;

public static EnumTagGroup getEnum(Long code) {


+ 2
- 0
mallinkService/src/main/java/com/iformall/enums/EnumTagType.java View File

@@ -36,6 +36,8 @@ public enum EnumTagType {
ID_50(50L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员会龄"),
ID_51(51L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员等级"),
ID_52(52L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员生日"),
ID_53(53L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员活跃"),
ID_54(54L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员消费"),
;

public static EnumTagType getEnum(Long code) {


+ 119
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java View File

@@ -224,6 +224,46 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
)
);

private final static List<WxTags> memberLoginActivity = new ArrayList<WxTags>(
Arrays.asList(
new WxTags(){{
setTypeId(EnumTagType.ID_53.getCode());
setName(EnumTag.ID_1200.getMessage());
setId(EnumTag.ID_1200.getCode());
}},
new WxTags(){{
setTypeId(EnumTagType.ID_53.getCode());
setName(EnumTag.ID_1201.getMessage());
setId(EnumTag.ID_1201.getCode());
}},
new WxTags(){{
setTypeId(EnumTagType.ID_53.getCode());
setName(EnumTag.ID_1202.getMessage());
setId(EnumTag.ID_1202.getCode());
}}
)
);

private final static List<WxTags> memberCouponVerified = new ArrayList<WxTags>(
Arrays.asList(
new WxTags(){{
setTypeId(EnumTagType.ID_54.getCode());
setName(EnumTag.ID_1300.getMessage());
setId(EnumTag.ID_1300.getCode());
}},
new WxTags(){{
setTypeId(EnumTagType.ID_54.getCode());
setName(EnumTag.ID_1301.getMessage());
setId(EnumTag.ID_1301.getCode());
}},
new WxTags(){{
setTypeId(EnumTagType.ID_54.getCode());
setName(EnumTag.ID_1302.getMessage());
setId(EnumTag.ID_1302.getCode());
}}
)
);

private void filtersToDtoID0(WxCUserBasicInfoDto dto, WxCUserBasicInfoFilterDto f) {
dto.setPhones(f.getParam());
}
@@ -294,6 +334,61 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
localDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay().atZone(zone).toInstant()));
}
}

private void filtersToDtoID53(WxCUserBasicInfoDto dto, WxCUserBasicInfoFilterDto f) {
LocalDate localDate = LocalDate.now();
ZoneId zone = ZoneId.systemDefault();
if (f.getId().equals(EnumTag.ID_1200.getCode())) {
dto.setLoginStartTime(
Date.from(
localDate.atStartOfDay().atZone(zone).toInstant()));
dto.setLoginEndTime(
Date.from(
localDate.plusDays(1).atStartOfDay().atZone(zone).toInstant()));
} else if (f.getId().equals(EnumTag.ID_1201.getCode())){
dto.setLoginStartTime(
Date.from(
localDate.with(DayOfWeek.MONDAY).atStartOfDay().atZone(zone).toInstant()));
dto.setLoginEndTime(
Date.from(
localDate.plusWeeks(1).with(DayOfWeek.MONDAY).atStartOfDay().atZone(zone).toInstant()));
} else if (f.getId().equals(EnumTag.ID_1202.getCode())){
dto.setLoginStartTime(
Date.from(
localDate.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay().atZone(zone).toInstant()));
dto.setLoginEndTime(
Date.from(
localDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay().atZone(zone).toInstant()));
}
}

private void filtersToDtoID54(WxCUserBasicInfoDto dto, WxCUserBasicInfoFilterDto f) {
LocalDate localDate = LocalDate.now();
ZoneId zone = ZoneId.systemDefault();
if (f.getId().equals(EnumTag.ID_1300.getCode())) {
dto.setVerifiedStartTime(
Date.from(
localDate.atStartOfDay().atZone(zone).toInstant()));
dto.setVerifiedEndTime(
Date.from(
localDate.plusDays(1).atStartOfDay().atZone(zone).toInstant()));
} else if (f.getId().equals(EnumTag.ID_1301.getCode())){
dto.setVerifiedStartTime(
Date.from(
localDate.with(DayOfWeek.MONDAY).atStartOfDay().atZone(zone).toInstant()));
dto.setVerifiedEndTime(
Date.from(
localDate.plusWeeks(1).with(DayOfWeek.MONDAY).atStartOfDay().atZone(zone).toInstant()));
} else if (f.getId().equals(EnumTag.ID_1302.getCode())){
dto.setVerifiedStartTime(
Date.from(
localDate.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay().atZone(zone).toInstant()));
dto.setVerifiedEndTime(
Date.from(
localDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay().atZone(zone).toInstant()));
}
}

private WxCUserBasicInfoDto filtersToDto(String tenantId, List<WxCUserBasicInfoFilterDto> filterList){
WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto();
List<Long> tagIdList = new ArrayList<>();
@@ -311,6 +406,10 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
filtersToDtoID51(dto,f);
} else if (f.getTypeId().equals(EnumTagType.ID_52.getCode())) {
filtersToDtoID52(dto,f);
} else if (f.getTypeId().equals(EnumTagType.ID_53.getCode())) {
filtersToDtoID53(dto,f);
} else if (f.getTypeId().equals(EnumTagType.ID_54.getCode())) {
filtersToDtoID54(dto,f);
} else {
tagIdList.add(f.getId());
}
@@ -365,6 +464,24 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
return type;
}

private WxTagsTypeVo generateType53() {
WxTagsTypeVo type = new WxTagsTypeVo();
type.setFlag(EnumTagTypeFlag.FLAG_SINGLE.getCode());
type.setName(EnumTagType.ID_53.getMessage());
type.setId(EnumTagType.ID_53.getCode());
type.setTags(memberLoginActivity);
return type;
}

private WxTagsTypeVo generateType54() {
WxTagsTypeVo type = new WxTagsTypeVo();
type.setFlag(EnumTagTypeFlag.FLAG_SINGLE.getCode());
type.setName(EnumTagType.ID_54.getMessage());
type.setId(EnumTagType.ID_54.getCode());
type.setTags(memberCouponVerified);
return type;
}

public List<WxTagsGroupVo> listFilters(String tenantId) {
WxTagsGroupVo filter = new WxTagsGroupVo();

@@ -375,7 +492,8 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
types.add(generateType50());
types.add(generateType51(tenantId));
types.add(generateType52());

types.add(generateType53());
types.add(generateType54());
filter.setTypes(types);
List<WxTagsGroupVo> listVo =wxTagsService.listAllVo();
listVo.add(0,filter);
@@ -399,8 +517,6 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {





/***************user filter end******************************************/

@Override


+ 17
- 0
mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml View File

@@ -374,6 +374,23 @@
and cu.birthdate &lt; #{birthEndTime}
</if>

<if test=" null != loginStartTime ">
and cu.active_time &gt;= #{loginStartTime}
</if>

<if test=" null != loginEndTime">
and cu.active_time &lt;= #{loginEndTime}
</if>

<if test=" null != verifiedStartTime and null != verifiedEndTime ">
and 0&lt;
(select count(*) from wx_coupon_order co
where cu.id = co.c_user_id
and co.coupon_order_status = 1
and co.update_date &gt;= #{verifiedStartTime}
and co.update_date &lt;= #{verifiedEndTime})
</if>

<if test=" null != phones">
and cu.phone in (${phones})
</if>


Loading…
Cancel
Save