Commit a2d37e76 by xiaoer.li@freemud.com

Merge branch 'develop' of…

Merge branch 'develop' of http://gitlab.freemud.com/order-group-application/order-group into develop
parents f33130b2 e09bb1de
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.5.6-SNAPSHOT</version>
<version>1.5.8-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -38,7 +38,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.3.3-SNAPSHOT</version>
<version>1.3.5-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......
......@@ -46,4 +46,6 @@
| 1.3.4.RELEASE | 记录真实配送费 | 海波 | 2020-04-27 |
| 1.3.5.RELEASE | oms正向履单流程 | 侯书虎 | 2020-04-27 |
| 1.3.6.RELEASE | 蜜雪 | 丁凯 | 2020-04-27 |
| 1.5.6-SNAPSHOT | 返回售后单创建时间 | wuping | 2020-04-27 |
\ No newline at end of file
| 1.5.6-SNAPSHOT | 返回售后单创建时间 | wuping | 2020-04-27 |
| 1.5.7-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
| 1.5.8-SNAPSHOT | 费用实体添加字段:实际费用 | 胡超 | 2020-04-29 |
\ No newline at end of file
......@@ -654,6 +654,7 @@ public class OrderSdkAdapter {
accountBean.setName(orderCostResp.getCostName());
accountBean.setNumber(1);
accountBean.setPrice(orderCostResp.getCostAmount().longValue());
accountBean.setActualCostAmount(null != orderCostResp.getActualCostAmount() ? orderCostResp.getActualCostAmount().longValue() : 0);
accountBean.setSequence(orderCostResp.getProductSeq());
//新订单服务 1=包装费,2=运费,5=会员卡费用
if (orderCostResp.getCostType() == 2) {
......
......@@ -23,6 +23,8 @@ public class CancelOrderRequest extends BaseConfig {
private String partnerId;
private String storeId;
private AfterSalesType afterSalesType;
/**
* 订单ID
......
......@@ -567,6 +567,11 @@ public class QueryOrdersResponse {
* 优惠金额
*/
private Long price;
// 实际金额
private Long actualCostAmount;
private Integer sequence;
/**
* 结算对象类型 1 运费 2折扣 3包装费 4积分 5 优惠券 6线下支付 7 微信 8 支付宝 9 商户金额
......
......@@ -362,7 +362,8 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
&& !ObjectUtils.equals("0", configuration.getAutoChargebackOrderTime())) {
request.setTimeOut(AutoOrderConfigTime.getTime(configuration.getAutoChargebackOrderTime()));
}
setAfterSalesOrderTimeOutTask(request);
OrderTaskReq orderTask = setAfterSalesOrderTimeOutTask();
request.setOrderTask(orderTask);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.createAfterSalesOrder(request, orderRefundRequest.getTrackingNo());
return orderSdkAdapter.convent2BaseOrderResponse(response);
}
......@@ -370,7 +371,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
/**
* 设置申请退款48小时后回调任务
*/
private void setAfterSalesOrderTimeOutTask(CreateAfterSalesOrder request) {
private OrderTaskReq setAfterSalesOrderTimeOutTask() {
OrderTaskReq orderTask = new OrderTaskReq();
orderTask.setTaskType(4);
orderTask.setTimeout(1);
......@@ -382,7 +383,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
orderTask.setTaskTime(DateUtil.convert2String(taskTime, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
//处理时间,当前时间加48小时减1分钟
orderTask.setProcessingTime(DateUtil.convert2String(processingDate, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
request.setOrderTask(orderTask);
return orderTask;
// request.setOrderTask(orderTask);
}
/**
......@@ -483,6 +486,17 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setCreateEvent(cancelOrderRequest.getCreateEvent());
request.setAfterSerialNo(cancelOrderRequest.getRefundSerialNo());
request.setOperator(cancelOrderRequest.getOperator());
//为空发起售后单
if(cancelOrderRequest.getCreateEvent() == null){
// 查询门店服务配置,退单模式为2为自动退款,判断自动退款时间,设置为0则不传入timeout,
StoreResponse.Configuration configuration = getStoreAutoConfiguration(cancelOrderRequest.getPartnerId(), cancelOrderRequest.getStoreId(), cancelOrderRequest.getTrackingNo());
if (configuration != null && ObjectUtils.equals("2", configuration.getAutoChargebackOrderType())
&& !ObjectUtils.equals("0", configuration.getAutoChargebackOrderTime())) {
request.setTimeOut(AutoOrderConfigTime.getTime(configuration.getAutoChargebackOrderTime()));
}
OrderTaskReq orderTask = setAfterSalesOrderTimeOutTask();
request.setOrderTask(orderTask);
}
com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.cancelOrder(request, cancelOrderRequest.getTrackingNo());
return orderSdkAdapter.convent2BaseOrderResponse(response);
}
......
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.5.6-SNAPSHOT</version>
<version>1.5.7-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......@@ -93,7 +93,7 @@
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>storecenter-sdk</artifactId>
<version>2.3.3-SNAPSHOT</version>
<version>2.6.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.freemud</groupId>
......
......@@ -763,12 +763,23 @@ public class OrderAdapter {
fatherOrderInfo.setPayChannel("10102");
fatherOrderInfo.setPayChannelName("储值卡支付");
}
/**
long deliveryAmount = 0;
if (userDeliveryInfoDto != null) {
deliveryAmount = getUserRealDeliveryAmount(userDeliveryInfoDto.getStoreDeliveryInfoDto(), userDeliveryInfoDto.getUserLongitude(), userDeliveryInfoDto.getUserLatitude());
}*/
long discountDeliveryAmount = 0;
if (BusinessTypeEnum.SAAS_DELIVERY.getCode().equals(createOrderVo.getMenuType())) {
long deliveryAmount = shoppingCartGoodsDto.getDeliveryAmount();
discountDeliveryAmount = shoppingCartGoodsDto.getDeliveryAmount();
if(shoppingCartGoodsDto.getIsDiscountDelivery() && deliveryAmount > shoppingCartGoodsDto.getDiscountDeliveryAmount()){
discountDeliveryAmount = shoppingCartGoodsDto.getDiscountDeliveryAmount();
}
}
Long packageAmount = shoppingCartGoodsDto.getPackageAmount() == null ? 0 : shoppingCartGoodsDto.getPackageAmount();
fatherOrderInfo.setAmount(shoppingCartGoodsDto.getTotalAmount() + deliveryAmount + packageAmount);
fatherOrderInfo.setAmount(shoppingCartGoodsDto.getTotalAmount() + discountDeliveryAmount + packageAmount);
return fatherOrderInfo;
}
......@@ -990,6 +1001,8 @@ public class OrderAdapter {
responseVo.setRefundStatusDesc(Optional.ofNullable(RefundStatus.getByCode(refundBean.getStatus()))
.map(RefundStatus::getDesc).orElse(""));
responseVo.setRefundReason(refundBean.getReason());
String refundCreateTime = DateUtil.convert2String(new Date(Long.parseLong(refundBean.getCreateTime())),DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
responseVo.setRefundCreateTime(refundCreateTime);
}
}
//商品信息转换
......@@ -2773,4 +2786,52 @@ public class OrderAdapter {
createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount(), orderExtInfoDTO);
}
public Integer getNewOrderClient(String name) {
String _name = OrderSourceType.SAAS.getCode();
Integer orderClientType;
switch (name) {
case "saas":
orderClientType = 2;
break;
case "alipay":
orderClientType=3;
break;
case "jdwm":
orderClientType = 10;
break;
case "mtwm":
orderClientType = 11;
break;
case "eleme":
orderClientType = 8;
break;
case "bdwm":
orderClientType = 9;
break;
case "ebwm":
orderClientType = 9;
break;
case "saas_member":
orderClientType = 13;
break;
case "saas_order":
orderClientType = 14;
break;
case "pos":
orderClientType = 15;
break;
case "meal":
orderClientType = 19;
break;
case "saasmall":
orderClientType = 23;
break;
default:
orderClientType = OrderClientType.SAAS.getIndex();
break;
}
return orderClientType;
}
}
......@@ -199,6 +199,16 @@ public class QueryOrderResponseVo {
private String rid;
/**
* 申请退款时间 yyyy-MM-dd HH:mm:ss
*/
private String refundCreateTime;
/**
* 退款文案提示 若48小时后商家未处理,自动同意/拒绝退款
*/
private String refundTips;
/**
* 订单备注
*/
private String orderRemark;
......
......@@ -46,7 +46,9 @@ import com.freemud.application.sdk.api.membercenter.response.GetSvcInfoByMemberI
import com.freemud.application.sdk.api.membercenter.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.membercenter.service.MemberPropertyService;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.google.common.collect.Lists;
......@@ -55,6 +57,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.awt.geom.Point2D;
......@@ -66,6 +69,10 @@ import java.util.stream.Collectors;
@Component
public class CheckOrder {
// 配送费逻辑是否使用旧的
@Value("${store.delivery.use.old:false}")
private boolean storeDeliveryUseOld;
@Autowired
private StoreTableNumberManager storeTableNumberManager;
@Autowired
......@@ -249,7 +256,12 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
}
//获取门店配送信息
StoreDeliveryInfoDto storeDeliveryInfoDto = getStoreDeliveryInfo(storeResponseDto, config, appId);
StoreDeliveryInfoDto storeDeliveryInfoDto = null;
if(storeDeliveryUseOld) {
storeDeliveryInfoDto = getStoreDeliveryInfo(storeResponseDto, config, appId);
} else {
storeDeliveryInfoDto = getNewStoreDeliveryInfo(storeResponseDto, config, appId, trackingNo);
}
//订单金额小于起送费提示
if (storeDeliveryInfoDto.getDeliveryLimitAmount() > totalAmount) {
throw new ServiceException(ResponseResult.STORE_DISCONTENT_DELIVERY_FEE);
......@@ -417,6 +429,59 @@ public class CheckOrder {
}
/**
* 获取门店配送信息
*/
public StoreDeliveryInfoDto getNewStoreDeliveryInfo(StoreResponse.BizVO storeResponseDto,
OpenPlatformIappWxappConfig openPlatformIappWxappConfig, String wxAppid, String trackingNo) {
StoreDeliveryInfoDto storeDeliveryInfoDto = new StoreDeliveryInfoDto();
storeDeliveryInfoDto.setPartnerId(storeResponseDto.getPartnerId());
storeDeliveryInfoDto.setStoreId(storeResponseDto.getStoreCode());
storeDeliveryInfoDto.setStoreName(storeResponseDto.getStoreName());
// 查询外卖配送信息
QueryDeliveryRequest queryDeliveryRequest = new QueryDeliveryRequest();
queryDeliveryRequest.setPartnerId(storeResponseDto.getPartnerId());
queryDeliveryRequest.setStoreCode(storeResponseDto.getStoreCode());
BaseResponse<QueryDeliverDetailResponse> queryDeliverDetailResponse = storeCenterService.queryDeliverDetail(queryDeliveryRequest, trackingNo);
if (queryDeliverDetailResponse == null || !ResponseResult.SUCCESS.getCode().equals(queryDeliverDetailResponse.getCode()) || queryDeliverDetailResponse.getData() == null) {
throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
}
QueryDeliverDetailResponse deliveryDetail = queryDeliverDetailResponse.getData();
// 判断门店是否启用外卖,只有当小程序开通外卖,且门店开通外卖,设置 外卖配送时间 才开启外卖功能
storeDeliveryInfoDto.setDeliveryLimitAmount(StringUtils.isBlank(deliveryDetail.getMinOrderPrice()) ? 0L : Long.parseLong(deliveryDetail.getMinOrderPrice()));
storeDeliveryInfoDto.setDeliveryAmount(StringUtils.isBlank(deliveryDetail.getDeliveryFee()) ? 0L : Long.parseLong(deliveryDetail.getDeliveryFee()));
storeDeliveryInfoDto.setDefaultDeliveryRange(StringUtils.isBlank(deliveryDetail.getDeliveryRange()) ? 0L : Long.parseLong(deliveryDetail.getDeliveryRange()));
storeDeliveryInfoDto.setAddRangeAmount(StringUtils.isBlank(deliveryDetail.getAddRangeAmount()) ? 0L : Long.parseLong(deliveryDetail.getAddRangeAmount()));
storeDeliveryInfoDto.setAddRangeCount(StringUtils.isBlank(deliveryDetail.getAddRange()) ? 0L : Long.parseLong(deliveryDetail.getAddRange()));
storeDeliveryInfoDto.setPoint2DList(getDeliveryPoint2DList(storeResponseDto.getDistributionScope()));
storeDeliveryInfoDto.setDeliveryHoursDay(storeResponseDto.getDeliveryHoursDay());
storeDeliveryInfoDto.setLongitude(storeResponseDto.getLongitude());
storeDeliveryInfoDto.setLatitude(storeResponseDto.getLatitude());
storeDeliveryInfoDto.setScopeConfig(storeResponseDto.getScopeConfig());
if (StringUtils.isNotEmpty(storeResponseDto.getDeliveryRadius())) {
storeDeliveryInfoDto.setDeliveryRadius(Integer.valueOf(storeResponseDto.getDeliveryRadius()));
} else {
storeDeliveryInfoDto.setDeliveryRadius(0);
}
// 只有小程序设置了外卖,并且开通了第三方配送账户,才是第三方配送单
if (openPlatformIappWxappConfig == null) {
openPlatformIappWxappConfig = openPlatformIappWxappConfigManager.selectIappWxappConfigByWxAppId(wxAppid);
}
if (openPlatformIappWxappConfig == null) {
storeDeliveryInfoDto.setDeliveryType("self");
storeDeliveryInfoDto.setPushOrderTime(0);
} else {
if (ObjectUtils.equals(openPlatformIappWxappConfig.getTakeType(), 1)) {
storeDeliveryInfoDto.setDeliveryType("self");
storeDeliveryInfoDto.setPushOrderTime(0);
} else {
storeDeliveryInfoDto.setDeliveryType("third");
storeDeliveryInfoDto.setPushOrderTime(0);
}
}
return storeDeliveryInfoDto;
}
/**
* 获取配送范围内集合
*/
public List<Point2D.Double> getDeliveryPoint2DList(String distributionScope) {
......
......@@ -46,7 +46,6 @@ import cn.freemud.redis.RedisCache;
import cn.freemud.service.BuriedPointService;
import cn.freemud.service.CouponActivityService;
import cn.freemud.service.Orderservice;
import cn.freemud.service.process.WechatPush.WechatPushProcessor;
import cn.freemud.service.thirdparty.*;
import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON;
......@@ -96,6 +95,7 @@ import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest;
import com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService;
import com.freemud.sdk.api.assortment.order.adapter.ActivitySdkAdapter;
import com.freemud.sdk.api.assortment.order.entities.OrderExtInfoDTO;
import com.freemud.sdk.api.assortment.order.enums.OldOrderStatus;
import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*;
import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
......@@ -934,6 +934,17 @@ public class OrderServiceImpl implements Orderservice {
throw new ServiceException(ResponseResult.ORDER_QUERYORDER_ERROR);
}
QueryOrderResponseVo queryOrderResponseVo = queryOrderResponseVos.get(0);
//48小时自动退款描述
if (storeInfo != null && storeInfo.getBizVO() != null && storeInfo.getBizVO().getStoreConfig()!= null
&& queryOrderResponseVo.getRefundStatus() != null && queryOrderResponseVo.getRefundStatus() == 1) {
Integer automaticRefund = storeInfo.getBizVO().getStoreConfig().getAutomaticRefund();
if(automaticRefund != null && automaticRefund == 1){
queryOrderResponseVo.setRefundTips("若48小时后商家未处理,自动同意");
}else {
queryOrderResponseVo.setRefundTips("若48小时后商家未处理,拒绝退款");
}
}
if (IappIdType.WC_XCX.getCode().equals(userInfo.getIappId())) {
queryOrderResponseVo.getProducts().stream().forEach(each -> {
orderBean.getProductList().forEach(var -> {
......@@ -1137,15 +1148,35 @@ public class OrderServiceImpl implements Orderservice {
// 删除订单 通知活动添加商品库存
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
} else {
com.freemud.sdk.api.assortment.order.request.order.OrderRefundRequest var1 = new com.freemud.sdk.api.assortment.order.request.order.OrderRefundRequest();
OrderRefundRequestDto orderRefundRequestDto = orderAdapter.convent2OrderRefundRequestDto(orderRefundVo, orderBean.getOid());
BeanUtil.convertBean(orderRefundRequestDto, var1);
var1.setTrackingNo(LogTreadLocal.getTrackingNo());
var1.setPartnerId(orderRefundVo.getPartnerId());
var1.setStoreId(orderBean.getShopId());
var1.setOrderStatus(orderBean.getStatus());
var1.setOperator(orderBean.getUserName());
BaseOrderResponse baseResponseDto = orderCenterSdkService.orderRefund(var1);
// com.freemud.sdk.api.assortment.order.request.order.OrderRefundRequest var1 = new com.freemud.sdk.api.assortment.order.request.order.OrderRefundRequest();
// OrderRefundRequestDto orderRefundRequestDto = orderAdapter.convent2OrderRefundRequestDto(orderRefundVo, orderBean.getOid());
// BeanUtil.convertBean(orderRefundRequestDto, var1);
// var1.setTrackingNo(LogTreadLocal.getTrackingNo());
// var1.setPartnerId(orderRefundVo.getPartnerId());
// var1.setStoreId(orderBean.getShopId());
// var1.setOrderStatus(orderBean.getStatus());
// var1.setOperator(orderBean.getUserName());
// BaseOrderResponse baseResponseDto = orderCenterSdkService.orderRefund(var1);
CancelOrderRequest cancelOrderRequest = new CancelOrderRequest();
cancelOrderRequest.setPartnerId(orderBean.getCompanyId());
cancelOrderRequest.setStoreId(orderBean.getShopId());
cancelOrderRequest.setOrderId(orderBean.getOid());
cancelOrderRequest.setOrderClient(orderAdapter.getNewOrderClient(orderBean.getSource()));
//传入的售后单类型为:2:售中用户取消 8:售后申请
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_CANCEL);
if (OldOrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
cancelOrderRequest.setAfterSalesType(AfterSalesType.USER_SALE_RETURN);
}
// cancelOrderRequest.setCreateEvent(null);
cancelOrderRequest.setReason(orderRefundVo.getReason());
cancelOrderRequest.setReqRemark(orderRefundVo.getRemarks());
cancelOrderRequest.setOperator(orderBean.getUserName());
cancelOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
BaseOrderResponse baseResponseDto = orderCenterSdkService.orderCancel(cancelOrderRequest);
if (!RESPONSE_SUCCESS_CODE.equals(baseResponseDto.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), baseResponseDto.getErrmsg());
}
......@@ -1153,7 +1184,7 @@ public class OrderServiceImpl implements Orderservice {
sendPosMessage(partnerId, orderBean.getShopId());
}
//通知小助手发送申请退款公众号订阅消息
sendApplyRefundSubscriptionNotice(orderBean,var1);
sendApplyRefundSubscriptionNotice(orderBean,orderRefundVo);
//已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票
printApplyRefundSmallTicket(orderBean, orderRefundVo);
}
......@@ -2103,7 +2134,7 @@ public class OrderServiceImpl implements Orderservice {
* 通知小助手发送申请退款公众号订阅消息
* @param orderBean
*/
public void sendApplyRefundSubscriptionNotice(OrderBean orderBean,OrderRefundRequest request) {
public void sendApplyRefundSubscriptionNotice(OrderBean orderBean,OrderRefundVo request) {
LogUtil.debug("sendApplyRefundSubscriptionNotice", JSONObject.toJSONString(request), null);
String partnerId = orderBean.getCompanyId();
String shopId = orderBean.getShopId();
......@@ -2136,7 +2167,7 @@ public class OrderServiceImpl implements Orderservice {
MpTemplateMsgDataValue keyword5 = new MpTemplateMsgDataValue();
keyword5.setValue(orderBean.getPhone());
MpTemplateMsgDataValue remark = new MpTemplateMsgDataValue();
remark.setValue(request.getReason()+","+request.getRemark());
remark.setValue(request.getReason()+","+request.getRemarks());
data.setFirst(first);
data.setKeyword1(keyword1);
data.setKeyword2(keyword2);
......
......@@ -22,6 +22,7 @@ import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.CheckBeforeCreateOrderRequestVo;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.OrderRefundVo;
import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.ApportionType;
import cn.freemud.service.impl.OrderServiceImpl;
......@@ -78,9 +79,9 @@ public class OrderServiceTest {
@Test
public void sendApplyRefundSubscriptionNoticeTest() {
OrderRefundRequest request = new OrderRefundRequest();
OrderRefundVo request = new OrderRefundVo();
request.setReason("下错单");
request.setRemark("不要了");
request.setRemarks("不要了");
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId("16420126386356464000002");
QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
......
......@@ -8,7 +8,7 @@
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.3.3-SNAPSHOT</version>
<version>1.3.5-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId>
<dependencies>
......
......@@ -22,4 +22,6 @@
| 1.3.2-SNAPSHOT | 增加异常单状态字段 | 李小二 | 2020-04-17 |
| 1.2.1.RELEASE | oms接单 | 侯书虎 | 2020-04-13 |
| 1.2.2.RELEASE | 新增真实配送费 | 海波 | 2020-04-27 |
| 1.3.3-SNAPSHOT | 增加创建售后单任务 | wuping | 2020-04-27 |
\ No newline at end of file
| 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
| 1.3.4-SNAPSHOT | 取消订单增加任务 | wuping | 2020-04-28 |
| 1.3.5-SNAPSHOT | 费用实体添加字段:实际费用 | 胡超 | 2020-04-29 |
\ No newline at end of file
......@@ -12,6 +12,7 @@
*/
package com.freemud.application.sdk.api.ordercenter.request;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import lombok.Data;
@Data
......@@ -59,4 +60,9 @@ public class OrderCancelReq {
//操作人
private String operator;
private Integer timeOut;
//任务
private OrderTaskReq orderTask;
}
......@@ -39,6 +39,9 @@ public class OrderCostResp {
//费用金额
private BigDecimal costAmount;
//实际金额
private BigDecimal actualCostAmount;
//备注
private String note;
......
......@@ -59,7 +59,7 @@
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<version>1.4.1-SNAPSHOT</version>
<version>2.6.1-SNAPSHOT</version>
<artifactId>storecenter-sdk</artifactId>
</dependency>
......
......@@ -58,6 +58,7 @@ public enum ResponseResult {
STORE_BUSINESS_HOUR_ERROR("43010", "门店营业时间错误"),
STORE_NOT_ENABLE_COLLECT_GOODS("43011", "门店不支持到店"),
STORE_MALL_NOT_FOUND("43012", "商城门店不存在"),
STORE_DELIVERY_AMOUNT_ERROR("43013", "配送费错误"),
/**
* 购物车状态码
......
......@@ -49,7 +49,9 @@ 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.service.PaymentNewService;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import com.freemud.application.sdk.api.storecenter.request.QueryDeliveryRequest;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.QueryDeliverDetailResponse;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
......@@ -85,6 +87,10 @@ import static java.util.stream.Collectors.toList;
@Service
public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 配送费逻辑是否使用旧的
@Value("${store.delivery.use.old:false}")
private boolean storeDeliveryUseOld;
@Autowired
private ActivityAdapter activityAdapter;
@Autowired
......@@ -1464,6 +1470,34 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return amount;
}
private Long getNewDeliveryAmount(String receiveId, String partnerId, String storeId) {
String trackingNo = LogThreadLocal.getTrackingNo();
Long amount = 0L;
if (StringUtils.isBlank(receiveId)) {
return amount;
}
QueryReceiveAddressRequest queryReceive = new QueryReceiveAddressRequest(receiveId, partnerId);
//查询会员后货地址经纬度
com.freemud.application.sdk.api.base.BaseResponse<QueryReceiveAddressResponse> queryReceiveAddressResponse = memberCenterService.queryReceiveAddressById(queryReceive, trackingNo);
if (!ResponseResult.SUCCESS.getCode().equals(queryReceiveAddressResponse.getCode()) || queryReceiveAddressResponse.getData() == null) {
throw new ServiceException(ResponseResult.USER_GETRECEIVEADDRESS_ERROR);
}
QueryDeliveryRequest queryDeliveryRequest = new QueryDeliveryRequest();
queryDeliveryRequest.setPartnerId(partnerId);
queryDeliveryRequest.setStoreCode(storeId);
queryDeliveryRequest.setUserLatitude(queryReceiveAddressResponse.getData().getLatitude());
queryDeliveryRequest.setUserLongitude(queryReceiveAddressResponse.getData().getLongitude());
com.freemud.application.sdk.api.base.BaseResponse<QueryDeliverDetailResponse> queryDeliverDetailResponse = storeCenterService.queryDeliverDetail(queryDeliveryRequest, trackingNo);
if (queryDeliverDetailResponse == null || !ResponseResult.SUCCESS.getCode().equals(queryDeliverDetailResponse.getCode()) || queryDeliverDetailResponse.getData() == null) {
throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY);
}
if(queryDeliverDetailResponse.getData().getDeliveryAmount() == null) {
throw new ServiceException(ResponseResult.STORE_DELIVERY_AMOUNT_ERROR);
}
return queryDeliverDetailResponse.getData().getDeliveryAmount();
}
/**
* 获取配送范围内集合
*/
......@@ -1509,12 +1543,18 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
}
private Long calculateDeliveryAmount(String receiveId,String partnerId,String storeId,String wxappid){
Long deliveryAmount = 0l;
if(receiveId==null) {
}else{
Long deliveryAmount = 0L;
if(StringUtils.isBlank(receiveId)) {
return deliveryAmount;
}
log.info("获取配送配逻辑 tackingNo:{},storeDeliveryUseOld:{},receiveId:{},partnerId:{},storeId:{}", LogThreadLocal.getTrackingNo(), storeDeliveryUseOld, receiveId, partnerId, storeId);
if(storeDeliveryUseOld) {
deliveryAmount = Long.parseLong(getDeliveryAmount(receiveId,partnerId,storeId).toString());
} else {
deliveryAmount = getNewDeliveryAmount(receiveId, partnerId, storeId);
}
return deliveryAmount;
}
}
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