From f7f9fc4cdf7e9f055ca9a942623be745f7c4d566 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期一, 04 三月 2019 17:16:05 +0800
Subject: [PATCH] 邀请码生成队员关系激活福利券+未登录抽奖,登陆之后领取奖品

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java |  131 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 129 insertions(+), 2 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
index 196e085..5265f49 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java
@@ -15,8 +15,10 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.yeshi.utils.DateUtil;
+import org.yeshi.utils.JsonUtil;
 
 import com.yeshi.fanli.dao.mybatis.user.UserSystemCouponMapper;
+import com.yeshi.fanli.entity.bus.user.DeviceLotteryRecord;
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 import com.yeshi.fanli.entity.bus.user.Order;
 import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -39,10 +41,12 @@
 import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
 import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService;
 import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService;
+import com.yeshi.fanli.service.inter.order.CommonOrderCountService;
 import com.yeshi.fanli.service.inter.order.CommonOrderService;
 import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
 import com.yeshi.fanli.service.inter.order.OrderHongBaoMapService;
 import com.yeshi.fanli.service.inter.order.OrderService;
+import com.yeshi.fanli.service.inter.user.DeviceLotteryRecordService;
 import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
 import com.yeshi.fanli.service.inter.user.UserInfoService;
 import com.yeshi.fanli.service.inter.user.UserMoneyDetailService;
@@ -117,6 +121,11 @@
 	@Resource
 	private UserOtherMsgNotificationService userOtherMsgNotificationService;
 	
+	@Resource
+	private DeviceLotteryRecordService deviceLotteryRecordService;
+	
+	@Resource
+	private CommonOrderCountService commonOrderCountService;
 
 	@Override
 	public int insertSelective(UserSystemCoupon record) {
@@ -154,7 +163,8 @@
 	}
 
 	@Override
-	public void insertUserCoupon(Long uid, String couponType,String source)throws UserSystemCouponException,Exception{
+	@Transactional
+	public void insertUserCoupon(Long uid, String couponType, String source)throws UserSystemCouponException,Exception{
 		
 		if (couponType == null || uid == null) {
 			throw new UserSystemCouponException(1, "鍙傛暟涓嶆纭�");
@@ -1044,6 +1054,9 @@
 			return;
 		}
 		
+		// 楠岃瘉鏄惁澶辨晥
+		updateCounponInvalid(uid);
+		
 		// 寰呮椿绂忓埄鍏嶅崟鍒�
 		List<UserSystemCoupon> list = userSystemCouponMapper.getCouponByTypeAndNotActivated(uid, systemCoupon.getId());
 		if (list == null || list.size() == 0) {
@@ -1056,9 +1069,14 @@
 			userSystemCoupon.setUpdateTime(new Date());
 			userSystemCouponMapper.updateByPrimaryKeySelective(userSystemCoupon);
 			
+			Integer state = userSystemCoupon.getState();
+			if (UserSystemCoupon.STATE_OVERDUE == state) {
+				continue; // 宸插け鏁堜笉鍋氭秷鎭帹閫�
+			}
+			
 			// 娑堟伅鎺ㄩ��
 			try {
-				userOtherMsgNotificationService.welfareCouponGet(userSystemCoupon);
+				userOtherMsgNotificationService.welfareCouponActive(userSystemCoupon, new UserInfo(uid));
 			} catch(Exception e) {
 				try {
 					LogHelper.errorDetailInfo(e);
@@ -1325,5 +1343,114 @@
 	}
 	
 	
+	@Override
+	@Transactional
+	public void copyLotteryPrize(Long uid, int platform, String device) throws Exception {
+		
+		if (uid == null || device == null) {
+			return;
+		}
+		
+		// 鏈櫥闄嗕箣鍓嶆娊濂栬褰�
+		List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platform, device);
+		if (list == null || list.size() == 0) {
+			return;
+		}
+		
+		// 鑾峰彇棰濆淇℃伅
+		UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+		if (userInfoExtra != null && userInfoExtra.getLotteryNewbies() != null) {
+			return;
+		}
+		
+		// 鏄惁鏈夎繃璁㈠崟锛氳繑鍒┿�佸垎浜鍗�
+		boolean hasOrder = commonOrderCountService.hasRebateAndShareOrder(uid);
+		if (hasOrder) {
+			return;
+		}
+		
+		int coupon = 0;
+		
+		for (DeviceLotteryRecord reviceLotteryRecord: list) {
+			
+			// 鍒犻櫎璁板綍
+			deviceLotteryRecordService.deleteByPrimaryKey(reviceLotteryRecord.getId());
+			
+			Long systemCouponId = reviceLotteryRecord.getSystemCouponId();
+			if (systemCouponId == null) {
+				continue;
+			}
+			SystemCoupon systemCoupon = systemCouponService.selectByPrimaryKey(systemCouponId);
+			if (systemCoupon == null) {
+				continue;
+			}
+			
+			int stateActivated = 1;
+			if (systemCoupon.getType() == CouponTypeEnum.welfareFreeCoupon) {
+				// 绂忓埄鍒哥姸鎬�
+				long countSuccess = threeSaleSerivce.countSuccessFirstTeam(uid);
+				// 娌℃湁涓嬬骇闃熷憳 --寰呮縺娲�
+				if (countSuccess == 0) {
+					stateActivated = 0;
+				}
+			}
+			
+			// 缁撴潫鏃ユ湡
+			String endDay = DateUtil.plusDay(systemCoupon.getExpiryDay(), new Date());
+			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+			Date endTime = format.parse(endDay);
+			
+			UserSystemCoupon userCoupon = new UserSystemCoupon();
+			userCoupon.setUid(uid);
+			userCoupon.setSource(UserSystemCoupon.SOURCE_CHOUJIANG);
+			userCoupon.setSystemCoupon(systemCoupon);
+			userCoupon.setState(UserSystemCoupon.STATE_CAN_USE);
+			userCoupon.setStateActivated(stateActivated);
+			userCoupon.setStartTime(new Date());
+			userCoupon.setEndTime(endTime);
+			userCoupon.setCreateTime(new Date());
+			userCoupon.setUpdateTime(new Date());
+			// 鎻掑叆鏁版嵁搴�
+			insertSelective(userCoupon);
+			
+			// 鍒告暟閲�
+			coupon ++;
+			
+			// 娑堟伅鎺ㄩ��
+			try {
+				if (systemCoupon.getType() == CouponTypeEnum.welfareFreeCoupon) {
+					userOtherMsgNotificationService.welfareCouponGet(userCoupon);
+				} else if (systemCoupon.getType() == CouponTypeEnum.freeCoupon) {
+					userOtherMsgNotificationService.freeSheetCouponGet(userCoupon);
+				} else if (systemCoupon.getType() == CouponTypeEnum.rebatePercentCoupon) {
+					userOtherMsgNotificationService.rewardCouponGet(userCoupon,systemCoupon.getPercent().intValue());
+				}
+				
+			} catch(Exception e) {
+				try {
+					LogHelper.errorDetailInfo(e);
+				} catch (Exception e1) {
+					e1.printStackTrace();
+				}
+			}
+		}
+		
+		if(userInfoExtra == null) {
+			userInfoExtra = new UserInfoExtra();
+			userInfoExtra.setUserInfo(new UserInfo(uid));
+		}
+		
+		userInfoExtra.setLotteryNewbies(Constant.MAX_COUNT_LOTTERY_NEWBIES-list.size());
+		Integer couponNews = userInfoExtra.getCouponNews();
+		if (couponNews == null) {
+			userInfoExtra.setCouponNews(coupon);
+		} else {
+			userInfoExtra.setCouponNews(couponNews + coupon);
+		}
+		userInfoExtraService.saveUserInfoExtra(userInfoExtra);
+	
+	}
+	
+	
 	
 }

--
Gitblit v1.8.0