Commit 05b05abd by zhiheng.zhang

华莱士更新

parent a3e37daf
...@@ -36,7 +36,6 @@ public enum OrderSourceType { ...@@ -36,7 +36,6 @@ public enum OrderSourceType {
JUBAOPEN("mtjbp", "美团聚宝盆", 20), JUBAOPEN("mtjbp", "美团聚宝盆", 20),
DIANPING("dp", "美团点评", 21), DIANPING("dp", "美团点评", 21),
KOUBEI("koubeiwaimai", "口碑外卖", 22), KOUBEI("koubeiwaimai", "口碑外卖", 22),
MALL("mall", "非码Mall", 23),
SAASMALL("saasmall", "微商城", 23), SAASMALL("saasmall", "微商城", 23),
DPZHCT("dpzhct", "美团点评智慧餐厅", 24), DPZHCT("dpzhct", "美团点评智慧餐厅", 24),
FMWD("fmwd", "非码微店", 25), FMWD("fmwd", "非码微店", 25),
......
package com.freemud.sdk.api.assortment.order.request.order; package com.freemud.sdk.api.assortment.order.request.order;
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;
...@@ -80,4 +81,11 @@ public class UpdateDeliveryInfoByIdRequest extends BaseConfig { ...@@ -80,4 +81,11 @@ public class UpdateDeliveryInfoByIdRequest extends BaseConfig {
*/ */
private String exceptionDesc; private String exceptionDesc;
/**
* 操作类型 0 = 发货 1=更改物流信息
*/
private int opType;
private OrderTaskReq orderTask;
} }
...@@ -1067,6 +1067,22 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -1067,6 +1067,22 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
expressReq.setOrderSubState(request.getOrderSubState()); expressReq.setOrderSubState(request.getOrderSubState());
expressReq.setExceptionDesc(request.getExceptionDesc()); expressReq.setExceptionDesc(request.getExceptionDesc());
expressReq.setExceptionId(request.getExceptionId()); expressReq.setExceptionId(request.getExceptionId());
expressReq.setOpType(request.getOpType());
if(null !=request.getOrderClient() && OrderClientType.SAASMALL.getIndex() == request.getOrderClient() && 0 == request.getOpType()){
OrderTaskReq orderTask = new OrderTaskReq();
orderTask.setTaskType(5);
orderTask.setTimeout(1);
//1000*60*60*24*15 毫秒(15天)
// long timeout = 1296000000;
long timeout = 3600000;
long timeMillis = System.currentTimeMillis();
Date processingDate = new Date(timeMillis + timeout - 60000);
Date taskTime = new Date(timeMillis + timeout);
orderTask.setTaskTime(DateUtil.convert2String(taskTime, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
//处理时间,当前时间加15天减1分钟
orderTask.setProcessingTime(DateUtil.convert2String(processingDate, DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
expressReq.setOrderTaskReq(orderTask);
}
com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.updateDeliveryInfo(expressReq, request.getTrackingNo()); com.freemud.application.sdk.api.ordercenter.response.BaseResponse response = orderSdkService.updateDeliveryInfo(expressReq, request.getTrackingNo());
OrderBaseResponse baseResponse = new OrderBaseResponse(); OrderBaseResponse baseResponse = new OrderBaseResponse();
baseResponse.setErrcode(response.getCode() != null ? Integer.parseInt(response.getCode()) : null); baseResponse.setErrcode(response.getCode() != null ? Integer.parseInt(response.getCode()) : null);
......
...@@ -405,4 +405,13 @@ public class OrderController { ...@@ -405,4 +405,13 @@ public class OrderController {
return orderservice.queryTodayOrders(queryOrderByConditionsRequestVo); return orderservice.queryTodayOrders(queryOrderByConditionsRequestVo);
} }
/**
* 订单确认收货
*/
@ApiAnnotation(logMessage = "receive")
@PostMapping("/receive")
public BaseResponse orderReceive(@Validated @LogParams @RequestBody OrderReceiveRequestVO request) {
return mallOrderService.orderReceive(request);
}
} }
package cn.freemud.entities.vo;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
@Data
public class OrderReceiveRequestVO {
@NotEmpty(message = "sessionId 不能为空")
private String sessionId;
/**
* 商户ID
*/
@NotEmpty(message = "商户号不能为空")
private String partnerId;
/**
* 门店id
*/
private String shopId;
/**
* 订单ID
*/
@NotEmpty(message = "订单号不能为空")
private String oid;
/**
* 渠道类型 OrderChannelType
*/
private String channelType;
}
...@@ -172,7 +172,7 @@ public enum ResponseResult { ...@@ -172,7 +172,7 @@ public enum ResponseResult {
ORDER_CANCEL_ERROR_ESTIMATE_TIME("45068", "预计送达还剩30分钟,无法取消"), ORDER_CANCEL_ERROR_ESTIMATE_TIME("45068", "预计送达还剩30分钟,无法取消"),
STORE_SELF_ERROR("45069", "请选择截止营业时间大于45分钟下单"), STORE_SELF_ERROR("45069", "请选择截止营业时间大于45分钟下单"),
COUPON_INVALID("45070", "券已锁定,请先支付或取消待支付订单"), COUPON_INVALID("45070", "券已锁定,请先支付或取消待支付订单"),
ORDER_RECEIVE_ERR("45071", "确认收货失败,请稍后再试"),
/** /**
* 支付 * 支付
......
...@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.ConfirmOrderDto; ...@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto; import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.vo.CreateOrderVo; import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.OrderAffirmRequestVO; import cn.freemud.entities.vo.OrderAffirmRequestVO;
import cn.freemud.entities.vo.OrderReceiveRequestVO;
import cn.freemud.entities.vo.PaysuccessNoticeMessage; import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo; import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.entities.vo.encircle.EmptyTableNumberVo; import cn.freemud.entities.vo.encircle.EmptyTableNumberVo;
...@@ -38,4 +39,10 @@ public interface MallOrderService { ...@@ -38,4 +39,10 @@ public interface MallOrderService {
*/ */
String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans); String paySuccessCallback(PaysuccessNoticeMessage message, ConfirmOrderDto confirmOrderDto, Map<String, QueryOrdersResponseDto.DataBean.OrderBean> orderBeans);
/**
* 订单确认完成
*/
BaseResponse orderReceive(OrderReceiveRequestVO requestVO);
} }
...@@ -47,12 +47,15 @@ import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseD ...@@ -47,12 +47,15 @@ import com.freemud.application.sdk.api.deliverycenter.response.DeliveryResponseD
import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService; import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
import com.freemud.application.sdk.api.log.LogThreadLocal; import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType; import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesType;
import com.freemud.application.sdk.api.ordercenter.enums.NewOrderStatus;
import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType; import com.freemud.application.sdk.api.ordercenter.enums.OrderClientType;
import com.freemud.application.sdk.api.ordercenter.request.OrderChangeStateReq;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto; import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq; import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.POSOrderOperationBaseReq; import com.freemud.application.sdk.api.ordercenter.request.POSOrderOperationBaseReq;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse; import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
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;
...@@ -121,6 +124,9 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -121,6 +124,9 @@ public class MallOrderServiceImpl implements MallOrderService {
private OrderSdkService orderSdkService; private OrderSdkService orderSdkService;
@Autowired @Autowired
private EcologyAdminApplicationClient ecologyAdminApplicationClient; private EcologyAdminApplicationClient ecologyAdminApplicationClient;
@Autowired
private OrderSdkAdapter orderSdkAdapter;
/** /**
* 创建订单 * 创建订单
...@@ -142,7 +148,7 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -142,7 +148,7 @@ public class MallOrderServiceImpl implements MallOrderService {
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数 // 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
ShoppingCartGoodsDto shoppingCartGoodsDto = checkMallOrder.getShoppingCartGoodsDto(createOrderVo); ShoppingCartGoodsDto shoppingCartGoodsDto = checkMallOrder.getShoppingCartGoodsDto(createOrderVo);
// 查询商城的配送模板信息,校验订单是否满足配送条件 // 查询商城的配送模板信息,校验订单是否满足配送条件
checkMallOrder.checkOrderByDelivery(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto.getTotalAmount(), trackingNo); // checkMallOrder.checkOrderByDelivery(createOrderVo, userLoginInfoDto, storeResponseDto, shoppingCartGoodsDto.getTotalAmount(), trackingNo);
OrderExtInfoDto extInfo = this.getExtInfo(userLoginInfoDto, storeResponseDto, createOrderVo); OrderExtInfoDto extInfo = this.getExtInfo(userLoginInfoDto, storeResponseDto, createOrderVo);
return this.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto, extInfo); return this.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto, extInfo);
} }
...@@ -476,13 +482,6 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -476,13 +482,6 @@ public class MallOrderServiceImpl implements MallOrderService {
orderRefund(orderBean, "接单失败"); orderRefund(orderBean, "接单失败");
return gson.toJson(message); return gson.toJson(message);
} }
// 创建配送单
boolean createSuccess = this.createDelivery(orderBean, LogTreadLocal.getTrackingNo());
if(!createSuccess) {
// 创建配送单发送失败 则进行取消订单并退款
orderRefund(orderBean, "运单不足,配送失败");
return gson.toJson(message);
}
return sendPaySuccessNoticeMessage(); return sendPaySuccessNoticeMessage();
} }
...@@ -764,4 +763,53 @@ public class MallOrderServiceImpl implements MallOrderService { ...@@ -764,4 +763,53 @@ public class MallOrderServiceImpl implements MallOrderService {
return thirdProductPropertyId; return thirdProductPropertyId;
} }
/**
* 订单确认收货
*/
@Override
public BaseResponse orderReceive(OrderReceiveRequestVO requestVO) {
BaseResponse result = new BaseResponse();
try {
String trackingNo = LogTreadLocal.getTrackingNo();
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(requestVO.getOid());
baseQueryOrderRequest.setTrackingNo(trackingNo);
QueryOrderByIdResponse response = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
// 判断订单信息是否存在
BaseResponse baseResponse = this.checkOrder(response, requestVO.getPartnerId());
if (baseResponse != null) {
return baseResponse;
}
QueryOrdersResponse.DataBean.OrderBean orderBean = response.getData();
//判断订单是否已经完成
if (OrderStatus.COMPLETE.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_REPEAT_DO_COMPLETE);
}
//已取消的订单不能操作
if (OrderStatus.CALCEL.getCode().equals(orderBean.getStatus())) {
return ResponseUtil.error(ResponseResult.ORDER_HAS_CANCELED);
}
//非商城订单不允许操作
if (!OrderSourceType.SAASMALL.getCode().equals(orderBean.getSource())) {
return ResponseUtil.error(ResponseResult.ORDER_MALL_NOT_MATCH);
}
/**
* 修改配送状态
*/
OrderChangeStateReq request = new OrderChangeStateReq();
request.setOrderCode(baseQueryOrderRequest.getOrderId());
request.setOrderState(NewOrderStatus.COMPLETE.getIndex());
request.setOperator(baseQueryOrderRequest.getOperator());
request.setRemark("已完成");
com.freemud.application.sdk.api.ordercenter.response.BaseResponse orderCenterResponse = orderSdkService.updateOrderState(request, baseQueryOrderRequest.getTrackingNo());
result.setCode(orderCenterResponse.getCode());
result.setMessage(orderCenterResponse.getMessage());
}catch (Exception e){
result.setCode(ResponseResult.ORDER_RECEIVE_ERR.getCode());
result.setMessage(ResponseResult.ORDER_RECEIVE_ERR.getMessage());
}
return result;
}
} }
...@@ -17,7 +17,7 @@ import org.springframework.stereotype.Component; ...@@ -17,7 +17,7 @@ import org.springframework.stereotype.Component;
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目 * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/ */
@Component @Component
public class MallOrderAdapter { public class SaasMallOrderAdapter {
/** /**
* 接单request * 接单request
......
package cn.freemud.management.service.impl; package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal; import cn.freemud.management.adapter.SaasMallOrderAdapter;
import cn.freemud.management.adapter.MallOrderAdapter;
import cn.freemud.management.adapter.WaimaiSdkAdapter;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest; import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse; import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.PayRefundResponse; import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import cn.freemud.management.enums.OperateType; import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.intercept.OrderServiceException; import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.service.OrderBaseService; import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.OrderManagerService; import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.*; import cn.freemud.management.service.handle.*;
import cn.freemud.management.util.ResponseUtil; import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.takeaway.request.order.*;
import com.freemud.application.sdk.api.takeaway.service.WaimaiOrderService;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse; import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import org.apache.commons.lang.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -36,9 +30,6 @@ import javax.annotation.Resource; ...@@ -36,9 +30,6 @@ import javax.annotation.Resource;
*/ */
@Service @Service
public class MallOrderMangerServiceImpl implements OrderManagerService { public class MallOrderMangerServiceImpl implements OrderManagerService {
@Resource
private MallOrderAdapter mallOrderAdapter;
@Autowired @Autowired
private MallOrderHandle mallOrderHandle; private MallOrderHandle mallOrderHandle;
@Autowired @Autowired
......
...@@ -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
...@@ -62,4 +63,14 @@ public class OrderExpressReq { ...@@ -62,4 +63,14 @@ public class OrderExpressReq {
*/ */
private String exceptionDesc; private String exceptionDesc;
/**
* 操作类型 0 = 发货 1=更改物流信息
*/
private int opType;
/**
* 定时任务
*/
private OrderTaskReq orderTaskReq;
} }
...@@ -27,6 +27,7 @@ public class OrderTaskReq { ...@@ -27,6 +27,7 @@ public class OrderTaskReq {
//2 超时回调 //2 超时回调
//3 拉单队列 //3 拉单队列
//4 申请退款48小时未处理自动回调 //4 申请退款48小时未处理自动回调
//5 15天自动确认收货
private Integer taskType; private Integer taskType;
private Integer timeout; private Integer timeout;
......
...@@ -175,7 +175,7 @@ public class ShoppingCartController { ...@@ -175,7 +175,7 @@ public class ShoppingCartController {
if (instanceByRequest instanceof ShoppingCartNewServiceImpl && SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).newShoppingCartGray(shoppingCartInfoRequestVo.getPartnerId(), shoppingCartInfoRequestVo.getShopId())){ if (instanceByRequest instanceof ShoppingCartNewServiceImpl && SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).newShoppingCartGray(shoppingCartInfoRequestVo.getPartnerId(), shoppingCartInfoRequestVo.getShopId())){
return shoppingCartDemoController.getShoppingCartGoodsApportion(getShoppingCartGoodsApportionRequestVo); return shoppingCartDemoController.getShoppingCartGoodsApportion(getShoppingCartGoodsApportionRequestVo);
} else { } else {
return instanceByRequest. getShoppingCartGoods(shoppingCartInfoRequestVo, getShoppingCartGoodsApportionRequestVo.getPremiumExchangeActivity()); return instanceByRequest.getShoppingCartGoods(shoppingCartInfoRequestVo, getShoppingCartGoodsApportionRequestVo.getPremiumExchangeActivity());
} }
} }
......
...@@ -20,9 +20,16 @@ public class QueryDeliveryTemplateRequestVo { ...@@ -20,9 +20,16 @@ public class QueryDeliveryTemplateRequestVo {
private String province; private String province;
public QueryDeliveryTemplateRequestVo(String partnerId,String province){ private Integer orderAmount;
private Integer count;
public QueryDeliveryTemplateRequestVo(String partnerId,String province,Integer orderAmount,Integer count){
this.partnerId = partnerId; this.partnerId = partnerId;
this.province = province; this.province = province;
this.orderAmount = orderAmount;
this.count = count;
} }
} }
package cn.freemud.entities.vo; package cn.freemud.entities.vo;
import com.freemud.application.sdk.api.storecenter.request.template.DeliveryTemplateDetailRequest;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -21,49 +22,18 @@ public class QueryDeliveryTemplateResponseVo { ...@@ -21,49 +22,18 @@ public class QueryDeliveryTemplateResponseVo {
private String msg; private String msg;
private List<DispatchCost> data; private DeliveryTemplateInfoVo data;
@Data @Data
public static class DispatchCost { public static class DeliveryTemplateInfoVo {
/** /**
* 增加的运费 * 运费
*/ */
private Integer addCost; private Integer freight;
/** /**
* 首个配送件数 对应的运费金额 * 是否包邮 -> true:是; false:否
*/ */
private Integer firstCost; private boolean isDispatchFree;
/**
* 首个配送件数
*/
private Integer firstStandard;
/**
* 最小包邮金额
*/
private Integer hasAmountForDeliveryFree;
/**
* 0: 无最小金额包邮配置 1:存在最金额配置
*/
private Integer hasMinAmount;
/**
* 0: 无最小件数包邮配置 1:存在最小件数配置
*/
private Integer hasMinCount;
/**
* 最小包邮件数
*/
private Integer minCountForDeliveryFree;
} }
/**
* 是否包邮 -> true:是; false:否
*/
private boolean isDispatchFree;
} }
...@@ -104,6 +104,7 @@ public enum ResponseResult { ...@@ -104,6 +104,7 @@ public enum ResponseResult {
SHOPPING_CART_QTY_LIMIT_ERR("44035", "该商品单次购买数量限制为10,请知晓"), SHOPPING_CART_QTY_LIMIT_ERR("44035", "该商品单次购买数量限制为10,请知晓"),
SHOPPING_CART_SEED_COUPON_VALID("44037","券商品数量不可大于券数量"), SHOPPING_CART_SEED_COUPON_VALID("44037","券商品数量不可大于券数量"),
SHOPPING_CART_MATERIA_QTY_LIMIT_ERR("44038", "商品加料超过最大限制"), SHOPPING_CART_MATERIA_QTY_LIMIT_ERR("44038", "商品加料超过最大限制"),
SHOPPING_CART_QUERY_DELIVERY_TEMPLATE_ERR("44039", "获取配送模板异常"),
/** /**
* 订单状态码 * 订单状态码
......
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