From 7e7db2fa55a9a3af46d4fd8ede0dee147f101d64 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 09 五月 2020 21:41:27 +0800 Subject: [PATCH] 2.1需求 --- fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserAccountController.java | 145 ++++++++++++++++++++++-------------------------- 1 files changed, 67 insertions(+), 78 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 b186d98..b2b3112 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 @@ -13,6 +13,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.IPUtil; @@ -33,6 +34,7 @@ import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode; import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum; import com.yeshi.fanli.entity.bus.user.SMSHistory; +import com.yeshi.fanli.entity.bus.user.ThreeSale; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.UserInfoExtra; import com.yeshi.fanli.entity.bus.user.WeiXinUser; @@ -43,14 +45,17 @@ import com.yeshi.fanli.exception.user.UserAccountException; import com.yeshi.fanli.exception.user.UserInfoExtraException; import com.yeshi.fanli.exception.user.vip.UserVIPInfoException; +import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.count.HongBaoV2CountService; import com.yeshi.fanli.service.inter.money.UserMoneyDetailService; +import com.yeshi.fanli.service.inter.order.CommonOrderService; import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService; 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; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService; import com.yeshi.fanli.service.inter.user.wx.WXMPUserLoginService; @@ -94,20 +99,27 @@ @Resource private ConfigService configService; - + @Resource private UserVIPInfoService userVIPInfoService; - + @Resource private UserVipConfigService userVipConfigService; - + @Resource private BanLiShopOrderService banLiShopOrderService; - + @Resource private HongBaoV2CountService hongBaoV2CountService; - + @Resource + private ThreeSaleSerivce threeSaleSerivce; + + @Resource + private CommonOrderService commonOrderService; + + + /** * 閫氳繃閭�璇风爜鑾峰彇鐢ㄦ埛淇℃伅 * @@ -155,10 +167,12 @@ } String sessionKey = null; - WXMPSessionInfo sessionInfo = (WXMPSessionInfo) session.getAttribute(UserController.WXMP_SESSION_INFO_KEY); + WXMPSessionInfo sessionInfo = WXXCXUtil.getSessionInfo(Constant.WXMP_APP_INFO, code); if (sessionInfo == null) { out.print(JsonUtil.loadFalseResult(90000, "璇烽噸鏂扮櫥褰�")); return; + } else { + session.setAttribute(UserController.WXMP_SESSION_INFO_KEY, sessionInfo); } sessionKey = sessionInfo.getSessionKey(); @@ -168,6 +182,8 @@ return; } String phoneNumber = WXXCXUtil.getPhoneNumber(sessionKey, phoneEncryptedData, phoneIv); + LogHelper.test("灏忕▼搴忚幏鍙栧埌鐨勭數璇濆彿鐮佷负:"+phoneNumber); + if (StringUtil.isNullOrEmpty(phoneNumber)) { out.print(JsonUtil.loadFalseResult("鑾峰彇鐢佃瘽鍙风爜澶辫触")); return; @@ -186,7 +202,8 @@ UserInfo lastUserInfo = null; if (!StringUtil.isNullOrEmpty(userData)) { - String redisKey = RedisKeyEnum.getRedisKey(RedisKeyEnum.wxmpUserLogin, StringUtil.Md5(acceptData.getAppId() + "-" + acceptData.getOpenId())); + String redisKey = RedisKeyEnum.getRedisKey(RedisKeyEnum.wxmpUserLogin, + StringUtil.Md5(acceptData.getAppId() + "-" + acceptData.getOpenId())); String data = redisManager.getCommonString(redisKey); if (!StringUtil.isNullOrEmpty(data)) { lastUserInfo = new Gson().fromJson(data, UserInfo.class); @@ -204,7 +221,7 @@ } @RequestMapping("wxLogin") - public void wxLogin(WXMPAcceptData acceptData, String wxEncryptedData, String wxIv, String inviteCode, + public void wxLogin(WXMPAcceptData acceptData, String wxEncryptedData, String wxIv, String inviteCode, String code, HttpServletRequest request, HttpSession session, PrintWriter out) { if (StringUtil.isNullOrEmpty(acceptData.getOpenId())) { out.print(JsonUtil.loadFalseResult("openId涓虹┖")); @@ -215,11 +232,7 @@ out.print(JsonUtil.loadFalseResult("寰俊鐢ㄦ埛鍔犲瘑鏁版嵁涓虹┖")); return; } - WXMPSessionInfo sessionInfo = (WXMPSessionInfo) session.getAttribute(UserController.WXMP_SESSION_INFO_KEY); - if (sessionInfo == null) { - out.print(JsonUtil.loadFalseResult(90000, "璇烽噸鏂扮櫥褰�")); - return; - } + WXMPSessionInfo sessionInfo = WXXCXUtil.getSessionInfo(Constant.WXMP_APP_INFO, code); String sessionKey = sessionInfo.getSessionKey(); if (StringUtil.isNullOrEmpty(sessionKey)) { @@ -254,7 +267,8 @@ return; } - String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.wxmpUserLogin, StringUtil.Md5(acceptData.getAppId() + "-" + acceptData.getOpenId())); + String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.wxmpUserLogin, + StringUtil.Md5(acceptData.getAppId() + "-" + acceptData.getOpenId())); UserInfo user = new Gson().fromJson(redisManager.getCommonString(key), UserInfo.class); if (user == null) { @@ -310,7 +324,7 @@ userAccountService.updateUserSelective(update); } }); - break; + return; case WXMPLoginResult.CODE_BIND_PHONE: // 闇�瑕佺粦瀹氱數璇濆彿鐮� redisManager.saveObj(result.getUser(), key, 60 * 5);// 鍙紦瀛�5鍒嗛挓 @@ -334,8 +348,8 @@ out.print(JsonUtil.loadFalseResult("openId涓虹┖")); return; } - - if(uid==null){ + + if (uid == null) { out.print(JsonUtil.loadFalseResult("uid涓虹┖")); return; } @@ -344,7 +358,7 @@ out.print(JsonUtil.loadFalseResult("寰俊淇℃伅涓虹┖")); return; } - + WXMPSessionInfo sessionInfo = (WXMPSessionInfo) session.getAttribute(UserController.WXMP_SESSION_INFO_KEY); if (sessionInfo == null) { out.print(JsonUtil.loadFalseResult(90000, "璇烽噸鏂扮櫥褰�")); @@ -399,8 +413,7 @@ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); } } - - + /** * 缁戝畾鐢佃瘽鍙风爜 V1.5.3 * @@ -460,8 +473,6 @@ } } - - /** * 鑾峰彇vip淇℃伅 * @@ -542,15 +553,33 @@ } vo.setFinishMoney(hongBaoV2CountService.getRewardMoneyBySelf(uid)); - List<Integer> list = new ArrayList<Integer>(); list.add(BanLiShopOrder.STATE_SUCCESS); BigDecimal payMoney = new BigDecimal(userVipConfigService.getValueByKey("require_order_pay")); - vo.setFinishTeam(hongBaoV2CountService.countValidOrderTeamUserByUid(uid, TimeUtil.convertDateToTemp(Constant.VIP_ONLINE_TIME), payMoney)); +// vo.setFinishTeam(hongBaoV2CountService.countValidOrderTeamUserByUid(uid, +// TimeUtil.convertDateToTemp(Constant.VIP_ONLINE_TIME), payMoney)); + + int finishTeam = 0; + long vipBegin = TimeUtil.convertDateToTemp(Constant.VIP_ONLINE_TIME); + List<ThreeSale> listThreeSale = threeSaleSerivce.getValidWorkerIdsByTime(uid, vipBegin); + if (listThreeSale != null && listThreeSale.size() > 0) { + for (ThreeSale three: listThreeSale) { + UserInfo worker = three.getWorker(); + if (worker == null || worker.getId() == null) { + continue; + } + // 1銆侀個璇峰叧绯绘垚鍔熷悗锛�2銆佸崟锛堝垎浜� + 鑷喘锛夊疄浠樻澶т簬1鍏� + long countValid = commonOrderService.countOrderByUidAndSettled(worker.getId(), payMoney); + if (countValid > 0) { + finishTeam ++; + } + } + } + vo.setFinishTeam(finishTeam); + vo.setFinishHongBao(banLiShopOrderService.countByUidAndState(uid, list)); - // 鍖哄垎鑰佺敤鎴峰拰鏂扮敤鎴� String limtDate = userVipConfigService.getValueByKey("vip_execute_time"); Date executeDate = null; @@ -588,7 +617,7 @@ JSONObject data = new JSONObject(); data.put("info", gson.toJson(vo)); - data.put("welfare",JSONArray.fromObject( userVipConfigService.getValueByKey("vip_welfare"))); + data.put("welfare", JSONArray.fromObject(userVipConfigService.getValueByKey("vip_welfare"))); if (!StringUtil.isNullOrEmpty(callback)) { out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult(data))); } else { @@ -610,56 +639,7 @@ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "鐢ㄦ埛鏈櫥褰�")); return; } - - UserInfo userInfo = userInfoService.selectByPKey(uid); - if (userInfo == null) { - JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(1, "璇ョ敤鎴蜂笉瀛樺湪")); - return; - } - - // 鐪侀挶 -鑷喘浜х敓杩斿埄 - - List<Integer> list = new ArrayList<Integer>(); - list.add(BanLiShopOrder.STATE_SUCCESS); - BigDecimal payMoney = new BigDecimal(userVipConfigService.getValueByKey("require_order_pay")); - - long finishTeam = hongBaoV2CountService.countValidOrderTeamUserByUid(uid, TimeUtil.convertDateToTemp(Constant.VIP_ONLINE_TIME), payMoney); - long finishHongBao = banLiShopOrderService.countByUidAndState(uid, list); - BigDecimal finishMoney = hongBaoV2CountService.getRewardMoneyBySelf(uid); - - long limitTeam = 0; - - // 鍖哄垎鑰佺敤鎴峰拰鏂扮敤鎴� - String limtDate = userVipConfigService.getValueByKey("vip_execute_time"); - Date executeDate = null; - try { - SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd"); - executeDate = format.parse(limtDate); - } catch (ParseException e) { - e.printStackTrace(); - } - - UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid); - if (extra != null - && (extra.getFirstLoginTime() == null || extra.getFirstLoginTime().getTime() < executeDate.getTime())) { - limitTeam = (Long.parseLong(userVipConfigService.getValueByKey("require_invite_num_old_user"))); - } else { - limitTeam = (Long.parseLong(userVipConfigService.getValueByKey("require_invite_num_new_user"))); - } - long limitHongBao = (Long.parseLong(userVipConfigService.getValueByKey("require_shop_buy"))); - BigDecimal limitMoney = (new BigDecimal(userVipConfigService.getValueByKey("require_fan_money"))); - - if (finishTeam >= limitTeam && finishHongBao >= limitHongBao && finishMoney.compareTo(limitMoney) >= 0) { - // 鏉′欢绗﹀悎 - } else { - if (!StringUtil.isNullOrEmpty(callback)) { - out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadFalseResult("鏈揪鍒板紑閫氭潯浠�"))); - } else { - out.print(JsonUtil.loadFalseResult("鏈揪鍒板紑閫氭潯浠�")); - } - return; - } - // 寮�閫� + try { userVIPInfoService.applyVIP(uid); } catch (UserVIPInfoException e) { @@ -672,9 +652,18 @@ } if (!StringUtil.isNullOrEmpty(callback)) { - out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult("宸茬敵璇�"))); + out.print(JsonUtil.loadJSONP(callback, JsonUtil.loadTrueResult("鐢宠鎴愬姛锛屾鍦ㄥ彈鐞嗕腑"))); } else { - out.print(JsonUtil.loadTrueResult("宸茬敵璇�")); + out.print(JsonUtil.loadTrueResult("鐢宠鎴愬姛锛屾鍦ㄥ彈鐞嗕腑")); } } + + @RequestMapping("logout") + public void logout(WXMPAcceptData acceptData, Long uid, PrintWriter out) { + if (uid == null) { + out.print(JsonUtil.loadFalseResult("uid涓虹┖")); + return; + } + out.print(JsonUtil.loadTrueResult("")); + } } -- Gitblit v1.8.0