From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 23 五月 2020 09:54:38 +0800 Subject: [PATCH] 足迹、收藏订单兼容新需求 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteValidNumServiceImpl.java | 169 +++++++++++++++++++++++++++---------------------------- 1 files changed, 83 insertions(+), 86 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteValidNumServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteValidNumServiceImpl.java index 7d92754..6163f42 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteValidNumServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteValidNumServiceImpl.java @@ -10,8 +10,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.aliyun.openservices.ons.api.Message; +import com.aliyun.openservices.ons.api.Producer; import com.yeshi.fanli.dao.mybatis.user.UserInviteValidNumMapper; import com.yeshi.fanli.dao.mybatis.user.UserInviteValidRecordMapper; +import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum; +import com.yeshi.fanli.dto.mq.user.body.BeComeValidUserMQMsg; import com.yeshi.fanli.entity.bus.user.ThreeSale; import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.UserInviteValidNum; @@ -23,6 +27,8 @@ import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; +import com.yeshi.fanli.util.rocketmq.MQTopicName; @Service public class UserInviteValidNumServiceImpl implements UserInviteValidNumService { @@ -31,26 +37,26 @@ @Resource private UserInviteValidRecordMapper userInviteValidRecordMapper; - + @Lazy @Resource private ThreeSaleSerivce threeSaleSerivce; - + @Lazy @Resource private UserInfoService userInfoService; - + @Lazy @Resource private CommonOrderService commonOrderService; - - - + + @Resource(name = "producer") + private Producer producer; + @Override public UserInviteValidNum selectByPrimaryKey(Long id) { return userInviteValidNumMapper.selectByPrimaryKey(id); } - /** * 鐩存帴绮変笣 +1 @@ -70,20 +76,20 @@ userInviteValidNumMapper.insertSelective(inviteValid); } } - + /** * 鐩存帴绮変笣 -1 * @param uid */ @Override @Transactional(rollbackFor = Exception.class) - public void reduceValidNumFirst(Long uid, Long workerId) { + public void reduceValidNumFirst(Long uid, Long workerId) { UserInviteValidRecord record = userInviteValidRecordMapper.getByUidAndWorkerId(uid, workerId, UserInviteValidRecord.TYPE_ONE); if (record == null) { return; } - + UserInviteValidNum inviteValid = userInviteValidNumMapper.selectForUpdate(uid); if (inviteValid != null) { int num = 0; @@ -95,11 +101,11 @@ inviteValid.setUpdateTime(new Date()); userInviteValidNumMapper.updateByPrimaryKeySelective(inviteValid); } - + // 鍒犻櫎鏈夋晥璁板綍 userInviteValidRecordMapper.deleteByPrimaryKey(record.getId()); } - + /** * 鐩存帴绮変笣 -1 * @param uid @@ -112,7 +118,7 @@ if (record == null) { return; } - + UserInviteValidNum inviteValid = userInviteValidNumMapper.selectForUpdate(uid); if (inviteValid != null) { int num = 0; @@ -124,13 +130,10 @@ inviteValid.setUpdateTime(new Date()); userInviteValidNumMapper.updateByPrimaryKeySelective(inviteValid); } - + // 鍒犻櫎鏈夋晥璁板綍 userInviteValidRecordMapper.deleteByPrimaryKey(record.getId()); } - - - /** * 闂存帴绮変笣 +1 @@ -150,37 +153,37 @@ userInviteValidNumMapper.insertSelective(inviteValid); } } - + @Override @Transactional(rollbackFor = Exception.class) public void addValidTeamNum(Long uid, BigDecimal payment, Date payDate) { if (uid == null || payment == null || payDate == null) { return; } - + try { // 浠樻閲戦灏忎簬1 if (payment.compareTo(Constant.VIP_ORDER_PAY) < 0) { return; } - + // 鏄惁涓婄骇 ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid); if (threeSale == null) { return; } - + // 闃熷憳鍏崇郴鏈夋晥鏃堕棿 Long succeedTime = threeSale.getSucceedTime(); if (succeedTime == null) { succeedTime = threeSale.getCreateTime(); } - + // 涓嬪崟鏃堕棿鍦ㄧ敓浜у叧绯讳箣鍓� if (payDate.getTime() <= succeedTime.longValue()) { return; } - + Long bossId = threeSale.getBoss().getId(); String uniqueKey = StringUtil.Md5(uid + "#" + UserInviteValidRecord.TYPE_ONE); UserInviteValidRecord record = userInviteValidRecordMapper.selectByUniqueKey(uniqueKey); @@ -192,11 +195,19 @@ record.setUniqueKey(uniqueKey); record.setCreateTime(new Date()); userInviteValidRecordMapper.insertSelective(record); - + // 鏇存柊涓婄骇鐨勭洿鎺ョ矇涓濇暟閲� addNumFirst(bossId); } - + + // 鍙戦�佹垚涓烘湁鏁堢矇涓濈殑娑堟伅 + if (!Constant.IS_TEST) { + BeComeValidUserMQMsg msg = new BeComeValidUserMQMsg(uid, new Date()); + Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.becomeValidUser, + msg); + producer.send(message); + } + // 鏄惁涓婁笂绾� ThreeSale threeSaleSuper = threeSaleSerivce.getMyBoss(bossId); if (threeSaleSuper == null) { @@ -214,7 +225,7 @@ recordSuper.setUniqueKey(uniqueKeySuper); recordSuper.setCreateTime(new Date()); userInviteValidRecordMapper.insertSelective(recordSuper); - + // 鏇存柊涓婁笂绾х殑闂存帴绮変笣鏁伴噺 addNumSecond(bossIdSuper); } @@ -222,8 +233,7 @@ LogHelper.error(e); } } - - + @Override public void syncInfoAgain(Long workerId) { // 鏇存柊涓婄骇 @@ -231,54 +241,48 @@ if (threeSale == null) { return; } - + Long uid = threeSale.getBoss().getId(); UserInfo userInfo = userInfoService.selectByPKey(uid); if (userInfo == null || userInfo.getState() != UserInfo.STATE_NORMAL) { return; } - + int countTeam1 = 0; List<ThreeSale> listFirstTeam = threeSaleSerivce.listFirstTeam(0, Integer.MAX_VALUE, uid); if (listFirstTeam != null && listFirstTeam.size() > 0) { - for (ThreeSale firstTeam: listFirstTeam) { + for (ThreeSale firstTeam : listFirstTeam) { if (firstTeam.getWorker() == null || firstTeam.getWorker().getId() == null) { continue; } Long wid = firstTeam.getWorker().getId(); - Long succeedTime = firstTeam.getSucceedTime(); - if (succeedTime == null) { - succeedTime = firstTeam.getCreateTime(); - } - - // 鍗曪紙鍒嗕韩 + 鑷喘锛夊疄浠樻澶т簬1鍏� - long countValid = commonOrderService.countOrderByUidAndSettled(wid, Constant.VIP_ORDER_PAY); - if (countValid > 0) { - countTeam1 ++; - try { - String uniqueKey = StringUtil.Md5(wid + "#" + UserInviteValidRecord.TYPE_ONE); - UserInviteValidRecord record = userInviteValidRecordMapper.selectByUniqueKey(uniqueKey); - if (record == null) { - record = new UserInviteValidRecord(); - record.setUid(uid); - record.setWorkerId(wid); - record.setType(UserInviteValidRecord.TYPE_ONE); - record.setUniqueKey(uniqueKey); - record.setCreateTime(new Date()); - userInviteValidRecordMapper.insertSelective(record); - } - } catch (Exception e) { - + String uniqueKey = StringUtil.Md5(wid + "#" + UserInviteValidRecord.TYPE_ONE); + UserInviteValidRecord record = userInviteValidRecordMapper.selectByUniqueKey(uniqueKey); + if (record != null) { + countTeam1++; + } else { + long countValid = commonOrderService.countOrderByUidAndSettled(wid, Constant.VIP_ORDER_PAY); + if (countValid > 0) { + countTeam1++; + + record = new UserInviteValidRecord(); + record.setUid(uid); + record.setWorkerId(wid); + record.setType(UserInviteValidRecord.TYPE_ONE); + record.setUniqueKey(uniqueKey); + record.setCreateTime(new Date()); + userInviteValidRecordMapper.insertSelective(record); } } } } - + UserInviteValidNum inviteValid = userInviteValidNumMapper.selectForUpdate(uid); if (inviteValid != null) { UserInviteValidNum updateObj = new UserInviteValidNum(); updateObj.setId(uid); - updateObj.setNumFirst(countTeam1);; + updateObj.setNumFirst(countTeam1); + ; userInviteValidNumMapper.updateByPrimaryKeySelective(updateObj); } else { inviteValid = new UserInviteValidNum(); @@ -288,55 +292,48 @@ inviteValid.setUpdateTime(new Date()); userInviteValidNumMapper.insertSelective(inviteValid); } - + // 鏇存柊涓婁笂绾т俊鎭� ThreeSale superThreeSale = threeSaleSerivce.getByWorkerId(uid); if (superThreeSale == null) { return; } - + Long superUid = superThreeSale.getBoss().getId(); UserInfo superUserInfo = userInfoService.selectByPKey(superUid); if (superUserInfo == null || superUserInfo.getState() != UserInfo.STATE_NORMAL) { return; } - + int countTeam2 = 0; - List<ThreeSale> listSecondTeam = threeSaleSerivce.listSecondTeam(0, Integer.MAX_VALUE, superUid); + List<ThreeSale> listSecondTeam = threeSaleSerivce.listSecondTeam(0, Integer.MAX_VALUE, superUid); if (listSecondTeam != null && listSecondTeam.size() > 0) { - for (ThreeSale team: listSecondTeam) { + for (ThreeSale team : listSecondTeam) { if (team.getWorker() == null || team.getWorker().getId() == null) { continue; } Long wid = team.getWorker().getId(); - Long succeedTime = team.getSucceedTime(); - if (succeedTime == null) { - succeedTime = team.getCreateTime(); - } - // 鍗曪紙鍒嗕韩 + 鑷喘锛夊疄浠樻澶т簬1鍏� - long countValid = commonOrderService.countOrderByUidAndSettled(wid, Constant.VIP_ORDER_PAY); - if (countValid > 0) { - countTeam2 ++; - try { - String uniqueKeySuper = StringUtil.Md5(wid + "#" + UserInviteValidRecord.TYPE_TWO); - UserInviteValidRecord recordSuper = userInviteValidRecordMapper.selectByUniqueKey(uniqueKeySuper); - if (recordSuper == null) { - recordSuper = new UserInviteValidRecord(); - recordSuper.setUid(superUid); - recordSuper.setWorkerId(wid); - recordSuper.setType(UserInviteValidRecord.TYPE_TWO); - recordSuper.setUniqueKey(uniqueKeySuper); - recordSuper.setCreateTime(new Date()); - userInviteValidRecordMapper.insertSelective(recordSuper); - } - } catch (Exception e) { - + String uniqueKeySuper = StringUtil.Md5(wid + "#" + UserInviteValidRecord.TYPE_TWO); + UserInviteValidRecord recordSuper = userInviteValidRecordMapper.selectByUniqueKey(uniqueKeySuper); + if (recordSuper != null) { + countTeam2++; + } else { + long countValid = commonOrderService.countOrderByUidAndSettled(wid, Constant.VIP_ORDER_PAY); + if (countValid > 0) { + countTeam2++; + + recordSuper = new UserInviteValidRecord(); + recordSuper.setUid(superUid); + recordSuper.setWorkerId(wid); + recordSuper.setType(UserInviteValidRecord.TYPE_TWO); + recordSuper.setUniqueKey(uniqueKeySuper); + recordSuper.setCreateTime(new Date()); + userInviteValidRecordMapper.insertSelective(recordSuper); } - } } } - + UserInviteValidNum inviteValid2 = userInviteValidNumMapper.selectForUpdate(superUid); if (inviteValid2 != null) { UserInviteValidNum updateObj = new UserInviteValidNum(); @@ -352,5 +349,5 @@ userInviteValidNumMapper.insertSelective(inviteValid2); } } - + } -- Gitblit v1.8.0