diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 323714e13..9d9d8f8ef 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -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更新接口") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTag.java b/mallinkService/src/main/java/com/iformall/enums/EnumTag.java index b47c996f8..012faa9dd 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTag.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTag.java @@ -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,"当月生日"), ; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java b/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java index 92292dcef..02a76e12d 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java @@ -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) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java index c2cc01a75..b07a2717f 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java @@ -41,7 +41,7 @@ public interface WxCUserBasicInfoService { * @param record * @return */ - int cntUserList(WxCUserBasicInfo record); + int countUser(WxCUserBasicInfo record); /** * 根据Id获得实体 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java index a78bdd227..7c8dbd519 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -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 memberBirthday = new ArrayList( + 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 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 listFilters(String tenentId) { - WxTagsGroupVo filter = new WxTagsGroupVo(); - - filter.setId(EnumTagGroup.ID_10.getCode()); - filter.setName(EnumTagGroup.ID_10.getMessage()); - - List 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 tagsMemberLevel = new ArrayList<>(); List 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 listFilters(String tenantId) { + WxTagsGroupVo filter = new WxTagsGroupVo(); - filter.setTypes(types); + filter.setId(EnumTagGroup.ID_10.getCode()); + filter.setName(EnumTagGroup.ID_10.getMessage()); + + List types = new ArrayList<>(); + types.add(generateType50()); + types.add(generateType51(tenantId)); + types.add(generateType52()); + filter.setTypes(types); List listVo =wxTagsService.listAllVo(); listVo.add(0,filter); return listVo; @@ -321,11 +382,7 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { @Override public List listByFilterList(String tenantId, List filterList) { HashSet 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); } diff --git a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml index d0dab7dbe..8953a0f5f 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml @@ -356,6 +356,14 @@ and cu.create_date <= #{endTime} + + and cu.birthdate >= #{birthStartTime} + + + + and cu.birthdate < #{birthEndTime} + + and cu.poins >= #{levelStartScore}