Commit d2b01e65 by chongfu.liang

下单前检查券

parent e2276a8c
......@@ -26,6 +26,7 @@ public class ShoppingCartConstant {
public final static String ONE_TRADE_CAN_ONLY_USE_ONE_GOODS_COUPON = "一笔交易仅允许同时使用一张商品券";
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;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ShoppingCartConstant;
import cn.freemud.entities.dto.ConfirmOrderDto;
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.CreatePrepayRequestDto;
import cn.freemud.entities.dto.shoppingCart.ActivityDiscountsDto;
......@@ -15,6 +18,7 @@ import cn.freemud.enums.*;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.AppOrderService;
import cn.freemud.service.thirdparty.CouponOnlineClient;
import cn.freemud.utils.BeanUtil;
import cn.freemud.utils.RedisUtil;
import cn.freemud.utils.ResponseUtil;
......@@ -91,6 +95,9 @@ public class AppOrderServiceImpl implements AppOrderService {
@Autowired
private SellCouponOrderServiceImpl sellCouponOrderService;
@Autowired
private CouponOnlineClient couponOnlineClient;
/**
* 不支持会员卡
*/
......@@ -107,6 +114,20 @@ public class AppOrderServiceImpl implements AppOrderService {
Integer pushOrderTime = checkOrder.checkOrderByOrderType(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto, trackingNo);
//1.5.4版本,商品库存校验与扣库存
//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);
//创建订单
BaseResponse createOrderOperateDtoResponse = orderservice.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto);
......
......@@ -3,6 +3,8 @@ package cn.freemud.service.thirdparty;
//import cn.freemud.constant.IgnoreFeignLogAnnotation;
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 org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.MediaType;
......@@ -22,4 +24,13 @@ public interface CouponOnlineClient {
)
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