From 88b54772dbcf5ecab1e2316e4e4626ac901b8908 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期二, 22 一月 2019 15:58:24 +0800
Subject: [PATCH] 邀请码添加返回状态

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java |  205 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 165 insertions(+), 40 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 d12d4ae..e6f5c50 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.yeshi.utils.JsonUtil;
 
 import com.alipay.api.AlipayApiException;
 import com.yeshi.fanli.entity.accept.AcceptData;
@@ -29,10 +30,9 @@
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.config.InviteGetMoneyService;
 import com.yeshi.fanli.service.inter.config.SystemService;
-import com.yeshi.fanli.service.inter.goods.CollectionGoodsService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoMessageService;
 import com.yeshi.fanli.service.inter.hongbao.HongBaoService;
+import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
 import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
 import com.yeshi.fanli.service.inter.order.LostOrderService;
 import com.yeshi.fanli.service.inter.order.OrderItemServcie;
@@ -43,19 +43,18 @@
 import com.yeshi.fanli.service.inter.user.AccountMessageService;
 import com.yeshi.fanli.service.inter.user.BindingAccountService;
 import com.yeshi.fanli.service.inter.user.ExtractService;
-import com.yeshi.fanli.service.inter.user.MoneyRecordService;
-import com.yeshi.fanli.service.inter.user.PassWordErrorRecordService;
 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.UserAccountService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.WxDownService;
+import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
+import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.GsonUtil;
 import com.yeshi.fanli.util.RedisManager;
 import com.yeshi.fanli.util.StringUtil;
 import com.yeshi.fanli.util.account.UserUtil;
 import com.yeshi.fanli.util.wx.WXLoginUtil;
-import org.yeshi.utils.JsonUtil;
 
 import net.sf.json.JSONObject;
 
@@ -79,7 +78,7 @@
 	private HongBaoService hongBaoService;
 
 	@Resource
-	private MoneyRecordService moneyRecordService;
+	private HongBaoV2Service hongBaoV2Service;
 
 	@Resource
 	private BindingAccountService bindingAccountService;
@@ -88,16 +87,10 @@
 	private ExtractService extractService;
 
 	@Resource
-	private PassWordErrorRecordService passWordErrorRecordService;
-
-	@Resource
 	private ConfigService configService;
 
 	@Resource
 	private SystemService systemService;
-
-	@Resource
-	private HongBaoMessageService hongBaoMessageService;
 
 	@Resource
 	private ShamUserService shamUserService;
@@ -118,12 +111,7 @@
 	private AccountMessageService accountMessageService;
 
 	@Resource
-	private CollectionGoodsService collectionGoodsService;
-	@Resource
 	private HongBaoManageService hongBaoManageService;
-
-	@Resource
-	private WxDownService wxDownService;
 
 	@Resource
 	private UserAccountService userAccountService;
@@ -142,6 +130,12 @@
 
 	@Resource
 	private TaoBaoUnionConfigService taoBaoUnionConfigService;
+
+	@Resource
+	private SpreadUserImgService spreadUserImgService;
+
+	@Resource
+	private UserShareGoodsRecordService userShareGoodsRecordService;
 
 	private static final String PASSWORD_MAX_ERROR = "password_max_error";
 	private static final String EXTRACT_MIN_MONEY = "extract_min_money";
@@ -162,14 +156,14 @@
 	@RequestMapping(value = "login")
 	public void login(AcceptData acceptData, String code, String vcode, String phone, boolean wxinstall,
 			String tbOpenid, String tbNickName, String tbPortrait, int loginType, Boolean first, HttpSession session,
-			PrintWriter out) {
+			HttpServletRequest request, PrintWriter out) {
 		System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
 		if (system == null) {
 			out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
 			return;
 		}
 
-		if (loginType == 3)// 楠岃瘉鐭俊楠岃瘉鐮�
+		if (loginType == 3 && !Constant.IS_TEST)// 楠岃瘉鐭俊楠岃瘉鐮�
 		{
 			String oldVcode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN);
 			if (StringUtil.isNullOrEmpty(oldVcode) || !oldVcode.equalsIgnoreCase(vcode)) {
@@ -185,7 +179,7 @@
 		tbUserInfo.setTbName(tbNickName);
 		tbUserInfo.setTbPic(tbPortrait);
 		try {
-			LoginResult result = userAccountService.login(session, first, system.getAppid(), code, phone, tbUserInfo,
+			LoginResult result = userAccountService.login(request, first, system.getAppid(), code, phone, tbUserInfo,
 					wxinstall, loginType);
 			if (result == null)
 				LogHelper.error("login-result涓虹┖鍊�");
@@ -204,6 +198,11 @@
 			root.put("data", data);
 			out.print(JsonUtil.loadTrueResult(root));
 		} catch (UserAccountException e) {
+			try {
+				LogHelper.cookieLog("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
 			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
 		}
 	}
@@ -328,11 +327,35 @@
 				out.print(JsonUtil.loadFalseResult(1, "鑾峰彇寰俊鐢ㄦ埛淇℃伅澶辫触"));
 				return;
 			}
-			user = userAccountService.getUserInfoByWXUnionId(system.getAppid(), weiXinUser.getUnionid());
+			try {
+				user = userAccountService.getUserInfoByWXUnionId(system.getAppid(), weiXinUser.getUnionid());
+			} catch (UserAccountException e) {
+				try {
+					LogHelper.errorDetailInfo(e, null, "鑾峰彇鐢ㄦ埛淇℃伅鍑洪敊");
+				} catch (Exception e1) {
+					e1.printStackTrace();
+				}
+			}
 		} else if (!StringUtil.isNullOrEmpty(tbOpenid)) {
-			user = userAccountService.getUserInfoByTaoBaoOpenId(system.getAppid(), tbOpenid);
+			try {
+				user = userAccountService.getUserInfoByTaoBaoOpenId(system.getAppid(), tbOpenid);
+			} catch (UserAccountException e) {
+				try {
+					LogHelper.errorDetailInfo(e);
+				} catch (Exception e1) {
+					e1.printStackTrace();
+				}
+			}
 		} else if (!StringUtil.isNullOrEmpty(phone)) {
-			user = userAccountService.getUserInfoByPhone(system.getAppid(), phone);
+			try {
+				user = userAccountService.getUserInfoByPhone(system.getAppid(), phone);
+			} catch (UserAccountException e) {
+				try {
+					LogHelper.errorDetailInfo(e);
+				} catch (Exception e1) {
+					e1.printStackTrace();
+				}
+			}
 		}
 
 		if (user == null) {
@@ -724,6 +747,97 @@
 		}
 	}
 
+	@RequestMapping(value = "bindalipaywithverifynew")
+	public void bindAlipayWithVerifyNew(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
+
+		System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
+		if (system == null) {
+			out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+			return;
+		}
+
+		if (uid == null || uid == 0) {
+			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
+			return;
+		}
+
+		if (StringUtil.isNullOrEmpty(name)) {
+			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
+			return;
+		}
+
+		if (StringUtil.isNullOrEmpty(account)) {
+			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
+			return;
+		}
+
+		UserInfo user = userInfoService.getUserById(uid);
+
+		boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
+		if (!bind) {
+			out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
+			return;
+		}
+
+		String key = "bindalipay-" + uid;
+
+		if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
+			out.print(JsonUtil.loadFalseResult(1001, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
+			return;
+		}
+		redisManager.cacheCommonString(key, "1", 120);
+		// 鍙互灞曠ず缁欑敤鎴风湅鐨勯敊璇爜
+		String[] ALIPAY_CODES = new String[] { "SYSTEM_ERROR", "PERMIT_CHECK_PERM_LIMITED", "PERM_AML_NOT_REALNAME_REV",
+				"PERM_AML_NOT_REALNAME_REV", "PAYEE_USER_INFO_ERROR", "PAYEE_ACC_OCUPIED",
+				"PERMIT_CHECK_PERM_IDENTITY_THEFT", "PERMIT_NON_BANK_LIMIT_PAYEE", "EXCEED_LIMIT_UNRN_DM_AMOUNT" };
+		try {
+			BindingAccount bindingAccount = bindingAccountService.changeAlipayBindingWithVerify(uid, name, account);
+			out.print(JsonUtil.loadTrue(0, JsonUtil.getGson().toJson(bindingAccount),
+					"绯荤粺宸叉垚鍔熻浆璐�0.1鍏冨埌鎻愮幇璐﹀彿涓紝鎻愮幇璐﹀彿楠岃瘉閫氳繃锛屾伃鍠滀綘锛佸彲浠ユ彁鐜颁簡銆�"));
+		} catch (AlipayTransferException e1) {
+			if (e1.getSubCode().equalsIgnoreCase("PAYEE_NOT_EXIST")) {
+				String msg = "绯荤粺鏈兘鎴愬姛杞处0.1鍏冿紝鎻愮幇璐﹀彿淇℃伅鏈夎锛岃鏍稿鍚庨噸鏂板~鍐欍��";
+				out.print(JsonUtil.loadFalseResult(1, msg));
+			} else {
+				for (String st : ALIPAY_CODES) {
+					if (st.equalsIgnoreCase(e1.getSubCode())) {
+						out.print(JsonUtil.loadFalseResult(2, e1.getMsg()));
+						return;
+					}
+				}
+				out.print(JsonUtil.loadFalseResult(3, "鏀粯瀹濇帴鍙e嚭閿欙紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
+				return;
+			}
+
+		} catch (AlipayApiException e2) {
+			out.print(JsonUtil.loadFalseResult(4, e2.getErrMsg()));
+			return;
+		} catch (AlipayAccountException e3) {
+			// 璐︽埛鏃犱綑棰�
+			if (e3.getCode() == AlipayAccountException.CODE_NO_MONEY) {
+				out.print(JsonUtil.loadFalseResult(5, "浣犵殑璐︽埛鐩墠娌℃湁浣欓锛屾棤闇�缁戝畾鎻愮幇璐﹀彿銆�"));
+				return;
+				// 鎻愮幇娆℃暟闄愬埗
+			} else if (e3.getCode() == AlipayAccountException.CODE_TIMES_LIMIT) {
+				out.print(JsonUtil.loadFalseResult(6, "姣忔湀浠呭彲淇敼1娆℃彁鐜拌处鍙凤紝璇蜂笅鏈堝啀璇曞惂銆�"));
+				return;
+			} else {
+				out.print(JsonUtil.loadFalseResult(7, e3.getMsg()));
+				return;
+			}
+
+		} catch (Exception e) {
+			try {
+				LogHelper.errorDetailInfo(e);
+			} catch (Exception e1) {
+				e1.printStackTrace();
+			}
+			out.print(JsonUtil.loadFalseResult(8, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
+		} finally {
+			redisManager.removeCommonString(key);
+		}
+	}
+
 	/**
 	 * 鑾峰彇鐢ㄦ埛璧勯噾璇︽儏
 	 * 
@@ -733,6 +847,7 @@
 	 */
 	@RequestMapping(value = "getusermoney")
 	public void getMoneyDetail(AcceptData acceptData, Long uid, PrintWriter out) {
+
 		UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
 		if (user == null) {
 			out.print(JsonUtil.loadFalseResult(2, "鐢ㄦ埛涓嶅瓨鍦�"));
@@ -748,32 +863,42 @@
 		}
 
 		BigDecimal moneyLastMonth = inviteGetMoneyService.getMoneyLastMonth(uid + "");
-		BigDecimal unOpenmoney = hongBaoService.getUnOpenHongBaoByUid(uid);
-		BigDecimal totalFanMoney = hongBaoService.getMyTotalHongBaoByUid(user.getId());
+		BigDecimal unOpenmoney = hongBaoV2Service.getUnRecievedFanLiMoney(uid);
+		BigDecimal totalFanMoney = hongBaoV2Service.getTotalFanLiMoney(uid);
 		JSONObject data = new JSONObject();
+		int spreadImgCount = spreadUserImgService.countUserSpreadImg(uid);
+		long shareCount = userShareGoodsRecordService.countShareRecordByUid(uid);
+
 		// IOS绔暟瀛楁寜鐓у瓧绗︿覆澶勭悊
 		if ("ios".equalsIgnoreCase(acceptData.getPlatform()) && Integer.parseInt(acceptData.getVersion()) > 33) {
 			data.put("moneyToday", moneyToday.setScale(2, BigDecimal.ROUND_DOWN).toString());
 			data.put("moneyMonth", moneyMonth.setScale(2, BigDecimal.ROUND_DOWN).toString());
-			data.put("moneyLastMonth", moneyLastMonth.toString());
-			data.put("money", user.getMyHongBao().toString());
-			data.put("unGetMoney", unOpenmoney.toString());
-			data.put("totalFanLiMoney", totalFanMoney.toString());// 绱杩斿埄
-			data.put("totalTiChengMoney", hongBaoService.getTotalTiChengMoney(uid).toString());// 绱鎻愭垚
-			data.put("totalUnGetTiChengMoney", hongBaoService.getUnGetTiChengMoney(uid).toString()); // 鏈埌璐︽彁鎴�
+			data.put("moneyLastMonth", moneyLastMonth.setScale(2, BigDecimal.ROUND_DOWN).toString());
+			data.put("money", user.getMyHongBao().setScale(2, BigDecimal.ROUND_DOWN).toString());
+			data.put("unGetMoney", unOpenmoney.setScale(2, BigDecimal.ROUND_DOWN).toString());
+			data.put("totalFanLiMoney", totalFanMoney.setScale(2, BigDecimal.ROUND_DOWN).toString());// 绱杩斿埄
+			data.put("totalTiChengMoney",
+					hongBaoV2Service.getTotalTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN).toString());// 绱鎻愭垚
+			data.put("totalUnGetTiChengMoney",
+					hongBaoV2Service.getUnGetTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN).toString()); // 鏈埌璐︽彁鎴�
 			// 灞曠ず鎻愭垚鏁版嵁
-			data.put("showTiCheng", hongBaoService.getTotalTiChengCount(uid) > 0);
+			if (configService.iosOnLining(Integer.parseInt(acceptData.getVersion())))
+				data.put("showTiCheng", false);
+			else
+				data.put("showTiCheng", spreadImgCount + shareCount > 0);
 		} else {
 			data.put("moneyToday", moneyToday.setScale(2, BigDecimal.ROUND_DOWN));
 			data.put("moneyMonth", moneyMonth.setScale(2, BigDecimal.ROUND_DOWN));
-			data.put("moneyLastMonth", moneyLastMonth);
-			data.put("money", user.getMyHongBao());
-			data.put("unGetMoney", unOpenmoney);
-			data.put("totalFanLiMoney", totalFanMoney);// 绱杩斿埄
-			data.put("totalTiChengMoney", hongBaoService.getTotalTiChengMoney(uid));// 绱鎻愭垚
-			data.put("totalUnGetTiChengMoney", hongBaoService.getUnGetTiChengMoney(uid)); // 鏈埌璐︽彁鎴�
+			data.put("moneyLastMonth", moneyLastMonth.setScale(2, BigDecimal.ROUND_DOWN));
+			data.put("money", user.getMyHongBao().setScale(2, BigDecimal.ROUND_DOWN));
+			data.put("unGetMoney", unOpenmoney.setScale(2, BigDecimal.ROUND_DOWN));
+			data.put("totalFanLiMoney", totalFanMoney.setScale(2, BigDecimal.ROUND_DOWN));// 绱杩斿埄
+			data.put("totalTiChengMoney",
+					hongBaoV2Service.getTotalTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN));// 绱鎻愭垚
+			data.put("totalUnGetTiChengMoney",
+					hongBaoV2Service.getUnGetTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN)); // 鏈埌璐︽彁鎴�
 			// 灞曠ず鎻愭垚鏁版嵁
-			data.put("showTiCheng", hongBaoService.getTotalTiChengCount(uid) > 0);
+			data.put("showTiCheng", spreadImgCount + shareCount > 0);
 		}
 
 		user.setNoOpenHongBao(unOpenmoney);

--
Gitblit v1.8.0