Commit b92433fc by ping.wu

Merge branches 'feature/20211104_买m赠n券商品id问题_wuping' and 'qa' of…

Merge branches 'feature/20211104_买m赠n券商品id问题_wuping' and 'qa' of http://gitlab.freemud.com/order-group-application/order-group into qa
parents 26e08277 d6650e2f
......@@ -369,7 +369,7 @@ public interface ShoppingCartBaseService {
.collect(Collectors.toList());
}
for (CartGoods cartGoods : cartGoodsByProduct) {
DetailVO detail = detailsMap.get(cartGoods.getSpuId());
DetailVO detail = detailsMap.get(cartGoods.getCouponCode());
String activeCode = detail != null ? detail.getActiveCode() : "";
if (couponOrderWayMap == null || couponOrderWayMap.isEmpty() || !couponOrderWayMap.get(activeCode)) {
orderWayFlag = true;
......
......@@ -118,10 +118,16 @@ public class OrderCallBackMQService {
* @param body
*/
public void revert(OrderCallBackRequestVo body){
ApiLog.infoMessage("activityReverse start orderCode:{}", body.getOrderCode());
if (ObjectUtils.notEqual(body.getDelayMsgEventType(),2)){
return;
}
String redisKey = "kgd:cancel_payment_oid:" + body.getOrderCode() ;
//取消支付订单缓存,
Object value = redisCache.getValue(redisKey);
if(value != null){
return;
}
ApiLog.infoMessage("activityReverse start orderCode:{}", body.getOrderCode());
String orderCode=body.getOrderCode();
OrderStatusChangeRequestDto requestDto = new OrderStatusChangeRequestDto();
requestDto.setOid(orderCode);
......
......@@ -100,6 +100,10 @@ public class RedisKeyConstant {
public final static String USER_BUY_PRODUCT_ONCE = "user_buy_product_once:";
/**
* 取消支付冲正mq在redis的key前缀
*/
public final static String KGD_PAYMENT_CANCEL_OID = "kgd:cancel_payment_oid:";
/**
* cocoNotMadeGoods:商户号:门店号:yyyy-MM-dd
......
......@@ -5,8 +5,10 @@ import cn.freemud.amqp.Header;
import cn.freemud.amqp.MQAction;
import cn.freemud.amqp.MQMessage;
import cn.freemud.amqp.MQService;
import cn.freemud.constant.RedisKeyConstant;
import cn.freemud.entities.dto.OrderPrintDto;
import cn.freemud.entities.dto.pay.PaymentMqMessageDto;
import cn.freemud.redis.RedisCache;
import cn.freemud.utils.AppLogUtil;
import com.alibaba.fastjson.JSON;
import com.freemud.application.sdk.api.config.TopicExchangeConfig;
......@@ -18,11 +20,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.concurrent.TimeUnit;
@Component
public class OrderQueueService {
@Autowired
private MQService mqService;
@Autowired
private RedisCache redisCache;
// TODO: 21-9-17 定义常量
......@@ -75,6 +82,10 @@ public class OrderQueueService {
} catch (Exception e) {
AppLogUtil.errorLog("ActivityReverse", JSON.toJSONString(requestDto), "", e);
}
String redisKey = RedisKeyConstant.KGD_PAYMENT_CANCEL_OID + oid ;
//取消支付订单缓存
// redisCache.save(redisKey, true, 180L, TimeUnit.MINUTES);
}
......
......@@ -109,15 +109,15 @@ public class DistributeAdapter {
Map<String, List<String>> spqIdToCartUuid = discountResult == null ? new HashMap<>() : discountResult.getSpqIdToCartUuidMap();
if (MapUtils.isNotEmpty(validCouponMap) && MapUtils.isNotEmpty(spqIdToCartUuid) && discountResult != null){
List<String> activityCodeList = discountResult.getDiscounts().stream().map(p -> p.getActivityCode()).collect(Collectors.toList());
for (String spqId : validCouponMap.keySet()) {
CheckSpqInfoResponseDto sqpInfo = validCouponMap.get(spqId);
for (String couponCode : validCouponMap.keySet()) {
CheckSpqInfoResponseDto sqpInfo = validCouponMap.get(couponCode);
if (!activityCodeList.contains(sqpInfo.getCouponCode())){ // 表示商品券不够启用金额
List<String> uuidList = spqIdToCartUuid.get(sqpInfo.getCouponCode());
if (CollectionUtils.isNotEmpty(uuidList)){
List<CartGoods> newCartList = cartGoodsList.stream().filter(p -> !uuidList.contains(p.getCartGoodsUid())).collect(Collectors.toList());
assortmentSdkService.setShoppingCart(bo.getPartnerId(), bo.getShopId(), bo.getUserId(), newCartList, null, null, this.shoppingCartBaseService,null);
cartGoodsList = newCartList;
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(spqId);
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode);
commonSetMessageBO.setChanged(true);
commonSetMessageBO.setToastMsg("当前购物车金额低于【" + checkSpqInfoResponseDto.getCouponName() + "】优惠券起用金额门槛,券已自动移除购物车");
}
......
......@@ -235,7 +235,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
String couponCode = CommonUtils.getCouponCode(baseRequestBO.getCouponCode(), spuId);
cartGoods.setAddCartTime(System.currentTimeMillis());
cartGoods.setSpuId(couponCode);
// cartGoods.setSpuId(couponCode);
cartGoods.setSkuId(StringUtils.isEmpty(spqBO.getSkuId()) ? spqBO.getSpuId() : spqBO.getSkuId());
cartGoods.setOriginalPrice(0L);
cartGoods.setOriginalAmount(0L);
......
......@@ -445,11 +445,11 @@ public class AbstractApportionService implements GetShoppingCartGoodsApportionSe
for (CartGoods product : cartGoodsList) {
//循环购物车商品券
if (CommonUtils.isProductCoupon(product.getCouponCode(), product.getCartGoodsUid())) {
String spqId = product.getCartGoodsUid().substring(CommonsConstant.COUPON_PREFIX.length());
String couponCode = product.getCouponCode();
// 计算优惠信息时,已将券校验过,放在map中
Map<String, CheckSpqInfoResponseDto> validCouponMap = discountResult == null ? new HashMap<>() : discountResult.getValidCouponMap();
if (MapUtils.isNotEmpty(validCouponMap)) {
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(spqId);
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode);
if (checkSpqInfoResponseDto != null) {
product.setOriginalPrice(checkSpqInfoResponseDto.getPrice());
product.setSpuId(checkSpqInfoResponseDto.getSpuId());
......
......@@ -52,8 +52,9 @@ public class DistributeServiceImpl implements DistributeService {
originalAmount = 0L;amount = 0L;packageAmount = 0L;
if (CommonUtils.isProductCoupon(cartGoods.getCouponCode(), cartGoods.getCartGoodsUid())){
Map<String, CheckSpqInfoResponseDto> validCouponMap = discountResult.getValidCouponMap();
if (validCouponMap != null && validCouponMap.get(cartGoods.getSpuId()) != null){
cartGoods.setSpuId(validCouponMap.get(cartGoods.getSpuId()).getSpuId());
if (validCouponMap != null && validCouponMap.get(cartGoods.getCouponCode()) != null){
//商品spuId
cartGoods.setSpuId(validCouponMap.get(cartGoods.getCouponCode()).getSpuId());
}
}
......
......@@ -165,11 +165,11 @@ public class PlatformApportionService extends AbstractApportionService {
//循环购物车商品券
for (CartGoods cartGoods : cartGoodsList) {
if (cartGoods.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)) {
String spqId = cartGoods.getCartGoodsUid().substring(CommonsConstant.COUPON_PREFIX.length());
String couponCode = cartGoods.getCouponCode();
// 计算优惠信息时,已将券校验过,放在map中
Map<String, CheckSpqInfoResponseDto> validCouponMap = discountResult == null ? new HashMap<>() : discountResult.getValidCouponMap();
if (MapUtils.isNotEmpty(validCouponMap)) {
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(spqId);
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode);
if (checkSpqInfoResponseDto != null) {
cartGoods.setOriginalPrice(checkSpqInfoResponseDto.getPrice());
cartGoods.setSpuId(checkSpqInfoResponseDto.getSpuId());
......
......@@ -194,7 +194,7 @@ public interface ShoppingCartNewService {
cartGoods.setGoodsType(GoodsTypeEnum.COUPON_GOODS.getGoodsType());
// 商品券Id
String spqId = spuId.substring(CommonsConstant.COUPON_PREFIX.length());
cartGoods.setSpuId(spqId);
// cartGoods.setSpuId(spqId);
cartGoods.setSkuId(spuId2);
cartGoods.setOriginalPrice(0L);
cartGoods.setOriginalAmount(0L);
......
......@@ -128,15 +128,15 @@ public class CouponPromotionService implements IPromotionService {
Map<String, List<String>> spqIdToCartUuid = calculationDiscountResult == null ? new HashMap<>() : calculationDiscountResult.getSpqIdToCartUuid();
if (MapUtils.isNotEmpty(validCouponMap) && MapUtils.isNotEmpty(spqIdToCartUuid) && calculationDiscountResult != null){
List<String> activityCodeList = calculationDiscountResult.getCouponDiscounts().stream().map(p -> p.getCouponCode()).collect(Collectors.toList());
for (String spqId : validCouponMap.keySet()) {
CheckSpqInfoResponseDto sqpInfo = validCouponMap.get(spqId);
for (String couponCode : validCouponMap.keySet()) {
CheckSpqInfoResponseDto sqpInfo = validCouponMap.get(couponCode);
if (!activityCodeList.contains(sqpInfo.getCouponCode())){ // 表示商品券不够启用金额
List<String> uuidList = spqIdToCartUuid.get(sqpInfo.getCouponCode());
if (CollectionUtils.isNotEmpty(uuidList)){
List<CartGoods> newCartList = cartGoodsList.stream().filter(p -> !uuidList.contains(p.getCartGoodsUid())).collect(Collectors.toList());
assortmentSdkService.setShoppingCart(activityQueryDto.getPartnerId(), activityQueryDto.getStoreId(), userLoginInfoDto.getMemberId(), newCartList, null, null, this.shoppingCartBaseService,activityQueryDto.getBizType());
cartGoodsList = newCartList;
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(spqId);
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode);
shoppingCartGoodsResponseVo.setChanged(true);
shoppingCartGoodsResponseVo.setToastMsg("当前购物车金额低于【" + checkSpqInfoResponseDto.getCouponName() + "】优惠券起用金额门槛,券已自动移除购物车");
}
......
......@@ -260,6 +260,7 @@ public class ProductServiceImpl implements ProductService {
*/
private boolean checkProductOrderWay(List<CartGoods> cartGoodsList, Map<String, GetCouponDetailResponseDto.Details> detailsMap, Map<String, Boolean> couponOrderWayMap) {
boolean orderWayFlag = false;
// TODO: 21-11-5 判断券商品待删除
List<CartGoods> cartGoodsByProduct = cartGoodsList.stream()
.filter(cartGoods -> cartGoods.getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX))
.collect(Collectors.toList());
......@@ -269,7 +270,7 @@ public class ProductServiceImpl implements ProductService {
.collect(Collectors.toList());
}
for (CartGoods cartGoods : cartGoodsByProduct) {
GetCouponDetailResponseDto.Details detail = detailsMap.get(cartGoods.getSpuId());
GetCouponDetailResponseDto.Details detail = detailsMap.get(cartGoods.getCouponCode());
String activeCode = detail != null ? detail.getActiveCode() : "";
if (couponOrderWayMap == null || couponOrderWayMap.isEmpty() || !couponOrderWayMap.get(activeCode)) {
orderWayFlag = true;
......
......@@ -118,15 +118,15 @@ public class CouponSharingService {
Map<String, List<String>> spqIdToCartUuid = calculationDiscountResult == null ? new HashMap<>() : calculationDiscountResult.getSpqIdToCartUuid();
if (MapUtils.isNotEmpty(validCouponMap) && MapUtils.isNotEmpty(spqIdToCartUuid) && calculationDiscountResult != null){
List<String> activityCodeList = calculationDiscountResult.getDiscounts().stream().map(p -> p.getActivityCode()).collect(Collectors.toList());
for (String spqId : validCouponMap.keySet()) {
CheckSpqInfoResponseDto sqpInfo = validCouponMap.get(spqId);
for (String couponCode : validCouponMap.keySet()) {
CheckSpqInfoResponseDto sqpInfo = validCouponMap.get(couponCode);
if (!activityCodeList.contains(sqpInfo.getCouponCode())){ // 表示商品券不够启用金额
List<String> uuidList = spqIdToCartUuid.get(sqpInfo.getCouponCode());
if (CollectionUtils.isNotEmpty(uuidList)){
List<CartGoods> newCartList = cartGoodsList.stream().filter(p -> !uuidList.contains(p.getCartGoodsUid())).collect(Collectors.toList());
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, newCartList, null, null, this.shoppingCartBaseService,bizType);
cartGoodsList = newCartList;
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(spqId);
CheckSpqInfoResponseDto checkSpqInfoResponseDto = validCouponMap.get(couponCode);
shoppingCartGoodsResponseVo.setChanged(true);
shoppingCartGoodsResponseVo.setToastMsg("当前购物车金额低于【" + checkSpqInfoResponseDto.getCouponName() + "】优惠券起用金额门槛,券已自动移除购物车");
}
......
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