From fb2faf11c5607cffc34480228e346609d7bb5b42 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 07 十二月 2019 18:14:23 +0800
Subject: [PATCH] 会员奖励

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 insertions(+), 4 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 0d36fe6..86ef0a1 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
@@ -21,8 +21,10 @@
 import com.yeshi.fanli.entity.bus.user.UserInfo;
 import com.yeshi.fanli.entity.bus.user.UserInfoExtra;
 import com.yeshi.fanli.entity.bus.user.UserInviteSeparate;
+import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
 import com.yeshi.fanli.entity.bus.user.vip.UserVIPInfo;
 import com.yeshi.fanli.entity.shop.BanLiShopOrder;
+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;
@@ -31,10 +33,12 @@
 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.vip.UserVIPInfoService;
 import com.yeshi.fanli.service.inter.user.vip.UserVipConfigService;
+import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.TimeUtil;
 
 @Service
@@ -72,6 +76,9 @@
 	
 	@Resource
 	private ConfigService configService;
+	
+	@Resource
+	private UserSystemCouponService userSystemCouponService;
 
 	
 
@@ -90,7 +97,7 @@
 		userVIPInfoMapper.insert(info);
 	}
 
-	@Transactional
+	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public void passVIPApply(Long uid) throws UserVIPInfoException {
 		UserVIPInfo userVIPInfo = userVIPInfoMapper.selectByPrimaryKeyForUpdate(uid);
@@ -114,13 +121,39 @@
 		// 涓嬬骇鐨勮秴绾т細鍛� 涓嶈劚绂�
 		userInviteSeparateService.updateInvalidByBossId(uid);
 		
+		// 璧犻�佸埜
+		try {
+			BigDecimal percent = new BigDecimal(configService.get("exchange_rebate_percent"));
+			for (int i = 0; i < Constant.VIP_COUPON_REWARD_NUM; i++) {
+				userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.rebatePercentCoupon.name(), 
+						UserSystemCoupon.SOURCE_SYSTEM_PUSH, percent, false);
+			}
+			
+			for (int i = 0; i < Constant.VIP_COUPON_GIVEFREE_NUM; i++) {
+				userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.freeCouponGive.name(), 
+						UserSystemCoupon.SOURCE_SYSTEM_PUSH, null, false);
+			}
+		} catch (Exception e) {
+			throw new UserVIPInfoException(1, "鍒歌禒閫佸け璐�");
+		}
+		
 		// 娑堟伅
 		MsgOtherVIPDTO msgOther = new MsgOtherVIPDTO();
 		msgOther.setContent1("鎭枩浣狅紝宸叉垚涓鸿秴绾т細鍛�");
 		msgOther.setContent2("婊¤冻鍗囩骇鏉′欢");
 		msgOther.setContent3(TimeUtil.formatDateDot(new Date()));
-		userOtherMsgNotificationService.passVIPApplyMsg(uid, "濡傛湁鐤戦棶璇疯仈绯绘垜鐨�-浜哄伐瀹㈡湇", msgOther);
+		userOtherMsgNotificationService.passVIPApplyMsg(uid, "杩斿埄濂栧姳鍒稿拰璧犻�佸厤鍗曞埜璇峰埌鎴戠殑-绂忓埄涓績涓煡鐪�", msgOther);
 		
+		// 閫氱煡涓婄骇
+		callBoss(uid);
+	}
+
+	/**
+	 * 閫氱煡涓婄骇鑴辩鍏崇郴
+	 * @param uid
+	 */
+	@Transactional
+	private void callBoss(Long uid) {
 		// 鏄惁瀛樺湪涓婄骇
 		ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid);
 		if (threeSale == null) 
@@ -145,7 +178,6 @@
 		inviteSeparate.setUpdateTime(new Date());
 		userInviteSeparateService.insertSelective(inviteSeparate);
 		
-		
 		UserInfo userInfo = userInfoService.selectByPKey(uid);
 		// 娑堟伅
 		MsgOtherVIPDTO msgboss = new MsgOtherVIPDTO();
@@ -154,7 +186,7 @@
 		msgboss.setContent3("浠婃棩璧�"+limitDays+"澶╁唴锛屼綘鏈兘鎴愪负瓒呯骇浼氬憳灏嗕細涓庡叾浠ュ強鍏剁洿鎺ョ矇涓濊劚绂婚個璇峰叧绯� ");
 		userOtherMsgNotificationService.teamVIPCallBoss(bossId, "濡傛湁鐤戦棶璇疯仈绯绘垜鐨�-浜哄伐瀹㈡湇", msgboss);
 	}
-
+	
 	@Transactional
 	@Override
 	public void rejectVIPApply(Long uid, String reason) throws UserVIPInfoException {

--
Gitblit v1.8.0