From faf76ce65bb8f767fbbf040982f2a7fa1fea89b2 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期一, 25 三月 2019 17:03:26 +0800
Subject: [PATCH] 商品店铺搜索
---
fanli/src/main/java/com/yeshi/fanli/controller/client/UserCouponController.java | 120 ++++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 73 insertions(+), 47 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 d21e90f..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
@@ -433,11 +433,17 @@
public void getLotteryResult(String callback, AcceptData acceptData, Long uid, PrintWriter out) {
try {
- // 濂栧搧
+ // 鍓╀綑鎶藉娆℃暟
int count = 0;
- String prize = "";
- String hasPrize = "";
- Long couponId = null;
+ // 鏈鎶戒腑鐨勫鍝�
+ String prize = null;
+
+ // 宸蹭娇鐢ㄦ娊濂栨鏁�
+ int countUsed = 0;
+ // 宸叉嫢鏈夊鍝佹暟閲�
+ int countPrize = 0;
+ // 宸叉湁鍒哥被鍨�
+ String couponType = null;
if (uid == null || uid == 0) { // 鏈櫥褰�
int platformType = 0;
@@ -456,46 +462,52 @@
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("璁惧涓嶅瓨鍦�"));
return;
}
- int countPrize = 0;
List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platformType,
device);
- if (list != null && list.size() == Constant.MAX_COUNT_LOTTERY_NEWBIES) { // 鏃犳娊濂栨満浼�
+ if (list != null && list.size() >= Constant.MAX_COUNT_LOTTERY_NEWBIES) { // 鏃犳娊濂栨満浼�
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻"));
return;
- } else if (list != null && list.size() < Constant.MAX_COUNT_LOTTERY_NEWBIES) { // 鎷ユ湁鎶藉鏈轰細
-
+ }
+
+ 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();
if (systemCouponId != null) {
countPrize++;
couponId = systemCouponId;
}
-
}
-
- if (countPrize == 1 && couponId != null) {
- SystemCoupon coupon = systemCouponService.selectByPrimaryKey(couponId);
- hasPrize = coupon.getType().name();
- }
-
count = Constant.MAX_COUNT_LOTTERY_NEWBIES - 1 - list.size();
-
- } else {
- count = Constant.MAX_COUNT_LOTTERY_NEWBIES - 1;
}
-
- // 濂栧搧
- prize = getLotteryPrize(Constant.MAX_COUNT_LOTTERY_NEWBIES, 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();
+ if (coupon != null) {
+ newCouponId = coupon.getId();
+ }
}
}
@@ -508,41 +520,62 @@
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) { // 娆℃暟宸茬敤鍏�
JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult(2, "鎶藉娆℃暟涓嶈冻"));
return;
- } else {
- count = lotteryNewbies - 1; // 鍓╀綑娆℃暟
- }
+ }
+
+ // 鍓╀綑娆℃暟
+ count = lotteryNewbies - 1;
+ // 宸蹭娇鐢ㄦ鏁�
+ countUsed = Constant.MAX_COUNT_LOTTERY_NEWBIES - lotteryNewbies;
+
+ // 宸叉娊涓殑濂栧搧
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();
+
+ 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);
}
- // 濂栧搧
- prize = getLotteryPrize(Constant.MAX_COUNT_LOTTERY_NEWBIES, list.size(), Constant.MAX_COUNT_LOTTERY_NEWBIES - lotteryNewbies, couponId);
// 鎶戒腑
if (prize != null && prize.trim().length() > 0) {
-
- if (hasPrize.equals(prize)) {
+ if (prize.equals(couponType)) {
+ // 宸叉湁姝ゅ埜
prize = null;
} else {
// 鎻掑叆鍒镐俊鎭�
userSystemCouponService.insertUserCoupon(uid, prize, UserSystemCoupon.SOURCE_CHOUJIANG);
}
}
-
+
// 鍓╀綑娆℃暟
userInfoExtra.setLotteryNewbies(count);
userInfoExtraService.saveUserInfoExtra(userInfoExtra);
@@ -573,7 +606,7 @@
* @param couponId 鍒竔d
* @return
*/
- public String getLotteryPrize(int maxCount, int countPrize, int record, Long couponId) {
+ public String getLotteryPrize(int maxCount, int countPrize, int record, String couponType) {
String prize = null;
String freeCoupon = CouponTypeEnum.welfareFreeCoupon.name(); // 绂忓埄鍏嶈垂鍒�
@@ -581,16 +614,10 @@
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) {
@@ -601,7 +628,7 @@
} else {
prize = rebateCoupon; // 濂栧姳鍒�
}
-
+
} else { // 澶т簬3娆℃満浼�
if (countPrize < 2) { // 涓嶈冻涓や釜濂栧搧
@@ -613,7 +640,6 @@
}
}
}
-
return prize;
}
--
Gitblit v1.8.0