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