From f99d8098b0aee17c09be5dfee8b4f72a6f4071b1 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期日, 26 四月 2020 11:57:39 +0800 Subject: [PATCH] 同步老用户等级数据 --- fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java | 270 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 221 insertions(+), 49 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 063fd5e..ad66192 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 @@ -13,9 +13,9 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import org.yeshi.utils.DateUtil; import org.yeshi.utils.JsonUtil; +import com.yeshi.fanli.dto.vip.UserVIPLevel; import com.yeshi.fanli.dto.wx.WXAccountInfoDTO; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.msg.UserSystemMsg; @@ -24,8 +24,10 @@ import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.UserInfoExtra; -import com.yeshi.fanli.entity.bus.user.UserInviteSeparate; +import com.yeshi.fanli.entity.bus.user.UserInviteValidNum; +import com.yeshi.fanli.entity.bus.user.UserInviteValidRecord; import com.yeshi.fanli.entity.bus.user.WeiXinUser; +import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum; import com.yeshi.fanli.entity.system.BusinessSystem; import com.yeshi.fanli.entity.system.ConfigKeyEnum; import com.yeshi.fanli.entity.system.SystemClientParams; @@ -40,9 +42,11 @@ import com.yeshi.fanli.service.inter.user.SpreadUserImgService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; -import com.yeshi.fanli.service.inter.user.UserInviteSeparateService; 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; +import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService; +import com.yeshi.fanli.service.inter.user.invite.UserInviteValidRecordService; import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.RedisKeyEnum; @@ -50,6 +54,7 @@ import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.annotation.RequestSerializableByKey; +import com.yeshi.fanli.util.user.UserLevelUtil; import com.yeshi.fanli.util.wx.WXLoginUtil; import net.sf.json.JSONArray; @@ -85,9 +90,6 @@ @Resource private UserVIPInfoService userVIPInfoService; - - @Resource - private UserInviteSeparateService userInviteSeparateService; @Resource private SpreadImgService spreadImgService; @@ -98,6 +100,14 @@ @Resource private SystemClientParamsService systemClientParamsService; + @Resource + private UserInviteService userInviteService; + + @Resource + private UserInviteValidRecordService userInviteValidRecordService; + + @Resource + private UserInviteValidNumService userInviteValidNumService; /** @@ -201,15 +211,20 @@ out.print(JsonUtil.loadFalseResult("绮変笣绫诲瀷涓嶆纭�")); return; } + + if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) { + getMyTeamNew(acceptData, page, uid, type, out); + return; + } long count = 0; List<ThreeSale> listTeam = null; if (type == 1) { - listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, 1); - count = threeSaleSerivce.countFirstTeam(uid, 1); + listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid); + count = threeSaleSerivce.countFirstTeam(uid); } else if (type == 2) { - listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid, 1); - count = threeSaleSerivce.countSecondTeam(uid, 1); + listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid); + count = threeSaleSerivce.countSecondTeam(uid); } boolean needVIPInfo = false; @@ -277,35 +292,6 @@ // 娣诲姞鏄惁涓篤IP if (vipMap != null && vipMap.get(worker.getId()) != null) { object.put("vip", vipMap.get(worker.getId())); - if (vipMap.get(worker.getId())) { - UserInviteSeparate separate = userInviteSeparateService.selectByWorkerIdAndBossId(worker.getId(), uid); - if (separate != null && separate.getEndTime() != null) { - try { - - - JSONObject contentJson1 = new JSONObject(); - contentJson1.put("color", "#888888"); - contentJson1.put("content", "灏嗕簬"); - - JSONObject contentJson2 = new JSONObject(); - contentJson2.put("color", "#F14242"); - contentJson2.put("content", DateUtil.dateDiff4(new Date(), separate.getEndTime())); - - JSONObject contentJson3 = new JSONObject(); - contentJson3.put("color", "#888888"); - contentJson3.put("content", "鍚庤劚绂婚個璇峰叧绯�"); - - JSONArray array = new JSONArray(); - array.add(contentJson1); - array.add(contentJson2); - array.add(contentJson3); - object.put("vipBreakTime",array); - - } catch (Exception e) { - e.printStackTrace(); - } - } - } } String fontColor1 = "#888888"; JSONArray array = new JSONArray(); @@ -345,7 +331,7 @@ } else { if (!threeSaleExtraInfoSerivce.isRemindWorker(uid, workerId)) { object.put("weiXinState", 1); - object.put("weiXinTip", "鐐瑰嚮鎻愰啋TA锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); + object.put("weiXinTip", "鐐瑰嚮鎻愰啋锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); } else { object.put("weiXinState", 2); object.put("weiXinTip", "绯荤粺宸插彂閫佹彁閱掞紝閭�璇蜂汉娣诲姞寰俊鍚庝綘鍙鍒讹紝濡傚鏂硅繜杩熶笉娣诲姞锛屼綘鍙仈绯讳汉宸ュ鏈嶅姹傚府鍔�"); @@ -363,6 +349,186 @@ return result; } + + private void getMyTeamNew(AcceptData acceptData, long page, long uid, int type, PrintWriter out) { + if (type != 1 && type != 2) { + out.print(JsonUtil.loadFalseResult("绮変笣绫诲瀷涓嶆纭�")); + return; + } + + long count = 0; + List<ThreeSale> listTeam = null; + if (type == 1) { + listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid); + count = threeSaleSerivce.countFirstTeam(uid); + } else if (type == 2) { + listTeam = threeSaleSerivce.listSecondTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid); + count = threeSaleSerivce.countSecondTeam(uid); + } + + JSONObject result = new JSONObject(); + result.put("count", count); + result.put("list", organizeTeamNew(count, listTeam, uid, type, true)); + + // 绗竴椤靛垽鏂槸鍚︽縺娲� 鏄惁鏈夐槦鍛� + if (type == 1 && page == 1) { + boolean hasCode = false; + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + if (userInfoExtra != null) { + if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) + hasCode = true; + } + result.put("hasCode", hasCode); + result.put("hasTeam", count > 0 ? true : false); + } + out.print(JsonUtil.loadTrueResult(result)); + } + + /** + * 鍔犲伐鏁版嵁 + * @param count + * @param list + * @param uid + * @param type 鏌ヨ绮変笣绫诲瀷 1鐩存帴 2闂存帴 + * @param wxtip 鏄渶瑕佸井淇℃彁绀� + * @return + */ + private JSONArray organizeTeamNew(long count, List<ThreeSale> list, Long uid, int type, boolean wxtip) { + JSONArray resultArray = new JSONArray(); + if (list == null || list.size() == 0) { + return resultArray; + } + + Date todayTime = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("MM.dd HH:mm"); + SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); + SimpleDateFormat formatYears = new SimpleDateFormat("yyyy"); + + List<Long> listWid = new ArrayList<>(); + for (ThreeSale threeSale : list) { + listWid.add(threeSale.getWorker().getId()); + } + + // 鏌ヨ鏈夋晥绮変笣id + int validType = UserInviteValidRecord.TYPE_TWO; + if (type == 1) { + validType = UserInviteValidRecord.TYPE_ONE; + } + + List<Long> listVid = userInviteValidRecordService.getValidWorkerIdsByUid(uid, listWid, validType); + + for (ThreeSale threeSale : list) { + UserInfo worker = threeSale.getWorker(); + Long workerId = worker.getId(); + + // 閭�璇锋垚鍔熸椂闂� + Long succeedTime = threeSale.getSucceedTime(); + if (succeedTime == null) { + succeedTime = threeSale.getCreateTime(); + } + + // 鏈夋晥绮変笣 + boolean validFans = false; + if (listVid != null && listVid.size() > 0 && listVid.contains(workerId)) { + validFans = true; + } + + // 鏈�杩戠矇涓濈櫥褰曟椂闂� + Date lastLoginTime = new Date(threeSale.getCreateTime()); + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(workerId); + if (userInfoExtra != null && userInfoExtra.getActiveTime() != null) { + lastLoginTime = userInfoExtra.getActiveTime(); + } + JSONObject loginJson = new JSONObject(); + if (formatYears.format(todayTime).equals(formatYears.format(lastLoginTime))) { + loginJson.put("content", "鏈�杩戠櫥褰� " + sdf.format(lastLoginTime)); // 鏈勾 + } else { + loginJson.put("content", "鏈�杩戠櫥褰� " + format.format(lastLoginTime)); // 寰�骞� + } + loginJson.put("color", "#888888"); + + JSONArray array = new JSONArray(); + array.add(loginJson); + + // 鏌ヨ绮変笣绛夌骇 + UserLevelEnum level = null; + UserVIPLevel vipLevel = userInviteService.getVIPLevelByUid(workerId); + if (vipLevel != null && vipLevel.getLevel() != null) { + level = UserLevelUtil.getByLevel(vipLevel.getLevel()); + } + if(level == null) { + level = UserLevelEnum.daRen; + } + level = UserLevelUtil.getShowLevel(level); + + JSONObject object = new JSONObject(); + object.put("workerId", workerId); + object.put("nickName", worker.getNickName()); + object.put("portrait", worker.getPortrait()); + object.put("inviteId", threeSale.getId()); + object.put("inviteTime", format.format(new Date(succeedTime)) + " 鍔犲叆"); + object.put("state", 1); + object.put("recentMsg", array); + object.put("level", level.name()); + object.put("validFans", validFans); + + if (wxtip && type == 1 && threeSale.getState() != null && threeSale.getState()) { + // 涓�绾ч槦鍛� 鏌ヨ鏄电О澶囨敞 + String memoName = null; + ThreeSaleExtraInfo threeSaleExtraInfo = threeSale.getThreeSaleExtraInfo(); + if (threeSaleExtraInfo != null) { + if (!StringUtil.isNullOrEmpty(threeSaleExtraInfo.getNickname())) { + memoName = threeSaleExtraInfo.getNickname(); + } + } + object.put("memoName", memoName); + + // 娣诲姞寰俊淇℃伅 + if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) { + object.put("weiXin", userInfoExtra.getWeiXin()); + object.put("weiXinState", 3); + object.put("weiXinTip", "娣诲姞TA鐨勫井淇★紝浣犲彲鏁欐巿TA濡備綍閫氳繃鏉挎牀蹇渷璧氶挶鎶�宸с��"); + } else { + if (!threeSaleExtraInfoSerivce.isRemindWorker(uid, workerId)) { + object.put("weiXinState", 1); + object.put("weiXinTip", "鐐瑰嚮鎻愰啋锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); + } else { + object.put("weiXinState", 2); + object.put("weiXinTip", "绯荤粺宸插彂閫佹彁閱掞紝閭�璇蜂汉娣诲姞寰俊鍚庝綘鍙鍒讹紝濡傚鏂硅繜杩熶笉娣诲姞锛屼綘鍙仈绯讳汉宸ュ鏈嶅姹傚府鍔�"); + } + } + } + resultArray.add(object); + } + return resultArray; + } + + + /** + * 鏌ョ湅涓嬬骇鐨勭洿鎺ョ矇涓� + * @param acceptData + * @param page + * @param uid 褰撳墠UId + * @param tid 涓嬬骇UId + * @param out + */ + @RequestMapping(value = "getOthersTeam", method = RequestMethod.POST) + public void getOthersTeam(AcceptData acceptData, long page, Long uid, Long tid, PrintWriter out) { + if (tid == null) { + out.print(JsonUtil.loadFalseResult("浼犻�掑弬鏁颁笉姝g‘")); + return; + } + + List<ThreeSale> listTeam = threeSaleSerivce.listFirstTeam((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, tid); + long count = threeSaleSerivce.countFirstTeam(tid); + + JSONObject result = new JSONObject(); + result.put("count", count); + result.put("list", organizeTeamNew(count, listTeam, tid, 1, false)); + out.print(JsonUtil.loadTrueResult(result)); + } + + /** * 鐢ㄦ埛闃熷憳缁熻- IOS * @@ -375,13 +541,14 @@ JSONObject bossData = getBossInfo(uid, threeSaleSerivce.getMyBoss(uid)); JSONObject resultData = new JSONObject(); - long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1); + long firstTeam = threeSaleSerivce.countFirstTeam(uid); + long countSecond = threeSaleSerivce.countSecondTeam(uid); resultData.put("boss", bossData); - resultData.put("helpLink", configService.get(ConfigKeyEnum.teamHelpUrl.getKey())); resultData.put("firstTeam", firstTeam); - resultData.put("firstTeamTotal", threeSaleSerivce.countFirstTeam(uid, null)); - resultData.put("secondTeam", threeSaleSerivce.countSecondTeam(uid, 1)); - resultData.put("secondTeamTotal", threeSaleSerivce.countSecondTeam(uid, null)); + resultData.put("firstTeamTotal", firstTeam); + resultData.put("secondTeam", countSecond); + resultData.put("secondTeamTotal", countSecond); + resultData.put("helpLink", configService.get(ConfigKeyEnum.teamHelpUrl.getKey())); boolean hasTeam = true; if (firstTeam <= 0) { @@ -469,7 +636,7 @@ } else { if (!threeSaleExtraInfoSerivce.isRemindBoss(boss.getId(), uid)) { bossData.put("weiXinState", 1); - bossData.put("weiXinTip", "鐐瑰嚮鎻愰啋TA锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); + bossData.put("weiXinTip", "鐐瑰嚮鎻愰啋锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��"); } else { bossData.put("weiXinState", 2); bossData.put("weiXinTip", "绯荤粺宸插彂閫佹彁閱掞紝閭�璇蜂汉娣诲姞寰俊鍚庝綘鍙鍒讹紝濡傚鏂硅繜杩熶笉娣诲姞锛屼綘鍙仈绯讳汉宸ュ鏈嶅姹傚府鍔�"); @@ -643,12 +810,17 @@ return; } + // 鏈夋晥绮変笣 + int doneFirst = 0; + UserInviteValidNum userInviteValidNum = userInviteValidNumService.selectByPrimaryKey(uid); + if (userInviteValidNum != null) { + doneFirst = userInviteValidNum.getNumFirst() == null ? 0 : userInviteValidNum.getNumFirst(); + } + JSONObject data = new JSONObject(); - data.put("num", threeSaleSerivce.countFirstTeam(uid, 1)); + data.put("num", doneFirst); data.put("limit", Constant.INVITE_CODRE_TAILOR_LIMIT); JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data)); } - - } -- Gitblit v1.8.0