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