Commit d2b01e65 by chongfu.liang

下单前检查券

parent e2276a8c
...@@ -26,6 +26,7 @@ public class ShoppingCartConstant { ...@@ -26,6 +26,7 @@ public class ShoppingCartConstant {
public final static String ONE_TRADE_CAN_ONLY_USE_ONE_GOODS_COUPON = "一笔交易仅允许同时使用一张商品券"; public final static String ONE_TRADE_CAN_ONLY_USE_ONE_GOODS_COUPON = "一笔交易仅允许同时使用一张商品券";
public final static String ORDER_WAY_CHANGE = "切换点餐方式,商品库存和价格等可能会发生变化。"; public final static String ORDER_WAY_CHANGE = "切换点餐方式,商品库存和价格等可能会发生变化。";
public final static String COUPON_INVALID = "券已锁定,请先支付或取消待支付订单";
} }
package cn.freemud.entities.dto.coupon;
import lombok.Data;
import java.util.List;
@Data
public class InvalidCouponsRequestDto {
private Integer partnerId;
private List<String> couponCodes;
}
package cn.freemud.entities.dto.coupon;
import lombok.Data;
import java.util.List;
@Data
public class InvalidCouponsResponseDto {
private String msg;
private Integer statusCode;
private Integer ver;
private invalidCoupons data;
@Data
public static class invalidCoupons {
private List<String> invalidCoupons;
}
}
...@@ -4,8 +4,11 @@ import cn.freemud.adapter.OrderAdapter; ...@@ -4,8 +4,11 @@ import cn.freemud.adapter.OrderAdapter;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal; import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.entities.dto.ConfirmOrderDto; import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto; import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.dto.coupon.InvalidCouponsRequestDto;
import cn.freemud.entities.dto.coupon.InvalidCouponsResponseDto;
import cn.freemud.entities.dto.order.CreateOrderOperateDto; import cn.freemud.entities.dto.order.CreateOrderOperateDto;
import cn.freemud.entities.dto.order.CreatePrepayRequestDto; import cn.freemud.entities.dto.order.CreatePrepayRequestDto;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto; import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
...@@ -15,6 +18,7 @@ import cn.freemud.enums.*; ...@@ -15,6 +18,7 @@ import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.AppOrderService; import cn.freemud.service.AppOrderService;
import cn.freemud.service.thirdparty.CouponOnlineClient;
import cn.freemud.utils.BeanUtil; import cn.freemud.utils.BeanUtil;
import cn.freemud.utils.RedisUtil; import cn.freemud.utils.RedisUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
...@@ -91,6 +95,9 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -91,6 +95,9 @@ public class AppOrderServiceImpl implements AppOrderService {
@Autowired @Autowired
private SellCouponOrderServiceImpl sellCouponOrderService; private SellCouponOrderServiceImpl sellCouponOrderService;
@Autowired
private CouponOnlineClient couponOnlineClient;
/** /**
* 不支持会员卡 * 不支持会员卡
*/ */
...@@ -107,6 +114,20 @@ public class AppOrderServiceImpl implements AppOrderService { ...@@ -107,6 +114,20 @@ public class AppOrderServiceImpl implements AppOrderService {
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo); Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
//1.5.4版本,商品库存校验与扣库存 //1.5.4版本,商品库存校验与扣库存
//List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto); //List<String> stockProductIds = checkOrder.getStockProductIdList(createOrderVo, shoppingCartGoodsDto);
// 下单前检查优惠券是否可用
if (StringUtils.isNotBlank(createOrderVo.getCouponCode())){
InvalidCouponsRequestDto requestDto = new InvalidCouponsRequestDto();
List<String> couponList = new ArrayList<>();
couponList.add(createOrderVo.getCouponCode());
requestDto.setCouponCodes(couponList);
requestDto.setPartnerId(Integer.valueOf(createOrderVo.getPartnerId()));
InvalidCouponsResponseDto invalidCouponsResponseDto = couponOnlineClient.invalidCoupons(requestDto);
if (invalidCouponsResponseDto.getStatusCode() != 100 || invalidCouponsResponseDto.getData() == null || (invalidCouponsResponseDto.getData() != null && CollectionUtils.isEmpty(invalidCouponsResponseDto.getData().getInvalidCoupons()))){
return ResponseUtil.error(ShoppingCartConstant.COUPON_INVALID);
}
}
OrderExtInfoDto extInfo = orderservice.getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto); OrderExtInfoDto extInfo = orderservice.getExtInfo(userLoginInfoDto, storeResponseDto, pushOrderTime, createOrderVo, shoppingCartGoodsDto);
//创建订单 //创建订单
BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto); BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto);
......
...@@ -3,6 +3,8 @@ package cn.freemud.service.thirdparty; ...@@ -3,6 +3,8 @@ package cn.freemud.service.thirdparty;
//import cn.freemud.constant.IgnoreFeignLogAnnotation; //import cn.freemud.constant.IgnoreFeignLogAnnotation;
import cn.freemud.entities.dto.GetCouponDetailResponseDto; import cn.freemud.entities.dto.GetCouponDetailResponseDto;
import cn.freemud.entities.dto.coupon.InvalidCouponsRequestDto;
import cn.freemud.entities.dto.coupon.InvalidCouponsResponseDto;
import cn.freemud.interceptor.FormSupportConfig; import cn.freemud.interceptor.FormSupportConfig;
import org.springframework.cloud.netflix.feign.FeignClient; import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
...@@ -22,4 +24,13 @@ public interface CouponOnlineClient { ...@@ -22,4 +24,13 @@ public interface CouponOnlineClient {
) )
GetCouponDetailResponseDto getCouponDetails(@RequestBody Map<String, ?> map); GetCouponDetailResponseDto getCouponDetails(@RequestBody Map<String, ?> map);
/**
* 查询券详情
*/
@PostMapping(value = "/coupon/state/invalid/coupons", produces = MediaType.APPLICATION_JSON_UTF8_VALUE,
consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE}
)
InvalidCouponsResponseDto invalidCoupons(@RequestBody InvalidCouponsRequestDto invalidCouponsRequestDto);
} }
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