From cdaacd7f7ba10c00696e14de498085af59caa402 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 04 三月 2019 09:33:32 +0800 Subject: [PATCH] 支付宝更改 --- fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java | 250 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 203 insertions(+), 47 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 52f1e99..a4ac570 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 @@ -10,10 +10,13 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.JsonUtil; +import org.yeshi.utils.encrypt.DESUtil; import com.alipay.api.AlipayApiException; import com.yeshi.fanli.entity.accept.AcceptData; import com.yeshi.fanli.entity.bus.user.BindingAccount; +import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode; +import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum; import com.yeshi.fanli.entity.bus.user.LoginResult; import com.yeshi.fanli.entity.bus.user.SMSHistory; import com.yeshi.fanli.entity.bus.user.UserInfo; @@ -31,8 +34,8 @@ import com.yeshi.fanli.service.inter.config.InviteGetMoneyService; import com.yeshi.fanli.service.inter.config.SystemService; 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,12 +46,14 @@ 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.ForbiddenUserIdentifyCodeService; 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.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; @@ -77,7 +82,7 @@ private HongBaoService hongBaoService; @Resource - private MoneyRecordService moneyRecordService; + private HongBaoV2Service hongBaoV2Service; @Resource private BindingAccountService bindingAccountService; @@ -86,16 +91,10 @@ private ExtractService extractService; @Resource - private PassWordErrorRecordService passWordErrorRecordService; - - @Resource private ConfigService configService; @Resource private SystemService systemService; - - @Resource - private HongBaoMessageService hongBaoMessageService; @Resource private ShamUserService shamUserService; @@ -136,6 +135,15 @@ @Resource private TaoBaoUnionConfigService taoBaoUnionConfigService; + @Resource + private SpreadUserImgService spreadUserImgService; + + @Resource + private UserShareGoodsRecordService userShareGoodsRecordService; + + @Resource + private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; + 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"; @@ -150,33 +158,55 @@ * @param tbOpenid * @param tbNickName * @param tbPortrait + * @param tbSession(娣樺疂session鏁版嵁,鍔犲瘑) * @param out */ @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,HttpServletRequest request, - PrintWriter out) { + String tbOpenid, String tbNickName, String tbPortrait, String tbSession, int loginType, Boolean first, + HttpSession session, 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)) { - out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�")); - return; + // 鑻规灉搴旂敤鍟嗗簵涓婄嚎娴嬭瘯鍙风爜 + if ("17316780233".equalsIgnoreCase(phone) && "258168".equalsIgnoreCase(vcode)) { + ; + } else { + String oldVcode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN); + if (StringUtil.isNullOrEmpty(oldVcode) || !oldVcode.equalsIgnoreCase(vcode)) { + out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�")); + return; + } } redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN); } UserInfo tbUserInfo = new UserInfo(); + if (!StringUtil.isNullOrEmpty(tbSession)) { + try { + tbSession = DESUtil.decode(tbSession.replace("\n", ""), StringUtil.getBase64String("YeShiFANLI889*+"), + StringUtil.getBase64String("*M#34f?,")); + } catch (Exception e) { + e.printStackTrace(); + } + JSONObject tbs = JSONObject.fromObject(tbSession); + tbOpenid = tbs.optString("openId"); + tbNickName = tbs.optString("nick"); + tbPortrait = tbs.optString("avatarUrl"); + // 娣樺疂ID + tbUserInfo.setTaoBaoUid(tbs.optString("taobao_user_id")); + } + tbUserInfo.setOpenid(tbOpenid); tbUserInfo.setTbName(tbNickName); tbUserInfo.setTbPic(tbPortrait); + try { LoginResult result = userAccountService.login(request, first, system.getAppid(), code, phone, tbUserInfo, wxinstall, loginType); @@ -197,6 +227,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())); } } @@ -321,11 +356,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) { @@ -367,15 +426,32 @@ String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN); - if (!vcode.equalsIgnoreCase(oldVCode)) { - out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�")); - return; + if (Constant.IS_OUTNET) { + if (!vcode.equalsIgnoreCase(oldVCode)) { + out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�")); + return; + } + redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN); } - redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN); - try { userAccountService.bindPhone(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("user", UserUtil.filterForClientUser(user)); out.print(JsonUtil.loadTrueResult(data)); @@ -423,21 +499,59 @@ * @param tbOpenid * @param tbNickName * @param tbPortrait + * @param tbSession + * -娣樺疂鎺堟潈session * @param out */ @RequestMapping(value = "bindTaoBao") public void bindTaoBao(AcceptData acceptData, Long uid, String tbOpenid, String tbNickName, String tbPortrait, - PrintWriter out) { + String tbSession, PrintWriter out) { System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; } + String taoBaoUid = ""; + + if (!StringUtil.isNullOrEmpty(tbSession)) { + try { + tbSession = DESUtil.decode(tbSession.replace("\n", ""), StringUtil.getBase64String("YeShiFANLI889*+"), + StringUtil.getBase64String("*M#34f?,")); + } catch (Exception e) { + e.printStackTrace(); + } + JSONObject session = JSONObject.fromObject(tbSession); + tbOpenid = session.optString("openId"); + tbNickName = session.optString("nick"); + tbPortrait = session.optString("avatarUrl"); + taoBaoUid = session.optString("taobao_user_id"); + } + try { userAccountService.bindTaoBao(uid, tbOpenid, tbNickName, tbPortrait); UserInfo user = userInfoService.getUserByIdWithMybatis(uid); + + // 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺 + if (!StringUtil.isNullOrEmpty(taoBaoUid)) { + ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService + .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBaoUid); + 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("user", UserUtil.filterForClientUser(user)); out.print(JsonUtil.loadTrueResult(data)); @@ -493,6 +607,22 @@ try { userAccountService.changeWXBind(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("user", UserUtil.filterForClientUser(user)); out.print(JsonUtil.loadTrueResult(data)); @@ -716,9 +846,7 @@ redisManager.removeCommonString(key); } } - - - + @RequestMapping(value = "bindalipaywithverifynew") public void bindAlipayWithVerifyNew(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) { @@ -758,13 +886,31 @@ return; } redisManager.cacheCommonString(key, "1", 120); + + // 鏀粯瀹濈粦瀹� + ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService + .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.alipayAccount, account); + 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; + } + // 鍙互灞曠ず缁欑敤鎴风湅鐨勯敊璇爜 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鍏冨埌鎻愮幇璐﹀彿涓紝鎻愮幇璐﹀彿楠岃瘉閫氳繃锛屾伃鍠滀綘锛佸彲浠ユ彁鐜颁簡銆�")); + 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鍏冿紝鎻愮幇璐﹀彿淇℃伅鏈夎锛岃鏍稿鍚庨噸鏂板~鍐欍��"; @@ -808,7 +954,6 @@ redisManager.removeCommonString(key); } } - /** * 鑾峰彇鐢ㄦ埛璧勯噾璇︽儏 @@ -819,6 +964,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, "鐢ㄦ埛涓嶅瓨鍦�")); @@ -834,32 +980,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