Commit 80ebb769 by 胡敬轩

结算页加价购列表迁移至购物车

parent ee5be573
...@@ -15,6 +15,7 @@ package cn.freemud.adapter; ...@@ -15,6 +15,7 @@ package cn.freemud.adapter;
import cn.freemud.base.constant.Version; import cn.freemud.base.constant.Version;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
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.order.CreateOrderDto; import cn.freemud.entities.dto.order.CreateOrderDto;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.PremiumExchangeResponseVo; import cn.freemud.entities.vo.PremiumExchangeResponseVo;
...@@ -102,26 +103,55 @@ public class ActivityAdapter { ...@@ -102,26 +103,55 @@ public class ActivityAdapter {
return result; return result;
} }
public PremiumExchangeResponseVo convert2PremiumExchange(ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity) { public PremiumExchangeResponseVo convert2PremiumExchange(ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult) {
if (sendActivity == null) { // 返回构造对象
return null;
}
PremiumExchangeResponseVo premiumExchangeResponseVo = new PremiumExchangeResponseVo(); PremiumExchangeResponseVo premiumExchangeResponseVo = new PremiumExchangeResponseVo();
premiumExchangeResponseVo.setResultCode(ActivityResultCodeEnum.PARTICIPATE.getCode()); // 组装验证商品对象
premiumExchangeResponseVo.setActivityCode(sendActivity.getActivityCode());
premiumExchangeResponseVo.setActivityName(sendActivity.getActivityName());
premiumExchangeResponseVo.setMaxNum(sendActivity.getMaxNum());
List<PremiumExchangeResponseVo.PremiumExchangeProduct> products = new ArrayList<>(); List<PremiumExchangeResponseVo.PremiumExchangeProduct> products = new ArrayList<>();
sendActivity.getSendGoods().forEach(sendGoods -> { premiumExchangeResponseVo.setResultCode(ActivityResultCodeEnum.NON_PARTICIPATE.getCode());
PremiumExchangeResponseVo.PremiumExchangeProduct product = new PremiumExchangeResponseVo.PremiumExchangeProduct(); if (calculationDiscountResult == null) {
product.setSpuId(sendGoods.getCategory()); return premiumExchangeResponseVo;
product.setSkuId(sendGoods.getGoodsId()); }
product.setSkuName(sendGoods.getGoodsName()); // 只取最新活动
product.setOriginalPrice(sendGoods.getOriginalPrice()); if (calculationDiscountResult != null && CollectionUtils.isNotEmpty(calculationDiscountResult.getSendGoods())) {
product.setNowPrice(sendGoods.getNowPrice()); if (CollectionUtils.isNotEmpty(calculationDiscountResult.getDiscounts())) {
product.setNumber(sendGoods.getSendNumber()); List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discountList = calculationDiscountResult.getDiscounts();
products.add(product); for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discount : discountList) {
}); if (Objects.equals(discount.getType(), ActivityTypeEnum.TYPE_81.getCode())) {
Integer showType = discount.getIntegral() == null ? 0 : discount.getIntegral();
premiumExchangeResponseVo.setShowType(showType);
}
}
}
for (ActivityCalculationDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity : calculationDiscountResult.getSendGoods()) {
if (Objects.equals(sendActivity.getActivityType(), ActivityTypeEnum.TYPE_81.getCode())) {
// 判断加价购活动商品不存在直接跳出循环
if (CollectionUtils.isEmpty(sendActivity.getSendGoods())) {
break;
}
premiumExchangeResponseVo.setResultCode(ActivityResultCodeEnum.PARTICIPATE.getCode());
premiumExchangeResponseVo.setActivityCode(sendActivity.getActivityCode());
premiumExchangeResponseVo.setActivityName(sendActivity.getActivityName());
premiumExchangeResponseVo.setMaxNum(sendActivity.getMaxNum());
sendActivity.getSendGoods().forEach(sendGoods -> {
PremiumExchangeResponseVo.PremiumExchangeProduct product = new PremiumExchangeResponseVo.PremiumExchangeProduct();
product.setSpuId(sendGoods.getCategory());
product.setSkuId(sendGoods.getGoodsId());
product.setSkuName(sendGoods.getGoodsName());
product.setOriginalPrice(sendGoods.getOriginalPrice());
product.setNowPrice(sendGoods.getNowPrice());
product.setNumber(sendGoods.getSendNumber());
products.add(product);
});
break;
}
}
}
if(CollectionUtils.isEmpty(products)){
premiumExchangeResponseVo.setResultCode(ActivityResultCodeEnum.NO_ACTIVITY.getCode());
premiumExchangeResponseVo.setResultMsg(ActivityResultCodeEnum.NO_ACTIVITY.getDesc());
return premiumExchangeResponseVo;
}
premiumExchangeResponseVo.setProducts(products); premiumExchangeResponseVo.setProducts(products);
return premiumExchangeResponseVo; return premiumExchangeResponseVo;
} }
...@@ -251,5 +281,56 @@ public class ActivityAdapter { ...@@ -251,5 +281,56 @@ public class ActivityAdapter {
.orderType(orderType) .orderType(orderType)
.build(); .build();
} }
public PremiumExchangeResponseVo convert2PremiumExchangeSharing(CalculationSharingDiscountResponseDto.CalculationDiscountResult discountResult) {
// 返回构造对象
PremiumExchangeResponseVo premiumExchangeResponseVo = new PremiumExchangeResponseVo();
// 组装验证商品对象
List<PremiumExchangeResponseVo.PremiumExchangeProduct> products = new ArrayList<>();
premiumExchangeResponseVo.setResultCode(ActivityResultCodeEnum.NON_PARTICIPATE.getCode());
if (discountResult == null) {
return premiumExchangeResponseVo;
}
// 只取最新活动
if (discountResult != null && CollectionUtils.isNotEmpty(discountResult.getSendGoods())) {
if (CollectionUtils.isNotEmpty(discountResult.getDiscounts())) {
List<CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount> discountList = discountResult.getDiscounts();
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.Discount discount : discountList) {
if (Objects.equals(discount.getType(), ActivityTypeEnum.TYPE_81.getCode())) {
Integer showType = discount.getIntegral() == null ? 0 : discount.getIntegral();
premiumExchangeResponseVo.setShowType(showType);
}
}
}
for (CalculationSharingDiscountResponseDto.CalculationDiscountResult.SendActivity sendActivity : discountResult.getSendGoods()) {
if (Objects.equals(sendActivity.getActivityType(), ActivityTypeEnum.TYPE_81.getCode())) {
// 判断加价购活动商品不存在直接跳出循环
if (CollectionUtils.isEmpty(sendActivity.getSendGoods())) {
break;
}
premiumExchangeResponseVo.setResultCode(ActivityResultCodeEnum.PARTICIPATE.getCode());
premiumExchangeResponseVo.setActivityCode(sendActivity.getActivityCode());
premiumExchangeResponseVo.setActivityName(sendActivity.getActivityName());
premiumExchangeResponseVo.setMaxNum(sendActivity.getMaxNum());
sendActivity.getSendGoods().forEach(sendGoods -> {
PremiumExchangeResponseVo.PremiumExchangeProduct product = new PremiumExchangeResponseVo.PremiumExchangeProduct();
product.setSpuId(sendGoods.getCategory());
product.setSkuId(sendGoods.getGoodsId());
product.setSkuName(sendGoods.getGoodsName());
product.setOriginalPrice(sendGoods.getOriginalPrice());
product.setNowPrice(sendGoods.getNowPrice());
product.setNumber(sendGoods.getSendNumber());
products.add(product);
});
break;
}
}
}
if(CollectionUtils.isEmpty(products)){
premiumExchangeResponseVo.setResultCode(ActivityResultCodeEnum.NO_ACTIVITY.getCode());
premiumExchangeResponseVo.setResultMsg(ActivityResultCodeEnum.NO_ACTIVITY.getDesc());
return premiumExchangeResponseVo;
}
premiumExchangeResponseVo.setProducts(products);
return premiumExchangeResponseVo;
}
} }
...@@ -200,4 +200,12 @@ public class ShoppingCartController { ...@@ -200,4 +200,12 @@ public class ShoppingCartController {
return openStoreIappWxappConfigService.getOpenStoreIappWxappConfig(request); return openStoreIappWxappConfigService.getOpenStoreIappWxappConfig(request);
} }
/**
* 结算页获取加价购活动商品列表
*/
@PostMapping(value = "/premiumExchange")
@LogIgnore(excludeStatusCodes = {ResponseCodeConstant.RESPONSE_SUCCESS_STR},logMessage = "/premiumExchange")
public BaseResponse premiumExchange(@LogParams @RequestBody PremiumExchangeRequestVo request) {
return SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).premiumExchange(request);
}
} }
...@@ -201,6 +201,7 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -201,6 +201,7 @@ public class ActivityCalculationDiscountResponseDto {
* 购物车商品行uid * 购物车商品行uid
*/ */
private String cartGoodsUid; private String cartGoodsUid;
private Integer integral;
} }
@Data @Data
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: GetProductInfoDto
* @Package cn.freemud.entities.dto
* @Description:
* @author: liming.guo
* @date: 2018/5/16 19:52
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.entities.dto;
import lombok.Data;
import java.util.List;
@Data
public class GetValidateProductInfoDto {
/**
* 商户ID
*/
private String partnerId;
/**
* 门店ID
*/
private String storeId;
/**
* 根据spu或者sku查询所有商品信息
*/
private List<String> productIds;
/**
* 查询指定spu下面的制定sku信息
*/
private List<ProductInfo> productInfoList;
/**
* 门店商品渠道 saas(开个店自提)、saasdelivery(开个店外卖)、saasmall(微商城)、wc(围餐)、mtwm(美团外卖)、jdwm(京东外卖)、fmwd(非码微店)、eleme(饿了么外卖)、ebwm(饿百外卖)
*/
private String channel;
@Data
public static class ProductInfo {
/**
* 商品spu
*/
private String spuId;
/**
* 商品sku
*/
private List<String> skuIds;
}
}
...@@ -171,6 +171,7 @@ public class CalculationSharingDiscountResponseDto { ...@@ -171,6 +171,7 @@ public class CalculationSharingDiscountResponseDto {
private Long thresholdAmount; private Long thresholdAmount;
private SendPointDto sendPointVo; private SendPointDto sendPointVo;
private Date endTime; private Date endTime;
private Integer integral;
} }
@Data @Data
......
package cn.freemud.entities.vo; package cn.freemud.entities.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty; import org.hibernate.validator.constraints.NotEmpty;
...@@ -8,27 +9,41 @@ import javax.validation.constraints.NotNull; ...@@ -8,27 +9,41 @@ import javax.validation.constraints.NotNull;
@Data @Data
public class PremiumExchangeRequestVo { public class PremiumExchangeRequestVo {
@ApiModelProperty(value="版本号", name="version", example="1", required = false)
private String version; private String version;
@NotEmpty(message = "partnerId不能为空") @NotEmpty(message = "partnerId不能为空")
@ApiModelProperty(value="商户号", name="partnerId", example="1864", required = true)
private String partnerId; private String partnerId;
@NotEmpty(message = "shopId不能为空") @NotEmpty(message = "shopId不能为空")
@ApiModelProperty(value="门店ID", name="shopId", example="007", required = true)
private String shopId; private String shopId;
@NotEmpty(message = "用户会话sessionId不能为空") @NotEmpty(message = "用户会话sessionId不能为空")
@ApiModelProperty(value="sessionId", name="sessionId", example="1234", required = true)
private String sessionId; private String sessionId;
/** /**
* 订单类型 1 到店自取 2 外卖 枚举CreateOrderType * 订单类型 1 到店自取 2 外卖 枚举CreateOrderType
*/ */
@NotNull(message = "orderType 不能为空") @NotNull(message = "orderType 不能为空")
@ApiModelProperty(value="订单类型 1到店自取 2外卖", name="orderType", example="1", required = true)
private Integer orderType; private Integer orderType;
@ApiModelProperty(value="券code", name="couponCode", example="258655672617402368", required = false)
private String couponCode; private String couponCode;
/** /**
* 优惠券的活动code * 优惠券的活动code
*/ */
@ApiModelProperty(value="优惠券的活动code", name="activityCode", example="258655672617402368", required = false)
private String activityCode; private String activityCode;
/**
* 菜单类型 saas(开个店自提)、saasdelivery(开个店外卖)
*/
@ApiModelProperty(value="菜单类型 saas(开个店自提)、saasdelivery(开个店外卖)", name="menuType", example="saas", required = false)
@NotNull(message = "menuType 不能为空")
private String menuType;
} }
...@@ -16,6 +16,11 @@ public enum ActivityResultCodeEnum { ...@@ -16,6 +16,11 @@ public enum ActivityResultCodeEnum {
//0:不参加 1:参加 //0:不参加 1:参加
NON_PARTICIPATE(0, "不需要参加活动"), NON_PARTICIPATE(0, "不需要参加活动"),
PARTICIPATE(1, "参加活动"), PARTICIPATE(1, "参加活动"),
GOODFILTER(2, "商品状态已变化"),
GOOD_NOT_IN_MUNU(3, "商品不在菜单"),
GOOD_NOT_AVAILABLE(4, "商品在门店下不可售"),
NO_ACTIVITY(5, "没有可用活动"),
STOCK_LIMIT(6, "商品库存不足"),
; ;
private Integer code; private Integer code;
......
package cn.freemud.enums;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: productType
* @Package cn.freemud.enums
* @Description: 这个类是给C端小程序的枚举类,最终版本
* @author: zhenghuan.yang
* @date: 2018/10/23 17:50
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public enum CProductType {
PRODUCT_TYPE_1(1,"单品无属性"),
PRODUCT_TYPE_2(2,"单品有属性"),
PRODUCT_TYPE_7(7,"套餐商品"),
PRODUCT_TYPE_8(8,"多规格有属性"),
PRODUCT_TYPE_10(10,"多规格无属性");
private int code;
private String desc;
CProductType(int code, String desc) {
this.code = code;
this.desc = desc;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
...@@ -308,4 +308,12 @@ public interface ShoppingCartNewService { ...@@ -308,4 +308,12 @@ public interface ShoppingCartNewService {
} }
} }
/**
* 结算页获取加价购活动商品列表
* @param request
* @return
*/
default BaseResponse<PremiumExchangeResponseVo> premiumExchange(PremiumExchangeRequestVo request){
return null;
};
} }
...@@ -65,5 +65,9 @@ public interface StoreItemClient { ...@@ -65,5 +65,9 @@ public interface StoreItemClient {
@PostMapping("Shop/ValidateShopProduct") @PostMapping("Shop/ValidateShopProduct")
ProductResponseDTO<ValiadShopProductResponse> validateShopProduct(@RequestBody ValidateShopProductRequest request); ProductResponseDTO<ValiadShopProductResponse> validateShopProduct(@RequestBody ValidateShopProductRequest request);
/**
* 校验商品在当前门店是否可售
*/
@PostMapping("/Shop/validateShopContainProduct")
ValidateProductInfosDto validateShopContainProduct(@RequestBody GetValidateProductInfoDto getProductInfoDto);
} }
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