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 @@ ...@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.5.6-SNAPSHOT</version> <version>1.5.8-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<version>1.3.3-SNAPSHOT</version> <version>1.3.5-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
......
...@@ -46,4 +46,6 @@ ...@@ -46,4 +46,6 @@
| 1.3.4.RELEASE | 记录真实配送费 | 海波 | 2020-04-27 | | 1.3.4.RELEASE | 记录真实配送费 | 海波 | 2020-04-27 |
| 1.3.5.RELEASE | oms正向履单流程 | 侯书虎 | 2020-04-27 | | 1.3.5.RELEASE | oms正向履单流程 | 侯书虎 | 2020-04-27 |
| 1.3.6.RELEASE | 蜜雪 | 丁凯 | 2020-04-27 | | 1.3.6.RELEASE | 蜜雪 | 丁凯 | 2020-04-27 |
| 1.5.6-SNAPSHOT | 返回售后单创建时间 | wuping | 2020-04-27 | | 1.5.6-SNAPSHOT | 返回售后单创建时间 | wuping | 2020-04-27 |
\ No newline at end of file | 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 { ...@@ -654,6 +654,7 @@ public class OrderSdkAdapter {
accountBean.setName(orderCostResp.getCostName()); accountBean.setName(orderCostResp.getCostName());
accountBean.setNumber(1); accountBean.setNumber(1);
accountBean.setPrice(orderCostResp.getCostAmount().longValue()); accountBean.setPrice(orderCostResp.getCostAmount().longValue());
accountBean.setActualCostAmount(null != orderCostResp.getActualCostAmount() ? orderCostResp.getActualCostAmount().longValue() : 0);
accountBean.setSequence(orderCostResp.getProductSeq()); accountBean.setSequence(orderCostResp.getProductSeq());
//新订单服务 1=包装费,2=运费,5=会员卡费用 //新订单服务 1=包装费,2=运费,5=会员卡费用
if (orderCostResp.getCostType() == 2) { if (orderCostResp.getCostType() == 2) {
......
...@@ -23,6 +23,8 @@ public class CancelOrderRequest extends BaseConfig { ...@@ -23,6 +23,8 @@ public class CancelOrderRequest extends BaseConfig {
private String partnerId; private String partnerId;
private String storeId;
private AfterSalesType afterSalesType; private AfterSalesType afterSalesType;
/** /**
* 订单ID * 订单ID
......
...@@ -567,6 +567,11 @@ public class QueryOrdersResponse { ...@@ -567,6 +567,11 @@ public class QueryOrdersResponse {
* 优惠金额 * 优惠金额
*/ */
private Long price; private Long price;
// 实际金额
private Long actualCostAmount;
private Integer sequence; private Integer sequence;
/** /**
* 结算对象类型 1 运费 2折扣 3包装费 4积分 5 优惠券 6线下支付 7 微信 8 支付宝 9 商户金额 * 结算对象类型 1 运费 2折扣 3包装费 4积分 5 优惠券 6线下支付 7 微信 8 支付宝 9 商户金额
......
...@@ -362,7 +362,8 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -362,7 +362,8 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
&& !ObjectUtils.equals("0", configuration.getAutoChargebackOrderTime())) { && !ObjectUtils.equals("0", configuration.getAutoChargebackOrderTime())) {
request.setTimeOut(AutoOrderConfigTime.getTime(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()); com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.createAfterSalesOrder(request, orderRefundRequest.getTrackingNo());
return orderSdkAdapter.convent2BaseOrderResponse(response); return orderSdkAdapter.convent2BaseOrderResponse(response);
} }
...@@ -370,7 +371,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -370,7 +371,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
/** /**
* 设置申请退款48小时后回调任务 * 设置申请退款48小时后回调任务
*/ */
private void setAfterSalesOrderTimeOutTask(CreateAfterSalesOrder request) { private OrderTaskReq setAfterSalesOrderTimeOutTask() {
OrderTaskReq orderTask = new OrderTaskReq(); OrderTaskReq orderTask = new OrderTaskReq();
orderTask.setTaskType(4); orderTask.setTaskType(4);
orderTask.setTimeout(1); orderTask.setTimeout(1);
...@@ -382,7 +383,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -382,7 +383,9 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
orderTask.setTaskTime(DateUtil.convert2String(taskTime, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS)); orderTask.setTaskTime(DateUtil.convert2String(taskTime, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
//处理时间,当前时间加48小时减1分钟 //处理时间,当前时间加48小时减1分钟
orderTask.setProcessingTime(DateUtil.convert2String(processingDate, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS)); 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 { ...@@ -483,6 +486,17 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
request.setCreateEvent(cancelOrderRequest.getCreateEvent()); request.setCreateEvent(cancelOrderRequest.getCreateEvent());
request.setAfterSerialNo(cancelOrderRequest.getRefundSerialNo()); request.setAfterSerialNo(cancelOrderRequest.getRefundSerialNo());
request.setOperator(cancelOrderRequest.getOperator()); 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()); com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.cancelOrder(request, cancelOrderRequest.getTrackingNo());
return orderSdkAdapter.convent2BaseOrderResponse(response); return orderSdkAdapter.convent2BaseOrderResponse(response);
} }
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId> <artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.5.6-SNAPSHOT</version> <version>1.5.7-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<artifactId>storecenter-sdk</artifactId> <artifactId>storecenter-sdk</artifactId>
<version>2.3.3-SNAPSHOT</version> <version>2.6.3-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.freemud</groupId> <groupId>cn.freemud</groupId>
......
...@@ -763,12 +763,23 @@ public class OrderAdapter { ...@@ -763,12 +763,23 @@ public class OrderAdapter {
fatherOrderInfo.setPayChannel("10102"); fatherOrderInfo.setPayChannel("10102");
fatherOrderInfo.setPayChannelName("储值卡支付"); fatherOrderInfo.setPayChannelName("储值卡支付");
} }
/**
long deliveryAmount = 0; long deliveryAmount = 0;
if (userDeliveryInfoDto != null) { if (userDeliveryInfoDto != null) {
deliveryAmount = getUserRealDeliveryAmount(userDeliveryInfoDto.getStoreDeliveryInfoDto(), userDeliveryInfoDto.getUserLongitude(), userDeliveryInfoDto.getUserLatitude()); 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(); Long packageAmount = shoppingCartGoodsDto.getPackageAmount() == null ? 0 : shoppingCartGoodsDto.getPackageAmount();
fatherOrderInfo.setAmount(shoppingCartGoodsDto.getTotalAmount() + deliveryAmount + packageAmount); fatherOrderInfo.setAmount(shoppingCartGoodsDto.getTotalAmount() + discountDeliveryAmount + packageAmount);
return fatherOrderInfo; return fatherOrderInfo;
} }
...@@ -990,6 +1001,8 @@ public class OrderAdapter { ...@@ -990,6 +1001,8 @@ public class OrderAdapter {
responseVo.setRefundStatusDesc(Optional.ofNullable(RefundStatus.getByCode(refundBean.getStatus())) responseVo.setRefundStatusDesc(Optional.ofNullable(RefundStatus.getByCode(refundBean.getStatus()))
.map(RefundStatus::getDesc).orElse("")); .map(RefundStatus::getDesc).orElse(""));
responseVo.setRefundReason(refundBean.getReason()); 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 { ...@@ -2773,4 +2786,52 @@ public class OrderAdapter {
createOrderOperateDto.getCardAmount() == null ? 0 : createOrderOperateDto.getCardAmount(), orderExtInfoDTO); 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 { ...@@ -199,6 +199,16 @@ public class QueryOrderResponseVo {
private String rid; private String rid;
/** /**
* 申请退款时间 yyyy-MM-dd HH:mm:ss
*/
private String refundCreateTime;
/**
* 退款文案提示 若48小时后商家未处理,自动同意/拒绝退款
*/
private String refundTips;
/**
* 订单备注 * 订单备注
*/ */
private String orderRemark; private String orderRemark;
......
...@@ -46,7 +46,9 @@ import com.freemud.application.sdk.api.membercenter.response.GetSvcInfoByMemberI ...@@ -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.response.QueryReceiveAddressResponse;
import com.freemud.application.sdk.api.membercenter.service.MemberCenterService; import com.freemud.application.sdk.api.membercenter.service.MemberCenterService;
import com.freemud.application.sdk.api.membercenter.service.MemberPropertyService; 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.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.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService; import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
...@@ -55,6 +57,7 @@ import org.apache.commons.collections4.CollectionUtils; ...@@ -55,6 +57,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.ObjectUtils;
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.stereotype.Component; import org.springframework.stereotype.Component;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
...@@ -66,6 +69,10 @@ import java.util.stream.Collectors; ...@@ -66,6 +69,10 @@ import java.util.stream.Collectors;
@Component @Component
public class CheckOrder { public class CheckOrder {
// 配送费逻辑是否使用旧的
@Value("${store.delivery.use.old:false}")
private boolean storeDeliveryUseOld;
@Autowired @Autowired
private StoreTableNumberManager storeTableNumberManager; private StoreTableNumberManager storeTableNumberManager;
@Autowired @Autowired
...@@ -249,7 +256,12 @@ public class CheckOrder { ...@@ -249,7 +256,12 @@ public class CheckOrder {
throw new ServiceException(ResponseResult.STORE_ITEM_NOT_DELIVERY); 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) { if (storeDeliveryInfoDto.getDeliveryLimitAmount() > totalAmount) {
throw new ServiceException(ResponseResult.STORE_DISCONTENT_DELIVERY_FEE); throw new ServiceException(ResponseResult.STORE_DISCONTENT_DELIVERY_FEE);
...@@ -417,6 +429,59 @@ public class CheckOrder { ...@@ -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) { public List<Point2D.Double> getDeliveryPoint2DList(String distributionScope) {
......
...@@ -46,7 +46,6 @@ import cn.freemud.redis.RedisCache; ...@@ -46,7 +46,6 @@ import cn.freemud.redis.RedisCache;
import cn.freemud.service.BuriedPointService; import cn.freemud.service.BuriedPointService;
import cn.freemud.service.CouponActivityService; import cn.freemud.service.CouponActivityService;
import cn.freemud.service.Orderservice; import cn.freemud.service.Orderservice;
import cn.freemud.service.process.WechatPush.WechatPushProcessor;
import cn.freemud.service.thirdparty.*; import cn.freemud.service.thirdparty.*;
import cn.freemud.utils.*; import cn.freemud.utils.*;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -96,6 +95,7 @@ import com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest; ...@@ -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.message.service.IMessageTemplatePushService;
import com.freemud.sdk.api.assortment.order.adapter.ActivitySdkAdapter; 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.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.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*; import com.freemud.sdk.api.assortment.order.response.order.*;
import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse; import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
...@@ -934,6 +934,17 @@ public class OrderServiceImpl implements Orderservice { ...@@ -934,6 +934,17 @@ public class OrderServiceImpl implements Orderservice {
throw new ServiceException(ResponseResult.ORDER_QUERYORDER_ERROR); throw new ServiceException(ResponseResult.ORDER_QUERYORDER_ERROR);
} }
QueryOrderResponseVo queryOrderResponseVo = queryOrderResponseVos.get(0); 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())) { if (IappIdType.WC_XCX.getCode().equals(userInfo.getIappId())) {
queryOrderResponseVo.getProducts().stream().forEach(each -> { queryOrderResponseVo.getProducts().stream().forEach(each -> {
orderBean.getProductList().forEach(var -> { orderBean.getProductList().forEach(var -> {
...@@ -1137,15 +1148,35 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1137,15 +1148,35 @@ public class OrderServiceImpl implements Orderservice {
// 删除订单 通知活动添加商品库存 // 删除订单 通知活动添加商品库存
backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus()); backOrdersStatusChange(orderBean.getOid(), orderBean.getStatus());
} else { } else {
com.freemud.sdk.api.assortment.order.request.order.OrderRefundRequest var1 = new com.freemud.sdk.api.assortment.order.request.order.OrderRefundRequest(); // 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()); // OrderRefundRequestDto orderRefundRequestDto = orderAdapter.convent2OrderRefundRequestDto(orderRefundVo, orderBean.getOid());
BeanUtil.convertBean(orderRefundRequestDto, var1); // BeanUtil.convertBean(orderRefundRequestDto, var1);
var1.setTrackingNo(LogTreadLocal.getTrackingNo()); // var1.setTrackingNo(LogTreadLocal.getTrackingNo());
var1.setPartnerId(orderRefundVo.getPartnerId()); // var1.setPartnerId(orderRefundVo.getPartnerId());
var1.setStoreId(orderBean.getShopId()); // var1.setStoreId(orderBean.getShopId());
var1.setOrderStatus(orderBean.getStatus()); // var1.setOrderStatus(orderBean.getStatus());
var1.setOperator(orderBean.getUserName()); // var1.setOperator(orderBean.getUserName());
BaseOrderResponse baseResponseDto = orderCenterSdkService.orderRefund(var1); // 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())) { if (!RESPONSE_SUCCESS_CODE.equals(baseResponseDto.getErrcode())) {
return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), baseResponseDto.getErrmsg()); return ResponseUtil.error(ResponseResult.ORDER__ERRORREFUND.getCode(), baseResponseDto.getErrmsg());
} }
...@@ -1153,7 +1184,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -1153,7 +1184,7 @@ public class OrderServiceImpl implements Orderservice {
sendPosMessage(partnerId, orderBean.getShopId()); sendPosMessage(partnerId, orderBean.getShopId());
} }
//通知小助手发送申请退款公众号订阅消息 //通知小助手发送申请退款公众号订阅消息
sendApplyRefundSubscriptionNotice(orderBean,var1); sendApplyRefundSubscriptionNotice(orderBean,orderRefundVo);
//已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票 //已接单可发起退款申请,查询门店有无云打印机,有则打印退款申请小票
printApplyRefundSmallTicket(orderBean, orderRefundVo); printApplyRefundSmallTicket(orderBean, orderRefundVo);
} }
...@@ -2103,7 +2134,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2103,7 +2134,7 @@ public class OrderServiceImpl implements Orderservice {
* 通知小助手发送申请退款公众号订阅消息 * 通知小助手发送申请退款公众号订阅消息
* @param orderBean * @param orderBean
*/ */
public void sendApplyRefundSubscriptionNotice(OrderBean orderBean,OrderRefundRequest request) { public void sendApplyRefundSubscriptionNotice(OrderBean orderBean,OrderRefundVo request) {
LogUtil.debug("sendApplyRefundSubscriptionNotice", JSONObject.toJSONString(request), null); LogUtil.debug("sendApplyRefundSubscriptionNotice", JSONObject.toJSONString(request), null);
String partnerId = orderBean.getCompanyId(); String partnerId = orderBean.getCompanyId();
String shopId = orderBean.getShopId(); String shopId = orderBean.getShopId();
...@@ -2136,7 +2167,7 @@ public class OrderServiceImpl implements Orderservice { ...@@ -2136,7 +2167,7 @@ public class OrderServiceImpl implements Orderservice {
MpTemplateMsgDataValue keyword5 = new MpTemplateMsgDataValue(); MpTemplateMsgDataValue keyword5 = new MpTemplateMsgDataValue();
keyword5.setValue(orderBean.getPhone()); keyword5.setValue(orderBean.getPhone());
MpTemplateMsgDataValue remark = new MpTemplateMsgDataValue(); MpTemplateMsgDataValue remark = new MpTemplateMsgDataValue();
remark.setValue(request.getReason()+","+request.getRemark()); remark.setValue(request.getReason()+","+request.getRemarks());
data.setFirst(first); data.setFirst(first);
data.setKeyword1(keyword1); data.setKeyword1(keyword1);
data.setKeyword2(keyword2); data.setKeyword2(keyword2);
......
...@@ -22,6 +22,7 @@ import cn.freemud.entities.dto.activity.ShareDiscountActivityDto; ...@@ -22,6 +22,7 @@ import cn.freemud.entities.dto.activity.ShareDiscountActivityDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.CheckBeforeCreateOrderRequestVo; import cn.freemud.entities.vo.CheckBeforeCreateOrderRequestVo;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.OrderRefundVo;
import cn.freemud.enums.ActivityTypeEnum; import cn.freemud.enums.ActivityTypeEnum;
import cn.freemud.enums.ApportionType; import cn.freemud.enums.ApportionType;
import cn.freemud.service.impl.OrderServiceImpl; import cn.freemud.service.impl.OrderServiceImpl;
...@@ -78,9 +79,9 @@ public class OrderServiceTest { ...@@ -78,9 +79,9 @@ public class OrderServiceTest {
@Test @Test
public void sendApplyRefundSubscriptionNoticeTest() { public void sendApplyRefundSubscriptionNoticeTest() {
OrderRefundRequest request = new OrderRefundRequest(); OrderRefundVo request = new OrderRefundVo();
request.setReason("下错单"); request.setReason("下错单");
request.setRemark("不要了"); request.setRemarks("不要了");
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest(); BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId("16420126386356464000002"); baseQueryOrderRequest.setOrderId("16420126386356464000002");
QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest); QueryOrderByIdResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
......
...@@ -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.3.3-SNAPSHOT</version> <version>1.3.5-SNAPSHOT</version>
<artifactId>ordercenter-sdk</artifactId> <artifactId>ordercenter-sdk</artifactId>
<dependencies> <dependencies>
......
...@@ -22,4 +22,6 @@ ...@@ -22,4 +22,6 @@
| 1.3.2-SNAPSHOT | 增加异常单状态字段 | 李小二 | 2020-04-17 | | 1.3.2-SNAPSHOT | 增加异常单状态字段 | 李小二 | 2020-04-17 |
| 1.2.1.RELEASE | oms接单 | 侯书虎 | 2020-04-13 | | 1.2.1.RELEASE | oms接单 | 侯书虎 | 2020-04-13 |
| 1.2.2.RELEASE | 新增真实配送费 | 海波 | 2020-04-27 | | 1.2.2.RELEASE | 新增真实配送费 | 海波 | 2020-04-27 |
| 1.3.3-SNAPSHOT | 增加创建售后单任务 | wuping | 2020-04-27 | | 1.3.3-SNAPSHOT | 创建售后单接口增加任务 | wuping | 2020-04-27 |
\ No newline at end of file | 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 @@ ...@@ -12,6 +12,7 @@
*/ */
package com.freemud.application.sdk.api.ordercenter.request; package com.freemud.application.sdk.api.ordercenter.request;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderTaskReq;
import lombok.Data; import lombok.Data;
@Data @Data
...@@ -59,4 +60,9 @@ public class OrderCancelReq { ...@@ -59,4 +60,9 @@ public class OrderCancelReq {
//操作人 //操作人
private String operator; private String operator;
private Integer timeOut;
//任务
private OrderTaskReq orderTask;
} }
...@@ -39,6 +39,9 @@ public class OrderCostResp { ...@@ -39,6 +39,9 @@ public class OrderCostResp {
//费用金额 //费用金额
private BigDecimal costAmount; private BigDecimal costAmount;
//实际金额
private BigDecimal actualCostAmount;
//备注 //备注
private String note; private String note;
......
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.freemud.application.service.sdk</groupId> <groupId>com.freemud.application.service.sdk</groupId>
<version>1.4.1-SNAPSHOT</version> <version>2.6.1-SNAPSHOT</version>
<artifactId>storecenter-sdk</artifactId> <artifactId>storecenter-sdk</artifactId>
</dependency> </dependency>
......
...@@ -58,6 +58,7 @@ public enum ResponseResult { ...@@ -58,6 +58,7 @@ public enum ResponseResult {
STORE_BUSINESS_HOUR_ERROR("43010", "门店营业时间错误"), STORE_BUSINESS_HOUR_ERROR("43010", "门店营业时间错误"),
STORE_NOT_ENABLE_COLLECT_GOODS("43011", "门店不支持到店"), STORE_NOT_ENABLE_COLLECT_GOODS("43011", "门店不支持到店"),
STORE_MALL_NOT_FOUND("43012", "商城门店不存在"), STORE_MALL_NOT_FOUND("43012", "商城门店不存在"),
STORE_DELIVERY_AMOUNT_ERROR("43013", "配送费错误"),
/** /**
* 购物车状态码 * 购物车状态码
......
...@@ -49,7 +49,9 @@ import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmoun ...@@ -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.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.storecenter.request.QueryDeliveryRequest;
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.QueryDeliverDetailResponse;
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;
import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant; import com.freemud.sdk.api.assortment.shoppingcart.constant.CommonsConstant;
...@@ -85,6 +87,10 @@ import static java.util.stream.Collectors.toList; ...@@ -85,6 +87,10 @@ import static java.util.stream.Collectors.toList;
@Service @Service
public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
// 配送费逻辑是否使用旧的
@Value("${store.delivery.use.old:false}")
private boolean storeDeliveryUseOld;
@Autowired @Autowired
private ActivityAdapter activityAdapter; private ActivityAdapter activityAdapter;
@Autowired @Autowired
...@@ -1464,6 +1470,34 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService { ...@@ -1464,6 +1470,34 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
return amount; 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 { ...@@ -1509,12 +1543,18 @@ public class ShoppingCartNewServiceImpl implements ShoppingCartNewService {
} }
private Long calculateDeliveryAmount(String receiveId,String partnerId,String storeId,String wxappid){ private Long calculateDeliveryAmount(String receiveId,String partnerId,String storeId,String wxappid){
Long deliveryAmount = 0l; Long deliveryAmount = 0L;
if(receiveId==null) { if(StringUtils.isBlank(receiveId)) {
}else{ 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()); deliveryAmount = Long.parseLong(getDeliveryAmount(receiveId,partnerId,storeId).toString());
} else {
deliveryAmount = getNewDeliveryAmount(receiveId, partnerId, storeId);
} }
return deliveryAmount; 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