From 1da17d215d48e3e3aa9e8d7a3ef526904764f408 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期一, 08 四月 2019 14:06:12 +0800 Subject: [PATCH] 1.5.3部分需求 提交 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java | 140 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 131 insertions(+), 9 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java index 4cedf0c..41f50f2 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java @@ -14,21 +14,28 @@ import com.yeshi.fanli.dao.mybatis.user.UserInfoExtraMapper; import com.yeshi.fanli.dao.mybatis.user.UserRankRecordMapper; +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.UserRank; import com.yeshi.fanli.entity.bus.user.UserRankRecord; +import com.yeshi.fanli.entity.bus.user.WeiXinUser; import com.yeshi.fanli.exception.ThreeSaleException; import com.yeshi.fanli.exception.user.UserInfoExtraException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.order.CommonOrderCountService; +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.UserInviteRecordService; import com.yeshi.fanli.service.inter.user.UserRankService; import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.account.UserUtil; +import com.yeshi.fanli.util.wx.WXLoginUtil; import com.yeshi.fanli.vo.user.UserInfoExtraVO; @@ -55,6 +62,15 @@ @Resource private UserInfoService userInfoService; + + @Resource + private UserAccountService userAccountService; + + @Resource + private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService; + + @Resource + private UserInviteRecordService userInviteRecordService; @Override @@ -293,6 +309,12 @@ throw new UserInfoExtraException(1, "鐢ㄦ埛id銆侀個璇风爜涓嶈兘涓虹┖"); } + // 琚個璇蜂汉淇℃伅 + UserInfo invitee = userInfoService.selectByPKey(uid); + if (invitee == null) { + throw new UserInfoExtraException(1, "鐢ㄦ埛涓嶅瓨鍦�"); + } + UserInfoExtra extra = userInfoExtraMapper.getInfoExtraByUid(uid); if (extra != null) { String inviteCodeHas = extra.getInviteCode(); @@ -301,16 +323,10 @@ } } - // 琚個璇蜂汉淇℃伅 - UserInfo invitee = userInfoService.selectByPKey(uid); - if (invitee == null) { - throw new UserInfoExtraException(1, "鐢ㄦ埛涓嶅瓨鍦�"); - } - // 閭�璇蜂汉淇℃伅 UserInfo inviter = userInfoService.getInfoByPhoneOrInviteCode(inviteCode, inviteCode); if (inviter == null) { - throw new UserInfoExtraException(1, "璇疯緭鍏ユ湁鏁堢殑閭�璇风爜"); + throw new UserInfoExtraException(1, "涓婄骇閭�璇风爜涓嶅瓨鍦�"); } // 缁戝畾鍏崇郴 @@ -347,6 +363,114 @@ return code; } + + + @Override + public void activationInviteWX(Long uid, String code) throws UserInfoExtraException{ + if (uid == null || code == null) { + throw new UserInfoExtraException(1, "鐢ㄦ埛id銆侀個璇风爜涓嶈兘涓虹┖"); + } + + // 鐢ㄦ埛淇℃伅 + UserInfo invitee = userInfoService.selectByPKey(uid); + if (invitee == null) { + throw new UserInfoExtraException(1, "鐢ㄦ埛涓嶅瓨鍦�"); + } + + // 鐢ㄦ埛棰濆淇℃伅 + UserInfoExtra extra = userInfoExtraMapper.getInfoExtraByUid(uid); + if (extra != null) { + String inviteCodeHas = extra.getInviteCode(); + if (inviteCodeHas != null && inviteCodeHas.trim().length() > 0) { + throw new UserInfoExtraException(1, "宸茬粡婵�娲�, 鏃犻渶鍐嶆婵�娲�"); + } + } + + + // 鑾峰彇寰俊淇℃伅 + WeiXinUser weiXinUser = WXLoginUtil.getWeiXinWYUser(code); + if (weiXinUser == null) { + throw new UserInfoExtraException(1, "寰俊鎺堟潈澶辫触"); + } + String wxUnionId = weiXinUser.getUnionid(); + if (wxUnionId == null || wxUnionId.trim().length() == 0) { + throw new UserInfoExtraException(1, "寰俊鎺堟潈澶辫触"); + } + + + // 鑷姩缁戝畾寰俊 + UserInfo updateUserInfo = new UserInfo(uid); + updateUserInfo.setWxName(weiXinUser.getNickname()); + updateUserInfo.setWxOpenId(weiXinUser.getOpenid()); + updateUserInfo.setWxPic(weiXinUser.getHeadimgurl()); + updateUserInfo.setWxUnionId(weiXinUser.getUnionid()); + updateUserInfo.setNickName(weiXinUser.getNickname()); + updateUserInfo.setPortrait(weiXinUser.getHeadimgurl()); + if (StringUtil.isNullOrEmpty(weiXinUser.getNickname())) { + updateUserInfo.setNickName(Constant.systemCommonConfig.getDefaultNickName()); + } + + if (StringUtil.isNullOrEmpty(weiXinUser.getHeadimgurl())) { + updateUserInfo.setPortrait(Constant.systemCommonConfig.getDefaultPortrait()); + } + userInfoService.updateByPrimaryKeySelective(updateUserInfo); + + + + // 閭�璇蜂汉ID -1.5.3鏂扮増 + Long inviterId = userInviteRecordService.getNewestInviterId(wxUnionId); + + // 鍏煎1.5.3 涔嬪墠鐗堟湰 + ThreeSale threeSale = threeSaleSerivce.getByWorkerId(uid); + if (inviterId == null && threeSale != null) { + Long bossId = threeSale.getBoss().getId(); + UserInfoExtra inviterExtra = userInfoExtraMapper.getInfoExtraByUid(bossId); + if (inviterExtra != null && inviterExtra.getInviteCode() == null ) { + // 鏇存柊閭�璇风爜 + UserInfoExtra inviterInfoExtra = new UserInfoExtra(); + inviterInfoExtra.setId(inviterExtra.getId()); + inviterInfoExtra.setInviteCode(UserUtil.getInviteCode(bossId)); + userInfoExtraMapper.updateByPrimaryKeySelective(inviterInfoExtra); + } + } + + // 娌℃湁琚個璇疯繃 + if (inviterId == null && threeSale == null) { + throw new UserInfoExtraException(1, "寰俊婵�娲诲け璐�"); + } + + // 缁戝畾鍏崇郴 + try { + threeSaleSerivce.bindRelationshipByWX(invitee, inviterId, threeSale); + } catch (ThreeSaleException e) { + try { + LogHelper.errorDetailInfo(e); + } catch (Exception e1) { + e1.printStackTrace(); + } + throw new UserInfoExtraException(1, "婵�娲诲け璐�"); + } + + + // 閭�璇风爜鏈夋晥銆佺敓鎴愰個璇风爜 + String inviteCode = UserUtil.getInviteCode(uid); + if (inviteCode == null || inviteCode.trim().length() == 0) { + throw new UserInfoExtraException(1, "婵�娲荤爜鐢熸垚澶辫触"); + } + // 淇濆瓨閭�璇风爜 + UserInfoExtra userInfoExtra = new UserInfoExtra(); + userInfoExtra.setUserInfo(invitee); + userInfoExtra.setInviteCode(inviteCode); + userInfoExtra.setUpdateTime(new Date()); + if (extra != null) { + userInfoExtra.setId(extra.getId()); + userInfoExtraMapper.updateByPrimaryKeySelective(userInfoExtra); + } else { + userInfoExtra.setCreateTime(new Date()); + userInfoExtraMapper.insertSelective(userInfoExtra); + } + } + @Override public UserInfoExtra getUserInfoExtra(Long uid) { @@ -396,7 +520,5 @@ public long countByRankId(Long rankId) { return userInfoExtraMapper.countByRankId(rankId); } - - } -- Gitblit v1.8.0