Commit a5c42b75 by chongfu.liang

商品券和换购券

parent 4cdabbe0
package cn.freemud.demo.entities.bo.coupon;
import cn.freemud.demo.entities.bo.promotion.CouponDetailBO;
import cn.freemud.entities.vo.CartGoods;
import lombok.Data;
import java.util.List;
@Data
public class CheckSpqBO {
......@@ -14,6 +17,26 @@ public class CheckSpqBO {
private Long productPrice;
private String couponName;
private String spuName;
/**
* 所有属性attributeId的拼接
*/
private String specProductId;
/**
* 购物车一行商品的副名称
*/
private String subName;
/**
* 商品券code
*/
private String couponCode;
/**
* 配料或属性
*/
private List<CartGoods.CartGoodsExtra> extra;
private CouponDetailBO.Details details;
}
......@@ -169,6 +169,11 @@ public class KgdCouponServiceImpl implements CouponService {
result.setSpuId(productsVo.getSpuId());
result.setProductPrice(productsVo.getFinalPrice());
result.setSpuName(productsVo.getSpuName());
result.setExtra(productsVo.getExtra());
result.setSpecProductId(productsVo.getDefaultSpecId());
result.setSubName(productsVo.getDefaultSpecName());
return result;
}
......
......@@ -24,6 +24,7 @@ import cn.freemud.demo.service.DistributeService;
import cn.freemud.demo.service.MessageService;
import cn.freemud.entities.dto.*;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import cn.freemud.entities.vo.*;
import cn.freemud.enums.*;
import cn.freemud.interceptor.BizServiceException;
......@@ -199,7 +200,10 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
baseRequestBO.setUserId(userInfo.getUserId());
// 获取商品信息
GetProductBO getProductBO = convert2ProductBO(baseRequestBO);
// 获取商品券换购券
CheckSpqBO spqBO = getSpqInfo(baseRequestBO);
GetProductBO getProductBO = convert2ProductBO(baseRequestBO, spqBO);
if (getProductBO == null){
throw new ServiceException(ResponseResult.SHOPPING_CART_COUPON_MIX_NOT_EXIST);
}
......@@ -223,17 +227,28 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
} else {
cartGoods.setGoodsType(GoodsTypeEnum.COUPON_GOODS.getGoodsType());
}
cartGoods.setOriginalPrice(spqBO.getProductPrice());
// 商品券Id
cartGoods.setExtra(spqBO.getExtra());
cartGoods.setSpecProductId(spqBO.getSpecProductId());
cartGoods.setSubName(spqBO.getSubName());
cartGoods.setName(spqBO.getCouponName());
cartGoods.setSpuName(spqBO.getSpuName());
cartGoods.setGoodsId(baseRequestBO.getSpuId());
cartGoods.setSpuId(productsInfo.getSpuId());
cartGoods.setSkuId(productsInfo.getGoodsId());
cartGoods.setSpuId(spqBO.getSpuId());
cartGoods.setSkuId(StringUtils.isEmpty(spqBO.getSkuId()) ? spqBO.getSpuId() : spqBO.getSkuId());
cartGoods.setOriginalPrice(0L);
cartGoods.setOriginalAmount(0L);
cartGoods.setAmount(0L);
cartGoods.setOriginalAmount(spqBO.getProductPrice());
cartGoods.setQty(1);
cartGoods.setAmount(spqBO.getProductPrice());
cartGoods.setCouponCode(baseRequestBO.getSpuId().substring(CommonsConstant.COUPON_PREFIX.length()));
cartGoods.setPackPrice(productsInfo.getPackPrice());
cartGoods.setPic(productsInfo.getPicture());
cartGoods.setWeight(productsInfo.getWeight());
cartGoods.setUnit(productsInfo.getUnit());
cartGoods.setSpuName(productsInfo.getName());
cartGoods.setCouponProductPrice(productsInfo.getFinalPrice());
cartGoods.setActivityCode(getProductBO.getActivityCode());
boolean stockLimit = false;
......@@ -266,19 +281,29 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
return getCouponDetailBO;
}
private GetProductBO convert2ProductBO(BaseAddGoodsBO baseRequestBO) {
GetProductBO getProductBO = new GetProductBO();
getProductBO.setStoreId(baseRequestBO.getShopId());
getProductBO.setMenuType(baseRequestBO.getMenuType());
getProductBO.setPartnerId(baseRequestBO.getPartnerId());
private CheckSpqBO getSpqInfo(BaseAddGoodsBO baseRequestBO) {
CheckSpqBO checkSpqBO = null;
if (baseRequestBO.getSpuId().startsWith(CommonsConstant.COUPON_PREFIX)) {
GetCheckSpqBo getCheckSpqBo = new GetCheckSpqBo(baseRequestBO.getPartnerId(), baseRequestBO.getSpuId().substring(CommonsConstant.COUPON_PREFIX.length()),
baseRequestBO.getShopId(), baseRequestBO.getMenuType(), baseRequestBO.getSpuId(), baseRequestBO.getSkuId(), baseRequestBO.getManagerService().getProductService());
CheckSpqBO checkSpqBO = couponService.checkSpq(getCheckSpqBo);
checkSpqBO = couponService.checkSpq(getCheckSpqBo);
if (checkSpqBO == null){
return null;
return checkSpqBO;
}
if (checkSpqBO.getDetails() != null){
checkSpqBO.setCouponName(checkSpqBO.getDetails().getTitle());
}
}
return checkSpqBO;
}
private GetProductBO convert2ProductBO(BaseAddGoodsBO baseRequestBO, CheckSpqBO checkSpqBO) {
GetProductBO getProductBO = new GetProductBO();
getProductBO.setStoreId(baseRequestBO.getShopId());
getProductBO.setMenuType(baseRequestBO.getMenuType());
getProductBO.setPartnerId(baseRequestBO.getPartnerId());
if (checkSpqBO != null) {
getProductBO.setGoodsId(Collections.singletonList(checkSpqBO.getSkuId()));
getProductBO.setCouponType(checkSpqBO.getType());
getProductBO.setActivityCode(checkSpqBO.getDetails().getActive().getActiveCode());
......@@ -286,7 +311,6 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
String goodsId = StringUtils.isEmpty(baseRequestBO.getSkuId()) ? baseRequestBO.getSpuId() : baseRequestBO.getSkuId();
getProductBO.setGoodsId(Collections.singletonList(goodsId));
}
return getProductBO;
}
......
......@@ -8,6 +8,7 @@ import cn.freemud.demo.manager.product.ProductManager;
import cn.freemud.demo.manager.promotion.PromotionManager;
import cn.freemud.demo.service.DistributeService;
import cn.freemud.entities.dto.activity.ActivityQueryDto;
import cn.freemud.entities.dto.calculate.CalculationSharingDiscountResponseDto;
import cn.freemud.entities.vo.CartGoods;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.CalculationGoodsType;
......
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