From b6c37e4bc38db88a360d0f2c6099183f9bb75bdc Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期一, 22 四月 2019 14:31:59 +0800 Subject: [PATCH] 券推送插入 --- fanli/src/main/java/com/yeshi/fanli/controller/client/UserAccountController.java | 666 +++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 567 insertions(+), 99 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..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,15 +9,20 @@ 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; 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; import com.yeshi.fanli.entity.bus.user.WeiXinUser; -import com.yeshi.fanli.entity.system.System; +import com.yeshi.fanli.entity.system.BusinessSystem; import com.yeshi.fanli.entity.taobao.ClientTBPid; import com.yeshi.fanli.entity.taobao.PidUser; import com.yeshi.fanli.entity.taobao.TBPid; @@ -26,36 +31,34 @@ import com.yeshi.fanli.exception.AlipayTransferException; import com.yeshi.fanli.exception.UserAccountException; import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.config.BusinessSystemService; 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; import com.yeshi.fanli.service.inter.order.OrderService; import com.yeshi.fanli.service.inter.push.DeviceTokenHWService; import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; -import com.yeshi.fanli.service.inter.user.AccountDetailsService; -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.UserAccountBindingHistoryService; 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.UserMoneyService; +import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService; +import com.yeshi.fanli.service.inter.user.UserSystemCouponService; +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.ThreadUtil; import com.yeshi.fanli.util.account.UserUtil; import com.yeshi.fanli.util.wx.WXLoginUtil; -import org.yeshi.utils.JsonUtil; import net.sf.json.JSONObject; @@ -76,10 +79,7 @@ private OrderService orderService; @Resource - private HongBaoService hongBaoService; - - @Resource - private MoneyRecordService moneyRecordService; + private HongBaoV2Service hongBaoV2Service; @Resource private BindingAccountService bindingAccountService; @@ -88,16 +88,10 @@ private ExtractService extractService; @Resource - private PassWordErrorRecordService passWordErrorRecordService; - - @Resource private ConfigService configService; @Resource - private SystemService systemService; - - @Resource - private HongBaoMessageService hongBaoMessageService; + private BusinessSystemService businessSystemService; @Resource private ShamUserService shamUserService; @@ -109,30 +103,13 @@ private LostOrderService lostOrderService; @Resource - private OrderItemServcie orderItemServcie; - - @Resource - private AccountDetailsService accountDetailsService; - - @Resource - private AccountMessageService accountMessageService; - - @Resource - private CollectionGoodsService collectionGoodsService; - @Resource private HongBaoManageService hongBaoManageService; - - @Resource - private WxDownService wxDownService; @Resource private UserAccountService userAccountService; @Resource private RedisManager redisManager; - - @Resource - private InviteGetMoneyService inviteGetMoneyService; @Resource private TBPidService tbPidService; @@ -142,6 +119,24 @@ @Resource private TaoBaoUnionConfigService taoBaoUnionConfigService; + + @Resource + private SpreadUserImgService spreadUserImgService; + + @Resource + private UserShareGoodsRecordService userShareGoodsRecordService; + + @Resource + private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; + + @Resource + private UserSystemCouponService userSystemCouponService; + + @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"; @@ -157,35 +152,58 @@ * @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, - PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + String tbOpenid, String tbNickName, String tbPortrait, String tbSession, int loginType, Boolean first, + HttpSession session, HttpServletRequest request, PrintWriter out) { + BusinessSystem system = businessSystemService.getBusinessSystemCache(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(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涓虹┖鍊�"); @@ -203,9 +221,34 @@ root.put("type", result.getType()); root.put("data", data); out.print(JsonUtil.loadTrueResult(root)); + + final UserInfo uuser = result.getUser(); + 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) { + try { + LogHelper.cookieLog("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage()); + } catch (Exception e1) { + e1.printStackTrace(); + } out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); } + } /** @@ -223,7 +266,8 @@ @RequestMapping(value = "register") public void register(AcceptData acceptData, String tbOpenid, String tbNickName, String tbPortrait, String vcode, String phone, HttpServletRequest request, HttpSession session, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -283,7 +327,8 @@ */ @RequestMapping(value = "connect") public void connect(AcceptData acceptData, long mainUid, long lessUid, HttpSession session, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -316,7 +361,8 @@ */ @RequestMapping(value = "getuid") public void getUid(AcceptData acceptData, String code, String tbOpenid, String phone, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -328,11 +374,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) { @@ -356,7 +426,8 @@ */ @RequestMapping(value = "bindPhone") public void bindPhone(AcceptData acceptData, Long uid, String vcode, String phone, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -374,15 +445,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)); @@ -402,7 +490,8 @@ */ @RequestMapping(value = "unBindPhone") public void unBindPhone(AcceptData acceptData, Long uid, String phone, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -430,21 +519,60 @@ * @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) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + String tbSession, PrintWriter out) { + BusinessSystem system = businessSystemService.getBusinessSystemCache(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)); @@ -462,7 +590,8 @@ */ @RequestMapping(value = "unBindTaoBao") public void unBindTaoBao(AcceptData acceptData, Long uid, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -486,7 +615,8 @@ */ @RequestMapping(value = "changeWX") public void changeWX(AcceptData acceptData, Long uid, String code, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -500,6 +630,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)); @@ -517,7 +663,8 @@ */ @RequestMapping(value = "getphone") public void getPhone(AcceptData acceptData, Long uid, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -537,7 +684,8 @@ @RequestMapping(value = "verifyvcodeforbind") public void verifyVcodeForbind(AcceptData acceptData, Long uid, String vcode, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -582,7 +730,8 @@ */ @RequestMapping(value = "bindalipay") public void bindAlipay(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -637,7 +786,8 @@ @RequestMapping(value = "bindalipaywithverify") public void bindAlipayWithVerify(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) { - System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages()); + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); if (system == null) { out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); return; @@ -724,6 +874,117 @@ } } + @RequestMapping(value = "bindalipaywithverifynew") + public void bindAlipayWithVerifyNew(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) { + + BusinessSystem system = businessSystemService.getBusinessSystemCache(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); + + + + // 鏀粯瀹濈粦瀹� + 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鍏冨埌鎻愮幇璐﹀彿涓紝鎻愮幇璐﹀彿楠岃瘉閫氳繃锛屾伃鍠滀綘锛佸彲浠ユ彁鐜颁簡銆�")); + } 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,47 +994,58 @@ */ @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, "鐢ㄦ埛涓嶅瓨鍦�")); return; } - BigDecimal moneyToday = inviteGetMoneyService.getMoneyToday(uid + ""); + BigDecimal moneyToday = userMoneyService.getMoneyToday(uid); if (moneyToday == null) { moneyToday = new BigDecimal(0); } - BigDecimal moneyMonth = inviteGetMoneyService.getMoneyMonth(uid + ""); + BigDecimal moneyMonth = userMoneyService.getMoneyMonth(uid); if (moneyMonth == null) { moneyMonth = new BigDecimal(0); } - BigDecimal moneyLastMonth = inviteGetMoneyService.getMoneyLastMonth(uid + ""); - BigDecimal unOpenmoney = hongBaoService.getUnOpenHongBaoByUid(uid); - BigDecimal totalFanMoney = hongBaoService.getMyTotalHongBaoByUid(user.getId()); + BigDecimal moneyLastMonth = userMoneyService.getMoneyLastMonth(uid); + 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); @@ -806,15 +1078,8 @@ } else { - tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_IOS); - if (tbPid != null) { - String siteId = tbPid.getPid().split("_")[2]; - String adzoneId = tbPid.getPid().split("_")[3]; - TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId); - clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId); - } else { - clientTBPid = tbPidService.getIOSDefault(); - } + clientTBPid = tbPidService.getIOSDefault(); + } } else { @@ -846,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