| 
					
				 | 
			
			
				@@ -5,14 +5,17 @@ import com.google.gson.GsonBuilder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.platform.yijia.config.YiJiaRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.platform.yijia.pojo.Coupon; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.platform.yijia.pojo.CouponIssue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.platform.yijia.pojo.StationInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.platform.yijia.pojo.UserCoupon; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.platform.yijia.service.CouponService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.platform.yijia.service.StationService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.platform.yijia.utils.CodeMsg; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.platform.yijia.utils.ResultData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.sun.corba.se.spi.ior.ObjectKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.swagger.annotations.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.swagger.annotations.ApiParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Controller; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -29,7 +32,7 @@ import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @Author JK 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @Date 2021年7月6日 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Controller 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @YiJiaRequest() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @CrossOrigin 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 @Api(tags = "优惠券") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -38,32 +41,40 @@ public class CouponController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private CouponService couponService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Resource 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private StationService stationService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 获取油站分发优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param stationId  油站ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param couponIssueId    发放方式ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param unionId    用户unionId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping(value = "/selectStaGrantCouponList", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "获取油站已发放的优惠券信息", httpMethod = "GET", notes = "获取油站已发放的优惠券信息") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public String selectStaGrantCouponList(@ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                           @ApiParam(value = "发放方式ID", required = true) @RequestParam Integer couponIssueId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                           @ApiParam(value = "用户unionId", required = true) @RequestParam String unionId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                           @ApiParam(value = "发放方式ID", required = true) @RequestParam String couponIssueId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Gson gson =new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ResultData resultData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Coupon coupon = new Coupon(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            coupon.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            coupon.setCouponIssueId(couponIssueId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            coupon.setUnionId(unionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //领取油站所分发的优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Coupon> coupons = couponService.selectStaGrantCouponList(coupon); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            resultData = ResultData.success(coupons); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StationInfo stationInfo = new StationInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stationInfo.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Coupon coupon = new Coupon(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                coupon.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                coupon.setCouponIssueId(couponIssueId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //coupon.setUnionId(unionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //领取油站所分发的优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<Coupon> coupons = couponService.selectStaGrantCouponList(coupon); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultData = ResultData.success(coupons); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logger.error("获取油站已发放的优惠券错误信息:" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultData = ResultData.error(CodeMsg.SEARCH_FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -73,6 +84,7 @@ public class CouponController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //获取优惠券信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping(value = "/selectCouponInfo", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "获取优惠券信息", httpMethod = "GET", notes = "获取优惠券信息") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public String selectCouponInfo(@ApiParam(value = "优惠券ID", required = true) @RequestParam Integer id){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Gson gson =new Gson(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -83,6 +95,7 @@ public class CouponController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Coupon couponInfo = couponService.selectCouponInfo(coupon); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultData = ResultData.success(couponInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logger.error("获取优惠券错误信息:" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultData = ResultData.error(CodeMsg.SEARCH_FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -91,18 +104,27 @@ public class CouponController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //获取客户所拥有的优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @RequestMapping(value = "/selectUserCoupons", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @ApiOperation(value = "获取客户所拥有的优惠券", httpMethod = "GET", notes = "获取客户所拥有的优惠券") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public String selectUserCoupons(@ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     @ApiParam(value = "用户unionId", required = true) @RequestParam String unionId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Gson gson =new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ResultData resultData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            UserCoupon userCoupon = new UserCoupon(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            userCoupon.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            userCoupon.setUnionId(unionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<UserCoupon> userCoupons = couponService.selectUserCoupons(userCoupon); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            resultData = ResultData.success(userCoupons); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StationInfo stationInfo = new StationInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stationInfo.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            StationInfo stationInfos = stationService.selectStationInfo(stationInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(stationInfos !=null && stationInfos.getCouponEnabledFlag().equals("1")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                UserCoupon userCoupon = new UserCoupon(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                userCoupon.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                userCoupon.setUnionId(unionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<UserCoupon> userCoupons = couponService.selectUserCoupons(userCoupon); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultData = ResultData.success(userCoupons); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultData = ResultData.error(CodeMsg.NO_ENABLE_COUPON); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logger.error("获取客户所拥有的优惠券错误信息:" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultData = ResultData.error(CodeMsg.SEARCH_FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -110,92 +132,126 @@ public class CouponController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //用户领取优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @RequestMapping(value = "/addUserCoupon", method = RequestMethod.GET) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @RequestMapping(value = "/addUserCoupon", method = RequestMethod.POST) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ResponseBody 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @ApiOperation(value = "用户领取优惠券", httpMethod = "GET", notes = "用户领取优惠券") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @ApiOperation(value = "用户领取优惠券", httpMethod = "POST", notes = "用户领取优惠券") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public String addUserCoupon(@ApiParam(value = "用户unionId", required = true) @RequestParam String unionId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                @ApiParam(value = "优惠券IDS", required = true) @RequestParam List<Integer> ids, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                @ApiParam(value = "领取方式ID", required = true) @RequestParam Integer couponIssueId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                @ApiParam(value = "优惠券IDS", required = true) @RequestParam String couponIds, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                @ApiParam(value = "领取方式ID", required = true) @RequestParam String couponIssueId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 @ApiParam(value = "油站ID", required = true) @RequestParam Integer stationId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Gson gson = new Gson(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ResultData resultData = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Coupon couponParam = new Coupon();                   //查询优惠券参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            UserCoupon userCouponParam = new UserCoupon();       //用户优惠券新增参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Map<String, Object>> successCouponList= new ArrayList<>();        //领取成功的优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<Map<String, Object>> failCouponList= new ArrayList<>();          //领取失败的优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<String, Object> failMap = new HashMap<>();                        //领取失败的优惠券失败原因 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Map<String, Object> successMap = new HashMap<>();                     //领取成功的优惠券信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //获取领取方式信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            CouponIssue couponIssue = new CouponIssue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            couponIssue.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            couponIssue.setCouponIssueId(couponIssueId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<CouponIssue> couponIssueList = couponService.selectCouponIssueList(couponIssue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(couponIssueList !=null && couponIssueList.size() ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                int cs =0;                                           //用户优惠券领取成功张数 couponSuccess 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //领取成功的张数与该领取方式在当前页最多领取的张数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if(cs <= couponIssueList.get(0).getGiveLimit()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.info("用户领取优惠券所需参数: unionId: "+ unionId+ "; 油站ID:" +stationId + "; 优惠券IDS:" + couponIds + "; 领取方式ID: " + couponIssueId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(StringUtils.isNotBlank(couponIds)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                String str[] = couponIds.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> ids = Arrays.asList(str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Coupon couponParam = new Coupon();                   //查询优惠券参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                UserCoupon userCouponParam = new UserCoupon();       //用户优惠券新增参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //返回前端参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> successCouponList= new ArrayList<>();          //领取成功的优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> couponNumNEList= new ArrayList<>();            //优惠券数量不足 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> couponHoldNumMaxList= new ArrayList<>();       //用户持有优惠券数量达到最大值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> notClaimedCouponList= new ArrayList<>();       //用户未领取的优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<String> couponReceiveNumList= new ArrayList<>();       //用户累计的优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //获取领取方式信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                CouponIssue couponIssue = new CouponIssue(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                couponIssue.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                couponIssue.setCouponIssueId(couponIssueId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<CouponIssue> couponIssueList = couponService.selectCouponIssueList(couponIssue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(couponIssueList !=null && couponIssueList.size() ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    int couponSuccessNum =0;                                           //用户优惠券领取成功张数 couponSuccess 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for(int i=0; i<ids.size(); i++){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Integer couponId = ids.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Integer couponId = Integer.valueOf(ids.get(i)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         couponParam.setId(couponId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        Coupon coupon = couponService.selectCouponInfo(couponParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        //该优惠券是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if(coupon !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            //该优惠券是否已被领完 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if(coupon.getCouponNum() !=null && coupon.getCouponNum() >0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                userCouponParam.setCouponIsUsed("0");           //是否使用:0、未使用;1、已使用; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                userCouponParam.setCouponNo("");                //优惠券编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                userCouponParam.setUnionId(unionId);            //用户unionId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                userCouponParam.setCouponId(coupon.getId());    //优惠券ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                userCouponParam.setStationId(stationId);        //油站ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                userCouponParam.setCouponIsEffective("1");      //优惠券是否有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                userCouponParam.setGetCouponTime(new Date());   //优惠券领取时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                userCouponParam.setGetCouponOrigin("1");        //优惠券来源 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                String effectiveTimeType = coupon.getEffectiveTimeType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                //'有效时间类型: 1,固定时间;2,领取后x天内有效' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                switch (effectiveTimeType){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    case "1": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        userCouponParam.setCouponEffectiveTime(coupon.getEffectiveTimeEnd());  //优惠券有效期截止时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    case "2": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        Calendar calendar = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        calendar.setTime(userCouponParam.getGetCouponTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        calendar.add(Calendar.DATE, coupon.getEffectiveDayNum());     //领取后多少天有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        userCouponParam.setCouponEffectiveTime(calendar.getTime());   //优惠券有效期截止时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                //获取该用户所持有此优惠券的张数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                int userCouponCount = couponService.selectUserCouponCount(userCouponParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if(userCouponCount > coupon.getCouponHoldNum()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    failMap.put("领取失败,该用户所持有此优惠券已达到最大数量", coupon.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    failCouponList.add(failMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    int auc = couponService.addUserCoupon(userCouponParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    if(auc ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        successMap.put("领取成功", coupon.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        successCouponList.add(successMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        //领取成功后次数加1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        cs++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //领取成功的张数与该领取方式在当前页最多领取的张数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if(couponSuccessNum <= couponIssueList.get(0).getGiveLimit()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Coupon coupon = couponService.selectCouponInfo(couponParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //该优惠券是否存在 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if(coupon != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                //该优惠券是否已被领完 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if(coupon.getCouponNum() != null && coupon.getCouponNum() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    UserCoupon uc = new UserCoupon(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    uc.setIssueId(couponIssueId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    uc.setStationId(stationId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    uc.setUnionId(unionId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    uc.setCouponId(coupon.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //获取该用户优惠券累计的张数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    int userCouponCountSum = couponService.selectUserCouponCount(uc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    uc.setCouponIsUsed("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //获取该用户所持有此优惠券的张数,即未使用的优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    int userCouponCountNoUsed = couponService.selectUserCouponCount(uc); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //获取该用户 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if(userCouponCountNoUsed <= coupon.getCouponHoldNum()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if(userCouponCountSum <= coupon.getCouponReceiveNum()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            userCouponParam.setCouponIsUsed("0");           //是否使用:0、未使用;1、已使用; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            long currentTimeMillis = System.currentTimeMillis(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            String s = stationId + Long.toString(currentTimeMillis) + Math.round((Math.random() + 1) * 1000); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            userCouponParam.setCouponNo(s);                //优惠券编码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            userCouponParam.setUnionId(unionId);            //用户unionId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            userCouponParam.setIssueId(couponIssueId);      //领取方式ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            userCouponParam.setCouponId(coupon.getId());    //优惠券ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            userCouponParam.setStationId(stationId);        //油站ID 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            userCouponParam.setCouponIsEffective("1");      //优惠券是否有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            userCouponParam.setGetCouponTime(new Date());   //优惠券领取时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            String effectiveTimeType = coupon.getEffectiveTimeType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            //'有效时间类型: 1,固定时间;2,领取后x天内有效' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            switch (effectiveTimeType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                case "1": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    userCouponParam.setCouponEffectiveTime(coupon.getEffectiveTimeEnd());  //优惠券有效期截止时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                case "2": 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    Calendar calendar = Calendar.getInstance(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    calendar.setTime(userCouponParam.getGetCouponTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    calendar.add(Calendar.DATE, coupon.getEffectiveDayNum());     //领取后多少天有效 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    userCouponParam.setCouponEffectiveTime(calendar.getTime());   //优惠券有效期截止时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            if(couponService.addUserCoupon(userCouponParam) == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                //领取成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                successCouponList.add(couponId.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                //领取成功后次数 +1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                couponSuccessNum++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            //用户累计领取已达到最大值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            couponReceiveNumList.add(couponId.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        //用户持有数量超出 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        couponHoldNumMaxList.add(couponId.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    //优惠券数量不足 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    couponNumNEList.add(couponId.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                failMap.put("领取失败,该优惠券已被领完", coupon.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                failCouponList.add(failMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //未领取的优惠券 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            notClaimedCouponList.add(couponId.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    //领取成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Map<String, Object> resultMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultMap.put("successCouponList", successCouponList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultMap.put("couponNumNEList", couponNumNEList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultMap.put("couponHoldNumMaxList", couponHoldNumMaxList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultMap.put("notClaimedCouponList", notClaimedCouponList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultMap.put("couponReceiveNumList", couponReceiveNumList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    logger.info("用户领取到的优惠券:" + resultMap.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultData = ResultData.success(resultMap); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    resultData = ResultData.error(CodeMsg.YEWU_FAIL,"该领取方式不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //领取成功 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Map<String, Object> resultMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                resultMap.put("successCouponList", successCouponList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                resultMap.put("failCouponList", failCouponList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                logger.info("用户领取到的优惠券:" + resultMap.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                resultData = ResultData.success(CodeMsg.SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                resultData = ResultData.error(CodeMsg.YEWU_FAIL,"该领取方式不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                resultData = ResultData.success(CodeMsg.SUCCESS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            logger.error("用户领取优惠券错误信息:" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //logger.error("用户领取优惠券错误信息:" + e.getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultData = ResultData.error(CodeMsg.INSERT_FAIL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return gson.toJson(resultData); 
			 |