Commit de18b74c by huvchao@126.com

Merge remote-tracking branch 'remotes/origin/feature/20200213_1.9.12_delivery'

parents ea4ed6cf a4df4c59
......@@ -318,6 +318,11 @@
<version>2.4.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>order-management</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
</dependency>
......
......@@ -21,6 +21,10 @@ public class PushOrderConfig {
public static final String PUSH_ORDER_QUEUE = "push-order-queue";
public static final String PUSH_ORDER_QUEUE_ROUTING_KEY = "push-order-queue-routing-key";
// 配送信息消息队列
public static final String OPEN_PLATFORM_ORDER_DELIVERY_QUEUE = "open-platform-order-delivery-queue";
public static final String OPEN_PLATFORM_ORDER_DELIVERY_ROUTING_KEY = "open-platform-order-delivery-routing-key";
/**
* 定义基于Fanout 的Exchange。
* 基于这个代码,也可以非常方便的定义其他的Exchange类型。
......@@ -58,4 +62,13 @@ public class PushOrderConfig {
public OrderMQService orderMQService() {
return new OrderMQService();
}
@Bean
public Queue orderDeliveryQueue(){
return QueueBuilder.durable(OPEN_PLATFORM_ORDER_DELIVERY_QUEUE).build();
}
@Bean
Binding bindingOrderDeliveryQueue(Queue orderDeliveryQueue, Exchange topicExchange) {
return BindingBuilder.bind(orderDeliveryQueue).to(topicExchange).with(OPEN_PLATFORM_ORDER_DELIVERY_ROUTING_KEY).noargs();
}
}
package cn.freemud.amp.service;
import cn.freemud.amp.config.PushOrderConfig;
import cn.freemud.amqp.MQMessage;
import cn.freemud.amqp.MQService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* mq发送方
*/
@Service
public class ProduceMQService {
@Autowired
private MQService mqService;
/**
* 发送配送状态变更信息
* @param body
*/
public void sendOfDeliveryInfo(MQMessage body) {
mqService.convertAndSend(PushOrderConfig.EXCHANGE_NAME, PushOrderConfig.OPEN_PLATFORM_ORDER_DELIVERY_ROUTING_KEY, body);
}
}
......@@ -3,6 +3,7 @@ package cn.freemud.controller.test;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.CheckBeforeCreateOrderRequestVo;
import cn.freemud.monitorcenter.tools.HealthUtil;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams;
import lombok.Data;
......@@ -48,6 +49,14 @@ public class TestController {
return platformBaseResponse;
}
@ApiAnnotation(logMessage = "testOrderDelivery")
@PostMapping("/testOrderDelivery")
public PlatformBaseResponse testOrderDelivery(@Validated @LogParams @RequestBody PlatformBaseRequest platformBaseRequest) {
PlatformBaseResponse platformBaseResponse = new PlatformBaseResponse();
platformBaseResponse.setStatusCode("100");
log.info("testOrderDelivery get {}",JSONObject.toJSONString(platformBaseRequest));
return platformBaseResponse;
}
}
package cn.freemud.entities.dto.delivery;
import cn.freemud.base.util.DateUtil;
import lombok.Data;
/**
......@@ -61,4 +62,10 @@ public class CallbackUrlRequestDto {
* 渠道短码
*/
private String channelCode;
/**
* 更新时间
*/
private String updateTime = DateUtil.getCurrentDate(DateUtil.FORMAT_YYYY_MM_DD_HHMMSS);
}
package cn.freemud.enums;
import com.google.common.collect.Lists;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
......@@ -48,4 +52,31 @@ public enum DeliveryStatus {
public void setDesc(String desc) {
this.desc = desc;
}
public static DeliveryStatus getDeliveryStatusByCode(int code) {
for (DeliveryStatus obj : values()) {
if (obj.code == code) {
return obj;
}
}
return null;
}
public static boolean checkDeliveryStatueForPlatform(int status) {
DeliveryStatus deliveryStatus = DeliveryStatus.getDeliveryStatusByCode(status);
if (null == deliveryStatus) return false;
List<DeliveryStatus> targetList = Lists.newArrayList(DeliveryStatus.ALLOTRIDER,
DeliveryStatus.RIDERGETMEAL,
DeliveryStatus.RIDERSTARTDELIVERY,
DeliveryStatus.DELIVERYARRIVED,
DeliveryStatus.DELIVERYERROR,
DeliveryStatus.DELIVERYCANCEL
);
if (targetList.contains(deliveryStatus)) {
return true;
}
return false;
}
}
package cn.freemud.service.delivery;
import cn.freemud.amp.service.ProduceMQService;
import cn.freemud.amqp.Header;
import cn.freemud.amqp.MQAction;
import cn.freemud.amqp.MQMessage;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.delivery.CallbackUrlRequestDto;
import cn.freemud.entities.dto.pos.PosBaseRequestDto;
......@@ -21,10 +25,13 @@ import com.freemud.sdk.api.assortment.order.request.order.AssortmentUpdateDelive
import com.freemud.sdk.api.assortment.order.request.order.UpdateDeliveryInfoByIdRequest;
import com.freemud.sdk.api.assortment.order.response.order.OrderBaseResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import com.google.common.collect.ImmutableMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Map;
/**
* All rights Reserved, Designed By www.freemud.cn
*
......@@ -49,6 +56,8 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
private Orderservice orderservice;
@Autowired
private PosClient posClient;
@Autowired
private ProduceMQService produceMQService;
@Override
public BaseResponse callbackUrl(CallbackUrlRequestDto request) {
......@@ -102,6 +111,13 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
posBaseRequestDto.setDeliveryId(request.getDeliveryId());
sendPosService(deliveryStatus,posBaseRequestDto);
}
// 订单配送状态变化时发送到MQ
if (DeliveryStatus.checkDeliveryStatueForPlatform(deliveryStatus)) {
Header header = new Header(MQAction.UPDATE.getAction(), "delivery/callbackUrl", request.getOrderId(), "open-platform-order-delivery-queue");
MQMessage<CallbackUrlRequestDto> message = new MQMessage<>(header, request);
produceMQService.sendOfDeliveryInfo(message);
}
// else {
// return ResponseUtil.error(ResponseResult.SYSTEM_ERROR.getCode(), "订单回调状态有误");
// }
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>order-group</artifactId>
<groupId>cn.freemud</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<name>order-management</name>
<artifactId>order-management</artifactId>
<version>1.0.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.1.5.RELEASE</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>storecenter-sdk</artifactId>
<version>2.1.RELEASE</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
<artifactId>deliverycenter-sdk</artifactId>
<version>1.1.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.freemud.commons</groupId>
<artifactId>commons-base</artifactId>
<version>1.5.1-release</version>
<scope>provided</scope>
</dependency>
<!--freemud类库依赖-->
<dependency>
<groupId>cn.freemud.commons</groupId>
<artifactId>commons-base</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
package cn.freemud.management.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.service.OrderDeliveryService;
import com.freemud.application.sdk.api.log.ApiAnnotation;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 创建配送单
*/
@Slf4j
@RequestMapping("/order")
@RestController
@Validated
public class DeliveryOrderController {
@Autowired
private OrderDeliveryService orderDeliveryService;
@ApiAnnotation(logMessage = "创建配送单")
@ApiOperation(value = "创建配送单", notes = "创建配送单", produces = "application/json")
@GetMapping("/delivery/create")
public BaseResponse deliveryCreate(@RequestParam("orderCode") String orderCode
, @RequestParam(value = "operator", required = false) String operator) {
return orderDeliveryService.createDelivery(orderCode, operator);
}
}
package cn.freemud.management.enums;
import com.google.common.collect.Lists;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.5.1
* @Title: DeliveryStatus
* @Package cn.freemud.enums
* @Description: 简单描述下这个类是做什么用的
* @author: hang.chai
* @date: 2018/12/12 14:57
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
public enum DeliveryStatus {
WATINGORDER(0,"待接单"),
SYSTEMGETORDER(1,"系统接单"),
ALLOTRIDER(2,"分配骑手"),
RIDERARRIVESTORE(3,"骑手到店"),
RIDERGETMEAL(4,"骑手取餐"),
RIDERSTARTDELIVERY(5,"开始配送"),
DELIVERYARRIVED(6,"运单送达"),
DELIVERYERROR(7,"运单异常"),
DELIVERYCANCEL(8,"运单取消");
private int code;
private String desc;
DeliveryStatus(int code, String desc) {
this.code = code;
this.desc = desc;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static DeliveryStatus getDeliveryStatusByCode(int code) {
for (DeliveryStatus obj : values()) {
if (obj.code == code) {
return obj;
}
}
return null;
}
public static boolean checkDeliveryStatueForPlatform(int status) {
DeliveryStatus deliveryStatus = DeliveryStatus.getDeliveryStatusByCode(status);
if (null == deliveryStatus) return false;
List<DeliveryStatus> targetList = Lists.newArrayList(DeliveryStatus.ALLOTRIDER,
DeliveryStatus.RIDERGETMEAL,
DeliveryStatus.RIDERSTARTDELIVERY,
DeliveryStatus.DELIVERYARRIVED,
DeliveryStatus.DELIVERYERROR,
DeliveryStatus.DELIVERYCANCEL
);
if (targetList.contains(deliveryStatus)) {
return true;
}
return false;
}
}
package cn.freemud.management.service;
import cn.freemud.management.enums.DeliveryStatus;
import com.freemud.sdk.api.assortment.order.request.order.AssortmentUpdateDeliveryAbnormalRequest;
import com.freemud.sdk.api.assortment.order.request.order.BaseQueryOrderRequest;
import com.freemud.sdk.api.assortment.order.request.order.UpdateDeliveryInfoByIdRequest;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class OrderBaseService {
@Autowired
private OrderCenterSdkService orderCenterSdkService;
public QueryOrdersResponse.DataBean.OrderBean getByOrderCode(String orderCode) {
try {
BaseQueryOrderRequest queryRequest = new BaseQueryOrderRequest();
queryRequest.setOrderId(orderCode);
QueryOrderByIdResponse response = orderCenterSdkService.queryOrderById(queryRequest);
if (response.getErrcode() == 100) {
return response.getData();
}
return response.getData();
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
/**
* 创建配送单一车 -> 更新订单为异常单
*
* @param partnerId
* @param orderCode
* @param deliveryId
*/
public void updateDeliveryAbnormal(String partnerId, String orderCode, String deliveryId, String operator) {
AssortmentUpdateDeliveryAbnormalRequest request = AssortmentUpdateDeliveryAbnormalRequest.builder()
.abnormalDesc("配送异常")
.deliveryId(deliveryId)
.orderCode(orderCode)
.partnerId(partnerId)
.operator(StringUtils.isNotBlank(operator) ? operator : "sys")
.build();
orderCenterSdkService.updateDeliveryAbnormal(request);
}
/**
* 创建配送单成功后 -> 更新订单配送信息
*
* @param orderCode
* @param deliveryId
*/
public void updateDeliverySuccess(String orderCode, String deliveryId, String operator) {
// 创建配送单成功
UpdateDeliveryInfoByIdRequest updateDeliveryInfoByIdRequest = new UpdateDeliveryInfoByIdRequest();
updateDeliveryInfoByIdRequest.setDeliveryId(deliveryId);
updateDeliveryInfoByIdRequest.setOrderId(orderCode);
updateDeliveryInfoByIdRequest.setOrderSubState(DeliveryStatus.WATINGORDER.getCode());
operator = StringUtils.isNotBlank(operator) ? operator : "sys";
updateDeliveryInfoByIdRequest.setOperator(operator);
orderCenterSdkService.updateDeliveryInfoById(updateDeliveryInfoByIdRequest);
}
}
package cn.freemud.management.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.management.util.CheckException;
import cn.freemud.management.util.CommonResp;
import com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto;
import com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto;
import com.freemud.application.sdk.api.deliverycenter.service.DeliveryService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.enums.OrderSourceType;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.google.common.base.Throwables;
import javafx.util.Pair;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Slf4j
@Service
public class OrderDeliveryService {
@Autowired
private StoreCenterService storeCenterService;
@Autowired
private DeliveryService deliveryService;
@Autowired
private OrderBaseService orderBaseService;
@Value("${saas.order.delivery.callBackUrl}")
private String deliveryCallBackUrl;
private int SUCCESS = 100;
private String delivery_type_self = "self";
/**
* 外卖单创建配送信息
*
* @param orderCode
* @return
*/
public BaseResponse createDelivery(String orderCode, String operator) {
QueryOrdersResponse.DataBean.OrderBean orderBean = orderBaseService.getByOrderCode(orderCode);
if (null == orderBean) {
return CommonResp.fail("订单不存在");
}
Pair<Boolean, String> pair = checkOrderOfDelivery(orderBean);
if (!pair.getKey()) {
log.info("无需创建配送单({}),{}", orderBean.getOid(), pair.getValue());
return CommonResp.success(pair.getValue());
}
try {
this.createDelivery(orderBean, operator);
} catch (CheckException e) {
log.error("创建配送单失败({}),trace:{}", orderCode, Throwables.getStackTraceAsString(e));
return CommonResp.fail(e.getMessage());
}
return CommonResp.success();
}
/**
* 创建配送信息
*
* @param orderBean
* @return
*/
public Boolean createDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean, String operator) {
StoreInfoRequest storeInfoRequestDto = new StoreInfoRequest(orderBean.getCompanyId(), orderBean.getShopId());
StoreResponse storeInfo = storeCenterService.getStoreInfo(storeInfoRequestDto, LogTreadLocal.getTrackingNo());
if (SUCCESS != storeInfo.getStatusCode() || storeInfo.getBizVO() == null) {
throw new CheckException("查询门店信息失败");
}
// 调用配送系统创建配送单
CreateDeliveryOrderRequestDto requestDto = buildDeliveryOrderRequestDto(orderBean, storeInfo, deliveryCallBackUrl);
CreateDeliveryOrderResponseDto deliveryResponse = deliveryService.deliveryOrderAdd(requestDto, LogTreadLocal.getTrackingNo());
if (StringUtils.isBlank(operator)) {
operator = "系统";
}
//创建配送单失败,更新订单为异常单
if (deliveryResponse == null || SUCCESS != deliveryResponse.getCode() || deliveryResponse.getData() == null) {
String deliveryId = deliveryResponse != null && deliveryResponse.getData() != null ? deliveryResponse.getData().getDeliveryId() : "";
orderBaseService.updateDeliveryAbnormal(orderBean.getCompanyId(), orderBean.getOid(), deliveryId, operator);
throw new CheckException("创建配送单信息失败,配送状态更新为配送异常");
}
// 创建配送单成功
orderBaseService.updateDeliverySuccess(orderBean.getOid(), deliveryResponse.getData().getDeliveryId(), operator);
return true;
}
/**
* 校验订单是否符合创建配送单要求
*
* @param orderBean
* @return
*/
public Pair<Boolean, String> checkOrderOfDelivery(QueryOrdersResponse.DataBean.OrderBean orderBean) {
//判断外卖单
if (1 != orderBean.getType()) {
return new Pair<>(false, "该订单不是外卖类型订单");
}
if (!orderBean.getSource().equalsIgnoreCase(OrderSourceType.SAAS.getCode())) {
return new Pair<>(false, "订单来源异常");
}
//配送信息为空,则不创建配送单
if (orderBean.getAddInfo() == null || orderBean.getAddInfo().getDeliveryType() == null) {
return new Pair<>(false, "未找到订单配送信息");
}
//自配送不创建配送单
if (delivery_type_self.equalsIgnoreCase(orderBean.getAddInfo().getDeliveryType())) {
return new Pair<>(false, "该订单为自配送");
}
return new Pair<>(true, "success");
}
/**
* 创建配送单请求对象
*
* @param order
* @param storeInfo
* @param deliveryCallBackUrl
* @return
*/
private CreateDeliveryOrderRequestDto buildDeliveryOrderRequestDto(QueryOrdersResponse.DataBean.OrderBean order
, StoreResponse storeInfo, String deliveryCallBackUrl) {
CreateDeliveryOrderRequestDto deliveryOrderRequestDto = new CreateDeliveryOrderRequestDto();
deliveryOrderRequestDto.setDepatchWeight(new BigDecimal(1));
deliveryOrderRequestDto.setSerialNumber(order.getDaySeq().toString());
deliveryOrderRequestDto.setOrderId(order.getOid());
deliveryOrderRequestDto.setOrderRemark(order.getRemark());
deliveryOrderRequestDto.setOrderTotalAmount(order.getAmount().intValue());
deliveryOrderRequestDto.setOrderActualAmount(order.getAmount().intValue());
deliveryOrderRequestDto.setPartnerId(order.getCompanyId());
deliveryOrderRequestDto.setOrderChannel(order.getSource());
deliveryOrderRequestDto.setStoreId(storeInfo.getBizVO().getStoreId());
deliveryOrderRequestDto.setStoreCode(storeInfo.getBizVO().getStoreCode());
StringBuffer address = new StringBuffer(storeInfo.getBizVO().getCity())
.append(storeInfo.getBizVO().getProvince())
.append(storeInfo.getBizVO().getRegion())
.append(storeInfo.getBizVO().getAddress());
deliveryOrderRequestDto.setStoreAddress(address.toString());
deliveryOrderRequestDto.setStoreLng(new BigDecimal(storeInfo.getBizVO().getLongitude()));
deliveryOrderRequestDto.setStoreLat(new BigDecimal(storeInfo.getBizVO().getLatitude()));
deliveryOrderRequestDto.setStorePhone(storeInfo.getBizVO().getPhone());
deliveryOrderRequestDto.setStoreName(order.getShopName());
deliveryOrderRequestDto.setCityName(storeInfo.getBizVO().getCity());
deliveryOrderRequestDto.setReceiverName(order.getUserName());
deliveryOrderRequestDto.setReceiverPrimaryPhone(order.getPhone());
deliveryOrderRequestDto.setReceiverAddress(order.getAddress());
deliveryOrderRequestDto.setReceiverLng(new BigDecimal(order.getLongitude()));
deliveryOrderRequestDto.setReceiverLat(new BigDecimal(order.getLatitude()));
deliveryOrderRequestDto.setOrderTime(new Date(order.getGmtCreate()));
deliveryOrderRequestDto.setCallbackUrl(deliveryCallBackUrl);
// 预约单预计送到时间
deliveryOrderRequestDto.setExpectTime(new Date(order.getGmtCreate()));
deliveryOrderRequestDto.setIsPre(order.getGmtExpect() != null ? 1 : 0);
List<CreateDeliveryOrderRequestDto.DeliveryProductInfo> productInfos = new ArrayList<>();
order.getProductList().forEach(productList -> {
if (productList.getPrice() > 0) {
CreateDeliveryOrderRequestDto.DeliveryProductInfo deliveryProductInfo = new CreateDeliveryOrderRequestDto.DeliveryProductInfo();
deliveryProductInfo.setProductCode(productList.getProductId());
deliveryProductInfo.setProductName(productList.getProductName());
deliveryProductInfo.setProductNumber(productList.getNumber());
deliveryProductInfo.setProductPrice(productList.getPrice().intValue());
productInfos.add(deliveryProductInfo);
}
});
deliveryOrderRequestDto.setProductInfos(productInfos);
return deliveryOrderRequestDto;
}
}
package cn.freemud.management.util;
import lombok.Getter;
@Getter
public class CheckException extends RuntimeException {
protected ResponseCodeEnum responseCodeEnum;
public CheckException(ResponseCodeEnum responseCodeEnum) {
super(responseCodeEnum.msg);
this.responseCodeEnum = responseCodeEnum;
}
public CheckException(String message) {
super(message);
}
}
\ No newline at end of file
package cn.freemud.management.util;
import cn.freemud.base.constant.Version;
import cn.freemud.base.entity.BaseResponse;
import com.alibaba.fastjson.JSONObject;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Getter
@Setter
@ToString
public class CommonResp<T> extends BaseResponse<T> {
public CommonResp() {
super();
}
public CommonResp(String ver, ResponseCodeEnum codeEnum) {
super(ver, codeEnum.code, codeEnum.msg, (T) new JSONObject());
}
public CommonResp(String ver, ResponseCodeEnum codeEnum, T result) {
super(ver, codeEnum.code, codeEnum.msg, result);
}
public CommonResp(ResponseCodeEnum codeEnum, T result) {
super(Version.VERSION_1, codeEnum.code, codeEnum.msg, result);
}
public CommonResp(ResponseCodeEnum codeEnum) {
super(Version.VERSION_1, codeEnum.code, codeEnum.msg, (T) new JSONObject());
}
public CommonResp(String code, String message) {
super(Version.VERSION_1, code, message, (T) new JSONObject());
}
public static CommonResp success() {
return new CommonResp(ResponseCodeEnum.SUCCESS);
}
public static CommonResp success(Object data) {
return new CommonResp(ResponseCodeEnum.SUCCESS, data);
}
public static CommonResp fail() {
return new CommonResp(ResponseCodeEnum.FAILURE);
}
public static CommonResp fail(String message) {
return new CommonResp(ResponseCodeEnum.FAILURE.code, message);
}
public static CommonResp fail(Object data) {
return new CommonResp(ResponseCodeEnum.FAILURE, data);
}
}
package cn.freemud.management.util;
public enum ResponseCodeEnum {
SUCCESS("100", "成功"),
FAILURE("1001", "失败"),
;
public String code;
public String msg;
ResponseCodeEnum(String code, String msg) {
this.code = code;
this.msg = msg;
}
}
......@@ -29,6 +29,7 @@
<module>push-order-service</module>
<module>platform-sdk</module>
<module>assortment-shoppingcart-sdk</module>
<module>order-management</module>
</modules>
<parent>
<groupId>org.springframework.boot</groupId>
......
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