From 9b55262bb45c81c997ab04e55e8de13e14b8ca7d Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期二, 29 十月 2019 15:11:37 +0800
Subject: [PATCH] 商品最高返

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v2/InviteControllerV2.java |   68 +++++++++++++++++++++++++++++++--
 1 files changed, 63 insertions(+), 5 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 faf04c1..0416440 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,6 +13,7 @@
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.yeshi.utils.JsonUtil;
 
+import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.msg.UserSystemMsg;
 import com.yeshi.fanli.entity.bus.msg.UserSystemMsgTypeEnum;
@@ -20,6 +21,8 @@
 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.WeiXinUser;
+import com.yeshi.fanli.exception.user.UserAccountException;
 import com.yeshi.fanli.exception.user.UserInfoExtraException;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.msg.UserSystemMsgService;
@@ -29,7 +32,10 @@
 import com.yeshi.fanli.service.inter.user.invite.ThreeSaleExtraInfoSerivce;
 import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
+import com.yeshi.fanli.util.wx.WXLoginUtil;
 
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
@@ -38,6 +44,9 @@
 @RequestMapping("api/v2/invite")
 public class InviteControllerV2 {
 
+	@Resource
+	private RedisManager redisManager;
+	
 	@Resource
 	private ConfigService configService;
 
@@ -79,25 +88,74 @@
 	}
 
 	/**
-	 * 閭�璇风爜寰俊
+	 * 閭�璇风爜寰俊楠岃瘉
 	 * 
 	 * @param out
 	 */
 	@RequestMapping(value = "verifyWX")
 	public void verifyWX(AcceptData acceptData, Long uid, String code, PrintWriter out) {
 		try {
-			UserInfo userInfo = userInfoExtraService.getInviterInfo(
-					Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion()), uid, code);
+			WXAccountInfoDTO wxAccount = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+			// 鑾峰彇寰俊淇℃伅
+			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUser(code, wxAccount.getAppId(), wxAccount.getAppSecret());
+			if (weiXinUser == null)
+				throw new UserInfoExtraException(1, "寰俊鎺堟潈澶辫触");
+			
+			String wxUnionId = weiXinUser.getUnionid();
+			if (wxUnionId == null || wxUnionId.trim().length() == 0)
+				throw new UserInfoExtraException(1, "寰俊鎺堟潈澶辫触");
+			
+			String activeWX = StringUtil.Md5("activeWX:" + weiXinUser.getUnionid());
+			redisManager.cacheCommonString(activeWX, JsonUtil.getSimpleGson().toJson(weiXinUser), 60 * 20);
+			
+			// 閭�璇峰叧绯荤敤鎴蜂俊鎭�
+			UserInfo userInfo = userInfoExtraService.getInviterInfo(uid, wxUnionId);
+			
 			JSONObject data = new JSONObject();
 			data.put("nickName", userInfo.getNickName());
 			data.put("portrait", userInfo.getPortrait());
 			data.put("tips", "纭瑕佹垚涓篢A鐨勪竴绾ч槦鍛樺悧锛熼個璇峰叧绯讳竴鏃﹀缓绔嬩笉鍙洿鏀广��");
+			data.put("key", activeWX);
 			out.print(JsonUtil.loadTrueResult(data));
 		} catch (UserInfoExtraException e) {
 			out.print(JsonUtil.loadFalseResult(e.getMsg()));
 		}
 	}
 
+	/**
+	 * 寰俊婵�娲�
+	 * @param acceptData
+	 * @param uid
+	 * @param key 楠岃瘉杩斿洖鐨刱ey
+	 * @param out
+	 */
+	@RequestSerializableByKey(key = "'activeInviteWX-'+#uid")
+	@RequestMapping(value = "activeInviteWX")
+	public void activeInviteWX(AcceptData acceptData, Long uid, String key, PrintWriter out) {
+		try {
+			String value = redisManager.getCommonString(key);
+			if (StringUtil.isNullOrEmpty(value))
+				throw new UserAccountException(1, "寰俊鎺堟潈澶辨晥");
+			
+			WeiXinUser weiXinUser = JsonUtil.getSimpleGson().fromJson(value, WeiXinUser.class);
+			if (weiXinUser == null)
+				throw new UserAccountException(1, "寰俊鎺堟潈澶辨晥");
+			
+			userInfoExtraService.activeInviteWX(uid, weiXinUser);
+			// 鍒犻櫎缂撳瓨
+			redisManager.removeCommonString(key);
+			
+			out.print(JsonUtil.loadTrueResult("閭�璇风爜婵�娲绘垚鍔�"));
+		} catch (UserInfoExtraException e) {
+			out.print(JsonUtil.loadFalseResult(e.getMsg()));
+		} catch (Exception e) {
+			out.print(JsonUtil.loadFalseResult("閭�璇风爜婵�娲诲け璐�"));
+			e.printStackTrace();
+		}
+	}
+	
+	
+	
 	/**
 	 * 鐢ㄦ埛闃熷憳鍒楄〃鏌ヨ 1.5.3鏌ヨ鏈夋晥闃熷憳
 	 * 
@@ -207,7 +265,7 @@
 					if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) {
 						object.put("weiXin", userInfoExtra.getWeiXin());
 						object.put("weiXinState", 3);
-						object.put("weiXinTip", "娣诲姞TA鐨勫井淇★紝浣犲彲鏁欐巿TA濡備綍閫氳繃杩斿埄鍒歌禋閽辨妧宸с��");
+						object.put("weiXinTip", "娣诲姞TA鐨勫井淇★紝浣犲彲鏁欐巿TA濡備綍閫氳繃鏉挎牀蹇渷璧氶挶鎶�宸с��");
 					} else {
 						if (!threeSaleExtraInfoSerivce.isRemindWorker(uid, workerId)) {
 							object.put("weiXinState", 1);
@@ -314,7 +372,7 @@
 			if (userInfoExtra != null && !StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) {
 				bossData.put("weiXin", userInfoExtra.getWeiXin());
 				bossData.put("weiXinState", 3);
-				bossData.put("weiXinTip", "娣诲姞TA鐨勫井淇★紝浣犲彲鍚慣A瀛︿範濡備綍閫氳繃杩斿埄鍒歌禋閽便��");
+				bossData.put("weiXinTip", "娣诲姞TA鐨勫井淇★紝浣犲彲鍚慣A瀛︿範濡備綍閫氳繃鏉挎牀蹇渷璧氶挶銆�");
 			} else {
 				if (!threeSaleExtraInfoSerivce.isRemindBoss(boss.getId(), uid)) {
 					bossData.put("weiXinState", 1);

--
Gitblit v1.8.0