记得上下班打卡 | git大法好,push需谨慎

Commit fe95331f authored by 胡佳晨's avatar 胡佳晨

会员时间内,只能下一单,只能使用一次券

parent 3d8da619
...@@ -101,4 +101,8 @@ public class KylinRedisConst { ...@@ -101,4 +101,8 @@ public class KylinRedisConst {
* eg:{kylin:c_rs:${couponId}, List<巡演ID>} * eg:{kylin:c_rs:${couponId}, List<巡演ID>}
*/ */
public static final String COUPON_ROADSHOWS = "kylin:c_rs:"; public static final String COUPON_ROADSHOWS = "kylin:c_rs:";
public static final String COUPON_COUNT = "kylin:coupon:count:";//$key + $uid:$performance_id
public static final String MEMBER_COUNT = "kylin:member:count:";//$key + $uid:$performance_id
} }
...@@ -98,6 +98,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -98,6 +98,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
public ResponseDto<PayInnerResultVo> checkCanOrder(PayOrderParam payOrderParam) { public ResponseDto<PayInnerResultVo> checkCanOrder(PayOrderParam payOrderParam) {
boolean isDownGeneral = false; boolean isDownGeneral = false;
boolean isPay = true; boolean isPay = true;
boolean useAdvance = false;
String performanceId = "";
List<AdamEntersVo> entersVoList = ObjectUtil.cloneArrayListObject(); List<AdamEntersVo> entersVoList = ObjectUtil.cloneArrayListObject();
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
HashMap<String, Object> advanceMap = null; HashMap<String, Object> advanceMap = null;
...@@ -128,7 +130,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -128,7 +130,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
break; break;
} }
} }
performanceId = performanceData.getPerformancesId();
if (ticketTimesData == null || ticketData == null) { if (ticketTimesData == null || ticketData == null) {
return ResponseDto.failure(ErrorMapping.get("20004"));//参数错误 return ResponseDto.failure(ErrorMapping.get("20004"));//参数错误
} }
...@@ -204,8 +206,13 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -204,8 +206,13 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
} }
int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属 int memberType; //会员状态 不需要判断会员 1判断会员逻辑 2会员专属
if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1){//优先时间 if (DateUtil.compareStrDay(DateUtil.getNowTime(), memberTimeStart) == 1 && DateUtil.compareStrDay(DateUtil.getNowTime(), timeStart) == -1) {//优先时间
if(payOrderParam.getNumber()>2){ if (payOrderParam.getNumber() > ticketData.getCounts()) {
return ResponseDto.failure("非法下单");
}
int advanceCount = dataUtils.incrUseMemberCount(uid, performanceData.getPerformancesId());
if (advanceCount > 1) {//todo
dataUtils.decrUseMemberCount(uid, performanceData.getPerformancesId());
return ResponseDto.failure("非法下单"); return ResponseDto.failure("非法下单");
} }
} }
...@@ -266,6 +273,13 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -266,6 +273,13 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
orderUtils.backAdvanceCoupon(payOrderParam.getAdvanceCode(), uid); orderUtils.backAdvanceCoupon(payOrderParam.getAdvanceCode(), uid);
return ResponseDto.failure("优先券该演出不可用"); return ResponseDto.failure("优先券该演出不可用");
} }
int couponCount = dataUtils.incrUseCouponCount(uid, performanceData.getPerformancesId());
useAdvance = true;
if (couponCount > 1) {//todo
useAdvance = false;
dataUtils.decrUseCouponCount(uid, performanceData.getPerformancesId());
return ResponseDto.failure("非法下单");
}
} }
} }
} }
...@@ -376,6 +390,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -376,6 +390,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
orderUtils.changeSurplus(isPay, payOrderParam.getTicketId(), payOrderParam.getNumber()); orderUtils.changeSurplus(isPay, payOrderParam.getTicketId(), payOrderParam.getNumber());
log.error("回滚库存"); log.error("回滚库存");
orderUtils.backAdvanceCoupon(payOrderParam.getAdvanceCode(), uid); orderUtils.backAdvanceCoupon(payOrderParam.getAdvanceCode(), uid);
if (useAdvance) {
dataUtils.decrUseCouponCount(uid, performanceId);
}
for (AdamEntersVo enters : entersVoList) { for (AdamEntersVo enters : entersVoList) {
dataUtils.changeBuyInfo(uid, enters.getIdCard(), payOrderParam.getPerformanceId(), payOrderParam.getTicketId(), -1); dataUtils.changeBuyInfo(uid, enters.getIdCard(), payOrderParam.getPerformanceId(), payOrderParam.getTicketId(), -1);
} }
......
...@@ -293,16 +293,16 @@ public class DataUtils { ...@@ -293,16 +293,16 @@ public class DataUtils {
String redisKey = KylinRedisConst.ADAM_IS_MEMBER String redisKey = KylinRedisConst.ADAM_IS_MEMBER
.concat(uid); .concat(uid);
Object obj = redisUtil.get(redisKey); Object obj = redisUtil.get(redisKey);
if(obj==null){ if (obj == null) {
return null; return null;
}else{ } else {
return (Integer) obj; return (Integer) obj;
} }
} }
// 获取快递价格 // 获取快递价格
public BigDecimal getExpressPrice(String adCode, String productCode){ public BigDecimal getExpressPrice(String adCode, String productCode) {
BigDecimal price ; BigDecimal price;
Object obj = redisUtil.get(KylinRedisConst.RETURN_ADDRESS_CODE + adCode + KylinRedisConst.EXPRESS_TYPE + productCode); Object obj = redisUtil.get(KylinRedisConst.RETURN_ADDRESS_CODE + adCode + KylinRedisConst.EXPRESS_TYPE + productCode);
if (obj != null) { if (obj != null) {
KylinFreightChargeDao k = (KylinFreightChargeDao) obj; KylinFreightChargeDao k = (KylinFreightChargeDao) obj;
...@@ -321,9 +321,9 @@ public class DataUtils { ...@@ -321,9 +321,9 @@ public class DataUtils {
public String getTicketPayTxt(String ticketId) { public String getTicketPayTxt(String ticketId) {
String rdsKey = KylinRedisConst.TICKET_PAY_TXT.concat(ticketId); String rdsKey = KylinRedisConst.TICKET_PAY_TXT.concat(ticketId);
Object obj = redisUtil.get(rdsKey); Object obj = redisUtil.get(rdsKey);
if(obj==null){ if (obj == null) {
return ""; return "";
}else{ } else {
return (String) obj; return (String) obj;
} }
} }
...@@ -338,4 +338,44 @@ public class DataUtils { ...@@ -338,4 +338,44 @@ public class DataUtils {
return (List<String>) obj; return (List<String>) obj;
} }
} }
public int incrUseCouponCount(String uid, String performanceId) {
String rdk = KylinRedisConst.COUPON_COUNT.concat(uid).concat(":").concat(performanceId);
return (int) redisUtil.incr(rdk, 1);
}
public int decrUseCouponCount(String uid, String performanceId) {
String rdk = KylinRedisConst.COUPON_COUNT.concat(uid).concat(":").concat(performanceId);
return (int) redisUtil.decr(rdk, 1);
}
public int incrUseMemberCount(String uid, String performanceId) {
String rdk = KylinRedisConst.MEMBER_COUNT.concat(uid).concat(":").concat(performanceId);
return (int) redisUtil.incr(rdk, 1);
}
public int decrUseMemberCount(String uid, String performanceId) {
String rdk = KylinRedisConst.MEMBER_COUNT.concat(uid).concat(":").concat(performanceId);
return (int) redisUtil.decr(rdk, 1);
}
// public int getUseCouponCount(String uid,String performanceId){
// String rdk = KylinRedisConst.COUPON_COUNT.concat(uid).concat(":").concat(performanceId);
// Object obj = redisUtil.get(rdk);
// if(obj==null){
// return 0;
// }else{
// return (int) obj;
// }
// }
public int getUseCouponCount(String uid, String performanceId) {
String rdk = KylinRedisConst.COUPON_COUNT.concat(uid).concat(":").concat(performanceId);
Object obj = redisUtil.get(rdk);
if (obj == null) {
return 0;
} else {
return (int) obj;
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment