From 901c797135ff4abd93ad3dbc7402adfe2e70f510 Mon Sep 17 00:00:00 2001 From: hupeng Date: Thu, 20 Sep 2018 18:06:12 +0800 Subject: [PATCH] =?UTF-8?q?[A=E7=AB=AF][=E4=BF=AE=E6=94=B9]:=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E7=B3=BB=E7=BB=9F=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxUserStructureController.java | 45 ++++++++++--------- .../java/com/iformall/domain/po/WxCUser.java | 13 +++++- .../java/com/iformall/enums/EnumAgeInfo.java | 3 +- .../com/iformall/mapper/WxCUserMapper.java | 2 +- .../com/iformall/service/WxCUserService.java | 2 +- .../service/impl/WxCUserServiceImpl.java | 4 +- .../mapper/WxCUserBasicInfoMapper.xml | 21 ++++++--- .../main/resources/mapper/WxCUserMapper.xml | 5 ++- 8 files changed, 61 insertions(+), 34 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java index a79974655..20615e30a 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java @@ -55,11 +55,11 @@ public class WxUserStructureController extends BaseController { } //保密 dto.setSex(0); - long secrecy = getCount(dto); + long secrecy = wxCUserBasicInfoService.findCountBySex(dto); dto.setSex(1); - long boy = getCount(dto); + long boy = wxCUserBasicInfoService.findCountBySex(dto); dto.setSex(2); - long girl = getCount(dto); + long girl = wxCUserBasicInfoService.findCountBySex(dto); Long all = secrecy + boy + girl; List vos = new ArrayList<>(); vos.add(getVo(boy, all, "男", 1)); @@ -81,7 +81,7 @@ public class WxUserStructureController extends BaseController { endTime = c.getTime(); } dto.setEndTime(endTime); - long all = wxCUserBasicInfoService.findCountByAge(dto); + long all = wxCUserBasicInfoService.findCount(dto); List vos = new ArrayList<>(); Calendar c = Calendar.getInstance(); for (EnumAgeInfo a : EnumAgeInfo.values()) { @@ -135,7 +135,7 @@ public class WxUserStructureController extends BaseController { UserStructureVo vo = new UserStructureVo(); vo.setSortNum(j); j++; - vo.setName(new SimpleDateFormat("MM-dd").format(dto.getStartTime())); + vo.setName(new SimpleDateFormat("MM/dd").format(dto.getStartTime())); vo.setCount(count); wxnewCountVos.add(vo); } @@ -209,7 +209,7 @@ public class WxUserStructureController extends BaseController { UserStructureVo vo = new UserStructureVo(); vo.setSortNum(j); j++; - vo.setName(new SimpleDateFormat("MM-dd").format(dto.getStartTime())); + vo.setName(new SimpleDateFormat("MM/dd").format(dto.getStartTime())); vo.setCount(count); newCountVos.add(vo); } @@ -278,15 +278,17 @@ public class WxUserStructureController extends BaseController { } } } - PageInfo page = wxCUserService.listByChannel(sceneList, pageNum, pageSize); + PageInfo page = wxCUserService.listByChannel(getTenantId(), sceneList, pageNum, pageSize); for (WxCUser u : page.getList()) { WxUserChannel c = new WxUserChannel(); c.setSceneAddress(u.getSceneAddress()); PageInfo uc = wxUserChannelService.listAsPage(c, 1, 1); if (uc.getSize() > 0) { u.setChannelName(uc.getList().get(0).getChannelName()); + u.setSceneDescription(uc.getList().get(0).getDescription()); } else { u.setChannelName("其他来源"); + u.setSceneDescription("不详"); } } @@ -306,23 +308,22 @@ public class WxUserStructureController extends BaseController { private long getCountByAge(EnumAgeInfo a, Calendar c, WxCUserBasicInfoDto dto) { - c.add(Calendar.YEAR, -a.getEnd()); - Date startTime = c.getTime(); - c.clear(); - c.setTime(startTime); - c.add(Calendar.YEAR, a.getEnd() - a.getStart()); - Date endTime = c.getTime(); - dto.setBirthStartTime(startTime); - dto.setBirthEndTime(endTime); - return wxCUserBasicInfoService.findCountByAge(dto); - } + if (a.getStart() != 0 || a.getEnd() != 0) { + c.add(Calendar.YEAR, -a.getEnd()); + Date startTime = c.getTime(); + c.clear(); + c.setTime(startTime); + c.add(Calendar.YEAR, a.getEnd() - a.getStart()); + Date endTime = c.getTime(); + dto.setBirthStartTime(startTime); + dto.setBirthEndTime(endTime); + } else { + dto.setBirthStartTime(null); + dto.setBirthEndTime(null); + } - //通过性别获取数量 - private long getCount(WxCUserBasicInfoDto dto) { - // wxCUserBasicInfoService.findCountBySex(dto) basic表与cuser表示对应的,先有cuser 才有basic - //所有这里不需要再去查basic - return wxCUserService.findCount(dto); + return wxCUserBasicInfoService.findCountByAge(dto); } private UserStructureVo getVo(long count, long all, String name, Integer num) { diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java index 1a756131a..21a81d0da 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCUser.java @@ -21,7 +21,10 @@ public class WxCUser implements Serializable { protected List ids; @Transient protected String sortColumns; - + @Transient + protected String sceneDescription; + + public Long getId() { return id; } @@ -308,6 +311,14 @@ public class WxCUser implements Serializable { this.loginCount = loginCount; } + public String getSceneDescription() { + return sceneDescription; + } + + public void setSceneDescription(String sceneDescription) { + this.sceneDescription = sceneDescription; + } + public static enum Field { Id_ASC("`id` ASC"),Id_DESC("`id` DESC") diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumAgeInfo.java b/mallinkService/src/main/java/com/iformall/enums/EnumAgeInfo.java index 35e01eaba..f873d8fac 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumAgeInfo.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumAgeInfo.java @@ -7,7 +7,8 @@ public enum EnumAgeInfo { FOURTH_SLOT(4,35,44,"35岁-44岁"), FIFTH_SLOT(5,45,54,"45岁-54岁"), SIXTH_SLOT(6,54,60,"55岁-60岁"), - SEVENTH_SLOT(7,60,200,"60岁以上") + SEVENTH_SLOT(7,60,200,"60岁以上"), + UNKNOWN(8,0,0,"不详") ; private EnumAgeInfo(Integer sortNum,Integer start,Integer end,String desc) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java index b3a7d98ed..f1371fcbe 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java @@ -20,6 +20,6 @@ public interface WxCUserMapper extends CommonMapper { long findCount(WxCUserBasicInfoDto dto); - List listByChannel(@Param("sceneList")List sceneList); + List listByChannel(@Param("sceneList")List sceneList, @Param("tenantId")String tenantId); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserService.java index ff57f70ab..1a5dde0f5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserService.java @@ -71,7 +71,7 @@ public interface WxCUserService { * @param pageSize * @return */ - PageInfo listByChannel(List sceneList, Integer pageIndex, Integer pageSize); + PageInfo listByChannel(String tenantId, List sceneList, Integer pageIndex, Integer pageSize); /** diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java index 3098d5264..ffffb9819 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java @@ -80,8 +80,8 @@ public class WxCUserServiceImpl implements WxCUserService { } @Override - public PageInfo listByChannel(List sceneList, Integer pageIndex, Integer pageSize) { - return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserMapper.listByChannel(sceneList)); + public PageInfo listByChannel(String tenantId, List sceneList, Integer pageIndex, Integer pageSize) { + return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserMapper.listByChannel(sceneList, tenantId)); } diff --git a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml index 89b107c62..82b44ce71 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserBasicInfoMapper.xml @@ -110,18 +110,22 @@ - select id,nick_name,phone,create_date,scene_address from wx_c_user where 1=1 + + and tenant_id =#{tenantId} + and scene_address in