From 8a57b3a0ee3fa70e8d43eb12865f1c27d0d385d8 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期三, 01 四月 2020 14:55:58 +0800 Subject: [PATCH] Merge branch 'div-1' into div --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteValidNumServiceImpl.java | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 151 insertions(+), 0 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 new file mode 100644 index 0000000..bf9338d --- /dev/null +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserInviteValidNumServiceImpl.java @@ -0,0 +1,151 @@ +package com.yeshi.fanli.service.impl.user.invite; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.yeshi.fanli.dao.mybatis.user.UserInviteValidNumMapper; +import com.yeshi.fanli.dao.mybatis.user.UserInviteValidRecordMapper; +import com.yeshi.fanli.entity.bus.user.ThreeSale; +import com.yeshi.fanli.entity.bus.user.UserInviteValidNum; +import com.yeshi.fanli.entity.bus.user.UserInviteValidRecord; +import com.yeshi.fanli.log.LogHelper; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; +import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService; +import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.StringUtil; + +@Service +public class UserInviteValidNumServiceImpl implements UserInviteValidNumService { + @Resource + private UserInviteValidNumMapper userInviteValidNumMapper; + + @Resource + private UserInviteValidRecordMapper userInviteValidRecordMapper; + + @Resource + private ThreeSaleSerivce threeSaleSerivce; + + + @Override + public UserInviteValidNum selectByPrimaryKey(Long id) { + return userInviteValidNumMapper.selectByPrimaryKey(id); + } + + + /** + * 鐩存帴绮変笣 +1 + * @param uid + */ + @Transactional(rollbackFor = Exception.class) + private void addNumFirst(Long uid) { + UserInviteValidNum inviteValid = userInviteValidNumMapper.selectForUpdate(uid); + if (inviteValid != null) { + userInviteValidNumMapper.addNumFirst(uid, 1); + } else { + inviteValid = new UserInviteValidNum(); + inviteValid.setId(uid); + inviteValid.setNumFirst(1); + inviteValid.setNumSecond(0); + inviteValid.setUpdateTime(new Date()); + userInviteValidNumMapper.insertSelective(inviteValid); + } + } + + /** + * 闂存帴绮変笣 +1 + * @param uid + */ + @Transactional(rollbackFor = Exception.class) + private void addNumSecond(Long uid) { + UserInviteValidNum inviteValid = userInviteValidNumMapper.selectForUpdate(uid); + if (inviteValid != null) { + userInviteValidNumMapper.addNumSecond(uid, 1); + } else { + inviteValid = new UserInviteValidNum(); + inviteValid.setId(uid); + inviteValid.setNumFirst(0); + inviteValid.setNumSecond(1); + inviteValid.setUpdateTime(new Date()); + 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(bossId + "#" + uid + "#" + UserInviteValidRecord.TYPE_ONE); + UserInviteValidRecord record = userInviteValidRecordMapper.selectByUniqueKey(uniqueKey); + if (record == null) { + record = new UserInviteValidRecord(); + record.setUid(bossId); + record.setWorkerId(uid); + record.setType(UserInviteValidRecord.TYPE_ONE); + record.setUniqueKey(uniqueKey); + record.setCreateTime(new Date()); + userInviteValidRecordMapper.insertSelective(record); + + // 鏇存柊涓婄骇鐨勭洿鎺ョ矇涓濇暟閲� + addNumFirst(bossId); + } + + // 鏄惁涓婁笂绾� + ThreeSale threeSaleSuper = threeSaleSerivce.getMyBoss(bossId); + if (threeSaleSuper == null) { + return; + } + + // 闂存帴鍏崇郴 + Long bossIdSuper = threeSaleSuper.getBoss().getId(); + String uniqueKeySuper = StringUtil.Md5(bossIdSuper + "#" + uid + "#" + UserInviteValidRecord.TYPE_TWO); + UserInviteValidRecord recordSuper = userInviteValidRecordMapper.selectByUniqueKey(uniqueKeySuper); + if (recordSuper == null) { + recordSuper = new UserInviteValidRecord(); + recordSuper.setUid(bossIdSuper); + recordSuper.setWorkerId(uid); + recordSuper.setType(UserInviteValidRecord.TYPE_TWO); + recordSuper.setUniqueKey(uniqueKeySuper); + recordSuper.setCreateTime(new Date()); + userInviteValidRecordMapper.insertSelective(recordSuper); + + // 鏇存柊涓婁笂绾х殑闂存帴绮変笣鏁伴噺 + addNumSecond(bossIdSuper); + } + } catch (Exception e) { + LogHelper.error(e); + } + } + +} -- Gitblit v1.8.0