AdminStatisticsHandler.java 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  1. package com.iamberry.wechat.handles.statistics;
  2. import java.net.URLDecoder;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import javax.servlet.http.HttpServletRequest;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.web.bind.annotation.RequestMapping;
  9. import org.springframework.web.bind.annotation.RequestParam;
  10. import org.springframework.web.servlet.ModelAndView;
  11. import com.iamberry.wechat.core.entity.drp.PlaceRoleInfo;
  12. import com.iamberry.wechat.core.entity.statictics.ActivateInfo;
  13. import com.iamberry.wechat.core.entity.statictics.AttentionInfo;
  14. import com.iamberry.wechat.core.entity.statictics.EarningsInfo;
  15. import com.iamberry.wechat.core.entity.statictics.MarketInfo;
  16. import com.iamberry.wechat.core.entity.statictics.StatisticsInfo;
  17. import com.iamberry.wechat.core.entity.statictics.UerActivateInfo;
  18. import com.iamberry.wechat.face.statistics.AdminStatisticsService;
  19. @Controller
  20. @RequestMapping("/admin/statistics")
  21. public class AdminStatisticsHandler {
  22. @Autowired
  23. private AdminStatisticsService adminStatisticsService;
  24. /**
  25. * 查询门店关注人数等报表数据
  26. * @param request
  27. * @param pageSize
  28. * @param pageNO
  29. * @return
  30. * @throws Exception
  31. */
  32. @RequestMapping("/selectStoreAttentionList")
  33. public ModelAndView selectStoreAttentionList(HttpServletRequest request,
  34. @RequestParam(value= "pageSize",defaultValue= "6" ,required=false) Integer pageSize,
  35. @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO) throws Exception {
  36. ModelAndView mv = new ModelAndView("admin/statistics/attentionList");
  37. String text = request.getParameter("text");
  38. StringBuilder url = new StringBuilder("/admin/statistics/selectStoreAttentionList?pageSize=" + pageSize);
  39. AttentionInfo attentionInfo = new AttentionInfo();
  40. PlaceRoleInfo placeRoleInfo = new PlaceRoleInfo();
  41. placeRoleInfo.setRoleName("门店");
  42. List<PlaceRoleInfo> roleList = adminStatisticsService.selectRoleName(placeRoleInfo);
  43. List<Integer> roles = new ArrayList<Integer>();
  44. if (null != roleList && roleList.size() > 0) {
  45. for (PlaceRoleInfo placeRole : roleList) {
  46. roles.add(placeRole.getRoleId());
  47. }
  48. attentionInfo.setRoleList(roles);
  49. }
  50. if (text != null && !"".equals(text)) {
  51. attentionInfo.setStoreName(text);
  52. url.append("&text=" + text);
  53. mv.addObject("text", text);
  54. }
  55. url.append("&pageNO=");
  56. attentionInfo.getPage().setPageSize(pageSize);
  57. attentionInfo.getPage().setPageNumber(pageNO);
  58. attentionInfo.getPage().initRecordBegin();
  59. List<AttentionInfo> attentionList = adminStatisticsService.selectStoreAttentionList(attentionInfo);
  60. //查询所有商户层关系信息
  61. List<MarketInfo> placeList = adminStatisticsService.selectPlaceList();
  62. if (null != attentionList && attentionList.size() > 0 && null != placeList && placeList.size() > 0) {
  63. for (AttentionInfo attentionInfos : attentionList) {
  64. for (MarketInfo marketInfo : placeList) {
  65. if (null != attentionInfos.getPlaceId() && !"".equals(attentionInfos.getPlaceId())
  66. && null != marketInfo.getPlaceId() && !"".equals(marketInfo.getPlaceId())
  67. && attentionInfos.getPlaceId().equals(marketInfo.getPlaceId())) {
  68. attentionInfos.setProvinceName(marketInfo.getProvinceName());
  69. attentionInfos.setCityName(marketInfo.getCityName());
  70. attentionInfos.setStoreName(marketInfo.getStoreName());
  71. }
  72. }
  73. }
  74. }
  75. mv.addObject("attentionList", attentionList);
  76. mv.addObject("pageNO", pageNO);
  77. mv.addObject("pageSize", adminStatisticsService.selectStoreAttentionListCount(attentionInfo));
  78. mv.addObject("url", url.toString());
  79. return mv;
  80. }
  81. /**
  82. * 分页查询省代收益报表数据
  83. * @param request
  84. * @param pageSize
  85. * @param pageNO
  86. * @return
  87. * @throws Exception
  88. */
  89. @RequestMapping("/selectProvinceEarningsList")
  90. public ModelAndView selectProvinceEarningsList(HttpServletRequest request,
  91. @RequestParam(value= "pageSize",defaultValue= "6" ,required=false) Integer pageSize,
  92. @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO) throws Exception {
  93. ModelAndView mv = new ModelAndView("admin/statistics/earningsList");
  94. StringBuilder url = new StringBuilder("/admin/statistics/selectProvinceEarningsList?pageSize=" + pageSize);
  95. String text = request.getParameter("text");
  96. EarningsInfo earningsInfo = new EarningsInfo();
  97. if (text != null && !"".equals(text)) {
  98. earningsInfo.setProvinceName(text);
  99. url.append("&text=" + text);
  100. mv.addObject("text", text);
  101. }
  102. url.append("&pageNO=");
  103. earningsInfo.getPage().setPageSize(pageSize);
  104. earningsInfo.getPage().setPageNumber(pageNO);
  105. earningsInfo.getPage().initRecordBegin();
  106. List<EarningsInfo> earningsList = adminStatisticsService.selectProvinceEarningsList(earningsInfo);
  107. mv.addObject("earningsList", earningsList);
  108. mv.addObject("pageNO", pageNO);
  109. mv.addObject("pageSize", adminStatisticsService.selectProvinceEarningsListCount(earningsInfo));
  110. mv.addObject("url", url.toString());
  111. return mv;
  112. }
  113. /**
  114. * 商户激活信息列表
  115. * @param request
  116. * @param pageSize
  117. * @param pageNO
  118. * @return
  119. * @throws Exception
  120. */
  121. @RequestMapping("/selectActivateList")
  122. public ModelAndView selectActivateList(HttpServletRequest request,
  123. @RequestParam(value= "pageSize",defaultValue= "6" ,required=false) Integer pageSize,
  124. @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO) throws Exception {
  125. ModelAndView mv = new ModelAndView("admin/statistics/activateList");
  126. StringBuilder url = new StringBuilder("/admin/statistics/selectActivateList?pageSize=" + pageSize + "&pageNO=");
  127. ActivateInfo activateInfo = new ActivateInfo();
  128. activateInfo.getPage().setPageNumber(pageNO);
  129. activateInfo.getPage().setPageSize(pageSize);
  130. activateInfo.getPage().initRecordBegin();
  131. List<ActivateInfo> activateList = adminStatisticsService.selectActivateList(activateInfo);
  132. mv.addObject("activateList", activateList);
  133. mv.addObject("pageNO", pageNO);
  134. mv.addObject("pageSize", adminStatisticsService.selectActivateListCount(activateInfo));
  135. mv.addObject("url", url.toString());
  136. return mv;
  137. }
  138. /**
  139. * 查询商户详情
  140. * @param request
  141. * @param pageSize
  142. * @param pageNO
  143. * @return
  144. * @throws Exception
  145. */
  146. @RequestMapping("/selectUserActivateList")
  147. public ModelAndView selectUserActivateList(HttpServletRequest request,
  148. @RequestParam(value= "pageSize",defaultValue= "6" ,required=false) Integer pageSize,
  149. @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO) throws Exception {
  150. ModelAndView mv = new ModelAndView("admin/statistics/userActivateList");
  151. StringBuilder url = new StringBuilder("/admin/statistics/selectUserActivateList?pageSize=" + pageSize);
  152. UerActivateInfo uerActivateInfo = new UerActivateInfo();
  153. String roleId = request.getParameter("roleId");
  154. String isActivate = request.getParameter("isActivate");
  155. String text = request.getParameter("text");
  156. if (roleId != null && !"".equals(roleId)) {
  157. uerActivateInfo.setPlaceRoleId(roleId);
  158. url.append("&roleId=" + roleId);
  159. mv.addObject("roleId", roleId);
  160. }
  161. if (isActivate != null && !"".equals(isActivate)) {
  162. uerActivateInfo.setIsActivate(Integer.parseInt(isActivate));
  163. url.append("&isActivate=" + isActivate);
  164. mv.addObject("isActivate", isActivate);
  165. }
  166. if (text != null && !"".equals(text)) {
  167. uerActivateInfo.setPlaceName(text);
  168. url.append("&text=" + text);
  169. mv.addObject("text", text);
  170. }
  171. url.append("&pageNO=");
  172. uerActivateInfo.getPage().setPageNumber(pageNO);
  173. uerActivateInfo.getPage().setPageSize(pageSize);
  174. uerActivateInfo.getPage().initRecordBegin();
  175. List<UerActivateInfo> uersActivateList = adminStatisticsService.selectUserActivateList(uerActivateInfo);
  176. if (null != uersActivateList && uersActivateList.size() > 0) {
  177. for (UerActivateInfo userActivateInfo : uersActivateList) {
  178. if (userActivateInfo.getUserNickname() != null && !userActivateInfo.getUserNickname().isEmpty()) {
  179. userActivateInfo.setUserNickname(URLDecoder.decode(userActivateInfo.getUserNickname(), "UTF-8"));
  180. }
  181. }
  182. }
  183. mv.addObject("userActivateList", uersActivateList);
  184. mv.addObject("pageNO", pageNO);
  185. mv.addObject("pageSize", adminStatisticsService.selectUserActivateListCount(uerActivateInfo));
  186. mv.addObject("url", url.toString());
  187. return mv;
  188. }
  189. /**
  190. * 查询商户收益记录列表
  191. * @param request
  192. * @param pageSize
  193. * @param pageNO
  194. * @return
  195. * @throws Exception
  196. */
  197. @RequestMapping("/selectMarketList")
  198. public ModelAndView selectMarketList(HttpServletRequest request,
  199. @RequestParam(value= "pageSize",defaultValue= "6" ,required=false) Integer pageSize,
  200. @RequestParam(value = "pageNO", defaultValue = "1",required=false) Integer pageNO) throws Exception {
  201. ModelAndView mv = new ModelAndView("admin/statistics/marketList");
  202. StringBuilder url = new StringBuilder("/admin/statistics/selectMarketList?pageSize=" + pageSize);
  203. String name = request.getParameter("name");
  204. String roleType = request.getParameter("roleType");
  205. String beginDate = request.getParameter("beginDate");
  206. MarketInfo marketInfo = new MarketInfo();
  207. marketInfo.getPage().setPageNumber(pageNO);
  208. marketInfo.getPage().setPageSize(pageSize);
  209. marketInfo.getPage().initRecordBegin();
  210. if (name != null && !"".equals(name)) {
  211. marketInfo.setPlaceName(name);
  212. url.append("&name=" + name);
  213. mv.addObject("name", name);
  214. }
  215. if (roleType != null && !"".equals(roleType)) {
  216. marketInfo.setPlaceType(roleType);
  217. url.append("&roleType=" + roleType);
  218. mv.addObject("roleType", roleType);
  219. }
  220. if (beginDate != null && !"".equals(beginDate)) {
  221. marketInfo.setRebackMonth(beginDate);
  222. url.append("&beginDate=" + beginDate);
  223. mv.addObject("beginDate", beginDate);
  224. }
  225. url.append("&pageNO=");
  226. //按月查询余额,销售额等
  227. List<MarketInfo> marketList = adminStatisticsService.selectMarketList(marketInfo);
  228. //查询所有商户层关系信息
  229. List<MarketInfo> placeList = adminStatisticsService.selectPlaceList();
  230. if (null != marketList && marketList.size() > 0 && null != placeList && placeList.size() > 0) {
  231. for (MarketInfo moneyInfo : marketList) {
  232. for (MarketInfo placeInfo : placeList) {
  233. if (null != moneyInfo.getPlaceId() && !"".equals(moneyInfo.getPlaceId())
  234. && null != placeInfo.getPlaceId() && !"".equals(placeInfo.getPlaceId())
  235. && moneyInfo.getPlaceId().toString().equals(placeInfo.getPlaceId().toString())) {
  236. moneyInfo.setProvinceName(placeInfo.getProvinceName());
  237. moneyInfo.setCityName(placeInfo.getCityName());
  238. moneyInfo.setStoreName(placeInfo.getStoreName());
  239. }
  240. }
  241. }
  242. }
  243. mv.addObject("name", name);
  244. mv.addObject("roleType", roleType);
  245. mv.addObject("beginDate", beginDate);
  246. mv.addObject("marketList", marketList);
  247. mv.addObject("pageNO", pageNO);
  248. mv.addObject("pageSize", adminStatisticsService.selectMarketListCount(marketInfo));
  249. mv.addObject("url", url.toString());
  250. return mv;
  251. }
  252. /**
  253. * 查询统计信息(已关注总人数,总销售台数,总金额等)
  254. * @param request
  255. * @return
  256. * @throws Exception
  257. */
  258. @RequestMapping("/selectStatisticsInfo")
  259. public ModelAndView selectStatisticsInfo(HttpServletRequest request) throws Exception {
  260. ModelAndView mv = new ModelAndView("admin/statistics/statisticsInfo");
  261. StatisticsInfo statisticsInfo = new StatisticsInfo();
  262. //查询总关注人数
  263. int attentionSum = adminStatisticsService.selectAttentionSum();
  264. statisticsInfo.setAttentionSum(attentionSum);
  265. //查询总销售台数和总金额
  266. StatisticsInfo salesAmount = adminStatisticsService.selectSalesAmount();
  267. if (salesAmount != null) {
  268. statisticsInfo.setSalesMoney(salesAmount.getSalesMoney());
  269. statisticsInfo.setSalesSum(salesAmount.getSalesSum());
  270. }
  271. //查询今日新增关注人数,今日取消关注人数
  272. StatisticsInfo currentAttentionNum = adminStatisticsService.selectCurrentAttentionNum();
  273. if (currentAttentionNum != null) {
  274. statisticsInfo.setNewAttentionNum(currentAttentionNum.getNewAttentionNum());
  275. statisticsInfo.setCancelAttentionNum(currentAttentionNum.getCancelAttentionNum());
  276. }
  277. //查询当前已激活省代数量,市代数量、门店数量
  278. List<ActivateInfo> activateList = adminStatisticsService.selectPlaceActivate();
  279. int storeNum = 0;
  280. if (activateList != null && activateList.size() > 0) {
  281. for (ActivateInfo activateInfo : activateList) {
  282. switch (activateInfo.getRoleName()) {
  283. case "合伙人":
  284. statisticsInfo.setProvinceNum(activateInfo.getActivateNum());break;
  285. case "VIP会员":
  286. statisticsInfo.setVipNum(activateInfo.getActivateNum());break;
  287. case "门店":
  288. storeNum += activateInfo.getActivateNum().intValue();break;
  289. case "金牌会员":
  290. statisticsInfo.setGoldMedalNum(activateInfo.getActivateNum());break;
  291. }
  292. }
  293. }
  294. statisticsInfo.setStoreNum(storeNum);//门店和母婴店需整合在一起统计
  295. //查询当前vip会员二维码启用数量
  296. String name = "VIP会员";
  297. int qrCodeNum = adminStatisticsService.selectQrCodeNum(name);
  298. statisticsInfo.setQrCodeNum(qrCodeNum);
  299. //查询当前通过vip会员二维码销售台数,总金额
  300. StatisticsInfo storeSalesInfo = adminStatisticsService.selectStoreSalesInfo(name);
  301. if (storeSalesInfo != null) {
  302. statisticsInfo.setStoreSalesMoney(storeSalesInfo.getStoreSalesMoney());
  303. statisticsInfo.setStoreSalesNum(storeSalesInfo.getStoreSalesNum());
  304. }
  305. //查询当前金牌会员二维码启用数量
  306. name = "金牌会员";
  307. int qrGoldMedalNum = adminStatisticsService.selectQrCodeNum(name);
  308. statisticsInfo.setQrGoldMedalNum(qrGoldMedalNum);
  309. //查询当前通过金牌会员二维码销售台数,总金额
  310. storeSalesInfo = adminStatisticsService.selectStoreSalesInfo(name);
  311. if (storeSalesInfo != null) {
  312. statisticsInfo.setStoreGoldMedalMoney(storeSalesInfo.getStoreSalesMoney());
  313. statisticsInfo.setStoreRoldMedalNum(storeSalesInfo.getStoreSalesNum());
  314. }
  315. mv.addObject("statisticsInfo", statisticsInfo);
  316. return mv;
  317. }
  318. }