From edc67ca99090fe4fc6a81112ccc28aab041e4131 Mon Sep 17 00:00:00 2001 From: hupeng Date: Tue, 16 Apr 2019 16:23:24 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=9A=E5=91=98][=E6=96=B0=E5=A2=9E]:?= =?UTF-8?q?=E4=BC=9A=E5=91=98=E5=A4=9A=E6=9D=A1=E4=BB=B6=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E5=99=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WxCUserBasicInfoController.java | 7 + .../iformall/controller/WxTagsController.java | 34 +-- .../controller/WxUserStructureController.java | 2 +- .../domain/dto/WxCUserBasicInfoDto.java | 14 +- .../domain/dto/WxCUserBasicInfoFilterDto.java | 39 ++++ .../java/com/iformall/domain/po/WxTags.java | 6 +- .../main/java/com/iformall/enums/EnumTag.java | 11 + .../java/com/iformall/enums/EnumTagGroup.java | 1 + .../java/com/iformall/enums/EnumTagType.java | 5 + .../mapper/WxCUserBasicInfoMapper.java | 4 + .../com/iformall/mapper/WxTagsMapper.java | 1 - .../service/WxCUserBasicInfoService.java | 8 + .../com/iformall/service/WxTagsService.java | 5 +- .../impl/WxCUserBasicInfoServiceImpl.java | 200 +++++++++++++++++- .../impl/WxLevelConfigServiceImpl.java | 1 - .../service/impl/WxTagsServiceImpl.java | 43 ++++ .../mapper/WxCUserBasicInfoMapper.xml | 53 +++++ .../main/resources/mapper/WxTagsMapper.xml | 10 +- 18 files changed, 394 insertions(+), 50 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoFilterDto.java diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java index 38c7240b4..ccd81a7ad 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxCUserBasicInfoController.java @@ -467,4 +467,11 @@ public class WxCUserBasicInfoController extends BaseController { } return new ResultData(wxCUserBasicInfo); } + + @ApiOperation("获取会员过滤器") + @GetMapping("/listFilter") + public ResultData listFilter() { + logger.debug("[" + getIpAddr() + "] WxCUserBasicInfoController::listFilter"); + return new ResultData(wxCUserBasicInfoService.listFilters(getTenantId())); + } } \ No newline at end of file diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxTagsController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxTagsController.java index d01dd569b..b6dc11f35 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxTagsController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxTagsController.java @@ -37,11 +37,6 @@ public class WxTagsController extends BaseController { @Autowired private WxTagsService wxTagsService; - @Autowired - private WxTagsGroupService wxTagsGroupService; - - @Autowired - private WxTagsTypeService wxTagsTypeService; @Autowired private WxCUserTagsService wxCUserTagsService; @@ -50,34 +45,7 @@ public class WxTagsController extends BaseController { @ApiOperation("标签弹窗接口") public ResultData getAllList() { logger.debug("[" + getIpAddr() + "] WxTagsController::getAllList"); - List groupVos = new ArrayList<>(); - List groups = wxTagsGroupService.findList(null); - for(WxTagsGroup tg:groups) { - WxTagsGroupVo tgvo =new WxTagsGroupVo(); - tgvo.setId(tg.getId()); - tgvo.setName(tg.getName()); - - WxTagsType type = new WxTagsType(); - type.setGroupId(tg.getId()); - List typeVos =new ArrayList<>(); - List types = wxTagsTypeService.findList(type); - for(WxTagsType tt:types) { - WxTagsTypeVo ttvo = new WxTagsTypeVo(); - ttvo.setId(tt.getId()); - ttvo.setName(tt.getName()); - ttvo.setFlag(tt.getFlag()); - ttvo.setGroupId(tg.getId()); - ttvo.setGroupName(tg.getName()); - - WxTags t = new WxTags(); - t.setTypeId(tt.getId()); - ttvo.setTags(wxTagsService.findList(t)); - typeVos.add(ttvo); - } - tgvo.setTypes(typeVos); - groupVos.add(tgvo); - } - return new ResultData(groupVos); + return new ResultData(wxTagsService.listAllVo()); } @ApiOperation("查询微信用户人群") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java index 430605911..b8c1fe47f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java @@ -134,7 +134,7 @@ public class WxUserStructureController extends BaseController { WxLevelConfig other = new WxLevelConfig(); //没有等级的会员 - other.setLevel("无"); + other.setLevel("普通会员"); WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto(); other.setCount(wxCUserBasicInfoService.findCount(dto) - levelList.stream().map(WxLevelConfig::getCount).reduce(Long::sum).orElse(0L)); diff --git a/mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoDto.java b/mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoDto.java index 903032bd2..cdcec0372 100644 --- a/mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoDto.java +++ b/mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoDto.java @@ -2,6 +2,7 @@ package com.iformall.domain.dto; import java.io.Serializable; import java.util.Date; +import java.util.List; import javax.persistence.Id; import javax.persistence.Transient; @@ -45,12 +46,16 @@ public class WxCUserBasicInfoDto implements Serializable{ @Transient private Integer levelStartScore; + @Transient private Integer levelEndScore; @Transient private Integer sex; + @Transient + List tagIds; + public Long getId() { return id; } @@ -140,5 +145,12 @@ public class WxCUserBasicInfoDto implements Serializable{ public void setLevelStartScore(Integer levelStartScore) { this.levelStartScore = levelStartScore; } - + + public List getTagIds() { + return tagIds; + } + + public void setTagIds(List tagIds) { + this.tagIds = tagIds; + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoFilterDto.java b/mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoFilterDto.java new file mode 100644 index 000000000..356bbe9e6 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoFilterDto.java @@ -0,0 +1,39 @@ +package com.iformall.domain.dto; + +import javax.persistence.Id; +import javax.persistence.Transient; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 用户查询dto + * @author jinguo + * + */ +public class WxCUserBasicInfoFilterDto implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = -1116465873573690766L; + + Long typeId; + Long id; + + public Long getTypeId() { + return typeId; + } + + public void setTypeId(Long typeId) { + this.typeId = typeId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } +} diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxTags.java b/mallinkService/src/main/java/com/iformall/domain/po/WxTags.java index ded19006f..1d1cdaf4e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxTags.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxTags.java @@ -54,11 +54,11 @@ public class WxTags implements Serializable { @Transient - protected long count; - public long getCount() { + protected Long count; + public Long getCount() { return count; } - public void setCount(long count) { + public void setCount(Long count) { this.count = count; } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTag.java b/mallinkService/src/main/java/com/iformall/enums/EnumTag.java index 9c499b69b..476076827 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTag.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTag.java @@ -175,6 +175,17 @@ public enum EnumTag { ID_142(142L, EnumTagType.ID_17,"面包店"), ID_143(143L, EnumTagType.ID_17,"咖啡厅"), ID_144(144L, EnumTagType.ID_17,"饮品店"), + + + + + ID_1000(1000L, EnumTagType.ID_50,"一天以内"), + ID_1001(1001L, EnumTagType.ID_50,"一周以内"), + ID_1002(1002L, EnumTagType.ID_50,"一月以内"), + ID_1003(1003L, EnumTagType.ID_50,"一季度以内"), + ID_1004(1004L, EnumTagType.ID_50,"一年以内"), + ID_1005(1005L, EnumTagType.ID_50,"五年以内"), + ID_1006(1006L, EnumTagType.ID_50,"五年以上"), ; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java b/mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java index 52a354b86..b9b4aff07 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTagGroup.java @@ -10,6 +10,7 @@ public enum EnumTagGroup { ID_3(3L, "消费偏好"), ID_4(4L, "行为偏好"), + ID_10(10L, "会员属性"), ; public static EnumTagGroup getEnum(Long code) { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java b/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java index 190816e4a..92292dcef 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumTagType.java @@ -31,6 +31,11 @@ public enum EnumTagType { ID_24(24L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_4, "会员性格"), ID_25(25L, EnumTagTypeFlag.FLAG_NORMAL, EnumTagGroup.ID_4, "爱好"), ID_26(26L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_4, "生活半径"), + + + ID_50(50L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员会龄"), + ID_51(51L, EnumTagTypeFlag.FLAG_SINGLE, EnumTagGroup.ID_10, "会员等级"), + ; public static EnumTagType getEnum(Long code) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java index 6c2baeb62..0868b8778 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java @@ -10,6 +10,10 @@ import java.util.List; public interface WxCUserBasicInfoMapper extends CommonMapper { + long findCountByFilter(WxCUserBasicInfoDto dto); + + List findListByFilter(WxCUserBasicInfoDto dto); + List findList(WxCUserBasicInfo wxCUserBasicInfo); void updateScore(WxCUserBasicInfo record); diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxTagsMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxTagsMapper.java index ede14b761..9a5c7b039 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxTagsMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxTagsMapper.java @@ -10,5 +10,4 @@ public interface WxTagsMapper extends CommonMapper { List findList(WxTags wxTags); List findListAll(); - List getByName(String name); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java index edd76be97..6d9be3227 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserBasicInfoService.java @@ -7,12 +7,20 @@ import com.iformall.domain.po.WxCUserBasicInfo; import com.iformall.domain.po.WxCarPayRecord; import com.iformall.domain.po.WxTags; import com.iformall.domain.vo.CUserBaseInfoT; +import com.iformall.domain.vo.WxTagsGroupVo; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; public interface WxCUserBasicInfoService { + /** + * 根据租户ID获取会员过滤器列表 + * + * @return + */ + + List listFilters(String tenentId); /** * 根据实体查询分页列表 diff --git a/mallinkService/src/main/java/com/iformall/service/WxTagsService.java b/mallinkService/src/main/java/com/iformall/service/WxTagsService.java index 1e7d14c2b..b1696f6ed 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxTagsService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxTagsService.java @@ -3,6 +3,7 @@ package com.iformall.service; import java.util.*; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxTags; +import com.iformall.domain.vo.WxTagsGroupVo; public interface WxTagsService { @@ -39,5 +40,7 @@ public interface WxTagsService { void deleteById(Long id); List findList(WxTags wxTags); - + + List listAllVo(); + } 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 97264a0b7..b2d912ffc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -6,17 +6,17 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.IdWorker; import com.iformall.domain.dto.WxCUserBasicInfoDto; + +import com.iformall.domain.dto.WxCUserBasicInfoFilterDto; import com.iformall.domain.po.*; -import com.iformall.domain.vo.CUserBaseInfoT; -import com.iformall.domain.vo.CUserBaseVo; -import com.iformall.domain.vo.CUserTagVo; -import com.iformall.domain.vo.WxCUserBasicInfoVo; -import com.iformall.enums.EnumScoreType; +import com.iformall.domain.vo.*; +import com.iformall.enums.*; -import com.iformall.enums.EnumUserType; import com.iformall.mapper.*; import com.iformall.service.*; + import org.apache.commons.lang3.StringUtils; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -25,8 +25,11 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -59,13 +62,196 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { @Autowired WxCarPayRecordMapper wxCarPayRecordMapper; - @Autowired ExcelService excelService; @Autowired WxCreditHistoryService wxCreditHistoryService; + @Autowired + WxLevelConfigService wxLevelConfigService; + + @Autowired + WxTagsService wxTagsService; + + private final static List memberTimeList = new ArrayList( + Arrays.asList( + new WxTags(){{ + setName(EnumTag.ID_1000.getMessage()); + setId(EnumTag.ID_1000.getCode()); + }}, + new WxTags(){{ + setName(EnumTag.ID_1001.getMessage()); + setId(EnumTag.ID_1001.getCode()); + }}, + new WxTags(){{ + setName(EnumTag.ID_1002.getMessage()); + setId(EnumTag.ID_1002.getCode()); + }}, + new WxTags(){{ + setName(EnumTag.ID_1003.getMessage()); + setId(EnumTag.ID_1003.getCode()); + }}, + new WxTags(){{ + setName(EnumTag.ID_1004.getMessage()); + setId(EnumTag.ID_1004.getCode()); + }}, + new WxTags(){{ + setName(EnumTag.ID_1005.getMessage()); + setId(EnumTag.ID_1005.getCode()); + }}, + new WxTags(){{ + setName(EnumTag.ID_1006.getMessage()); + setId(EnumTag.ID_1006.getCode()); + }} + ) + ); + + private final static String RANGE_START = "rangeStart"; + private final static String RANGE_END = "rangeEnd"; + + private final static Map> memberTimeMap + = new HashMap>() { + { + put(EnumTag.ID_1000.getCode(), + new HashMap(){{ + put(RANGE_START,0L); + put(RANGE_END,1L); + }}); + put(EnumTag.ID_1001.getCode(), + new HashMap(){{ + put(RANGE_START,1L); + put(RANGE_END,7L); + }}); + put(EnumTag.ID_1002.getCode(), + new HashMap(){{ + put(RANGE_START,7L); + put(RANGE_END,30L); + }}); + put(EnumTag.ID_1003.getCode(), + new HashMap(){{ + put(RANGE_START,30L); + put(RANGE_END,90L); + }}); + put(EnumTag.ID_1004.getCode(), + new HashMap(){{ + put(RANGE_START,90L); + put(RANGE_END,365L); + }}); + put(EnumTag.ID_1005.getCode(), + new HashMap(){{ + put(RANGE_START,365L); + put(RANGE_END,365*5L); + }}); + put(EnumTag.ID_1006.getCode(), + new HashMap(){{ + put(RANGE_START,365*5L); + }}); + } + }; + + + private WxCUserBasicInfoDto filtersToDto(String tenentId, List filterList){ + WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto(); + dto.setTagIds(new ArrayList<>()); + List levels = wxLevelConfigService.getByTenantId(tenentId); + filterList.stream().forEach(f->{ + + switch(EnumTagType.getEnum(f.getTypeId())) { + case ID_50: + ZoneId zone = ZoneId.systemDefault(); + Long rangeStart = memberTimeMap.get(f.getId()).get(RANGE_START); + Long rangeEnd = memberTimeMap.get(f.getId()).get(RANGE_END); + + if (rangeEnd != null){ + LocalDateTime localDateTimeStart = LocalDateTime.now().minusDays(rangeEnd); + dto.setStartTime(Date.from(localDateTimeStart.atZone(zone).toInstant())); + } + + if (rangeStart != null) { + LocalDateTime localDateTimeEnd = LocalDateTime.now().minusDays(rangeStart); + dto.setEndTime(Date.from(localDateTimeEnd.atZone(zone).toInstant())); + } + break; + case ID_51: + for (int i=0;i filterList) { + return wxCUserBasicInfoMapper.findCountByFilter(filtersToDto(tenantId,filterList)); + } + + public List listByFilter(String tenantId, List filterList) { + return wxCUserBasicInfoMapper.findListByFilter(filtersToDto(tenantId,filterList)); + } + + + 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()); + + List tagsMemberLevel = new ArrayList<>(); + List levels = wxLevelConfigService.getByTenantId(tenentId); + + WxTags wxTagsBase = new WxTags(); + wxTagsBase.setName("普通会员"); + wxTagsBase.setId(0L); + tagsMemberLevel.add(wxTagsBase); + + levels.stream().forEach(l->{ + WxTags wxTags = new WxTags(); + wxTags.setName(l.getLevel()); + wxTags.setId(l.getId()); + tagsMemberLevel.add(wxTags); + }); + + typeMemberLevel.setTags(tagsMemberLevel); + + types.add(typeMemberLevel); + + filter.setTypes(types); + + List listVo =wxTagsService.listAllVo(); + listVo.add(0,filter); + return listVo; + } + @Override public PageInfo listAsPage(WxCUserBasicInfo record, Integer pageIndex, Integer pageSize) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java index 7b535873a..918b8ad07 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java @@ -164,7 +164,6 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { return jo.getLong(CAPABILITY_SEND_CAR_COUPON); } - @Override public void deleteById(Long id) { wxLevelConfigMapper.deleteByPrimaryKey(id); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxTagsServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxTagsServiceImpl.java index 68b3189a5..8f35a67cd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxTagsServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxTagsServiceImpl.java @@ -4,8 +4,14 @@ import java.util.*; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.domain.po.WxTags; +import com.iformall.domain.po.WxTagsGroup; +import com.iformall.domain.po.WxTagsType; +import com.iformall.domain.vo.WxTagsGroupVo; +import com.iformall.domain.vo.WxTagsTypeVo; import com.iformall.mapper.WxTagsMapper; +import com.iformall.service.WxTagsGroupService; import com.iformall.service.WxTagsService; +import com.iformall.service.WxTagsTypeService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -19,6 +25,12 @@ public class WxTagsServiceImpl implements WxTagsService { @Autowired WxTagsMapper wxTagsMapper; + @Autowired + private WxTagsTypeService wxTagsTypeService; + + @Autowired + private WxTagsGroupService wxTagsGroupService; + @Override public PageInfo listAsPage(WxTags record, Integer pageIndex, Integer pageSize) { @@ -51,4 +63,35 @@ public class WxTagsServiceImpl implements WxTagsService { public List findList(WxTags wxTags) { return wxTagsMapper.findList(wxTags); } + + @Override + public List listAllVo() { + List groupVos = new ArrayList<>(); + List groups = wxTagsGroupService.findList(null); + for (WxTagsGroup tg : groups) { + WxTagsGroupVo tgvo = new WxTagsGroupVo(); + tgvo.setId(tg.getId()); + tgvo.setName(tg.getName()); + + WxTagsType type = new WxTagsType(); + type.setGroupId(tg.getId()); + List typeVos = new ArrayList<>(); + List types = wxTagsTypeService.findList(type); + for (WxTagsType tt : types) { + WxTagsTypeVo ttvo = new WxTagsTypeVo(); + ttvo.setId(tt.getId()); + ttvo.setName(tt.getName()); + ttvo.setFlag(tt.getFlag()); + + WxTags t = new WxTags(); + t.setTypeId(tt.getId()); + ttvo.setTags(findList(t)); + typeVos.add(ttvo); + } + tgvo.setTypes(typeVos); + groupVos.add(tgvo); + } + return groupVos; + } + } diff --git a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml index 94207a413..0f88e66e2 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml @@ -337,4 +337,57 @@ + + + where 1=1 + + and tenant_id =#{tenantId} + + + + and create_date >= #{startTime} + + + and create_date <= #{endTime} + + + + and poins >= #{levelStartScore} + + and poins < #{levelEndScore} + + + + + and (poins is null or + (poins >= #{levelStartScore} + + and poins < #{levelEndScore} + + )) + + + + + + and #{idItem} in cut.tags + + + order by ${sortColumns} + + + + + + diff --git a/mallinkService/src/main/resources/mapper/WxTagsMapper.xml b/mallinkService/src/main/resources/mapper/WxTagsMapper.xml index ccabccc2b..f0a8a316c 100644 --- a/mallinkService/src/main/resources/mapper/WxTagsMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxTagsMapper.xml @@ -14,6 +14,10 @@ `id`,`name`,`group_id`,`group_name`,`type_id`,`type_name` + + `id`,`name` + + where 1 = 1 @@ -52,7 +56,7 @@ @@ -65,6 +69,8 @@