Sfoglia il codice sorgente

[会员][修复]:会员筛选增加生日

release_toaliyun_real
hupeng 7 anni fa
parent
commit
25904e1467
6 ha cambiato i file con 100 aggiunte e 33 eliminazioni
  1. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java
  2. +4
    -2
      mallinkService/src/main/java/com/iformall/enums/EnumTag.java
  3. +1
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumTagType.java
  4. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java
  5. +85
    -28
      mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java
  6. +8
    -0
      mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml

+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java Vedi File

@@ -154,7 +154,7 @@ public class WxCUserBasicInfoController extends BaseController {
WxCUserBasicInfo baseInfoQ = new WxCUserBasicInfo();
baseInfoQ.setPhone(phone);
baseInfoQ.setTenantId(tenantId);
return wxCUserBasicInfoService.cntUserList(baseInfoQ);
return wxCUserBasicInfoService.countUser(baseInfoQ);
}

@ApiOperation("根据id更新接口")


+ 4
- 2
mallinkService/src/main/java/com/iformall/enums/EnumTag.java Vedi File

@@ -177,8 +177,6 @@ public enum EnumTag {
ID_144(144L, EnumTagType.ID_17,"饮品店"),




ID_1000(1000L, EnumTagType.ID_50,"一天以内"),
ID_1001(1001L, EnumTagType.ID_50,"一周以内"),
ID_1002(1002L, EnumTagType.ID_50,"一月以内"),
@@ -191,6 +189,10 @@ public enum EnumTag {
ID_1009(1009L, EnumTagType.ID_50,"一月以上"),
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,"当月生日"),
;




+ 1
- 1
mallinkService/src/main/java/com/iformall/enums/EnumTagType.java Vedi File

@@ -35,7 +35,7 @@ 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, "会员生日"),
;

public static EnumTagType getEnum(Long code) {


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java Vedi File

@@ -41,7 +41,7 @@ public interface WxCUserBasicInfoService {
* @param record
* @return
*/
int cntUserList(WxCUserBasicInfo record);
int countUser(WxCUserBasicInfo record);

/**
* 根据Id获得实体


+ 85
- 28
mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java Vedi File

@@ -29,8 +29,12 @@ import javax.servlet.http.HttpServletResponse;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.TemporalAdjusters;
import java.time.temporal.WeekFields;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@@ -203,6 +207,25 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
}
};

private final static List<WxTags> memberBirthday = new ArrayList<WxTags>(
Arrays.asList(
new WxTags(){{
setTypeId(EnumTagType.ID_52.getCode());
setName(EnumTag.ID_1100.getMessage());
setId(EnumTag.ID_1100.getCode());
}},
new WxTags(){{
setTypeId(EnumTagType.ID_52.getCode());
setName(EnumTag.ID_1101.getMessage());
setId(EnumTag.ID_1101.getCode());
}},
new WxTags(){{
setTypeId(EnumTagType.ID_52.getCode());
setName(EnumTag.ID_1102.getMessage());
setId(EnumTag.ID_1102.getCode());
}}
)
);

private WxCUserBasicInfoDto filtersToDto(String tenantId, List<WxCUserBasicInfoFilterDto> filterList){
WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto();
@@ -250,6 +273,32 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
}
}
}
} else if (f.getTypeId().equals(EnumTagType.ID_52.getCode())) {
LocalDate localDate = LocalDate.now();
ZoneId zone = ZoneId.systemDefault();
if (f.getId().equals(EnumTag.ID_1100.getCode())) {
dto.setBirthStartTime(
Date.from(
localDate.atStartOfDay().atZone(zone).toInstant()));
dto.setBirthEndTime(
Date.from(
localDate.plusDays(1).atStartOfDay().atZone(zone).toInstant()));
} else if (f.getId().equals(EnumTag.ID_1101.getCode())){
dto.setBirthStartTime(
Date.from(
localDate.with(DayOfWeek.MONDAY).atStartOfDay().atZone(zone).toInstant()));
dto.setBirthEndTime(
Date.from(
localDate.plusWeeks(1).with(DayOfWeek.MONDAY).atStartOfDay().atZone(zone).toInstant()));
} else if (f.getId().equals(EnumTag.ID_1102.getCode())){
dto.setBirthStartTime(
Date.from(
localDate.with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay().atZone(zone).toInstant()));
dto.setBirthEndTime(
Date.from(
localDate.plusMonths(1).with(TemporalAdjusters.firstDayOfMonth()).atStartOfDay().atZone(zone).toInstant()));
}

} else {
tagIdList.add(f.getId());
}
@@ -268,26 +317,20 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
return wxCUserBasicInfoMapper.findListByFilter(filtersToDto(tenantId,filterList));
}

private WxTagsTypeVo generateType50() {
WxTagsTypeVo type = new WxTagsTypeVo();
type.setFlag(EnumTagTypeFlag.FLAG_SINGLE.getCode());
type.setName(EnumTagType.ID_50.getMessage());
type.setId(EnumTagType.ID_50.getCode());
type.setTags(memberTimeList);
return type;
}

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

filter.setId(EnumTagGroup.ID_10.getCode());
filter.setName(EnumTagGroup.ID_10.getMessage());

List<WxTagsTypeVo> types = new ArrayList<>();

WxTagsTypeVo typeMemberTime = new WxTagsTypeVo();
typeMemberTime.setFlag(EnumTagTypeFlag.FLAG_SINGLE.getCode());
typeMemberTime.setName(EnumTagType.ID_50.getMessage());
typeMemberTime.setId(EnumTagType.ID_50.getCode());
typeMemberTime.setTags(memberTimeList);
types.add(typeMemberTime);

WxTagsTypeVo typeMemberLevel = new WxTagsTypeVo();
typeMemberLevel.setFlag(EnumTagTypeFlag.FLAG_SINGLE.getCode());
typeMemberLevel.setName(EnumTagType.ID_51.getMessage());
typeMemberLevel.setId(EnumTagType.ID_51.getCode());
private WxTagsTypeVo generateType51(String tenentId) {
WxTagsTypeVo type = new WxTagsTypeVo();
type.setFlag(EnumTagTypeFlag.FLAG_SINGLE.getCode());
type.setName(EnumTagType.ID_51.getMessage());
type.setId(EnumTagType.ID_51.getCode());

List<WxTags> tagsMemberLevel = new ArrayList<>();
List<WxLevelConfig> levels = wxLevelConfigService.getByTenantId(tenentId);
@@ -305,13 +348,31 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
wxTags.setTypeId(EnumTagType.ID_51.getCode());
tagsMemberLevel.add(wxTags);
});
type.setTags(tagsMemberLevel);
return type;
}

typeMemberLevel.setTags(tagsMemberLevel);
private WxTagsTypeVo generateType52() {
WxTagsTypeVo type = new WxTagsTypeVo();
type.setFlag(EnumTagTypeFlag.FLAG_SINGLE.getCode());
type.setName(EnumTagType.ID_52.getMessage());
type.setId(EnumTagType.ID_52.getCode());
type.setTags(memberBirthday);
return type;
}

types.add(typeMemberLevel);
public List<WxTagsGroupVo> listFilters(String tenantId) {
WxTagsGroupVo filter = new WxTagsGroupVo();

filter.setTypes(types);
filter.setId(EnumTagGroup.ID_10.getCode());
filter.setName(EnumTagGroup.ID_10.getMessage());

List<WxTagsTypeVo> types = new ArrayList<>();
types.add(generateType50());
types.add(generateType51(tenantId));
types.add(generateType52());

filter.setTypes(types);
List<WxTagsGroupVo> listVo =wxTagsService.listAllVo();
listVo.add(0,filter);
return listVo;
@@ -321,11 +382,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
@Override
public List<WxCUserBasicInfo> listByFilterList(String tenantId, List<WxCUserBasicInfoFilterListDto> filterList) {
HashSet<WxCUserBasicInfo> userSet = new HashSet<>();

filterList.stream().forEach(f->{
userSet.addAll(listByFilter(tenantId,f.getTagList()));
});

filterList.stream().forEach(f->userSet.addAll(listByFilter(tenantId,f.getTagList())));
return new ArrayList<>(userSet);
}

@@ -335,7 +392,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService {
}

@Override
public int cntUserList(WxCUserBasicInfo record) {
public int countUser(WxCUserBasicInfo record) {
return wxCUserBasicInfoMapper.selectCount(record);
}



+ 8
- 0
mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml Vedi File

@@ -356,6 +356,14 @@
and cu.create_date &lt;= #{endTime}
</if>

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

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

<if test=" null != levelStartScore and (0 != levelStartScore and '' != levelStartScore)">
and cu.poins &gt;= #{levelStartScore}
<if test=" null != levelEndScore">


Caricamento…
Annulla
Salva