From 69bee82b81626b82b7f39f0e459e4f56b1699b51 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 13 三月 2019 12:02:16 +0800
Subject: [PATCH] 正式数据库修改

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java |  508 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 267 insertions(+), 241 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java
index 683afc5..73c27c9 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java
@@ -1,17 +1,16 @@
 package com.yeshi.fanli.controller.client;
 
 import java.io.PrintWriter;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
 import javax.annotation.Resource;
 
+import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
-import org.yeshi.utils.DateUtil;
 import org.yeshi.utils.JsonUtil;
 
 import com.yeshi.fanli.entity.accept.AcceptData;
@@ -21,6 +20,7 @@
 import com.yeshi.fanli.entity.bus.user.UserSystemCoupon;
 import com.yeshi.fanli.entity.system.SystemCoupon;
 import com.yeshi.fanli.entity.system.SystemCoupon.CouponTypeEnum;
+import com.yeshi.fanli.exception.user.UserInfoExtraException;
 import com.yeshi.fanli.exception.user.UserSystemCouponException;
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.config.SystemCouponService;
@@ -39,12 +39,16 @@
 
 /**
  * 绂忓埄涓績
+ * 
  * @author Administrator
  *
  */
 @Controller
 @RequestMapping("api/v1/user/coupon")
 public class UserCouponController {
+
+	@Resource(name = "taskExecutor")
+	private TaskExecutor executor;
 
 	@Resource
 	private ConfigService configService;
@@ -53,34 +57,33 @@
 	private UserSystemCouponService UserSystemCouponService;
 
 	@Resource
-	private  SwiperPictureService swiperPictureService;
-	
+	private SwiperPictureService swiperPictureService;
+
 	@Resource
 	private CommonOrderService commonOrderService;
-	
+
 	@Resource
 	private DeviceLotteryRecordService deviceLotteryRecordService;
-	
+
 	@Resource
 	private SystemCouponService systemCouponService;
-	
+
 	@Resource
 	private UserSystemCouponService userSystemCouponService;
-	
+
 	@Resource
 	private UserInfoExtraService userInfoExtraService;
-	
+
 	@Resource
 	private CommonOrderCountService commonOrderCountService;
 
 	@Resource
 	private ThreeSaleSerivce threeSaleSerivce;
-	
-	// 鏈�澶ф娊濂栨鏁�
-	private static int MAX_COUNT = 5;
-	
+
+
 	/**
 	 * 鐢ㄦ埛鍒稿垪琛ㄦ煡璇�
+	 * 
 	 * @param acceptData
 	 * @param page
 	 * @param uid
@@ -92,31 +95,31 @@
 			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
-		
+
 		try {
 			if (page == null || page < 1) {
 				page = 1;
 			}
-			
+
 			// 绂忓埄涓績鍥剧墖
-			String topPicture = null; 
-			if(page == 1) {
+			String topPicture = null;
+			if (page == 1) {
 				List<SwiperPicture> listswiper = swiperPictureService.getByBannerCard("welfare_top");
 				if (listswiper != null && listswiper.size() > 0) {
 					topPicture = listswiper.get(0).getSrc();
 				}
 			}
-			
+
 			long count = 0;
-			List<UserSystemCouponVO> resultList = UserSystemCouponService.getUserCouponVOList((page - 1) * Constant.PAGE_SIZE, 
-					Constant.PAGE_SIZE, uid );
-			
+			List<UserSystemCouponVO> resultList = UserSystemCouponService
+					.getUserCouponVOList((page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE, uid);
+
 			if (resultList != null && resultList.size() > 0) {
 				count = UserSystemCouponService.countUserCouponList(uid);
 			} else if (resultList == null) {
 				resultList = new ArrayList<UserSystemCouponVO>();
 			}
-			
+
 			JSONObject data = new JSONObject();
 			data.put("topPicture", topPicture);
 			data.put("count", count);
@@ -124,6 +127,26 @@
 
 			out.print(JsonUtil.loadTrueResult(data));
 
+			// 鏇存柊绂忓埄涓績鏈鏁伴噺
+			if (page == 1) {
+				executor.execute(new Runnable() {
+					@Override
+					public void run() {
+						UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+						// 鏈鍒告槸鍚﹀ぇ浜�0
+						if (userInfoExtra != null && userInfoExtra.getCouponNews() > 0) {
+							userInfoExtra.setCouponNews(0);
+							try {
+								userInfoExtraService.saveUserInfoExtra(userInfoExtra);
+							} catch (UserInfoExtraException e) {
+								e.printStackTrace();
+							}
+						}
+
+					}
+				});
+			}
+
 		} catch (UserSystemCouponException e) {
 			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
 		} catch (Exception e) {
@@ -131,40 +154,42 @@
 			e.printStackTrace();
 		}
 	}
-	
+
 	/**
 	 * 鐢ㄦ埛濂栧姳鍒�
+	 * 
 	 * @param acceptData
 	 * @param page
 	 * @param uid
+	 * @param auctionId  鍟嗗搧id
 	 * @param out
 	 */
 	@RequestMapping(value = "getGoodsCouponList", method = RequestMethod.POST)
-	public void getGoodsCouponList(AcceptData acceptData, Long uid, PrintWriter out) {
+	public void getGoodsCouponList(AcceptData acceptData, Long uid, Long auctionId, PrintWriter out) {
 		if (uid == null) {
 			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
-		
+
 		try {
-			List<UserSystemCouponVO> resultList = UserSystemCouponService.getGoodsCouponList(uid);
-			
-			if (resultList == null ) {
-				resultList =new ArrayList<UserSystemCouponVO>();
+			List<UserSystemCouponVO> resultList = UserSystemCouponService.getGoodsCouponList(uid, auctionId);
+
+			if (resultList == null) {
+				resultList = new ArrayList<UserSystemCouponVO>();
 			}
-			
+
 			JSONObject dataTip = new JSONObject();
 			dataTip.put("content", configService.get("free_coupon_tip"));
 			dataTip.put("fontColor", "#F14242");
-			
+
 			JSONObject data = new JSONObject();
 			data.put("helpLink", configService.get("free_coupon_help"));
 			data.put("tip", dataTip);
 			data.put("count", resultList.size());
 			data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList));
-			
+
 			out.print(JsonUtil.loadTrueResult(data));
-			
+
 		} catch (UserSystemCouponException e) {
 			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
 		} catch (Exception e) {
@@ -172,10 +197,10 @@
 			e.printStackTrace();
 		}
 	}
-	
-	
+
 	/**
-	 *  鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀�
+	 * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀�
+	 * 
 	 * @param acceptData
 	 * @param page
 	 * @param uid
@@ -187,7 +212,7 @@
 			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
-		
+
 		try {
 			UserSystemCouponService.useGoodsCoupon(uid, cid, goodId);
 			out.print(JsonUtil.loadTrueResult("浣跨敤鎴愬姛"));
@@ -198,10 +223,10 @@
 			e.printStackTrace();
 		}
 	}
-	
-	
+
 	/**
 	 * 鐢ㄦ埛濂栧姳鍒�
+	 * 
 	 * @param acceptData
 	 * @param page
 	 * @param uid
@@ -209,26 +234,26 @@
 	 */
 	@RequestMapping(value = "getOrderCouponList", method = RequestMethod.POST)
 	public void getOrderCouponList(AcceptData acceptData, Long uid, PrintWriter out) {
-		
+
 		if (uid == null) {
 			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
-		
+
 		try {
 			List<UserSystemCouponVO> resultList = UserSystemCouponService.getOrderCouponList(uid);
-			
-			if (resultList == null ) {
-				resultList =new ArrayList<UserSystemCouponVO>();
+
+			if (resultList == null) {
+				resultList = new ArrayList<UserSystemCouponVO>();
 			}
-			
+
 			JSONObject data = new JSONObject();
 			data.put("helpLink", configService.get("reward_coupon_help"));
 			data.put("count", resultList.size());
 			data.put("result_list", JsonUtil.getApiCommonGson().toJson(resultList));
-			
+
 			out.print(JsonUtil.loadTrueResult(data));
-			
+
 		} catch (UserSystemCouponException e) {
 			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
 		} catch (Exception e) {
@@ -236,10 +261,10 @@
 			e.printStackTrace();
 		}
 	}
-	
-	
+
 	/**
-	 *  鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀�
+	 * 鍏嶅崟鍒镐娇鐢ㄨ褰� 浠ュ強鐘舵�佷慨鏀�
+	 * 
 	 * @param acceptData
 	 * @param page
 	 * @param uid
@@ -247,19 +272,19 @@
 	 */
 	@RequestMapping(value = "useRewardCoupon", method = RequestMethod.POST)
 	public void useRewardCoupon(AcceptData acceptData, Long uid, Long cid, String orderNo, PrintWriter out) {
-		
+
 		if (uid == null) {
 			out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
 			return;
 		}
-		
+
 		try {
 			UserSystemCouponService.useOrderCoupon(uid, cid, orderNo);
-			
+
 			JSONObject data = commonOrderService.getRewardJumpInfo(orderNo);
-			
+
 			out.print(JsonUtil.loadTrueResult(data));
-			
+
 		} catch (UserSystemCouponException e) {
 			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
 		} catch (Exception e) {
@@ -267,25 +292,26 @@
 			e.printStackTrace();
 		}
 	}
-	
+
 	/**
-	 *  璁㈠崟-濂栧姳杩涘害璇︽儏
+	 * 璁㈠崟-濂栧姳杩涘害璇︽儏
+	 * 
 	 * @param acceptData
-	 * @param orderNo 璁㈠崟鍙�
+	 * @param orderNo    璁㈠崟鍙�
 	 * @param out
 	 */
 	@RequestMapping(value = "getRewardRecord", method = RequestMethod.POST)
 	public void getRewardCounponRecord(AcceptData acceptData, String orderNo, PrintWriter out) {
-		
+
 		try {
-			
+
 			UserSystemCouponRecordVO rewardRecord = UserSystemCouponService.getRewardCouponRecord(orderNo);
-			
+
 			JSONObject data = new JSONObject();
 			data.put("rewardRecord", rewardRecord);
-			
+
 			out.print(JsonUtil.loadTrueResult(data));
-			
+
 		} catch (UserSystemCouponException e) {
 			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
 		} catch (Exception e) {
@@ -293,25 +319,26 @@
 			e.printStackTrace();
 		}
 	}
-	
+
 	/**
-	 *  璁㈠崟-濂栧姳杩涘害璇︽儏
+	 * 璁㈠崟-濂栧姳杩涘害璇︽儏
+	 * 
 	 * @param acceptData
-	 * @param orderNo 璁㈠崟鍙�
+	 * @param orderNo    璁㈠崟鍙�
 	 * @param out
 	 */
 	@RequestMapping(value = "getFreeCounponRecord", method = RequestMethod.POST)
 	public void getFreeCounponRecord(AcceptData acceptData, String orderNo, PrintWriter out) {
-		
+
 		try {
-			
+
 			UserSystemCouponRecordVO rewardRecord = UserSystemCouponService.getFreeCouponRecord(orderNo);
-			
+
 			JSONObject data = new JSONObject();
 			data.put("frreCouponRecord", rewardRecord);
-			
+
 			out.print(JsonUtil.loadTrueResult(data));
-			
+
 		} catch (UserSystemCouponException e) {
 			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
 		} catch (Exception e) {
@@ -319,7 +346,6 @@
 			e.printStackTrace();
 		}
 	}
-	
 
 	/**
 	 * 鑾峰彇鎶藉娆℃暟
@@ -331,50 +357,11 @@
 	 */
 	@RequestMapping(value = "getLotteryCount")
 	public void getLotteryCount(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
-		int count = 0;
 		try {
-			count = getSurplusCount(acceptData, uid);
-		} catch (Exception e) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(e.getMessage()));
-			e.printStackTrace();
-		}
+			// 榛樿鏈�澶ф娊濂栨鏁�
+			int count = 5;
 
-		try {
-			// 鎶藉瑙勫垯
-			String lotteryRule = configService.get("lottery_rule_newbies");
-
-			JSONObject data = new JSONObject();
-			data.put("count", count);
-			data.put("rule", lotteryRule);
-
-			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
-
-		} catch (Exception e) {
-			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触"));
-			e.printStackTrace();
-		}
-	}
-	
-	
-	/**
-	 * 鑾峰彇鎶藉缁撴灉
-	 * 
-	 * @param callback
-	 * @param acceptData
-	 * @param uid
-	 * @param out
-	 */
-	@RequestMapping(value = "getLotteryResult")
-	public void getLotteryResult(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
-
-		try {
-			// 濂栧搧
-			int count = 0;
-			String prize = "";
-			String hasPrize = "";
-			Long couponId = null;
-			
-			if (uid == null) { // 鏈櫥褰�
+			if (uid == null || uid == 0) { // 鏈櫥褰�
 				int platformType = 0;
 				String platform = acceptData.getPlatform();
 				if ("android".equals(platform)) {
@@ -391,14 +378,103 @@
 					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璁惧涓嶅瓨鍦�"));
 					return;
 				}
-				int countPrize = 0;
-				
+
 				List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType,
 						device);
-				if (list != null && list.size() == MAX_COUNT) { // 鏃犳娊濂栨満浼�
+				if (list != null && list.size() > 0) {
+					count = count - list.size();
+				}
+
+			} else { // 宸茬櫥褰�
+				UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
+				if (userInfoExtra == null) {
+					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鐢ㄦ埛淇℃伅涓嶅瓨鍦�"));
+					return;
+				}
+
+				Integer lotteryNewbies = userInfoExtra.getLotteryNewbies();
+				if (lotteryNewbies == null) { // 鏈娊杩�
+					// 鏄惁鏈夎繃璁㈠崟锛氳繑鍒┿�佸垎浜鍗�
+					boolean hasOrder = commonOrderCountService.hasRebateAndShareOrder(uid);
+					if (hasOrder) {
+						count = 0; // 涓嶇畻鏂扮敤鎴�
+					}
+					userInfoExtra.setLotteryNewbies(count);
+					userInfoExtraService.saveUserInfoExtra(userInfoExtra);
+				} else {
+					count = lotteryNewbies; // 鍓╀綑娆℃暟
+				}
+			}
+
+			// 鎶藉瑙勫垯
+			String lotteryRule = configService.get("lottery_rule_newbies");
+
+			JSONObject data = new JSONObject();
+			data.put("count", count);
+			data.put("rule", lotteryRule);
+
+			JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
+
+		} catch (Exception e) {
+			JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("鎿嶄綔澶辫触"));
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * 鑾峰彇鎶藉缁撴灉
+	 * 
+	 * @param callback
+	 * @param acceptData
+	 * @param uid
+	 * @param out
+	 */
+	@RequestMapping(value = "getLotteryResult")
+	public void getLotteryResult(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
+
+		try {
+			// 鍓╀綑鎶藉娆℃暟
+			int count = 0;
+			// 鏈鎶戒腑鐨勫鍝�
+			String prize = null;
+			
+			// 宸蹭娇鐢ㄦ娊濂栨鏁�
+			int countUsed = 0;
+			// 宸叉嫢鏈夊鍝佹暟閲�
+			int countPrize = 0;
+			// 宸叉湁鍒哥被鍨�
+			String couponType = null;
+
+			if (uid == null || uid == 0) { // 鏈櫥褰�
+				int platformType = 0;
+				String platform = acceptData.getPlatform();
+				if ("android".equals(platform)) {
+					platformType = 1;
+				} else if ("ios".equals(platform)) {
+					platformType = 2;
+				} else {
+					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("骞冲彴鏈夎"));
+					return;
+				}
+
+				String device = acceptData.getDevice();
+				if (device == null || device.trim().length() == 0) {
+					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璁惧涓嶅瓨鍦�"));
+					return;
+				}
+
+				List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType,
+						device);
+				if (list != null && list.size() >= Constant.MAX_COUNT_LOTTERY_NEWBIES) { // 鏃犳娊濂栨満浼�
 					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻"));
 					return;
-				} else if (list != null && list.size() < MAX_COUNT) { // 鎷ユ湁鎶藉鏈轰細
+				} 
+				
+				Long couponId = null;
+				
+				if (list == null || list.size() == 0) { // 鎷ユ湁鎶藉鏈轰細
+					count = Constant.MAX_COUNT_LOTTERY_NEWBIES - 1;
+				} else {
 					
 					for (DeviceLotteryRecord deviceLotteryRecord : list) {
 						Long systemCouponId = deviceLotteryRecord.getSystemCouponId();
@@ -406,35 +482,35 @@
 							countPrize++;
 							couponId = systemCouponId;
 						}
-						
-						if (countPrize == 1) {
-							SystemCoupon coupon = systemCouponService.selectByPrimaryKey(systemCouponId);
-							hasPrize = coupon.getType().name();
-						}
 					}
-					
-					
-					count = MAX_COUNT - 1 - list.size();
-					
-					
-				} else {
-					count = MAX_COUNT - 1;
+					count = Constant.MAX_COUNT_LOTTERY_NEWBIES - 1 - list.size();
 				}
-
-				// 濂栧搧
-				prize = getLotteryPrize(MAX_COUNT, countPrize, list.size(), couponId);
+				
+				// 濂栧搧灏忎簬2鏃舵墠鎶藉
+				if (countPrize < 2) {
+					if (couponId != null) {
+						SystemCoupon coupon = systemCouponService.selectByPrimaryKey(couponId);
+						// 宸叉湁鍒�
+						couponType = coupon.getType().name();
+					}
+					// 濂栧搧
+					prize = getLotteryPrize(Constant.MAX_COUNT_LOTTERY_NEWBIES, countPrize, list.size(), couponType);
+				}
+				
 				// 鎶戒腑
 				Long newCouponId = null;
 				if (prize != null && prize.trim().length() > 0) {
 					// 宸插瓨鍦ㄦ鍒�
-					if (hasPrize.equals(prize)) {
+					if (prize.equals(couponType)) {
 						prize = null;
 					} else {
-						SystemCoupon coupon= systemCouponService.getCouponByType(prize);
-						newCouponId = coupon.getId();
+						SystemCoupon coupon = systemCouponService.getCouponByType(prize);
+						if (coupon != null) {
+							newCouponId = coupon.getId();
+						}
 					}
 				}
-				
+
 				// 鎻掑叆璁板綍
 				DeviceLotteryRecord record = new DeviceLotteryRecord();
 				record.setDevice(device);
@@ -442,35 +518,57 @@
 				record.setSystemCouponId(newCouponId);
 				record.setCreateTime(new Date());
 				deviceLotteryRecordService.insertSelective(record);
-				
+
 			} else { // 宸茬櫥褰�
+				
 				UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
 				if (userInfoExtra == null) {
 					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("淇℃伅涓嶆纭�"));
 					return;
 				}
-				
+
+				// 鍓╀綑鎶藉娆℃暟
 				Integer lotteryNewbies = userInfoExtra.getLotteryNewbies();
-				if (lotteryNewbies == null || lotteryNewbies < 1 ) { // 娆℃暟宸茬敤鍏�
+				if (lotteryNewbies == null || lotteryNewbies < 1) { // 娆℃暟宸茬敤鍏�
 					JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻"));
 					return;
-				} else {
-					count = lotteryNewbies - 1; // 鍓╀綑娆℃暟
-				}
+				}  
 				
-				List<UserSystemCoupon> list = userSystemCouponService.getUserCouponBySource(uid, UserSystemCoupon.SOURCE_CHOUJIANG);
-				if (list != null && list.size() == 1) {
-					couponId = list.get(0).getSystemCoupon().getId();
-					SystemCoupon coupon = systemCouponService.selectByPrimaryKey(couponId);
-					hasPrize = coupon.getType().name();
-				}
+				// 鍓╀綑娆℃暟
+				count = lotteryNewbies - 1; 
+				// 宸蹭娇鐢ㄦ鏁�
+				countUsed = Constant.MAX_COUNT_LOTTERY_NEWBIES - lotteryNewbies;
 				
-				// 濂栧搧
-				prize = getLotteryPrize(MAX_COUNT, list.size(), MAX_COUNT- lotteryNewbies, couponId);
+
+				// 宸叉娊涓殑濂栧搧
+				List<UserSystemCoupon> list = userSystemCouponService.getUserCouponBySource(uid,
+						UserSystemCoupon.SOURCE_CHOUJIANG);
+				
+				if (list == null || list.size() == 0) {
+					// 鎶藉
+					prize = getLotteryPrize(Constant.MAX_COUNT_LOTTERY_NEWBIES, countPrize , countUsed, couponType);
+					
+				} else if (list.size() == 1) {
+					UserSystemCoupon userSystemCoupon = list.get(0);
+					
+					SystemCoupon systemCoupon = userSystemCoupon.getSystemCoupon();
+					if (systemCoupon != null) {
+						SystemCoupon coupon = systemCouponService.selectByPrimaryKey(systemCoupon.getId());
+						// 宸叉湁鍒�
+						couponType = coupon.getType().name();
+					}
+					
+					// 鎷ユ湁濂栧搧鏁伴噺
+					countPrize = 1;
+					
+					// 鎶藉
+					prize = getLotteryPrize(Constant.MAX_COUNT_LOTTERY_NEWBIES, countPrize, countUsed, couponType);
+				}
+
 				// 鎶戒腑
 				if (prize != null && prize.trim().length() > 0) {
-					
-					if (hasPrize.equals(prize)) {
+					if (prize.equals(couponType)) {
+						// 宸叉湁姝ゅ埜
 						prize = null;
 					} else {
 						// 鎻掑叆鍒镐俊鎭�
@@ -482,7 +580,7 @@
 				userInfoExtra.setLotteryNewbies(count);
 				userInfoExtraService.saveUserInfoExtra(userInfoExtra);
 			}
-		
+
 			if (prize == null || prize.trim().length() == 0) {
 				prize = "NoPrize";
 			}
@@ -498,35 +596,30 @@
 			e.printStackTrace();
 		}
 	}
-	
+
 	/**
 	 * 濂栧搧鎶藉彇
-	 * @param maxCount  鏈�澶ф鏁�
+	 * 
+	 * @param maxCount 鏈�澶ф鏁�
 	 * @param hasPrize 鎷ユ湁濂栧搧鏁伴噺
-	 * @param record  宸叉娊娆℃暟
+	 * @param record   宸叉娊娆℃暟
 	 * @param couponId 鍒竔d
 	 * @return
 	 */
-	public String getLotteryPrize(int maxCount, int countPrize, int record, Long couponId) {
-		
-		String prize = null; 
+	public String getLotteryPrize(int maxCount, int countPrize, int record, String couponType) {
+
+		String prize = null;
 		String freeCoupon = CouponTypeEnum.welfareFreeCoupon.name(); // 绂忓埄鍏嶈垂鍒�
-		String rebateCoupon =  CouponTypeEnum.rebatePercentCoupon.name(); // 濂栧姳鍒�
-		
+		String rebateCoupon = CouponTypeEnum.rebatePercentCoupon.name(); // 濂栧姳鍒�
+
 		if (countPrize == 1 && record == maxCount - 1) {
 			// 鏈�鍚庝竴娆★細 鍙敹鍒颁竴涓鍝�
-			SystemCoupon systemCoupon = systemCouponService.selectByPrimaryKey(couponId);
-			if (systemCoupon != null) {
-				CouponTypeEnum type = systemCoupon.getType();
-				if (type.name() == freeCoupon) {
-					prize = rebateCoupon; // 濂栧姳鍒�
-				} else {
-					prize = freeCoupon; // 绂忓埄鍏嶈垂鍒�
-				}
+			if (rebateCoupon.equals(couponType)) {
+				prize = freeCoupon; // 绂忓埄鍏嶈垂鍒�
 			} else {
-				prize = rebateCoupon; // 濂栧姳鍒�
+				prize = rebateCoupon;  // 濂栧姳鍒�
 			}
-			
+
 		} else if (countPrize == 0 && record == maxCount - 2) {
 			// 鍓�3娆℃病鏈夊鍔辨椂銆佸悗闈袱娆″繀涓�
 			long result = (1 + Math.round(Math.random() * (9)));
@@ -544,77 +637,10 @@
 					prize = freeCoupon; // 绂忓埄鍏嶈垂鍒�
 				} else if (result <= 6) {
 					prize = rebateCoupon; // 濂栧姳鍒�
-				} 
-			}
-		}
-		
-		return prize;
-	}
-	
-	
-	
-	public static void main(String[] args) {
-		long result = (1 + Math.round(Math.random() * (9)));
-		System.out.println(result);
-	}
-
-
-	/**
-	 * 鑾峰彇鎶藉缁撴灉
-	 * 
-	 * @param callback
-	 * @param acceptData
-	 * @param uid
-	 * @param out
-	 */
-	public int getSurplusCount(AcceptData acceptData, Long uid) throws Exception {
-
-		// 榛樿鏈�澶ф娊濂栨鏁�
-		int count = 5;
-
-		if (uid == null) { // 鏈櫥褰�
-			int platformType = 0;
-			String platform = acceptData.getPlatform();
-			if ("android".equals(platform)) {
-				platformType = 1;
-			} else if ("ios".equals(platform)) {
-				platformType = 2;
-			} else {
-				throw new Exception("骞冲彴鏈夎");
-			}
-
-			String device = acceptData.getDevice();
-			if (device == null || device.trim().length() == 0) {
-				throw new Exception("璁惧涓嶅瓨鍦�");
-			}
-
-			List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType, device);
-			if (list != null && list.size() > 0) {
-				count = count - list.size();
-			}
-
-		} else { // 宸茬櫥褰�
-			UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
-			if (userInfoExtra == null) {
-				throw new Exception("淇℃伅涓嶆纭�");
-			}
-
-			Integer lotteryNewbies = userInfoExtra.getLotteryNewbies();
-			if (lotteryNewbies == null) { // 鏈娊杩�
-				// 鏄惁鏈夎繃璁㈠崟锛氳繑鍒┿�佸垎浜鍗�
-				boolean hasOrder = commonOrderCountService.hasRebateAndShareOrder(uid);
-				if (hasOrder) {
-					count = 0; // 涓嶇畻鏂扮敤鎴�
 				}
-				userInfoExtra.setLotteryNewbies(count);
-				userInfoExtraService.saveUserInfoExtra(userInfoExtra);
-				
-			} else {
-				count = lotteryNewbies; // 鍓╀綑娆℃暟
-			} 
+			}
 		}
-
-		return count;
+		return prize;
 	}
 
 }

--
Gitblit v1.8.0