diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java index 23aaacdaf..f61280b5f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java @@ -4,11 +4,14 @@ import com.github.pagehelper.PageInfo; import com.iformall.common.ResultData; import com.iformall.domain.dto.WxCUserBasicInfoDto; import com.iformall.domain.po.WxCUser; +import com.iformall.domain.po.WxLevelConfig; import com.iformall.domain.po.WxUserChannel; import com.iformall.domain.vo.UserStructureVo; import com.iformall.enums.EnumAgeInfo; +import com.iformall.enums.EnumCUserBaseInfoSex; import com.iformall.service.WxCUserBasicInfoService; import com.iformall.service.WxCUserService; +import com.iformall.service.WxLevelConfigService; import com.iformall.service.WxUserChannelService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -38,27 +41,28 @@ public class WxUserStructureController extends BaseController { @Autowired private WxCUserService wxCUserService; + + @Autowired + private WxLevelConfigService wxLevelConfigService; + @Autowired private WxUserChannelService wxUserChannelService; + /***************************会员结构*****************************/ + @ApiOperation("查询会员性别结构") @GetMapping("/findUserSexStructure") public ResultData findUserSexStructure(Date startTime, Date endTime) { WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto(); dto.setTenantId(getTenantId()); dto.setStartTime(startTime); -// if (endTime != null) { -// Calendar c = Calendar.getInstance(); -// c.setTime(endTime); -// c.add(Calendar.DAY_OF_YEAR, 1); -// endTime = c.getTime(); -// } + dto.setEndTime(endTime); //保密 - dto.setSex(0); + dto.setSex(EnumCUserBaseInfoSex.UNKNOWN.getCode()); long secrecy = wxCUserBasicInfoService.findCountBySex(dto); - dto.setSex(1); + dto.setSex(EnumCUserBaseInfoSex.MALE.getCode()); long boy = wxCUserBasicInfoService.findCountBySex(dto); - dto.setSex(2); + dto.setSex(EnumCUserBaseInfoSex.FEMALE.getCode()); long girl = wxCUserBasicInfoService.findCountBySex(dto); Long all = secrecy + boy + girl; List vos = new ArrayList<>(); @@ -74,12 +78,6 @@ public class WxUserStructureController extends BaseController { WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto(); dto.setTenantId(getTenantId()); dto.setStartTime(startTime); -// if (endTime != null) { -// Calendar c = Calendar.getInstance(); -// c.setTime(endTime); -// c.add(Calendar.DAY_OF_YEAR, 1); -// endTime = c.getTime(); -// } dto.setEndTime(endTime); long all = wxCUserBasicInfoService.findCount(dto); List vos = new ArrayList<>(); @@ -96,6 +94,47 @@ public class WxUserStructureController extends BaseController { return new ResultData(vos); } + @ApiOperation("查询会员积分结构") + @GetMapping("/findUserLevelStructure") + public ResultData findUserLevelStructure(Date startTime, Date endTime) { + + WxLevelConfig wxLevelConfig = new WxLevelConfig(); + wxLevelConfig.setTenantId(getTenantId()); + wxLevelConfig.setSortColumns(WxLevelConfig.Field.Points_ASC); + List levelList = wxLevelConfigService.findList(wxLevelConfig); + + for( int i = 0; i < levelList.size(); i++) { + + WxCUserBasicInfoDto dto = new WxCUserBasicInfoDto(); + dto.setTenantId(getTenantId()); + dto.setStartTime(startTime); + dto.setEndTime(endTime); + if (i == 0) { + dto.setLevelEndScore(levelList.get(i).getPoints()); + } else if (i == levelList.size()-1) { + dto.setLevelStartScore(levelList.get(i).getPoints()); + } else{ + dto.setLevelStartScore(levelList.get(i).getPoints()); + dto.setLevelEndScore(levelList.get(i+1).getPoints()); + } + + long all = wxCUserBasicInfoService.findCountByScore(dto); + + //null积分算最低级会员 + if (i == 0){ + dto.setLevelStartScore(null); + dto.setLevelEndScore(null); + all += wxCUserBasicInfoService.findCountByScore(dto); + } + + levelList.get(i).setCount(all); + } + return new ResultData(levelList); + } + + + + /********************************会员数据**************************************/ @ApiOperation("查询会员数量") @GetMapping("/findUserDataCount") public ResultData findUserCount(Date startTime, Date endTime) { 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 8e5e3c093..903032bd2 100644 --- a/mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoDto.java +++ b/mallinkService/src/main/java/com/iformall/domain/dto/WxCUserBasicInfoDto.java @@ -39,9 +39,15 @@ public class WxCUserBasicInfoDto implements Serializable{ @Transient private Date birthStartTime; + @Transient private Date birthEndTime; + @Transient + private Integer levelStartScore; + @Transient + private Integer levelEndScore; + @Transient private Integer sex; @@ -117,5 +123,22 @@ public class WxCUserBasicInfoDto implements Serializable{ this.phone = phone; } + + public Integer getLevelEndScore() { + return levelEndScore; + } + + public void setLevelEndScore(Integer levelEndScore) { + this.levelEndScore = levelEndScore; + } + + public Integer getLevelStartScore() { + + return levelStartScore; + } + + public void setLevelStartScore(Integer levelStartScore) { + this.levelStartScore = levelStartScore; + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxLevelConfig.java b/mallinkService/src/main/java/com/iformall/domain/po/WxLevelConfig.java index 2a10a1b97..1b946062e 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxLevelConfig.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxLevelConfig.java @@ -56,6 +56,12 @@ public class WxLevelConfig implements Serializable { /*租户id**/ @io.swagger.annotations.ApiModelProperty(value="租户id",name="tenantId") private String tenantId; + + + @Transient + protected Long count; + + public Integer getPoints() { return points; } @@ -87,7 +93,13 @@ public class WxLevelConfig implements Serializable { tenantId = _tenantId; } + public Long getCount() { + return count; + } + public void setCount(Long count) { + this.count = count; + } public static enum Field { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java index 8f3c4e361..3473ed8a2 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserBasicInfoMapper.java @@ -19,6 +19,8 @@ public interface WxCUserBasicInfoMapper extends CommonMapper findList(WxLevelConfig record); } 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 4322bf0a2..e2aa3cca0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserBasicInfoServiceImpl.java @@ -140,6 +140,11 @@ public class WxCUserBasicInfoServiceImpl implements WxCUserBasicInfoService { return wxCUserBasicInfoMapper.findCountByAge(dto); } + @Override + public long findCountByScore(WxCUserBasicInfoDto dto) { + return wxCUserBasicInfoMapper.findCountByScore(dto); + } + @Override public void exportData(HttpServletRequest request, HttpServletResponse response, String tenantId) { WxCUserBasicInfo basicInfoQ = new WxCUserBasicInfo(); 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 9402a099c..bfaff793c 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxLevelConfigServiceImpl.java @@ -25,6 +25,11 @@ public class WxLevelConfigServiceImpl implements WxLevelConfigService { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxLevelConfigMapper.findList(record)); } + @Override + public List findList(WxLevelConfig record){ + return wxLevelConfigMapper.findList(record); + } + @Override public List getByTenantId(String tenantId) { WxLevelConfig wxLevelConfig = new WxLevelConfig(); diff --git a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml index db24090d7..8e3fa71ab 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml @@ -21,7 +21,7 @@ `id`,`phone`,`birthdate`,`education`,`sex`,`email`,`address`,`poins`,`tag_id`, - `create_date`,`update_date`,`tenant_id`,`name`, level, nick_name + `create_date`,`update_date`,`tenant_id`,`name`,`level`,`nick_name` @@ -153,7 +153,34 @@ - + + +