From 0ec22dcf4fd9c4496e6f681e7fab89f56c6e4e8a Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 02 四月 2020 14:45:20 +0800
Subject: [PATCH] vip 消息

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java |  289 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 280 insertions(+), 9 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 57cd720..e44029a 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
@@ -16,6 +16,8 @@
 import org.yeshi.utils.DateUtil;
 import org.yeshi.utils.JsonUtil;
 
+import com.yeshi.fanli.dto.user.UserInviteLevelEnum;
+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;
@@ -25,8 +27,10 @@
 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.UserInviteValidRecord;
 import com.yeshi.fanli.entity.bus.user.WeiXinUser;
 import com.yeshi.fanli.entity.system.BusinessSystem;
+import com.yeshi.fanli.entity.system.ConfigKeyEnum;
 import com.yeshi.fanli.entity.system.SystemClientParams;
 import com.yeshi.fanli.exception.user.UserAccountException;
 import com.yeshi.fanli.exception.user.UserInfoExtraException;
@@ -42,11 +46,14 @@
 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.UserInviteValidRecordService;
 import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.RedisKeyEnum;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
 import com.yeshi.fanli.util.wx.WXLoginUtil;
@@ -96,6 +103,12 @@
 	
 	@Resource
 	private SystemClientParamsService systemClientParamsService;
+	
+	@Resource
+	private UserInviteService userInviteService;
+	
+	@Resource
+	private UserInviteValidRecordService userInviteValidRecordService;
 	
 	
 	
@@ -200,6 +213,11 @@
 			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;
@@ -280,8 +298,6 @@
 					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", "灏嗕簬");
@@ -299,7 +315,6 @@
 							array.add(contentJson2);
 							array.add(contentJson3);
 							object.put("vipBreakTime",array);
-						
 						} catch (Exception e) {
 							e.printStackTrace();
 						}
@@ -362,6 +377,251 @@
 		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.listFirstTeamByUndeleted((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
+			count = threeSaleSerivce.countFirstTeamByUndeleted(uid);
+		} else if (type == 2) {
+			listTeam = threeSaleSerivce.listSecondTeamByUndeleted((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
+			count = threeSaleSerivce.countSecondTeamByUndeleted(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();
+
+			// 閭�璇风姸鎬�
+			Boolean state = threeSale.getState();
+			if (type == 2) {
+				if (state &&  threeSale.getStateSuper()) {
+					state = true;
+				} else {
+					state = false;
+				}
+			}
+			
+			
+			// 閭�璇锋垚鍔熸椂闂�
+			Long succeedTime = threeSale.getSucceedTime(); 
+			if (succeedTime == null) {
+				succeedTime = threeSale.getCreateTime();
+			}
+			
+			// 鏈夋晥绮変笣
+			boolean validFans = false; 
+			if (state && 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);
+
+			// 鏌ヨ绮変笣绛夌骇
+			UserInviteLevelEnum level = null;
+			UserVIPLevel vipLevel = userInviteService.getVIPLevelByUid(workerId);
+			if (vipLevel != null) {
+				if (vipLevel.getLevel() == UserVIPLevel.LEVEL_3) {
+					level = UserInviteLevelEnum.actived;
+				} else if (vipLevel.getLevel() == UserVIPLevel.LEVEL_7) {
+					level = UserInviteLevelEnum.actived;
+				} else if (vipLevel.getLevel() == UserVIPLevel.LEVEL_10) {
+					level = UserInviteLevelEnum.actived;
+				}
+			}
+			
+			if(level == null) {
+				if (userInfoExtra == null || StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
+					level = UserInviteLevelEnum.noActive;
+				} else {
+					level = UserInviteLevelEnum.actived;
+				}
+			}
+			
+			
+			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", state? 1 : 2);
+			object.put("recentMsg", array);
+			object.put("level", level.name());
+			object.put("validFans", validFans);
+			
+			
+			// 鍒ゆ柇鏄惁瀛樺湪鑴辩鍏崇郴闃熷憳
+			if (vipLevel != null && state) {
+				Long bossId = threeSale.getBoss().getId();
+				UserInviteSeparate separate = userInviteSeparateService.selectByWorkerIdAndBossId(workerId, bossId);
+				if (separate != null && separate.getEndTime() != null) {
+					try {
+						JSONObject contentJson1 = new JSONObject();
+						contentJson1.put("color", "#888888");
+						contentJson1.put("content", "灏嗕簬");
+
+						String dateDiff = DateUtil.dateDiff4(new Date(), separate.getEndTime());
+						JSONObject contentJson2 = new JSONObject();
+						contentJson2.put("color", "#F14242");
+						contentJson2.put("content", dateDiff);
+
+						JSONObject contentJson3 = new JSONObject();
+						contentJson3.put("color", "#888888");
+						contentJson3.put("content", "鍚庤劚绂婚個璇峰叧绯�");
+						
+						JSONArray vipBreak = new JSONArray();
+						vipBreak.add(contentJson1);
+						vipBreak.add(contentJson2);
+						vipBreak.add(contentJson3);
+						object.put("vipBreakTime",vipBreak);
+						
+						List<String> tips = new ArrayList<String>();
+						tips.add("浜�"+ TimeUtil.formatDateDot(vipLevel.getSuccessTime()) + "鍗囩骇涓�" + level.getName());
+						if (type == 1) {
+							tips.add("浣犻渶瑕佸湪"+ dateDiff +"鍐呭崌绾т负浼氬憳锛屽惁鍒欐寜鐓ч個璇疯鍒橳A灏嗕笌浣犺劚绂婚個璇峰叧绯汇��");
+							tips.add("璧跺揩鍔犳补鍗囩骇涓轰細鍛樺惂锛�");
+						} else {
+							tips.add("浣犻渶瑕佽緟鍔㏕A鐨勯個璇蜂汉"+ threeSale.getBoss().getNickName()+ "鍦�"+dateDiff+"鍐呭崌绾т负浼氬憳锛屽惁鍒欒繖浣嶉棿鎺ョ矇涓�" +worker.getNickName()+"灏嗕笌浣犺劚绂婚個璇峰叧绯汇��");
+							tips.add("璧跺揩甯姪TA鍗囩骇涓轰細鍛樺惂锛�");
+						}
+						object.put("vipBreakTip",tips);
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+				}
+			}
+			
+						
+			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", "鐐瑰嚮鎻愰啋TA锛岀郴缁熶細鍙戦�佷竴灏佺珯鍐呬俊锛屾彁閱掑叾娣诲姞寰俊鍙枫��");
+					} 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, 1);
+		long count = threeSaleSerivce.countFirstTeam(tid, 1);
+
+		JSONObject result = new JSONObject();
+		result.put("count", count);
+		result.put("list", organizeTeamNew(count, listTeam, tid, 1, false));
+		out.print(JsonUtil.loadTrueResult(result));
+	}
+	
+	
 	/**
 	 * 鐢ㄦ埛闃熷憳缁熻- IOS
 	 * 
@@ -376,7 +636,7 @@
 
 		long firstTeam = threeSaleSerivce.countFirstTeam(uid, 1);
 		resultData.put("boss", bossData);
-		resultData.put("helpLink", configService.get("team_help_url"));
+		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));
@@ -385,7 +645,7 @@
 		boolean hasTeam = true;
 		if (firstTeam <= 0) {
 			hasTeam = false;
-			resultData.put("invitelink", configService.get("invite_activation_url"));
+			resultData.put("invitelink", configService.get(ConfigKeyEnum.inviteActivationUrl.getKey()));
 		}
 		resultData.put("hasTeam", hasTeam);
 
@@ -404,7 +664,7 @@
 		resultData.put("hasCode", hasCode);
 		if (!hasCode) {
 			List<String> tipCode = new ArrayList<String>();
-			resultData.put("helpLinkActivate", configService.get("team_help_url"));
+			resultData.put("helpLinkActivate", configService.get(ConfigKeyEnum.teamHelpUrl.getKey()));
 			tipCode.add("婵�娲婚個璇峰姛鑳藉悗鎵嶅彲浠ラ個璇风矇涓濓紝鐩存帴绮変笣鏄敱浣犵洿鎺ラ個璇凤紝闂存帴绮変笣鏄敱浣犵殑鐩存帴绮変笣閭�璇枫��");
 			tipCode.add("閭�璇锋縺娲诲姛鑳斤紝蹇呴』瑕佹湁閭�璇风爜锛岄個璇风爜鍙互閫氳繃閲戝竵鍏戞崲锛屼篃鍙互鍏ㄧ綉鎼滅储銆�");
 			resultData.put("tipCode", tipCode);
@@ -477,7 +737,7 @@
 			bossData.put("inviteTime", "浣犱簬 " + sdf.format(inviteTime) + "鎺ュ彈浜員A鐨勯個璇�");
 		} else {
 			bossData.put("hasBoss", false);
-			bossData.put("helpLink", configService.get("invite_code_hlep_link"));
+			bossData.put("helpLink", configService.get(ConfigKeyEnum.inviteCodeHlepLink.getKey()));
 			bossData.put("weiXinTip", "鎭枩浣狅紝鎴戜滑鐨勪紭璐ㄧ敤鎴凤紱\r\n浣犲苟娌℃湁閭�璇蜂汉锛屼絾浣犵殑閭�璇锋縺娲诲姛鑳芥槸琚粯璁ゅ紑鍚殑锛沑r\n浣犳嫢鏈夌嫭鐗圭殑鏃犻個璇蜂汉婵�娲荤爜銆�");
 		}
 		return bossData;
@@ -616,10 +876,10 @@
 			JSONObject data = new JSONObject();
 			data.put("count", spreadImgService.countAll());
 			data.put("inviteCode", inviteCode);
-			data.put("helpLink", configService.get("invite_help_link"));
+			data.put("helpLink", configService.get(ConfigKeyEnum.inviteHelpLink.getKey()));
 			data.put("inviteRules",  values.getValue().replace("\n", "<br><br>"));
 			data.put("imgUrlList", JsonUtil.getSimpleGsonWithDate().toJson(imgList));
-			data.put("inviteLink", "http://a.app.qq.com/o/simple.jsp?pkgname=com.yeshi.ec.rebate");
+			data.put("inviteLink", Constant.YINGYONGBAO_LINK);
 			out.print(JsonUtil.loadTrue(0, JsonUtil.getSimpleGson().toJson(data), "鎴愬姛"));
 		} catch (Exception e) {
 			LogHelper.errorDetailInfo(e);
@@ -648,6 +908,17 @@
 		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
 	}
 	
+	 
 	
+	@RequestMapping(value = "remvoeBreak")
+	public void remvoeBreak(String callback, AcceptData acceptData,Long inviteId, Long uid, Long tid, PrintWriter out) {
+		if (uid == null || inviteId == null || tid == null) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("浼犺緭鍙傛暟涓嶅畬鏁�"));
+			return;
+		}
+		threeSaleSerivce.remvoeBreak(inviteId, uid, tid);
+		
+		JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("鎿嶄綔鎴愬姛"));
+	}
 	
 }

--
Gitblit v1.8.0