Commit 5e0e5b74 by huiyang.chen

fix 买三赠一开发

parent 3520d4c1
......@@ -25,6 +25,10 @@ public class RedisKeyConstant {
/**
* 用户购物车在redis的key前缀
*/
public final static String SAAS_SHOPPINGCART_COUPON_KEY_PREFIX_TYPE = "saas:user:info:cart:coupon:type:";
/**
* 用户购物车在redis的key前缀
*/
public final static String SAAS_USER_INFO_CART_CARTADDPRODUCT = "saas:user:info:cart:cartAddProduct:goods:";
/**
* 用户购物车总价在redis的key前缀
......
......@@ -41,4 +41,9 @@ public class CartParamDto {
private MealClearOperationEnum operationType;
private Integer couponType;
/**
* 各类券信息
*/
private List<CouponTypeVo> couponTypeList;
}
package com.freemud.sdk.api.assortment.shoppingcart.domain;
import lombok.Data;
@Data
public class CouponTypeVo {
/**
* 券类型 1:买三赠一券
*/
private Integer type;
/**
* 券code
*/
private String code;
}
......@@ -120,6 +120,26 @@ public interface ShoppingCartBaseService {
}
/**
*
* @param cartParamDto
* @param trackingNo
* @return
*/
default BaseResponse<List<CouponTypeVo>> setTypeCartCouponCode(CartParamDto cartParamDto, String trackingNo) {
return null;
}
/**
*
* @param cartParamDto
* @param trackingNo
* @return
*/
default BaseResponse<List<CouponTypeVo>> getTypeCartCouponCode(CartParamDto cartParamDto, String trackingNo) {
return null;
}
/**
* 清除麦咖啡购物车商品行信息
*
* @param cartParamDto
......
......@@ -3,41 +3,23 @@ package com.freemud.sdk.api.assortment.shoppingcart.service.impl;
import ch.qos.logback.classic.Level;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.redis.RedisCache;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.couponcenter.enums.CouponTypeEnum;
import com.freemud.application.sdk.api.couponcenter.online.domain.*;
import com.freemud.application.sdk.api.couponcenter.online.request.ActiveBatchQueryRequest;
import com.freemud.application.sdk.api.couponcenter.online.request.CouponDetailRequest;
import com.freemud.application.sdk.api.couponcenter.online.request.PartnerRequest;
import com.freemud.application.sdk.api.couponcenter.online.response.CouponDetailResponse;
import com.freemud.application.sdk.api.couponcenter.online.service.FMActiveSdkService;
import com.freemud.application.sdk.api.couponcenter.online.service.OnlineCouponSdkService;
import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.productcenter.constant.ResponseConstant;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.application.sdk.api.productcenter.domain.ProductInfosDTO;
import com.freemud.application.sdk.api.productcenter.request.menu.GetMenuCategoryByIdsRequest;
import com.freemud.application.sdk.api.productcenter.request.product.GetProductRequest;
import com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryByIdsResponse;
import com.freemud.application.sdk.api.productcenter.response.menu.GetMenuCategoryInfoResponse;
import com.freemud.application.sdk.api.productcenter.response.product.GetProductInfosResponse;
import com.freemud.application.sdk.api.productcenter.service.MenuService;
import com.freemud.application.sdk.api.productcenter.service.ProductService;
import com.freemud.sdk.api.assortment.shoppingcart.adapter.ShoppingCartAdapter;
import com.freemud.sdk.api.assortment.shoppingcart.constant.*;
import com.freemud.sdk.api.assortment.shoppingcart.domain.*;
import com.freemud.sdk.api.assortment.shoppingcart.enums.SaveCouponType;
import com.freemud.sdk.api.assortment.shoppingcart.request.CheckCartRequest;
import com.freemud.sdk.api.assortment.shoppingcart.request.GetProductInfoRequest;
import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService;
import com.freemud.sdk.api.assortment.shoppingcart.util.CartResponseUtil;
import com.freemud.sdk.api.assortment.shoppingcart.util.DateTimeUtils;
import com.freemud.sdk.api.assortment.shoppingcart.util.PropertyConvertUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.BoundHashOperations;
......@@ -45,7 +27,6 @@ import org.springframework.data.redis.core.BoundValueOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.function.Function;
import java.util.function.Predicate;
......@@ -154,6 +135,34 @@ public class ShoppingCartBaseServiceImpl implements ShoppingCartBaseService {
}
@Override
public BaseResponse<List<CouponTypeVo>> setTypeCartCouponCode(CartParamDto cartParamDto, String trackingNo) {
try {
String redisKey = getShoppingCartTypeCouponCodeKey(cartParamDto);
redisTemplate.delete(redisKey);
BoundValueOperations<String, List<CouponTypeVo>> operations = redisTemplate.boundValueOps(redisKey);
operations.set(cartParamDto.getCouponTypeList());
return CartResponseUtil.success();
} catch (Exception e) {
ErrorLog.printErrorLog("assortment-shoppingcart-sdk", trackingNo, e.getMessage(), "setTypeCartCouponCode", cartParamDto, e, Level.ERROR);
return null;
}
}
@Override
public BaseResponse<List<CouponTypeVo>> getTypeCartCouponCode(CartParamDto cartParamDto, String trackingNo) {
try {
String redisKey = getShoppingCartTypeCouponCodeKey(cartParamDto);
BoundValueOperations<String, List<CouponTypeVo>> operations = redisTemplate.boundValueOps(redisKey);
List<CouponTypeVo> couponTypeVos = operations.get();
return CartResponseUtil.success(couponTypeVos);
} catch (Exception e) {
ErrorLog.printErrorLog("assortment-shoppingcart-sdk", trackingNo, e.getMessage(), "getTypeCartCouponCode", cartParamDto, e, Level.ERROR);
return null;
}
}
@Override
public BaseResponse<CartGoods> getCartGoods(CartParamDto cartParamDto, String trackingNo) {
try {
String redisKey = getShoppingCartGoodsKey(cartParamDto);
......@@ -341,6 +350,10 @@ public class ShoppingCartBaseServiceImpl implements ShoppingCartBaseService {
return RedisKeyConstant.SAAS_SHOPPINGCART_COUPON_KEY_PREFIX + cartParamDto.getPartnerId() + "_" + cartParamDto.getStoreId() + "_" + cartParamDto.getUserId() + "_" + cartParamDto.getCouponType();
}
private String getShoppingCartTypeCouponCodeKey(CartParamDto cartParamDto) {
return RedisKeyConstant.SAAS_SHOPPINGCART_COUPON_KEY_PREFIX_TYPE + cartParamDto.getPartnerId() + "_" + cartParamDto.getStoreId() + "_" + cartParamDto.getUserId();
}
/**
* 获取记录购物车价格的key
*
......
package cn.freemud.entities.vo;
import lombok.Data;
@Data
public class CouponTypeVo {
/**
* 券类型 1:买三赠一券
*/
private Integer type;
/**
* 券code
*/
private String code;
}
......@@ -141,4 +141,19 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
*/
private Long payCardFee;
/**
* 各类券信息
*/
private List<CouponTypeVo> couponTypeList;
/**
* 麦咖啡-买三赠一券活动号
*/
private String buyThreeGiveOneActivityCode;
/**
* 麦咖啡-买三赠一券默认券号
*/
private String buyThreeGiveOneCouponCode;
}
......@@ -100,7 +100,17 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
/**
* 各类券信息
*/
private List<CouponType> couponTypeList;
private List<CouponTypeVo> couponTypeList;
/**
* 麦咖啡-买三赠一券活动号
*/
private String buyThreeGiveOneActivityCode;
/**
* 麦咖啡-买三赠一券默认券号
*/
private String buyThreeGiveOneCouponCode;
@Data
public final static class SendGoods {
......@@ -131,18 +141,6 @@ public class ShoppingCartInfoRequestVo extends BaseRequestVo {
private String ruleId;
}
@Data
public final static class CouponType {
/**
* 券类型 1:买三赠一券
*/
private Integer type;
/**
* 券code
*/
private String code;
}
/**
* 运费券code
*/
......
......@@ -3,11 +3,10 @@ package cn.freemud.service.impl;
import ch.qos.logback.classic.Level;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CartGoods;
import cn.freemud.entities.vo.CouponTypeVo;
import cn.freemud.entities.vo.ShoppingCartGoodsBaseResponseVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.utils.LogUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.base.SDKCommonBaseContextWare;
......@@ -20,10 +19,8 @@ import com.freemud.sdk.api.assortment.shoppingcart.request.GetProductInfoRequest
import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.naming.Name;
import java.util.ArrayList;
import java.util.List;
......@@ -149,6 +146,25 @@ public class AssortmentSdkService {
}
/**
* 获取用户选择的优惠券列表
*
* @param partnerId
* @param storeId
* @param useId
* @param shoppingCartService
* @return
*/
public List<CouponTypeVo> getTypeCartCouponCode(String partnerId, String storeId, String useId, ShoppingCartBaseService shoppingCartService) {
com.freemud.sdk.api.assortment.shoppingcart.domain.CartParamDto cartParamDto = getCartParamDto(partnerId, storeId, useId);
BaseResponse<List<com.freemud.sdk.api.assortment.shoppingcart.domain.CouponTypeVo>> baseResponse = shoppingCartService.getTypeCartCouponCode(cartParamDto, LogThreadLocal.getTrackingNo());
if (baseResponse == null || !ResponseResult.SUCCESS.getCode().equals(baseResponse.getCode()) || CollectionUtils.isEmpty(baseResponse.getResult())) {
return null;
}
return JSONArray.parseArray(JSONObject.toJSONString(baseResponse.getResult()), CouponTypeVo.class);
}
/**
* 调用聚合sdk设置缓存中购物车信息
*
* @param partnerId
......@@ -190,6 +206,21 @@ public class AssortmentSdkService {
}
/**
* 保存用户选择的优惠券列表
* @param partnerId
* @param storeId
* @param useId
* @param couponTypeList
* @param shoppingCartService
* @return
*/
public void setTypeCartCouponCode(String partnerId, String storeId, String useId, List<CouponTypeVo> couponTypeList , ShoppingCartBaseService shoppingCartService) {
com.freemud.sdk.api.assortment.shoppingcart.domain.CartParamDto cartParamDto = getCartParamDto(partnerId, storeId, useId);
cartParamDto.setCouponTypeList(JSONArray.parseArray(JSONObject.toJSONString(couponTypeList), com.freemud.sdk.api.assortment.shoppingcart.domain.CouponTypeVo.class));
shoppingCartService.setTypeCartCouponCode(cartParamDto, LogThreadLocal.getTrackingNo());
}
/**
* 调用SDK校验购物车
*
* @param oldAllCartGoodsList
......
......@@ -136,10 +136,10 @@ public class MCoffeeAddGoodsRequestVo {
/**
* 买三赠一券code
*/
private String threeToOneCouponCode;
private String buyThreeGiveOneCouponCode;
/**
* 买三赠一券活动号
*/
private String threeToOneActivityCode;
private String buyThreeGiveOneActivityCode;
}
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