Commit cd07bfab by chongfu.liang

结算页反选商品券

parent 1f71f864
......@@ -553,6 +553,7 @@ public class CouponAdapter {
couponPromotionVO.setCouponCode(shoppingCartInfoRequestVo.getCouponCode());
couponPromotionVO.setOrderType(shoppingCartInfoRequestVo.getOrderType());
couponPromotionVO.setFlg(shoppingCartInfoRequestVo.getFlag());
couponPromotionVO.setUnChooseCouponCode(shoppingCartInfoRequestVo.getUnChooseCouponCode());
return couponPromotionVO;
}
}
......@@ -54,6 +54,12 @@ public class ActivityCouponBean {
* 0-商品券 1-代金券 3-折扣券
*/
private Integer couponType;
/**
* 券图片地址
*/
private String couponPic;
/**
* 日期描述
*/
......
......@@ -22,4 +22,5 @@ public class CouponPromotionVO {
private String couponCode;
private Integer flg;
private Integer orderType;
private String unChooseCouponCode;
}
......@@ -80,7 +80,7 @@ public interface CouponService {
* @param cartGoods
* @return
*/
ActivityClassifyCouponBean availableCoupon(List<CartGoods> cartGoods, String partnerId, String userId, String storeId, String couponCode, boolean hasGoodsCoupon, Integer orderType, int isNew,String appId,String MenuType);
ActivityClassifyCouponBean availableCoupon(List<CartGoods> cartGoods, String partnerId, String userId, String storeId, String couponCode, boolean hasGoodsCoupon, Integer orderType, int isNew,String appId,String MenuType, String unChooseCouponCode);
/**
* 获取卡券服务商户密钥
......@@ -102,10 +102,10 @@ public interface CouponService {
CheckSpqInfoResponseDto checkSpqInfo(CheckSpqInfoRequestDto requestDto, String goodsId);
CheckSpqInfoResponseDto getSpqProductInfo(CheckSpqInfoRequestDto requestDto);
GetProductsVo getSpqProductInfo(CheckSpqInfoRequestDto requestDto);
CheckSpqInfoResponseDto getSpqProductInfo(CheckSpqInfoRequestDto requestDto, String goodsId);
GetProductsVo getSpqProductInfo(CheckSpqInfoRequestDto requestDto, String goodsId);
/**
* 领券
......
......@@ -59,7 +59,7 @@ public class CouponPromotionService implements IPromotionService {
hasGoodssCoupon,
couponPromotionVO.getOrderType(),
0,
shoppingCartInfoRequestVo.getAppId(),shoppingCartInfoRequestVo.getMenuType() );
shoppingCartInfoRequestVo.getAppId(),shoppingCartInfoRequestVo.getMenuType(), couponPromotionVO.getUnChooseCouponCode() );
if (Objects.equals(activityClassifyCouponBean, null)) {
// 构建一个空得订单券信息
activityClassifyCouponBean = createEmptyActivityCouponBean();
......
......@@ -423,7 +423,7 @@ public class CouponServiceImpl implements CouponService {
, boolean hasGoodsCoupon
, Integer orderType
, int isNew
, String appId,String menuType) {
, String appId,String menuType, String unChooseCouponCode) {
GetMemberCouponListRequestDto getMemberCouponListRequestDto = new GetMemberCouponListRequestDto(partnerId, userId);
getMemberCouponListRequestDto.setStatusFlags(Arrays.asList(CouponStatus.STATUS_0.getCode()));
getMemberCouponListRequestDto.setPageNum(1);
......@@ -454,17 +454,14 @@ public class CouponServiceImpl implements CouponService {
Collectors.toMap(GetMemberCouponListResponseDto.Result.MemberCoupon::getCouponCode, a -> a, (k1, k2) -> k1));
List<String> couponCodes = Lists.newArrayList();
memberCoupons.forEach(memberCoupon -> {
if (Objects.equals(memberCoupon.getCouponType(), CouponTypeEnum.TYPE_1.getCode())
|| Objects.equals(memberCoupon.getCouponType(), CouponTypeEnum.TYPE_3.getCode())) {
// 只筛选小于结束时间得券
if (System.currentTimeMillis() < DateUtil.convert2Date(memberCoupon.getEndTime(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS).getTime()) {
couponCodes.add(memberCoupon.getCouponCode());
}
}
});
List<CouponStateVo> couponStateList = buildAvailiableCoupons(cartGoods, partnerId, storeId, couponCodes, isNew,appId,menuType);
if (CollectionUtils.isNotEmpty(couponStateList)) {
return returnSuccessAvailiableCoupons(couponCode, hasGoodsCoupon, availableCouponResponseVo, usableCoupons, disableCoupons, memberCouponMap, couponStateList);
return returnSuccessAvailiableCoupons(couponCode, hasGoodsCoupon, availableCouponResponseVo, usableCoupons, disableCoupons, memberCouponMap, couponStateList, unChooseCouponCode);
}
return null;
}
......@@ -518,7 +515,9 @@ public class CouponServiceImpl implements CouponService {
return couponStateList;
}
private ActivityClassifyCouponBean returnSuccessAvailiableCoupons(String couponCode, boolean hasGoodsCoupon, ActivityClassifyCouponBean availableCouponResponseVo, List<ActivityCouponBean> usableCoupons, List<ActivityCouponBean> disableCoupons, Map<String, GetMemberCouponListResponseDto.Result.MemberCoupon> memberCouponMap, List<CouponStateVo> couponStateList) {
private ActivityClassifyCouponBean returnSuccessAvailiableCoupons(String couponCode, boolean hasGoodsCoupon, ActivityClassifyCouponBean availableCouponResponseVo, List<ActivityCouponBean> usableCoupons,
List<ActivityCouponBean> disableCoupons, Map<String, GetMemberCouponListResponseDto.Result.MemberCoupon> memberCouponMap,
List<CouponStateVo> couponStateList, String unChooseCouponCode) {
int disableCouponNum = 0;
int usableCouponNum = 0;
for (CouponStateVo couponStateVo : couponStateList) {
......@@ -579,8 +578,14 @@ public class CouponServiceImpl implements CouponService {
activityCouponBean.setSelected(YesOrNoEnum.NO.getCode());
}
if (hasGoodsCoupon) {
if (StringUtils.isNotBlank(unChooseCouponCode) && unChooseCouponCode.equals(activityCouponBean.getCouponCode())){
activityCouponBean.setSelected(YesOrNoEnum.YES.getCode());
usableCoupons.add(activityCouponBean);
usableCouponNum = usableCouponNum + 1;
} else {
disableCoupons.add(activityCouponBean);
disableCouponNum = disableCouponNum + 1;
}
} else {
if (Objects.equals(couponStateVo.getState(), CouponStateEnum.STATE_1.getCode())) {
disableCoupons.add(activityCouponBean);
......@@ -919,7 +924,7 @@ public class CouponServiceImpl implements CouponService {
}
@Override
public CheckSpqInfoResponseDto getSpqProductInfo(CheckSpqInfoRequestDto requestDto) {
public GetProductsVo getSpqProductInfo(CheckSpqInfoRequestDto requestDto) {
String partnerId = requestDto.getPartnerId();
String couponCode = requestDto.getCouponCode();
String storeId = requestDto.getStoreId();
......@@ -952,21 +957,8 @@ public class CouponServiceImpl implements CouponService {
|| valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) {
return null;
}
CheckSpqInfoResponseDto dto = new CheckSpqInfoResponseDto();
dto.setCouponCode(couponCode);
dto.setActiveCode(couponDetailResponseDto.getDetails().get(0).getActive().getActiveCode());
dto.setCouponName(couponDetailResponseDto.getDetails().get(0).getTitle());
dto.setActivityName(couponDetailResponseDto.getDetails().get(0).getActive().getActiveName());
dto.setPrice(productsVo.getFinalPrice());
dto.setSpuId(productsVo.getSpuId());
dto.setSpuName(productsVo.getSkuName());
dto.setStockLimit(ObjectUtils.equals(1, productsVo.getStockLimit()));
dto.setSkuId(productsVo.getSkuId());
dto.setSkuName(StringUtils.isNotBlank(productsVo.getSkuName()) ? productsVo.getSkuName() : productsVo.getSpuName());
dto.setPicture(productsVo.getSpuPicture());
dto.setCouponType(0);
log.info("dto***" + dto);
return dto;
return productsVo;
}
......@@ -979,7 +971,7 @@ public class CouponServiceImpl implements CouponService {
* @return
*/
@Override
public CheckSpqInfoResponseDto getSpqProductInfo(CheckSpqInfoRequestDto requestDto, String goodsId) {
public GetProductsVo getSpqProductInfo(CheckSpqInfoRequestDto requestDto, String goodsId) {
log.info("checkSpqInfo****" + gson.toJson(requestDto));
String partnerId = requestDto.getPartnerId();
String couponCode = requestDto.getCouponCode();
......@@ -1017,21 +1009,8 @@ public class CouponServiceImpl implements CouponService {
|| valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) {
return null;
}
CheckSpqInfoResponseDto dto = new CheckSpqInfoResponseDto();
dto.setCouponCode(couponCode);
dto.setPrice(productsVo.getFinalPrice());
dto.setSpuId(productsVo.getSpuId());
dto.setSpuName(productsVo.getSkuName());
dto.setSkuId(productsVo.getSkuId());
dto.setSkuName(StringUtils.isNotBlank(productsVo.getSkuName()) ? productsVo.getSkuName() : productsVo.getSpuName());
dto.setPicture(productsVo.getSpuPicture());
dto.setDefaultSpecName(productsVo.getDefaultSpecName());
dto.setDefaultSpecId(productsVo.getDefaultSpecId());
dto.setStockLimit(ObjectUtils.equals(1, productsVo.getStockLimit()));
dto.setExtras(productsVo.getExtra());
dto.setCouponType(couponType);
log.info("dto***" + dto);
return dto;
return productsVo;
}
@Autowired
......
......@@ -599,26 +599,25 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// check是否反选取消商品券
if (StringUtils.isNotBlank(unChooseCouponCode)){
// 遍历该商品券选择的商品,并将商品券替换为普通商品
for (CartGoods cartGoods : cartGoodsList){
for (int i = cartGoodsList.size(); i >= 0; i--){
CartGoods cartGoods = cartGoodsList.get(i);
if (GoodsTypeEnum.COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType()) || GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType())){
CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, cartGoods.getSpuId(), menuType);
CheckSpqInfoResponseDto productInfo = null;
GetProductsVo productInfo = null;
if (GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
productInfo = couponService.getSpqProductInfo(checkSpqInfoRequestDto, cartGoods.getSkuId());
} else {
productInfo = couponService.getSpqProductInfo(checkSpqInfoRequestDto);
}
if (productInfo == null){
cartGoodsList.remove(i);
} else {
convert2CartGoods(cartGoods, productInfo);
}
}
}
}
CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getOrderType(), "", shoppingCartInfoRequestVo.getMenuType() ,shoppingCartBaseService);
if (checkCartRequest.getShoppingCartGoodsResponseVo() != null) {
shoppingCartGoodsResponseVo.setChanged(checkCartRequest.getShoppingCartGoodsResponseVo().getChanged());
......@@ -716,6 +715,29 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return ResponseUtil.success(shoppingCartGoodsResponseVo);
}
private void convert2CartGoods(CartGoods cartGoods, GetProductsVo productInfo) {
cartGoods.setCartGoodsUid(UUID.randomUUID().toString());
Integer goodsType = GoodsTypeEnum.SPU_GOODS.getGoodsType();
if (productInfo.getType() == null || productInfo.getType() == 1) {
goodsType = GoodsTypeEnum.SPU_GOODS.getGoodsType();
} else {
goodsType = GoodsTypeEnum.SKU_GOODS.getGoodsType();
}
cartGoods.setAmount(productInfo.getFinalPrice());
cartGoods.setCategoryName(productInfo.getCategoryName());
cartGoods.setCustomerCode(productInfo.getCustomerCode());
cartGoods.setFinalPrice(productInfo.getFinalPrice());
cartGoods.setGoodsId(cartGoods.getSkuId());
cartGoods.setMaterialAmount(0l);
cartGoods.setName(goodsType == GoodsTypeEnum.SPU_GOODS.getGoodsType() ? productInfo.getSpuName() : productInfo.getSkuName());
cartGoods.setOriginalPrice(productInfo.getFinalPrice());
cartGoods.setOriginalMaterialAmount(0l);
cartGoods.setSpuId(productInfo.getSpuId());
cartGoods.setSkuId(cartGoods.getSkuId());
cartGoods.setSpuName(productInfo.getSpuName());
cartGoods.setSkuName(productInfo.getSkuName());
}
/**
* svc 卡支付使用
*
......@@ -1004,7 +1026,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
List<CartGoods> cartGoodsList = orderItemList.stream().map(each -> convert2ShopCartGoods(each)).collect(toList());
ActivityClassifyCouponBean activityClassifyCouponBean = couponService.availableCoupon(cartGoodsList, partnerId
, memberId, request.getStoreId(), "", false, request.getOrderType(), 0,"","");
, memberId, request.getStoreId(), "", false, request.getOrderType(), 0,"","", "");
if (activityClassifyCouponBean != null && CollectionUtils.isNotEmpty(activityClassifyCouponBean.getUsableCoupons())){
List<GetMemberInfoResponseVo.Coupon> coupons = activityClassifyCouponBean.getUsableCoupons().stream().map(each -> convert2MemberCoupon(each)).collect(toList());
responseData.setCoupons(coupons);
......
......@@ -60,6 +60,7 @@ public class CouponSharingService {
, 1
, shoppingCartInfoRequestVo.getAppId()
, shoppingCartInfoRequestVo.getMenuType()
, couponPromotionVO.getUnChooseCouponCode()
);
if (Objects.equals(activityClassifyCouponBean, null)) {
// 构建一个空得订单券信息
......
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