Commit fedc17f6 by shuhu.hou

Merge remote-tracking branch 'origin/master'

parents ee1d562d de18b74c
......@@ -10,7 +10,7 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.1.8.RELEASE</version>
<version>1.2.0.RELEASE</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
......@@ -38,7 +38,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>ordercenter-sdk</artifactId>
<version>1.1.2.RELEASE</version>
<version>1.1.3.RELEASE</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......@@ -102,5 +102,30 @@
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
<!--配置生成源码包-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
......@@ -11,3 +11,5 @@
| 1.1.5.RELEASE| 农工商submit接口(del thirdCateId) | 胡超 | 2020-01-13 |
| 1.1.6-SNAPSHOT| 1.9.11商品组 | 胡超 | 2020-02-05 |
| 1.1.7.RELEASE| 1.9.11商品组 | 胡超 | 2020-02-13 |
| 1.1.9.RELEASE| pos渠道 | 丁凯 | 2020-02-22 |
| 1.2.0.RELEASE| 开放平台创建订单 | 姜海波 | 2020-02-24 |
\ No newline at end of file
......@@ -464,7 +464,7 @@ public class OrderSdkAdapter {
CreateOrderResponse response = new CreateOrderResponse();
response.setErrcode(Integer.parseInt(result.getCode()));
response.setErrmsg(result.getMessage());
if (result.getResult() == null) {
if (result.getResult().equals(new OrderInfoReqs())) {
return response;
}
......@@ -1228,6 +1228,9 @@ public class OrderSdkAdapter {
case 13:
name = "i 会员订单";
break;
case 15:
name = "pos";
break;
case 19:
name = "saas 围餐";
break;
......
......@@ -170,7 +170,7 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
@Override
public CreateOrderResponse createOrder(BaseCreateOrderRequest baseCreateOrderRequest) {
com.freemud.application.sdk.api.ordercenter.request.create.CreateOrderRequest request = orderSdkAdapter.convent2NEWCreateOrderRequest(baseCreateOrderRequest);
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> order = orderSdkService.createOrder(request, baseCreateOrderRequest.getTrackingNo());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<OrderInfoReqs> order = orderSdkService.createOrderByPlatform(request, baseCreateOrderRequest.getTrackingNo());
return orderSdkAdapter.convent2NEWOrderInfoReqs(order);
}
......
......@@ -40,7 +40,7 @@
<dependency>
<groupId>cn.freemud</groupId>
<artifactId>assortment-ordercenter-sdk</artifactId>
<version>1.1.8.RELEASE</version>
<version>1.1.9.RELEASE</version>
</dependency>
<dependency>
<groupId>com.freemud.application.service.sdk</groupId>
......@@ -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"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="Spring" name="Spring">
<configuration />
</facet>
<facet type="web" name="Web">
<configuration>
<webroots />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:1.5.3.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:1.5.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:1.5.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:4.3.8.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:1.5.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:1.5.3.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.2.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.2.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.3" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:2.6.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:1.10.19" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.4.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:4.3.8.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:4.3.8.RELEASE" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.16.16" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.11" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: cn.freemud:assortment-ordercenter-sdk:1.1.5.RELEASE" level="project" />
<orderEntry type="module" module-name="ordercenter-sdk" scope="PROVIDED" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.google.code.gson:gson:2.8.0" level="project" />
<orderEntry type="library" name="Maven: cn.freemud.commons:commons-amqp:2.1.0-release" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-amqp:1.5.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-messaging:4.3.8.RELEASE" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.32" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: ma.glasnost.orika:orika-core:1.5.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.thoughtworks.paranamer:paranamer:2.8" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.4.2" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.carrotsearch:java-sizeof:0.0.4" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.janino:janino:2.7.8" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.janino:commons-compiler:2.7.8" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: com.freemud.application.service.sdk:storecenter-sdk:2.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:1.4.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:1.3.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:1.3.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.55" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.55" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-core:1.4.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-eureka-client:1.4.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.netflix.eureka:eureka-client:1.7.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.jettison:jettison:1.3.7" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: stax:stax-api:1.0.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-eventbus:0.3.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-infix:0.3.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: commons-jxpath:commons-jxpath:1.3" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: joda-time:joda-time:2.9.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.antlr:antlr-runtime:3.4" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.antlr:stringtemplate:3.2.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: antlr:antlr:2.7.7" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-math:2.2" level="project" />
<orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.servo:servo-core:0.10.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.servo:servo-internal:0.10.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey.contribs:jersey-apache-client4:1.19.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.google.inject:guice:4.1.0" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.inject:javax.inject:1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: aopalliance:aopalliance:1.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.8.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.8.8" level="project" />
<orderEntry type="library" name="Maven: com.netflix.eureka:eureka-core:1.7.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.4.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: javax.xml.stream:stax-api:1.0-2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:1.4.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.8" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:18.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-ribbon:1.4.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon:2.2.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.ribbon:ribbon-transport:2.2.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-contexts:0.4.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-servo:0.4.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.hystrix:hystrix-core:1.4.3" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-codec-http:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-codec:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-handler:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport-native-epoll:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-common:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-buffer:4.0.27.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: io.netty:netty-transport:4.0.27.Final" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.2.5" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.2.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-commons-util:0.1.1" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-loadbalancer:2.2.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-statistics:0.1.1" level="project" />
<orderEntry type="library" name="Maven: io.reactivex:rxjava:1.2.0" level="project" />
<orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-eureka:2.2.5" level="project" />
<orderEntry type="library" name="Maven: com.thoughtworks.xstream:xstream:1.4.10" level="project" />
<orderEntry type="library" name="Maven: xmlpull:xmlpull:1.1.3.1" level="project" />
<orderEntry type="library" name="Maven: xpp3:xpp3_min:1.1.4c" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:1.5.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:1.5.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:1.5.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:log4j-over-slf4j:1.7.25" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.17" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:1.5.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.14" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.8.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:4.3.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:4.3.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:4.3.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:4.3.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.6" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
<orderEntry type="library" name="Maven: org.hibernate:hibernate-validator:5.3.5.Final" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:1.1.0.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.1.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:1.3.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:4.2.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.1.11" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.1.11" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-access:1.1.11" level="project" />
<orderEntry type="library" name="Maven: com.freemud.application.service.sdk:deliverycenter-sdk:1.1.3-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: com.freemud.application.service.sdk:sdk-common-base:1.3.9-SNAPSHOT" level="project" />
<orderEntry type="library" name="Maven: org.springframework.amqp:spring-amqp:1.7.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.amqp:spring-rabbit:1.7.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.rabbitmq:http-client:1.1.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.rabbitmq:amqp-client:4.0.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:4.3.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.2.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: cn.freemud.commons:commons-base:1.5.1-release" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:1.5.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:4.3.8.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.8.10" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
</component>
</module>
\ No newline at end of file
<?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;
}
}
......@@ -8,7 +8,7 @@
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<version>1.1.2.RELEASE</version>
<version>1.1.3.RELEASE</version>
<artifactId>ordercenter-sdk</artifactId>
<dependencies>
......
......@@ -6,3 +6,4 @@
| 1.1.0.RELEASE| 1.9.8需求打包release版本 | 侯书虎 | 2019-12-26 |
| 1.1.1.RELEASE| 1.9.9需求打包release版本 | 丁凯 | 2020-01-08 |
| 1.1.2.RELEASE| 农工商订单submit | 侯书虎 | 2020-01-13 |
| 1.1.3.RELEASE| 开放平台创建订单 | 姜海波 | 2020-02-24 |
\ No newline at end of file
......@@ -61,6 +61,16 @@ public class OrderSdkService {
}
/**
* 创建订单 - 开放平台
*/
public BaseResponse<OrderInfoReqs> createOrderByPlatform(CreateOrderRequest request, String trackingNo) {
OrderBaseResp<OrderInfoReqs> responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, InterfaceAddressConstant.CREATE_ORDER,
createBaseRequest(request, trackingNo), new ParameterizedTypeReference<OrderBaseResp<OrderInfoReqs>>() {
});
return responseHandleByPlatForm(responseDTO);
}
/**
* 创建父子订单
*/
public BaseResponse<List<OrderInfoReqs>> createFatherSonOrder(CreateFatherSonOrderReq request, String trackingNo) {
......@@ -522,6 +532,18 @@ public class OrderSdkService {
return result;
}
private <T> BaseResponse<T> responseHandleByPlatForm(OrderBaseResp<T> responseDTO) {
if (responseDTO == null) {
return ResponseUtil.error(ResponseResultEnum.SYSTEM_BUSINESS_ERROR.getCode(), ResponseResultEnum.SYSTEM_BUSINESS_ERROR.getMessage());
}
BaseResponse<T> result = new BaseResponse<>();
result.setCode(responseDTO.getCode());
result.setMessage(responseDTO.getMessage());
result.setResult(responseDTO.getResult());
result.setVer(responseDTO.getVer());
return result;
}
/**
* @param
* @param trackingNo
......
......@@ -28,6 +28,7 @@
<module>call-back-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