From 2bd2200f209ddb7bcc59b636d9de6f8b3f762958 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期四, 23 四月 2020 10:00:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java |  142 ++++++++++++++++-------------------------------
 1 files changed, 48 insertions(+), 94 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java
index ffeded7..3c14853 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java
@@ -10,29 +10,24 @@
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.yeshi.utils.DateUtil;
 
+import com.aliyun.openservices.ons.api.Message;
+import com.aliyun.openservices.ons.api.Producer;
 import com.yeshi.fanli.dao.mybatis.user.vip.UserVIPInfoMapper;
-import com.yeshi.fanli.entity.bus.user.HongBaoV2;
-import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
+import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
+import com.yeshi.fanli.dto.mq.user.body.UserLevelChangedMQMsg;
+import com.yeshi.fanli.entity.bus.user.ThreeSale;
+import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.UserInviteValidNum;
-import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
 import com.yeshi.fanli.entity.bus.user.vip.UserLevelEnum;
 import com.yeshi.fanli.entity.bus.user.vip.UserLevelUpgradedNotify;
 import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
 import com.yeshi.fanli.entity.bus.user.vip.UserVIPPreInfo;
-import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
 import com.yeshi.fanli.exception.user.vip.UserVIPInfoException;
-import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
-import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
-import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService;
-import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.UserInviteSeparateService;
-import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
-import com.yeshi.fanli.service.inter.user.integral.IntegralDetailService;
 import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
+import com.yeshi.fanli.service.inter.user.invite.UserInviteMsgNotificationService;
 import com.yeshi.fanli.service.inter.user.invite.UserInviteValidNumService;
 import com.yeshi.fanli.service.inter.user.msg.UserAccountMsgNotificationService;
 import com.yeshi.fanli.service.inter.user.vip.UserLevelUpgradedNotifyService;
@@ -41,6 +36,9 @@
 import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.StringUtil;
+import com.yeshi.fanli.util.TimeUtil;
+import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
+import com.yeshi.fanli.util.rocketmq.MQTopicName;
 
 @Service
 public class UserVIPInfoServiceImpl implements UserVIPInfoService {
@@ -52,36 +50,16 @@
 	private UserInfoService userInfoService;
 
 	@Resource
-	private UserInfoExtraService userInfoExtraService;
-
-	@Resource
 	private UserVipConfigService userVipConfigService;
 
 	@Lazy
 	@Resource
 	private HongBaoV2CountService hongBaoV2CountService;
 
-	@Resource
-	private IntegralDetailService integralDetailService;
-
-	@Resource
-	private BanLiShopOrderService banLiShopOrderService;
-
-	@Resource
-	private UserOtherMsgNotificationService userOtherMsgNotificationService;
 
 	@Resource
 	private ThreeSaleSerivce threeSaleSerivce;
 
-	@Resource
-	private UserInviteSeparateService userInviteSeparateService;
-
-	@Resource
-	private ConfigService configService;
-
-	@Lazy
-	@Resource
-	private UserSystemCouponService userSystemCouponService;
 
 	@Resource
 	private UserVIPPreInfoService userVIPPreInfoService;
@@ -94,6 +72,14 @@
 	
 	@Resource
 	private UserLevelUpgradedNotifyService userLevelUpgradedNotifyService;
+	
+	@Resource
+	private UserInviteMsgNotificationService userInviteMsgNotificationService;
+	
+	@Resource(name = "producer")
+	private Producer producer;
+	
+	
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
@@ -212,12 +198,7 @@
 
 		if (!verifyVip(uid))
 			throw new UserVIPInfoException(1, "绯荤粺楠岃瘉锛氫笉婊¤冻鍗囩骇鏉′欢");
-
-		// 棰濆淇℃伅
-		UserInfoExtra userInfoExtra = userInfoExtraService.getByUidForUpdate(uid);
-		if (userInfoExtra == null)
-			throw new UserVIPInfoException(1, "鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
-
+	
 		Date upgradeTime = new Date();
 		// 閫氳繃瓒呯骇浼氬憳
 		UserVIPInfo info = new UserVIPInfo();
@@ -237,27 +218,26 @@
 		userLevelUpgradedNotifyService.addUserLevelUpgradedNotify(notify);
 		
 		try {
-			// 璧犻�佸厤鍗曞埜
-			String giveCoupon = userVipConfigService.getValueByKey("vip_pre_10_gift_givefree_coupon");
-			if (!StringUtil.isNullOrEmpty(giveCoupon)) {
-				int num = Integer.parseInt(giveCoupon);
-				userSystemCouponService.freeCouponWin(uid, CouponTypeEnum.freeCouponGive,
-						UserSystemCoupon.SOURCE_SYSTEM_PUSH, num, true);
-			}
-		} catch (Exception e) {
-			throw new UserVIPInfoException(1, "鍒歌禒閫佸け璐�");
-		}
-		
-		try {
 			// 鍗囩骇娑堟伅
 			UserVIPPreInfo pre1 = userVIPPreInfoService.getVipByProcess(uid, UserVIPPreInfo.PROCESS_2);
-			int days = DateUtil.daysBetween(pre1.getCreateTime(), new Date());
-			userAccountMsgNotificationService.vipUpgradeSuccess(uid, days);
+			userAccountMsgNotificationService.vipUpgradeSuccess(uid, TimeUtil.getDayDifferenceCount(pre1.getCreateTime(), new Date()));
 			
-			// 鍗囩骇鎻愰啋涓婄骇
-			userVIPPreInfoService.remindBoss(uid, "瓒呯骇浼氬憳", getPassItem(uid), upgradeTime, false);
+			// 鐩存帴绮変笣鍗囩骇鎻愰啋
+			ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
+			if (threeSale != null) {
+				Long bossId = threeSale.getBoss().getId();
+				UserInfo userInfo = userInfoService.selectByPKey(uid);
+				userInviteMsgNotificationService.fansUpgrade(bossId,  "瓒呯骇浼氬憳", userInfo.getNickName(), getPassItem(uid), upgradeTime);
+			}
 		} catch (Exception e) {
 			e.printStackTrace();
+		}
+		
+
+		if (!Constant.IS_TEST) {
+			UserLevelChangedMQMsg msg = new UserLevelChangedMQMsg(uid, UserLevelEnum.highVIP,UserLevelEnum.superVIP, new Date());
+			Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.userLevelChanged, msg);
+			producer.send(message);
 		}
 	}
 
@@ -268,13 +248,8 @@
 	 * @return
 	 */
 	private String getPassItem(Long uid) {
-		// 鑷喘璁㈠崟
-		long doneZiGou = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
-				HongBaoV2.TYPE_ZIGOU);
-		// 鍒嗕韩璁㈠崟
-		long doneShare = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
-				HongBaoV2.TYPE_SHARE_GOODS);
-		
+		// 鑷喘 + 鍒嗕韩璁㈠崟
+		long doneOrder = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY);
 		// 鏈夋晥绮変笣
 		int doneFirst = 0;
 		int doneSecond = 0;
@@ -284,16 +259,10 @@
 			doneSecond = userInviteValidNum.getNumSecond() == null ? 0 : userInviteValidNum.getNumSecond();
 		}
 
-		long limitZiGou = 0;
-		String zigou = userVipConfigService.getValueByKey("vip_pre_10_zigou_order_count");
+		long limitOrder = 0;
+		String zigou = userVipConfigService.getValueByKey("vip_pre_10_order_count");
 		if (!StringUtil.isNullOrEmpty(zigou)) {
-			limitZiGou = Long.parseLong(zigou);
-		}
-		
-		long limitShare = 0;
-		String share = userVipConfigService.getValueByKey("vip_pre_10_share_order_count");
-		if (!StringUtil.isNullOrEmpty(share)) {
-			limitShare = Long.parseLong(share);
+			limitOrder = Long.parseLong(zigou);
 		}
 		
 		long limitFirst = 0;
@@ -309,12 +278,10 @@
 		}
 		
 		String item = "";
-		if (doneZiGou >= limitZiGou) {
-			item = "杩斿埄璁㈠崟";
-		} else if (doneShare >= limitShare) {
-			item = "鍒嗕韩璁㈠崟";
+		if (doneOrder >= limitOrder) {
+			item = "杩斿埄+鍒嗕韩璁㈠崟";
 		} else if (doneFirst >= limitFirst && doneSecond >= limitSecond) {
-			item = "閭�璇风矇涓�";
+			item = "鐩存帴+闂存帴绮変笣";
 		}
 		return item;
 	}
@@ -326,13 +293,8 @@
 	 * @return
 	 */
 	private boolean verifyVip(Long uid) {
-		// 鑷喘璁㈠崟
-		long doneZiGou = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
-				HongBaoV2.TYPE_ZIGOU);
-		// 鍒嗕韩璁㈠崟
-		long doneShare = hongBaoV2CountService.counOrderByUidAndOrderType(uid, Constant.VIP_ORDER_PAY,
-				HongBaoV2.TYPE_SHARE_GOODS);
-		
+		// 鑷喘 + 鍒嗕韩璁㈠崟
+		long doneOrder = hongBaoV2CountService.countMyDirectOrderByCashArrival(uid, Constant.VIP_ORDER_PAY);
 		// 鏈夋晥绮変笣
 		int doneFirst = 0;
 		int doneSecond = 0;
@@ -341,17 +303,10 @@
 			doneFirst = userInviteValidNum.getNumFirst() == null ? 0 : userInviteValidNum.getNumFirst();
 			doneSecond = userInviteValidNum.getNumSecond() == null ? 0 : userInviteValidNum.getNumSecond();
 		}
-
-		long limitZiGou = 0;
-		String zigou = userVipConfigService.getValueByKey("vip_pre_10_zigou_order_count");
+		long limitOrder = 0;
+		String zigou = userVipConfigService.getValueByKey("vip_pre_10_order_count");
 		if (!StringUtil.isNullOrEmpty(zigou)) {
-			limitZiGou = Long.parseLong(zigou);
-		}
-		
-		long limitShare = 0;
-		String share = userVipConfigService.getValueByKey("vip_pre_10_share_order_count");
-		if (!StringUtil.isNullOrEmpty(share)) {
-			limitShare = Long.parseLong(share);
+			limitOrder = Long.parseLong(zigou);
 		}
 		
 		long limitFirst = 0;
@@ -366,7 +321,7 @@
 			limitSecond = Long.parseLong(second);
 		}
 		
-		if (doneZiGou >= limitZiGou || doneShare >= limitShare || (doneFirst >= limitFirst && doneSecond >= limitSecond)) {
+		if (doneOrder >= limitOrder  || (doneFirst >= limitFirst && doneSecond >= limitSecond)) {
 			return true;
 		}
 		return false;
@@ -388,7 +343,6 @@
 		info.setState(UserVIPInfo.STATE_INVALID);
 		info.setUpdateTime(new Date());
 		userVIPInfoMapper.updateByPrimaryKeySelective(info);
-
 		// 娑堟伅
 		userAccountMsgNotificationService.vipUpgradeFail(uid, reason);
 	}

--
Gitblit v1.8.0