From 49d64b427ec8efab676225d69d75d22345db8a31 Mon Sep 17 00:00:00 2001 From: hupeng Date: Tue, 6 Nov 2018 16:21:53 +0800 Subject: [PATCH] =?UTF-8?q?[A=E7=AB=AF][=E6=96=B0=E5=A2=9E]:=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=94=A8=E6=88=B7=E6=9D=A5=E6=BA=90=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxUserStructureController.java | 55 +++++++++++++++++++ .../com/iformall/domain/po/WxUserChannel.java | 9 +++ .../com/iformall/mapper/WxCUserMapper.java | 1 + .../com/iformall/service/WxCUserService.java | 2 +- .../service/impl/WxCUserServiceImpl.java | 4 ++ .../main/resources/mapper/WxCUserMapper.xml | 18 ++++++ 6 files changed, 88 insertions(+), 1 deletion(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java index c7a35d85b..2177f57d3 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxUserStructureController.java @@ -448,6 +448,61 @@ public class WxUserStructureController extends BaseController { return new ResultData(page); } + @ApiOperation("获取用户所有渠道") + @GetMapping("/findUserStructureByChannel") + public ResultData findUserStructureByChannel(@ModelAttribute WxCUser wxCUser) { + + List channelStructureList = new ArrayList<>(); + List senceStructureList = new ArrayList<>(); + + List channels = wxUserChannelService.findDistinctChannel(); + for (WxUserChannel w : channels) { + WxUserChannel c = new WxUserChannel(); + c.setChannelName(w.getChannelName()); + PageInfo page = wxUserChannelService.listAsPage(c, 1, 1000); + if (page.getSize() > 0) { + List sceneList = new ArrayList<>(); + for (WxUserChannel uc : page.getList()) { + List scene = new ArrayList<>(); + scene.add(uc.getSceneAddress()); + wxCUser.setSceneList(scene); + WxUserChannel senceStructure = new WxUserChannel(); + senceStructure.setDescription(uc.getDescription()); + senceStructure.setCount(wxCUserService.countByChannel(wxCUser)); + senceStructureList.add(senceStructure); + sceneList.add(uc.getSceneAddress()); + } + + wxCUser.setSceneList(sceneList); + WxUserChannel channelStructure = new WxUserChannel(); + channelStructure.setChannelName(w.getChannelName()); + channelStructure.setCount(wxCUserService.countByChannel(wxCUser)); + channelStructureList.add(channelStructure); + } + } + + HashMap result = new HashMap(); + Collections.sort(senceStructureList, new Comparator() { + @Override + public int compare(WxUserChannel c1, WxUserChannel c2) { + long diff = c1.getCount() - c2.getCount(); + if (diff > 0) { + return -1; + } + else if (diff < 0) { + return 1; + } + return 0; + } + }); + + result.put("channelList",channelStructureList); + result.put("senceList",senceStructureList.subList(0,10)); + return new ResultData(result); + } + + + @ApiOperation("获取用户所有渠道") @GetMapping("/findAllUserChannel") public ResultData findAllUserChannel() { diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxUserChannel.java b/mallinkService/src/main/java/com/iformall/domain/po/WxUserChannel.java index 134ebc943..395a69dcb 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxUserChannel.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxUserChannel.java @@ -68,7 +68,16 @@ public class WxUserChannel implements Serializable { description = _description; } + @Transient + protected long count; + 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/WxCUserMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java index 70ae3c9a7..00fe3c653 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxCUserMapper.java @@ -21,4 +21,5 @@ public interface WxCUserMapper extends CommonMapper { List listByChannel(WxCUser wxCUser); + long countByChannel(WxCUser wxCUser); } diff --git a/mallinkService/src/main/java/com/iformall/service/WxCUserService.java b/mallinkService/src/main/java/com/iformall/service/WxCUserService.java index 2eaad11b7..98137dde9 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCUserService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCUserService.java @@ -74,7 +74,7 @@ public interface WxCUserService { */ PageInfo listByChannel(WxCUser user, Integer pageIndex, Integer pageSize); - + long countByChannel(WxCUser user); /** * 计算当前用户成长值 */ 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 4fb8573cd..789ccc1e8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCUserServiceImpl.java @@ -98,6 +98,10 @@ public class WxCUserServiceImpl implements WxCUserService { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxCUserMapper.listByChannel(user)); } + @Override + public long countByChannel(WxCUser user) { + return wxCUserMapper.countByChannel(user); + } @Override public void scoreCalculate(WxCUser user, boolean isNew) { diff --git a/mallinkService/src/main/resources/mapper/WxCUserMapper.xml b/mallinkService/src/main/resources/mapper/WxCUserMapper.xml index 1fa09fe23..7ca2710a2 100644 --- a/mallinkService/src/main/resources/mapper/WxCUserMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCUserMapper.xml @@ -218,5 +218,23 @@ order by create_date desc +