Commit cd07bfab by chongfu.liang

结算页反选商品券

parent 1f71f864
...@@ -553,6 +553,7 @@ public class CouponAdapter { ...@@ -553,6 +553,7 @@ public class CouponAdapter {
couponPromotionVO.setCouponCode(shoppingCartInfoRequestVo.getCouponCode()); couponPromotionVO.setCouponCode(shoppingCartInfoRequestVo.getCouponCode());
couponPromotionVO.setOrderType(shoppingCartInfoRequestVo.getOrderType()); couponPromotionVO.setOrderType(shoppingCartInfoRequestVo.getOrderType());
couponPromotionVO.setFlg(shoppingCartInfoRequestVo.getFlag()); couponPromotionVO.setFlg(shoppingCartInfoRequestVo.getFlag());
couponPromotionVO.setUnChooseCouponCode(shoppingCartInfoRequestVo.getUnChooseCouponCode());
return couponPromotionVO; return couponPromotionVO;
} }
} }
...@@ -54,6 +54,12 @@ public class ActivityCouponBean { ...@@ -54,6 +54,12 @@ public class ActivityCouponBean {
* 0-商品券 1-代金券 3-折扣券 * 0-商品券 1-代金券 3-折扣券
*/ */
private Integer couponType; private Integer couponType;
/**
* 券图片地址
*/
private String couponPic;
/** /**
* 日期描述 * 日期描述
*/ */
......
...@@ -22,4 +22,5 @@ public class CouponPromotionVO { ...@@ -22,4 +22,5 @@ public class CouponPromotionVO {
private String couponCode; private String couponCode;
private Integer flg; private Integer flg;
private Integer orderType; private Integer orderType;
private String unChooseCouponCode;
} }
...@@ -80,7 +80,7 @@ public interface CouponService { ...@@ -80,7 +80,7 @@ public interface CouponService {
* @param cartGoods * @param cartGoods
* @return * @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 { ...@@ -102,10 +102,10 @@ public interface CouponService {
CheckSpqInfoResponseDto checkSpqInfo(CheckSpqInfoRequestDto requestDto, String goodsId); 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 { ...@@ -59,7 +59,7 @@ public class CouponPromotionService implements IPromotionService {
hasGoodssCoupon, hasGoodssCoupon,
couponPromotionVO.getOrderType(), couponPromotionVO.getOrderType(),
0, 0,
shoppingCartInfoRequestVo.getAppId(),shoppingCartInfoRequestVo.getMenuType() ); shoppingCartInfoRequestVo.getAppId(),shoppingCartInfoRequestVo.getMenuType(), couponPromotionVO.getUnChooseCouponCode() );
if (Objects.equals(activityClassifyCouponBean, null)) { if (Objects.equals(activityClassifyCouponBean, null)) {
// 构建一个空得订单券信息 // 构建一个空得订单券信息
activityClassifyCouponBean = createEmptyActivityCouponBean(); activityClassifyCouponBean = createEmptyActivityCouponBean();
......
...@@ -423,7 +423,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -423,7 +423,7 @@ public class CouponServiceImpl implements CouponService {
, boolean hasGoodsCoupon , boolean hasGoodsCoupon
, Integer orderType , Integer orderType
, int isNew , int isNew
, String appId,String menuType) { , String appId,String menuType, String unChooseCouponCode) {
GetMemberCouponListRequestDto getMemberCouponListRequestDto = new GetMemberCouponListRequestDto(partnerId, userId); GetMemberCouponListRequestDto getMemberCouponListRequestDto = new GetMemberCouponListRequestDto(partnerId, userId);
getMemberCouponListRequestDto.setStatusFlags(Arrays.asList(CouponStatus.STATUS_0.getCode())); getMemberCouponListRequestDto.setStatusFlags(Arrays.asList(CouponStatus.STATUS_0.getCode()));
getMemberCouponListRequestDto.setPageNum(1); getMemberCouponListRequestDto.setPageNum(1);
...@@ -454,17 +454,14 @@ public class CouponServiceImpl implements CouponService { ...@@ -454,17 +454,14 @@ public class CouponServiceImpl implements CouponService {
Collectors.toMap(GetMemberCouponListResponseDto.Result.MemberCoupon::getCouponCode, a -> a, (k1, k2) -> k1)); Collectors.toMap(GetMemberCouponListResponseDto.Result.MemberCoupon::getCouponCode, a -> a, (k1, k2) -> k1));
List<String> couponCodes = Lists.newArrayList(); List<String> couponCodes = Lists.newArrayList();
memberCoupons.forEach(memberCoupon -> { 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()) { if (System.currentTimeMillis() < DateUtil.convert2Date(memberCoupon.getEndTime(), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS).getTime()) {
couponCodes.add(memberCoupon.getCouponCode()); couponCodes.add(memberCoupon.getCouponCode());
} }
}
}); });
List<CouponStateVo> couponStateList = buildAvailiableCoupons(cartGoods, partnerId, storeId, couponCodes, isNew,appId,menuType); List<CouponStateVo> couponStateList = buildAvailiableCoupons(cartGoods, partnerId, storeId, couponCodes, isNew,appId,menuType);
if (CollectionUtils.isNotEmpty(couponStateList)) { 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; return null;
} }
...@@ -518,7 +515,9 @@ public class CouponServiceImpl implements CouponService { ...@@ -518,7 +515,9 @@ public class CouponServiceImpl implements CouponService {
return couponStateList; 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 disableCouponNum = 0;
int usableCouponNum = 0; int usableCouponNum = 0;
for (CouponStateVo couponStateVo : couponStateList) { for (CouponStateVo couponStateVo : couponStateList) {
...@@ -579,8 +578,14 @@ public class CouponServiceImpl implements CouponService { ...@@ -579,8 +578,14 @@ public class CouponServiceImpl implements CouponService {
activityCouponBean.setSelected(YesOrNoEnum.NO.getCode()); activityCouponBean.setSelected(YesOrNoEnum.NO.getCode());
} }
if (hasGoodsCoupon) { 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); disableCoupons.add(activityCouponBean);
disableCouponNum = disableCouponNum + 1; disableCouponNum = disableCouponNum + 1;
}
} else { } else {
if (Objects.equals(couponStateVo.getState(), CouponStateEnum.STATE_1.getCode())) { if (Objects.equals(couponStateVo.getState(), CouponStateEnum.STATE_1.getCode())) {
disableCoupons.add(activityCouponBean); disableCoupons.add(activityCouponBean);
...@@ -919,7 +924,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -919,7 +924,7 @@ public class CouponServiceImpl implements CouponService {
} }
@Override @Override
public CheckSpqInfoResponseDto getSpqProductInfo(CheckSpqInfoRequestDto requestDto) { public GetProductsVo getSpqProductInfo(CheckSpqInfoRequestDto requestDto) {
String partnerId = requestDto.getPartnerId(); String partnerId = requestDto.getPartnerId();
String couponCode = requestDto.getCouponCode(); String couponCode = requestDto.getCouponCode();
String storeId = requestDto.getStoreId(); String storeId = requestDto.getStoreId();
...@@ -952,21 +957,8 @@ public class CouponServiceImpl implements CouponService { ...@@ -952,21 +957,8 @@ public class CouponServiceImpl implements CouponService {
|| valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) { || valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) {
return null; return null;
} }
CheckSpqInfoResponseDto dto = new CheckSpqInfoResponseDto();
dto.setCouponCode(couponCode); return productsVo;
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;
} }
...@@ -979,7 +971,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -979,7 +971,7 @@ public class CouponServiceImpl implements CouponService {
* @return * @return
*/ */
@Override @Override
public CheckSpqInfoResponseDto getSpqProductInfo(CheckSpqInfoRequestDto requestDto, String goodsId) { public GetProductsVo getSpqProductInfo(CheckSpqInfoRequestDto requestDto, String goodsId) {
log.info("checkSpqInfo****" + gson.toJson(requestDto)); log.info("checkSpqInfo****" + gson.toJson(requestDto));
String partnerId = requestDto.getPartnerId(); String partnerId = requestDto.getPartnerId();
String couponCode = requestDto.getCouponCode(); String couponCode = requestDto.getCouponCode();
...@@ -1017,21 +1009,8 @@ public class CouponServiceImpl implements CouponService { ...@@ -1017,21 +1009,8 @@ public class CouponServiceImpl implements CouponService {
|| valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) { || valiadProductResponse.getData() == null || CollectionUtils.isEmpty(valiadProductResponse.getData().getSuccessList())) {
return null; return null;
} }
CheckSpqInfoResponseDto dto = new CheckSpqInfoResponseDto();
dto.setCouponCode(couponCode); return productsVo;
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;
} }
@Autowired @Autowired
......
...@@ -599,26 +599,25 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -599,26 +599,25 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// check是否反选取消商品券 // check是否反选取消商品券
if (StringUtils.isNotBlank(unChooseCouponCode)){ 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())){ 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); CheckSpqInfoRequestDto checkSpqInfoRequestDto = new CheckSpqInfoRequestDto(partnerId, storeId, cartGoods.getSpuId(), menuType);
CheckSpqInfoResponseDto productInfo = null; GetProductsVo productInfo = null;
if (GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) { if (GoodsTypeEnum.HG_COUPON_GOODS.getGoodsType().equals(cartGoods.getGoodsType())) {
productInfo = couponService.getSpqProductInfo(checkSpqInfoRequestDto, cartGoods.getSkuId()); productInfo = couponService.getSpqProductInfo(checkSpqInfoRequestDto, cartGoods.getSkuId());
} else { } else {
productInfo = couponService.getSpqProductInfo(checkSpqInfoRequestDto); productInfo = couponService.getSpqProductInfo(checkSpqInfoRequestDto);
} }
if (productInfo == null){ if (productInfo == null){
cartGoodsList.remove(i);
} else {
convert2CartGoods(cartGoods, productInfo);
} }
} }
} }
} }
CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getOrderType(), "", shoppingCartInfoRequestVo.getMenuType() ,shoppingCartBaseService); CheckCartRequest checkCartRequest = assortmentSdkService.checkShoppingCartSdk(cartGoodsList, partnerId, storeId, shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo.getOrderType(), "", shoppingCartInfoRequestVo.getMenuType() ,shoppingCartBaseService);
if (checkCartRequest.getShoppingCartGoodsResponseVo() != null) { if (checkCartRequest.getShoppingCartGoodsResponseVo() != null) {
shoppingCartGoodsResponseVo.setChanged(checkCartRequest.getShoppingCartGoodsResponseVo().getChanged()); shoppingCartGoodsResponseVo.setChanged(checkCartRequest.getShoppingCartGoodsResponseVo().getChanged());
...@@ -716,6 +715,29 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -716,6 +715,29 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return ResponseUtil.success(shoppingCartGoodsResponseVo); 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 卡支付使用 * svc 卡支付使用
* *
...@@ -1004,7 +1026,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1004,7 +1026,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
List<CartGoods> cartGoodsList = orderItemList.stream().map(each -> convert2ShopCartGoods(each)).collect(toList()); List<CartGoods> cartGoodsList = orderItemList.stream().map(each -> convert2ShopCartGoods(each)).collect(toList());
ActivityClassifyCouponBean activityClassifyCouponBean = couponService.availableCoupon(cartGoodsList, partnerId 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())){ if (activityClassifyCouponBean != null && CollectionUtils.isNotEmpty(activityClassifyCouponBean.getUsableCoupons())){
List<GetMemberInfoResponseVo.Coupon> coupons = activityClassifyCouponBean.getUsableCoupons().stream().map(each -> convert2MemberCoupon(each)).collect(toList()); List<GetMemberInfoResponseVo.Coupon> coupons = activityClassifyCouponBean.getUsableCoupons().stream().map(each -> convert2MemberCoupon(each)).collect(toList());
responseData.setCoupons(coupons); responseData.setCoupons(coupons);
......
...@@ -60,6 +60,7 @@ public class CouponSharingService { ...@@ -60,6 +60,7 @@ public class CouponSharingService {
, 1 , 1
, shoppingCartInfoRequestVo.getAppId() , shoppingCartInfoRequestVo.getAppId()
, shoppingCartInfoRequestVo.getMenuType() , shoppingCartInfoRequestVo.getMenuType()
, couponPromotionVO.getUnChooseCouponCode()
); );
if (Objects.equals(activityClassifyCouponBean, null)) { 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