From 98b1a0affd69bbe63223c21fdd2c404e8bedfccb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 20 五月 2020 17:25:08 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into 2.1.2 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserInfoExtraServiceImpl.java | 155 ++++++++++++++++++++------------------------------- 1 files changed, 60 insertions(+), 95 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 1dc815a..4a39ecf 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 @@ -27,7 +27,6 @@ import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.Producer; -import com.google.gson.Gson; import com.yeshi.fanli.dao.mybatis.user.UserInfoExtraMapper; import com.yeshi.fanli.dao.mybatis.user.UserRankRecordMapper; import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum; @@ -54,6 +53,7 @@ import com.yeshi.fanli.service.inter.user.UserInviteRecordService; import com.yeshi.fanli.service.inter.user.UserRankService; import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; +import com.yeshi.fanli.service.inter.user.msg.UserAccountMsgNotificationService; import com.yeshi.fanli.service.inter.user.notify.UserActivedRecordService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.FilePathEnum; @@ -103,6 +103,9 @@ @Resource @Lazy private UserActivedRecordService userActivedRecordService; + + @Resource + private UserAccountMsgNotificationService userAccountMsgNotificationService; @Resource(name = "producer") private Producer producer; @@ -354,48 +357,14 @@ throw new UserInfoExtraException(1, "宸茬粡婵�娲�, 鏃犻渶鍐嶆婵�娲�"); inviteCode = inviteCode.toUpperCase(); + // 閭�璇风爜瀵瑰簲鐢ㄦ埛淇℃伅 - UserInfo inviter = userInfoService.getUserInfoByInviteCode(inviteCode); - if (inviter == null) + UserInfo boss = userInfoService.getUserInfoByInviteCode(inviteCode); + if (boss == null || boss.getState() != UserInfo.STATE_NORMAL) throw new UserInfoExtraException(1, "涓婄骇閭�璇风爜涓嶅瓨鍦�"); - // 缁戝畾鍏崇郴 - try { - threeSaleSerivce.bindRelationshipByInviteCode(invitee, inviter); - } catch (ThreeSaleException e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - throw new UserInfoExtraException(1, "婵�娲诲け璐�"); - } - - // 鐢熸垚閭�璇风爜 - String mycode = createInviteCode(uid); - if (StringUtil.isNullOrEmpty(mycode)) - throw new UserInfoExtraException(1, "婵�娲荤爜鐢熸垚澶辫触"); - - UserInfoExtra userInfoExtra = new UserInfoExtra(); - userInfoExtra.setUserInfo(invitee); - userInfoExtra.setInviteCode(mycode); - userInfoExtra.setUpdateTime(new Date()); - if (extra != null) { - userInfoExtra.setId(extra.getId()); - userInfoExtraMapper.updateByPrimaryKeySelective(userInfoExtra); - } else { - userInfoExtra.setCreateTime(new Date()); - userInfoExtraMapper.insertSelective(userInfoExtra); - } - userActivedRecordService.add(new UserActivedRecord(uid)); - - if (!Constant.IS_TEST) { // 鍙戦�佹縺娲绘垚鍔熸秷鎭� - Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.inviteCodeActive, - new Gson().toJson(new InviteCodeActiveMQMsg(uid, new Date()))); - producer.send(message); - } - - return mycode; + // 鐢熸垚閭�璇峰叧绯� + return inviteCodeActive(uid, boss.getId()); } @Override @@ -479,43 +448,14 @@ Long inviterId = userInviteRecordService.getNewestInviterId(wxUnionId); if (inviterId == null) throw new UserInfoExtraException(1, "娌℃湁瀵瑰簲鐨勯個璇峰叧绯�"); - - // 缁戝畾鍏崇郴 - try { - threeSaleSerivce.bindRelationshipByWX(invitee, inviterId); - } catch (ThreeSaleException e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - throw new UserInfoExtraException(1, "鍏崇郴缁戝畾鏃跺け璐�"); - } - - // 鐢熸垚閭�璇风爜 - String inviteCode = createInviteCode(uid); - if (StringUtil.isNullOrEmpty(inviteCode)) - 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); - } - userActivedRecordService.add(new UserActivedRecord(uid)); - - if (!Constant.IS_TEST) { // 鍙戦�佹縺娲绘垚鍔熸秷鎭� - Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.inviteCodeActive, - new Gson().toJson(new InviteCodeActiveMQMsg(uid, new Date()))); - producer.send(message); + UserInfo boss = userInfoService.selectByPKey(inviterId); + if (boss == null || boss.getState() != UserInfo.STATE_NORMAL) { + throw new UserInfoExtraException(1, "娌℃湁瀵瑰簲鐨勯個璇峰叧绯�"); } + + // 閭�璇风爜婵�娲� + inviteCodeActive(uid, boss.getId()); } @Override @@ -529,15 +469,6 @@ 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, "宸茬粡婵�娲�, 鏃犻渶鍐嶆婵�娲�"); - } } String wxUnionId = weiXinUser.getUnionid(); @@ -602,10 +533,33 @@ if (inviterId == null) { throw new UserInfoExtraException(1, "娌℃湁瀵瑰簲鐨勯個璇峰叧绯�"); } - + + UserInfo boss = userInfoService.selectByPKey(inviterId); + if (boss == null || boss.getState() != UserInfo.STATE_NORMAL) { + throw new UserInfoExtraException(1, "娌℃湁瀵瑰簲鐨勯個璇峰叧绯�"); + } + + // 閭�璇风爜婵�娲� + inviteCodeActive(uid, boss.getId()); + } + + + /** + * 閭�璇峰叧绯荤敓鎴愭縺娲荤爜 + * @param uid + * @param bossId + * @return + * @throws UserInfoExtraException + */ + private String inviteCodeActive(Long uid, Long bossId) throws UserInfoExtraException{ + UserInfoExtra extra = userInfoExtraMapper.getInfoExtraByUid(uid); + if (extra != null && !StringUtil.isNullOrEmpty(extra.getInviteCode())) { + throw new UserInfoExtraException(1, "宸茬粡婵�娲�, 鏃犻渶鍐嶆婵�娲�"); + } + // 缁戝畾鍏崇郴 try { - threeSaleSerivce.bindRelationshipByWX(invitee, inviterId); + threeSaleSerivce.bindInviteRelationship(uid, bossId); } catch (ThreeSaleException e) { try { LogHelper.errorDetailInfo(e); @@ -617,12 +571,11 @@ // 鐢熸垚閭�璇风爜 String inviteCode = createInviteCode(uid); - ; if (StringUtil.isNullOrEmpty(inviteCode)) throw new UserInfoExtraException(1, "婵�娲荤爜鐢熸垚澶辫触"); UserInfoExtra userInfoExtra = new UserInfoExtra(); - userInfoExtra.setUserInfo(invitee); + userInfoExtra.setUserInfo(new UserInfo(uid)); userInfoExtra.setInviteCode(inviteCode); userInfoExtra.setUpdateTime(new Date()); if (extra != null) { @@ -637,10 +590,14 @@ if (!Constant.IS_TEST) { // 鍙戦�佹縺娲绘垚鍔熸秷鎭� Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.inviteCodeActive, - new Gson().toJson(new InviteCodeActiveMQMsg(uid, new Date()))); + new InviteCodeActiveMQMsg(uid, new Date())); producer.send(message); } + + return inviteCode; } + + @Override public void updateActiveTime(Long uid, Date date) { @@ -782,6 +739,10 @@ UserInfo inviter = userInfoService.getUserInfoByInviteCode(inviteCode); if (inviter == null) throw new UserInfoExtraException(1, "涓婄骇閭�璇风爜涓嶅瓨鍦�"); + + if (inviter.getState() != UserInfo.STATE_NORMAL) { + throw new UserInfoExtraException(1, "涓婄骇閭�璇风爜涓嶅瓨鍦�"); + } return inviter; } @@ -828,13 +789,14 @@ if (inviter == null) { throw new UserInfoExtraException(1, "瀵瑰簲鐨勯個璇峰叧绯讳笉瀛樺湪"); } + + if (inviter.getState() != UserInfo.STATE_NORMAL) { + throw new UserInfoExtraException(1, "瀵瑰簲鐨勯個璇峰叧绯讳笉瀛樺湪"); + } + return inviter; } - @Override - public void updateAutoExtract(Integer days) { - userInfoExtraMapper.updateAutoExtract(days); - } @Transactional(rollbackFor = Exception.class) @Override @@ -874,10 +836,13 @@ if (!Constant.IS_TEST) { // 鍙戦�侀個璇风爜鏇存敼鎴愬姛鐨勬秷鎭� Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.userInfoUpdate, - new Gson().toJson(new UserInfoUpdateMQMsg(uid, UserInfoUpdateTypeEnum.inviteCode, inviteCodeVip, - new Date()))); + new UserInfoUpdateMQMsg(uid, UserInfoUpdateTypeEnum.inviteCode, inviteCodeVip, + new Date())); producer.send(message); } + + // 娑堟伅 + userAccountMsgNotificationService.createChangeInviteCode(uid, extra.getInviteCode(), inviteCodeVip); } @Override -- Gitblit v1.8.0