From ff076ec18ccc61d9d03863d859000e4a46c19a76 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 27 十二月 2019 11:20:35 +0800
Subject: [PATCH] 自购返利维权到账修改

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java |  269 ++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 170 insertions(+), 99 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java
index 9231859..67854f5 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java
@@ -40,9 +40,11 @@
 import com.yeshi.fanli.dto.HongBaoDTO;
 import com.yeshi.fanli.dto.money.AccountDetails;
 import com.yeshi.fanli.dto.order.OrderItem;
+import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
 import com.yeshi.fanli.entity.AppVersionInfo;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.user.AccountMessage;
+import com.yeshi.fanli.entity.bus.user.BindRemind;
 import com.yeshi.fanli.entity.bus.user.BindingAccount;
 import com.yeshi.fanli.entity.bus.user.Extract;
 import com.yeshi.fanli.entity.bus.user.ExtractRecord;
@@ -53,6 +55,7 @@
 import com.yeshi.fanli.entity.bus.user.UserActiveLog;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
+import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum;
 import com.yeshi.fanli.entity.bus.user.WeiXinUser;
 import com.yeshi.fanli.entity.common.AdminUser;
 import com.yeshi.fanli.entity.common.Config;
@@ -63,10 +66,10 @@
 import com.yeshi.fanli.entity.system.BusinessSystem;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
-import com.yeshi.fanli.exception.BindingAccountException;
 import com.yeshi.fanli.exception.goods.CollectionGoodsException;
 import com.yeshi.fanli.exception.taobao.TaoKeApiException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.exception.user.BindingAccountException;
 import com.yeshi.fanli.exception.user.UserCustomSettingsException;
 import com.yeshi.fanli.exception.user.UserInfoException;
 import com.yeshi.fanli.exception.user.UserInfoExtraException;
@@ -77,18 +80,20 @@
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
 import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
-import com.yeshi.fanli.service.inter.hongbao.ThreeSaleExtraInfoSerivce;
-import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
+import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
+import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
+import com.yeshi.fanli.service.inter.money.extract.ExtractRecordService;
+import com.yeshi.fanli.service.inter.money.extract.ExtractService;
 import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
+import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
 import com.yeshi.fanli.service.inter.order.LostOrderService;
 import com.yeshi.fanli.service.inter.order.OrderService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
+import com.yeshi.fanli.service.inter.redpack.RedPackForbidService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
 import com.yeshi.fanli.service.inter.user.AccountMessageService;
-import com.yeshi.fanli.service.inter.user.BindingAccountService;
-import com.yeshi.fanli.service.inter.user.ExtractRecordService;
-import com.yeshi.fanli.service.inter.user.ExtractService;
+import com.yeshi.fanli.service.inter.user.BindRemindService;
 import com.yeshi.fanli.service.inter.user.MaskKeyService;
 import com.yeshi.fanli.service.inter.user.ShamUserService;
 import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
@@ -96,9 +101,13 @@
 import com.yeshi.fanli.service.inter.user.UserActiveLogService;
 import com.yeshi.fanli.service.inter.user.UserCustomSettingsService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
+import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
+import com.yeshi.fanli.service.inter.user.UserRankService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
+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.vip.UserVIPInfoService;
 import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.GsonUtil;
@@ -108,8 +117,10 @@
 import com.yeshi.fanli.util.ThreadUtil;
 import com.yeshi.fanli.util.TimeUtil;
 import com.yeshi.fanli.util.Utils;
+import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.account.UserUtil;
 import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
+import com.yeshi.fanli.util.annotation.UserActive;
 import com.yeshi.fanli.util.email.MailSenderUtil;
 import com.yeshi.fanli.util.factory.AccountDetailsFactory;
 import com.yeshi.fanli.util.factory.HongBaoFactory;
@@ -214,6 +225,24 @@
 	@Resource
 	private UserTaoLiJinDetailService userTaoLiJinDetailService;
 
+	@Resource
+	private UserInfoModifyRecordService userInfoModifyRecordService;
+
+	@Resource
+	private BindRemindService bindRemindService;
+
+	@Resource
+	private RedPackBalanceService redPackBalanceService;
+
+	@Resource
+	private UserRankService userRankService;
+
+	@Resource
+	private UserVIPInfoService userVIPInfoService;
+	
+	@Resource
+	private RedPackForbidService redPackForbidService;
+
 	private static final String PASSWORD_MAX_ERROR = "password_max_error";
 	private static final String EXTRACT_MIN_MONEY = "extract_min_money";
 	private static final String EXTRACT_MAX_MONEY = "extract_max_money";
@@ -258,6 +287,8 @@
 				userActiveLog.setVersionCode(acceptData.getVersion());
 				userActiveLog.setOsVersion(acceptData.getOsVersion());
 				userActiveLog.setDeviceType(acceptData.getDeviceType());
+				userActiveLog.setDevice(acceptData.getDevice());
+
 				userActiveLogService.addUserActiveLog(userActiveLog);
 
 				outUserInfo(acceptData, out, remotIP, find, acceptData.getDevice());
@@ -286,7 +317,9 @@
 			int loginType = form.getLoginType();
 			// WeiXinUserParam wxParam = null;
 			// 濡傛灉鏄井淇$櫥闄嗭紝閭i渶瑕佸厛鑾峰彇鍒板井淇$殑unionid
-			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+			WXAccountInfoDTO account = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
+					account.getAppSecret());
 			if (loginType == Constant.WEIXIN && StringUtil.isNullOrEmpty(form.getWxUnionId())) {
 				// wxParam = WXinUtil.getWxParam(code);
 				if (weiXinUser == null) {
@@ -381,7 +414,11 @@
 												 * StringUtil.isNullOrEmpty(form
 												 * .getWxOpenId())
 												 */) {
-				WeiXinUser xinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+
+				WXAccountInfoDTO account = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+
+				WeiXinUser xinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
+						account.getAppSecret());
 				if (xinUser == null) {
 					out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
 					return;
@@ -594,7 +631,9 @@
 				welfareCenterNews = userInfoExtra.getCouponNews();
 			}
 
-			if (userInfoExtra.getInviteCode() != null && userInfoExtra.getInviteCode().trim().length() > 0) {
+			if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCodeVip())) {
+				invitCode = userInfoExtra.getInviteCodeVip();
+			} else {
 				invitCode = userInfoExtra.getInviteCode();
 			}
 		}
@@ -608,13 +647,8 @@
 		final UserInfo uuser = user;
 		ThreadUtil.run(new Runnable() {
 			public void run() {
-
-				try {
-					// 鑾峰彇閭�璇风爜锛氳嫢鏃犻個璇风爜涓斿瓨鍦ㄦ湁鏁堢殑闃熷憳鍏崇郴 鍒欒嚜鍔ㄧ敓鎴愰個璇风爜
-					userInfoExtraService.getUserInviteCode(uuser.getId());
-				} catch (UserInfoExtraException e) {
-					e.printStackTrace();
-				}
+				// 鑾峰彇閭�璇风爜锛氳嫢鏃犻個璇风爜涓斿瓨鍦ㄦ湁鏁堢殑闃熷憳鍏崇郴 鍒欒嚜鍔ㄧ敓鎴愰個璇风爜
+				userInfoExtraService.getInviteCodeByUid(uuser.getId());
 
 				LogHelper.userInfo(GsonUtil.toJsonExpose(uuser));
 				uuser.setLastLoginIp(remotIP);
@@ -640,7 +674,9 @@
 		}
 		int loginType = form.getLoginType();
 		if (loginType == Constant.WEIXIN) {
-			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+			WXAccountInfoDTO account = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
+					account.getAppSecret());
 
 			if (weiXinUser == null) {
 				out.print(JsonUtil.loadFalseResult("缁戝畾澶辫触锛岀敤鎴峰紓甯歌閲嶈瘯锛�"));
@@ -1077,7 +1113,7 @@
 	 * @param type
 	 * @param out
 	 */
-	@RequestSerializableByKey(key = "uid")
+	@RequestSerializableByKey(key = "#uid")
 	@RequestMapping(value = "extractmoneynew", method = RequestMethod.POST)
 	public void extractMoneyNew(AcceptData acceptData, long uid, BigDecimal money, String vcode,
 			HttpServletRequest request, int type, PrintWriter out) {
@@ -1192,9 +1228,9 @@
 		} else if (etype == 3) {
 			out.print(JsonUtil.loadFalseResult("鎻愮幇閲戦澶т簬鎴戠殑绾㈠寘"));
 		} else if (etype == 111) {
-			out.print(JsonUtil.loadFalseResult("鏇存崲浜嗘墜鏈哄彿鍚�7澶╁唴涓嶅厑璁告彁鐜�"));
+			out.print(JsonUtil.loadFalseResult("淇敼鎵嬫満鍙峰悗锛�7澶╁唴鏃犳硶鎻愮幇"));
 		} else if (etype == 110) {
-			out.print(JsonUtil.loadFalseResult("鏈夌淮鏉冭鍗曞皻鏈墸娆�"));
+			out.print(JsonUtil.loadFalseResult("鏈夊敭鍚庤鍗曞皻鏈墸娆�"));
 		}
 
 	}
@@ -1387,7 +1423,6 @@
 		}
 	}
 
-	
 	/**
 	 * h5鏀惰棌
 	 * 
@@ -1668,7 +1703,7 @@
 				}
 
 				boolean hasCode = false;
-				String inviteCode = userInfoExtraService.getUserInviteCode(uid);
+				String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
 				if (inviteCode != null && inviteCode.trim().length() > 0) {
 					hasCode = true; // 宸叉湁閭�璇风爜
 				} else {
@@ -1685,8 +1720,6 @@
 				resultData.put("boss", bossData);
 			}
 			out.print(JsonUtil.loadTrueResult(resultData));
-		} catch (UserInfoExtraException e) {
-			out.print(JsonUtil.loadFalseResult(e.getMsg()));
 		} catch (Exception e) {
 			out.print(JsonUtil.loadFalseResult("缁熻澶辫触"));
 			e.printStackTrace();
@@ -1727,15 +1760,10 @@
 					bossData = new JSONObject();
 					UserInfo boss = threeSale.getBoss();
 					if (boss != null) {
-						bossData.put("bossId", boss.getId());
 						bossData.put("nickName", boss.getNickName());
 						bossData.put("portrait", boss.getPortrait());
-						UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(boss.getId());
-						if (userInfoExtra != null) 
-							bossData.put("weiXin", userInfoExtra.getWeiXin());
 					}
 
-					
 					SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
 					Long createTime = threeSale.getCreateTime();
 					Date inviteTime = new Date(createTime);
@@ -1748,7 +1776,7 @@
 				}
 
 				boolean hasCode = false;
-				String inviteCode = userInfoExtraService.getUserInviteCode(uid);
+				String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
 				if (inviteCode != null && inviteCode.trim().length() > 0) {
 					hasCode = true; // 宸叉湁閭�璇风爜
 				} else {
@@ -1763,8 +1791,6 @@
 				resultData.put("boss", bossData);
 			}
 			out.print(JsonUtil.loadTrueResult(resultData));
-		} catch (UserInfoExtraException e) {
-			out.print(JsonUtil.loadFalseResult(e.getMsg()));
 		} catch (Exception e) {
 			out.print(JsonUtil.loadFalseResult("缁熻澶辫触"));
 			e.printStackTrace();
@@ -1815,7 +1841,7 @@
 			resultData.put("boss", bossData);
 
 			boolean hasCode = false;
-			String inviteCode = userInfoExtraService.getUserInviteCode(uid);
+			String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
 			if (inviteCode != null && inviteCode.trim().length() > 0) {
 				hasCode = true; // 宸叉湁閭�璇风爜
 			} else {
@@ -1826,13 +1852,10 @@
 
 			out.print(JsonUtil.loadTrueResult(resultData));
 
-		} catch (UserInfoExtraException e) {
-			out.print(JsonUtil.loadFalseResult(e.getMsg()));
 		} catch (Exception e) {
 			out.print(JsonUtil.loadFalseResult("缁熻澶辫触"));
 			e.printStackTrace();
 		}
-
 	}
 
 	/**
@@ -1847,48 +1870,35 @@
 	 */
 	@RequestMapping(value = "setextrainfo", method = RequestMethod.POST)
 	public void setExtraInfo(AcceptData acceptData, long uid, long inviteId, String memoName, PrintWriter out) {
-
-		try {
-			List<ThreeSale> listThreeSale = threeSaleSerivce.listbyIdAndBossId(inviteId, uid, null);
-			if (listThreeSale == null || listThreeSale.size() == 0) {
-				out.print(JsonUtil.loadFalseResult("璇ヨ褰曚笉瀛樺湪"));
-				return;
-			}
-
-			UserInfo worker = listThreeSale.get(0).getWorker();
-			if (worker == null) {
-				out.print(JsonUtil.loadFalseResult("璇ヨ褰曚笉瀛樺湪"));
-				return;
-			}
-
-			List<ThreeSaleExtraInfo> list = threeSaleExtraInfoSerivce.listbyBossIdAndWorkerId(uid, worker.getId());
-			if (list == null || list.size() == 0) {
-
-				ThreeSaleExtraInfo extraInfo = new ThreeSaleExtraInfo();
-				extraInfo.setWorker(worker);
-				extraInfo.setNickname(memoName);
-				extraInfo.setCreateTime(new Date());
-				extraInfo.setUpdateTime(new Date());
-
-				UserInfo boss = new UserInfo(uid);
-				extraInfo.setBoss(boss);
-
-				threeSaleExtraInfoSerivce.insert(extraInfo);
-
-			} else {
-				ThreeSaleExtraInfo extraInfo = list.get(0);
-				extraInfo.setNickname(memoName);
-				extraInfo.setUpdateTime(new Date());
-				threeSaleExtraInfoSerivce.updateByPrimaryKey(extraInfo);
-			}
-
-			out.print(JsonUtil.loadTrueResult("淇濆瓨鎴愬姛"));
-
-		} catch (Exception e) {
-			out.print(JsonUtil.loadFalseResult("淇濆瓨澶辫触"));
-			e.printStackTrace();
+		List<ThreeSale> listThreeSale = threeSaleSerivce.listbyIdAndBossId(inviteId, uid, null);
+		if (listThreeSale == null || listThreeSale.size() == 0) {
+			out.print(JsonUtil.loadFalseResult("璇ヨ褰曚笉瀛樺湪"));
+			return;
 		}
 
+		UserInfo worker = listThreeSale.get(0).getWorker();
+		if (worker == null) {
+			out.print(JsonUtil.loadFalseResult("璇ヨ褰曚笉瀛樺湪"));
+			return;
+		}
+
+		ThreeSaleExtraInfo extraInfo = threeSaleExtraInfoSerivce.getbyBossIdAndWorkerId(uid, worker.getId());
+		if (extraInfo == null) {
+			extraInfo = new ThreeSaleExtraInfo();
+			extraInfo.setWorker(worker);
+			extraInfo.setNickname(memoName);
+			extraInfo.setCreateTime(new Date());
+			extraInfo.setUpdateTime(new Date());
+			extraInfo.setBoss(new UserInfo(uid));
+			threeSaleExtraInfoSerivce.insertSelective(extraInfo);
+		} else {
+			ThreeSaleExtraInfo updateInfo = new ThreeSaleExtraInfo();
+			updateInfo.setId(extraInfo.getId());
+			updateInfo.setNickname(memoName);
+			updateInfo.setUpdateTime(new Date());
+			threeSaleExtraInfoSerivce.updateByPrimaryKeySelective(updateInfo);
+		}
+		out.print(JsonUtil.loadTrueResult("淇濆瓨鎴愬姛"));
 	}
 
 	/**
@@ -2017,7 +2027,7 @@
 
 		try {
 
-			String inviteCode = userInfoExtraService.getUserInviteCode(uid);
+			String inviteCode = userInfoExtraService.getInviteCodeByUid(uid);
 
 			JSONObject inviteData = new JSONObject();
 			if (inviteCode == null || inviteCode.trim().length() == 0) {
@@ -2035,8 +2045,6 @@
 
 			out.print(JsonUtil.loadTrueResult(data));
 
-		} catch (UserInfoExtraException e) {
-			out.print(JsonUtil.loadFalseResult(e.getMsg()));
 		} catch (Exception e) {
 			out.print(JsonUtil.loadFalseResult("鑾峰彇澶辫触"));
 			e.printStackTrace();
@@ -2051,6 +2059,7 @@
 	 * @param requst
 	 * @param out
 	 */
+	@UserActive(uid = "#uid")
 	@RequestMapping(value = "getuserinfoNew", method = RequestMethod.POST)
 	public void getuserinfoNew(AcceptData acceptData, Long uid, HttpServletRequest requst, PrintWriter out) {
 		try {
@@ -2076,6 +2085,7 @@
 			userActiveLog.setVersionCode(acceptData.getVersion());
 			userActiveLog.setOsVersion(acceptData.getOsVersion());
 			userActiveLog.setDeviceType(acceptData.getDeviceType());
+			userActiveLog.setDevice(acceptData.getDevice());
 			userActiveLogService.addUserActiveLog(userActiveLog);
 
 			// 澶勭悊鐢ㄦ埛淇℃伅
@@ -2124,11 +2134,13 @@
 				if (userInfoExtra.getCouponNews() != null) {
 					welfareCenterNews = userInfoExtra.getCouponNews();
 				}
-
-				if (userInfoExtra.getInviteCode() != null && userInfoExtra.getInviteCode().trim().length() > 0) {
+				// vip閭�璇风爜浼樺厛
+				if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCodeVip())) {
+					invitCode = userInfoExtra.getInviteCodeVip();
+				} else if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) {
 					invitCode = userInfoExtra.getInviteCode();
 				}
-
+				
 				if (userInfoExtra.getUserRank() != null) {
 					String picture = userInfoExtra.getUserRank().getPicture();
 					String icon = userInfoExtra.getUserRank().getIcon();
@@ -2138,25 +2150,55 @@
 					userInfo.setRankNamePicture(null);
 					userInfo.setRankIcon(null);
 				}
-				
-				userInfo.setSex(userInfoExtra.getSex());
-				userInfo.setWeiXin(userInfoExtra.getWeiXin());
+
+				// 1.6.5 涔嬪悗杩斿洖鎬у埆銆佸井淇″彿
+				if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
+					if (userInfoExtra.getSex() != null)
+						userInfo.setSex(userInfoExtra.getSex());
+
+					if (!StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin()))
+						userInfo.setWeiXin(userInfoExtra.getWeiXin());
+				}
+			}
+			// 1.6.5 涔嬪悗杩斿洖 寰俊鍙锋彁绀�
+			if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion()))
+				userInfo.setWeiXinTip("娣诲姞寰俊鍙峰悗锛屼綘鐨勯個璇蜂汉鍜岀洿鎺ョ矇涓濆彲浠ラ�氳繃寰俊涓庝綘寤虹珛鑱旂郴銆�");
+
+			// 鏌ヨ鏄惁涓篤IP
+			if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
+				userInfo.setVip(userVIPInfoService.isVIP(uid));
 			}
 
 			data.put("user", JsonUtil.getConvertBigDecimalToStringBuilder(gsonBuilder).create().toJson(userInfo));
 			data.put("invitCode", invitCode); // 閭�璇风爜
+			if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCodeVip()))
+				data.put("invitCodeUpdated", true);// 閭�璇风爜鏄惁宸茬粡淇敼杩�
+			else
+				data.put("invitCodeUpdated", false);
 			data.put("welfareCenterNews", welfareCenterNews);// 绂忓埄涓績娑堟伅
+			data.put("vipLink", configService.get("vip_link"));// 瓒呯骇浼氬憳鍗囩骇閾炬帴
+
+			// 2.0.1涔嬪悗缁戝畾鎵嬫満鍙�
+			if (VersionUtil.greaterThan_2_0_1(acceptData.getPlatform(), acceptData.getVersion())) {
+				boolean bindPhone = false;
+				if (StringUtil.isNullOrEmpty(userInfo.getPhone()))
+					bindPhone = bindRemindService.bindRemind(uid, BindRemind.TYPE_PHONE);
+				data.put("bindPhone", bindPhone);
+			}
+
+			// 2.0.2 鐗堟湰
+			if (VersionUtil.greaterThan_2_1(acceptData.getPlatform(), acceptData.getVersion())) {
+				boolean verifyForbid = redPackForbidService.verifyForbid(uid);
+				data.put("redPackLock", verifyForbid);
+			}
+
 			out.print(JsonUtil.loadTrueResult(data));
 
 			final UserInfo uuser = userInfo;
 			ThreadUtil.run(new Runnable() {
 				public void run() {
-					try {
-						// 鑾峰彇閭�璇风爜锛氳嫢鏃犻個璇风爜涓斿瓨鍦ㄦ湁鏁堢殑闃熷憳鍏崇郴 鍒欒嚜鍔ㄧ敓鎴愰個璇风爜
-						userInfoExtraService.getUserInviteCode(uuser.getId());
-					} catch (UserInfoExtraException e) {
-						e.printStackTrace();
-					}
+					// 鑾峰彇閭�璇风爜锛氳嫢鏃犻個璇风爜涓斿瓨鍦ㄦ湁鏁堢殑闃熷憳鍏崇郴 鍒欒嚜鍔ㄧ敓鎴愰個璇风爜
+					userInfoExtraService.getInviteCodeByUid(uuser.getId());
 
 					// 鏇存柊鐢ㄦ埛闄勫姞淇℃伅锛岃�佺敤鎴蜂笉瀛樺湪鐨勯渶瑕佹坊鍔�
 					try {
@@ -2261,7 +2303,8 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "saveInfo")
-	public void saveInfo(AcceptData acceptData, String nickName, String weiXin, Integer sex, Long uid, PrintWriter out) {
+	public void saveInfo(AcceptData acceptData, String nickName, String weiXin, Integer sex, Long uid,
+			String inviteCode, PrintWriter out) {
 		try {
 			if (uid == null) {
 				out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
@@ -2274,30 +2317,34 @@
 					out.print(JsonUtil.loadFalseResult("鏄电О杩囬暱"));
 					return;
 				}
-				
+
 				if (maskKeyService.examineContent(nickName)) {
 					out.print(JsonUtil.loadFalseResult("涓嶈兘鍖呭惈鏁忔劅璇嶆眹"));
 					return;
 				}
 				userInfoService.saveUserInfo(nickName, uid);
+
+				userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.nickName, nickName);
 			}
-			
+
 			// 淇敼寰俊鍙�
 			if (!StringUtil.isNullOrEmpty(weiXin)) {
 				if (weiXin.length() > 32) {
 					out.print(JsonUtil.loadFalseResult("寰俊鍙疯繃闀�"));
 					return;
 				}
-				
+
 				UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
 				if (userInfoExtra != null) {
 					UserInfoExtra extra = new UserInfoExtra();
 					extra.setId(userInfoExtra.getId());
 					extra.setWeiXin(weiXin);
 					userInfoExtraService.saveUserInfoExtra(extra);
+
+					userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.setWeiXinNum, weiXin);
 				}
 			}
-			
+
 			// 淇敼鎬у埆
 			if (sex != null && sex > 0 && sex < 3) {
 				UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
@@ -2306,6 +2353,30 @@
 					extra.setId(userInfoExtra.getId());
 					extra.setSex(sex);
 					userInfoExtraService.saveUserInfoExtra(extra);
+
+					userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.gender, sex + "");
+				}
+			}
+
+			if (!StringUtil.isNullOrEmpty(inviteCode)) {// 閭�璇风爜涓嶄负绌�
+				inviteCode = inviteCode.trim();
+				if (inviteCode.length() >= 4 && inviteCode.length() <= 12) {
+
+					if (!userVIPInfoService.isVIP(uid)) {
+						out.print(JsonUtil.loadFalseResult(20, "鍙湁瓒呯骇浼氬憳鎵嶈兘淇敼"));
+						return;
+					}
+
+					try {
+						userInfoExtraService.updateInviteCodeVip(inviteCode, uid);
+						out.print(JsonUtil.loadTrueResult("淇濆瓨鎴愬姛"));
+						return;
+					} catch (UserInfoExtraException e) {
+						out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMessage()));
+					}
+				} else {
+					out.print(JsonUtil.loadFalseResult(1, "閭�璇风爜蹇呴』涓�4鍒�12浣�"));
+					return;
 				}
 			}
 			out.print(JsonUtil.loadTrueResult("淇濆瓨鎴愬姛"));

--
Gitblit v1.8.0