Commit cb46b96e by shuhu.hou@freemud.cn

Merge branch 'master' into feature/20200325_oms接单

# Conflicts:
#	.gitignore
#	assortment-ordercenter-sdk/pom.xml
#	order-application-service/pom.xml
parents b8bfc9fe 98a38a33
...@@ -18,5 +18,5 @@ push-order-service/push-order-service.iml ...@@ -18,5 +18,5 @@ push-order-service/push-order-service.iml
push-order-service/target/ push-order-service/target/
shopping-cart-application-service/shopping-cart-application-service.iml shopping-cart-application-service/shopping-cart-application-service.iml
shopping-cart-application-service/target/ shopping-cart-application-service/target/
order-management/order-application-service.iml order-management/order-management.iml
order-management/target/ order-management/target/
...@@ -18,4 +18,7 @@ ...@@ -18,4 +18,7 @@
| 1.1.7-SNAPSHOT| 预约单支付成功接口增加预约任务 | wuping | 2020-03-10 | | 1.1.7-SNAPSHOT| 预约单支付成功接口增加预约任务 | wuping | 2020-03-10 |
| 1.1.8-SNAPSHOT| 预约单接单接口增加预约任务 | wuping | 2020-03-17 | | 1.1.8-SNAPSHOT| 预约单接单接口增加预约任务 | wuping | 2020-03-17 |
| 1.2.3.RELEASE | 预约单升级RELEASE | wuping | 2020-03-18 | | 1.2.3.RELEASE | 预约单升级RELEASE | wuping | 2020-03-18 |
| 1.2.4.RELEASE | 紧急需求 增加骑手电话 | 海波 | 2020-03-19 | | 1.2.4.RELEASE | 紧急需求 增加骑手电话 | 海波 | 2020-03-19 |
\ No newline at end of file | 1.2.5.RELEASE | 满额减配送费 | dingkai | 2020-03-26 |
| 1.2.5.RELEASE | 满额减配送费 | 海波 | 2020-03-26 |
| 1.2.7.RELEASE | 判断优化 | 丁凯 | 2020-04-03 |
\ No newline at end of file
...@@ -490,7 +490,11 @@ public class OrderSdkAdapter { ...@@ -490,7 +490,11 @@ public class OrderSdkAdapter {
CreateOrderResponse response = new CreateOrderResponse(); CreateOrderResponse response = new CreateOrderResponse();
response.setErrcode(Integer.parseInt(result.getCode())); response.setErrcode(Integer.parseInt(result.getCode()));
response.setErrmsg(result.getMessage()); response.setErrmsg(result.getMessage());
if (result.getResult().equals(new OrderInfoReqs())) { /**
* 为什么做这样的判断result.getResult().equals(new OrderInfoReqs())?
* 我猜是因为基础服务异常返回的时候以前result返回了{}对象
*/
if (result.getResult() == null || result.getResult().equals(new OrderInfoReqs())) {
return response; return response;
} }
...@@ -1062,6 +1066,9 @@ public class OrderSdkAdapter { ...@@ -1062,6 +1066,9 @@ public class OrderSdkAdapter {
case "OFFLINE_PAY": case "OFFLINE_PAY":
type=219; type=219;
break; break;
case "FULL_DISTRIBUTION_FEE":
type=1014;
break;
default: default:
break; break;
} }
...@@ -2737,6 +2744,9 @@ public class OrderSdkAdapter { ...@@ -2737,6 +2744,9 @@ public class OrderSdkAdapter {
case 208: case 208:
name = OrderSettlementType.DISCOUNT_COUPON.getName(); name = OrderSettlementType.DISCOUNT_COUPON.getName();
break; break;
case 1014:
name = OrderSettlementType.FULL_DISTRIBUTION_FEE.getName();
break;
default: default:
break; break;
} }
......
...@@ -34,6 +34,7 @@ public enum OldOrderAccountType { ...@@ -34,6 +34,7 @@ public enum OldOrderAccountType {
SET_MEAL(211, "套餐商品优惠", "SET_MEAL"), SET_MEAL(211, "套餐商品优惠", "SET_MEAL"),
CARD_DISCOUNT_AMOUNT(26, "会员卡优惠金额", "CARD_DISCOUNT_AMOUNT"), CARD_DISCOUNT_AMOUNT(26, "会员卡优惠金额", "CARD_DISCOUNT_AMOUNT"),
XY_DISCOUNT(104, "x件y折", "XY_DISCOUNT"), XY_DISCOUNT(104, "x件y折", "XY_DISCOUNT"),
FULL_DISTRIBUTION_FEE(1014, "满减配送费", "FULL_DISTRIBUTION_FEE"),
TOTAL_DISCOUNT(205, "优惠总金额", "TOTAL_DISCOUNT"); TOTAL_DISCOUNT(205, "优惠总金额", "TOTAL_DISCOUNT");
private Integer code; private Integer code;
......
...@@ -35,6 +35,7 @@ public enum QueryOrderAccountType { ...@@ -35,6 +35,7 @@ public enum QueryOrderAccountType {
XY_DISCOUNT("XY_DISCOUNT", "x件y折"), XY_DISCOUNT("XY_DISCOUNT", "x件y折"),
TOTAL_DISCOUNT("TOTAL_DISCOUNT", "优惠总金额"), TOTAL_DISCOUNT("TOTAL_DISCOUNT", "优惠总金额"),
ONLINE_PAY("ONLINE_PAY", "线上支付"), ONLINE_PAY("ONLINE_PAY", "线上支付"),
FULL_DISTRIBUTION_FEE("FULL_DISTRIBUTION_FEE", "满减配送费"),
OFFLINE_PAY("OFFLINE_PAY", "线下支付"); OFFLINE_PAY("OFFLINE_PAY", "线下支付");
private String code; private String code;
......
...@@ -6,6 +6,7 @@ import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq; ...@@ -6,6 +6,7 @@ import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest; import com.freemud.application.sdk.api.promotioncenter.request.promotion.ActivityUpdateStockRequest;
import com.freemud.sdk.api.assortment.order.config.BaseConfig; import com.freemud.sdk.api.assortment.order.config.BaseConfig;
import com.freemud.sdk.api.assortment.order.enums.*; import com.freemud.sdk.api.assortment.order.enums.*;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
...@@ -199,5 +200,4 @@ public class BaseCreateOrderRequest extends BaseConfig { ...@@ -199,5 +200,4 @@ public class BaseCreateOrderRequest extends BaseConfig {
private String ruleId; private String ruleId;
} }
} }
...@@ -5,6 +5,7 @@ import com.freemud.application.sdk.api.promotioncenter.request.promotion.Activit ...@@ -5,6 +5,7 @@ import com.freemud.application.sdk.api.promotioncenter.request.promotion.Activit
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq; import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.sdk.api.assortment.order.config.BaseConfig; import com.freemud.sdk.api.assortment.order.config.BaseConfig;
import com.freemud.sdk.api.assortment.order.enums.*; import com.freemud.sdk.api.assortment.order.enums.*;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import java.util.Date; import java.util.Date;
...@@ -160,5 +161,6 @@ public class CreateFatherSonOrderRequest extends BaseConfig { ...@@ -160,5 +161,6 @@ public class CreateFatherSonOrderRequest extends BaseConfig {
//预订单任务 //预订单任务
private OrderTaskReq orderTask; private OrderTaskReq orderTask;
} }
} }
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>productcenter-sdk</artifactId> <artifactId>productcenter-sdk</artifactId>
<version>2.7.7.RELEASE</version> <version>2.8.0-SNAPSHOT</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
......
...@@ -59,7 +59,9 @@ public class ShoppingCartAdapter { ...@@ -59,7 +59,9 @@ public class ShoppingCartAdapter {
ValidateShopProductType productType = new ValidateShopProductType(); ValidateShopProductType productType = new ValidateShopProductType();
productType.setSpuId(cartGoods.getSpuId()); productType.setSpuId(cartGoods.getSpuId());
productType.setSkuId(ObjectUtils.equals(GoodsTypeEnum.SKU_GOODS.getGoodsType(), cartGoods.getGoodsType()) ? cartGoods.getSkuId() : cartGoods.getSpuId()); productType.setSkuId(ObjectUtils.equals(GoodsTypeEnum.SKU_GOODS.getGoodsType(), cartGoods.getGoodsType()) ? cartGoods.getSkuId() : cartGoods.getSpuId());
productType.setPrice(cartGoods.getOriginalPrice() == null ? 0 : cartGoods.getOriginalPrice().intValue()); // 应产品要求
// 普通商品,取商品的finalePrice(普通商品售价);套餐商品,取originalPrice(套餐价格)
productType.setPrice(cartGoods.getFinalPrice() == null ? 0 : cartGoods.getFinalPrice().intValue());
productType.setValidatePrice(productType.getPrice() == 0 ? 0 : 1); productType.setValidatePrice(productType.getPrice() == 0 ? 0 : 1);
productType.setValidateAttribute(1); productType.setValidateAttribute(1);
productType.setValidateStatuses(Arrays.asList(2)); productType.setValidateStatuses(Arrays.asList(2));
...@@ -97,6 +99,7 @@ public class ShoppingCartAdapter { ...@@ -97,6 +99,7 @@ public class ShoppingCartAdapter {
validateSkuProductType.setMarkUpPrice(comboxGoods.getFinalPrice() == null ? 0 : comboxGoods.getFinalPrice().intValue()); validateSkuProductType.setMarkUpPrice(comboxGoods.getFinalPrice() == null ? 0 : comboxGoods.getFinalPrice().intValue());
validateSkuProductType.setQty(comboxGoods.getQty()); validateSkuProductType.setQty(comboxGoods.getQty());
validateSkuProductType.setAttributeList(getAttributes(comboxGoods.getExtra())); validateSkuProductType.setAttributeList(getAttributes(comboxGoods.getExtra()));
validateSkuProductType.setProductGroupId(comboxGoods.getProductGroupId());
result.add(validateSkuProductType); result.add(validateSkuProductType);
} }
} }
......
...@@ -234,6 +234,10 @@ public class CartGoods { ...@@ -234,6 +234,10 @@ public class CartGoods {
*/ */
private String unit; private String unit;
/** /**
* 商品组Id
*/
private Long productGroupId;
/**
* 配料或属性 * 配料或属性
*/ */
private List<CartGoodsExtra> extra; private List<CartGoodsExtra> extra;
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>sdk-common-base</artifactId> <artifactId>sdk-common-base</artifactId>
<version>1.3.9-SNAPSHOT</version> <version>1.4.1.RELEASE</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -100,21 +100,18 @@ ...@@ -100,21 +100,18 @@
</dependency> </dependency>
<!-- promtheus --> <!-- promtheus -->
<dependency> <dependency>
<groupId>io.prometheus</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>simpleclient_spring_boot</artifactId> <artifactId>spring-boot-starter-actuator</artifactId>
<version>0.8.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.micrometer</groupId> <groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId> <artifactId>micrometer-spring-legacy</artifactId>
<version>0.12.0.RELEASE</version> <version>1.1.2</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.micrometer</groupId> <groupId>io.micrometer</groupId>
<artifactId>micrometer-spring-legacy</artifactId> <artifactId>micrometer-registry-prometheus</artifactId>
<version>0.8.0.RELEASE</version> <version>1.1.2</version>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -14,8 +14,6 @@ package cn.freemud; ...@@ -14,8 +14,6 @@ package cn.freemud;
import cn.freemud.utils.LogTreadLocal; import cn.freemud.utils.LogTreadLocal;
import feign.RequestInterceptor; import feign.RequestInterceptor;
import io.prometheus.client.spring.boot.EnablePrometheusEndpoint;
import io.prometheus.client.spring.boot.EnableSpringBootMetricsCollector;
import org.jasypt.encryption.StringEncryptor; import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
...@@ -45,8 +43,6 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy; ...@@ -45,8 +43,6 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy;
@EnableAspectJAutoProxy @EnableAspectJAutoProxy
@ComponentScan({"cn.freemud","com.freemud"}) @ComponentScan({"cn.freemud","com.freemud"})
@EnableFeignClients @EnableFeignClients
@EnablePrometheusEndpoint
@EnableSpringBootMetricsCollector
@EnableAutoConfiguration @EnableAutoConfiguration
public class ApiApplication { public class ApiApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -8,4 +8,4 @@ apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080 ...@@ -8,4 +8,4 @@ apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080
env=pro env=pro
apollo.bootstrap.enabled=true apollo.bootstrap.enabled=true
apollo.cluster=pre-release apollo.cluster=pre-release
apollo.bootstrap.namespaces=micro_progeram_commons,i_callback_service apollo.bootstrap.namespaces=i_callback_service,micro_progeram_commons
\ No newline at end of file \ No newline at end of file
...@@ -15,8 +15,6 @@ package cn.freemud; ...@@ -15,8 +15,6 @@ package cn.freemud;
import cn.freemud.core.db.DataSourcesConfig; import cn.freemud.core.db.DataSourcesConfig;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import feign.RequestInterceptor; import feign.RequestInterceptor;
import io.prometheus.client.spring.boot.EnablePrometheusEndpoint;
import io.prometheus.client.spring.boot.EnableSpringBootMetricsCollector;
import org.jasypt.encryption.StringEncryptor; import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
...@@ -45,8 +43,6 @@ import tk.mybatis.spring.annotation.MapperScan; ...@@ -45,8 +43,6 @@ import tk.mybatis.spring.annotation.MapperScan;
@MapperScan({"cn.freemud.*.dao","com.freemud.sdk.api.assortment.orderdistributor.mapper","com.freemud.api.assortment.datamanager.manager", @MapperScan({"cn.freemud.*.dao","com.freemud.sdk.api.assortment.orderdistributor.mapper","com.freemud.api.assortment.datamanager.manager",
"com.freemud.api.assortment.datamanager.queue.dao","com.freemud.api.assortment.datamanager.rbac.dao","com.freemud.api.assortment.datamanager.queue.entity"}) "com.freemud.api.assortment.datamanager.queue.dao","com.freemud.api.assortment.datamanager.rbac.dao","com.freemud.api.assortment.datamanager.queue.entity"})
@EnableFeignClients({"cn.freemud.service.thirdparty","com.freemud.sdk.api.assortment.message"}) @EnableFeignClients({"cn.freemud.service.thirdparty","com.freemud.sdk.api.assortment.message"})
@EnablePrometheusEndpoint
@EnableSpringBootMetricsCollector
@EnableAutoConfiguration @EnableAutoConfiguration
public class OrderApplication { public class OrderApplication {
public static void main(String[] args) { public static void main(String[] args) {
......
...@@ -131,17 +131,23 @@ public class OrderAdapter { ...@@ -131,17 +131,23 @@ public class OrderAdapter {
if(orderTask != null){ if(orderTask != null){
createOrderDto.setOrderTask(orderTask); createOrderDto.setOrderTask(orderTask);
} }
ArrayList<CreateOrderAccountRequest> orderAccountDtos = new ArrayList<>();
long deliveryAmount = 0; long deliveryAmount = 0;
long discountDeliveryAmount = 0;
if (deliveryInfoDto != null) { if (deliveryInfoDto != null) {
deliveryAmount = getUserRealDeliveryAmount(deliveryInfoDto.getStoreDeliveryInfoDto(), deliveryInfoDto.getUserLongitude(), deliveryInfoDto.getUserLatitude()); deliveryAmount = shoppingCartGoodsDto.getDeliveryAmount();
discountDeliveryAmount = shoppingCartGoodsDto.getDeliveryAmount();
if(shoppingCartGoodsDto.getIsDiscountDelivery() && deliveryAmount>shoppingCartGoodsDto.getDiscountDeliveryAmount()){
discountDeliveryAmount = shoppingCartGoodsDto.getDiscountDeliveryAmount();
}
} }
Long packageAmount = shoppingCartGoodsDto.getPackageAmount() == null ? 0L : shoppingCartGoodsDto.getPackageAmount(); Long packageAmount = shoppingCartGoodsDto.getPackageAmount() == null ? 0L : shoppingCartGoodsDto.getPackageAmount();
createOrderDto.setAmount(shoppingCartGoodsDto.getTotalAmount() + deliveryAmount + packageAmount); createOrderDto.setAmount(shoppingCartGoodsDto.getTotalAmount() + discountDeliveryAmount + packageAmount);
// 解析购物车信息 // 解析购物车信息
List<ShoppingCartGoodsDto.CartGoodsDetailDto> cartGoodsDetailDtos = shoppingCartGoodsDto.getProducts(); List<ShoppingCartGoodsDto.CartGoodsDetailDto> cartGoodsDetailDtos = shoppingCartGoodsDto.getProducts();
List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos(); List<ActivityDiscountsDto> activityDiscountsDtos = shoppingCartGoodsDto.getActivityDiscountsDtos();
List<CreateOrderProductRequest> products = new ArrayList<>(); List<CreateOrderProductRequest> products = new ArrayList<>();
ArrayList<CreateOrderAccountRequest> orderAccountDtos = new ArrayList<>();
// 根据购物车商品信息获取优惠信息 // 根据购物车商品信息获取优惠信息
int orderAccountIndex = 0; int orderAccountIndex = 0;
for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto : cartGoodsDetailDtos) { for (ShoppingCartGoodsDto.CartGoodsDetailDto cartGoodsDetailDto : cartGoodsDetailDtos) {
...@@ -587,13 +593,20 @@ public class OrderAdapter { ...@@ -587,13 +593,20 @@ public class OrderAdapter {
// takeMealTime = takeMealTime.append(DateUtil.convert2String(new Date(), "yyyy-MM-dd")) // takeMealTime = takeMealTime.append(DateUtil.convert2String(new Date(), "yyyy-MM-dd"))
// .append(" ").append(createOrderVo.getTakeMealTime()).append(":00"); // .append(" ").append(createOrderVo.getTakeMealTime()).append(":00");
// } // }
ArrayList<CreateOrderAccountRequest> orderAccountDtos = new ArrayList<>();
long deliveryAmount = 0; long deliveryAmount = 0;
long discountDeliveryAmount = 0;
if (userDeliveryInfoDto != null) { if (userDeliveryInfoDto != null) {
deliveryAmount = getUserRealDeliveryAmount(userDeliveryInfoDto.getStoreDeliveryInfoDto(), userDeliveryInfoDto.getUserLongitude(), userDeliveryInfoDto.getUserLatitude()); deliveryAmount = shoppingCartGoodsDto.getDeliveryAmount();
discountDeliveryAmount = shoppingCartGoodsDto.getDeliveryAmount();
if(shoppingCartGoodsDto.getIsDiscountDelivery() && deliveryAmount>shoppingCartGoodsDto.getDiscountDeliveryAmount()){
discountDeliveryAmount = shoppingCartGoodsDto.getDiscountDeliveryAmount();
}
} }
Long cardDiscountAmount = shoppingCartGoodsDto.getCardDiscountAmount() != null ? shoppingCartGoodsDto.getCardDiscountAmount() : 0L; Long cardDiscountAmount = shoppingCartGoodsDto.getCardDiscountAmount() != null ? shoppingCartGoodsDto.getCardDiscountAmount() : 0L;
Long packageAmount = shoppingCartGoodsDto.getPackageAmount() == null ? 0L : shoppingCartGoodsDto.getPackageAmount(); Long packageAmount = shoppingCartGoodsDto.getPackageAmount() == null ? 0L : shoppingCartGoodsDto.getPackageAmount();
productOrderInfo.setAmount(shoppingCartGoodsDto.getTotalAmount() + deliveryAmount + packageAmount productOrderInfo.setAmount(shoppingCartGoodsDto.getTotalAmount() + discountDeliveryAmount + packageAmount
- shoppingCartGoodsDto.getCardOriginalAmount() + cardDiscountAmount); - shoppingCartGoodsDto.getCardOriginalAmount() + cardDiscountAmount);
// 解析购物车信息 // 解析购物车信息
List<ShoppingCartGoodsDto.CartGoodsDetailDto> cartGoodsDetailDtos = shoppingCartGoodsDto.getProducts(); List<ShoppingCartGoodsDto.CartGoodsDetailDto> cartGoodsDetailDtos = shoppingCartGoodsDto.getProducts();
...@@ -614,7 +627,7 @@ public class OrderAdapter { ...@@ -614,7 +627,7 @@ public class OrderAdapter {
productOrderInfo.setProducts(products); productOrderInfo.setProducts(products);
int orderAccountIndex = 0; int orderAccountIndex = 0;
ArrayList<CreateOrderAccountRequest> orderAccountDtos = new ArrayList<>();
for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) { for (ActivityDiscountsDto activityDiscountsDto : activityDiscountsDtos) {
CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder() CreateOrderAccountRequest createOrderAccountDto = CreateOrderAccountRequest.builder()
.accountId(activityDiscountsDto.getActivityCode()) .accountId(activityDiscountsDto.getActivityCode())
...@@ -1967,6 +1980,9 @@ public class OrderAdapter { ...@@ -1967,6 +1980,9 @@ public class OrderAdapter {
if (ActivityTypeEnum.TYPE_104.getCode().equals(activityType)) { if (ActivityTypeEnum.TYPE_104.getCode().equals(activityType)) {
return OldOrderAccountType.XY_DISCOUNT; return OldOrderAccountType.XY_DISCOUNT;
} }
if (ActivityTypeEnum.TYPE_14.getCode().equals(activityType)) {
return OldOrderAccountType.FULL_DISTRIBUTION_FEE;
}
return OldOrderAccountType.BUYM_SENDN; return OldOrderAccountType.BUYM_SENDN;
} }
......
...@@ -13,6 +13,16 @@ public class AgentController { ...@@ -13,6 +13,16 @@ public class AgentController {
public String reportDefault() { public String reportDefault() {
return HealthUtil.healthCheck(); return HealthUtil.healthCheck();
} }
/**
* 提供给健康检查使用
* 不可删除,如删除后会造成健康检查失败而重启服务
* @return
*/
@RequestMapping(value = "/health/check")
public String checkHealth() {
return "ok";
}
} }
...@@ -3,6 +3,7 @@ package cn.freemud.entities.dto.shoppingCart; ...@@ -3,6 +3,7 @@ package cn.freemud.entities.dto.shoppingCart;
import cn.freemud.entities.dto.OrderProductAddInfo; import cn.freemud.entities.dto.OrderProductAddInfo;
import cn.freemud.entities.vo.SubtractStockVO; import cn.freemud.entities.vo.SubtractStockVO;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -67,6 +68,33 @@ public class ShoppingCartGoodsDto { ...@@ -67,6 +68,33 @@ public class ShoppingCartGoodsDto {
*/ */
private List<SubtractStockVO> stocks; private List<SubtractStockVO> stocks;
/**
* 配送费
*/
private Long deliveryAmount;
/**
* 减免后配送费
*/
private Long discountDeliveryAmount;
/**
* 满多少额度 减免
*/
private Long thresholdAmount;
/**
* 是否参加满额减免
*/
@Builder.Default
private Boolean isDiscountDelivery = false;
/**
* 配送费活动号
*
*/
private String discountDeliveryActivityCode;
@Data @Data
public static class CartGoodsDetailDto { public static class CartGoodsDetailDto {
/** /**
......
...@@ -93,6 +93,8 @@ public class ShoppingCartInfoRequestVo { ...@@ -93,6 +93,8 @@ public class ShoppingCartInfoRequestVo {
*/ */
private String channelType; private String channelType;
private String receiveId;
@Data @Data
public final static class SendGoods { public final static class SendGoods {
/** /**
......
...@@ -17,6 +17,7 @@ public enum ActivityTypeEnum { ...@@ -17,6 +17,7 @@ public enum ActivityTypeEnum {
TYPE_11(11, "每满减"), TYPE_11(11, "每满减"),
TYPE_12(12, "阶梯满减"), TYPE_12(12, "阶梯满减"),
TYPE_13(13, "新用户立减"), TYPE_13(13, "新用户立减"),
TYPE_14(14, "满减配送费"),
TYPE_104(104,"x件y折"), TYPE_104(104,"x件y折"),
/** /**
* 限时特价 * 限时特价
......
...@@ -150,7 +150,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -150,7 +150,7 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
if (DeliveryStatus.DELIVERYERROR.getCode() != request.getDeliveryStatus()) return false; if (DeliveryStatus.DELIVERYERROR.getCode() != request.getDeliveryStatus()) return false;
if (StringUtils.isBlank(request.getRemark())) return false; if (StringUtils.isBlank(request.getRemark())) return false;
List<String> abnormalDesc = Lists.newArrayList("顾客更改配送地址", "顾客更改收货地址"); List<String> abnormalDesc = Lists.newArrayList("顾客更改配送地址", "顾客更改收货地址", "顾客更改送货地址");
for (String str : abnormalDesc) { for (String str : abnormalDesc) {
if (request.getRemark().contains(str)) { if (request.getRemark().contains(str)) {
log.info("isDeliveryAbnormalAndCustomerChangedAddress.true of {}", JSONObject.toJSONString(request)); log.info("isDeliveryAbnormalAndCustomerChangedAddress.true of {}", JSONObject.toJSONString(request));
......
...@@ -310,6 +310,7 @@ public class CheckOrder { ...@@ -310,6 +310,7 @@ public class CheckOrder {
.orderType(createOrderVo.getOrderType()) .orderType(createOrderVo.getOrderType())
.reachStoreType(createOrderVo.getReachStoreType()) .reachStoreType(createOrderVo.getReachStoreType())
.flag(CouponFlag.NO.getCode()) .flag(CouponFlag.NO.getCode())
.receiveId(createOrderVo.getReceiveId())
.useCustomerScore(createOrderVo.getUseCustomerScore()) .useCustomerScore(createOrderVo.getUseCustomerScore())
.buyMemberCard(buyMemberCard) .buyMemberCard(buyMemberCard)
.menuType(createOrderVo.getMenuType()) .menuType(createOrderVo.getMenuType())
......
...@@ -288,14 +288,14 @@ public class LogUtil { ...@@ -288,14 +288,14 @@ public class LogUtil {
if (StringUtils.isEmpty(uri) && method != null) { if (StringUtils.isEmpty(uri) && method != null) {
PostMapping postMapping = AnnotationUtils.getAnnotation(method, PostMapping.class); PostMapping postMapping = AnnotationUtils.getAnnotation(method, PostMapping.class);
uri = uriPre + (!Objects.equals(postMapping, null) && !Objects.equals(postMapping.path(), null) && postMapping.path().length > 0 ? postMapping.path()[0] : ""); uri = uriPre + (!Objects.equals(postMapping, null) && !Objects.equals(postMapping.path(), null) && postMapping.path().length > 0 ? postMapping.path()[0] : "");
} if (StringUtils.isEmpty(uri)) {
if (StringUtils.isEmpty(uri)) { GetMapping getMapping = AnnotationUtils.getAnnotation(method, GetMapping.class);
GetMapping getMapping = AnnotationUtils.getAnnotation(method, GetMapping.class); uri = uriPre + (!Objects.equals(getMapping, null) && !Objects.equals(getMapping.path(), null) && getMapping.path().length > 0 ? getMapping.path()[0] : "");
uri = uriPre + (!Objects.equals(getMapping, null) && !Objects.equals(getMapping.path(), null) && getMapping.path().length > 0 ? getMapping.path()[0] : ""); }
} if (StringUtils.isEmpty(uri)) {
if (StringUtils.isEmpty(uri)) { RequestMapping methodRequestMapping = AnnotationUtils.getAnnotation(method, RequestMapping.class);
RequestMapping methodRequestMapping = AnnotationUtils.getAnnotation(method, RequestMapping.class); uri = uriPre + (!Objects.equals(methodRequestMapping, null) && !Objects.equals(methodRequestMapping.path(), null) && methodRequestMapping.path().length > 0 ? methodRequestMapping.path()[0] : "");
uri = uriPre + (!Objects.equals(methodRequestMapping, null) && !Objects.equals(methodRequestMapping.path(), null) && methodRequestMapping.path().length > 0 ? methodRequestMapping.path()[0] : ""); }
} }
ThirdPartLogVo thirdPartLogVo = new ThirdPartLogVo(); ThirdPartLogVo thirdPartLogVo = new ThirdPartLogVo();
thirdPartLogVo.setThirdPartName(serviceName); thirdPartLogVo.setThirdPartName(serviceName);
......
...@@ -9,5 +9,3 @@ env=dev ...@@ -9,5 +9,3 @@ env=dev
apollo.cluster=default apollo.cluster=default
apollo.bootstrap.enabled=true apollo.bootstrap.enabled=true
apollo.bootstrap.namespaces=micro_progeram_commons,order_service apollo.bootstrap.namespaces=micro_progeram_commons,order_service
eureka.client.enabled=true
\ No newline at end of file
...@@ -8,6 +8,4 @@ apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080 ...@@ -8,6 +8,4 @@ apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080
env=pro env=pro
apollo.bootstrap.enabled=true apollo.bootstrap.enabled=true
apollo.cluster=pre-release apollo.cluster=pre-release
apollo.bootstrap.namespaces=micro_progeram_commons,order_service apollo.bootstrap.namespaces=order_service,micro_progeram_commons
\ No newline at end of file
eureka.client.enabled=true
\ No newline at end of file
...@@ -9,6 +9,6 @@ apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080 ...@@ -9,6 +9,6 @@ apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080
env=pro env=pro
apollo.cluster=default apollo.cluster=default
apollo.bootstrap.enabled=true apollo.bootstrap.enabled=true
apollo.bootstrap.namespaces=micro_progeram_commons,order_service apollo.bootstrap.namespaces=order_service,micro_progeram_commons
eureka.client.enabled=true eureka.client.enabled=true
\ No newline at end of file
...@@ -10,5 +10,3 @@ env=uat ...@@ -10,5 +10,3 @@ env=uat
apollo.cluster=default apollo.cluster=default
apollo.bootstrap.enabled=true apollo.bootstrap.enabled=true
apollo.bootstrap.namespaces=micro_progeram_commons,order_service apollo.bootstrap.namespaces=micro_progeram_commons,order_service
eureka.client.enabled=true
\ No newline at end of file
...@@ -11,7 +11,6 @@ apollo.cluster=default ...@@ -11,7 +11,6 @@ apollo.cluster=default
apollo.bootstrap.enabled=true apollo.bootstrap.enabled=true
apollo.bootstrap.namespaces=micro_progeram_commons,order_service apollo.bootstrap.namespaces=micro_progeram_commons,order_service
eureka.client.enabled=false
#-Dapollo.configService=http://172.81.231.147 #-Dapollo.configService=http://172.81.231.147
endpoints.metrics.enabled=true endpoints.metrics.enabled=true
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<version>1.0.0</version> <version>1.0.0</version>
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<version>1.1.8.RELEASE</version> <version>1.1.9.RELEASE</version>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<dependencies> <dependencies>
......
...@@ -12,4 +12,5 @@ ...@@ -12,4 +12,5 @@
| 1.1.6.RELEASE | 升级RELEASE | wuping | 2020-03-04 | | 1.1.6.RELEASE | 升级RELEASE | wuping | 2020-03-04 |
| 1.1.7-SNAPSHOT | 预约单支付成功接口增加预约任务 | wuping | 2020-03-10 | | 1.1.7-SNAPSHOT | 预约单支付成功接口增加预约任务 | wuping | 2020-03-10 |
| 1.1.8-SNAPSHOT | 预约单接单接口增加预约任务 | wuping | 2020-03-17 | | 1.1.8-SNAPSHOT | 预约单接单接口增加预约任务 | wuping | 2020-03-17 |
| 1.1.8.RELEASE | 预约单升级RELEASE | wuping | 2020-03-18 | | 1.1.8.RELEASE | 预约单升级RELEASE | wuping | 2020-03-18 |
\ No newline at end of file | 1.1.9.RELEASE | 满额减配送费RELEASE | dingkai | 2020-03-26 |
\ No newline at end of file
...@@ -40,8 +40,8 @@ public enum OrderSettlementType { ...@@ -40,8 +40,8 @@ public enum OrderSettlementType {
DISCOUNT_FEE(205, "优惠总金额"), DISCOUNT_FEE(205, "优惠总金额"),
ITEM_SPECIAL_PRICE(206, "单品特价"), ITEM_SPECIAL_PRICE(206, "单品特价"),
ONE_BY_ONE(207, "买一送一"), ONE_BY_ONE(207, "买一送一"),
DISCOUNT_COUPON(208, "折扣券") DISCOUNT_COUPON(208, "折扣券"),
FULL_DISTRIBUTION_FEE(1014, "满减配送费"),
; ;
private int index; private int index;
private String name; private String name;
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>productcenter-sdk</artifactId> <artifactId>productcenter-sdk</artifactId>
<version>2.7.7.RELEASE</version> <version>2.8.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
...@@ -291,35 +291,6 @@ ...@@ -291,35 +291,6 @@
<artifactId>apm-toolkit-logback-1.x</artifactId> <artifactId>apm-toolkit-logback-1.x</artifactId>
</dependency> </dependency>
<!-- promtheus -->
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-spring-legacy</artifactId>
</dependency>
<!-- promtheus -->
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_spring_boot</artifactId>
<version>0.8.0</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>0.12.0.RELEASE</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-spring-legacy</artifactId>
<version>0.8.0.RELEASE</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
......
...@@ -15,8 +15,6 @@ package cn.freemud; ...@@ -15,8 +15,6 @@ package cn.freemud;
import cn.freemud.core.db.DataSourcesConfig; import cn.freemud.core.db.DataSourcesConfig;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import feign.RequestInterceptor; import feign.RequestInterceptor;
import io.prometheus.client.spring.boot.EnablePrometheusEndpoint;
import io.prometheus.client.spring.boot.EnableSpringBootMetricsCollector;
import org.jasypt.encryption.StringEncryptor; import org.jasypt.encryption.StringEncryptor;
import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; import org.jasypt.encryption.pbe.PooledPBEStringEncryptor;
import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;
...@@ -48,8 +46,6 @@ import tk.mybatis.spring.annotation.MapperScan; ...@@ -48,8 +46,6 @@ import tk.mybatis.spring.annotation.MapperScan;
"com.freemud.api.assortment.datamanager.manager"}) "com.freemud.api.assortment.datamanager.manager"})
@EnableFeignClients @EnableFeignClients
@EnableAsync @EnableAsync
@EnablePrometheusEndpoint
@EnableSpringBootMetricsCollector
public class ShoppingCartApplication { public class ShoppingCartApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(ShoppingCartApplication.class, args); SpringApplication.run(ShoppingCartApplication.class, args);
......
...@@ -363,6 +363,7 @@ public class ShoppingCartConvertAdapter { ...@@ -363,6 +363,7 @@ public class ShoppingCartConvertAdapter {
productCombox.setSkuId(vo.getSkuId()); productCombox.setSkuId(vo.getSkuId());
productCombox.setQty(vo.getQty()); productCombox.setQty(vo.getQty());
productCombox.setExtra(vo.getExtra()); productCombox.setExtra(vo.getExtra());
productCombox.setProductGroupId(StringUtils.isEmpty(vo.getProductGroupId())?null: Long.parseLong(vo.getProductGroupId()));
productGroupList.add(productCombox); productGroupList.add(productCombox);
} }
} }
......
...@@ -17,4 +17,8 @@ public class ApplicationConstant { ...@@ -17,4 +17,8 @@ public class ApplicationConstant {
public final static String CURRENT_VERSION = "1.5.2"; public final static String CURRENT_VERSION = "1.5.2";
public final static String BURYINGPOINT = "POINT"; public final static String BURYINGPOINT = "POINT";
public final static String DELIVERY_DISCOUNT_DESC1="订单满%s元减%s元配送费";
public final static String DELIVERY_DISCOUNT_DESC2="订单满%s元免配送费";
public final static String DELIVERY_DISCOUNT_DESC3="另需配送费%s元";
} }
...@@ -13,6 +13,16 @@ public class AgentController { ...@@ -13,6 +13,16 @@ public class AgentController {
public String reportDefault() { public String reportDefault() {
return HealthUtil.healthCheck(); return HealthUtil.healthCheck();
} }
/**
* 提供给健康检查使用
* 不可删除,如删除后会造成健康检查失败而重启服务
* @return
*/
@RequestMapping(value = "/health/check")
public String checkHealth() {
return "ok";
}
} }
...@@ -62,6 +62,8 @@ public class ActivityCalculationDiscountRequestDto { ...@@ -62,6 +62,8 @@ public class ActivityCalculationDiscountRequestDto {
*/ */
private List<CalculationDiscountGoods> goods; private List<CalculationDiscountGoods> goods;
private Long distributionFee;
@Data @Data
public static class CalculationDiscountCoupon { public static class CalculationDiscountCoupon {
/** /**
......
...@@ -22,6 +22,11 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -22,6 +22,11 @@ public class ActivityCalculationDiscountResponseDto {
private String msg; private String msg;
/** /**
* 优惠后运费
*/
private Long distributionFee;
/**
* 集合外的为系统按照优先级计算出来的优惠信息 * 集合外的为系统按照优先级计算出来的优惠信息
* ,calculationResults集合中的为多种优惠方案 * ,calculationResults集合中的为多种优惠方案
* 计算出来的优惠信息列表,并按优惠力度倒序排列 * 计算出来的优惠信息列表,并按优惠力度倒序排列
...@@ -84,6 +89,17 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -84,6 +89,17 @@ public class ActivityCalculationDiscountResponseDto {
*/ */
private List<SubtractStockVO> stocks; private List<SubtractStockVO> stocks;
/**
* 配送费
*/
private Long deliveryAmount;
/**
* 优惠后 配送费
*/
private Long distributionFee;
@Data @Data
public static class ActivityPrompt { public static class ActivityPrompt {
...@@ -120,6 +136,7 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -120,6 +136,7 @@ public class ActivityCalculationDiscountResponseDto {
* 11-每满减 * 11-每满减
* 12-阶梯满减 * 12-阶梯满减
* 2-单品特价 * 2-单品特价
* 14-满额减配送费
* 21-单品折扣 * 21-单品折扣
* 3-优惠券 * 3-优惠券
* 5-整单满金额折 * 5-整单满金额折
...@@ -134,6 +151,8 @@ public class ActivityCalculationDiscountResponseDto { ...@@ -134,6 +151,8 @@ public class ActivityCalculationDiscountResponseDto {
* 83-整单满数量打折 * 83-整单满数量打折
*/ */
private Integer type; private Integer type;
private Long thresholdAmount;
} }
@Data @Data
......
...@@ -20,4 +20,9 @@ public class BenefitBeanDto { ...@@ -20,4 +20,9 @@ public class BenefitBeanDto {
* 优惠等级(用于阶梯满减) * 优惠等级(用于阶梯满减)
*/ */
private Integer benefitSeq; private Integer benefitSeq;
private Integer benefitType;
} }
\ No newline at end of file
...@@ -23,4 +23,6 @@ public class ActivityQueryDto { ...@@ -23,4 +23,6 @@ public class ActivityQueryDto {
*/ */
private Integer orderType; private Integer orderType;
private ActivityQueryResponseDto activityQueryResponseDto;
} }
...@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.activity.ActivityDiscountsDto; ...@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.activity.ActivityDiscountsDto;
import cn.freemud.entities.dto.activity.ShareDiscountActivityDto; import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.vo.SubtractStockVO; import cn.freemud.entities.vo.SubtractStockVO;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
...@@ -93,6 +94,33 @@ public class ShoppingCartGoodsDto { ...@@ -93,6 +94,33 @@ public class ShoppingCartGoodsDto {
*/ */
private List<SubtractStockVO> stocks; private List<SubtractStockVO> stocks;
/**
* 配送费
*/
private Long deliveryAmount;
/**
* 减免后配送费
*/
private Long discountDeliveryAmount;
/**
* 满多少额度 减免
*/
private Long thresholdAmount;
/**
* 是否参加满额减免
*/
@Builder.Default
private Boolean isDiscountDelivery = false;
/**
* 配送费活动号
*
*/
private String discountDeliveryActivityCode;
@Data @Data
public static class CartGoodsDetailDto { public static class CartGoodsDetailDto {
......
...@@ -72,4 +72,9 @@ public class AddShoppingCartGoodsRequestVo extends BaseRequestVo{ ...@@ -72,4 +72,9 @@ public class AddShoppingCartGoodsRequestVo extends BaseRequestVo{
*/ */
private String menuType ; private String menuType ;
/**
* 收货地址ID、svc卡支付外卖订单必传
*/
private String receiveId;
} }
...@@ -242,6 +242,10 @@ public class CartGoods { ...@@ -242,6 +242,10 @@ public class CartGoods {
* 第三方商品编号 * 第三方商品编号
*/ */
private String customerCode; private String customerCode;
/**
* 商品组Id
*/
private Long productGroupId;
@Override @Override
public int hashCode() { public int hashCode() {
......
...@@ -22,6 +22,10 @@ public class ComboxGoodsRequestVo { ...@@ -22,6 +22,10 @@ public class ComboxGoodsRequestVo {
private String skuId; private String skuId;
private Integer qty; private Integer qty;
/** /**
* 商品组Id
*/
private String productGroupId;
/**
* 商品额外的属性 * 商品额外的属性
*/ */
List<CartGoods.CartGoodsExtra> extra; List<CartGoods.CartGoodsExtra> extra;
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
*/ */
package cn.freemud.entities.vo; package cn.freemud.entities.vo;
import lombok.Builder;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
...@@ -44,10 +45,6 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV ...@@ -44,10 +45,6 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
* 总折扣价 * 总折扣价
*/ */
private Long totalDiscountAmount; private Long totalDiscountAmount;
/**
* 包装费
*/
private Long packAmount;
/** /**
* 新包装费(该字段给新版本前端展示,使其好计算) * 新包装费(该字段给新版本前端展示,使其好计算)
...@@ -91,4 +88,37 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV ...@@ -91,4 +88,37 @@ public class ShoppingCartGoodsResponseVo extends ShoppingCartGoodsBaseResponseV
* 会员卡优惠金额 * 会员卡优惠金额
*/ */
private Integer cardDiscountAmount; private Integer cardDiscountAmount;
/**
* 配送费
*/
private Long deliveryAmount;
/**
* 减免后配送费
*/
private Long discountDeliveryAmount;
/**
* 满多少额度 减免
*/
private Long thresholdAmount;
/**
* 是否参加满额减免
*/
@Builder.Default
private Boolean isDiscountDelivery = false;
/**
* 满额减配送费描述
*/
private String deliveryDiscountDesc;
/**
* 减免后配送费
*/
private String discountDeliveryActivityCode;
} }
...@@ -48,4 +48,9 @@ public class UpdateShoppingCartGoodsQtyRequestVo extends BaseRequestVo { ...@@ -48,4 +48,9 @@ public class UpdateShoppingCartGoodsQtyRequestVo extends BaseRequestVo {
*/ */
private String menuType ; private String menuType ;
/**
* 收货地址ID、svc卡支付外卖订单必传
*/
private String receiveId;
} }
...@@ -17,6 +17,7 @@ public enum ActivityTypeEnum { ...@@ -17,6 +17,7 @@ public enum ActivityTypeEnum {
TYPE_11(11, "每满减"), TYPE_11(11, "每满减"),
TYPE_12(12, "阶梯满减"), TYPE_12(12, "阶梯满减"),
TYPE_13(13, "新用户立减"), TYPE_13(13, "新用户立减"),
TYPE_14(14, "满额减配送费"),
TYPE_104(104,"x件y折"), TYPE_104(104,"x件y折"),
/** /**
......
...@@ -95,7 +95,7 @@ public interface ShoppingCartNewService { ...@@ -95,7 +95,7 @@ public interface ShoppingCartNewService {
Integer orderType, Integer orderType,
List<CartGoods> cartGoodsList, List<CartGoods> cartGoodsList,
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons,
List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType); List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType,Long distributionFee);
List<CartGoods> updateCartGoodsLegal(CartGoods cartGoods, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, List<CartGoods> oldAllCartGoodsList); List<CartGoods> updateCartGoodsLegal(CartGoods cartGoods, String userId, ShoppingCartGoodsBaseResponseVo shoppingCartGoodsResponseVo, AddShoppingCartGoodsRequestVo addShoppingCartGoodsRequestVo, List<CartGoods> oldAllCartGoodsList);
......
...@@ -106,8 +106,8 @@ public class BuySendPromotionService implements IPromotionService { ...@@ -106,8 +106,8 @@ public class BuySendPromotionService implements IPromotionService {
activityTip.setActivitySpuIds(activitySpuIds); activityTip.setActivitySpuIds(activitySpuIds);
// 当maxNum>=minNum,在加入买一赠一商品时提示“您参加的买赠优惠最多赠送N件哦~” // 当maxNum>=minNum,在加入买一赠一商品时提示“您参加的买赠优惠最多赠送N件哦~”
shoppingCartGoodsResponseVo.setBuyOneGetActivity(activityTip); shoppingCartGoodsResponseVo.setBuyOneGetActivity(activityTip);
Long packAmount = Objects.isNull(shoppingCartGoodsResponseVo.getPackAmount()) ? 0L : shoppingCartGoodsResponseVo.getPackAmount(); Long packAmount = Objects.isNull(shoppingCartGoodsResponseVo.getNewPackAmount()) ? 0L : shoppingCartGoodsResponseVo.getNewPackAmount();
shoppingCartGoodsResponseVo.setPackAmount(givePackAmount + packAmount); shoppingCartGoodsResponseVo.setNewPackAmount(givePackAmount + packAmount);
Long originalTotalAmount = Objects.isNull(shoppingCartGoodsResponseVo.getOriginalTotalAmount()) ? 0L : shoppingCartGoodsResponseVo.getOriginalTotalAmount(); Long originalTotalAmount = Objects.isNull(shoppingCartGoodsResponseVo.getOriginalTotalAmount()) ? 0L : shoppingCartGoodsResponseVo.getOriginalTotalAmount();
shoppingCartGoodsResponseVo.setOriginalTotalAmount(originalTotalAmount + giveTotalAmount); shoppingCartGoodsResponseVo.setOriginalTotalAmount(originalTotalAmount + giveTotalAmount);
Long totalDiscountAmount = Objects.isNull(shoppingCartGoodsResponseVo.getTotalDiscountAmount()) ? 0L : shoppingCartGoodsResponseVo.getTotalDiscountAmount(); Long totalDiscountAmount = Objects.isNull(shoppingCartGoodsResponseVo.getTotalDiscountAmount()) ? 0L : shoppingCartGoodsResponseVo.getTotalDiscountAmount();
......
...@@ -65,7 +65,6 @@ public class DefaultPromotionService implements IPromotionService { ...@@ -65,7 +65,6 @@ public class DefaultPromotionService implements IPromotionService {
} }
shoppingCartGoodsResponseVo.setOriginalTotalAmount(calculationDiscountResult == null ? totalOriginalAmount : calculationDiscountResult.getOriginalTotalAmount()); shoppingCartGoodsResponseVo.setOriginalTotalAmount(calculationDiscountResult == null ? totalOriginalAmount : calculationDiscountResult.getOriginalTotalAmount());
shoppingCartGoodsResponseVo.setTotalAmount(calculationDiscountResult == null ? totalAmount : calculationDiscountResult.getTotalAmount()); shoppingCartGoodsResponseVo.setTotalAmount(calculationDiscountResult == null ? totalAmount : calculationDiscountResult.getTotalAmount());
shoppingCartGoodsResponseVo.setPackAmount(totalPackgeAmount);
shoppingCartGoodsResponseVo.setNewPackAmount(totalPackgeAmount); shoppingCartGoodsResponseVo.setNewPackAmount(totalPackgeAmount);
shoppingCartGoodsResponseVo.setTotalDiscountAmount(calculationDiscountResult == null ? 0L : calculationDiscountResult.getTotalDiscountAmount()); shoppingCartGoodsResponseVo.setTotalDiscountAmount(calculationDiscountResult == null ? 0L : calculationDiscountResult.getTotalDiscountAmount());
} }
...@@ -80,7 +79,7 @@ public class DefaultPromotionService implements IPromotionService { ...@@ -80,7 +79,7 @@ public class DefaultPromotionService implements IPromotionService {
shoppingCartGoodsDto.setOriginalTotalAmount(shoppingCartGoodsResponseVo.getOriginalTotalAmount()); shoppingCartGoodsDto.setOriginalTotalAmount(shoppingCartGoodsResponseVo.getOriginalTotalAmount());
shoppingCartGoodsDto.setTotalAmount(shoppingCartGoodsResponseVo.getTotalAmount()); shoppingCartGoodsDto.setTotalAmount(shoppingCartGoodsResponseVo.getTotalAmount());
shoppingCartGoodsDto.setTotalDiscountAmount(shoppingCartGoodsResponseVo.getTotalDiscountAmount()); shoppingCartGoodsDto.setTotalDiscountAmount(shoppingCartGoodsResponseVo.getTotalDiscountAmount());
shoppingCartGoodsDto.setPackageAmount(shoppingCartGoodsResponseVo.getPackAmount()); shoppingCartGoodsDto.setPackageAmount(shoppingCartGoodsResponseVo.getNewPackAmount());
List<CartGoods> cartGoodsList = shoppingCartGoodsResponseVo.getProducts(); List<CartGoods> cartGoodsList = shoppingCartGoodsResponseVo.getProducts();
List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods> apportionGoodsList = List<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.ApportionGoods> apportionGoodsList =
calculationDiscountResult == null ? new ArrayList<>() : calculationDiscountResult.getApportionGoods(); calculationDiscountResult == null ? new ArrayList<>() : calculationDiscountResult.getApportionGoods();
......
...@@ -413,7 +413,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService { ...@@ -413,7 +413,7 @@ public class ShoppingCartMallServiceImpl implements ShoppingCartNewService {
@Override @Override
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse( public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse(
String partnerId, String storeId, String userId, String appId, Integer orderType, List<CartGoods> cartGoodsList, String partnerId, String storeId, String userId, String appId, Integer orderType, List<CartGoods> cartGoodsList,
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType) { List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType,Long distributionFee) {
return null; return null;
} }
......
...@@ -491,7 +491,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService { ...@@ -491,7 +491,7 @@ public class ShoppingCartMealServiceImpl implements ShoppingCartNewService {
@Override @Override
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult public ActivityCalculationDiscountResponseDto.CalculationDiscountResult
getActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType, getActivityCalculationDiscountResponse(String partnerId, String storeId, String userId, String appId, Integer orderType,
List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType) { List<CartGoods> cartGoodsList, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType,Long distributionFee) {
return null; return null;
} }
......
...@@ -21,6 +21,7 @@ import cn.freemud.constant.ResponseCodeConstant; ...@@ -21,6 +21,7 @@ import cn.freemud.constant.ResponseCodeConstant;
import cn.freemud.constant.ShoppingCartConstant; import cn.freemud.constant.ShoppingCartConstant;
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.activity.ActivityQueryResponseDto;
import cn.freemud.entities.dto.activity.ShareDiscountActivityDto; import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.dto.openplatform.WeixinProductRequestDto; import cn.freemud.entities.dto.openplatform.WeixinProductRequestDto;
import cn.freemud.entities.dto.openplatform.WeixinProductResponseDto; import cn.freemud.entities.dto.openplatform.WeixinProductResponseDto;
...@@ -48,6 +49,7 @@ import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmoun ...@@ -48,6 +49,7 @@ import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmoun
import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse; import com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse;
import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService; import com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO; import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.application.sdk.api.promotioncenter.response.ActivityResponse;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest; import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
...@@ -68,10 +70,12 @@ import org.springframework.stereotype.Service; ...@@ -68,10 +70,12 @@ import org.springframework.stereotype.Service;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.*; import java.util.*;
import java.util.function.Function; import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.freemud.constant.ApplicationConstant.*;
import static cn.freemud.constant.ShoppingCartConstant.SHOPPING_CART_EMPTY_GOODS_LIST; import static cn.freemud.constant.ShoppingCartConstant.SHOPPING_CART_EMPTY_GOODS_LIST;
import static cn.freemud.constant.ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS; import static cn.freemud.constant.ShoppingCartConstant.SHOPPING_CART_INVALIAD_GOODS;
import static java.util.stream.Collectors.toList; import static java.util.stream.Collectors.toList;
...@@ -133,6 +137,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -133,6 +137,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
@Autowired @Autowired
private ProductService productService; private ProductService productService;
@Autowired
private ActivityService activityService;
/** /**
* 从微信卡券向购物车中添加商品 * 从微信卡券向购物车中添加商品
...@@ -215,6 +221,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -215,6 +221,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String spuId = addShoppingCartGoodsRequestVo.getSpuId(); String spuId = addShoppingCartGoodsRequestVo.getSpuId();
String skuId = addShoppingCartGoodsRequestVo.getSkuId(); String skuId = addShoppingCartGoodsRequestVo.getSkuId();
String goodsId = StringUtils.isEmpty(skuId) ? spuId : skuId; String goodsId = StringUtils.isEmpty(skuId) ? spuId : skuId;
String menuType = addShoppingCartGoodsRequestVo.getMenuType();
Integer orderType = addShoppingCartGoodsRequestVo.getOrderType();
String receiveId = addShoppingCartGoodsRequestVo.getReceiveId();
CartGoods cartGoods = ShoppingCartConvertAdapter.convent2CartGoods(addShoppingCartGoodsRequestVo); CartGoods cartGoods = ShoppingCartConvertAdapter.convent2CartGoods(addShoppingCartGoodsRequestVo);
List<Long> productIds = new ArrayList<>(); List<Long> productIds = new ArrayList<>();
...@@ -238,6 +247,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -238,6 +247,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
Integer checkQty = allCartGoodsList.indexOf(cartGoods) != -1 ? Integer checkQty = allCartGoodsList.indexOf(cartGoods) != -1 ?
allCartGoodsList.get(allCartGoodsList.indexOf(cartGoods)).getQty() + cartGoods.getQty() : cartGoods.getQty(); allCartGoodsList.get(allCartGoodsList.indexOf(cartGoods)).getQty() + cartGoods.getQty() : cartGoods.getQty();
//查询多个商品库存信息 //查询多个商品库存信息
queryManyGoodsStocks(addShoppingCartGoodsRequestVo, productIds, productBeanListSpuClass, skuId, checkQty); queryManyGoodsStocks(addShoppingCartGoodsRequestVo, productIds, productBeanListSpuClass, skuId, checkQty);
...@@ -252,8 +262,13 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -252,8 +262,13 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
spuId, allCartGoodsList, productBeanListSpuClass); spuId, allCartGoodsList, productBeanListSpuClass);
} }
Long deliveryAmount = calculateDeliveryAmount(receiveId,partnerId,storeId,userLoginInfoDto.getWxAppid());
// 获取优惠信息 // 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType(), allCartGoodsList,BusinessTypeEnum.getByType(addShoppingCartGoodsRequestVo.getMenuType()).getCode()); ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult
=getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,userLoginInfoDto.getWxAppid(),orderType,allCartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount);
// 当商品数量被设为0时 // 当商品数量被设为0时
if (Objects.equals(cartGoods.getQty(), 0)) { if (Objects.equals(cartGoods.getQty(), 0)) {
assortmentSdkService.updateGoodsQtyBySdk(partnerId, userId, storeId, cartGoods.getCartGoodsUid(), 0, "", shoppingCartBaseService); assortmentSdkService.updateGoodsQtyBySdk(partnerId, userId, storeId, cartGoods.getCartGoodsUid(), 0, "", shoppingCartBaseService);
...@@ -262,7 +277,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -262,7 +277,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, addShoppingCartGoodsRequestVo.getOrderType());
// 促销活动的优惠金额计算 // 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount(null, activityQueryDto, calculationDiscountResult, allCartGoodsList, shoppingCartGoodsResponseVo, null, userLoginInfoDto); updateShoppingCartGoodsDiscount(null, activityQueryDto, calculationDiscountResult, allCartGoodsList, shoppingCartGoodsResponseVo, null, userLoginInfoDto,addShoppingCartGoodsRequestVo.getMenuType(),deliveryAmount);
//设置更新响应信息 //设置更新响应信息
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, allCartGoodsList, null, partnerId, storeId, userId, ShoppingCartConstant.ADD_AND_UPDATE, null); setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, allCartGoodsList, null, partnerId, storeId, userId, ShoppingCartConstant.ADD_AND_UPDATE, null);
...@@ -314,6 +329,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -314,6 +329,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String appId = updateShoppingCartGoodsQtyRequestVo.getAppId(); String appId = updateShoppingCartGoodsQtyRequestVo.getAppId();
String cartGoodsUid = updateShoppingCartGoodsQtyRequestVo.getCartGoodsUid(); String cartGoodsUid = updateShoppingCartGoodsQtyRequestVo.getCartGoodsUid();
Integer qty = updateShoppingCartGoodsQtyRequestVo.getQty(); Integer qty = updateShoppingCartGoodsQtyRequestVo.getQty();
String menuType = updateShoppingCartGoodsQtyRequestVo.getMenuType();
Integer orderType=updateShoppingCartGoodsQtyRequestVo.getOrderType();
String receiveId = updateShoppingCartGoodsQtyRequestVo.getReceiveId();
// 先验证商品是否存在 // 先验证商品是否存在
CartGoods cartGoods = assortmentSdkService.getCartGoodsBySdk(partnerId, userId, storeId, cartGoodsUid, "", shoppingCartBaseService); CartGoods cartGoods = assortmentSdkService.getCartGoodsBySdk(partnerId, userId, storeId, cartGoodsUid, "", shoppingCartBaseService);
if (cartGoods == null) { if (cartGoods == null) {
...@@ -335,8 +354,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -335,8 +354,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 重新存储最新购物车 // 重新存储最新购物车
assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, updateShoppingCartGoodsQtyRequestVo.getSessionId(), "", shoppingCartBaseService); assortmentSdkService.setShoppingCart(partnerId, storeId, userId, cartGoodsList, updateShoppingCartGoodsQtyRequestVo.getSessionId(), "", shoppingCartBaseService);
Long deliveryAmount = calculateDeliveryAmount(receiveId,partnerId,storeId,userLoginInfoDto.getWxAppid());
// 获取优惠信息 // 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType(), cartGoodsList,BusinessTypeEnum.getByType(updateShoppingCartGoodsQtyRequestVo.getMenuType()).getCode()); ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult
=getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,userLoginInfoDto.getWxAppid(),orderType,cartGoodsList,new ArrayList(),new ArrayList<>(),null,deliveryAmount);
if (calculationDiscountResult == null) { if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
// return shoppingCartGoodsResponseVo; // return shoppingCartGoodsResponseVo;
...@@ -345,7 +367,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -345,7 +367,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, updateShoppingCartGoodsQtyRequestVo.getOrderType());
// 促销活动的优惠金额计算 // 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount(null, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, null, userLoginInfoDto); updateShoppingCartGoodsDiscount(null, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, null, userLoginInfoDto,updateShoppingCartGoodsQtyRequestVo.getMenuType(),deliveryAmount);
//设置更新响应信息 //设置更新响应信息
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, userId, ShoppingCartConstant.ADD_AND_UPDATE, null); setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, userId, ShoppingCartConstant.ADD_AND_UPDATE, null);
...@@ -409,6 +431,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -409,6 +431,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String appId = shoppingCartInfoRequestVo.getAppId(); String appId = shoppingCartInfoRequestVo.getAppId();
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); String couponCode = shoppingCartInfoRequestVo.getCouponCode();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); String activityCode = shoppingCartInfoRequestVo.getActivityCode();
String menuType = shoppingCartInfoRequestVo.getMenuType();
Integer orderType = shoppingCartInfoRequestVo.getOrderType();
String receiveId = shoppingCartInfoRequestVo.getReceiveId();
// 获取购物车商品 // 获取购物车商品
List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, "", shoppingCartBaseService); List<CartGoods> cartGoodsList = assortmentSdkService.getShoppingCart(partnerId, storeId, userId, null, "", shoppingCartBaseService);
...@@ -431,8 +456,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -431,8 +456,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
coupon.setActivityCode(activityCode); coupon.setActivityCode(activityCode);
coupons.add(coupon); coupons.add(coupon);
} }
Long deliveryAmount = calculateDeliveryAmount(receiveId,partnerId,storeId,userLoginInfoDto.getWxAppid());
// 获取优惠信息 // 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType(), cartGoodsList, coupons, null,BusinessTypeEnum.getByType(shoppingCartInfoRequestVo.getMenuType()).getCode()); ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,userLoginInfoDto.getWxAppid(),orderType,cartGoodsList,coupons,null,shoppingCartInfoRequestVo.getReceiveId(),deliveryAmount);
if (calculationDiscountResult == null) { if (calculationDiscountResult == null) {
shoppingCartGoodsResponseVo.setProducts(cartGoodsList); shoppingCartGoodsResponseVo.setProducts(cartGoodsList);
} }
...@@ -441,7 +469,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -441,7 +469,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
CouponPromotionVO couponPromotionVO = couponAdapter.getCouponPromotionVO(shoppingCartInfoRequestVo, userLoginInfoDto); CouponPromotionVO couponPromotionVO = couponAdapter.getCouponPromotionVO(shoppingCartInfoRequestVo, userLoginInfoDto);
// 促销活动的优惠金额计算 // 促销活动的优惠金额计算
this.updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo, userLoginInfoDto); this.updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo, userLoginInfoDto,shoppingCartInfoRequestVo.getMenuType(),deliveryAmount);
//设置更新响应信息 //设置更新响应信息
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, userId, ShoppingCartConstant.QUERY_INFO, shoppingCartInfoRequestVo); setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, userId, ShoppingCartConstant.QUERY_INFO, shoppingCartInfoRequestVo);
// 在原价、现价、折扣价上增加第一次使用会员卡的费用 // 在原价、现价、折扣价上增加第一次使用会员卡的费用
...@@ -530,6 +558,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -530,6 +558,9 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
String couponCode = shoppingCartInfoRequestVo.getCouponCode(); String couponCode = shoppingCartInfoRequestVo.getCouponCode();
String activityCode = shoppingCartInfoRequestVo.getActivityCode(); String activityCode = shoppingCartInfoRequestVo.getActivityCode();
String tableNumber = assortmentCustomerInfoVo.getTableNumber(); String tableNumber = assortmentCustomerInfoVo.getTableNumber();
String menuType = shoppingCartInfoRequestVo.getMenuType();
Integer orderType = shoppingCartInfoRequestVo.getOrderType();
String receiveId = shoppingCartInfoRequestVo.getReceiveId();
List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList = shoppingCartInfoRequestVo.getSendGoods(); List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList = shoppingCartInfoRequestVo.getSendGoods();
...@@ -590,8 +621,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -590,8 +621,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
shoppingCartInfoRequestVo.setSendGoods(sendGoods); shoppingCartInfoRequestVo.setSendGoods(sendGoods);
} }
} }
Long deliveryAmount = calculateDeliveryAmount(receiveId,partnerId,storeId,userLoginInfoDto.getWxAppid());
// 获取优惠信息 // 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType(), cartGoodsList, coupons, sendGoodsList,BusinessTypeEnum.getByType(shoppingCartInfoRequestVo.getMenuType()).getCode()); ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult = getCalculationDiscountResult(menuType,partnerId,storeId,userId,appId,userLoginInfoDto.getWxAppid(),orderType,cartGoodsList,coupons,sendGoodsList,shoppingCartInfoRequestVo.getReceiveId(),deliveryAmount);
ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType()); ActivityQueryDto activityQueryDto = activityAdapter.getActivityQueryDto(partnerId, storeId, userId, appId, shoppingCartInfoRequestVo.getOrderType());
...@@ -599,7 +632,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -599,7 +632,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
//临时方案 //临时方案
packgeAdditional(shoppingCartInfoRequestVo, premiumExchangeActivity); packgeAdditional(shoppingCartInfoRequestVo, premiumExchangeActivity);
// 促销活动的优惠金额计算 // 促销活动的优惠金额计算
updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo, userLoginInfoDto); updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, shoppingCartInfoRequestVo, userLoginInfoDto,shoppingCartInfoRequestVo.getMenuType(),deliveryAmount);
//设置更新响应信息 //设置更新响应信息
setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, userId, ShoppingCartConstant.QUERY_INFO, shoppingCartInfoRequestVo); setAddAndUpdateResponse(shoppingCartGoodsResponseVo, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo.getToastMsg(), partnerId, storeId, userId, ShoppingCartConstant.QUERY_INFO, shoppingCartInfoRequestVo);
...@@ -607,10 +640,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -607,10 +640,11 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto, premiumExchangeActivity, shoppingCartInfoRequestVo); updateShoppingCartGoodsApportion(shoppingCartGoodsResponseVo, calculationDiscountResult, shoppingCartGoodsDto, premiumExchangeActivity, shoppingCartInfoRequestVo);
getNeedCardAmount(shoppingCartInfoRequestVo, shoppingCartGoodsDto); getNeedCardAmount(shoppingCartInfoRequestVo, shoppingCartGoodsDto);
/*Long packAmount = shoppingCartGoodsResponseVo.getPackAmount() == null ? 0 : shoppingCartGoodsResponseVo.getPackAmount(); shoppingCartGoodsDto.setDeliveryAmount(shoppingCartGoodsResponseVo.getDeliveryAmount());
shoppingCartGoodsDto.setTotalAmount(shoppingCartGoodsDto.getTotalAmount() - packAmount); shoppingCartGoodsDto.setDiscountDeliveryAmount(shoppingCartGoodsResponseVo.getDiscountDeliveryAmount());
shoppingCartGoodsDto.setOriginalTotalAmount(shoppingCartGoodsDto.getOriginalTotalAmount() - packAmount); shoppingCartGoodsDto.setThresholdAmount(shoppingCartGoodsResponseVo.getThresholdAmount());
shoppingCartGoodsDto.setPackageAmount(packAmount);*/ shoppingCartGoodsDto.setIsDiscountDelivery(shoppingCartGoodsResponseVo.getIsDiscountDelivery());
shoppingCartGoodsDto.setDiscountDeliveryActivityCode(shoppingCartGoodsResponseVo.getDiscountDeliveryActivityCode());
return ResponseUtil.success(shoppingCartGoodsDto); return ResponseUtil.success(shoppingCartGoodsDto);
} }
...@@ -671,8 +705,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -671,8 +705,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
* @return * @return
*/ */
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse( public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse(
String partnerId, String storeId, String userId, String wxAppid, Integer orderType, List<CartGoods> cartGoodsList,String menuType) { String partnerId, String storeId, String userId, String wxAppid, Integer orderType, List<CartGoods> cartGoodsList,String menuType, Long distributionFee) {
return getActivityCalculationDiscountResponse(partnerId, storeId, userId, wxAppid, orderType, cartGoodsList, new ArrayList<>(), new ArrayList<>(),menuType); return getActivityCalculationDiscountResponse(partnerId, storeId, userId, wxAppid, orderType, cartGoodsList, new ArrayList<>(), new ArrayList<>(),menuType,distributionFee);
} }
/** /**
...@@ -687,15 +721,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -687,15 +721,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse( public ActivityCalculationDiscountResponseDto.CalculationDiscountResult getActivityCalculationDiscountResponse(
String partnerId, String storeId, String userId, String appId, Integer orderType, List<CartGoods> cartGoodsList, String partnerId, String storeId, String userId, String appId, Integer orderType, List<CartGoods> cartGoodsList,
List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons, List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons,
List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType) { List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String menuType,Long distributionFee) {
// 当购物车中只有商品券并且未使用折扣券时,不调用接口计算
// if (cartGoodsList.size() == 1
// && coupons.size() == 0) {
// if (cartGoodsList.get(0).getCartGoodsUid().startsWith(CommonsConstant.COUPON_PREFIX)) {
// return null;
// }
// }
//cartGoodsList = cartGoodsList.stream().filter(goods -> ObjectUtils.notEqual(GoodsTypeEnum.SET_MEAL_GOODS.getGoodsType(), goods.getGoodsType())).collect(Collectors.toList());
ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = getActivityCalculationDiscountRequestDto(partnerId, storeId, userId, appId, orderType); ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = getActivityCalculationDiscountRequestDto(partnerId, storeId, userId, appId, orderType);
List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>(); List<ActivityCalculationDiscountRequestDto.CalculationDiscountGoods> calculationDiscountGoodsList = new ArrayList<>();
// 校验后有效的商品券map // 校验后有效的商品券map
...@@ -746,6 +773,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -746,6 +773,7 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
activityCalculationDiscountRequestDto.setGoods(calculationDiscountGoodsList); activityCalculationDiscountRequestDto.setGoods(calculationDiscountGoodsList);
activityCalculationDiscountRequestDto.setCoupons(coupons); activityCalculationDiscountRequestDto.setCoupons(coupons);
activityCalculationDiscountRequestDto.setOrgIds(commonService.getOrgIds(partnerId, storeId)); activityCalculationDiscountRequestDto.setOrgIds(commonService.getOrgIds(partnerId, storeId));
activityCalculationDiscountRequestDto.setDistributionFee(distributionFee);
ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto; ActivityCalculationDiscountResponseDto activityCalculationDiscountResponseDto;
try { try {
activityCalculationDiscountResponseDto = activityClient.calculationDiscount(activityCalculationDiscountRequestDto); activityCalculationDiscountResponseDto = activityClient.calculationDiscount(activityCalculationDiscountRequestDto);
...@@ -757,6 +785,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -757,6 +785,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
if (activityCalculationDiscountResponseDto != null && StringUtils.equals(activityCalculationDiscountResponseDto.getStatusCode(), ResponseCodeConstant.RESPONSE_SUCCESS_STR)) { if (activityCalculationDiscountResponseDto != null && StringUtils.equals(activityCalculationDiscountResponseDto.getStatusCode(), ResponseCodeConstant.RESPONSE_SUCCESS_STR)) {
ActivityCalculationDiscountResponseDto.CalculationDiscountResult result = activityCalculationDiscountResponseDto.getResult(); ActivityCalculationDiscountResponseDto.CalculationDiscountResult result = activityCalculationDiscountResponseDto.getResult();
result.setValidCouponMap(validCouponMap); result.setValidCouponMap(validCouponMap);
result.setDeliveryAmount(distributionFee);
result.setDistributionFee(result.getDistributionFee());
return result; return result;
} }
throw new ServiceException(ResponseResult.OPERATE_TOO_OFTEN); throw new ServiceException(ResponseResult.OPERATE_TOO_OFTEN);
...@@ -804,6 +834,33 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -804,6 +834,33 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return activityCalculationDiscountRequestDto; return activityCalculationDiscountRequestDto;
} }
/**
* * 构建 ActivityCalculationDiscountRequestDto
*
* @param partnerId
* @param storeId
* @param userId
* @param appId
* @param orderType
* @param distributionFee
* @return
*/
private ActivityCalculationDiscountRequestDto getActivityCalculationDiscountRequestDto(String partnerId, String storeId, String userId, String appId, Integer orderType, Long distributionFee) {
ActivityCalculationDiscountRequestDto activityCalculationDiscountRequestDto = new ActivityCalculationDiscountRequestDto();
activityCalculationDiscountRequestDto.setPartnerCode(partnerId);
activityCalculationDiscountRequestDto.setStoreId(storeId);
activityCalculationDiscountRequestDto.setIsShowGoodsActivity(1);
activityCalculationDiscountRequestDto.setUserId(userId);
activityCalculationDiscountRequestDto.setVer(1);
activityCalculationDiscountRequestDto.setAppId(appId);
activityCalculationDiscountRequestDto.setDistributionFee(distributionFee);
ActivityChannelEnum activityChannelEnum = PropertyConvertUtil.orderTypeConvert2ActivityChannel(orderType);
if (!Objects.isNull(activityChannelEnum)) {
activityCalculationDiscountRequestDto.setChannel(activityChannelEnum.getCode());
}
return activityCalculationDiscountRequestDto;
}
/** /**
* 累加需加入计算的商品 * 累加需加入计算的商品
...@@ -871,7 +928,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -871,7 +928,8 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
* @param cartGoodsList * @param cartGoodsList
* @param shoppingCartGoodsResponseVo * @param shoppingCartGoodsResponseVo
*/ */
private void updateShoppingCartGoodsDiscount(CouponPromotionVO couponPromotionVO, ActivityQueryDto activityQueryDto, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo, UserLoginInfoDto userLoginInfoDto) { private void updateShoppingCartGoodsDiscount(CouponPromotionVO couponPromotionVO, ActivityQueryDto activityQueryDto, ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult, List<CartGoods> cartGoodsList
, ShoppingCartGoodsResponseVo shoppingCartGoodsResponseVo, ShoppingCartInfoRequestVo shoppingCartInfoRequestVo, UserLoginInfoDto userLoginInfoDto,String menuType,Long deliveryAmount) {
//默认计算优惠 //默认计算优惠
DefaultPromotionService defaultPromotionService = (DefaultPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.DEFAULT_PROMOTION); DefaultPromotionService defaultPromotionService = (DefaultPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.DEFAULT_PROMOTION);
defaultPromotionService.updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, userLoginInfoDto, shoppingCartInfoRequestVo); defaultPromotionService.updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, userLoginInfoDto, shoppingCartInfoRequestVo);
...@@ -943,6 +1001,72 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -943,6 +1001,72 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
BuyAndGiftsPromotionService buyAndGiftsPromotionService =(BuyAndGiftsPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.BUY_GIFTS); BuyAndGiftsPromotionService buyAndGiftsPromotionService =(BuyAndGiftsPromotionService) PromotionFactory.getPromotionService(ShoppingCartPromotionEnum.BUY_GIFTS);
buyAndGiftsPromotionService.updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, userLoginInfoDto, shoppingCartInfoRequestVo); buyAndGiftsPromotionService.updateShoppingCartGoodsDiscount(couponPromotionVO, activityQueryDto, calculationDiscountResult, cartGoodsList, shoppingCartGoodsResponseVo, userLoginInfoDto, shoppingCartInfoRequestVo);
/**
* 满额减配送费
*/
if(BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType)) {
DecimalFormat df = new DecimalFormat("###.##");
List<ActivityTypeEnum> activityTypeEnums = new LinkedList<>();
activityTypeEnums.add(ActivityTypeEnum.TYPE_14);
ActivityQueryResponseDto activityQueryResponseDto = activityService.queryActivityByType(activityQueryDto, activityTypeEnums, null);
ActivityResponseDto activityResponse =null;
BenefitBeanDto beanDto=null;
if (activityQueryResponseDto != null &&activityQueryResponseDto.getResult()!=null && activityQueryResponseDto.getResult().size()>0) {
activityResponse = activityQueryResponseDto.getResult().get(0);
shoppingCartGoodsResponseVo.setDiscountDeliveryActivityCode(activityResponse.getActivityCode());
beanDto=activityResponse.getBenefits().get(0);
}
ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount discount=null;
if (calculationDiscountResult != null && CollectionUtils.isNotEmpty(calculationDiscountResult.getDiscounts())) {
Optional<ActivityCalculationDiscountResponseDto.CalculationDiscountResult.Discount> discountop
= calculationDiscountResult.getDiscounts().stream()
.filter(discount1 -> {
return ActivityTypeEnum.TYPE_14.getCode().equals(discount1.getType());
})
.findFirst();
discount=discountop.orElseGet(() -> {return null ;});
}
if(discount!=null){
if(beanDto.getBenefitType() == 1){
String desc = DELIVERY_DISCOUNT_DESC2;
shoppingCartGoodsResponseVo.setDeliveryDiscountDesc(String.format(desc, df.format(beanDto.getThresholdAmount().doubleValue() /100) ));
}else{
String desc = DELIVERY_DISCOUNT_DESC1;
shoppingCartGoodsResponseVo.setDeliveryDiscountDesc(String.format(desc, df.format(beanDto.getThresholdAmount().doubleValue() /100) ,df.format(beanDto.getDiscountAmount().doubleValue() / 100)));
}
shoppingCartGoodsResponseVo.setDeliveryAmount(calculationDiscountResult.getDeliveryAmount());
shoppingCartGoodsResponseVo.setDiscountDeliveryAmount(calculationDiscountResult.getDistributionFee());
shoppingCartGoodsResponseVo.setThresholdAmount(discount.getThresholdAmount());
shoppingCartGoodsResponseVo.setIsDiscountDelivery(true);
}else{
if (activityResponse!=null) {
if(beanDto.getBenefitType() == 1){
String desc = DELIVERY_DISCOUNT_DESC2;
shoppingCartGoodsResponseVo.setDeliveryDiscountDesc(String.format(desc, df.format(beanDto.getThresholdAmount().doubleValue() /100) ));
}else{
String desc = DELIVERY_DISCOUNT_DESC1;
shoppingCartGoodsResponseVo.setDeliveryDiscountDesc(String.format(desc, df.format(beanDto.getThresholdAmount().doubleValue() /100 ),df.format(beanDto.getDiscountAmount().doubleValue() / 100)));
}
shoppingCartGoodsResponseVo.setDeliveryAmount(deliveryAmount);
shoppingCartGoodsResponseVo.setDiscountDeliveryAmount(deliveryAmount);
shoppingCartGoodsResponseVo.setIsDiscountDelivery(false);
}else{
String desc = DELIVERY_DISCOUNT_DESC3;
shoppingCartGoodsResponseVo.setDeliveryDiscountDesc(String.format(desc, df.format(deliveryAmount.doubleValue() / 100)));
shoppingCartGoodsResponseVo.setDeliveryAmount(deliveryAmount);
shoppingCartGoodsResponseVo.setDiscountDeliveryAmount(deliveryAmount);
shoppingCartGoodsResponseVo.setIsDiscountDelivery(false);
}
}
}
} }
/** /**
...@@ -1143,26 +1267,22 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1143,26 +1267,22 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
} }
// 给前端展示
shoppingCartGoodsResponseVo.setNewPackAmount(shoppingCartGoodsResponseVo.getPackAmount());
// 更新和添加商品时不需要包装费 // 更新和添加商品时不需要包装费
if (ShoppingCartConstant.ADD_AND_UPDATE.equals(opt)) { if (ShoppingCartConstant.ADD_AND_UPDATE.equals(opt)) {
shoppingCartGoodsResponseVo.setPackAmount(null); shoppingCartGoodsResponseVo.setNewPackAmount(null);
return; return;
} }
//========================== 购物车查询特有逻辑 ================================= //========================== 购物车查询特有逻辑 =================================
// 到店自取包装费设为null,外卖要计算包装费,flag为1表示去结算 // 到店自取包装费设为null,外卖要计算包装费,flag为1表示去结算
// 兼容老版本判断null // 兼容老版本判断null
if (Objects.equals(shoppingCartInfoRequestVo.getOrderType(), CreateOrderType.COLLECT_GOODS.getCode()) if (Objects.equals(shoppingCartInfoRequestVo.getOrderType(), CreateOrderType.COLLECT_GOODS.getCode())
&& (Objects.equals(shoppingCartInfoRequestVo.getReachStoreType(), null) && (Objects.equals(shoppingCartInfoRequestVo.getReachStoreType(), null)
|| Objects.equals(shoppingCartInfoRequestVo.getReachStoreType(), OrderType.EAT_IN.getCode()))) { || Objects.equals(shoppingCartInfoRequestVo.getReachStoreType(), OrderType.EAT_IN.getCode()))) {
shoppingCartGoodsResponseVo.setPackAmount(null); shoppingCartGoodsResponseVo.setNewPackAmount(null);
} else if ((Objects.equals(shoppingCartInfoRequestVo.getOrderType(), CreateOrderType.TAKE_OUT.getCode()) } else if ((Objects.equals(shoppingCartInfoRequestVo.getOrderType(), CreateOrderType.TAKE_OUT.getCode())
|| Objects.equals(shoppingCartInfoRequestVo.getReachStoreType(), OrderType.COLLECT_GOODS.getCode())) || Objects.equals(shoppingCartInfoRequestVo.getReachStoreType(), OrderType.COLLECT_GOODS.getCode()))
&& Objects.equals(shoppingCartInfoRequestVo.getFlag(), CouponFlag.YES.getCode())) { && Objects.equals(shoppingCartInfoRequestVo.getFlag(), CouponFlag.YES.getCode())) {
Long packAmount = shoppingCartGoodsResponseVo.getPackAmount() == null ? 0 : shoppingCartGoodsResponseVo.getPackAmount(); Long packAmount = shoppingCartGoodsResponseVo.getNewPackAmount() == null ? 0 : shoppingCartGoodsResponseVo.getNewPackAmount();
Long originalTotalAmount = shoppingCartGoodsResponseVo.getOriginalTotalAmount() + packAmount; Long originalTotalAmount = shoppingCartGoodsResponseVo.getOriginalTotalAmount() + packAmount;
Long totalAmount = shoppingCartGoodsResponseVo.getTotalAmount() + packAmount; Long totalAmount = shoppingCartGoodsResponseVo.getTotalAmount() + packAmount;
shoppingCartGoodsResponseVo.setOriginalTotalAmount(originalTotalAmount); shoppingCartGoodsResponseVo.setOriginalTotalAmount(originalTotalAmount);
...@@ -1246,8 +1366,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1246,8 +1366,10 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
if (response.getData() == null || response.getData().getData() == null || response.getData().getData().getCardSimpleInfos().size() > 1) { if (response.getData() == null || response.getData().getData() == null || response.getData().getData().getCardSimpleInfos().size() > 1) {
throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR); throw new ServiceException(ResponseResult.USER_SVC_CARD_ERROR);
} }
if (StringUtils.isNotBlank(receiveId)) { //获取实际配送费
Integer deliveryAmount = getDeliveryAmount(receiveId, partnerId, storeId); if (StringUtils.isNotBlank(receiveId) && shoppingCartGoodsResponseVo.getDiscountDeliveryAmount() != null) {
// Integer deliveryAmount = getDeliveryAmount(receiveId, partnerId, storeId);
Integer deliveryAmount = shoppingCartGoodsResponseVo.getDiscountDeliveryAmount().intValue();
orderAmount += deliveryAmount; orderAmount += deliveryAmount;
} }
Integer amount1 = response.getData().getData().getCardSimpleInfos().get(0).getAmount(); Integer amount1 = response.getData().getData().getCardSimpleInfos().get(0).getAmount();
...@@ -1341,4 +1463,33 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1341,4 +1463,33 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return point2DList; return point2DList;
} }
/**
* 获取优惠
*/
private ActivityCalculationDiscountResponseDto.CalculationDiscountResult getCalculationDiscountResult(String menuType
,String partnerId,String storeId,String userId,String appId,String wxappid,Integer orderType
,List<CartGoods> cartGoodsList,List<ActivityCalculationDiscountRequestDto.CalculationDiscountCoupon> coupons
,List<ShoppingCartInfoRequestVo.SendGoods> sendGoodsList,String receiveId,Long deliveryAmount){
// 获取优惠信息
ActivityCalculationDiscountResponseDto.CalculationDiscountResult calculationDiscountResult=null;
//外卖场景下 查询门店配送信息
if(BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(menuType)){
calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType, cartGoodsList, coupons, sendGoodsList,BusinessTypeEnum.getByType(menuType).getCode(),deliveryAmount);
}else{
calculationDiscountResult = this.getActivityCalculationDiscountResponse(partnerId, storeId, userId, appId, orderType, cartGoodsList, coupons, sendGoodsList,BusinessTypeEnum.getByType(menuType).getCode(),null);
}
return calculationDiscountResult;
}
private Long calculateDeliveryAmount(String receiveId,String partnerId,String storeId,String wxappid){
Long deliveryAmount = 0l;
if(receiveId==null) {
}else{
deliveryAmount = Long.parseLong(getDeliveryAmount(receiveId,partnerId,storeId).toString());
}
return deliveryAmount;
}
} }
...@@ -297,14 +297,14 @@ public class LogUtil { ...@@ -297,14 +297,14 @@ public class LogUtil {
if (method != null) { if (method != null) {
PostMapping postMapping = AnnotationUtils.getAnnotation(method, PostMapping.class); PostMapping postMapping = AnnotationUtils.getAnnotation(method, PostMapping.class);
uri = uriPre + (!Objects.equals(postMapping, null) && postMapping.path().length > 0 ? postMapping.path()[0] : ""); uri = uriPre + (!Objects.equals(postMapping, null) && postMapping.path().length > 0 ? postMapping.path()[0] : "");
} if (StringUtils.isEmpty(uri)) {
if (StringUtils.isEmpty(uri)) { GetMapping getMapping = AnnotationUtils.getAnnotation(method, GetMapping.class);
GetMapping getMapping = AnnotationUtils.getAnnotation(method, GetMapping.class); uri = uriPre + (!Objects.equals(getMapping, null) && getMapping.path().length > 0 ? getMapping.path()[0] : "");
uri = uriPre + (!Objects.equals(getMapping, null) && getMapping.path().length > 0 ? getMapping.path()[0] : ""); }
} if (StringUtils.isEmpty(uri)) {
if (StringUtils.isEmpty(uri)) { RequestMapping methodRequestMapping = AnnotationUtils.getAnnotation(method, RequestMapping.class);
RequestMapping methodRequestMapping = AnnotationUtils.getAnnotation(method, RequestMapping.class); uri = uriPre + (!Objects.equals(methodRequestMapping, null) && methodRequestMapping.path().length > 0 ? methodRequestMapping.path()[0] : "");
uri = uriPre + (!Objects.equals(methodRequestMapping, null) && methodRequestMapping.path().length > 0 ? methodRequestMapping.path()[0] : ""); }
} }
ThirdPartLogVo thirdPartLogVo = new ThirdPartLogVo(); ThirdPartLogVo thirdPartLogVo = new ThirdPartLogVo();
thirdPartLogVo.setThirdPartName(serviceName); thirdPartLogVo.setThirdPartName(serviceName);
......
...@@ -8,4 +8,4 @@ apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080 ...@@ -8,4 +8,4 @@ apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080
env=pro env=pro
apollo.bootstrap.enabled=true apollo.bootstrap.enabled=true
apollo.cluster=pre-release apollo.cluster=pre-release
apollo.bootstrap.namespaces=micro_progeram_commons,shopping_cart apollo.bootstrap.namespaces=shopping_cart,micro_progeram_commons
\ No newline at end of file \ No newline at end of file
...@@ -9,4 +9,4 @@ apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080 ...@@ -9,4 +9,4 @@ apollo.meta=http://open-store-apollo-configservice-pro.open-store.svc:8080
env=pro env=pro
apollo.cluster=default apollo.cluster=default
apollo.bootstrap.enabled=true apollo.bootstrap.enabled=true
apollo.bootstrap.namespaces=micro_progeram_commons,shopping_cart apollo.bootstrap.namespaces=shopping_cart,micro_progeram_commons
\ No newline at end of file \ No newline at end of file
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