Commit 05b05abd by zhiheng.zhang

华莱士更新

parent a3e37daf
......@@ -36,7 +36,6 @@ public enum OrderSourceType {
JUBAOPEN("mtjbp", "美团聚宝盆", 20),
DIANPING("dp", "美团点评", 21),
KOUBEI("koubeiwaimai", "口碑外卖", 22),
MALL("mall", "非码Mall", 23),
SAASMALL("saasmall", "微商城", 23),
DPZHCT("dpzhct", "美团点评智慧餐厅", 24),
FMWD("fmwd", "非码微店", 25),
......
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 lombok.Data;
......@@ -80,4 +81,11 @@ public class UpdateDeliveryInfoByIdRequest extends BaseConfig {
*/
private String exceptionDesc;
/**
* 操作类型 0 = 发货 1=更改物流信息
*/
private int opType;
private OrderTaskReq orderTask;
}
......@@ -1067,6 +1067,22 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
expressReq.setOrderSubState(request.getOrderSubState());
expressReq.setExceptionDesc(request.getExceptionDesc());
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());
OrderBaseResponse baseResponse = new OrderBaseResponse();
baseResponse.setErrcode(response.getCode() != null ? Integer.parseInt(response.getCode()) : null);
......
......@@ -405,4 +405,13 @@ public class OrderController {
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 {
ORDER_CANCEL_ERROR_ESTIMATE_TIME("45068", "预计送达还剩30分钟,无法取消"),
STORE_SELF_ERROR("45069", "请选择截止营业时间大于45分钟下单"),
COUPON_INVALID("45070", "券已锁定,请先支付或取消待支付订单"),
ORDER_RECEIVE_ERR("45071", "确认收货失败,请稍后再试"),
/**
* 支付
......
......@@ -5,6 +5,7 @@ import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.vo.CreateOrderVo;
import cn.freemud.entities.vo.OrderAffirmRequestVO;
import cn.freemud.entities.vo.OrderReceiveRequestVO;
import cn.freemud.entities.vo.PaysuccessNoticeMessage;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.entities.vo.encircle.EmptyTableNumberVo;
......@@ -38,4 +39,10 @@ public interface MallOrderService {
*/
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
import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
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.NewOrderStatus;
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.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.request.POSOrderOperationBaseReq;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
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.response.order.*;
import com.freemud.sdk.api.assortment.order.response.payment.OrderPayResponse;
......@@ -121,6 +124,9 @@ public class MallOrderServiceImpl implements MallOrderService {
private OrderSdkService orderSdkService;
@Autowired
private EcologyAdminApplicationClient ecologyAdminApplicationClient;
@Autowired
private OrderSdkAdapter orderSdkAdapter;
/**
* 创建订单
......@@ -142,7 +148,7 @@ public class MallOrderServiceImpl implements MallOrderService {
// 查询购物车(内部校验券点餐方式,券是否可用) 校验当前订单类型的下单参数
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);
return this.sdkCreateOrder(createOrderVo, storeResponseDto, shoppingCartGoodsDto, userLoginInfoDto, extInfo);
}
......@@ -476,13 +482,6 @@ public class MallOrderServiceImpl implements MallOrderService {
orderRefund(orderBean, "接单失败");
return gson.toJson(message);
}
// 创建配送单
boolean createSuccess = this.createDelivery(orderBean, LogTreadLocal.getTrackingNo());
if(!createSuccess) {
// 创建配送单发送失败 则进行取消订单并退款
orderRefund(orderBean, "运单不足,配送失败");
return gson.toJson(message);
}
return sendPaySuccessNoticeMessage();
}
......@@ -764,4 +763,53 @@ public class MallOrderServiceImpl implements MallOrderService {
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;
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public class MallOrderAdapter {
public class SaasMallOrderAdapter {
/**
* 接单request
......
package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.management.adapter.MallOrderAdapter;
import cn.freemud.management.adapter.WaimaiSdkAdapter;
import cn.freemud.management.adapter.SaasMallOrderAdapter;
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.pay.PayRefundResponse;
import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.*;
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 org.apache.commons.lang.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -36,9 +30,6 @@ import javax.annotation.Resource;
*/
@Service
public class MallOrderMangerServiceImpl implements OrderManagerService {
@Resource
private MallOrderAdapter mallOrderAdapter;
@Autowired
private MallOrderHandle mallOrderHandle;
@Autowired
......
......@@ -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
......@@ -62,4 +63,14 @@ public class OrderExpressReq {
*/
private String exceptionDesc;
/**
* 操作类型 0 = 发货 1=更改物流信息
*/
private int opType;
/**
* 定时任务
*/
private OrderTaskReq orderTaskReq;
}
......@@ -27,6 +27,7 @@ public class OrderTaskReq {
//2 超时回调
//3 拉单队列
//4 申请退款48小时未处理自动回调
//5 15天自动确认收货
private Integer taskType;
private Integer timeout;
......
......@@ -175,7 +175,7 @@ public class ShoppingCartController {
if (instanceByRequest instanceof ShoppingCartNewServiceImpl && SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class).newShoppingCartGray(shoppingCartInfoRequestVo.getPartnerId(), shoppingCartInfoRequestVo.getShopId())){
return shoppingCartDemoController.getShoppingCartGoodsApportion(getShoppingCartGoodsApportionRequestVo);
} else {
return instanceByRequest. getShoppingCartGoods(shoppingCartInfoRequestVo, getShoppingCartGoodsApportionRequestVo.getPremiumExchangeActivity());
return instanceByRequest.getShoppingCartGoods(shoppingCartInfoRequestVo, getShoppingCartGoodsApportionRequestVo.getPremiumExchangeActivity());
}
}
......
......@@ -20,9 +20,16 @@ public class QueryDeliveryTemplateRequestVo {
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.province = province;
this.orderAmount = orderAmount;
this.count = count;
}
}
package cn.freemud.entities.vo;
import com.freemud.application.sdk.api.storecenter.request.template.DeliveryTemplateDetailRequest;
import lombok.Data;
import java.math.BigDecimal;
......@@ -21,49 +22,18 @@ public class QueryDeliveryTemplateResponseVo {
private String msg;
private List<DispatchCost> data;
private DeliveryTemplateInfoVo data;
@Data
public static class DispatchCost {
public static class DeliveryTemplateInfoVo {
/**
* 增加的运费
* 运费
*/
private Integer addCost;
/**
* 首个配送件数 对应的运费金额
*/
private Integer firstCost;
/**
* 首个配送件数
*/
private Integer firstStandard;
/**
* 最小包邮金额
*/
private Integer hasAmountForDeliveryFree;
/**
* 0: 无最小金额包邮配置 1:存在最金额配置
*/
private Integer hasMinAmount;
/**
* 0: 无最小件数包邮配置 1:存在最小件数配置
*/
private Integer hasMinCount;
/**
* 最小包邮件数
*/
private Integer minCountForDeliveryFree;
}
private Integer freight;
/**
* 是否包邮 -> true:是; false:否
*/
private boolean isDispatchFree;
}
}
......@@ -104,6 +104,7 @@ public enum ResponseResult {
SHOPPING_CART_QTY_LIMIT_ERR("44035", "该商品单次购买数量限制为10,请知晓"),
SHOPPING_CART_SEED_COUPON_VALID("44037","券商品数量不可大于券数量"),
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