Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ana-order-backend
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
huluobin
ana-order-backend
Commits
f501c64d
Commit
f501c64d
authored
Aug 04, 2020
by
huluobin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单publish校验规则修改、采购接口修改
parent
9c9a65b7
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
342 additions
and
83 deletions
+342
-83
IOrderService.java
...va/com/bailuntec/ana/application/order/IOrderService.java
+28
-6
OrderServiceImpl.java
...ailuntec/ana/application/order/impl/OrderServiceImpl.java
+62
-9
PurchaseTaskServiceImpl.java
...na/application/purchase/impl/PurchaseTaskServiceImpl.java
+27
-33
OrderAddress.java
...n/java/com/bailuntec/ana/domain/address/OrderAddress.java
+6
-6
Order.java
src/main/java/com/bailuntec/ana/domain/order/Order.java
+2
-17
OrderDetail.java
...main/java/com/bailuntec/ana/domain/order/OrderDetail.java
+26
-6
PdsApi.java
...n/java/com/bailuntec/ana/infrastructure/feign/PdsApi.java
+46
-0
PmsApi.java
...n/java/com/bailuntec/ana/infrastructure/feign/PmsApi.java
+2
-1
OrderMapper.java
...ailuntec/ana/infrastructure/mapper/order/OrderMapper.java
+21
-2
Schedule.java
...a/com/bailuntec/ana/infrastructure/schedule/Schedule.java
+48
-0
PdsSkuInfo.java
...in/java/com/bailuntec/ana/vo/product/resp/PdsSkuInfo.java
+45
-0
application.yml
src/main/resources/application.yml
+2
-0
logback-spring.xml
src/main/resources/logback-spring.xml
+3
-3
OrderMapper.xml
src/main/resources/mapper/order/OrderMapper.xml
+24
-0
No files found.
src/main/java/com/bailuntec/ana/application/order/IOrderService.java
View file @
f501c64d
...
...
@@ -2,11 +2,14 @@ package com.bailuntec.ana.application.order;
import
com.bailuntec.ana.domain.order.Order
;
import
com.bailuntec.ana.domain.order.OrderDetail
;
import
com.bailuntec.ana.interfaces.order.OrderValidGroup
;
import
com.bailuntec.ana.vo.order.req.OrderQueryPageRequest
;
import
com.bailuntec.ana.vo.order.req.RefundOrderRequest
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
org.springframework.validation.annotation.Validated
;
import
javax.validation.Valid
;
import
java.util.List
;
/**
...
...
@@ -67,20 +70,38 @@ public interface IOrderService extends IService<Order> {
* 分页查询订单列表
* </p>
*
* @param request
* @return
* @param request
req
* @return
page
*/
Page
<
Order
>
queryPage
(
OrderQueryPageRequest
request
);
/**
* <p>
* 查询待同步刊登帐号信息的订单
* </p>
*
* @return list
*/
List
<
Order
>
queryUnSyncPdsAccountOrder
();
/**
* <p>
* 查询待同步订单详情的订单
* </p>
*
* @return list
*/
List
<
Order
>
queryUnSyncDetailsOrder
();
/**
* <p>
* 从pams同步订单里面的刊登帐号信息
* </p>
*
* @param order
Id 订单id
* @param order
订单
*/
void
syncOrderPdsAccount
(
String
orderId
);
@Validated
(
OrderValidGroup
.
Purchase
.
class
)
void
syncOrderPdsAccount
(
@Valid
Order
order
);
/**
...
...
@@ -88,9 +109,10 @@ public interface IOrderService extends IService<Order> {
* 从刊登系统同步订单详情销售sku对应的采购item,采购sku,成本
* </p>
*
* @param order
Id 订单id
* @param order
订单
*/
void
syncOrderDetails
(
String
orderId
);
@Validated
(
OrderValidGroup
.
Purchase
.
class
)
void
syncOrderDetails
(
@Valid
Order
order
);
}
src/main/java/com/bailuntec/ana/application/order/impl/OrderServiceImpl.java
View file @
f501c64d
...
...
@@ -12,16 +12,21 @@ import com.bailuntec.ana.infrastructure.common.constant.PurchaseTaskConstant;
import
com.bailuntec.ana.infrastructure.common.exception.EntityNotFoundException
;
import
com.bailuntec.ana.infrastructure.common.util.ListUtil
;
import
com.bailuntec.ana.infrastructure.common.util.SpringContextUtil
;
import
com.bailuntec.ana.infrastructure.common.util.StringUtils
;
import
com.bailuntec.ana.infrastructure.feign.PamsApi
;
import
com.bailuntec.ana.infrastructure.feign.PdsApi
;
import
com.bailuntec.ana.infrastructure.mapper.order.OrderMapper
;
import
com.bailuntec.ana.vo.order.Currency
;
import
com.bailuntec.ana.vo.order.req.OrderQueryPageRequest
;
import
com.bailuntec.ana.vo.order.req.RefundOrderRequest
;
import
com.bailuntec.ana.vo.order.resp.Accounts
;
import
com.bailuntec.ana.vo.product.resp.PdsSkuInfo
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.validation.annotation.Validated
;
import
javax.annotation.Resource
;
import
java.util.List
;
...
...
@@ -48,11 +53,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
@Resource
private
PamsApi
pamsApi
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
publishOrder
(
Order
order
)
{
this
.
save
(
order
);
order
.
getOrderDetailList
().
forEach
(
orderDetail
->
{
orderDetail
.
setOrderId
(
order
Detail
.
getId
());
orderDetail
.
setOrderId
(
order
.
getId
());
orderDetailService
.
save
(
orderDetail
);
orderDetail
.
getOrderSpecificationList
().
forEach
(
orderSpecification
->
{
...
...
@@ -69,12 +75,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
IOrderService
orderService
=
SpringContextUtil
.
getBean
(
OrderServiceImpl
.
class
);
//异步从pams获取刊登帐号信息
orderService
.
syncOrderPdsAccount
(
order
.
getId
()
);
orderService
.
syncOrderPdsAccount
(
order
);
//异步从刊登系统获取对应的采购sku和采购成本
orderService
.
syncOrderDetails
(
order
.
getId
()
);
orderService
.
syncOrderDetails
(
order
);
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
orderSalesRefund
(
RefundOrderRequest
request
)
{
Order
order
=
baseMapper
.
selectByOrderNoAndPdsAccountId
(
request
.
getOriginalOrderNo
(),
request
.
getPdsAccountId
());
...
...
@@ -114,31 +121,77 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
public
Page
<
Order
>
queryPage
(
OrderQueryPageRequest
request
)
{
Page
<
Order
>
page
=
new
Page
<>(
request
.
getPageNum
(),
request
.
getPageSize
());
page
=
baseMapper
.
queryPage
(
page
,
request
);
orderDetailService
.
setOrderDetail
(
page
.
getRecords
());
orderAddressService
.
setOrderAddress
(
page
.
getRecords
());
page
=
baseMapper
.
queryPage
(
page
,
request
);
return
page
;
}
@Override
public
List
<
Order
>
queryUnSyncPdsAccountOrder
()
{
List
<
Order
>
orderList
=
baseMapper
.
queryUnSyncPdsAccountOrder
();
orderDetailService
.
setOrderDetail
(
orderList
);
orderAddressService
.
setOrderAddress
(
orderList
);
return
orderList
;
}
@Override
public
List
<
Order
>
queryUnSyncDetailsOrder
()
{
List
<
Order
>
orderList
=
baseMapper
.
queryUnSyncDetailsOrder
();
orderDetailService
.
setOrderDetail
(
orderList
);
orderAddressService
.
setOrderAddress
(
orderList
);
return
orderList
;
}
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Async
@Override
public
void
syncOrderPdsAccount
(
String
orderId
)
{
Order
order
=
this
.
getById
(
orderId
);
public
void
syncOrderPdsAccount
(
Order
order
)
{
List
<
Accounts
>
accountsList
=
pamsApi
.
getAccount
(
order
.
getPdsAccountId
()).
getData
();
if
(
ListUtil
.
isNotEmpty
(
accountsList
))
{
Accounts
accounts
=
accountsList
.
get
(
0
);
//刊登帐号
order
.
setPdsAccount
(
accounts
.
getAccount
());
//站点
order
.
setSite
(
accounts
.
getSite
());
order
.
setSite
(
accounts
.
getSiteEn
());
this
.
updateById
(
order
);
}
order
.
getOrderDetailList
().
forEach
(
orderDetail
->
{
if
(
StringUtils
.
isEmpty
(
orderDetail
.
getOriginalLink
()))
{
orderDetail
.
setOriginalLink
(
this
.
getEbayUrl
());
orderDetailService
.
updateById
(
orderDetail
);
}
});
}
@Validated
private
String
getEbayUrl
()
{
//todo 源链接生成规则
return
"http://baidu.com"
;
}
@Resource
PdsApi
pdsApi
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Async
@Override
public
void
syncOrderDetails
(
String
orderId
)
{
//todo 从刊登系统获取对应的采购sku和采购成本
public
void
syncOrderDetails
(
Order
order
)
{
order
.
getOrderDetailList
().
forEach
(
orderDetail
->
{
PdsSkuInfo
pdsSkuInfo
=
pdsApi
.
queryPdsSku
(
order
.
getPlatform
(),
orderDetail
.
getSkuNo
());
orderDetail
.
setPurchaseAsin
(
pdsSkuInfo
.
getPurchaseAsin
());
orderDetail
.
setPurchaseSkuNo
(
pdsSkuInfo
.
getPurchaseSkuNo
());
orderDetail
.
setPurchasePlat
(
pdsSkuInfo
.
getPurchasePlat
());
orderDetail
.
setTolerance
(
pdsSkuInfo
.
getTolerance
());
orderDetail
.
setCostPrice
(
pdsSkuInfo
.
getCostPrice
());
orderDetailService
.
updateById
(
orderDetail
);
});
}
...
...
src/main/java/com/bailuntec/ana/application/purchase/impl/PurchaseTaskServiceImpl.java
View file @
f501c64d
...
...
@@ -16,8 +16,8 @@ import com.bailuntec.ana.vo.purchase.PurchaseProduct;
import
com.bailuntec.ana.vo.purchase.PurchaseRequest
;
import
com.bailuntec.ana.vo.purchase.ShippingInfo
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.google.common.collect.Lists
;
import
org.springframework.stereotype.Service
;
import
org.springframework.validation.annotation.Validated
;
import
javax.annotation.Resource
;
import
java.util.List
;
...
...
@@ -49,50 +49,44 @@ public class PurchaseTaskServiceImpl extends ServiceImpl<PurchaseTaskMapper, Pur
@Override
public
void
addTask
(
/*@Validated(OrderValidGroup.Purchase.class)*/
Order
order
,
String
taskType
)
{
PurchaseTask
purchaseTask
=
new
PurchaseTask
();
purchaseTask
.
setOrderId
(
order
.
getId
());
purchaseTask
.
setTaskType
(
taskType
);
purchaseTaskMapper
.
insert
(
purchaseTask
);
public
void
addTask
(
Order
order
,
String
taskType
)
{
order
.
getOrderDetailList
().
forEach
(
orderDetail
->
{
PurchaseTask
purchaseTask
=
new
PurchaseTask
();
purchaseTask
.
setOrderId
(
order
.
getId
());
purchaseTask
.
setTaskType
(
taskType
);
purchaseTaskMapper
.
insert
(
purchaseTask
);
List
<
OrderDetail
>
orderDetailList
=
order
.
getOrderDetailList
();
orderDetailList
.
forEach
(
orderDetail
->
{
PurchaseTaskDetail
purchaseTaskDetail
=
new
PurchaseTaskDetail
();
purchaseTaskDetail
.
setOrderDetailId
(
orderDetail
.
getId
());
purchaseTaskDetail
.
setPurchaseTaskId
(
purchaseTask
.
getId
());
purchaseTaskDetailMapper
.
insert
(
purchaseTaskDetail
);
});
PurchaseRequest
request
=
new
PurchaseRequest
();
request
.
setSite
(
order
.
getSite
());
PurchaseRequest
purchaseRequest
=
new
PurchaseRequest
();
purchaseRequest
.
setSite
(
order
.
getSite
());
//运输信息
ShippingInfo
shippingInfo
=
orderAddressService
.
buildPurchaseShippingInfo
(
order
.
getOrderAddress
());
//运输信息
ShippingInfo
shippingInfo
=
orderAddressService
.
buildPurchaseShippingInfo
(
order
.
getOrderAddress
());
request
.
setShipping_info
(
shippingInfo
);
request
.
setPurchaseOrderCallbackId
(
purchaseTask
.
getId
());
purchaseRequest
.
setShipping_info
(
shippingInfo
);
purchaseRequest
.
setPurchaseOrderCallbackId
(
purchaseTask
.
getId
());
purchaseRequest
.
setProducts
(
orderDetailList
.
stream
()
.
map
(
orderDetail
->
{
List
<
OrderSpecification
>
orderSpecificationList
=
orderSpecificationMapper
.
selectByOrderDetailId
(
orderDetail
.
getId
());
PurchaseProduct
purchaseProduct
=
new
PurchaseProduct
();
purchaseProduct
.
setAttr
(
orderSpecificationList
.
stream
().
collect
(
Collectors
.
toMap
(
OrderSpecification:
:
getName
,
OrderSpecification:
:
getValue
,
(
k1
,
k2
)
->
k1
)));
purchaseProduct
.
setSku
(
orderDetail
.
getPurchaseSkuNo
());
purchaseProduct
.
setQuantity
(
orderDetail
.
getQuantity
());
purchaseProduct
.
setAsin
(
orderDetail
.
getPurchaseAsin
());
List
<
OrderSpecification
>
orderSpecificationList
=
orderSpecificationMapper
.
selectByOrderDetailId
(
orderDetail
.
getId
());
PurchaseProduct
purchaseProduct
=
new
PurchaseProduct
();
purchaseProduct
.
setAttr
(
orderSpecificationList
.
stream
().
collect
(
Collectors
.
toMap
(
OrderSpecification:
:
getName
,
OrderSpecification:
:
getValue
,
(
k1
,
k2
)
->
k1
)));
purchaseProduct
.
setSku
(
orderDetail
.
getPurchaseSkuNo
());
purchaseProduct
.
setQuantity
(
orderDetail
.
getQuantity
());
purchaseProduct
.
setAsin
(
orderDetail
.
getPurchaseAsin
());
orderDetail
.
setPurchaseStatus
(
OrderDetail
.
PURCHASE_STATUS_PURCHASING
);
orderDetailMapper
.
updateById
(
orderDetail
);
orderDetail
.
setPurchaseStatus
(
OrderDetail
.
PURCHASE_STATUS_PURCHASING
);
orderDetailMapper
.
updateById
(
orderDetail
);
return
purchaseProduct
;
})
.
collect
(
Collectors
.
toList
()));
request
.
setProducts
(
Lists
.
newArrayList
(
purchaseProduct
));
pmsApi
.
task
(
taskType
,
purchaseTask
.
getId
(),
1
,
request
);
});
pmsApi
.
task
(
taskType
,
purchaseTask
.
getId
(),
1
,
purchaseRequest
);
}
}
src/main/java/com/bailuntec/ana/domain/address/OrderAddress.java
View file @
f501c64d
...
...
@@ -34,38 +34,38 @@ public class OrderAddress extends BaseModel {
@ApiModelProperty
(
value
=
"ana-order id"
)
private
String
orderId
;
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"国家不能为空"
)
//
@NotNull(groups = OrderValidGroup.PublishOrder.class, message = "国家不能为空")
@ApiModelProperty
(
value
=
"国家"
)
private
String
countryCode
;
@ApiModelProperty
(
value
=
"地区"
)
private
String
area
;
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"国家不能为空"
)
//
@NotNull(groups = OrderValidGroup.PublishOrder.class, message = "国家不能为空")
@ApiModelProperty
(
value
=
"城市"
)
private
String
city
;
@ApiModelProperty
(
value
=
"州"
)
private
String
stateOrRegion
;
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"地址不能为空"
)
//
@NotNull(groups = OrderValidGroup.PublishOrder.class, message = "地址不能为空")
@ApiModelProperty
(
value
=
"地址1"
)
private
String
address
;
@ApiModelProperty
(
value
=
"地址2"
)
private
String
address2
;
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"收货人姓名不能为空"
)
//
@NotNull(groups = OrderValidGroup.PublishOrder.class, message = "收货人姓名不能为空")
@ApiModelProperty
(
value
=
"收货人姓名"
)
private
String
receiver
;
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"电话不能为空"
)
//
@NotNull(groups = OrderValidGroup.PublishOrder.class, message = "电话不能为空")
@ApiModelProperty
(
value
=
"电话"
)
private
String
phone
;
private
String
phone2
;
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"邮编不能为空"
)
//
@NotNull(groups = OrderValidGroup.PublishOrder.class, message = "邮编不能为空")
@ApiModelProperty
(
value
=
"邮编"
)
private
String
postalCode
;
...
...
src/main/java/com/bailuntec/ana/domain/order/Order.java
View file @
f501c64d
...
...
@@ -62,8 +62,8 @@ public class Order extends BaseModel {
@ApiModelProperty
(
value
=
"平台订单号"
)
private
String
originalOrderNo
;
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"
平台订
不能为空"
)
@ApiModelProperty
(
value
=
"平台"
)
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"
销售平台
不能为空"
)
@ApiModelProperty
(
value
=
"
销售
平台"
)
private
String
platform
;
...
...
@@ -95,26 +95,11 @@ public class Order extends BaseModel {
@ApiModelProperty
(
value
=
"销售金额"
)
private
Currency
salePrice
;
@ApiModelProperty
(
value
=
"采购平台"
)
private
String
purchasePlat
;
@Valid
@TableField
(
typeHandler
=
JacksonTypeHandler
.
class
)
@ApiModelProperty
(
value
=
"采购价"
)
private
Currency
purchasePrice
;
@Valid
@NotNull
(
groups
=
OrderValidGroup
.
Purchase
.
class
,
message
=
"采购成本还未从刊登系统同步完成"
)
@TableField
(
typeHandler
=
JacksonTypeHandler
.
class
)
@ApiModelProperty
(
value
=
"采购成本"
)
private
Currency
costPrice
;
@NotNull
(
groups
=
OrderValidGroup
.
Purchase
.
class
,
message
=
"成本容忍范围为空"
)
@Valid
@TableField
(
typeHandler
=
JacksonTypeHandler
.
class
)
@ApiModelProperty
(
value
=
"容忍超过成本范围 超出不进行采购"
)
private
Currency
tolerance
;
@Valid
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"ebayFee不能唯恐"
)
...
...
src/main/java/com/bailuntec/ana/domain/order/OrderDetail.java
View file @
f501c64d
...
...
@@ -2,9 +2,11 @@ package com.bailuntec.ana.domain.order;
import
com.bailuntec.ana.infrastructure.common.base.BaseModel
;
import
com.bailuntec.ana.interfaces.order.OrderValidGroup
;
import
com.bailuntec.ana.vo.order.Currency
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
...
...
@@ -14,7 +16,6 @@ import org.hibernate.validator.constraints.URL;
import
javax.validation.Valid
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
...
...
@@ -29,7 +30,7 @@ import java.util.List;
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@Accessors
(
chain
=
true
)
@ApiModel
(
value
=
"Orde
rPlatformSku对象
"
,
description
=
""
)
@ApiModel
(
value
=
"Orde
Detail
"
,
description
=
""
)
public
class
OrderDetail
extends
BaseModel
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -70,6 +71,21 @@ public class OrderDetail extends BaseModel {
@ApiModelProperty
(
value
=
"待采购 平台sku编号 从刊登系统获取"
)
private
String
purchaseSkuNo
;
@ApiModelProperty
(
value
=
"采购平台"
)
private
String
purchasePlat
;
@Valid
@NotNull
(
groups
=
OrderValidGroup
.
Purchase
.
class
,
message
=
"采购成本还未从刊登系统同步完成"
)
@TableField
(
typeHandler
=
JacksonTypeHandler
.
class
)
@ApiModelProperty
(
value
=
"采购成本"
)
private
Currency
costPrice
;
@NotNull
(
groups
=
OrderValidGroup
.
Purchase
.
class
,
message
=
"成本容忍范围为空"
)
@Valid
@TableField
(
typeHandler
=
JacksonTypeHandler
.
class
)
@ApiModelProperty
(
value
=
"容忍超过成本范围 超出不进行采购"
)
private
Currency
tolerance
;
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"标题不能为空"
)
@ApiModelProperty
(
value
=
"标题"
)
private
String
title
;
...
...
@@ -79,9 +95,8 @@ public class OrderDetail extends BaseModel {
@ApiModelProperty
(
value
=
"数量"
)
private
Integer
quantity
;
@URL
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"源链接格式不正确"
)
@NotNull
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"源链接不能为空"
)
@ApiModelProperty
(
value
=
"源链接"
)
@URL
(
groups
=
OrderValidGroup
.
PublishOrder
.
class
,
message
=
"销售sku源链接格式不正确"
)
@ApiModelProperty
(
value
=
"销售sku源链接"
)
private
String
originalLink
;
@ApiModelProperty
(
value
=
"采购状态1-未采购 2-采购中 3-采购失败 4-采购完成"
)
...
...
@@ -92,8 +107,13 @@ public class OrderDetail extends BaseModel {
@ApiModelProperty
(
"发货状态 1-未发货 2-已发货"
)
private
Integer
deliveryStatus
;
/**
* <p>
* 规格可以传空列表 不不能传空
* </p>
*/
@Valid
@Not
Empty
(
groups
=
{
OrderValidGroup
.
PublishOrder
.
class
,
@Not
Null
(
groups
=
{
OrderValidGroup
.
PublishOrder
.
class
,
OrderValidGroup
.
Purchase
.
class
},
message
=
"规格不能为空"
)
@TableField
(
exist
=
false
)
private
List
<
OrderSpecification
>
orderSpecificationList
;
...
...
src/main/java/com/bailuntec/ana/infrastructure/feign/PdsApi.java
0 → 100644
View file @
f501c64d
package
com
.
bailuntec
.
ana
.
infrastructure
.
feign
;
import
com.bailuntec.ana.infrastructure.common.util.seq.IdWorker
;
import
com.bailuntec.ana.vo.product.resp.PdsSkuInfo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
/**
* <p>
* 刊登系统接口
* </p>
*
* @author robbendev
* @since 2020/8/4 4:13 下午
*/
@FeignClient
(
name
=
"PdsApi"
,
url
=
"http://www.bailuntec.com/"
,
fallback
=
PdsApi
.
PdsApiFallback
.
class
)
public
interface
PdsApi
{
@GetMapping
(
"/queryPdsSku"
)
PdsSkuInfo
queryPdsSku
(
@RequestParam
String
platform
,
@RequestParam
String
sku
);
@Slf4j
@Component
class
PdsApiFallback
implements
PdsApi
{
@Override
public
PdsSkuInfo
queryPdsSku
(
String
platform
,
String
sku
)
{
log
.
error
(
"获取sku采购信息失败"
);
PdsSkuInfo
pdsSkuInfo
=
new
PdsSkuInfo
();
pdsSkuInfo
.
setPlatform
(
platform
);
pdsSkuInfo
.
setSkuNo
(
sku
);
pdsSkuInfo
.
setPurchaseAsin
(
IdWorker
.
getId
());
pdsSkuInfo
.
setPurchasePlat
(
"ebay"
);
pdsSkuInfo
.
setPurchaseSkuNo
(
IdWorker
.
getId
());
return
pdsSkuInfo
;
}
}
}
src/main/java/com/bailuntec/ana/infrastructure/feign/PmsApi.java
View file @
f501c64d
...
...
@@ -41,10 +41,11 @@ public interface PmsApi {
@Slf4j
class
PmsApiFallback
implements
PmsApi
{
@Override
public
String
task
(
String
task
,
String
callBackID
,
Integer
user
,
PurchaseRequest
request
)
{
log
.
error
(
"下发采购任务失败"
);
return
"
fail
"
;
return
""
;
}
}
...
...
src/main/java/com/bailuntec/ana/infrastructure/mapper/order/OrderMapper.java
View file @
f501c64d
...
...
@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* <p>
* Mapper 接口
...
...
@@ -31,10 +33,27 @@ public interface OrderMapper extends BaseMapper<Order> {
* 分页查询订单
* </p>
*
* @param page
分页参数
* @param page 分页参数
* @param param 搜索条件
* @return
*/
Page
<
Order
>
queryPage
(
@Param
(
"page"
)
Page
<
Order
>
page
,
@Param
(
"param"
)
OrderQueryPageRequest
param
);
Page
<
Order
>
queryPage
(
@Param
(
"page"
)
Page
<
Order
>
page
,
@Param
(
"param"
)
OrderQueryPageRequest
param
);
/**
* <p>
* 查询待同步订单详情的订单
* </p>
*
* @return list
*/
List
<
Order
>
queryUnSyncDetailsOrder
();
/**
* <p>
* 查询待同步刊登帐号信息的订单
* </p>
*
* @return
*/
List
<
Order
>
queryUnSyncPdsAccountOrder
();
}
src/main/java/com/bailuntec/ana/infrastructure/schedule/Schedule.java
View file @
f501c64d
package
com
.
bailuntec
.
ana
.
infrastructure
.
schedule
;
import
com.bailuntec.ana.application.order.IOrderService
;
import
com.bailuntec.ana.domain.order.Order
;
import
com.bailuntec.ana.infrastructure.common.util.ListUtil
;
import
lombok.AllArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.List
;
@EnableScheduling
@AllArgsConstructor
@Slf4j
@Component
public
class
Schedule
{
@Resource
IOrderService
orderService
;
/**
* <p>
* 从pams同步订单里面的刊登帐号信息
* </p>
*/
@Scheduled
(
cron
=
"0 0/1 * * * *"
)
public
void
syncOrderPdsAccount
()
{
List
<
Order
>
orderList
=
orderService
.
queryUnSyncPdsAccountOrder
();
if
(
ListUtil
.
isNotEmpty
(
orderList
))
{
log
.
info
(
"从pams同步订单里面的刊登帐号信息 任务开始"
);
try
{
orderList
.
forEach
(
order
->
orderService
.
syncOrderPdsAccount
(
order
));
}
catch
(
Exception
ex
)
{
log
.
error
(
"从pams同步订单里面的刊登帐号信息 任务失败,{}"
,
ex
.
getMessage
(),
ex
);
}
log
.
info
(
"从pams同步订单里面的刊登帐号信息 任务完成"
);
}
}
/**
* <p>
* 从刊登系统同步订单详情销售sku对应的采购item,采购sku,成本
* </p>
*/
@Scheduled
(
cron
=
"0 0/1 * * * *"
)
public
void
syncOrderDetails
()
{
List
<
Order
>
orderList
=
orderService
.
queryUnSyncDetailsOrder
();
if
(
ListUtil
.
isNotEmpty
(
orderList
))
{
log
.
info
(
"从刊登系统同步订单详情销售sku对应的采购item,采购sku,成本 任务开始"
);
try
{
orderList
.
forEach
(
order
->
orderService
.
syncOrderDetails
(
order
));
}
catch
(
Exception
ex
)
{
log
.
error
(
"从刊登系统同步订单详情销售sku对应的采购item,采购sku,成本 任务失败,{}"
,
ex
.
getMessage
(),
ex
);
}
log
.
info
(
"从刊登系统同步订单详情销售sku对应的采购item,采购sku,成本 任务完成"
);
}
}
}
src/main/java/com/bailuntec/ana/vo/product/resp/PdsSkuInfo.java
0 → 100644
View file @
f501c64d
package
com
.
bailuntec
.
ana
.
vo
.
product
.
resp
;
import
com.bailuntec.ana.interfaces.order.OrderValidGroup
;
import
com.bailuntec.ana.vo.order.Currency
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.validation.Valid
;
import
javax.validation.constraints.NotNull
;
/**
* <p>
* mock刊登系统sku返回值
* </p>
*
* @author robbendev
* @since 2020/8/4 4:19 下午
*/
@Data
public
class
PdsSkuInfo
{
@ApiModelProperty
(
value
=
"销售平台"
)
private
String
platform
;
@ApiModelProperty
(
value
=
"订单 平台sku编码"
)
private
String
skuNo
;
@ApiModelProperty
(
value
=
"采购平台"
)
private
String
purchasePlat
;
@ApiModelProperty
(
value
=
"待采购 平台spuId 从刊登系统获取"
)
private
String
purchaseAsin
;
@ApiModelProperty
(
value
=
"待采购 平台sku编号 从刊登系统获取"
)
private
String
purchaseSkuNo
;
@ApiModelProperty
(
value
=
"采购成本"
)
private
Currency
costPrice
;
@ApiModelProperty
(
value
=
"容忍超过成本范围 超出不进行采购"
)
private
Currency
tolerance
;
}
src/main/resources/application.yml
View file @
f501c64d
spring
:
profiles
:
active
:
dev
jackson
:
default-property-inclusion
:
non_null
src/main/resources/logback-spring.xml
View file @
f501c64d
...
...
@@ -96,7 +96,7 @@
<appender-ref
ref=
"STDOUT"
/>
</logger>
<root
level=
"
INFO
"
additivity=
"false"
>
<root
level=
"
DEBUG
"
additivity=
"false"
>
<appender-ref
ref=
"STDOUT"
/>
</root>
</springProfile>
...
...
@@ -115,7 +115,7 @@
<appender-ref
ref=
"INFO"
/>
</logger>
<root
level=
"
INFO
"
additivity=
"false"
>
<root
level=
"
DEBUG
"
additivity=
"false"
>
<appender-ref
ref=
"STDOUT"
/>
</root>
</springProfile>
...
...
@@ -134,7 +134,7 @@
<appender-ref
ref=
"INFO"
/>
</logger>
<root
level=
"
INFO
"
additivity=
"false"
>
<root
level=
"
DEBUG
"
additivity=
"false"
>
<appender-ref
ref=
"STDOUT"
/>
</root>
</springProfile>
...
...
src/main/resources/mapper/order/OrderMapper.xml
View file @
f501c64d
...
...
@@ -9,9 +9,33 @@
where original_order_no = #{originalOrderNo}
and pds_account_id = #{pdsAccountId}
</select>
<select
id=
"queryPage"
resultType=
"com.bailuntec.ana.domain.order.Order"
>
select *
from `order`
where record_state = 'A'
</select>
<select
id=
"queryUnSyncDetailsOrder"
resultType=
"com.bailuntec.ana.domain.order.Order"
>
SELECT t1.*
from `order` t1
LEFT JOIN order_detail t2 on t1.id = t2.order_id
where (t2.purchase_plat is null
or t2.purchase_asin is null
or t2.purchase_sku_no is null
or t2.tolerance is null
or t2.cost_price is null)
and t1.record_state = 'A'
GROUP BY t1.id
</select>
<select
id=
"queryUnSyncPdsAccountOrder"
resultType=
"com.bailuntec.ana.domain.order.Order"
>
SELECT t1.*
from `order` t1
LEFT JOIN order_detail t2 on t1.id = t2.order_id
where (t1.site is null
or t2.original_link is null)
and t1.record_state = 'A'
GROUP BY t1.id
</select>
</mapper>
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