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
2f5edd23
Commit
2f5edd23
authored
Aug 09, 2020
by
huiyang.chen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
创建配送单
parent
4f2e0986
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
554 additions
and
2 deletions
+554
-2
order-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
+1
-1
order-application-service/src/main/java/cn/freemud/adapter/DeliveryAdapter.java
+101
-0
order-application-service/src/main/java/cn/freemud/entities/vo/CreateDeliveryVo.java
+271
-0
order-application-service/src/main/java/cn/freemud/entities/vo/ProductInfo.java
+83
-0
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
+44
-1
order-application-service/src/main/java/cn/freemud/service/thirdparty/DeliveryFeiginClient.java
+7
-0
order-application-service/src/test/java/cn/freemud/service/impl/EncircleOrderServiceImplTest.java
+47
-0
No files found.
order-application-service/src/main/java/cn/freemud/adapter/CouponAdapter.java
View file @
2f5edd23
...
...
@@ -586,8 +586,8 @@ public class CouponAdapter {
mcCafeProductRedeemVo
.
setPid
(
pid
);
mcCafeProductRedeemVo
.
setKeyProductCode
(
productBean
.
getCustomerCode
());
mcCafeProductRedeemVo
.
setCustomer_code
(
productBean
.
getCustomerCode
());
mcCafeProductRedeemVo
.
setConsume_num
(
productDiscount
.
getDiscountQty
());
mcCafeProductRedeemVo
.
setSeq
(
i
+
1
);
mcCafeProductRedeemVo
.
setConsume_num
(
productDiscount
.
getDiscountQty
());
products
.
add
(
mcCafeProductRedeemVo
);
}
}
...
...
order-application-service/src/main/java/cn/freemud/adapter/DeliveryAdapter.java
View file @
2f5edd23
package
cn
.
freemud
.
adapter
;
import
cn.freemud.base.util.DateUtil
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.vo.CreateDeliveryVo
;
import
cn.freemud.entities.vo.ProductInfo
;
import
cn.freemud.enums.DeliveryChannelEnum
;
import
cn.freemud.enums.OrderType
;
import
com.alibaba.fastjson.JSONObject
;
import
com.freemud.application.sdk.api.deliverycenter.dto.CreateDeliveryOrderRequestDto
;
import
com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto
;
import
com.freemud.application.sdk.api.storecenter.response.StoreResponse
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Component
public
class
DeliveryAdapter
{
public
CreateDeliveryOrderRequestDto
convertToWeixinDeliveryOrderRequestDto
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
,
StoreResponse
storeInfo
,
String
accessToken
,
String
deliveryCallBackUrl
)
{
CreateDeliveryOrderRequestDto
deliveryOrderRequestDto
=
new
CreateDeliveryOrderRequestDto
();
...
...
@@ -74,6 +84,97 @@ public class DeliveryAdapter {
return
deliveryOrderRequestDto
;
}
/**
* 创建配送单请求对象
*
* @param order
* @param storeInfo
* @return
*/
public
CreateDeliveryVo
buildDeliveryOrderRequestDto
(
QueryOrdersResponseDto
.
DataBean
.
OrderBean
order
,
StoreResponse
storeInfo
,
String
deliveryCallBackUrl
,
String
displayOrderId
)
{
SimpleDateFormat
simpleDateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
CreateDeliveryVo
deliveryOrderRequestDto
=
new
CreateDeliveryVo
();
deliveryOrderRequestDto
.
setDepatchWeight
(
new
BigDecimal
(
1
));
deliveryOrderRequestDto
.
setSerialNumber
(
order
.
getOtherCode
());
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
.
getType
()
==
OrderType
.
PRE_ORDER
.
getCode
()
?
1
:
0
);
//---麦咖啡餐道专用---
deliveryOrderRequestDto
.
setDisplayOrderId
(
displayOrderId
);
deliveryOrderRequestDto
.
setTaxFlag
(
0
);
if
(
CollectionUtils
.
isNotEmpty
(
order
.
getAccountList
()))
{
List
<
QueryOrdersResponseDto
.
DataBean
.
OrderBean
.
AccountBean
>
collect
=
order
.
getAccountList
().
stream
().
filter
(
type
->
type
!=
null
&&
!
type
.
equals
(
1
)).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
collect
))
{
//配送费
deliveryOrderRequestDto
.
setDeliveryTotal
(
collect
.
get
(
0
).
getPrice
().
intValue
());
}
}
deliveryOrderRequestDto
.
setIsPayed
(
1
);
deliveryOrderRequestDto
.
setTenderType
(
"WeChat"
);
deliveryOrderRequestDto
.
setIsLargeOrder
(
0
);
if
(
deliveryOrderRequestDto
.
getIsPre
()==
1
&&
deliveryOrderRequestDto
.
getExpectTime
()
!=
null
){
deliveryOrderRequestDto
.
setIsImmediateDelivery
(
0
);
deliveryOrderRequestDto
.
setExpectDeliveryTimeByUTC
(
simpleDateFormat
.
format
(
deliveryOrderRequestDto
.
getExpectTime
()));
}
else
{
deliveryOrderRequestDto
.
setIsImmediateDelivery
(
1
);
String
expectDeliveryTimeByUTC
=
order
.
getGmtCreate
()
!=
null
?
simpleDateFormat
.
format
(
DateUtil
.
addMinutes
(
new
Date
(
order
.
getGmtCreate
()),
30
))
:
null
;
deliveryOrderRequestDto
.
setExpectDeliveryTimeByUTC
(
expectDeliveryTimeByUTC
);
}
//---麦咖啡餐道专用---
List
<
ProductInfo
>
productInfos
=
new
ArrayList
<>();
order
.
getProductList
().
forEach
(
productList
->
{
if
(
productList
.
getPrice
()
>
0
)
{
ProductInfo
deliveryProductInfo
=
new
ProductInfo
();
deliveryProductInfo
.
setProductCode
(
productList
.
getProductId
());
deliveryProductInfo
.
setProductName
(
productList
.
getProductName
());
deliveryProductInfo
.
setProductNumber
(
productList
.
getNumber
());
deliveryProductInfo
.
setProductPrice
(
productList
.
getPrice
().
intValue
());
//餐道使用
deliveryProductInfo
.
setCumulatedTotal
(
productList
.
getNumber
()
*
productList
.
getPrice
().
intValue
());
deliveryProductInfo
.
setTaxId
(
10
);
deliveryProductInfo
.
setTaxRate
(
6
);
deliveryProductInfo
.
setParentCode
(
Long
.
valueOf
(
productList
.
getParentProductId
()));
productInfos
.
add
(
deliveryProductInfo
);
}
});
deliveryOrderRequestDto
.
setProductInfos
(
productInfos
);
return
deliveryOrderRequestDto
;
}
}
order-application-service/src/main/java/cn/freemud/entities/vo/CreateDeliveryVo.java
0 → 100644
View file @
2f5edd23
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.Date
;
import
java.util.List
;
@Data
public
class
CreateDeliveryVo
{
/**
* 商品信息
* productInfos不能为空
*/
private
List
<
ProductInfo
>
productInfos
;
/**
* 取餐号
* serialNumber不能为空
*/
private
String
serialNumber
;
/**
* 订单编号
* orderId不能为空
*/
private
String
orderId
;
/**
* 订单备注
*/
private
String
orderRemark
;
/**
* 订单来源 美团 ,饿了么,百度,口碑 等(中文)
*/
private
String
orderSource
;
/**
* 订单总金额(分)
* orderTotalAmount不能为空
* orderTotalAmount不能小于1
*/
private
Integer
orderTotalAmount
;
/**
* 订单实付金额(分)
* orderActualAmount不能为空
* orderActualAmount不能小于1
*/
private
Integer
orderActualAmount
;
/**
* 订单重量(kg)
*/
private
BigDecimal
depatchWeight
;
/**
* 发票抬头
*/
private
String
invoiceTitle
;
/**
* 商户id
*/
private
String
partnerId
;
/**
* 商户信息备注
*/
private
String
partnerRemark
;
/**
* 订单渠道
*/
private
String
orderChannel
;
/**
* 配送渠道
*/
private
String
deliveryChannel
;
/**
* 是否预约单 0否 1是
* isPre不能为空
*
*/
private
Integer
isPre
;
/**
* 门店id(非码)
* storeId不能为空
*/
private
String
storeId
;
/**
* 第三方门店id
* storeCode不能为空
*/
private
String
storeCode
;
/**
* 门店名称
* storeName不能为空
*/
private
String
storeName
;
/**
* 门店地址
* storeAddress不能为空
*/
private
String
storeAddress
;
// "门店所在区"
private
String
storeArea
;
// "门店所在市"
private
String
storeCity
;
// "门店所在省"
private
String
storeProvince
;
/**
* 门店经度
* storeLng不能为空
*/
private
BigDecimal
storeLng
;
/**
* 门店纬度
* storeLat不能为空
*/
private
BigDecimal
storeLat
;
/**
* 门店电话
* storePhone不能为空
*/
private
String
storePhone
;
/**
* 门店联系人
*/
private
String
storeContact
;
/**
* 收货人姓名
* receiverName不能为空
*/
private
String
receiverName
;
/**
* 收货人联系方式
* receiverPrimaryPhone不能为空
*/
private
String
receiverPrimaryPhone
;
/**
* 收货人备用联系方式
*/
private
String
receiverSecondPhone
;
/**
* 收货人地址
* receiverAddress不能为空
*/
private
String
receiverAddress
;
/**
* 收货人经度
* receiverLng不能为空
*/
private
BigDecimal
receiverLng
;
/**
* 收货人纬度
* receiverLat不能为空
*/
private
BigDecimal
receiverLat
;
/**
* 所在城市
* cityName不能为空
*/
private
String
cityName
;
//"所在省份"
private
String
provinceName
;
//"所在区"
private
String
areaName
;
/**
* 配送服务代码(飞速达:4002;快速达:4011;及时达:4012;集中送:4013)
*/
private
Integer
deliveryServiceCode
;
/**
* 商品类型 1送餐; 2送药; 3百货;4脏衣收; 5干净衣派;6生鲜; 7保单;8饮品;9现场勘查;99其他
*/
private
Integer
productType
;
private
String
callbackUrl
;
/**
* 用户下单时间
* orderTime不能为空
*/
private
Date
orderTime
;
//用户期望送达时间"
private
Date
expectTime
;
// "微信token 渠道为微信物流时必传"
private
String
accessToken
;
//"小程序openid 渠道为微信物流时必传"
private
String
openId
;
// "商家小程序的路径,建议为订单页面 渠道为微信物流时必传")
private
String
wxaPath
;
// "小程序appId 渠道为微信物流时必传")
private
String
wxAppId
;
//"微信物流公司id")
private
String
wxCompanyId
;
//"微信物流公司快递编码")
private
String
wxBizId
;
//"微信物流公司服务类型ID")
private
Integer
serviceType
;
// "微信物流公司服务类型名称")
private
String
serviceName
;
//"非码运单号")
private
String
deliveryId
;
//"是否大订单 : 0-否 , 1-是")
private
Integer
isLargeOrder
;
// "是否实时送达: 0-否 , 1-是")
private
Integer
isImmediateDelivery
;
// "预计送达时间-UTC 时间")
private
String
expectDeliveryTimeByUTC
;
// "餐品总额(单位:分)")
private
Integer
productTotal
;
// "是否支付: 0-否 , 1-是 ")
private
Integer
isPayed
;
// "付款类型")
private
String
tenderType
;
//"启用新版税率规则计算开票:0-关闭,1-开启")
private
Integer
taxFlag
;
//"配送费(单位:分)"
private
Integer
deliveryTotal
;
// "订单显示ID(餐道专用)")
private
String
displayOrderId
;
}
order-application-service/src/main/java/cn/freemud/entities/vo/ProductInfo.java
0 → 100644
View file @
2f5edd23
package
cn
.
freemud
.
entities
.
vo
;
import
lombok.Data
;
@Data
public
class
ProductInfo
{
/**
* 商品编号
* productCode不能为空
*/
private
String
productCode
;
/**
* 归属餐品 ID(一般套餐或者特殊要求时,该 ID 指向主餐品 ID) 0或者-1代表一级餐品数据; 一份餐品数据存在多级(麦咖啡餐道专用)
*/
private
Long
parentCode
;
/**
* "税率代码:10-餐品费用,13-非餐品费用;仅 taxFlag=1 改字段生效,具体税率代码参考麦 中定义")(麦咖啡餐道专用)
*
*/
private
Integer
taxId
;
/**
* 税率:餐品费用-6,非餐品费用-13;仅 taxFlag=1 改字段生效,具体税率值参考麦中 定义 (麦咖啡餐道专用)
*/
private
Integer
taxRate
;
/**
* "优惠金额 单位:分"
*/
private
Long
discountAmount
;
// ---
/**
* 商品名称
* productName不能为空
*/
private
String
productName
;
/**
* 商品数量
* productNumber不能为空
* productNumber不能小于1
*/
private
Integer
productNumber
;
/**
* 商品价格(分)
* productPrice不能为空
*/
private
Integer
productPrice
;
/**
* 商品尺寸
*/
private
Integer
productSize
;
/**
* 商品图片 微信物流必传
*/
private
String
productImg
;
/**
* 商品备注
*/
private
String
productRemark
;
/**
* 小计(单位分)(麦咖啡餐道专用)
*/
private
Integer
cumulatedTotal
;
/**
* "分组名称,如果订单采用分组形式,该参数为比传" (麦咖啡餐道专用)
*/
private
String
GroupName
;
}
order-application-service/src/main/java/cn/freemud/service/impl/MCCafeOrderServiceImpl.java
View file @
2f5edd23
...
...
@@ -56,6 +56,7 @@ import com.freemud.application.sdk.api.constant.ResponseConstant;
import
com.freemud.application.sdk.api.constant.ResponseResultEnum
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponBaseResponse
;
import
com.freemud.application.sdk.api.couponcenter.offline.response.CouponRedeemResponse
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
import
com.freemud.application.sdk.api.deliverycenter.service.DeliveryService
;
import
com.freemud.application.sdk.api.log.ApiLog
;
import
com.freemud.application.sdk.api.log.LogThreadLocal
;
...
...
@@ -68,6 +69,7 @@ import com.freemud.application.sdk.api.paymentcenter.client.request.SVCCardAmoun
import
com.freemud.application.sdk.api.paymentcenter.client.response.CodePayResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.response.SVCCardAmountResponse
;
import
com.freemud.application.sdk.api.paymentcenter.client.service.PaymentNewService
;
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.application.sdk.api.structure.request.PushMessageNoticeDto
;
...
...
@@ -114,7 +116,6 @@ import java.util.function.Function;
import
java.util.stream.Collectors
;
import
static
cn
.
freemud
.
constant
.
OrderRefundConstant
.
ALLOW_REFUND
;
import
static
com
.
freemud
.
sdk
.
api
.
assortment
.
order
.
domain
.
ResponseCodeConstant
.
RESPONSE_SUCCESS_STR
;
@Service
@Slf4j
...
...
@@ -134,8 +135,14 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
private
String
cloudPrintQueue
;
@Value
(
"${mq.cloud_print_exchange}"
)
private
String
cloud_print_exchange
;
@Value
(
"${saas.order.delivery.callBackUrl}"
)
private
String
deliveryCallBackUrl
;
@Autowired
private
DeliveryFeiginClient
deliveryFeiginClient
;
@Autowired
private
DeliveryAdapter
deliveryAdapter
;
@Autowired
private
AssortmentCloudPrinterManager
cloudPrinterManager
;
@Autowired
private
FMAssistantCloudPrintClient
fmAssistantCloudPrintClient
;
...
...
@@ -821,6 +828,7 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
return
null
;
}
@Override
public
String
paySuccessCallback
(
PaysuccessNoticeMessage
message
,
ConfirmOrderDto
confirmOrderDto
,
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
)
{
OrderBean
orderBean
=
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
...
...
@@ -960,11 +968,46 @@ public class MCCafeOrderServiceImpl implements MCCafeOrderService {
requestDto
.
setOpenId
(
orderExtInfoDto
!=
null
?
orderExtInfoDto
.
getOpenid
()
:
""
);
buriedPointService
.
BuriedPointPayment
(
requestDto
,
orderBean
);
//获取门店信息
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
new
StoreInfoRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
()),
""
);
if
(
storeInfo
==
null
||
ObjectUtils
.
notEqual
(
cn
.
freemud
.
management
.
enums
.
ResponseResult
.
SUCCESS
.
getCode
(),
storeInfo
.
getStatusCode
().
toString
())
||
storeInfo
.
getBizVO
()
==
null
)
{
return
sendPaySuccessNoticeMessage
();
}
CreateDeliveryVo
createDeliveryVo
=
deliveryAdapter
.
buildDeliveryOrderRequestDto
(
orderBean
,
storeInfo
,
deliveryCallBackUrl
,
null
);
//创建配送单
CreateDeliveryOrderResponseDto
deliveryResponse
=
deliveryFeiginClient
.
deliveryOrderAdd
(
createDeliveryVo
);
//创建配送单失败,更新订单为异常单
if
(
deliveryResponse
==
null
||
RESPONSE_SUCCESS_CODE
!=
deliveryResponse
.
getCode
()
||
deliveryResponse
.
getData
()
==
null
)
{
String
deliveryId
=
deliveryResponse
!=
null
&&
deliveryResponse
.
getData
()
!=
null
?
deliveryResponse
.
getData
().
getDeliveryId
()
:
""
;
String
operator
=
"系统"
;
updateDeliveryAbnormal
(
orderBean
.
getCompanyId
(),
orderBean
.
getOid
(),
deliveryId
,
operator
);
return
sendPaySuccessNoticeMessage
();
}
//支付回掉成功标记
redisCache
.
save
(
RedisKeyConstant
.
KGD_PAYMENT_CALLBACK_FMID
+
message
.
getOut_trade_no
(),
message
.
getOut_trade_no
(),
10L
,
TimeUnit
.
MINUTES
);
return
sendPaySuccessNoticeMessage
();
}
/**
* 创建配送单一车 -> 更新订单为异常单
*
* @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
);
}
@Override
public
BaseResponse
orderRefund
(
OrderRefundVo
orderRefundVo
)
{
if
(
StringUtils
.
isEmpty
(
orderRefundVo
.
getReason
()))
{
...
...
order-application-service/src/main/java/cn/freemud/service/thirdparty/DeliveryFeiginClient.java
View file @
2f5edd23
...
...
@@ -2,6 +2,8 @@ package cn.freemud.service.thirdparty;
import
cn.freemud.entities.dto.delivery.QueryDeliveryAmountRequestDto
;
import
cn.freemud.entities.dto.delivery.QueryDeliveryAmountResponseDto
;
import
cn.freemud.entities.vo.CreateDeliveryVo
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
...
@@ -11,4 +13,9 @@ public interface DeliveryFeiginClient {
@PostMapping
(
"/deliveryLogisticsAmount/queryDeliveryAmount"
)
QueryDeliveryAmountResponseDto
queryDeliveryAmount
(
@RequestBody
QueryDeliveryAmountRequestDto
request
);
@PostMapping
(
"/delivery/create"
)
CreateDeliveryOrderResponseDto
deliveryOrderAdd
(
@RequestBody
CreateDeliveryVo
request
);
}
order-application-service/src/test/java/cn/freemud/service/impl/EncircleOrderServiceImplTest.java
View file @
2f5edd23
package
cn
.
freemud
.
service
.
impl
;
import
cn.freemud.adapter.DeliveryAdapter
;
import
cn.freemud.entities.dto.QueryOrdersResponseDto
;
import
cn.freemud.entities.vo.CreateDeliveryVo
;
import
cn.freemud.entities.vo.CreateOrderVo
;
import
cn.freemud.entities.vo.encircle.CreateReserveOrderVo
;
import
cn.freemud.entities.vo.encircle.EmptyTableNumberVo
;
import
cn.freemud.enums.OrderBeanType
;
import
cn.freemud.service.EncircleOrderService
;
import
cn.freemud.service.thirdparty.DeliveryFeiginClient
;
import
com.alibaba.fastjson.JSON
;
import
com.freemud.application.sdk.api.deliverycenter.response.CreateDeliveryOrderResponseDto
;
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
org.apache.commons.lang.ObjectUtils
;
import
org.junit.Test
;
import
org.junit.Before
;
import
org.junit.After
;
import
org.junit.runner.RunWith
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.cloud.client.discovery.EnableDiscoveryClient
;
import
org.springframework.cloud.netflix.feign.EnableFeignClients
;
import
org.springframework.test.context.junit4.SpringRunner
;
import
java.util.Map
;
/**
* EncircleOrderServiceImpl Tester.
*
...
...
@@ -32,6 +45,18 @@ public class EncircleOrderServiceImplTest {
@Autowired
private
EncircleOrderService
encircleOrderService
;
@Autowired
private
OrderServiceImpl
orderService
;
@Autowired
private
StoreCenterService
storeCenterService
;
@Value
(
"${saas.order.delivery.callBackUrl}"
)
private
String
deliveryCallBackUrl
;
@Autowired
private
DeliveryFeiginClient
deliveryFeiginClient
;
@Autowired
private
DeliveryAdapter
deliveryAdapter
;
@Before
public
void
before
()
throws
Exception
{
}
...
...
@@ -55,6 +80,28 @@ public class EncircleOrderServiceImplTest {
System
.
out
.
println
(
JSON
.
toJSONString
(
encircleOrderService
.
createReserveOrder
(
createOrderVo
)));
}
@Test
public
void
testd
()
throws
Exception
{
Map
<
String
,
QueryOrdersResponseDto
.
DataBean
.
OrderBean
>
orderBeans
=
orderService
.
getOrderBeanByOrderId
(
"18550453673517366500002"
);
QueryOrdersResponseDto
.
DataBean
.
OrderBean
orderBean
=
orderBeans
.
get
(
OrderBeanType
.
SAASORDER
.
getCode
());
//获取门店信息
StoreResponse
storeInfo
=
storeCenterService
.
getStoreInfo
(
new
StoreInfoRequest
(
orderBean
.
getCompanyId
(),
orderBean
.
getShopId
()),
""
);
if
(
storeInfo
==
null
||
ObjectUtils
.
notEqual
(
cn
.
freemud
.
management
.
enums
.
ResponseResult
.
SUCCESS
.
getCode
(),
storeInfo
.
getStatusCode
().
toString
())
||
storeInfo
.
getBizVO
()
==
null
)
{
//return sendPaySuccessNoticeMessage();
}
CreateDeliveryVo
createDeliveryVo
=
deliveryAdapter
.
buildDeliveryOrderRequestDto
(
orderBean
,
storeInfo
,
deliveryCallBackUrl
,
""
);
//创建配送单
CreateDeliveryOrderResponseDto
deliveryResponse
=
deliveryFeiginClient
.
deliveryOrderAdd
(
createDeliveryVo
);
//创建配送单失败,更新订单为异常单
if
(
deliveryResponse
==
null
||
100
!=
deliveryResponse
.
getCode
()
||
deliveryResponse
.
getData
()
==
null
)
{
String
deliveryId
=
deliveryResponse
!=
null
&&
deliveryResponse
.
getData
()
!=
null
?
deliveryResponse
.
getData
().
getDeliveryId
()
:
""
;
String
operator
=
"系统"
;
//updateDeliveryAbnormal(orderBean.getCompanyId(), orderBean.getOid(), deliveryId, operator);
// return sendPaySuccessNoticeMessage();
}
}
/**
* Method: updateReserveOrder(CreateReserveOrderVo createReserveOrderVo)
*/
...
...
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