Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
order-group
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
jenkins
order-group
Commits
fedc17f6
Commit
fedc17f6
authored
Feb 24, 2020
by
shuhu.hou
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
ee1d562d
de18b74c
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
765 additions
and
7 deletions
+765
-7
assortment-ordercenter-sdk/pom.xml
+29
-3
assortment-ordercenter-sdk/readme.md
+3
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+4
-1
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
+1
-1
order-application-service/pom.xml
+6
-1
order-application-service/src/main/java/cn/freemud/amp/config/PushOrderConfig.java
+13
-0
order-application-service/src/main/java/cn/freemud/amp/service/ProduceMQService.java
+25
-0
order-application-service/src/main/java/cn/freemud/controller/test/TestController.java
+9
-0
order-application-service/src/main/java/cn/freemud/entities/dto/delivery/CallbackUrlRequestDto.java
+7
-0
order-application-service/src/main/java/cn/freemud/enums/DeliveryStatus.java
+31
-0
order-application-service/src/main/java/cn/freemud/service/delivery/ThirdDeliveryServiceImpl.java
+16
-0
order-management/order-management.iml
+0
-0
order-management/pom.xml
+133
-0
order-management/src/main/java/cn/freemud/management/controller/DeliveryOrderController.java
+34
-0
order-management/src/main/java/cn/freemud/management/enums/DeliveryStatus.java
+82
-0
order-management/src/main/java/cn/freemud/management/service/OrderBaseService.java
+71
-0
order-management/src/main/java/cn/freemud/management/service/OrderDeliveryService.java
+182
-0
order-management/src/main/java/cn/freemud/management/util/CheckException.java
+19
-0
order-management/src/main/java/cn/freemud/management/util/CommonResp.java
+59
-0
order-management/src/main/java/cn/freemud/management/util/ResponseCodeEnum.java
+15
-0
ordercenter-sdk/pom.xml
+1
-1
ordercenter-sdk/readme.md
+2
-0
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/service/OrderSdkService.java
+22
-0
pom.xml
+1
-0
No files found.
assortment-ordercenter-sdk/pom.xml
View file @
fedc17f6
...
...
@@ -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
assortment-ordercenter-sdk/readme.md
View file @
fedc17f6
...
...
@@ -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
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
fedc17f6
...
...
@@ -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
;
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/service/order/OrderCenterSdkServiceImpl.java
View file @
fedc17f6
...
...
@@ -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
.
createOrder
ByPlatform
(
request
,
baseCreateOrderRequest
.
getTrackingNo
());
return
orderSdkAdapter
.
convent2NEWOrderInfoReqs
(
order
);
}
...
...
order-application-service/pom.xml
View file @
fedc17f6
...
...
@@ -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>
...
...
order-application-service/src/main/java/cn/freemud/amp/config/PushOrderConfig.java
View file @
fedc17f6
...
...
@@ -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
();
}
}
order-application-service/src/main/java/cn/freemud/amp/service/ProduceMQService.java
0 → 100644
View file @
fedc17f6
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
);
}
}
order-application-service/src/main/java/cn/freemud/controller/test/TestController.java
View file @
fedc17f6
...
...
@@ -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
;
}
}
order-application-service/src/main/java/cn/freemud/entities/dto/delivery/CallbackUrlRequestDto.java
View file @
fedc17f6
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
);
}
order-application-service/src/main/java/cn/freemud/enums/DeliveryStatus.java
View file @
fedc17f6
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
;
}
}
order-application-service/src/main/java/cn/freemud/service/delivery/ThirdDeliveryServiceImpl.java
View file @
fedc17f6
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(), "订单回调状态有误");
// }
...
...
order-management/order-management.iml
deleted
100644 → 0
View file @
ee1d562d
This diff is collapsed.
Click to expand it.
order-management/pom.xml
0 → 100644
View file @
fedc17f6
<?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>
order-management/src/main/java/cn/freemud/management/controller/DeliveryOrderController.java
0 → 100644
View file @
fedc17f6
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
);
}
}
order-management/src/main/java/cn/freemud/management/enums/DeliveryStatus.java
0 → 100644
View file @
fedc17f6
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
;
}
}
order-management/src/main/java/cn/freemud/management/service/OrderBaseService.java
0 → 100644
View file @
fedc17f6
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
);
}
}
order-management/src/main/java/cn/freemud/management/service/OrderDeliveryService.java
0 → 100644
View file @
fedc17f6
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
;
}
}
order-management/src/main/java/cn/freemud/management/util/CheckException.java
0 → 100644
View file @
fedc17f6
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
order-management/src/main/java/cn/freemud/management/util/CommonResp.java
0 → 100644
View file @
fedc17f6
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
);
}
}
order-management/src/main/java/cn/freemud/management/util/ResponseCodeEnum.java
0 → 100644
View file @
fedc17f6
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
;
}
}
ordercenter-sdk/pom.xml
View file @
fedc17f6
...
...
@@ -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>
...
...
ordercenter-sdk/readme.md
View file @
fedc17f6
...
...
@@ -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
ordercenter-sdk/src/main/java/com/freemud/application/sdk/api/ordercenter/service/OrderSdkService.java
View file @
fedc17f6
...
...
@@ -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
...
...
pom.xml
View file @
fedc17f6
...
...
@@ -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>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment