From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 23 五月 2020 09:54:38 +0800 Subject: [PATCH] 足迹、收藏订单兼容新需求 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java | 371 +++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 301 insertions(+), 70 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java index cc92a62..6844eb2 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java @@ -25,6 +25,7 @@ import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum; import com.yeshi.fanli.entity.bus.user.TeamFansInfo; import com.yeshi.fanli.entity.bus.user.ThreeSale; +import com.yeshi.fanli.entity.bus.user.ThreeSaleDetail; import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo; import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; import com.yeshi.fanli.entity.bus.user.UserInfo; @@ -55,6 +56,7 @@ import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.service.inter.user.invite.TeamDailyRecordService; import com.yeshi.fanli.service.inter.user.invite.TeamFansInfoService; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleDetailService; import com.yeshi.fanli.service.inter.user.invite.ThreeSaleExtraInfoSerivce; import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.user.invite.UserInviteService; @@ -74,6 +76,7 @@ import com.yeshi.fanli.util.annotation.RequestSerializableByKey; import com.yeshi.fanli.util.user.UserLevelUtil; import com.yeshi.fanli.util.wx.WXLoginUtil; +import com.yeshi.fanli.vo.order.OrderRankingVO; import net.sf.json.JSONArray; import net.sf.json.JSONObject; @@ -150,8 +153,9 @@ @Resource private TeamDailyRecordService teamDailyRecordService; - - + + @Resource + private ThreeSaleDetailService threeSaleDetailService; /** * 閭�璇风爜楠岃瘉 @@ -867,7 +871,7 @@ listId.add(focusInfo.getWorkerId()); } } - + if (listId != null && listId.size() > 0) { if (type == 1) { listTeam = threeSaleSerivce.listFirstTeam(0, Constant.PAGE_SIZE, uid, listId); @@ -879,36 +883,36 @@ countSecond = teamFansInfoService.count(2, uid, focus); } JSONArray array = organizeTeamNew(acceptData, listTeam, uid, type, true); - + long count = (type == 1) ? firstTeam : countSecond; - + JSONObject result = new JSONObject(); result.put("firstTeam", firstTeam); result.put("secondTeam", countSecond); result.put("count", count); result.put("list", array); - + // 缁熻H5閾炬帴 if (page == 1) { result.put("link", configService.get(ConfigKeyEnum.teamStatisticsLink.getKey())); } out.print(JsonUtil.loadTrueResult(result)); } - + /** * 楠岃瘉鏄惁瀛樺湪绛涢�夋潯浠� + * * @param focus * @return */ private boolean existScreen(ThreeSaleFocusDTO focus) { if (focus.getStateValid() != null || focus.getTaobaoBind() != null || focus.getWeixinBind() != null - || focus.getMinFansNum() != null || focus.getMinFansNum() != null - || focus.getMinActiveTime() != null || focus.getMaxActiveTime() != null - || focus.getMinIncome() != null || focus.getMaxIncome() != null - || focus.getMinJoinTime() != null || focus.getMaxJoinTime() != null + || focus.getMinFansNum() != null || focus.getMinFansNum() != null || focus.getMinActiveTime() != null + || focus.getMaxActiveTime() != null || focus.getMinIncome() != null || focus.getMaxIncome() != null + || focus.getMinJoinTime() != null || focus.getMaxJoinTime() != null || !StringUtil.isNullOrEmpty(focus.getKey()) || !StringUtil.isNullOrEmpty(focus.getLevel())) - return true; - + return true; + return false; } @@ -997,7 +1001,6 @@ highVIP.put("total", statistic.getHighFirstCount() + statistic.getHighSecondCount()); superVIP.put("total", statistic.getSuperFirstCount() + statistic.getSuperSecondCount()); } - int darenToday = 0; int highVIPToday = 0; @@ -1005,10 +1008,10 @@ String createId = teamDailyRecordService.createId(uid, new Date()); TeamDailyRecord record = teamDailyRecordService.getById(createId); if (record != null) { - if (record.getFirstDaRen() != null) + if (record.getFirstDaRen() != null) darenToday += record.getFirstDaRen(); if (record.getSecondDaRen() != null) - darenToday += record.getSecondDaRen(); + darenToday += record.getSecondDaRen(); if (record.getFirstHighVIP() != null) highVIPToday += record.getFirstHighVIP(); if (record.getSecondHighVIP() != null) @@ -1018,24 +1021,23 @@ if (record.getSecondSuperVIP() != null) superVIPToday += record.getSecondSuperVIP(); } - - - // 鑾峰彇褰撴湀绗竴澶╁拰鏈�鍚庝竴澶� + + // 鑾峰彇褰撴湀绗竴澶╁拰鏈�鍚庝竴澶� Calendar cale = Calendar.getInstance(); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - String firstday, lastday; - // 鑾峰彇鍓嶆湀鐨勭涓�澶� - cale = Calendar.getInstance(); - cale.add(Calendar.MONTH, 0); - cale.set(Calendar.DAY_OF_MONTH, 1); - firstday = format.format(cale.getTime()); - // 鑾峰彇鍓嶆湀鐨勬渶鍚庝竴澶� - cale = Calendar.getInstance(); - cale.add(Calendar.MONTH, 1); - cale.set(Calendar.DAY_OF_MONTH, 0); - lastday = format.format(cale.getTime()); - - int darenMonth = 0; + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + String firstday, lastday; + // 鑾峰彇鍓嶆湀鐨勭涓�澶� + cale = Calendar.getInstance(); + cale.add(Calendar.MONTH, 0); + cale.set(Calendar.DAY_OF_MONTH, 1); + firstday = format.format(cale.getTime()); + // 鑾峰彇鍓嶆湀鐨勬渶鍚庝竴澶� + cale = Calendar.getInstance(); + cale.add(Calendar.MONTH, 1); + cale.set(Calendar.DAY_OF_MONTH, 0); + lastday = format.format(cale.getTime()); + + int darenMonth = 0; int highVIPMonth = 0; int superVIPMonth = 0; Date date = new Date(); @@ -1044,10 +1046,10 @@ List<TeamDailyRecord> listMonth = teamDailyRecordService.sumGroupByYearMonth(uid, minTime, maxTime); if (listMonth != null && listMonth.size() > 0) { TeamDailyRecord teamRecord = listMonth.get(0); - if (teamRecord.getFirstDaRen() != null) + if (teamRecord.getFirstDaRen() != null) darenMonth += teamRecord.getFirstDaRen(); if (teamRecord.getSecondDaRen() != null) - darenMonth += teamRecord.getSecondDaRen(); + darenMonth += teamRecord.getSecondDaRen(); if (teamRecord.getFirstHighVIP() != null) highVIPMonth += teamRecord.getFirstHighVIP(); if (teamRecord.getSecondHighVIP() != null) @@ -1063,10 +1065,10 @@ // 楂樼骇浼氫細鍛� highVIP.put("today", highVIPToday); highVIP.put("month", highVIPMonth); - // 缁熻瓒呯骇浼氬憳鏁伴噺 + // 缁熻瓒呯骇浼氬憳鏁伴噺 superVIP.put("today", superVIPToday); superVIP.put("month", superVIPMonth); - + json.put("daren", daren); json.put("highVIP", highVIP); json.put("superVIP", superVIP); @@ -1113,9 +1115,7 @@ bossNickName = boss.getNickName(); } } - - - + JSONArray tagArray = new JSONArray(); String memoName = user.getNickName(); Long succeedTime = threeSale.getSucceedTime(); @@ -1158,11 +1158,11 @@ weixin = userInfoExtra.getWeiXin(); activeTime = userInfoExtra.getActiveTime(); } - + if (activeTime == null) { activeTime = new Date(user.getCreatetime()); } - + data.put("weixin", StringUtil.isNullOrEmpty(weixin) ? "" : weixin); data.put("loginTime", TimeUtil.formatDate(activeTime)); @@ -1202,19 +1202,193 @@ if (directNum > 0) { indirectNum = threeSaleSerivce.countSecondTeam(workerId); } - + // 璁㈠崟缁熻 long countTB = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_TAOBAO, 60); long countJD = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_JD, 60); long countPDD = commonOrderCountService.countOrderBySourceAndNearDay(workerId, Constant.SOURCE_TYPE_PDD, 60); - - data.put("fansNum", "鐩存帴绮変笣锛� "+directNum+"浜篭n" + "闂存帴绮変笣锛� "+indirectNum+"浜�"); - data.put("orderInfo", "娣樺疂 ("+countTB+"绗�)\n" + "浜笢 ("+countJD+"绗�)\n" + "鎷煎澶� ("+countPDD+"绗�)"); + + data.put("fansNum", "鐩存帴绮変笣锛� " + directNum + "浜篭n" + "闂存帴绮変笣锛� " + indirectNum + "浜�"); + data.put("orderInfo", "娣樺疂 (" + countTB + "绗�)\n" + "浜笢 (" + countJD + "绗�)\n" + "鎷煎澶� (" + countPDD + "绗�)"); out.print(JsonUtil.loadTrueResult(data)); } /** * 鑾峰彇绮変笣淇℃伅 + * + * @param acceptData + * @param uid + * @param workerId + * @param out + */ + @RequestMapping(value = "fansSearch") + public void fansSearch(String callback, AcceptData acceptData, Long uid, String key, PrintWriter out) { + if (uid == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�")); + return; + } + + if (StringUtil.isNullOrEmpty(key)) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璇疯緭鍏ョ瓫閫変俊鎭�")); + return; + } + + List<TeamFansInfo> listfocus = teamFansInfoService.queryByUserInfo(key); + if (listfocus == null || listfocus.size() == 0) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鏆傛棤鐩稿叧淇℃伅")); + return; + } + + Long fansId = null; + for (TeamFansInfo teamFansInfo : listfocus) { + Long workerId = teamFansInfo.getWorkerId(); + ThreeSaleDetail threeDetail = threeSaleDetailService.getByBossUidAndWorkerUid(uid, workerId); + if (threeDetail != null) { + fansId = workerId; + break; + } + } + + if (fansId == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鏆傛棤鐩稿叧淇℃伅")); + return; + } + + ThreeSale threeSale = threeSaleSerivce.getByWorkerId(fansId); + if (threeSale == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鏆傛棤鐩稿叧淇℃伅")); + return; + } + + UserInfo user = userInfoService.selectByPKey(fansId); + if (user == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鏆傛棤鐩稿叧淇℃伅")); + return; + } + + JSONObject data = new JSONObject(); + JSONObject inviteBoss = getInviteBoss(threeSale.getBoss().getId()); + data.put("boss", inviteBoss); + + String phone = user.getPhone(); + boolean phoneCopy = true; + if (StringUtil.isNullOrEmpty(phone)) { + phone = ""; + } else { + if (!userCustomSettingsService.validateDisplayPhoneByUid(fansId)) { + phoneCopy = false; + phone = phone.substring(0, 7) + "****"; + } + } + + data.put("fansId", fansId); + data.put("nickName", user.getNickName()); + data.put("portrait", user.getPortrait()); + data.put("phone", phone); + data.put("phoneCopy", phoneCopy); + data.put("joinTime", TimeUtil.formatDate(threeSale.getSucceedTime() == null ? threeSale.getCreateTime() : threeSale.getSucceedTime())); + + Date activeTime = null; + String weixin = null; + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(fansId); + if (userInfoExtra != null) { + weixin = userInfoExtra.getWeiXin(); + activeTime = userInfoExtra.getActiveTime(); + } + + if (activeTime == null) { + activeTime = new Date(user.getCreatetime()); + } + + String inviteCode = ""; + if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) + inviteCode = userInfoExtra.getInviteCode(); + if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCodeVip())) + inviteCode = userInfoExtra.getInviteCodeVip(); + + data.put("inviteCode", inviteCode); + data.put("weixin", StringUtil.isNullOrEmpty(weixin) ? "" : weixin); + data.put("loginTime", TimeUtil.formatDate(activeTime)); + + UserExtraTaoBaoInfo userExtraTaoBaoInfo = userExtraTaoBaoInfoService.getByUid(fansId); + if (userExtraTaoBaoInfo != null && !StringUtil.isNullOrEmpty(userExtraTaoBaoInfo.getRelationId()) + && !StringUtil.isNullOrEmpty(userExtraTaoBaoInfo.getSpecialId())) { + data.put("taobao", true); + } else { + data.put("taobao", false); + } + + // 褰撳墠绛夌骇 + UserLevelEnum level = null; + UserVIPLevel vipLevel = userInviteService.getVIPLevelByUid(fansId); + if (vipLevel != null && vipLevel.getLevel() != null) { + level = UserLevelUtil.getByLevel(vipLevel.getLevel()); + } + if (level == null) { + level = UserLevelEnum.daRen; + } + data.put("level", UserLevelUtil.getShowLevel(level)); + + // 绮変笣缁熻 + long indirectNum = 0; + long directNum = threeSaleSerivce.countFirstTeam(fansId); + if (directNum > 0) { + indirectNum = threeSaleSerivce.countSecondTeam(fansId); + } + + // 璁㈠崟缁熻 + long countTB = commonOrderCountService.countOrderBySourceAndNearDay(fansId, Constant.SOURCE_TYPE_TAOBAO, 60); + long countJD = commonOrderCountService.countOrderBySourceAndNearDay(fansId, Constant.SOURCE_TYPE_JD, 60); + long countPDD = commonOrderCountService.countOrderBySourceAndNearDay(fansId, Constant.SOURCE_TYPE_PDD, 60); + + data.put("fansNum", "鐩存帴绮変笣锛� " + directNum + "浜篭n" + "闂存帴绮変笣锛� " + indirectNum + "浜�"); + data.put("orderInfo", "娣樺疂 (" + countTB + "绗�)\n" + "浜笢 (" + countJD + "绗�)\n" + "鎷煎澶� (" + countPDD + "绗�)"); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); + } + + private JSONObject getInviteBoss(Long bossId) { + UserInfo userInfo = userInfoService.selectByPKey(bossId); + boolean phoneCopy = true; + String phone = userInfo.getPhone(); + if (StringUtil.isNullOrEmpty(phone)) { + phone = ""; + } else { + if (!userCustomSettingsService.validateDisplayPhoneByUid(bossId)) { + phoneCopy = false; + phone = phone.substring(0, 7) + "****"; + } + } + + // 寰俊鍙� + String weixin = ""; + UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(bossId); + if (extra != null) { + weixin = StringUtil.isNullOrEmpty(extra.getWeiXin()) ? "" : extra.getWeiXin(); + } + + // 褰撳墠绛夌骇 + UserLevelEnum level = null; + UserVIPLevel vipLevel = userInviteService.getVIPLevelByUid(bossId); + if (vipLevel != null && vipLevel.getLevel() != null) { + level = UserLevelUtil.getByLevel(vipLevel.getLevel()); + } + if (level == null) { + level = UserLevelEnum.daRen; + } + level = UserLevelUtil.getShowLevel(level); + + JSONObject bossObject = new JSONObject(); + bossObject.put("nickName", userInfo.getNickName()); + bossObject.put("portrait", userInfo.getPortrait()); + bossObject.put("phone", phone); + bossObject.put("phoneCopy", phoneCopy); + bossObject.put("weixin", weixin); + bossObject.put("level", level.name()); + return bossObject; + } + + /** + * 淇濆瓨绮変笣淇℃伅 * * @param acceptData * @param uid @@ -1256,9 +1430,8 @@ out.print(JsonUtil.loadTrueResult("淇濆瓨鎴愬姛")); } - /** - * 闃熷憳鏁伴噺缁熻 + * 闃熷憳鏁伴噺缁熻 * * @param acceptData * @param id @@ -1267,57 +1440,58 @@ @RequestMapping(value = "countTeamNum") public void countTeamNum(String callback, AcceptData acceptData, Long uid, PrintWriter out) { try { - Date minDate = null; Date maxDate = null; long timeStamp = System.currentTimeMillis(); - + Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(timeStamp); - + // 浠婃棩棰勪及 calendar.add(Calendar.DAY_OF_YEAR, -1); minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); - TeamDailyRecord todayRecord = createVO(teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, null)); + TeamDailyRecord todayRecord = createVO( + teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, null)); // 鏄ㄦ棩棰勪及 calendar.add(Calendar.DAY_OF_YEAR, -1); maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); minDate = DateUtil.reduceDay(1, maxDate); - TeamDailyRecord yesterdayRecord = createVO(teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, maxDate)); + TeamDailyRecord yesterdayRecord = createVO( + teamDailyRecordService.sumTeamNumGroupByCountDay(uid, minDate, maxDate)); // 鏈湀棰勪及 maxDate = new Date(timeStamp); calendar = Calendar.getInstance(); - minDate = new Date(TimeUtil - .convertToTimeTemp(calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M")); + minDate = new Date(TimeUtil.convertToTimeTemp( + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M")); calendar.add(Calendar.MONTH, -1); - TeamDailyRecord monthRecord = createVO(teamDailyRecordService.sumTeamNumGroupByYearMonth(uid, minDate, maxDate)); - + TeamDailyRecord monthRecord = createVO( + teamDailyRecordService.sumTeamNumGroupByYearMonth(uid, minDate, maxDate)); + // 绱 TeamDailyRecord totalityRecord = createVO(teamDailyRecordService.sumTeamNumGroupByUid(uid, null, null)); - + JSONObject today = new JSONObject(); today.put("direct", todayRecord.getFirstNum()); today.put("indirect", todayRecord.getSecondNum()); today.put("beyond", todayRecord.getBeyondNum()); - + JSONObject yesterday = new JSONObject(); yesterday.put("direct", yesterdayRecord.getFirstNum()); yesterday.put("indirect", yesterdayRecord.getSecondNum()); yesterday.put("beyond", yesterdayRecord.getBeyondNum()); - + JSONObject month = new JSONObject(); month.put("direct", monthRecord.getFirstNum()); month.put("indirect", monthRecord.getSecondNum()); month.put("beyond", monthRecord.getBeyondNum()); - + JSONObject totality = new JSONObject(); totality.put("direct", totalityRecord.getFirstNum()); totality.put("indirect", totalityRecord.getSecondNum()); totality.put("beyond", totalityRecord.getBeyondNum()); - - + JSONObject json = new JSONObject(); json.put("today", today); json.put("yesterday", yesterday); @@ -1329,19 +1503,76 @@ e.printStackTrace(); } } - - + private TeamDailyRecord createVO(List<TeamDailyRecord> list) { - TeamDailyRecord totalityRecord = new TeamDailyRecord(0,0,0); + TeamDailyRecord totalityRecord = new TeamDailyRecord(0, 0, 0); if (list != null && list.size() > 0) { - for (TeamDailyRecord record: list) { + for (TeamDailyRecord record : list) { totalityRecord.setFirstNum(totalityRecord.getFirstNum() + record.getFirstNum()); totalityRecord.setSecondNum(totalityRecord.getSecondNum() + record.getSecondNum()); totalityRecord.setBeyondNum(totalityRecord.getBeyondNum() + record.getBeyondNum()); } - } + } return totalityRecord; } - - + + /** + * 閭�璇锋帓琛屾 + * + * @param callback + * @param acceptData + * @param uid + * @param dateType + * @param out + */ + @RequestMapping(value = "getRanking") + public void getRanking(String callback, AcceptData acceptData, Long uid, Integer dateType, PrintWriter out) { + if (uid == null || dateType == null) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鍙傛暟缂哄け")); + return; + } + + try { + Date minDate = null; + Date maxDate = null; + long timeStamp = System.currentTimeMillis(); + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(timeStamp); + + if (dateType == 1) { + // 浠婃棩 + calendar.add(Calendar.DAY_OF_YEAR, -1); + minDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + } else if (dateType == 2) { + // 鏄ㄦ棩 + calendar.add(Calendar.DAY_OF_YEAR, -1); + maxDate = new Date(TimeUtil.convertDateToTemp(TimeUtil.getGernalTime(timeStamp))); + minDate = DateUtil.reduceDay(1, maxDate); + } else { + // 鏈湀 + maxDate = new Date(timeStamp); + calendar = Calendar.getInstance(); + minDate = new Date(TimeUtil.convertToTimeTemp( + calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1), "yyyy-M")); + calendar.add(Calendar.MONTH, -1); + } + + List<OrderRankingVO> list = teamDailyRecordService.getRankingByFirstNum(uid, minDate, maxDate); + if (list.size() > 0) { + for (OrderRankingVO vo : list) { + UserInfo user = userInfoService.getUserByIdWithMybatis(vo.getUid()); + vo.setNickName(user.getNickName()); + vo.setPortrait(user.getPortrait()); + } + } + + JSONObject json = new JSONObject(); + json.put("list", list); + JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(json)); + } catch (Exception e) { + JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("缁熻澶辫触")); + e.printStackTrace(); + } + } + } -- Gitblit v1.8.0