From 41aec48fb1e43f42807b1c71c9aeb19ebbf7506c Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期五, 09 八月 2019 15:56:11 +0800 Subject: [PATCH] 积分相关 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java | 69 ++++++++++++++++++++++++++++++++++ 1 files changed, 69 insertions(+), 0 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 03a867b..2b49b9d 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 @@ -581,4 +581,73 @@ } + + @Override + public UserInfo getUserByInviteCode(String inviteCode) throws UserInfoExtraException{ + if (StringUtil.isNullOrEmpty(inviteCode)) { + throw new UserInfoExtraException(1, "閭�璇风爜涓嶈兘涓虹┖"); + } + // 閭�璇蜂汉淇℃伅 + UserInfo inviter = userInfoService.getInfoByPhoneOrInviteCode(inviteCode, inviteCode); + if (inviter == null) { + throw new UserInfoExtraException(1, "涓婄骇閭�璇风爜涓嶅瓨鍦�"); + } + return inviter; + } + + + @Override + public UserInfo getInviterInfo(Long uid, String code) throws UserInfoExtraException{ + if (code == null) { + throw new UserInfoExtraException(1, "code淇℃伅涓嶅畬鏁�"); + } + + // 鐢ㄦ埛淇℃伅 + 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.getWeiXinUser(code); + if (weiXinUser == null) { + throw new UserInfoExtraException(1, "寰俊鎺堟潈澶辫触"); + } + String wxUnionId = weiXinUser.getUnionid(); + if (wxUnionId == null || wxUnionId.trim().length() == 0) { + throw new UserInfoExtraException(1, "寰俊鎺堟潈澶辫触"); + } + + // 楠岃瘉鏁版嵁 + String wxUnionIdExist = invitee.getWxUnionId(); + if (StringUtil.isNullOrEmpty(wxUnionIdExist)) { + UserInfo newUser = userInfoService.getEffectiveUserInfoByWXUnionId(weiXinUser.getUnionid()); + if (newUser != null) { + throw new UserInfoExtraException(1, "姝ゅ井淇″凡琚叾浠栧笎鍙风粦瀹�"); + } + } else if (!wxUnionId.equals(wxUnionIdExist)){ + throw new UserInfoExtraException(1, "缁戝畾寰俊涓庢縺娲诲井淇′笉涓�鑷�"); + } + + // 閭�璇蜂汉ID + Long inviterId = userInviteRecordService.getNewestInviterId(wxUnionId); + if (inviterId == null) { + throw new UserInfoExtraException(1, "娌℃湁瀵瑰簲鐨勯個璇峰叧绯�"); + } + + UserInfo inviter = userInfoService.selectByPKey(inviterId); + if (inviter == null) { + throw new UserInfoExtraException(1, "瀵瑰簲鐨勯個璇峰叧绯讳笉瀛樺湪"); + } + return inviter; + } } -- Gitblit v1.8.0