From 6d17fb69b25cd74c4598784a6cf6fe7a9b651e34 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 31 十二月 2019 12:01:34 +0800
Subject: [PATCH] 小程序接口相关修改

---
 fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java |   82 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 81 insertions(+), 1 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java
index 1868641..e250344 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java
@@ -6,7 +6,6 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
 
-import org.aspectj.weaver.JoinPointSignature;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.yeshi.utils.IPUtil;
@@ -19,9 +18,13 @@
 import com.yeshi.fanli.dto.WXMPAcceptData;
 import com.yeshi.fanli.dto.user.wx.WXMPLoginData;
 import com.yeshi.fanli.dto.user.wx.WXMPLoginResult;
+import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
+import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
+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.user.ForbiddenUserIdentifyCodeService;
 import com.yeshi.fanli.service.inter.user.UserAccountService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
@@ -52,6 +55,9 @@
 
 	@Resource
 	private RedisManager redisManager;
+
+	@Resource
+	private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
 
 	/**
 	 * 閫氳繃閭�璇风爜鑾峰彇鐢ㄦ埛淇℃伅
@@ -270,4 +276,78 @@
 		out.print(JsonUtil.loadTrueResult(data));
 	}
 
+	@RequestMapping("bindWX")
+	public void bindWX(WXMPAcceptData acceptData, Long uid, String wxEncryptedData, String wxIv,
+			HttpServletRequest request, HttpSession session, PrintWriter out) {
+		if (StringUtil.isNullOrEmpty(acceptData.getOpenId())) {
+			out.print(JsonUtil.loadFalseResult("openId涓虹┖"));
+			return;
+		}
+		
+		if(uid==null){
+			out.print(JsonUtil.loadFalseResult("uid涓虹┖"));
+			return;
+		}
+
+		if (StringUtil.isNullOrEmpty(wxEncryptedData) || StringUtil.isNullOrEmpty(wxIv)) {
+			out.print(JsonUtil.loadFalseResult("寰俊淇℃伅涓虹┖"));
+			return;
+		}
+		
+		WXMPSessionInfo sessionInfo = (WXMPSessionInfo) session.getAttribute(UserController.WXMP_SESSION_INFO_KEY);
+		if (sessionInfo == null) {
+			out.print(JsonUtil.loadFalseResult(90000, "璇烽噸鏂扮櫥褰�"));
+			return;
+		}
+
+		String sessionKey = sessionInfo.getSessionKey();
+		if (StringUtil.isNullOrEmpty(sessionKey)) {
+			out.print(JsonUtil.loadFalseResult("code鏃犳晥"));
+			return;
+		}
+
+		WXMPUserInfo userInfo = WXXCXUtil.getUserInfo(sessionKey, wxEncryptedData, wxIv);
+		if (userInfo == null || StringUtil.isNullOrEmpty(userInfo.getUnionId())) {
+			out.print(JsonUtil.loadFalseResult("鑾峰彇寰俊淇℃伅澶辫触"));
+			return;
+		}
+
+		// 缁戝畾寰俊
+
+		WeiXinUser wxUser = new WeiXinUser();
+		wxUser.setHeadimgurl(userInfo.getAvatarUrl());
+		wxUser.setCity(userInfo.getCity());
+		wxUser.setCountry(userInfo.getCountry());
+		wxUser.setNickname(userInfo.getNickName());
+		wxUser.setOpenid("");
+		wxUser.setProvince(userInfo.getProvince());
+		wxUser.setSex(userInfo.getGender());
+		wxUser.setUnionid(userInfo.getUnionId());
+
+		try {
+			UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+			// 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺
+			ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
+					.listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, user.getWxUnionId());
+			if (ic != null && ic.getEffective() != null && ic.getEffective()) {
+				out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+				// 灏佺鐢ㄦ埛
+				// 灏佺缁戝畾鐨勬甯哥敤鎴�
+				if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
+					userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勫井淇″彿");
+				}
+				return;
+			}
+
+			userAccountService.bindWeiXin(uid, wxUser);
+			user = userInfoService.getUserByIdWithMybatis(uid);
+			JSONObject data = new JSONObject();
+			data.put("user", UserUtil.filterForClientUser(user));
+			out.print(JsonUtil.loadTrueResult(data));
+		} catch (UserAccountException e) {
+			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+		}
+
+	}
+
 }

--
Gitblit v1.8.0