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
order-group-application
order-group
Commits
928ba739
Commit
928ba739
authored
Mar 26, 2020
by
shuhu.hou@freemud.cn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
orderManager一期整理
parent
ac91ec33
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
918 additions
and
105 deletions
+918
-105
assortment-ordercenter-sdk/pom.xml
+6
-1
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/DeliverySdkAdapter.java
+73
-0
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
+16
-0
order-application-service/pom.xml
+1
-1
order-management/order-management.iml
+0
-0
order-management/pom.xml
+20
-3
order-management/src/main/java/cn/freemud/management/adapter/MessagePushAdapter.java
+91
-0
order-management/src/main/java/cn/freemud/management/controller/DeliveryOrderController.java
+2
-2
order-management/src/main/java/cn/freemud/management/controller/OrderManagerController.java
+52
-0
order-management/src/main/java/cn/freemud/management/entities/dto/request/delivery/DeliveryOrderRequest.java
+1
-1
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/OrderManagerRequest.java
+45
-0
order-management/src/main/java/cn/freemud/management/entities/dto/response/order/OrderConfirmResponse.java
+23
-0
order-management/src/main/java/cn/freemud/management/enums/MessageCenterCmdType.java
+33
-0
order-management/src/main/java/cn/freemud/management/enums/OperateType.java
+43
-0
order-management/src/main/java/cn/freemud/management/enums/OrderSource.java
+36
-0
order-management/src/main/java/cn/freemud/management/enums/OrderStatus.java
+71
-0
order-management/src/main/java/cn/freemud/management/enums/ResponseResult.java
+0
-0
order-management/src/main/java/cn/freemud/management/service/OrderBaseService.java
+51
-9
order-management/src/main/java/cn/freemud/management/service/OrderManagerService.java
+22
-0
order-management/src/main/java/cn/freemud/management/service/adapter/OrderBeanFactory.java
+29
-0
order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
+51
-0
order-management/src/main/java/cn/freemud/management/service/impl/OrderDeliveryService.java
+24
-88
order-management/src/main/java/cn/freemud/management/service/impl/OrderVerifyService.java
+53
-0
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
+83
-0
order-management/src/main/java/cn/freemud/management/service/impl/TakeawayOrderMangerServiceImpl.java
+30
-0
order-management/src/main/java/cn/freemud/management/util/ResponseUtil.java
+62
-0
No files found.
assortment-ordercenter-sdk/pom.xml
View file @
928ba739
...
...
@@ -10,7 +10,7 @@
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
1.
2.4.RELEASE
</version>
<version>
1.
3.0-SNAPSHOT
</version>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
@@ -18,6 +18,11 @@
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
deliverycenter-sdk
</artifactId>
<version>
1.5.RELEASE
</version>
</dependency>
<dependency>
<artifactId>
assortment-data-manager
</artifactId>
<groupId>
com.freemud.sdk.api.assortment
</groupId>
<version>
3.5.RELEASE
</version>
...
...
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/DeliverySdkAdapter.java
0 → 100644
View file @
928ba739
package
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
adapter
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
@Component
public
class
DeliverySdkAdapter
{
/**
* 创建配送单请求对象
*
* @param order
* @param storeInfo
* @param deliveryCallBackUrl
* @return
*/
public
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
);
// 预约单预计送到时间
if
(
order
.
getGmtExpect
()
!=
null
&&
order
.
getGmtExpect
()
!=
0
)
{
deliveryOrderRequestDto
.
setExpectTime
(
new
Date
(
order
.
getGmtExpect
()));
}
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
;
}
}
assortment-ordercenter-sdk/src/main/java/com/freemud/sdk/api/assortment/order/adapter/OrderSdkAdapter.java
View file @
928ba739
...
...
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.freemud.application.sdk.api.couponcenter.offline.domain.ProductRedeemVO
;
import
com.freemud.application.sdk.api.couponcenter.offline.domain.TransactionVO
;
import
com.freemud.application.sdk.api.couponcenter.offline.request.CouponRequest
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.membercenter.request.UserScoreRequest
;
import
com.freemud.application.sdk.api.ordercenter.enums.*
;
import
com.freemud.application.sdk.api.ordercenter.request.*
;
...
...
@@ -48,6 +49,21 @@ public class OrderSdkAdapter {
private
static
final
int
STACK_SUB
=
1
;
public
BaseQueryOrderRequest
getOrderConfirmRequest
(
String
operator
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
BaseQueryOrderRequest
orderRequest
=
new
BaseQueryOrderRequest
();
orderRequest
.
setOrderId
(
orderBean
.
getOid
());
orderRequest
.
setShopId
(
orderBean
.
getShopId
());
orderRequest
.
setHasSelfDelivery
(
true
);
orderRequest
.
setPartnerId
(
orderBean
.
getCompanyId
());
orderRequest
.
setOrderType
(
getNewOrderTypeEnum
(
orderBean
.
getType
(),
orderBean
.
getGmtExpect
()));
if
(
orderBean
.
getGmtExpect
()
!=
null
&&
orderBean
.
getGmtExpect
()
!=
0
){
orderRequest
.
setExpectTime
(
cn
.
freemud
.
base
.
util
.
DateUtil
.
convert2String
(
new
Date
(
orderBean
.
getGmtExpect
()),
cn
.
freemud
.
base
.
util
.
DateUtil
.
FORMAT_YYYY_MM_DD_HHMMSS
));
}
orderRequest
.
setOperator
(
operator
);
orderRequest
.
setTrackingNo
(
LogThreadLocal
.
getTrackingNo
());
return
orderRequest
;
}
public
CancelOrderRequest
convent2CancelOrderRequest
(
String
orderId
,
String
partnerId
,
AfterSalesType
afterSalesType
,
String
reason
,
String
trackingNo
,
Long
refund_id
)
{
CancelOrderRequest
cancelOrderRequest
=
new
CancelOrderRequest
();
...
...
order-application-service/pom.xml
View file @
928ba739
...
...
@@ -40,7 +40,7 @@
<dependency>
<groupId>
cn.freemud
</groupId>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
1.
2.4.RELEASE
</version>
<version>
1.
3.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
...
...
order-management/order-management.iml
View file @
928ba739
This diff is collapsed.
Click to expand it.
order-management/pom.xml
View file @
928ba739
...
...
@@ -31,11 +31,27 @@
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
sdk-common-base
</artifactId>
<version>
1.3.9-SNAPSHOT
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
cn.freemud
</groupId>
<artifactId>
assortment-ordercenter-sdk
</artifactId>
<version>
1.2.3.RELEASE
</version>
<version>
1.3.0-SNAPSHOT
</version>
</dependency>
<dependency>
<artifactId>
structure-center-sdk
</artifactId>
<groupId>
com.freemud.application.service.sdk
</groupId>
<version>
1.2-SNAPSHOT
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
com.freemud.sdk.api.assortment
</groupId>
<artifactId>
assortment-messagepush-sdk
</artifactId>
<version>
2.6.3.RELEASE
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
...
...
@@ -47,7 +63,8 @@
<dependency>
<groupId>
com.freemud.application.service.sdk
</groupId>
<artifactId>
deliverycenter-sdk
</artifactId>
<version>
1.1.3-SNAPSHOT
</version>
<version>
1.5.RELEASE
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
cn.freemud.commons
</groupId>
...
...
order-management/src/main/java/cn/freemud/management/adapter/MessagePushAdapter.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
adapter
;
import
cn.freemud.management.enums.OperateType
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto
;
import
com.freemud.sdk.api.assortment.message.enums.MessageEventType
;
import
com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.springframework.stereotype.Component
;
@Component
public
class
MessagePushAdapter
{
public
PushMessageNoticeDto
convent2PushMessageNoticeDto
(
Integer
targetType
,
String
partnerId
,
String
storeId
,
String
userId
,
String
oid
,
Integer
deliveryStatus
,
Integer
cmdType
)
{
PushMessageNoticeDto
pushMessageNoticeDto
=
new
PushMessageNoticeDto
();
pushMessageNoticeDto
.
setPartnerId
(
partnerId
);
pushMessageNoticeDto
.
setStoreId
(
storeId
);
pushMessageNoticeDto
.
setTargetId
(
userId
);
pushMessageNoticeDto
.
setTargetType
(
targetType
);
pushMessageNoticeDto
.
setCmd
(
cmdType
);
pushMessageNoticeDto
.
setTtl
(
0
);
pushMessageNoticeDto
.
setVer
(
"1"
);
PushMessageNoticeDto
.
Message
message
=
new
PushMessageNoticeDto
.
Message
();
message
.
setType
(
1
);
if
(
targetType
==
2
)
{
PushMessageNoticeDto
.
Message
.
Content
content
=
new
PushMessageNoticeDto
.
Message
.
Content
();
content
.
setOid
(
oid
);
content
.
setDeliveryStatus
(
deliveryStatus
);
message
.
setContent
(
content
);
}
pushMessageNoticeDto
.
setData
(
JSONObject
.
toJSONString
(
message
));
return
pushMessageNoticeDto
;
}
public
MessageTemplateRequest
<
MessagePushOrderTemplateRequest
>
convent2MessageTemplateRequest
(
QueryOrdersResponse
.
DataBean
.
OrderBean
order
,
String
reason
,
OperateType
opType
)
{
OrderExtInfoDto
extInfo
=
JSONObject
.
parseObject
(
order
.
getExtInfo
(),
OrderExtInfoDto
.
class
);
MessageTemplateRequest
<
MessagePushOrderTemplateRequest
>
messageTemplateRequest
=
new
MessageTemplateRequest
<>();
messageTemplateRequest
.
setAppId
(
extInfo
.
getAppid
());
messageTemplateRequest
.
setPartnerId
(
order
.
getCompanyId
());
MessagePushOrderTemplateRequest
messagePushOrderTemplateRequest
=
new
MessagePushOrderTemplateRequest
();
messagePushOrderTemplateRequest
.
setAddress
(
order
.
getAddress
());
messagePushOrderTemplateRequest
.
setDaySeq
(
order
.
getDaySeq
());
messagePushOrderTemplateRequest
.
setGmtExpect
(
order
.
getGmtExpect
());
messagePushOrderTemplateRequest
.
setShopName
(
order
.
getShopName
());
messagePushOrderTemplateRequest
.
setOpenId
(
extInfo
.
getOpenid
());
messagePushOrderTemplateRequest
.
setGmtCreate
(
order
.
getGmtCreate
());
messagePushOrderTemplateRequest
.
setOrderId
(
order
.
getOid
());
messagePushOrderTemplateRequest
.
setPrepayId
(
extInfo
.
getPrepayId
());
messagePushOrderTemplateRequest
.
setFormId
(
extInfo
.
getFormId
());
messagePushOrderTemplateRequest
.
setOrderType
(
order
.
getType
());
messagePushOrderTemplateRequest
.
setOtherCode
(
order
.
getOtherCode
());
messagePushOrderTemplateRequest
.
setAmount
(
Double
.
valueOf
(
order
.
getAmount
()));
messagePushOrderTemplateRequest
.
setReason
(
reason
);
messageTemplateRequest
.
setData
(
messagePushOrderTemplateRequest
);
MessageEventType
messageEventType
=
null
;
switch
(
opType
)
{
case
ORDER_REJECT:
messageEventType
=
MessageEventType
.
REJECTORDER
;
break
;
case
ORDER_DONE:
messageEventType
=
MessageEventType
.
DONEORDER
;
break
;
case
ORDER_SEND:
//外卖订单送出发微信模板消息
if
(
ObjectUtils
.
equals
(
1
,
order
.
getType
()))
{
messageEventType
=
MessageEventType
.
DELIVERYORDER
;
}
else
{
messageEventType
=
MessageEventType
.
APPRAISEORDER
;
}
break
;
case
ORDER_AFFIRM:
messageEventType
=
MessageEventType
.
APPRAISEORDER
;
break
;
case
ORDER_REJECT_REFUND:
messageEventType
=
MessageEventType
.
REFUNDREJECTORDER
;
break
;
case
ORDER_AGREE_REFUND:
messageEventType
=
MessageEventType
.
REJECTORDER
;
break
;
default
:
messageEventType
=
null
;
}
messageTemplateRequest
.
setMessageEventType
(
messageEventType
);
return
messageTemplateRequest
;
}
}
order-management/src/main/java/cn/freemud/management/controller/DeliveryOrderController.java
View file @
928ba739
package
cn
.
freemud
.
management
.
controller
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.DeliveryOrderRequest
;
import
cn.freemud.management.service.OrderDeliveryService
;
import
cn.freemud.management.entities.
dto.request.delivery.
DeliveryOrderRequest
;
import
cn.freemud.management.service.
impl.
OrderDeliveryService
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
import
io.swagger.annotations.ApiOperation
;
...
...
order-management/src/main/java/cn/freemud/management/controller/OrderManagerController.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
controller
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.service.adapter.OrderManagerAdapter
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.freemud.application.sdk.api.log.ApiAnnotation
;
import
com.freemud.application.sdk.api.log.LogParams
;
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.*
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderManagerController
* @Package cn.freemud.management.controller
* @Description:
* @author: shuhu.hou
* @date: 2020/3/26 16:09
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Slf4j
@RequestMapping
(
"/order"
)
@RestController
@Validated
public
class
OrderManagerController
{
@Autowired
private
OrderManagerAdapter
orderManagerAdapter
;
@ApiAnnotation
(
logMessage
=
"订单履单"
)
@ApiOperation
(
value
=
"订单履单"
,
notes
=
"订单履单"
,
produces
=
"application/json"
)
@PostMapping
(
"/statusOperate"
)
public
BaseResponse
deliveryCreate
(
@Validated
@LogParams
@RequestBody
OrderManagerRequest
request
)
{
switch
(
request
.
getOperateType
())
{
case
ORDER_CONFIRM:
return
orderManagerAdapter
.
orderConfirmTake
(
request
);
case
ORDER_REJECT:
return
orderManagerAdapter
.
orderReject
(
request
);
default
:
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_OPERATE_TYPE_NOT_VALIDATE
);
}
}
}
order-management/src/main/java/cn/freemud/management/entities/DeliveryOrderRequest.java
→
order-management/src/main/java/cn/freemud/management/entities/
dto/request/delivery/
DeliveryOrderRequest.java
View file @
928ba739
package
cn
.
freemud
.
management
.
entities
;
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
delivery
;
import
lombok.Data
;
...
...
order-management/src/main/java/cn/freemud/management/entities/dto/request/order/OrderManagerRequest.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
entities
.
dto
.
request
.
order
;
import
cn.freemud.management.enums.OperateType
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.constraints.Size
;
@Data
public
class
OrderManagerRequest
{
/**
* 商户号
*/
@NotEmpty
(
message
=
"商户号不允许为null"
)
private
String
partnerId
;
/**
* 门店号
*/
@NotEmpty
(
message
=
"门店号不允许为null"
)
private
String
storeId
;
/**
* 订单号
*/
@NotEmpty
(
message
=
"订单号不允许为nul"
)
private
String
orderId
;
@Size
(
max
=
50
,
message
=
"原因不能超过50个字符"
)
private
String
reason
;
/**
* 订单操作类型
*/
private
OperateType
operateType
;
/**
* 操作人
* pos
* 开放平台
* 小助手
* 系统自动履单
*/
private
String
operator
;
}
order-management/src/main/java/cn/freemud/management/entities/dto/response/order/OrderConfirmResponse.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
entities
.
dto
.
response
.
order
;
import
lombok.Data
;
import
org.hibernate.validator.constraints.NotEmpty
;
import
javax.validation.constraints.Size
;
@Data
public
class
OrderConfirmResponse
{
/**
* 预订单打印时间{1:提醒时打印;2:接单时打印} 默认为1
*/
private
String
orderPrintConfig
;
/**
* 订单预约时间
*/
private
Long
gmtExpect
;
public
OrderConfirmResponse
(
String
orderPrintConfig
,
Long
gmtExpect
){
this
.
orderPrintConfig
=
orderPrintConfig
;
this
.
gmtExpect
=
gmtExpect
;
}
}
order-management/src/main/java/cn/freemud/management/enums/MessageCenterCmdType.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
enums
;
public
enum
MessageCenterCmdType
{
JIEDAN_DAYIN_TIXING
(
1
,
"推送接单-打印-提醒 消息"
),
DAYIN
(
2
,
"推送接单-打印消息"
),
TIXING_DAYIN
(
3
,
"推送提醒-打印消息"
),
TIXING
(
4
,
"推送提醒消息"
),
JIEDAN
(
5
,
"推送接单消息"
),
RIDER_STATUS
(
6
,
"推送配送员状态"
);
private
Integer
cmd
;
private
String
des
;
MessageCenterCmdType
(
Integer
cmd
,
String
des
)
{
this
.
cmd
=
cmd
;
this
.
des
=
des
;
}
public
Integer
getCmd
()
{
return
cmd
;
}
public
void
setCmd
(
Integer
cmd
)
{
this
.
cmd
=
cmd
;
}
public
String
getDes
()
{
return
des
;
}
public
void
setDes
(
String
des
)
{
this
.
des
=
des
;
}
}
order-management/src/main/java/cn/freemud/management/enums/OperateType.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
enums
;
public
enum
OperateType
{
ORDER_CONFIRM
(
"orderConfirm"
,
"接单"
),
ORDER_REJECT
(
"orderReject"
,
"拒单"
),
ORDER_DONE
(
"orderDone"
,
"制作完成"
),
ORDER_SEND
(
"orderSend"
,
"送出"
),
ORDER_AFFIRM
(
"orderAffirm"
,
"完成"
),
ORDER_AGREE_REFUND
(
"orderAgreeRefund"
,
"同意退款"
),
ORDER_REJECT_REFUND
(
"orderRejectRefund"
,
"拒绝退款"
);
/**
* 操作类型
*/
private
String
opType
;
/**
* 操作名称
*/
private
String
opName
;
OperateType
(
String
opType
,
String
opName
)
{
opType
=
opType
;
opName
=
opName
;
}
public
String
getOpType
()
{
return
opType
;
}
public
void
setOpType
(
String
opType
)
{
this
.
opType
=
opType
;
}
public
String
getOpName
()
{
return
opName
;
}
public
void
setOpName
(
String
opName
)
{
this
.
opName
=
opName
;
}
}
order-management/src/main/java/cn/freemud/management/enums/OrderSource.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
enums
;
public
enum
OrderSource
{
BDWM
(
"bdwm"
,
"百度外卖"
),
JDWM
(
"jdwm"
,
"京东到家"
),
MTWM
(
"mtwm"
,
"美团外卖"
),
SDG
(
"sdg"
,
"闪电购"
),
ELEME
(
"eleme"
,
"饿了么外卖"
),
FMWD
(
"fmwd"
,
"非码微店"
),
MALL
(
"mall"
,
"非码Mall"
),
SAAS
(
"saas"
,
"saas点餐"
),
ALIPAY
(
"alipay"
,
"支付宝"
);
private
String
source
;
private
String
sourceName
;
OrderSource
(
String
source
,
String
sourceName
)
{
this
.
source
=
source
;
this
.
sourceName
=
sourceName
;
}
public
String
getSource
()
{
return
source
;
}
public
void
setSource
(
String
source
)
{
this
.
source
=
source
;
}
public
String
getSourceName
()
{
return
sourceName
;
}
public
void
setSourceName
(
String
sourceName
)
{
this
.
sourceName
=
sourceName
;
}
}
order-management/src/main/java/cn/freemud/management/enums/OrderStatus.java
0 → 100644
View file @
928ba739
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: OrderType
* @Package cn.freemud.enums
* @Description: 订单状态
* @author: liming.guo
* @date: 2018/5/21 14:43
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package
cn
.
freemud
.
management
.
enums
;
public
enum
OrderStatus
{
TAKE_ORDER
(
1
,
"下单"
),
WAIT_PAY
(
2
,
"待支付"
),
RECEIPT
(
3
,
"接单"
),
DISTRIBUTION
(
4
,
"配送中"
),
COMPLETE
(
5
,
"完成"
),
CALCEL
(
6
,
"取消"
),
REFUSE
(
7
,
"拒单"
),
COMPLETE_MAKE
(
31
,
"制作完成"
);
private
Integer
code
;
private
String
desc
;
OrderStatus
(
Integer
code
,
String
desc
)
{
this
.
code
=
code
;
this
.
desc
=
desc
;
}
public
static
Integer
[]
getAllCodes
()
{
Integer
[]
codeArray
=
new
Integer
[
values
().
length
];
int
i
=
0
;
for
(
OrderStatus
orderStatus
:
values
())
{
codeArray
[
i
]
=
orderStatus
.
getCode
();
i
++;
}
return
codeArray
;
}
public
static
OrderStatus
getByCode
(
Integer
code
)
{
if
(
code
==
null
)
{
return
null
;
}
for
(
OrderStatus
orderStatus
:
values
())
{
if
(
orderStatus
.
getCode
().
equals
(
code
))
{
return
orderStatus
;
}
}
return
null
;
}
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
public
String
getDesc
()
{
return
desc
;
}
public
void
setDesc
(
String
desc
)
{
this
.
desc
=
desc
;
}
}
order-management/src/main/java/cn/freemud/management/enums/ResponseResult.java
0 → 100644
View file @
928ba739
This diff is collapsed.
Click to expand it.
order-management/src/main/java/cn/freemud/management/service/OrderBaseService.java
View file @
928ba739
package
cn
.
freemud
.
management
.
service
;
import
cn.freemud.management.adapter.MessagePushAdapter
;
import
cn.freemud.management.enums.DeliveryStatus
;
import
cn.freemud.management.enums.MessageCenterCmdType
;
import
cn.freemud.management.enums.OperateType
;
import
cn.freemud.management.enums.OrderSource
;
import
com.freemud.application.sdk.api.log.ErrorLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
import
com.freemud.application.sdk.api.structure.request.PushMessageNoticeDto
;
import
com.freemud.application.sdk.api.structure.service.MessageCenterClient
;
import
com.freemud.sdk.api.assortment.message.request.MessagePushOrderTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.request.MessageTemplateRequest
;
import
com.freemud.sdk.api.assortment.message.service.IMessageTemplatePushService
;
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
;
...
...
@@ -8,30 +19,61 @@ import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdRespons
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.ObjectUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Service
;
@Service
@Slf4j
public
class
OrderBaseService
{
private
static
final
int
SUCCESS
=
100
;
@Autowired
private
OrderCenterSdkService
orderCenterSdkService
;
@Autowired
private
MessageCenterClient
messageCenterClient
;
@Autowired
private
MessagePushAdapter
messagePushAdapter
;
@Autowired
@Qualifier
(
"messageTemplatePushOrderService"
)
private
IMessageTemplatePushService
<
MessagePushOrderTemplateRequest
>
messageTemplatePushService
;
public
QueryOrdersResponse
.
DataBean
.
OrderBean
getByOrderCode
(
String
orderCode
)
{
BaseQueryOrderRequest
queryRequest
=
new
BaseQueryOrderRequest
();
queryRequest
.
setOrderId
(
orderCode
);
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
queryRequest
);
if
(
ObjectUtils
.
notEqual
(
response
.
getErrcode
(),
SUCCESS
)
||
response
.
getData
()
==
null
)
{
return
null
;
}
return
response
.
getData
();
}
public
void
sendMessage
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
OperateType
opType
,
String
reason
)
{
//发送消息到pos消息中心
PushMessageNoticeDto
pushMessageNoticeDto1
=
null
;
try
{
pushMessageNoticeDto1
=
messagePushAdapter
.
convent2PushMessageNoticeDto
(
2
,
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
(),
null
,
orderBean
.
getOid
(),
null
,
MessageCenterCmdType
.
JIEDAN_DAYIN_TIXING
.
getCmd
());
messageCenterClient
.
createMessage
(
pushMessageNoticeDto1
,
LogThreadLocal
.
getTrackingNo
());
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"sendMessageCenterError"
,
""
,
pushMessageNoticeDto1
,
e
);
}
//发送微信模板消息
if
(
orderBean
.
getExtInfo
()
!=
null
&&
!(
OrderSource
.
SAAS
.
getSource
().
equals
(
orderBean
.
getSource
())
||
OrderSource
.
ALIPAY
.
getSource
().
equals
(
orderBean
.
getSource
())))
{
return
;
}
MessageTemplateRequest
<
MessagePushOrderTemplateRequest
>
messageTemplateRequest
=
null
;
try
{
BaseQueryOrderRequest
queryRequest
=
new
BaseQueryOrderRequest
();
queryRequest
.
setOrderId
(
orderCode
);
QueryOrderByIdResponse
response
=
orderCenterSdkService
.
queryOrderById
(
queryRequest
);
if
(
response
.
getErrcode
()
==
100
)
{
return
response
.
getData
();
messageTemplateRequest
=
messagePushAdapter
.
convent2MessageTemplateRequest
(
orderBean
,
reason
,
opType
);
if
(
messageTemplateRequest
.
getMessageEventType
()
!=
null
)
{
this
.
messageTemplatePushService
.
sendTemplateMsg
(
messageTemplateRequest
);
}
return
response
.
getData
();
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
();
return
null
;
}
catch
(
Exception
e
)
{
ErrorLog
.
printErrorLog
(
"sendTemplateMsgError"
,
""
,
messageTemplateRequest
,
e
);
}
}
/**
...
...
order-management/src/main/java/cn/freemud/management/service/OrderManagerService.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
service
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.order.OrderConfirmResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
/**
* 订单操作接口
*/
public
interface
OrderManagerService
{
/**
* 接单
* @param request 请求参数
* @param orderBean 订单实体
* @return
*/
BaseResponse
<
OrderConfirmResponse
>
orderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
);
}
order-management/src/main/java/cn/freemud/management/service/adapter/OrderBeanFactory.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
service
.
adapter
;
import
cn.freemud.management.enums.OrderSource
;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.service.impl.SaasOrderMangerServiceImpl
;
import
cn.freemud.management.service.impl.TakeawayOrderMangerServiceImpl
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.stereotype.Service
;
/**
* 根据渠道获取渠道操作实体类
*/
@Service
public
class
OrderBeanFactory
{
@Autowired
private
ApplicationContext
applicationContext
;
public
OrderManagerService
getOrderManagerService
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
){
String
source
=
orderBean
.
getSource
();
if
(
OrderSource
.
BDWM
.
getSource
().
equals
(
source
)
||
OrderSource
.
JDWM
.
getSource
().
equals
(
source
)
||
OrderSource
.
MTWM
.
getSource
().
equals
(
source
)
||
OrderSource
.
ELEME
.
getSource
().
equals
(
source
)){
return
applicationContext
.
getBean
(
TakeawayOrderMangerServiceImpl
.
class
);
}
return
applicationContext
.
getBean
(
SaasOrderMangerServiceImpl
.
class
);
}
}
order-management/src/main/java/cn/freemud/management/service/adapter/OrderManagerAdapter.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
service
.
adapter
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.order.OrderConfirmResponse
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.service.impl.OrderVerifyService
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
@Component
public
class
OrderManagerAdapter
{
@Autowired
private
OrderVerifyService
orderVerifyService
;
@Autowired
private
OrderBaseService
orderBaseService
;
@Autowired
private
OrderBeanFactory
orderBeanFactory
;
/**
* 接单
*
* @param request
* @return
*/
public
BaseResponse
<
OrderConfirmResponse
>
orderConfirmTake
(
OrderManagerRequest
request
)
{
//查询订单
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
=
orderBaseService
.
getByOrderCode
(
request
.
getOrderId
());
//订单接单参数校验
BaseResponse
verifyResponse
=
orderVerifyService
.
orderConfirmTakeVerify
(
orderBean
,
request
);
if
(
ObjectUtils
.
notEqual
(
verifyResponse
.
getCode
(),
ResponseResult
.
SUCCESS
.
getCode
()))
{
return
verifyResponse
;
}
return
orderBeanFactory
.
getOrderManagerService
(
orderBean
).
orderConfirm
(
request
,
orderBean
);
}
/**
* 拒单
* @param request
* @return
*/
public
BaseResponse
orderReject
(
OrderManagerRequest
request
)
{
return
null
;
}
}
order-management/src/main/java/cn/freemud/management/service/OrderDeliveryService.java
→
order-management/src/main/java/cn/freemud/management/service/
impl/
OrderDeliveryService.java
View file @
928ba739
package
cn
.
freemud
.
management
.
service
;
package
cn
.
freemud
.
management
.
service
.
impl
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.management.entities.DeliveryOrderRequest
;
import
cn.freemud.management.entities.
dto.request.delivery.
DeliveryOrderRequest
;
import
cn.freemud.management.enums.DeliveryStatus
;
import
cn.freemud.management.util.CheckException
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.util.CommonResp
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CancelDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
...
...
@@ -15,9 +17,9 @@ import com.freemud.application.sdk.api.log.LogThreadLocal;
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.adapter.DeliverySdkAdapter
;
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.ObjectUtils
;
...
...
@@ -26,11 +28,6 @@ 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
{
...
...
@@ -41,6 +38,8 @@ public class OrderDeliveryService {
private
DeliveryService
deliveryService
;
@Autowired
private
OrderBaseService
orderBaseService
;
@Autowired
private
DeliverySdkAdapter
deliverySdkAdapter
;
@Value
(
"${saas.order.delivery.callBackUrl}"
)
private
String
deliveryCallBackUrl
;
...
...
@@ -59,18 +58,8 @@ public class OrderDeliveryService {
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
();
Pair
<
Boolean
,
String
>
delivery
=
this
.
createDelivery
(
orderBean
,
null
,
operator
);
return
delivery
.
getKey
()?
ResponseUtil
.
success
():
ResponseUtil
.
error
(
ResponseResult
.
DELIVERY_CREATE_ORDER_ERROR
);
}
/**
...
...
@@ -79,15 +68,20 @@ public class OrderDeliveryService {
* @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
(
"查询门店信息失败"
);
public
Pair
<
Boolean
,
String
>
createDelivery
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
StoreResponse
storeInfo
,
String
operator
)
{
Pair
<
Boolean
,
String
>
pair
=
checkOrderOfDelivery
(
orderBean
);
if
(!
pair
.
getKey
())
{
return
new
Pair
<>(
false
,
"无需创建配送单"
);
}
if
(
storeInfo
==
null
){
StoreInfoRequest
storeInfoRequestDto
=
new
StoreInfoRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
());
storeInfo
=
storeCenterService
.
getStoreInfo
(
storeInfoRequestDto
,
LogTreadLocal
.
getTrackingNo
());
if
(
SUCCESS
!=
storeInfo
.
getStatusCode
()
||
storeInfo
.
getBizVO
()
==
null
)
{
return
new
Pair
<>(
false
,
"该订单不是外卖类型订单"
);
}
}
// 调用配送系统创建配送单
CreateDeliveryOrderRequestDto
requestDto
=
buildDeliveryOrderRequestDto
(
orderBean
,
storeInfo
,
deliveryCallBackUrl
);
CreateDeliveryOrderRequestDto
requestDto
=
deliverySdkAdapter
.
buildDeliveryOrderRequestDto
(
orderBean
,
storeInfo
,
deliveryCallBackUrl
);
CreateDeliveryOrderResponseDto
deliveryResponse
=
deliveryService
.
deliveryOrderAdd
(
requestDto
,
LogTreadLocal
.
getTrackingNo
());
if
(
StringUtils
.
isBlank
(
operator
))
{
...
...
@@ -97,11 +91,11 @@ public class OrderDeliveryService {
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
(
"创建配送单信息失败,配送状态更新为配送异常"
);
return
new
Pair
<>(
false
,
"创建配送单信息失败,配送状态更新为配送异常"
);
}
// 创建配送单成功
orderBaseService
.
updateDeliverySuccess
(
orderBean
.
getOid
(),
deliveryResponse
.
getData
().
getDeliveryId
(),
operator
);
return
true
;
return
new
Pair
<>(
true
,
"创建配送单成功"
)
;
}
/**
...
...
@@ -129,64 +123,6 @@ public class OrderDeliveryService {
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
);
// 预约单预计送到时间
if
(
order
.
getGmtExpect
()
!=
null
&&
order
.
getGmtExpect
()
!=
0
)
{
deliveryOrderRequestDto
.
setExpectTime
(
new
Date
(
order
.
getGmtExpect
()));
}
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/service/impl/OrderVerifyService.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
service
.
impl
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.enums.OrderStatus
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.util.ResponseUtil
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.springframework.stereotype.Service
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: OrderVerifyService
* @Package cn.freemud.management.service.impl
* @Description:
* @author: shuhu.hou
* @date: 2020/3/26 16:04
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service
public
class
OrderVerifyService
{
/**
* 接单校验
* @param orderBean
* @param request
* @return
*/
public
BaseResponse
orderConfirmTakeVerify
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
OrderManagerRequest
request
){
if
(
orderBean
==
null
){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_QUERYORDER_ERROR
);
}
if
(!
OrderStatus
.
TAKE_ORDER
.
getCode
().
equals
(
orderBean
.
getStatus
()))
{
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_CANNOT_CONFIRM
);
}
return
commonVerify
(
orderBean
,
request
);
}
private
BaseResponse
commonVerify
(
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
,
OrderManagerRequest
request
){
if
(
ObjectUtils
.
notEqual
(
orderBean
.
getCompanyId
(),
request
.
getPartnerId
())){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_PARTNER_ID_NOT_MATCTH
);
}
if
(
ObjectUtils
.
notEqual
(
orderBean
.
getShopId
(),
request
.
getStoreId
())){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_STORE_ID_NOT_MATCTH
);
}
return
ResponseUtil
.
success
();
}
}
order-management/src/main/java/cn/freemud/management/service/impl/SaasOrderMangerServiceImpl.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
service
.
impl
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.base.log.LogTreadLocal
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.order.OrderConfirmResponse
;
import
cn.freemud.management.enums.OperateType
;
import
cn.freemud.management.enums.ResponseResult
;
import
cn.freemud.management.service.OrderBaseService
;
import
cn.freemud.management.service.OrderManagerService
;
import
cn.freemud.management.util.ResponseUtil
;
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.adapter.OrderSdkAdapter
;
import
com.freemud.sdk.api.assortment.order.request.order.BaseQueryOrderRequest
;
import
com.freemud.sdk.api.assortment.order.response.order.BaseOrderResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
com.freemud.sdk.api.assortment.order.service.OrderCenterSdkService
;
import
javafx.util.Pair
;
import
org.apache.commons.lang.ObjectUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: rrr
* @Package cn.freemud.management.service.impl
* @Description: saas订单履单操作
* @author: shuhu.hou
* @date: 2020/3/26 16:01
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service
public
class
SaasOrderMangerServiceImpl
implements
OrderManagerService
{
@Autowired
private
OrderSdkAdapter
orderSdkAdapter
;
@Autowired
private
OrderCenterSdkService
orderCenterSdkService
;
@Autowired
private
OrderDeliveryService
orderDeliveryService
;
@Autowired
private
OrderBaseService
orderBaseService
;
@Autowired
private
StoreCenterService
storeCenterService
;
/**
* 接单
* @param request 请求参数
* @param orderBean 订单实体
* @return
*/
@Override
public
BaseResponse
<
OrderConfirmResponse
>
orderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
//订单接单
BaseQueryOrderRequest
orderConfirmRequest
=
orderSdkAdapter
.
getOrderConfirmRequest
(
request
.
getOperator
(),
orderBean
);
BaseOrderResponse
confirmOrderResponse
=
orderCenterSdkService
.
orderConfirmTake
(
orderConfirmRequest
);
//处理1秒重复接单问题 订单服务接单返回20067重复操作,20018状态机不支持认为接单成功
if
(
"20067"
.
equals
(
confirmOrderResponse
.
getErrcode
().
toString
())
||
"20018"
.
equals
(
confirmOrderResponse
.
getErrcode
().
toString
())
||
"50002"
.
equals
(
confirmOrderResponse
.
getErrcode
().
toString
())
)
{
return
ResponseUtil
.
success
();
}
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
confirmOrderResponse
.
getErrcode
().
toString
())){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_ACCEPT_FAILED
);
}
//创建配送单
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
new
StoreInfoRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
()),
""
);
if
(
ObjectUtils
.
notEqual
(
ResponseResult
.
SUCCESS
.
getCode
(),
storeInfo
.
getStatusCode
().
toString
())
||
storeInfo
.
getBizVO
()
==
null
)
{
return
ResponseUtil
.
error
(
ResponseResult
.
STORE_NOT_FOUND
);
}
Pair
<
Boolean
,
String
>
deliveryResonse
=
orderDeliveryService
.
createDelivery
(
orderBean
,
storeInfo
,
request
.
getOperator
());
if
(!
deliveryResonse
.
getKey
()){
return
ResponseUtil
.
error
(
ResponseResult
.
ORDER_ACCEPT_FAILED_CREATE_DELIVERY_FAILED
);
}
// 推送pos消息中心
orderBaseService
.
sendMessage
(
orderBean
,
OperateType
.
ORDER_AFFIRM
,
request
.
getReason
());
return
ResponseUtil
.
success
(
new
OrderConfirmResponse
(
storeInfo
.
getBizVO
().
getOrderPrintConfig
(),
orderBean
.
getGmtExpect
()));
}
}
order-management/src/main/java/cn/freemud/management/service/impl/TakeawayOrderMangerServiceImpl.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
service
.
impl
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.entities.dto.request.order.OrderManagerRequest
;
import
cn.freemud.management.entities.dto.response.order.OrderConfirmResponse
;
import
cn.freemud.management.service.OrderManagerService
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse
;
import
com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse
;
import
org.springframework.stereotype.Service
;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: rrr
* @Package cn.freemud.management.service.impl
* @Description: 外卖订单履单操作
* @author: shuhu.hou
* @date: 2020/3/26 16:01
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Service
public
class
TakeawayOrderMangerServiceImpl
implements
OrderManagerService
{
@Override
public
BaseResponse
<
OrderConfirmResponse
>
orderConfirm
(
OrderManagerRequest
request
,
QueryOrdersResponse
.
DataBean
.
OrderBean
orderBean
)
{
return
null
;
}
}
order-management/src/main/java/cn/freemud/management/util/ResponseUtil.java
0 → 100644
View file @
928ba739
package
cn
.
freemud
.
management
.
util
;
import
cn.freemud.base.constant.Version
;
import
cn.freemud.base.entity.BaseResponse
;
import
cn.freemud.management.enums.ResponseResult
;
/**
* @title: ResponseUtil
* @package: cn.freemud.utils
* @author: jiale<loverichy8 @ gmail.com>
* @date: 2017/11/29
* @description:
*/
public
class
ResponseUtil
{
/**
* @param <T>
* @return
*/
public
static
<
T
>
BaseResponse
<
T
>
success
()
{
return
new
BaseResponse
<>(
Version
.
VERSION_1
,
ResponseResult
.
SUCCESS
.
getCode
(),
"success"
);
}
/**
* @param t
* @param <T>
* @return
*/
public
static
<
T
>
BaseResponse
<
T
>
success
(
T
t
)
{
return
new
BaseResponse
<>(
ResponseResult
.
SUCCESS
.
getCode
(),
"success"
,
Version
.
VERSION_1
,
t
);
}
public
static
<
T
>
BaseResponse
<
T
>
error
(
ResponseResult
status
)
{
return
new
BaseResponse
<>(
Version
.
VERSION_1
,
status
.
getCode
(),
status
.
getMessage
());
}
/**
* @param code
* @return
*/
public
static
<
T
>
BaseResponse
<
T
>
error
(
String
code
)
{
return
new
BaseResponse
<>(
Version
.
VERSION_1
,
code
);
}
/**
* @param code
* @param message
* @return
*/
public
static
<
T
>
BaseResponse
<
T
>
error
(
String
code
,
String
message
)
{
return
new
BaseResponse
<>(
Version
.
VERSION_1
,
code
,
message
);
}
public
static
<
T
>
BaseResponse
<
T
>
error
(
String
code
,
String
message
,
T
t
)
{
return
new
BaseResponse
<>(
code
,
message
,
Version
.
VERSION_1
,
t
);
}
public
static
<
T
>
BaseResponse
<
T
>
error
(
ResponseResult
status
,
T
t
)
{
return
new
BaseResponse
<>(
status
.
getCode
(),
status
.
getMessage
(),
Version
.
VERSION_1
,
t
);
}
}
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