Commit 1cbe44c2 by 周晓航

Merge branch 'qa' of gitlab.freemud.com:order-group-application/order-group into qa

parents 745dfc00 80e55c83
...@@ -4,6 +4,8 @@ import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq; ...@@ -4,6 +4,8 @@ import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import com.freemud.sdk.api.assortment.order.config.BaseConfig; import com.freemud.sdk.api.assortment.order.config.BaseConfig;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* All rights Reserved, Designed By www.freemud.cn * All rights Reserved, Designed By www.freemud.cn
* *
...@@ -93,4 +95,9 @@ public class UpdateDeliveryInfoByIdRequest extends BaseConfig { ...@@ -93,4 +95,9 @@ public class UpdateDeliveryInfoByIdRequest extends BaseConfig {
*/ */
public Long estimateArriveTime; public Long estimateArriveTime;
/**
* 商家承担的配送费(单位:分)
*/
public BigDecimal businessDeliveryAmount;
} }
...@@ -3,6 +3,8 @@ package cn.freemud.entities.dto.delivery; ...@@ -3,6 +3,8 @@ package cn.freemud.entities.dto.delivery;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* All rights Reserved, Designed By www.freemud.cn * All rights Reserved, Designed By www.freemud.cn
* *
...@@ -91,4 +93,9 @@ public class CallbackUrlRequestDto { ...@@ -91,4 +93,9 @@ public class CallbackUrlRequestDto {
*/ */
public Long estimateArriveTime; public Long estimateArriveTime;
/**
* 商家承担的配送费(单位:分)
*/
public BigDecimal businessDeliveryAmount;
} }
...@@ -13,6 +13,9 @@ ...@@ -13,6 +13,9 @@
package cn.freemud.enums; package cn.freemud.enums;
import java.util.Arrays;
import java.util.List;
/** /**
* 应该是下面这个type对应 * 应该是下面这个type对应
* @see com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType * @see com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType
...@@ -39,6 +42,18 @@ public enum OrderAccountType { ...@@ -39,6 +42,18 @@ public enum OrderAccountType {
private String desc; private String desc;
/**
* 需要 核销的 券 归类
* 代金券
* 商品券
* 运费全
* 折扣券
*/
public static List<Integer> verificationCoupon = Arrays.asList(OrderAccountType.COUPON.getCode(),
OrderAccountType.PRODUCT_COUPON.getCode(),
OrderAccountType.FREIGHT_COUPON.getCode(),
OrderAccountType.DISCOUNT_COUPON.getCode());
OrderAccountType(Integer code, String desc) { OrderAccountType(Integer code, String desc) {
this.code = code; this.code = code;
this.desc = desc; this.desc = desc;
......
...@@ -20,28 +20,21 @@ import cn.freemud.amqp.MQService; ...@@ -20,28 +20,21 @@ import cn.freemud.amqp.MQService;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.JsonUtil; import cn.freemud.base.util.JsonUtil;
import cn.freemud.entities.dto.*; import cn.freemud.entities.dto.*;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.QueryOrderResponseVo;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.management.enums.OrderSource; import cn.freemud.management.enums.OrderSource;
import cn.freemud.service.coupon.CouponRelationFactory;
import cn.freemud.service.coupon.CouponRelationService; import cn.freemud.service.coupon.CouponRelationService;
import cn.freemud.service.impl.StoreServiceImpl; import cn.freemud.service.impl.StoreServiceImpl;
import cn.freemud.service.order.OrderRelationService;
import cn.freemud.service.thirdparty.CouponOfflineClient; import cn.freemud.service.thirdparty.CouponOfflineClient;
import cn.freemud.utils.LogUtil; import cn.freemud.utils.LogUtil;
import cn.freemud.utils.PropertyConvertUtil; import cn.freemud.utils.PropertyConvertUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.couponcenter.offline.service.OfflineCouponSdkService;
import com.freemud.application.sdk.api.log.ErrorLog; import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.log.ThirdPartyLog; import com.freemud.application.sdk.api.log.ThirdPartyLog;
import com.freemud.application.sdk.api.service.EmailAlertService; import com.freemud.application.sdk.api.service.EmailAlertService;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import org.apache.commons.collections4.CollectionUtils;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.google.common.base.Throwables;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -51,7 +44,6 @@ import java.util.ArrayList; ...@@ -51,7 +44,6 @@ import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service("platformCouponRelationService") @Service("platformCouponRelationService")
...@@ -76,7 +68,13 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService ...@@ -76,7 +68,13 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService
@Override @Override
public BaseResponse verificationCoupon(List<QueryOrdersResponseDto.DataBean.OrderBean.AccountBean> accountList, QueryOrdersResponseDto.DataBean.OrderBean orderBean, CouponReqType couponReqType) { public BaseResponse verificationCoupon(List<QueryOrdersResponseDto.DataBean.OrderBean.AccountBean> accountList, QueryOrdersResponseDto.DataBean.OrderBean orderBean, CouponReqType couponReqType) {
if (accountList.size() > 1) { LogUtil.info("fiserhman 券码核销 begin", JSON.toJSONString(accountList), JSON.toJSONString(orderBean));
if (CollectionUtils.isEmpty(accountList)) {
return ResponseUtil.success();
}
// 需要判断 accountList 里面 是都 同时包含 配送券+ other券
boolean isDoubleCoupon = checkAccountList(accountList);
if (isDoubleCoupon) {
Integer code = OrderAccountType.FREIGHT_COUPON.getCode(); Integer code = OrderAccountType.FREIGHT_COUPON.getCode();
// 运费券 塞进 核销接口里面, 这里真的是贼恶心 逻辑不敢动 // 运费券 塞进 核销接口里面, 这里真的是贼恶心 逻辑不敢动
QueryOrdersResponseDto.DataBean.OrderBean.AccountBean freightCouponAccountBean = accountList.stream().filter(accountBean -> code.equals(accountBean.getType())).findFirst().orElse(null); QueryOrdersResponseDto.DataBean.OrderBean.AccountBean freightCouponAccountBean = accountList.stream().filter(accountBean -> code.equals(accountBean.getType())).findFirst().orElse(null);
...@@ -95,6 +93,28 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService ...@@ -95,6 +93,28 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService
} }
/** /**
* 要校验一遍是否 使用了 需要核销的券 代金券 商品券 运费全 折扣券 需要核销
*
* @param accountList 这里会传递 多张券 和其他的计算 类型
* @return
*/
private boolean checkAccountList(List<QueryOrdersResponseDto.DataBean.OrderBean.AccountBean> accountList) {
// 里面只有一个值 直接使用老逻辑 不管是 什么券
if (accountList.size() == 1) {
return false;
}
// 拿出 所有的使用券信息 代金券 商品券 运费全 折扣券 需要核销
int count = 0;
for (QueryOrdersResponseDto.DataBean.OrderBean.AccountBean accountBean : accountList) {
if (OrderAccountType.verificationCoupon.contains(accountBean.getType())){
count ++;
}
}
// 说明使用了 2张以上的优惠券 需要核销
return count > 1;
}
/**
* 原有逻辑没变动的基础上 加上 配送券信息对象 * 原有逻辑没变动的基础上 加上 配送券信息对象
* *
* @param couponCodeVerificationTransDto 配送券信息对象 如果为null 就是原来的逻辑 * @param couponCodeVerificationTransDto 配送券信息对象 如果为null 就是原来的逻辑
...@@ -155,6 +175,9 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService ...@@ -155,6 +175,9 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService
couponCodeVerificationDto.setOrderDiscountAmount(Math.abs(accountBean.getPrice())); couponCodeVerificationDto.setOrderDiscountAmount(Math.abs(accountBean.getPrice()));
// 核销券新增参数:组织机构ID // 核销券新增参数:组织机构ID
couponCodeVerificationDto.setChannel_ids(storeService.getOrgIdsArr(orderBean.getCompanyId(), orderBean.getShopId())); couponCodeVerificationDto.setChannel_ids(storeService.getOrgIdsArr(orderBean.getCompanyId(), orderBean.getShopId()));
boolean ok = false;
Exception lastException = null;
CouponCodeResponseDto couponCodeResponseDto = null;
// 设置配送券的 transactions // 设置配送券的 transactions
if (couponCodeVerificationTransDto != null) { if (couponCodeVerificationTransDto != null) {
List<CouponCodeVerificationTransDto> transactions = couponCodeVerificationDto.getTransactions(); List<CouponCodeVerificationTransDto> transactions = couponCodeVerificationDto.getTransactions();
...@@ -162,9 +185,6 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService ...@@ -162,9 +185,6 @@ public class PlatformCouponRelationServiceImpl implements CouponRelationService
//只 传递一次, 防止后续开发 多张优惠券使用情况 //只 传递一次, 防止后续开发 多张优惠券使用情况
couponCodeVerificationTransDto = null; couponCodeVerificationTransDto = null;
} }
boolean ok = false;
Exception lastException = null;
CouponCodeResponseDto couponCodeResponseDto = null;
try { try {
//71.券核销 //71.券核销
// todo 这循环有啥用-.- // todo 这循环有啥用-.-
......
...@@ -137,6 +137,8 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService { ...@@ -137,6 +137,8 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
requestDto.setExceptionId(request.getExceptionId()); requestDto.setExceptionId(request.getExceptionId());
//【ID1031049】 订单接受配送分配骑手状态回调 //【ID1031049】 订单接受配送分配骑手状态回调
requestDto.setEstimateArriveTime(request.getEstimateArriveTime()); requestDto.setEstimateArriveTime(request.getEstimateArriveTime());
// 【ID1032317】外卖配送完成回调订单基础服务接口添加商户承担运费字段
requestDto.setBusinessDeliveryAmount(request.getBusinessDeliveryAmount());
if (StringUtils.isNotBlank(request.getRemark())) { if (StringUtils.isNotBlank(request.getRemark())) {
requestDto.setRemark("配送:" + request.getRemark()); requestDto.setRemark("配送:" + request.getRemark());
} }
......
...@@ -15,6 +15,8 @@ package com.freemud.application.sdk.api.ordercenter.request; ...@@ -15,6 +15,8 @@ package com.freemud.application.sdk.api.ordercenter.request;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq; import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
@Data @Data
public class OrderExpressReq { public class OrderExpressReq {
...@@ -88,5 +90,10 @@ public class OrderExpressReq { ...@@ -88,5 +90,10 @@ public class OrderExpressReq {
*/ */
public Long estimateArriveTime; public Long estimateArriveTime;
/**
* 商家承担的配送费(单位:分)
*/
public BigDecimal businessDeliveryAmount;
} }
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