From f2c91f920851153695d29ab047328801974cd459 Mon Sep 17 00:00:00 2001 From: yujian <yujian> Date: 星期二, 26 二月 2019 16:20:10 +0800 Subject: [PATCH] 券相关使用调整 --- fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java | 86 +++++++++++++++++++++++++++++-------------- 1 files changed, 58 insertions(+), 28 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 51f8969..ed33ef5 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 @@ -368,6 +368,7 @@ // 濂栧搧 int count = 0; String prize = ""; + String hasPrize = ""; Long couponId = null; if (uid == null) { // 鏈櫥褰� @@ -387,7 +388,7 @@ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璁惧涓嶅瓨鍦�")); return; } - int hasPrize = 0; + int countPrize = 0; List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType, device); @@ -395,25 +396,40 @@ JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻")); return; } else if (list != null && list.size() < MAX_COUNT) { // 鎷ユ湁鎶藉鏈轰細 + for (DeviceLotteryRecord deviceLotteryRecord : list) { Long systemCouponId = deviceLotteryRecord.getSystemCouponId(); if (systemCouponId != null) { - hasPrize++; + 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; } // 濂栧搧 - prize = getLotteryPrize(MAX_COUNT, hasPrize, list.size(), couponId); + prize = getLotteryPrize(MAX_COUNT, countPrize, list.size(), couponId); // 鎶戒腑 Long newCouponId = null; if (prize != null && prize.trim().length() > 0) { - SystemCoupon coupon= systemCouponService.getCouponByType(prize); - newCouponId =coupon.getId(); + // 宸插瓨鍦ㄦ鍒� + if (hasPrize.equals(prize)) { + prize = null; + } else { + SystemCoupon coupon= systemCouponService.getCouponByType(prize); + newCouponId = coupon.getId(); + } } // 鎻掑叆璁板綍 @@ -442,34 +458,42 @@ 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(); } // 濂栧搧 prize = getLotteryPrize(MAX_COUNT, list.size(), MAX_COUNT- lotteryNewbies, couponId); // 鎶戒腑 if (prize != null && prize.trim().length() > 0) { - SystemCoupon coupon= systemCouponService.getCouponByType(prize); - String endDay = DateUtil.plusDay(coupon.getExpiryDay(), new Date()); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - Date endTime = format.parse(endDay); + if (hasPrize.equals(prize)) { + prize = null; + } else { - int stateActivated = 1; - if (coupon.getType() == CouponTypeEnum.welfareFreeCoupon) { - stateActivated = 0; + SystemCoupon coupon= systemCouponService.getCouponByType(prize); + + String endDay = DateUtil.plusDay(coupon.getExpiryDay(), new Date()); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date endTime = format.parse(endDay); + + int stateActivated = 1; + if (coupon.getType() == CouponTypeEnum.welfareFreeCoupon) { + stateActivated = 0; + } + + UserSystemCoupon userCoupon = new UserSystemCoupon(); + userCoupon.setUid(uid); + userCoupon.setSource(UserSystemCoupon.SOURCE_CHOUJIANG); + userCoupon.setSystemCoupon(coupon); + userCoupon.setState(UserSystemCoupon.STATE_CAN_USE); + userCoupon.setStateActivated(stateActivated); + userCoupon.setStartTime(new Date()); + userCoupon.setEndTime(endTime); + userCoupon.setCreateTime(new Date()); + userCoupon.setUpdateTime(new Date()); + userSystemCouponService.insertSelective(userCoupon); } - - UserSystemCoupon userCoupon = new UserSystemCoupon(); - userCoupon.setUid(uid); - userCoupon.setSource(UserSystemCoupon.SOURCE_CHOUJIANG); - userCoupon.setSystemCoupon(coupon); - userCoupon.setState(UserSystemCoupon.STATE_CAN_USE); - userCoupon.setStateActivated(stateActivated); - userCoupon.setStartTime(new Date()); - userCoupon.setEndTime(endTime); - userCoupon.setCreateTime(new Date()); - userCoupon.setUpdateTime(new Date()); - userSystemCouponService.insertSelective(userCoupon); } // 鍓╀綑娆℃暟 @@ -501,13 +525,13 @@ * @param couponId 鍒竔d * @return */ - public String getLotteryPrize(int maxCount, int hasPrize, int record, Long couponId) { + public String getLotteryPrize(int maxCount, int countPrize, int record, Long couponId) { String prize = null; String freeCoupon = CouponTypeEnum.welfareFreeCoupon.name(); // 绂忓埄鍏嶈垂鍒� String rebateCoupon = CouponTypeEnum.rebatePercentCoupon.name(); // 濂栧姳鍒� - if (hasPrize == 1 && record == maxCount - 1) { + if (countPrize == 1 && record == maxCount - 1) { // 鏈�鍚庝竴娆★細 鍙敹鍒颁竴涓鍝� SystemCoupon systemCoupon = systemCouponService.selectByPrimaryKey(couponId); if (systemCoupon != null) { @@ -521,7 +545,7 @@ prize = rebateCoupon; // 濂栧姳鍒� } - } else if (hasPrize == 0 && record == maxCount - 2) { + } else if (countPrize == 0 && record == maxCount - 2) { // 鍓�3娆℃病鏈夊鍔辨椂銆佸悗闈袱娆″繀涓� long result = (1 + Math.round(Math.random() * (9))); if (result <= 5) { @@ -532,7 +556,7 @@ } else { // 澶т簬3娆℃満浼� - if (hasPrize < 2) { // 涓嶈冻涓や釜濂栧搧 + if (countPrize < 2) { // 涓嶈冻涓や釜濂栧搧 long result = (1 + Math.round(Math.random() * (9))); if (result <= 3) { prize = freeCoupon; // 绂忓埄鍏嶈垂鍒� @@ -545,6 +569,12 @@ return prize; } + + + public static void main(String[] args) { + long result = (1 + Math.round(Math.random() * (9))); + System.out.println(result); + } /** -- Gitblit v1.8.0