From 4114e871bcb3dce771b6aed64a1027d0bbb95ca6 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 16 五月 2019 15:28:37 +0800
Subject: [PATCH] 增加动态用户

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java |  210 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 210 insertions(+), 0 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java
index 6f34566..03c9e92 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java
@@ -9,6 +9,7 @@
 
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.yeshi.utils.JsonUtil;
 import org.yeshi.utils.encrypt.DESUtil;
 
@@ -45,6 +46,7 @@
 import com.yeshi.fanli.service.inter.user.ShamUserService;
 import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
 import com.yeshi.fanli.service.inter.user.TBPidService;
+import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
 import com.yeshi.fanli.service.inter.user.UserAccountService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.UserMoneyService;
@@ -132,6 +134,9 @@
 
 	@Resource
 	private UserMoneyService userMoneyService;
+
+	@Resource
+	private UserAccountBindingHistoryService userAccountBindingHistoryService;
 
 	private static final String PASSWORD_MAX_ERROR = "password_max_error";
 	private static final String EXTRACT_MIN_MONEY = "extract_min_money";
@@ -910,6 +915,8 @@
 		}
 		redisManager.cacheCommonString(key, "1", 120);
 
+		
+
 		// 鏀粯瀹濈粦瀹�
 		ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
 				.listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.alipayAccount, account);
@@ -1104,4 +1111,207 @@
 			deviceTokenHWService.unBindDeviceToken(acceptData.getDevice());
 		out.print(JsonUtil.loadTrueResult(""));
 	}
+
+	/**
+	 * 鏂扮増鐧诲綍 V1.5.3
+	 * 
+	 * @param acceptData
+	 * @param vcode
+	 * @param phone
+	 * @param code
+	 * @param loginType
+	 *            鐧诲綍鏂瑰紡锛� 1-鎵嬫満鐧诲綍 2-寰俊鐧诲綍
+	 * @param request
+	 * @param out
+	 */
+	@RequestMapping(value = "loginNew", method = RequestMethod.POST)
+	public void loginNew(AcceptData acceptData, String vcode, String phone, String code, int loginType,
+			HttpServletRequest request, PrintWriter out) {
+
+		try {
+			BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
+					acceptData.getPackages());
+			if (system == null) {
+				out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+				return;
+			}
+
+			UserInfo userInfo = null;
+			// 鎵嬫満鐧诲綍
+			if (loginType == 1) {
+				userInfo = userAccountService.loginPhone(request, loginType, vcode, phone, system.getAppid());
+			}
+
+			// 寰俊鐧诲綍
+			if (loginType == 2) {
+				userInfo = userAccountService.loginWinXin(request, loginType, code, system.getAppid());
+			}
+
+			if (userInfo == null) {
+				out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
+			} else {
+				JSONObject data = new JSONObject();
+				data.put("userInfo", UserUtil.filterForClientUser(userInfo));
+				out.print(JsonUtil.loadTrueResult(data));
+
+				final UserInfo uuser = userInfo;
+				ThreadUtil.run(new Runnable() {
+					public void run() {
+						try {
+							/* 鍚屾鏈櫥褰曚箣鍓嶈澶囨娊濂栨暟鎹� */
+							int platformType = 0;
+							String platform = acceptData.getPlatform();
+							if ("android".equals(platform)) {
+								platformType = 1;
+							} else if ("ios".equals(platform)) {
+								platformType = 2;
+							}
+							userSystemCouponService.copyLotteryPrize(uuser.getId(), platformType,
+									acceptData.getDevice());
+						} catch (Exception e) {
+							e.printStackTrace();
+						}
+					}
+				});
+			}
+
+		} catch (UserAccountException e) {
+			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+			try {
+				LogHelper.cookieLog("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
+		} catch (Exception e) {
+			out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
+			try {
+				LogHelper.errorDetailInfo(e);
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
+		}
+	}
+
+	/**
+	 * 缁戝畾鐢佃瘽鍙风爜 V1.5.3
+	 * 
+	 * @param acceptData
+	 * @param vcode
+	 * @param phone
+	 * @param out
+	 */
+	@RequestMapping(value = "bindPhoneNew")
+	public void bindPhoneNew(AcceptData acceptData, Long uid, String vcode, String phone, PrintWriter out) {
+
+		BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
+				acceptData.getPackages());
+		if (system == null) {
+			out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+			return;
+		}
+
+		if (StringUtil.isNullOrEmpty(vcode)) {
+			out.print(JsonUtil.loadFalseResult("楠岃瘉鐮佷笉鑳戒负绌�"));
+			return;
+		}
+
+		if (StringUtil.isNullOrEmpty(phone)) {
+			out.print(JsonUtil.loadFalseResult("鐢佃瘽鍙风爜涓嶈兘涓虹┖"));
+			return;
+		}
+
+		phone = phone.replaceAll(" ", "");
+
+		String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_BIND);
+		if (Constant.IS_OUTNET) {
+			if (!vcode.equalsIgnoreCase(oldVCode)) {
+				out.print(JsonUtil.loadFalseResult(9001, "楠岃瘉鐮侀敊璇紝閲嶆柊杈撳叆"));
+				return;
+			}
+			redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_BIND);
+		}
+
+		try {
+			// 缁戝畾鐢ㄦ埛
+			userAccountService.bindPhoneNew(uid, phone);
+
+			UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+			// 鍒ゆ柇鐢佃瘽鍙风爜鏄惁宸茬粡灏佺
+			ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
+					.listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone);
+			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) {
+					UserInfo update = new UserInfo(uid);
+					update.setState(UserInfo.STATE_FORBIDDEN);
+					update.setStateDesc("缁戝畾琚皝绂佺殑鐢佃瘽鍙风爜琚皝绂�");
+					userInfoService.updateByPrimaryKeySelective(update);
+				}
+				return;
+			}
+
+			JSONObject data = new JSONObject();
+			data.put("userInfo", UserUtil.filterForClientUser(user));
+			out.print(JsonUtil.loadTrueResult(data));
+
+		} catch (UserAccountException e) {
+			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+		} catch (Exception e) {
+			out.print(JsonUtil.loadFalseResult(1, "缁戝畾澶辫触"));
+		}
+	}
+
+	/**
+	 * 鏇存敼寰俊
+	 * 
+	 * @param acceptData
+	 * @param uid
+	 * @param code
+	 * @param out
+	 */
+	@RequestMapping(value = "bindWeiXin")
+	public void bindWeiXin(AcceptData acceptData, Long uid, String code, PrintWriter out) {
+		BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
+				acceptData.getPackages());
+
+		if (system == null) {
+			out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+			return;
+		}
+
+		if (StringUtil.isNullOrEmpty(code)) {
+			out.print(JsonUtil.loadFalseResult("璇蜂笂浼燾ode"));
+			return;
+		}
+
+		try {
+			userAccountService.bindWeiXin(uid, code);
+
+			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) {
+					UserInfo update = new UserInfo(uid);
+					update.setState(UserInfo.STATE_FORBIDDEN);
+					update.setStateDesc("缁戝畾琚皝绂佺殑寰俊鍙疯灏佺");
+					userInfoService.updateByPrimaryKeySelective(update);
+				}
+				return;
+			}
+
+			JSONObject data = new JSONObject();
+			data.put("userInfo", UserUtil.filterForClientUser(user));
+			out.print(JsonUtil.loadTrueResult(data));
+		} catch (UserAccountException e) {
+			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+		}
+	}
+
 }

--
Gitblit v1.8.0