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

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

券接口 增加列表3 给董春提供

parent 44862d9c
package com.liquidnet.service.goblin.param;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@Api
@Data
public class CouponCanUseAllParam implements Serializable, Cloneable {
@ApiModelProperty(name = "spuIds", value = "spuId集合",required = true)
@NotNull @NotBlank
private List<String> spuIds;
@ApiModelProperty(dataType = "String", name = "uid", value = "用户id",example = "10",required = true)
private String uid;
private static final CouponCanUseAllParam obj = new CouponCanUseAllParam();
public static CouponCanUseAllParam getNew() {
try {
return (CouponCanUseAllParam) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new CouponCanUseAllParam();
}
}
......@@ -15,8 +15,7 @@ public class CouponCanUseParam implements Serializable, Cloneable {
@ApiModelProperty(name = "param", value = "对象",required = true)
@NotNull @NotBlank
private List<CouponCanUse2Param> param;
@ApiModelProperty(dataType = "String", name = "uid", value = "用户id",example = "10",required = true)
@NotNull @NotBlank
@ApiModelProperty(dataType = "String", name = "uid", value = "用户id",example = "10",required = false)
private String uid;
private static final CouponCanUseParam obj = new CouponCanUseParam();
......
......@@ -4,6 +4,7 @@ import com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo;
import com.liquidnet.service.goblin.param.BackCouponParam;
import com.liquidnet.service.goblin.param.CouponCanUseAllParam;
import com.liquidnet.service.goblin.param.CouponCanUseParam;
import java.math.BigDecimal;
......@@ -29,6 +30,9 @@ public interface GoblinCouponService {
//可用券列表 [价格] [spuId逗号隔开] [uid]
List<GoblinUserCouponVo> useList(BigDecimal totalPrice, String spuId, String uid);
//可用券列表[可用券列表[返回商品下所有券]]
List<GoblinUserCouponVo> useList3(CouponCanUseAllParam param);
List<GoblinUserCouponVo> useList2(CouponCanUseParam param);
//使用券 [券id] [消费内容] [价格] [spuId逗号隔开]
......
......@@ -7,6 +7,7 @@ import com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo;
import com.liquidnet.service.goblin.param.BackCouponParam;
import com.liquidnet.service.goblin.param.CouponCanUseAllParam;
import com.liquidnet.service.goblin.param.CouponCanUseParam;
import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
......@@ -186,7 +187,7 @@ public class GoblinCouponController {
}
@PostMapping("useList")
@ApiOperation("可用券列表")
@ApiOperation("可用券列表[不判断部分商品]")
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "Number", name = "totalPrice", value = "应付价格"),
......@@ -203,7 +204,7 @@ public class GoblinCouponController {
}
@PostMapping("useList2")
@ApiOperation("可用券列表2")
@ApiOperation("可用券列表[判断部分商品]")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<List<GoblinUserCouponVo>> useList2(@RequestBody CouponCanUseParam param) {
if (param.getUid() == null) {
......@@ -212,6 +213,16 @@ public class GoblinCouponController {
return ResponseDto.success(goblinCouponService.useList2(param));
}
@PostMapping("useList3")
@ApiOperation("可用券列表[返回商品下所有券]")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<List<GoblinUserCouponVo>> useList3(@RequestBody CouponCanUseAllParam param) {
if (param.getUid() == null) {
param.setUid(CurrentUtil.getCurrentUid());
}
return ResponseDto.success(goblinCouponService.useList3(param));
}
@PostMapping("useCoupon")
@ApiOperation("用券")
@ApiResponse(code = 200, message = "接口返回对象参数")
......
......@@ -8,6 +8,7 @@ import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.vo.*;
import com.liquidnet.service.goblin.param.BackCouponParam;
import com.liquidnet.service.goblin.param.CouponCanUse2Param;
import com.liquidnet.service.goblin.param.CouponCanUseAllParam;
import com.liquidnet.service.goblin.param.CouponCanUseParam;
import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.util.GoblinMongoUtils;
......@@ -231,6 +232,34 @@ public class GoblinCouponImpl implements GoblinCouponService {
return returnList;
}
@Override
public List<GoblinUserCouponVo> useList3(CouponCanUseAllParam param) {
List<GoblinUserCouponVo> voList = goblinRedisUtils.getUserCouponVos(param.getUid());
List<GoblinUserCouponVo> returnList = ObjectUtil.getGoblinUserCouponVo();
LocalDateTime now = LocalDateTime.now();
for (GoblinUserCouponVo vo : voList) {
//判断券状态 和 触发金额
if (vo.getDuedAt().isAfter(now) && vo.getState().equals(1)) {
if (vo.getUseScope().equals("0")) {
returnList.add(vo);
} else {
List<String> spuIds = goblinRedisUtils.getStoreCouponSpuIds(vo.getStoreCouponId());
//判断是否在可用商品内
for (String item : spuIds) {
List<String> spuList = param.getSpuIds();
if (spuList.contains(item)) {
returnList.add(vo);
break;
}
}
}
}
}
returnList.sort(Comparator.comparing(GoblinUserCouponVo::getState));
return returnList;
}
@Override
public List<GoblinUserCouponVo> useList2(CouponCanUseParam param) {
List<GoblinUserCouponVo> voList = goblinRedisUtils.getUserCouponVos(param.getUid());
......@@ -259,7 +288,7 @@ public class GoblinCouponImpl implements GoblinCouponService {
}
}
}
if(vo.getTriggers().compareTo(contentPrice) <= 0){
if (vo.getTriggers().compareTo(contentPrice) <= 0) {
returnList.add(vo);
}
}
......
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