Commit 48a7c6d1 by ping.wu

Merge branches 'feature/20210715_购物车可用优惠券改造_wuping' and 'master' of…

Merge branches 'feature/20210715_购物车可用优惠券改造_wuping' and 'master' of http://gitlab.freemud.com/order-group-application/order-group

# Conflicts:
#	shopping-cart-application-service/src/main/java/cn/freemud/service/impl/ShoppingCartNewServiceImpl.java
parents b0a51ffd 3bddb48a
...@@ -3,6 +3,7 @@ package cn.freemud.manager; ...@@ -3,6 +3,7 @@ package cn.freemud.manager;
import cn.freemud.constant.RedisKeyConstant; import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.entities.dto.product.ProductInfo; import cn.freemud.entities.dto.product.ProductInfo;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.redis.RedisCache;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
...@@ -21,11 +22,15 @@ import java.util.stream.Collectors; ...@@ -21,11 +22,15 @@ import java.util.stream.Collectors;
*/ */
@Component @Component
public class BuyProductOnceManager { public class BuyProductOnceManager {
// @Autowired
// protected RedisTemplate redisTemplate;
@Autowired @Autowired
protected RedisTemplate redisTemplate; private RedisCache redisCache;
//用户限购:每人每单限购一次 / 禁用 //用户限购:每人每单限购一次 / 禁用
public ResponseResult checkBuyProductOnce(List<ProductInfo> products, String partnerId, String userId) { public ResponseResult checkBuyProductOnce(List<ProductInfo> products, String partnerId, String userId) {
RedisTemplate redisTemplate = redisCache.getRedisTemplate();
List<ProductInfo> productsCheck = products.stream().filter(product -> product.getIsLimitNumProduct() == 1).collect(Collectors.toList()); List<ProductInfo> productsCheck = products.stream().filter(product -> product.getIsLimitNumProduct() == 1).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(productsCheck)) { if (CollectionUtils.isNotEmpty(productsCheck)) {
//每人每单限购一次 //每人每单限购一次
...@@ -55,6 +60,7 @@ public class BuyProductOnceManager { ...@@ -55,6 +60,7 @@ public class BuyProductOnceManager {
//清掉key //清掉key
public boolean removeCheckBuyProductOnceKey(String partnerId, String userId,String pid) { public boolean removeCheckBuyProductOnceKey(String partnerId, String userId,String pid) {
RedisTemplate redisTemplate = redisCache.getRedisTemplate();
String key = this.getCheckBuyProductOnceKey(partnerId, userId,pid); String key = this.getCheckBuyProductOnceKey(partnerId, userId,pid);
redisTemplate.delete(key); redisTemplate.delete(key);
return true; return true;
......
...@@ -3,6 +3,7 @@ package cn.freemud.manager; ...@@ -3,6 +3,7 @@ package cn.freemud.manager;
import cn.freemud.constant.RedisKeyConstant; import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.enums.OrderTackCodeRuleEnum; import cn.freemud.enums.OrderTackCodeRuleEnum;
import cn.freemud.enums.OrderType; import cn.freemud.enums.OrderType;
import cn.freemud.redis.RedisCache;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentTackCodeRule; import com.freemud.api.assortment.datamanager.entity.db.AssortmentTackCodeRule;
import com.freemud.api.assortment.datamanager.manager.AssortmentTackCodeRuleManager; import com.freemud.api.assortment.datamanager.manager.AssortmentTackCodeRuleManager;
import com.freemud.sdk.api.assortment.order.request.order.ConfirmOrderRequest; import com.freemud.sdk.api.assortment.order.request.order.ConfirmOrderRequest;
...@@ -29,8 +30,12 @@ import java.util.function.Function; ...@@ -29,8 +30,12 @@ import java.util.function.Function;
public class OrderTackCodeManager { public class OrderTackCodeManager {
@Autowired @Autowired
private AssortmentTackCodeRuleManager assortmentTackCodeRuleManager; private AssortmentTackCodeRuleManager assortmentTackCodeRuleManager;
// @Autowired
// protected RedisTemplate redisTemplate;
@Autowired @Autowired
protected RedisTemplate redisTemplate; private RedisCache redisCache;
public final static String numberChar = "0123456789"; public final static String numberChar = "0123456789";
...@@ -46,6 +51,7 @@ public class OrderTackCodeManager { ...@@ -46,6 +51,7 @@ public class OrderTackCodeManager {
* @return * @return
*/ */
public String generateTackCode(Integer orderType, String partnerId, String storeId, ConfirmOrderRequest var1, Function<Integer, String> fun) { public String generateTackCode(Integer orderType, String partnerId, String storeId, ConfirmOrderRequest var1, Function<Integer, String> fun) {
RedisTemplate redisTemplate = redisCache.getRedisTemplate();
String key = this.getOrderTackCodeKey(partnerId); String key = this.getOrderTackCodeKey(partnerId);
String randomKey = getRandomOrderTackCodeKey(partnerId, storeId); String randomKey = getRandomOrderTackCodeKey(partnerId, storeId);
String rule = (String) redisTemplate.opsForHash().entries(key).get("rule"); String rule = (String) redisTemplate.opsForHash().entries(key).get("rule");
...@@ -168,6 +174,7 @@ public class OrderTackCodeManager { ...@@ -168,6 +174,7 @@ public class OrderTackCodeManager {
} }
private void initTackCodeSettingHash(AssortmentTackCodeRule assortmentTackCodeRule,String randomKey, Map<Object, Object> tackCodeSettingMap){ private void initTackCodeSettingHash(AssortmentTackCodeRule assortmentTackCodeRule,String randomKey, Map<Object, Object> tackCodeSettingMap){
RedisTemplate redisTemplate = redisCache.getRedisTemplate();
tackCodeSettingMap.put("eatInHead", assortmentTackCodeRule.getEatInHead()); tackCodeSettingMap.put("eatInHead", assortmentTackCodeRule.getEatInHead());
tackCodeSettingMap.put("eatInCode", Integer.valueOf(assortmentTackCodeRule.getEatInCode())); tackCodeSettingMap.put("eatInCode", Integer.valueOf(assortmentTackCodeRule.getEatInCode()));
tackCodeSettingMap.put("eatInLength", assortmentTackCodeRule.getEatInCode().length()); tackCodeSettingMap.put("eatInLength", assortmentTackCodeRule.getEatInCode().length());
......
...@@ -23,10 +23,7 @@ import cn.freemud.entities.dto.openplatform.AddWeixinCardCodeResponseDto; ...@@ -23,10 +23,7 @@ import cn.freemud.entities.dto.openplatform.AddWeixinCardCodeResponseDto;
import cn.freemud.entities.dto.openplatform.AddWeixinCardJudgeRequestDto; import cn.freemud.entities.dto.openplatform.AddWeixinCardJudgeRequestDto;
import cn.freemud.entities.dto.openplatform.AddWeixinCardJudgeResponseDto; import cn.freemud.entities.dto.openplatform.AddWeixinCardJudgeResponseDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityChannelEnum; import cn.freemud.enums.*;
import cn.freemud.enums.ActivityShareType;
import cn.freemud.enums.CouponStatus;
import cn.freemud.enums.CouponTypeEnum;
import cn.freemud.utils.BeanUtil; import cn.freemud.utils.BeanUtil;
//import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo; //import com.freemud.card.sdk.vo.coupon.request.MemberAddCouponVo;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
...@@ -555,7 +552,7 @@ public class CouponAdapter { ...@@ -555,7 +552,7 @@ public class CouponAdapter {
couponPromotionVO.setStoreId(shoppingCartInfoRequestVo.getShopId()); couponPromotionVO.setStoreId(shoppingCartInfoRequestVo.getShopId());
// 删除配送券-> 商品券使用逻辑组装 fisherman购物车配送券组装 // 删除配送券-> 商品券使用逻辑组装 fisherman购物车配送券组装
String couponCode1 = shoppingCartInfoRequestVo.getCouponCode(); String couponCode1 = shoppingCartInfoRequestVo.getCouponCode();
List<ShoppingCartInfoRequestVo.couponCode> couponCodes = shoppingCartInfoRequestVo.getCouponCodes(); List<ChooseCouponVo> couponCodes = shoppingCartInfoRequestVo.getCouponCodes();
if(CollectionUtils.isNotEmpty(couponCodes)){ if(CollectionUtils.isNotEmpty(couponCodes)){
Set<String > setCoupons = new HashSet<>(); Set<String > setCoupons = new HashSet<>();
couponCodes.forEach(c -> setCoupons.add(c.getCouponCode())); couponCodes.forEach(c -> setCoupons.add(c.getCouponCode()));
...@@ -567,7 +564,12 @@ public class CouponAdapter { ...@@ -567,7 +564,12 @@ public class CouponAdapter {
} }
couponPromotionVO.setOrderType(shoppingCartInfoRequestVo.getOrderType()); couponPromotionVO.setOrderType(shoppingCartInfoRequestVo.getOrderType());
couponPromotionVO.setFlg(shoppingCartInfoRequestVo.getFlag()); // couponPromotionVO.setFlg(shoppingCartInfoRequestVo.getFlag());
couponPromotionVO.setAvailableCouponQueryFlag(shoppingCartInfoRequestVo.getFlag() == null ? "":shoppingCartInfoRequestVo.getFlag().toString());
if(Objects.equals(shoppingCartInfoRequestVo.getFlag(), SubmitPageEnum.YES.getCode())){
couponPromotionVO.setAvailableCouponQueryFlag(shoppingCartInfoRequestVo.getVersion());
}
couponPromotionVO.setUnChooseCouponCode(shoppingCartInfoRequestVo.getUnChooseCouponCode()); couponPromotionVO.setUnChooseCouponCode(shoppingCartInfoRequestVo.getUnChooseCouponCode());
// 重新校验一遍 couponcodes // 重新校验一遍 couponcodes
if (CollectionUtils.isNotEmpty(couponPromotionVO.getCouponCodes())) { if (CollectionUtils.isNotEmpty(couponPromotionVO.getCouponCodes())) {
...@@ -598,7 +600,11 @@ public class CouponAdapter { ...@@ -598,7 +600,11 @@ public class CouponAdapter {
couponPromotionVO.setStoreId(baseRequestDTO.getShopId()); couponPromotionVO.setStoreId(baseRequestDTO.getShopId());
couponPromotionVO.setCouponCode(baseRequestDTO.getCouponCode()); couponPromotionVO.setCouponCode(baseRequestDTO.getCouponCode());
couponPromotionVO.setOrderType(baseRequestDTO.getOrderType()); couponPromotionVO.setOrderType(baseRequestDTO.getOrderType());
couponPromotionVO.setFlg(baseRequestDTO.getFlag()); // couponPromotionVO.setFlg(baseRequestDTO.getFlag());
couponPromotionVO.setAvailableCouponQueryFlag(baseRequestDTO.getFlag() == null ? "":baseRequestDTO.getFlag().toString());
if(Objects.equals(baseRequestDTO.getFlag(), SubmitPageEnum.YES.getCode())){
couponPromotionVO.setAvailableCouponQueryFlag(baseRequestDTO.getVersion());
}
couponPromotionVO.setUnChooseCouponCode(baseRequestDTO.getUnChooseCouponCode()); couponPromotionVO.setUnChooseCouponCode(baseRequestDTO.getUnChooseCouponCode());
return couponPromotionVO; return couponPromotionVO;
} }
...@@ -609,21 +615,21 @@ public class CouponAdapter { ...@@ -609,21 +615,21 @@ public class CouponAdapter {
* @param baseRequestDTO * @param baseRequestDTO
* @return * @return
*/ */
public CouponPromotionVO getCouponPromotionVO(ShoppingCartGoodsApportionBO baseRequestDTO) { // public CouponPromotionVO getCouponPromotionVO(ShoppingCartGoodsApportionBO baseRequestDTO) {
CouponPromotionVO couponPromotionVO = new CouponPromotionVO(); // CouponPromotionVO couponPromotionVO = new CouponPromotionVO();
List<ShoppingCartGoodsApportionBO.couponCode> couponCodes = baseRequestDTO.getCouponCodes(); // List<ShoppingCartGoodsApportionBO.couponCode> couponCodes = baseRequestDTO.getCouponCodes();
if (CollectionUtils.isNotEmpty(couponCodes)) { // if (CollectionUtils.isNotEmpty(couponCodes)) {
Set<String> setCoupons = new HashSet<>(); // Set<String> setCoupons = new HashSet<>();
couponCodes.forEach(c -> setCoupons.add(c.getCouponCode())); // couponCodes.forEach(c -> setCoupons.add(c.getCouponCode()));
couponPromotionVO.setCouponCodes(setCoupons); // couponPromotionVO.setCouponCodes(setCoupons);
} // }
couponPromotionVO.setPartnerId(baseRequestDTO.getPartnerId()); // couponPromotionVO.setPartnerId(baseRequestDTO.getPartnerId());
couponPromotionVO.setUserId(baseRequestDTO.getUserId()); // couponPromotionVO.setUserId(baseRequestDTO.getUserId());
couponPromotionVO.setStoreId(baseRequestDTO.getShopId()); // couponPromotionVO.setStoreId(baseRequestDTO.getShopId());
couponPromotionVO.setCouponCode(baseRequestDTO.getCouponCode()); // couponPromotionVO.setCouponCode(baseRequestDTO.getCouponCode());
couponPromotionVO.setOrderType(baseRequestDTO.getOrderType()); // couponPromotionVO.setOrderType(baseRequestDTO.getOrderType());
couponPromotionVO.setFlg(baseRequestDTO.getFlag()); // couponPromotionVO.setFlg(baseRequestDTO.getFlag());
return couponPromotionVO; // return couponPromotionVO;
} // }
} }
...@@ -311,7 +311,7 @@ public class ShoppingCartController { ...@@ -311,7 +311,7 @@ public class ShoppingCartController {
* @param couponCodes * @param couponCodes
* @return * @return
*/ */
private BaseResponse verifyCouponCodes (List<ShoppingCartInfoRequestVo.couponCode> couponCodes){ private BaseResponse verifyCouponCodes (List<ChooseCouponVo> couponCodes){
if (CollectionUtils.isNotEmpty(couponCodes) && couponCodes.size() > 1) { if (CollectionUtils.isNotEmpty(couponCodes) && couponCodes.size() > 1) {
long count = couponCodes.stream().filter(c -> c.getCouponType().compareTo(CouponTypeEnum.TYPE_1.getCode()) == 0 long count = couponCodes.stream().filter(c -> c.getCouponType().compareTo(CouponTypeEnum.TYPE_1.getCode()) == 0
|| c.getCouponType().compareTo(CouponTypeEnum.TYPE_3.getCode()) == 0).count(); || c.getCouponType().compareTo(CouponTypeEnum.TYPE_3.getCode()) == 0).count();
......
...@@ -10,7 +10,7 @@ import cn.freemud.entities.dto.CheckSpqInfoResponseDto; ...@@ -10,7 +10,7 @@ import cn.freemud.entities.dto.CheckSpqInfoResponseDto;
import cn.freemud.entities.vo.ActivityClassifyCouponBean; import cn.freemud.entities.vo.ActivityClassifyCouponBean;
import cn.freemud.entities.vo.CartGoods; import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.CouponPromotionVO; import cn.freemud.entities.vo.CouponPromotionVO;
import cn.freemud.enums.CouponFlag; import cn.freemud.enums.AvailableCouponQueryFlagEnum;
import cn.freemud.enums.GoodsTypeEnum; import cn.freemud.enums.GoodsTypeEnum;
import cn.freemud.service.CouponService; import cn.freemud.service.CouponService;
import cn.freemud.service.impl.AssortmentSdkService; import cn.freemud.service.impl.AssortmentSdkService;
...@@ -51,8 +51,7 @@ public class DistributeAdapter { ...@@ -51,8 +51,7 @@ public class DistributeAdapter {
} }
if (type == 2){ if (type == 2){
// 用户选择了查询优惠券信息 if (couponPromotionVO != null && !ObjectUtils.equals(AvailableCouponQueryFlagEnum.NO.getCode(), couponPromotionVO.getAvailableCouponQueryFlag())) {
if (couponPromotionVO != null && ObjectUtils.equals(CouponFlag.YES.getCode(), couponPromotionVO.getFlg())) {
List<CartGoods> tmpCartGoods = cartGoodsList.parallelStream().filter(k -> CommonUtils.isProductCoupon(k.getCouponCode(), k.getCartGoodsUid())).collect(Collectors.toList()); List<CartGoods> tmpCartGoods = cartGoodsList.parallelStream().filter(k -> CommonUtils.isProductCoupon(k.getCouponCode(), k.getCartGoodsUid())).collect(Collectors.toList());
// 是否存在商品券 // 是否存在商品券
boolean hasGoodssCoupon = CollectionUtils.isNotEmpty(tmpCartGoods); boolean hasGoodssCoupon = CollectionUtils.isNotEmpty(tmpCartGoods);
......
...@@ -207,7 +207,7 @@ public class ShoppingCartDemoController { ...@@ -207,7 +207,7 @@ public class ShoppingCartDemoController {
premiumRequest.setOrderType(listCartGoodsBO.getOrderType()); premiumRequest.setOrderType(listCartGoodsBO.getOrderType());
premiumRequest.setSessionId(listCartGoodsBO.getSessionId()); premiumRequest.setSessionId(listCartGoodsBO.getSessionId());
premiumRequest.setShopId(listCartGoodsBO.getShopId()); premiumRequest.setShopId(listCartGoodsBO.getShopId());
premiumRequest.setVersion(listCartGoodsBO.getVersion()); // premiumRequest.setVersion(listCartGoodsBO.getVersion());
if (!CollectionUtils.isEmpty(baseRequestDTO.getCouponCodes())) { if (!CollectionUtils.isEmpty(baseRequestDTO.getCouponCodes())) {
List<PremiumExchangeRequestVo.couponCode> list = new ArrayList<>(); List<PremiumExchangeRequestVo.couponCode> list = new ArrayList<>();
baseRequestDTO.getCouponCodes().forEach(couponCode -> { baseRequestDTO.getCouponCodes().forEach(couponCode -> {
......
...@@ -15,6 +15,7 @@ import java.util.List; ...@@ -15,6 +15,7 @@ import java.util.List;
@Data @Data
public class ListCartGoodsBO extends BaseBo { public class ListCartGoodsBO extends BaseBo {
private String version;
@NotEmpty(message = "spuId不能为空") @NotEmpty(message = "spuId不能为空")
private String spuId; private String spuId;
......
...@@ -12,18 +12,15 @@ import cn.freemud.demo.entities.bo.goods.*; ...@@ -12,18 +12,15 @@ import cn.freemud.demo.entities.bo.goods.*;
import cn.freemud.demo.entities.bo.member.*; import cn.freemud.demo.entities.bo.member.*;
import cn.freemud.demo.entities.bo.product.GetRequiredProductListBO; import cn.freemud.demo.entities.bo.product.GetRequiredProductListBO;
import cn.freemud.demo.entities.bo.promotion.ActivityBO; import cn.freemud.demo.entities.bo.promotion.ActivityBO;
import cn.freemud.demo.manager.coupon.CouponManager;
import cn.freemud.demo.manager.customer.CustomerManager; import cn.freemud.demo.manager.customer.CustomerManager;
import cn.freemud.demo.manager.product.ProductManager; import cn.freemud.demo.manager.product.ProductManager;
import cn.freemud.demo.manager.promotion.PromotionManager; import cn.freemud.demo.manager.promotion.PromotionManager;
import cn.freemud.demo.service.GetShoppingCartGoodsApportionService; import cn.freemud.demo.service.GetShoppingCartGoodsApportionService;
import cn.freemud.demo.utils.CommonUtils; import cn.freemud.demo.utils.CommonUtils;
import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto; import cn.freemud.entities.dto.ActivityCalculationDiscountRequestDto;
import cn.freemud.entities.dto.ActivityCalculationDiscountResponseDto;
import cn.freemud.entities.dto.CheckSpqInfoResponseDto; import cn.freemud.entities.dto.CheckSpqInfoResponseDto;
import cn.freemud.entities.dto.activity.ActivityDiscountsDto; import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
import cn.freemud.entities.dto.activity.ActivityQueryDto; import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import cn.freemud.entities.dto.shoppingCart.SendPoint; import cn.freemud.entities.dto.shoppingCart.SendPoint;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.*; import cn.freemud.enums.*;
...@@ -735,7 +732,7 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe ...@@ -735,7 +732,7 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe
return null; return null;
} else if ((Objects.equals(baseRequestDTO.getOrderType(), CreateOrderType.TAKE_OUT.getCode()) } else if ((Objects.equals(baseRequestDTO.getOrderType(), CreateOrderType.TAKE_OUT.getCode())
|| Objects.equals(baseRequestDTO.getReachStoreType(), OrderType.COLLECT_GOODS.getCode())) || Objects.equals(baseRequestDTO.getReachStoreType(), OrderType.COLLECT_GOODS.getCode()))
&& Objects.equals(baseRequestDTO.getFlag(), CouponFlag.YES.getCode())) { && Objects.equals(baseRequestDTO.getFlag(), SubmitPageEnum.YES.getCode())) {
return shoppingGoodsAmountBO.getNewPackAmount() == null ? 0L : shoppingGoodsAmountBO.getNewPackAmount(); return shoppingGoodsAmountBO.getNewPackAmount() == null ? 0L : shoppingGoodsAmountBO.getNewPackAmount();
} }
return null; return null;
......
...@@ -27,7 +27,6 @@ import cn.freemud.interceptor.ServiceException; ...@@ -27,7 +27,6 @@ import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache; import cn.freemud.redis.RedisCache;
import cn.freemud.service.CouponService; import cn.freemud.service.CouponService;
import cn.freemud.service.impl.AssortmentSdkService; import cn.freemud.service.impl.AssortmentSdkService;
import cn.freemud.service.impl.calculate.CalculationCommonService;
import cn.freemud.utils.LogUtil; import cn.freemud.utils.LogUtil;
import cn.freemud.utils.WebUtil; import cn.freemud.utils.WebUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
...@@ -619,7 +618,7 @@ public class AbstractListCartGoodsService implements ListCartGoodsService { ...@@ -619,7 +618,7 @@ public class AbstractListCartGoodsService implements ListCartGoodsService {
return null; return null;
} else if ((Objects.equals(baseRequestDTO.getOrderType(), CreateOrderType.TAKE_OUT.getCode()) } else if ((Objects.equals(baseRequestDTO.getOrderType(), CreateOrderType.TAKE_OUT.getCode())
|| Objects.equals(baseRequestDTO.getReachStoreType(), OrderType.COLLECT_GOODS.getCode())) || Objects.equals(baseRequestDTO.getReachStoreType(), OrderType.COLLECT_GOODS.getCode()))
&& Objects.equals(baseRequestDTO.getFlag(), CouponFlag.YES.getCode())) { && Objects.equals(baseRequestDTO.getFlag(), SubmitPageEnum.YES.getCode())) {
return shoppingGoodsAmountBO.getNewPackAmount() == null ? 0L : shoppingGoodsAmountBO.getNewPackAmount(); return shoppingGoodsAmountBO.getNewPackAmount() == null ? 0L : shoppingGoodsAmountBO.getNewPackAmount();
} }
return null; return null;
......
package cn.freemud.entities.vo;
import lombok.Data;
@Data
public class ChooseCouponVo {
/**
* 优惠券
*/
private String couponCode;
/**
* 活动号
*/
private String activityCode;
/**
* 顺序
*/
private Integer index;
/**
* 优惠券类型
*/
private Integer couponType;
}
...@@ -23,7 +23,9 @@ public class CouponPromotionVO { ...@@ -23,7 +23,9 @@ public class CouponPromotionVO {
private String userId; private String userId;
private String storeId; private String storeId;
private String couponCode; private String couponCode;
private Integer flg; // private Integer flg;
//是否查询可用优惠券,根据购物车版本是否为2判断
private String availableCouponQueryFlag;
private Integer orderType; private Integer orderType;
private String unChooseCouponCode; private String unChooseCouponCode;
// 用于存放 优惠券数组 兼并老版本的 couponCode // 用于存放 优惠券数组 兼并老版本的 couponCode
......
...@@ -189,6 +189,11 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV ...@@ -189,6 +189,11 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
*/ */
private Integer verCompat = 0; private Integer verCompat = 0;
/**
* 选中的可用优惠券集合
*/
private List<ChooseCouponVo> couponCodes;
@Data @Data
public static class chooseGood { public static class chooseGood {
......
...@@ -31,6 +31,7 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo { ...@@ -31,6 +31,7 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
@NotBlank(message = "sessionId不能为空") @NotBlank(message = "sessionId不能为空")
private String sessionId; private String sessionId;
//固定值为2表示新版本小程序,不查询可用优惠券
private String version; private String version;
/** /**
* 购物车版本号(围餐,拼单) * 购物车版本号(围餐,拼单)
...@@ -69,7 +70,7 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo { ...@@ -69,7 +70,7 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
/** /**
* 优惠券code列表 * 优惠券code列表
*/ */
private List<couponCode> couponCodes; private List<ChooseCouponVo> couponCodes;
/** /**
* 是否使用月享卡2.0 * 是否使用月享卡2.0
......
package cn.freemud.enums;
public enum AvailableCouponQueryFlagEnum {
NO("2", "不查询"),
YES("1", "查询");
private String code;
private String desc;
AvailableCouponQueryFlagEnum(String code, String desc) {
this.code = code;
this.desc = desc;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
...@@ -12,21 +12,21 @@ ...@@ -12,21 +12,21 @@
*/ */
package cn.freemud.enums; package cn.freemud.enums;
public enum CouponFlag { public enum SubmitPageEnum {
NO(0, "不查询"), NO(0, "点餐页"),
YES(1, "查询用户优惠券"); YES(1, "结算页");
private Integer code; private Integer code;
private String desc; private String desc;
CouponFlag(Integer code, String desc) { SubmitPageEnum(Integer code, String desc) {
this.code = code; this.code = code;
this.desc = desc; this.desc = desc;
} }
public static CouponFlag getByCode(Integer code) { public static SubmitPageEnum getByCode(Integer code) {
for (CouponFlag payType : values()) { for (SubmitPageEnum payType : values()) {
if (payType.getCode().equals(code)) { if (payType.getCode().equals(code)) {
return payType; return payType;
} }
......
package cn.freemud.factory; package cn.freemud.factory;
import cn.freemud.adapter.ActivityAdapter;
import cn.freemud.adapter.ShoppingCartConvertAdapter; import cn.freemud.adapter.ShoppingCartConvertAdapter;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.constant.ResponseCodeConstant; import cn.freemud.constant.ResponseCodeConstant;
...@@ -9,7 +8,6 @@ import cn.freemud.entities.dto.*; ...@@ -9,7 +8,6 @@ import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityQueryDto; import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.activity.ActivityQueryResponseDto; import cn.freemud.entities.dto.activity.ActivityQueryResponseDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.dto.user.GetSessionUserInfoDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.interceptor.BizServiceException; import cn.freemud.interceptor.BizServiceException;
...@@ -21,15 +19,12 @@ import cn.freemud.service.ShoppingCartNewService; ...@@ -21,15 +19,12 @@ import cn.freemud.service.ShoppingCartNewService;
import cn.freemud.service.impl.*; import cn.freemud.service.impl.*;
import cn.freemud.service.thirdparty.CustomerApplicationClient; import cn.freemud.service.thirdparty.CustomerApplicationClient;
import cn.freemud.service.thirdparty.StockClient; import cn.freemud.service.thirdparty.StockClient;
import cn.freemud.utils.BeanUtil;
import cn.freemud.utils.PromotionFactory; import cn.freemud.utils.PromotionFactory;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerStoreDeliveryConfig; import com.freemud.api.assortment.datamanager.entity.db.AssortmentOpenPlatformPartnerStoreDeliveryConfig;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo; import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager; import com.freemud.api.assortment.datamanager.manager.AssortmentOpenPlatformPartnerStoreDeliveryConfigManager;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager; import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
import com.freemud.application.sdk.api.log.ApiLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest; import com.freemud.application.sdk.api.membercenter.request.QueryReceiveAddressRequest;
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse; import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
...@@ -43,7 +38,6 @@ import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; ...@@ -43,7 +38,6 @@ import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum; import com.freemud.sdk.api.assortment.shoppingcart.enums.BusinessTypeEnum;
import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService; import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -544,10 +538,10 @@ public abstract class AbstractShoppingCartImpl implements ShoppingCartNewService ...@@ -544,10 +538,10 @@ public abstract class AbstractShoppingCartImpl implements ShoppingCartNewService
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
shoppingCartGoodsResponseVo.setProductsCount(cartGoodsList.size()); shoppingCartGoodsResponseVo.setProductsCount(cartGoodsList.size());
if (StringUtils.isNotEmpty(toastMsg)) { if (StringUtils.isNotEmpty(toastMsg)) {
toastMsg=shoppingCartInfoRequestVo!=null && ObjectUtils.equals(1, shoppingCartInfoRequestVo.getFlag())?SHOPPING_CART_EMPTY_GOODS_LIST:SHOPPING_CART_INVALIAD_GOODS; toastMsg=shoppingCartInfoRequestVo!=null && ObjectUtils.equals(SubmitPageEnum.YES.getCode(), shoppingCartInfoRequestVo.getFlag())?SHOPPING_CART_EMPTY_GOODS_LIST:SHOPPING_CART_INVALIAD_GOODS;
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, toastMsg); setToastMsgIfNotExist(shoppingCartGoodsResponseVo, toastMsg);
//结算页,只有商品全部非法(即products为空)时,才提示changed为true toastMsg 不为空 //结算页,只有商品全部非法(即products为空)时,才提示changed为true toastMsg 不为空
if (shoppingCartInfoRequestVo!=null && ObjectUtils.equals(1, shoppingCartInfoRequestVo.getFlag())){ if (shoppingCartInfoRequestVo!=null && ObjectUtils.equals(SubmitPageEnum.YES.getCode(), shoppingCartInfoRequestVo.getFlag())){
shoppingCartGoodsResponseVo.setChanged(CollectionUtils.isEmpty(cartGoodsList)); shoppingCartGoodsResponseVo.setChanged(CollectionUtils.isEmpty(cartGoodsList));
shoppingCartGoodsResponseVo.setToastMsg(CollectionUtils.isEmpty(cartGoodsList)?toastMsg:""); shoppingCartGoodsResponseVo.setToastMsg(CollectionUtils.isEmpty(cartGoodsList)?toastMsg:"");
} }
...@@ -567,7 +561,7 @@ public abstract class AbstractShoppingCartImpl implements ShoppingCartNewService ...@@ -567,7 +561,7 @@ public abstract class AbstractShoppingCartImpl implements ShoppingCartNewService
shoppingCartGoodsResponseVo.setNewPackAmount(null); shoppingCartGoodsResponseVo.setNewPackAmount(null);
} else if ((Objects.equals(shoppingCartInfoRequestVo.getOrderType(), CreateOrderType.TAKE_OUT.getCode()) } else if ((Objects.equals(shoppingCartInfoRequestVo.getOrderType(), CreateOrderType.TAKE_OUT.getCode())
|| Objects.equals(shoppingCartInfoRequestVo.getReachStoreType(), OrderType.COLLECT_GOODS.getCode())) || Objects.equals(shoppingCartInfoRequestVo.getReachStoreType(), OrderType.COLLECT_GOODS.getCode()))
&& Objects.equals(shoppingCartInfoRequestVo.getFlag(), CouponFlag.YES.getCode())) { && Objects.equals(shoppingCartInfoRequestVo.getFlag(), SubmitPageEnum.YES.getCode())) {
Long packAmount = shoppingCartGoodsResponseVo.getNewPackAmount() == null ? 0 : shoppingCartGoodsResponseVo.getNewPackAmount(); Long packAmount = shoppingCartGoodsResponseVo.getNewPackAmount() == null ? 0 : shoppingCartGoodsResponseVo.getNewPackAmount();
Long originalTotalAmount = shoppingCartGoodsResponseVo.getOriginalTotalAmount() + packAmount; Long originalTotalAmount = shoppingCartGoodsResponseVo.getOriginalTotalAmount() + packAmount;
Long totalAmount = shoppingCartGoodsResponseVo.getTotalAmount() + packAmount; Long totalAmount = shoppingCartGoodsResponseVo.getTotalAmount() + packAmount;
......
...@@ -8,7 +8,7 @@ import cn.freemud.entities.dto.activity.ActivityQueryDto; ...@@ -8,7 +8,7 @@ import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.CouponFlag; import cn.freemud.enums.AvailableCouponQueryFlagEnum;
import cn.freemud.enums.GoodsTypeEnum; import cn.freemud.enums.GoodsTypeEnum;
import cn.freemud.service.CouponService; import cn.freemud.service.CouponService;
import cn.freemud.service.IPromotionService; import cn.freemud.service.IPromotionService;
...@@ -56,7 +56,7 @@ public class CouponPromotionService implements IPromotionService { ...@@ -56,7 +56,7 @@ public class CouponPromotionService implements IPromotionService {
ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, UserLoginInfoDto userLoginInfoDto, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, UserLoginInfoDto userLoginInfoDto,
ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) { ShoppingCartInfoRequestVo shoppingCartInfoRequestVo) {
// 用户选择了查询优惠券信息 // 用户选择了查询优惠券信息
if (couponPromotionVO != null && ObjectUtils.equals(CouponFlag.YES.getCode(), couponPromotionVO.getFlg())) { if (couponPromotionVO != null && !ObjectUtils.equals(AvailableCouponQueryFlagEnum.NO.getCode(), couponPromotionVO.getAvailableCouponQueryFlag())) {
List<CartGoods> tmpCartGoods = cartGoodsList.parallelStream().filter(k -> (k.getCartGoodsUid() List<CartGoods> tmpCartGoods = cartGoodsList.parallelStream().filter(k -> (k.getCartGoodsUid()
.startsWith(CommonsConstant.COUPON_PREFIX) || StringUtils.isNotBlank(k.getCouponCode()))).collect(Collectors.toList()); .startsWith(CommonsConstant.COUPON_PREFIX) || StringUtils.isNotBlank(k.getCouponCode()))).collect(Collectors.toList());
// 是否存在商品券 // 是否存在商品券
...@@ -100,6 +100,19 @@ public class CouponPromotionService implements IPromotionService { ...@@ -100,6 +100,19 @@ public class CouponPromotionService implements IPromotionService {
couponDiscount = couponDiscount + (couponResults.getDiscountAmount() == null ? 0 : couponResults.getDiscountAmount()); couponDiscount = couponDiscount + (couponResults.getDiscountAmount() == null ? 0 : couponResults.getDiscountAmount());
} }
} }
if (CollectionUtils.isNotEmpty(calculationDiscountResult.getCouponDiscounts())) {
//选中优惠券赋值
List<ChooseCouponVo> couponCodes = new ArrayList<>();
for (ChooseCouponVo chooseCouponVo : shoppingCartInfoRequestVo.getCouponCodes()){
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.CouponResults discount : calculationDiscountResult.getCouponDiscounts()){
if(chooseCouponVo.getCouponCode().equals(discount.getCouponCode())){
couponCodes.add(chooseCouponVo);
break;
}
}
}
shoppingCartGoodsResponseVo.setCouponCodes(couponCodes);
}
} }
shoppingCartGoodsResponseVo.setCouponDiscount(couponDiscount); shoppingCartGoodsResponseVo.setCouponDiscount(couponDiscount);
...@@ -134,7 +147,7 @@ public class CouponPromotionService implements IPromotionService { ...@@ -134,7 +147,7 @@ public class CouponPromotionService implements IPromotionService {
} }
if (StringUtils.isNotBlank(couponCode)) { if (StringUtils.isNotBlank(couponCode)) {
List<String> validCouponCodeLis = new ArrayList<>(); List<String> validCouponCodeLis = new ArrayList<>();
if (couponPromotionVO != null && ObjectUtils.equals(CouponFlag.YES.getCode(), couponPromotionVO.getFlg())){ if (couponPromotionVO != null && !ObjectUtils.equals(AvailableCouponQueryFlagEnum.NO.getCode(), couponPromotionVO.getAvailableCouponQueryFlag())){
validCouponCodeLis = shoppingCartGoodsResponseVo.getAvailableCoupon().getUsableCoupons().stream().map(ActivityCouponBean::getCouponCode).collect(Collectors.toList()); validCouponCodeLis = shoppingCartGoodsResponseVo.getAvailableCoupon().getUsableCoupons().stream().map(ActivityCouponBean::getCouponCode).collect(Collectors.toList());
} else { } else {
couponPromotionVO = new CouponPromotionVO(); couponPromotionVO = new CouponPromotionVO();
......
...@@ -453,6 +453,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -453,6 +453,7 @@ public class CouponServiceImpl implements CouponService {
getMemberCouponListRequestDto.setStatusFlags(Arrays.asList(CouponStatus.STATUS_0.getCode(), CouponStatus.STATUS_2.getCode())); getMemberCouponListRequestDto.setStatusFlags(Arrays.asList(CouponStatus.STATUS_0.getCode(), CouponStatus.STATUS_2.getCode()));
getMemberCouponListRequestDto.setPageNum(1); getMemberCouponListRequestDto.setPageNum(1);
getMemberCouponListRequestDto.setPageSize(Integer.MAX_VALUE); getMemberCouponListRequestDto.setPageSize(Integer.MAX_VALUE);
//获取会员服务的优惠券列表
GetMemberCouponListResponseDto.Result result = getMemberCouponList(getMemberCouponListRequestDto); GetMemberCouponListResponseDto.Result result = getMemberCouponList(getMemberCouponListRequestDto);
LogUtil.debug("CouponServiceImpl_getMemberCouponList", JSON.toJSONString(getMemberCouponListRequestDto), JSON.toJSONString(result)); LogUtil.debug("CouponServiceImpl_getMemberCouponList", JSON.toJSONString(getMemberCouponListRequestDto), JSON.toJSONString(result));
List<GetMemberCouponListResponseDto.Result.MemberCoupon> memberCoupons = Lists.newArrayList(); List<GetMemberCouponListResponseDto.Result.MemberCoupon> memberCoupons = Lists.newArrayList();
...@@ -479,7 +480,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -479,7 +480,7 @@ 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 (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());
} }
...@@ -498,7 +499,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -498,7 +499,7 @@ public class CouponServiceImpl implements CouponService {
} }
private List<CouponStateVo> buildAvailiableCoupons(List<CartGoods> cartGoods, String partnerId, String storeId, List<String> couponCodes, int isNew,String appId,String menuType,Integer freightAmount) { private List<CouponStateVo> buildAvailiableCoupons(List<CartGoods> cartGoods, String partnerId, String storeId, List<String> couponCodes, int isNew,String appId,String menuType,Integer freightAmount) {
String appSecret = getAppSecret(partnerId); // String appSecret = getAppSecret(partnerId);
// 最大15一提交 // 最大15一提交
int maxNum = 15; int maxNum = 15;
int count = couponCodes.size() / maxNum; int count = couponCodes.size() / maxNum;
...@@ -525,7 +526,6 @@ public class CouponServiceImpl implements CouponService { ...@@ -525,7 +526,6 @@ public class CouponServiceImpl implements CouponService {
} }
} }
// 构建计算SDK
List<CouponStateVo> couponStateList = Lists.newArrayList(); List<CouponStateVo> couponStateList = Lists.newArrayList();
for (int j = 0; j <= count; j++) { for (int j = 0; j <= count; j++) {
List calCouponCodes = null; List calCouponCodes = null;
...@@ -534,9 +534,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -534,9 +534,7 @@ public class CouponServiceImpl implements CouponService {
} else { } else {
calCouponCodes = couponCodes.subList(maxNum * j, maxNum * j + maxNum); calCouponCodes = couponCodes.subList(maxNum * j, maxNum * j + maxNum);
} }
// 书写逻辑
couponAvailableReqVo.setCouponCodes(calCouponCodes); couponAvailableReqVo.setCouponCodes(calCouponCodes);
//CouponAvailableRespVo couponsAvailable = couponAvailableService.getCouponsAvailable(couponAvailableReqVo, appSecret);
CouponAvailableRespDto couponsAvailable = couponAdaptClient.getCouponsAvailable(couponAvailableReqVo); CouponAvailableRespDto couponsAvailable = couponAdaptClient.getCouponsAvailable(couponAvailableReqVo);
LogUtil.info("availableCoupon_couponAvailableService.getCouponsAvailable", JSON.toJSONString(couponAvailableReqVo), JSON.toJSONString(couponsAvailable)); LogUtil.info("availableCoupon_couponAvailableService.getCouponsAvailable", JSON.toJSONString(couponAvailableReqVo), JSON.toJSONString(couponsAvailable));
if (Objects.equals(String.valueOf(couponsAvailable.getResult()), ResponseResult.SUCCESS.getCode()) if (Objects.equals(String.valueOf(couponsAvailable.getResult()), ResponseResult.SUCCESS.getCode())
...@@ -1356,7 +1354,7 @@ public class CouponServiceImpl implements CouponService { ...@@ -1356,7 +1354,7 @@ public class CouponServiceImpl implements CouponService {
@Override @Override
public void checkValidCoupon(CouponPromotionVO couponPromotionVO, List<String> couponList, Map<String, List<String>> spqIdToCartUuid, String couponCode, List<CartGoods> cartGoodsList) { public void checkValidCoupon(CouponPromotionVO couponPromotionVO, List<String> couponList, Map<String, List<String>> spqIdToCartUuid, String couponCode, List<CartGoods> cartGoodsList) {
List<String> validCouponCodeLis = new ArrayList<>(); List<String> validCouponCodeLis = new ArrayList<>();
if (couponPromotionVO != null && ObjectUtils.equals(CouponFlag.YES.getCode(), couponPromotionVO.getFlg())){ if (couponPromotionVO != null && !ObjectUtils.equals(AvailableCouponQueryFlagEnum.NO.getCode(), couponPromotionVO.getAvailableCouponQueryFlag())){
validCouponCodeLis = couponList; validCouponCodeLis = couponList;
} else { } else {
GetMemberCouponListRequestDto getMemberCouponListRequestDto = new GetMemberCouponListRequestDto(couponPromotionVO.getPartnerId(), couponPromotionVO.getUserId()); GetMemberCouponListRequestDto getMemberCouponListRequestDto = new GetMemberCouponListRequestDto(couponPromotionVO.getPartnerId(), couponPromotionVO.getUserId());
......
...@@ -437,10 +437,10 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -437,10 +437,10 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
String appId = shoppingCartInfoRequestVo.getAppId(); String appId = shoppingCartInfoRequestVo.getAppId();
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); String couponCode = shoppingCartInfoRequestVo.getCouponCode();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); String activityCode = shoppingCartInfoRequestVo.getActivityCode();
List<ShoppingCartInfoRequestVo.couponCode> couponCodes = shoppingCartInfoRequestVo.getCouponCodes(); List<ChooseCouponVo> couponCodes = shoppingCartInfoRequestVo.getCouponCodes();
// 兼容老版本 // 兼容老版本
if (CollectionUtils.isNotEmpty(couponCodes) && StringUtils.isEmpty(couponCode)) { if (CollectionUtils.isNotEmpty(couponCodes) && StringUtils.isEmpty(couponCode)) {
ShoppingCartInfoRequestVo.couponCode otherCouponCode = couponCodes.stream() ChooseCouponVo otherCouponCode = couponCodes.stream()
.filter(couponCode1 -> couponCode1.getCouponType()!=null && couponCode1.getCouponType().compareTo(CouponTypeEnum.TYPE_5.getCode()) != 0) .filter(couponCode1 -> couponCode1.getCouponType()!=null && couponCode1.getCouponType().compareTo(CouponTypeEnum.TYPE_5.getCode()) != 0)
.findFirst().orElse(null); .findFirst().orElse(null);
if (otherCouponCode != null) { if (otherCouponCode != null) {
...@@ -645,9 +645,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp ...@@ -645,9 +645,9 @@ public class ShoppingCartCollageServiceImpl extends AbstractShoppingCartImpl imp
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); String couponCode = shoppingCartInfoRequestVo.getCouponCode();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); String activityCode = shoppingCartInfoRequestVo.getActivityCode();
// 兼容老购物车 // 兼容老购物车
List<ShoppingCartInfoRequestVo.couponCode> couponCodes = shoppingCartInfoRequestVo.getCouponCodes(); List<ChooseCouponVo> couponCodes = shoppingCartInfoRequestVo.getCouponCodes();
if (Objects.isNull(couponCode) && CollectionUtils.isNotEmpty(couponCodes)) { if (Objects.isNull(couponCode) && CollectionUtils.isNotEmpty(couponCodes)) {
ShoppingCartInfoRequestVo.couponCode otherCouponCode = couponCodes.stream() ChooseCouponVo otherCouponCode = couponCodes.stream()
.filter(couponCode1 -> couponCode1.getCouponType()!=null && couponCode1.getCouponType().compareTo(CouponTypeEnum.TYPE_5.getCode())!=0) .filter(couponCode1 -> couponCode1.getCouponType()!=null && couponCode1.getCouponType().compareTo(CouponTypeEnum.TYPE_5.getCode())!=0)
.findFirst().orElse(null); .findFirst().orElse(null);
if (otherCouponCode !=null) { if (otherCouponCode !=null) {
......
...@@ -369,10 +369,10 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -369,10 +369,10 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
List<CartGoods> cartGoodsList = new ArrayList<>(); List<CartGoods> cartGoodsList = new ArrayList<>();
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); String couponCode = shoppingCartInfoRequestVo.getCouponCode();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); String activityCode = shoppingCartInfoRequestVo.getActivityCode();
List<ShoppingCartInfoRequestVo.couponCode> couponCodes = shoppingCartInfoRequestVo.getCouponCodes(); List<ChooseCouponVo> couponCodes = shoppingCartInfoRequestVo.getCouponCodes();
// 兼容老版本 // 兼容老版本
if (CollectionUtils.isNotEmpty(couponCodes) && StringUtils.isEmpty(couponCode)) { if (CollectionUtils.isNotEmpty(couponCodes) && StringUtils.isEmpty(couponCode)) {
ShoppingCartInfoRequestVo.couponCode otherCouponCode = couponCodes.stream() ChooseCouponVo otherCouponCode = couponCodes.stream()
.filter(couponCode1 -> couponCode1.getCouponType()!=null && couponCode1.getCouponType().compareTo(CouponTypeEnum.TYPE_5.getCode()) != 0) .filter(couponCode1 -> couponCode1.getCouponType()!=null && couponCode1.getCouponType().compareTo(CouponTypeEnum.TYPE_5.getCode()) != 0)
.findFirst().orElse(null); .findFirst().orElse(null);
if (otherCouponCode != null) { if (otherCouponCode != null) {
...@@ -535,9 +535,9 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -535,9 +535,9 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
String storeId = shoppingCartInfoRequestVo.getShopId(); String storeId = shoppingCartInfoRequestVo.getShopId();
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); String couponCode = shoppingCartInfoRequestVo.getCouponCode();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); String activityCode = shoppingCartInfoRequestVo.getActivityCode();
List<ShoppingCartInfoRequestVo.couponCode> couponCodes = shoppingCartInfoRequestVo.getCouponCodes(); List<ChooseCouponVo> couponCodes = shoppingCartInfoRequestVo.getCouponCodes();
if (Objects.isNull(couponCode) && CollectionUtils.isNotEmpty(couponCodes)) { if (Objects.isNull(couponCode) && CollectionUtils.isNotEmpty(couponCodes)) {
ShoppingCartInfoRequestVo.couponCode otherCouponCode = couponCodes.stream() ChooseCouponVo otherCouponCode = couponCodes.stream()
.filter(couponCode1 -> couponCode1.getCouponType()!=null && couponCode1.getCouponType().compareTo(CouponTypeEnum.TYPE_5.getCode())!=0) .filter(couponCode1 -> couponCode1.getCouponType()!=null && couponCode1.getCouponType().compareTo(CouponTypeEnum.TYPE_5.getCode())!=0)
.findFirst().orElse(null); .findFirst().orElse(null);
if (otherCouponCode !=null) { if (otherCouponCode !=null) {
...@@ -930,7 +930,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -930,7 +930,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
return customerInfoVo1; return customerInfoVo1;
} }
private List<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> buildCoupons(List<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> oldCoupons, List<ShoppingCartInfoRequestVo.couponCode> coupons){ private List<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> buildCoupons(List<CalculationSharingDiscountRequestDto.CalculationDiscountCoupon> oldCoupons, List<ChooseCouponVo> coupons){
// ApiLog.info("批量使用优惠券前,oldCoupons,coupons",oldCoupons,coupons); // ApiLog.info("批量使用优惠券前,oldCoupons,coupons",oldCoupons,coupons);
...@@ -947,7 +947,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -947,7 +947,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
if (coupons != null) { if (coupons != null) {
for(int x = 0 ; x < coupons.size() ; x++){ for(int x = 0 ; x < coupons.size() ; x++){
ShoppingCartInfoRequestVo.couponCode cp = coupons.get(x); ChooseCouponVo cp = coupons.get(x);
if(codes.contains(cp.getCouponCode())){ if(codes.contains(cp.getCouponCode())){
continue; continue;
} }
......
...@@ -266,10 +266,10 @@ public class CalculationCommonService { ...@@ -266,10 +266,10 @@ public class CalculationCommonService {
shoppingCartGoodsResponseVo.setProductsCount(cartGoodsList.size()); shoppingCartGoodsResponseVo.setProductsCount(cartGoodsList.size());
String toastMsg = shoppingCartGoodsResponseVo.getToastMsg(); String toastMsg = shoppingCartGoodsResponseVo.getToastMsg();
if (StringUtils.isNotEmpty(toastMsg)) { if (StringUtils.isNotEmpty(toastMsg)) {
toastMsg = shoppingCartInfoRequestVo != null && ObjectUtils.equals(1, shoppingCartInfoRequestVo.getFlag()) ? SHOPPING_CART_EMPTY_GOODS_LIST : SHOPPING_CART_INVALIAD_GOODS; toastMsg = shoppingCartInfoRequestVo != null && ObjectUtils.equals(SubmitPageEnum.YES.getCode(), shoppingCartInfoRequestVo.getFlag()) ? SHOPPING_CART_EMPTY_GOODS_LIST : SHOPPING_CART_INVALIAD_GOODS;
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, toastMsg); setToastMsgIfNotExist(shoppingCartGoodsResponseVo, toastMsg);
//结算页,只有商品全部非法(即products为空)时,才提示changed为true toastMsg 不为空 //结算页,只有商品全部非法(即products为空)时,才提示changed为true toastMsg 不为空
if (shoppingCartInfoRequestVo != null && ObjectUtils.equals(1, shoppingCartInfoRequestVo.getFlag())) { if (shoppingCartInfoRequestVo != null && ObjectUtils.equals(SubmitPageEnum.YES.getCode(), shoppingCartInfoRequestVo.getFlag())) {
shoppingCartGoodsResponseVo.setChanged(CollectionUtils.isEmpty(cartGoodsList)); shoppingCartGoodsResponseVo.setChanged(CollectionUtils.isEmpty(cartGoodsList));
shoppingCartGoodsResponseVo.setToastMsg(CollectionUtils.isEmpty(cartGoodsList) ? toastMsg : ""); shoppingCartGoodsResponseVo.setToastMsg(CollectionUtils.isEmpty(cartGoodsList) ? toastMsg : "");
} }
...@@ -288,7 +288,7 @@ public class CalculationCommonService { ...@@ -288,7 +288,7 @@ public class CalculationCommonService {
shoppingCartGoodsResponseVo.setNewPackAmount(null); shoppingCartGoodsResponseVo.setNewPackAmount(null);
} else if ((Objects.equals(shoppingCartInfoRequestVo.getOrderType(), CreateOrderType.TAKE_OUT.getCode()) } else if ((Objects.equals(shoppingCartInfoRequestVo.getOrderType(), CreateOrderType.TAKE_OUT.getCode())
|| Objects.equals(shoppingCartInfoRequestVo.getReachStoreType(), OrderType.COLLECT_GOODS.getCode())) || Objects.equals(shoppingCartInfoRequestVo.getReachStoreType(), OrderType.COLLECT_GOODS.getCode()))
&& Objects.equals(shoppingCartInfoRequestVo.getFlag(), CouponFlag.YES.getCode())) { && Objects.equals(shoppingCartInfoRequestVo.getFlag(), SubmitPageEnum.YES.getCode())) {
Long packAmount = shoppingCartGoodsResponseVo.getNewPackAmount() == null ? 0 : shoppingCartGoodsResponseVo.getNewPackAmount(); Long packAmount = shoppingCartGoodsResponseVo.getNewPackAmount() == null ? 0 : shoppingCartGoodsResponseVo.getNewPackAmount();
Long originalTotalAmount = shoppingCartGoodsResponseVo.getOriginalTotalAmount() + packAmount; Long originalTotalAmount = shoppingCartGoodsResponseVo.getOriginalTotalAmount() + packAmount;
Long totalAmount = shoppingCartGoodsResponseVo.getTotalAmount() + packAmount; Long totalAmount = shoppingCartGoodsResponseVo.getTotalAmount() + packAmount;
......
...@@ -4,7 +4,7 @@ import cn.freemud.entities.dto.CheckSpqInfoResponseDto; ...@@ -4,7 +4,7 @@ import cn.freemud.entities.dto.CheckSpqInfoResponseDto;
import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto; import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.CouponFlag; import cn.freemud.enums.AvailableCouponQueryFlagEnum;
import cn.freemud.enums.GoodsTypeEnum; import cn.freemud.enums.GoodsTypeEnum;
import cn.freemud.service.CouponService; import cn.freemud.service.CouponService;
import cn.freemud.service.impl.AssortmentSdkService; import cn.freemud.service.impl.AssortmentSdkService;
...@@ -50,7 +50,7 @@ public class CouponSharingService { ...@@ -50,7 +50,7 @@ public class CouponSharingService {
, CouponPromotionVO couponPromotionVO , CouponPromotionVO couponPromotionVO
,ShoppingCartInfoRequestVo shoppingCartInfoRequestVo, String userId, String partnerId, String storeId, Integer orderType) { ,ShoppingCartInfoRequestVo shoppingCartInfoRequestVo, String userId, String partnerId, String storeId, Integer orderType) {
// 用户选择了查询优惠券信息 // 用户选择了查询优惠券信息
if (couponPromotionVO != null && ObjectUtils.equals(CouponFlag.YES.getCode(), couponPromotionVO.getFlg())) { if (couponPromotionVO != null && !ObjectUtils.equals(AvailableCouponQueryFlagEnum.NO.getCode(), couponPromotionVO.getAvailableCouponQueryFlag())) {
List<CartGoods> tmpCartGoods = cartGoodsList.parallelStream().filter(k -> (StringUtils.isNotBlank(k.getCouponCode()) || k.getCartGoodsUid() List<CartGoods> tmpCartGoods = cartGoodsList.parallelStream().filter(k -> (StringUtils.isNotBlank(k.getCouponCode()) || k.getCartGoodsUid()
.startsWith(CommonsConstant.COUPON_PREFIX))).collect(Collectors.toList()); .startsWith(CommonsConstant.COUPON_PREFIX))).collect(Collectors.toList());
// 是否存在商品券 // 是否存在商品券
...@@ -93,6 +93,17 @@ public class CouponSharingService { ...@@ -93,6 +93,17 @@ public class CouponSharingService {
List<Integer> asList = Arrays.asList( ActivityTypeEnum.TYPE_3.getCode(), ActivityTypeEnum.TYPE_31.getCode(), ActivityTypeEnum.TYPE_34.getCode()); List<Integer> asList = Arrays.asList( ActivityTypeEnum.TYPE_3.getCode(), ActivityTypeEnum.TYPE_31.getCode(), ActivityTypeEnum.TYPE_34.getCode());
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> couponResultsList = calculationDiscountResult.getDiscounts(); List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> couponResultsList = calculationDiscountResult.getDiscounts();
couponDiscount = couponResultsList.stream().filter(d -> asList.contains(d.getType())).mapToLong(d -> d.getDiscount().longValue()).sum(); couponDiscount = couponResultsList.stream().filter(d -> asList.contains(d.getType())).mapToLong(d -> d.getDiscount().longValue()).sum();
//选中优惠券赋值
List<ChooseCouponVo> couponCodes = new ArrayList<>();
for (ChooseCouponVo chooseCouponVo : shoppingCartInfoRequestVo.getCouponCodes()){
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount discount : couponResultsList){
if(chooseCouponVo.getCouponCode().equals(discount.getActivityCode())){
couponCodes.add(chooseCouponVo);
break;
}
}
}
shoppingCartGoodsResponseVo.setCouponCodes(couponCodes);
} }
shoppingCartGoodsResponseVo.setCouponDiscount(couponDiscount); shoppingCartGoodsResponseVo.setCouponDiscount(couponDiscount);
...@@ -126,7 +137,7 @@ public class CouponSharingService { ...@@ -126,7 +137,7 @@ public class CouponSharingService {
useCoupon = false; useCoupon = false;
} }
List<String> validCouponCodeLis = new ArrayList<>(); List<String> validCouponCodeLis = new ArrayList<>();
if (couponPromotionVO != null && ObjectUtils.equals(CouponFlag.YES.getCode(), couponPromotionVO.getFlg())){ if (couponPromotionVO != null && !ObjectUtils.equals(AvailableCouponQueryFlagEnum.NO.getCode(), couponPromotionVO.getAvailableCouponQueryFlag())){
validCouponCodeLis = shoppingCartGoodsResponseVo.getAvailableCoupon().getUsableCoupons().stream().map(ActivityCouponBean::getCouponCode).collect(Collectors.toList()); validCouponCodeLis = shoppingCartGoodsResponseVo.getAvailableCoupon().getUsableCoupons().stream().map(ActivityCouponBean::getCouponCode).collect(Collectors.toList());
} else { } else {
couponPromotionVO = new CouponPromotionVO(); couponPromotionVO = new CouponPromotionVO();
...@@ -204,7 +215,7 @@ public class CouponSharingService { ...@@ -204,7 +215,7 @@ public class CouponSharingService {
// 计算优惠信息时,已将券校验过,放在map中 // 计算优惠信息时,已将券校验过,放在map中
Map<String, CheckSpqInfoResponseDto> validCouponMap = discountResult == null ? new HashMap<>() : discountResult.getValidCouponMap(); Map<String, CheckSpqInfoResponseDto> validCouponMap = discountResult == null ? new HashMap<>() : discountResult.getValidCouponMap();
Map<String, List<String>> spqIdToCartUuid = discountResult == null ? new HashMap<>() : discountResult.getSpqIdToCartUuid(); Map<String, List<String>> spqIdToCartUuid = discountResult == null ? new HashMap<>() : discountResult.getSpqIdToCartUuid();
couponPromotionVO.setFlg(0); // couponPromotionVO.setFlg(0);
// couponService.checkValidCoupon(couponPromotionVO, validCouponCodeLis, spqIdToCartUuid, couponCode, cartGoodsList); // couponService.checkValidCoupon(couponPromotionVO, validCouponCodeLis, spqIdToCartUuid, couponCode, cartGoodsList);
......
...@@ -1852,10 +1852,10 @@ public class ShoppingCartMCoffeeServiceImpl { ...@@ -1852,10 +1852,10 @@ public class ShoppingCartMCoffeeServiceImpl {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
shoppingCartGoodsResponseVo.setProductsCount(cartGoodsList.size()); shoppingCartGoodsResponseVo.setProductsCount(cartGoodsList.size());
if (StringUtils.isNotEmpty(toastMsg)) { if (StringUtils.isNotEmpty(toastMsg)) {
toastMsg = shoppingCartInfoRequestVo != null && ObjectUtils.equals(1, shoppingCartInfoRequestVo.getFlag()) ? SHOPPING_CART_EMPTY_GOODS_LIST : SHOPPING_CART_INVALIAD_GOODS; toastMsg = shoppingCartInfoRequestVo != null && ObjectUtils.equals(SubmitPageEnum.YES.getCode(), shoppingCartInfoRequestVo.getFlag()) ? SHOPPING_CART_EMPTY_GOODS_LIST : SHOPPING_CART_INVALIAD_GOODS;
setToastMsgIfNotExist(shoppingCartGoodsResponseVo, toastMsg); setToastMsgIfNotExist(shoppingCartGoodsResponseVo, toastMsg);
//结算页,只有商品全部非法(即products为空)时,才提示changed为true toastMsg 不为空 //结算页,只有商品全部非法(即products为空)时,才提示changed为true toastMsg 不为空
if (shoppingCartInfoRequestVo != null && ObjectUtils.equals(1, shoppingCartInfoRequestVo.getFlag())) { if (shoppingCartInfoRequestVo != null && ObjectUtils.equals(SubmitPageEnum.YES.getCode(), shoppingCartInfoRequestVo.getFlag())) {
shoppingCartGoodsResponseVo.setChanged(CollectionUtils.isEmpty(cartGoodsList)); shoppingCartGoodsResponseVo.setChanged(CollectionUtils.isEmpty(cartGoodsList));
shoppingCartGoodsResponseVo.setToastMsg(CollectionUtils.isEmpty(cartGoodsList) ? toastMsg : ""); shoppingCartGoodsResponseVo.setToastMsg(CollectionUtils.isEmpty(cartGoodsList) ? toastMsg : "");
} }
......
...@@ -774,15 +774,15 @@ public class CouponDiscountCalculation { ...@@ -774,15 +774,15 @@ public class CouponDiscountCalculation {
} }
} }
public CouponPromotionVO getCouponPromotionVO(String partnerId, String storeId, String userId, String couponCode, Integer orderType){ // public CouponPromotionVO getCouponPromotionVO(String partnerId, String storeId, String userId, String couponCode, Integer orderType){
CouponPromotionVO couponPromotionVO = new CouponPromotionVO(); // CouponPromotionVO couponPromotionVO = new CouponPromotionVO();
couponPromotionVO.setPartnerId(partnerId); // couponPromotionVO.setPartnerId(partnerId);
couponPromotionVO.setUserId(userId); // couponPromotionVO.setUserId(userId);
couponPromotionVO.setStoreId(storeId); // couponPromotionVO.setStoreId(storeId);
couponPromotionVO.setCouponCode(couponCode); // couponPromotionVO.setCouponCode(couponCode);
couponPromotionVO.setOrderType(orderType); // couponPromotionVO.setOrderType(orderType);
couponPromotionVO.setFlg(CouponFlag.YES.getCode()); // couponPromotionVO.setFlg(SubmitPageEnum.YES.getCode());
return couponPromotionVO; // return couponPromotionVO;
} // }
} }
...@@ -18,6 +18,7 @@ import cn.freemud.entities.dto.PromotionMessageDto; ...@@ -18,6 +18,7 @@ import cn.freemud.entities.dto.PromotionMessageDto;
import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto; import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.SubmitPageEnum;
import cn.freemud.service.impl.ShoppingCartNewServiceImpl; import cn.freemud.service.impl.ShoppingCartNewServiceImpl;
import cn.freemud.service.shoppingCart.ShoppingCartRelationService; import cn.freemud.service.shoppingCart.ShoppingCartRelationService;
import cn.freemud.utils.WebUtil; import cn.freemud.utils.WebUtil;
...@@ -94,7 +95,7 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation ...@@ -94,7 +95,7 @@ public class CocoShoppingCartRelationServiceImpl implements ShoppingCartRelation
}); });
if(!Objects.equals(flag,1)){ if(!Objects.equals(flag, SubmitPageEnum.YES.getCode())){
// 非结算页 // 非结算页
orderingFoodPage(products,halfDiscountsMap,goodsDiscountsMap,gifeProductIds,shoppingCartGoodsResponseVo); orderingFoodPage(products,halfDiscountsMap,goodsDiscountsMap,gifeProductIds,shoppingCartGoodsResponseVo);
}else {// 结算页 }else {// 结算页
......
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