Commit 441a22d2 by ping.wu

Merge branches 'feature/20210901_积分商城兑换券校验券有效期_wuping' and 'qa' of…

Merge branches 'feature/20210901_积分商城兑换券校验券有效期_wuping' and 'qa' of http://gitlab.freemud.com/order-group-application/order-group into qa
parents c9113971 1f3a7a22
package cn.freemud.enums;
public enum CouponActiveStateEnum {
/**
* 只有1和2能发,一般没有2
*/
STATE_0(0, "未启用"),
STATE_1(1, "启用"),
STATE_2(2, "开始"),
STATE_3(3, "结束"),
STATE_4(4, "暂停"),
STATE_5(5, "作废"),
STATE_6(6, "禁用")
;
private Integer code;
private String desc;
CouponActiveStateEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static CouponActiveStateEnum getByCode(Integer code) {
for (CouponActiveStateEnum type : values()) {
if (type.getCode().equals(code)) {
return type;
}
}
return null;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
......@@ -14,6 +14,7 @@ import cn.freemud.entities.dto.user.StatislScoreResponse;
import cn.freemud.entities.dto.user.StatisticalScoreRequestVo;
import cn.freemud.entities.dto.user.UseScoreRequest;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.CouponActiveStateEnum;
import cn.freemud.enums.ResponseResult;
import cn.freemud.enums.integralproduct.IntegralProductStatusEnum;
import cn.freemud.service.CouponService;
......@@ -121,16 +122,24 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
Active active = null;
if (isCoupon) {
String activityCode = integralProductType.getCouponCode();
//券商品查询券活动信息校验券有效 
BatchQueryActivityInfoRequestDto queryActivityInfoRequestDto = new BatchQueryActivityInfoRequestDto();
queryActivityInfoRequestDto.setActiveCode(Arrays.asList(activityCode));
// queryActivityInfoRequestDto.setActiveCode(Arrays.asList("V1628760321931083"));
queryActivityInfoRequestDto.setPartnerId(Integer.valueOf(partnerId));
BatchQueryActivityInfoResponseDto batchQueryActivityInfoResponseDto = couponService.batchQueryActivityInfo(queryActivityInfoRequestDto);
if (!Objects.equals("0", batchQueryActivityInfoResponseDto.getStatusCode())) {
return ResponseUtil.error(batchQueryActivityInfoResponseDto.getStatusCode(), "优惠券异常");
}
active = batchQueryActivityInfoResponseDto.getActivities().get(0);
//券商品查询券活动信息校验券有效
//只有1和2能发,一般没有2
List<Integer> canSendCoupon = Arrays.asList(CouponActiveStateEnum.STATE_1.getCode(),CouponActiveStateEnum.STATE_2.getCode());
if(!canSendCoupon.contains(active.getState())){
return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "优惠券异常");
}
if(getCouponValidEnd(active).after(new Date())){
return ResponseUtil.error(ResponseCodeConstant.RESPONSE_ERROR_STR, "优惠券已过期,无法兑换");
}
}
if (exchangeType != 2) {
......@@ -538,5 +547,37 @@ public class PointsMallOrderServiceImpl implements PointsMallOrderService {
}
/**
* 获取券的有效结束时间
*/
private Date getCouponValidEnd(Active activeInfo){
Date returnDate = null;
if (activeInfo.getEffective() != null && activeInfo.getEffective() > 0) { // 根据固定时长来计算 天来计算
int delayTimes = activeInfo.getFromDayEffective() != null ? activeInfo.getFromDayEffective() : 0;
int validityPeriod = activeInfo.getEffective() != null ? activeInfo.getEffective() : 1;
if (activeInfo.getEffectiveStart() != null && activeInfo.getEffectiveEnd() != null) {
// 有效期为0 默认传1天,做兼容处理
Date effectiveStart = activeInfo.getEffectiveStart();
Date effectiveEnd = activeInfo.getEffectiveEnd();
Date date = new Date();
Date startDate = cn.freemud.base.util.DateUtil.addDays(date, delayTimes);
Date endDate = cn.freemud.base.util.DateUtil.addDays(date, (delayTimes + validityPeriod));
if (startDate.before(effectiveStart)) {
startDate = effectiveStart;
}
if (endDate.after(effectiveEnd)) {
endDate = effectiveEnd;
}
returnDate = endDate;
} else {
// 有效期为0 默认传1天,做兼容处理
returnDate = DateUtil.addDays(new Date(), (delayTimes + validityPeriod - 1));
}
} else {
returnDate = activeInfo.getEffectiveEnd();
}
return returnDate;
}
}
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