Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
quanku
qk_backend
Commits
ef7f85a9
Commit
ef7f85a9
authored
Sep 13, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
换藏订单列表
parent
4dd100e3
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
692 additions
and
8 deletions
+692
-8
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysExchangeApplyOrderServiceImpl.java
.../wwdz/ch/admin/impl/SysExchangeApplyOrderServiceImpl.java
+10
-2
ch-core/src/main/java/com/wwdz/ch/core/consts/DistributionEnum.java
...c/main/java/com/wwdz/ch/core/consts/DistributionEnum.java
+1
-1
ch-core/src/main/java/com/wwdz/ch/core/consts/ExchangeApplyOrderEnum.java
.../java/com/wwdz/ch/core/consts/ExchangeApplyOrderEnum.java
+4
-3
ch-dao/src/main/java/com/wwdz/ch/db/dao/exchange/ExchangeApplyOrderDao.java
...va/com/wwdz/ch/db/dao/exchange/ExchangeApplyOrderDao.java
+5
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/SupplierItemDaoImpl.java
...com/wwdz/ch/db/impl/distribution/SupplierItemDaoImpl.java
+1
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/exchange/ExchangeApplyOrderDaoImpl.java
...m/wwdz/ch/db/impl/exchange/ExchangeApplyOrderDaoImpl.java
+11
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/ExchangeOrderDetailVo.java
...z/ch/wx/entity/vo/distribution/ExchangeOrderDetailVo.java
+181
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/ExchangeOrderVo.java
...om/wwdz/ch/wx/entity/vo/distribution/ExchangeOrderVo.java
+120
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/ExchangeApplyOrderServiceImpl.java
...h/wx/impl/distribution/ExchangeApplyOrderServiceImpl.java
+3
-2
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/ExchangeOrderServiceImpl.java
...wdz/ch/wx/impl/distribution/ExchangeOrderServiceImpl.java
+279
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/ExchangeOrderService.java
...wwdz/ch/wx/service/distribution/ExchangeOrderService.java
+21
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/ExchangeOrderController.java
.../wwdz/ch/wx/web/distribution/ExchangeOrderController.java
+56
-0
No files found.
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysExchangeApplyOrderServiceImpl.java
View file @
ef7f85a9
...
...
@@ -28,6 +28,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
java.time.Duration
;
import
java.time.Instant
;
...
...
@@ -174,13 +175,17 @@ public class SysExchangeApplyOrderServiceImpl implements SysExchangeApplyOrderSe
ExchangeApplyOrder
exchangeApplyOrder
=
exchangeApplyOrderDao
.
findByOrderId
(
orderId
);
String
targetUserOrderId
=
exchangeApplyOrder
.
getTargetUserOrderId
();
String
userOrderId
=
exchangeApplyOrder
.
getUserOrderId
();
SysExchangeApplyOrderDetailVo
sysExchangeApplyOrderDetailVo
=
new
SysExchangeApplyOrderDetailVo
();
sysExchangeApplyOrderDetailVo
.
setExchangeApplyOrderId
(
orderId
);
sysExchangeApplyOrderDetailVo
.
setCreateTime
(
exchangeApplyOrder
.
getCreateTime
());
sysExchangeApplyOrderDetailVo
.
setState
(
exchangeApplyOrder
.
getState
());
//申请方的订单信息
SysExchangeOrderVo
commitOrderVo
=
new
SysExchangeOrderVo
();
DistributionOrder
commitOrder
=
distributionOrderDao
.
findById
(
userOrderId
);
DistributionOrder
commitOrder
=
new
DistributionOrder
();
if
(
StringUtils
.
hasLength
(
userOrderId
))
{
commitOrder
=
distributionOrderDao
.
findById
(
userOrderId
);
}
EntityMapper
.
copyAttribute
(
commitOrder
,
commitOrderVo
);
//用户寄来平台的物流信息
List
<
ExchangeOrderSnapshot
>
commitExchangeOrderSnapshots
=
exchangeOrderSnapshotDao
.
findByOrderId
(
userOrderId
);
...
...
@@ -208,7 +213,10 @@ public class SysExchangeApplyOrderServiceImpl implements SysExchangeApplyOrderSe
//接收方的订单信息
List
<
ExchangeApplyOrderDetail
>
detailList
=
exchangeApplyOrderDetailDao
.
findByOrderId
(
exchangeApplyOrder
.
getExchangeApplyOrderId
());
SysExchangeOrderVo
receiveOrderVo
=
new
SysExchangeOrderVo
();
DistributionOrder
receiveOrder
=
distributionOrderDao
.
findById
(
targetUserOrderId
);
DistributionOrder
receiveOrder
=
new
DistributionOrder
();
if
(
StringUtils
.
hasLength
(
targetUserOrderId
))
{
receiveOrder
=
distributionOrderDao
.
findById
(
targetUserOrderId
);
}
EntityMapper
.
copyAttribute
(
receiveOrder
,
receiveOrderVo
);
//用户寄来平台的物流信息
List
<
ExchangeOrderSnapshot
>
receiveExchangeOrderSnapshots
=
exchangeOrderSnapshotDao
.
findByOrderId
(
targetUserOrderId
);
...
...
ch-core/src/main/java/com/wwdz/ch/core/consts/DistributionEnum.java
View file @
ef7f85a9
...
...
@@ -9,7 +9,7 @@ public class DistributionEnum {
PRE_PAY
(
1
,
"待付款"
),
PRE_SALE
(
5
,
"众筹中"
),
PRE_EXCHANGE
(
6
,
"待寄至平台"
),
PRE_INSPECTION
(
8
,
"待平台
验货
"
),
PRE_INSPECTION
(
8
,
"待平台
检查
"
),
PRE_SEND
(
10
,
"待发货"
),
PRE_SIGNED
(
20
,
"待收货"
),
AFTER_SALE
(
30
,
"售后中"
),
...
...
ch-core/src/main/java/com/wwdz/ch/core/consts/ExchangeApplyOrderEnum.java
View file @
ef7f85a9
...
...
@@ -6,9 +6,10 @@ public class ExchangeApplyOrderEnum {
PRE_HANDLE
(
0
,
"待处理"
),
AGREE
(
1
,
"同意"
),
DISAGREE
(
2
,
"拒绝"
),
SYSTEM_AGREE
(
3
,
"平台鉴定后通过"
),
SYSTEM_DISAGREE
(
4
,
"平台鉴定后拒绝"
),
CANCEL
(-
1
,
"取消"
),
SYSTEM_AGREE
(
3
,
"平台检查后通过"
),
SYSTEM_DISAGREE
(
4
,
"平台检查后拒绝"
),
CANCEL
(-
1
,
"交换关闭"
),
FINISH
(
10
,
"交换完成"
),
;
private
int
code
;
...
...
ch-dao/src/main/java/com/wwdz/ch/db/dao/exchange/ExchangeApplyOrderDao.java
View file @
ef7f85a9
...
...
@@ -20,6 +20,8 @@ public interface ExchangeApplyOrderDao {
ExchangeApplyOrder
findByOrderId
(
String
orderId
);
ExchangeApplyOrder
findByExchangeOrderId
(
String
exchangeOrderId
);
/**
* 更新记录
*
...
...
@@ -47,4 +49,7 @@ public interface ExchangeApplyOrderDao {
* @return
*/
long
countPreHandleOrderOfReceive
(
long
targetUserId
);
}
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/SupplierItemDaoImpl.java
View file @
ef7f85a9
...
...
@@ -233,6 +233,7 @@ public class SupplierItemDaoImpl implements SupplierItemDao {
SupplierItemExample
supplierItemExample
=
new
SupplierItemExample
();
SupplierItemExample
.
Criteria
criteria
=
supplierItemExample
.
createCriteria
();
criteria
.
andCreatorIdEqualTo
(
creatorId
);
criteria
.
andStockGreaterThan
(
0
);
criteria
.
andIsDeletedEqualTo
(
false
);
JdbcHelper
.
ifPresent
(
queryTime
,
criteria:
:
andCreateTimeGreaterThanOrEqualTo
);
return
supplierItemMapper
.
countByExample
(
supplierItemExample
);
...
...
ch-dao/src/main/java/com/wwdz/ch/db/impl/exchange/ExchangeApplyOrderDaoImpl.java
View file @
ef7f85a9
...
...
@@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
import
com.wwdz.ch.db.dao.exchange.ExchangeApplyOrderDao
;
import
com.wwdz.ch.db.domain.distribution.ExchangeApplyOrder
;
import
com.wwdz.ch.db.domain.distribution.ExchangeApplyOrderExample
;
import
com.wwdz.ch.db.domain.distribution.SupplierItemExample
;
import
com.wwdz.ch.db.dto.request.exchange.ExchangeApplyOrderRequestDto
;
import
com.wwdz.ch.db.mapper.distribution.ExchangeApplyOrderMapper
;
import
com.xxdxxs.db.component.JdbcHelper
;
...
...
@@ -47,6 +48,16 @@ public class ExchangeApplyOrderDaoImpl implements ExchangeApplyOrderDao {
return
exchangeApplyOrderMapper
.
selectOneByExample
(
example
);
}
@Override
public
ExchangeApplyOrder
findByExchangeOrderId
(
String
exchangeOrderId
)
{
ExchangeApplyOrderExample
example
=
new
ExchangeApplyOrderExample
();
ExchangeApplyOrderExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andUserOrderIdEqualTo
(
exchangeOrderId
);
ExchangeApplyOrderExample
.
Criteria
orCriteria
=
example
.
or
();
orCriteria
.
andTargetUserOrderIdEqualTo
(
exchangeOrderId
);
return
exchangeApplyOrderMapper
.
selectOneByExample
(
example
);
}
@Override
public
long
countPreHandleOrderOfCommit
(
long
userId
)
{
ExchangeApplyOrderExample
example
=
new
ExchangeApplyOrderExample
();
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/ExchangeOrderDetailVo.java
0 → 100644
View file @
ef7f85a9
package
com.wwdz.ch.wx.entity.vo.distribution
;
import
com.wwdz.ch.core.entity.SupplierItemVo
;
import
com.wwdz.ch.wx.entity.GroupPurchaseInfo
;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
@Data
public
class
ExchangeOrderDetailVo
implements
Entity
{
/**
* 申请交换单
*/
private
String
exchangeApplyOrderId
;
/**
* 交换单申请时间
*/
private
Date
exchangeApplyOrderCreateTime
;
/**
* 交换单类型
* 我收到的,我提交的
*/
private
Integer
exchangeApplyOrderType
;
private
String
exchangeApplyOrderTypeName
;
/**
* 订单号
*/
private
String
distributionOrderId
;
/**
* 用于交换的用户商品信息
*/
private
UserExchangeInfo
userExchangeInfo
;
/**
* 想要换的目标商品id
*/
private
List
<
SupplierItemVo
>
targetItemList
;
/**
* 买方id
*/
private
Long
buyerId
;
/**
* 买家名称
*/
private
String
buyerName
;
/**
* 店铺id
*/
private
Long
shopId
;
/**
* 店铺名称
*/
private
String
shopName
;
/**
* 卖方id
*/
private
Long
sellerId
;
/**
* 卖家名称
*/
private
String
sellerName
;
/**
* 买家收货地址id
*/
private
Long
addressId
;
/**
* 收件人名称
*/
private
String
receiverName
;
/**
* 收件人电话
*/
private
String
receiverPhone
;
/**
* 收件人收货地址
*/
private
String
receiverAddress
;
/**
* 快递公司编码
*/
private
String
logisticsCode
;
private
String
logisticsName
;
/**
* 运单号
*/
private
String
waybill
;
/**
* 创建时间(下单时间)
*/
private
Date
createTime
;
/**
* 支付时间
*/
private
Date
payTime
;
/**
* 发货时间
*/
private
Date
deliveryTime
;
/**
* 完成时间
*/
private
Date
finishTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 分销订单状态
*/
private
Integer
state
;
/**
* 订单状态
*/
private
String
stateName
;
/**
* 支付截止时间
*/
private
Date
expireTime
;
/**
* 商品类型1一口价2竞拍3藏品
*/
private
Integer
type
;
private
String
typeName
;
/**
* 寄到平台的快递公司编码
*/
private
String
fromLogisticsCode
;
private
String
fromLogisticsName
;
/**
* 寄来的物流单号
*/
private
String
fromWaybill
;
/**
* 平台收货地址
*/
private
String
channelReceiveAddress
;
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/ExchangeOrderVo.java
0 → 100644
View file @
ef7f85a9
package
com.wwdz.ch.wx.entity.vo.distribution
;
import
com.wwdz.ch.core.entity.SupplierItemVo
;
import
com.wwdz.ch.wx.entity.GroupPurchaseInfo
;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
@Data
public
class
ExchangeOrderVo
implements
Entity
{
/**
* 申请交换单
*/
private
String
exchangeApplyOrderId
;
/**
* 交换单申请时间
*/
private
Date
exchangeApplyOrderCreateTime
;
/**
* 交换单类型
* 我收到的,我提交的
*/
private
Integer
exchangeApplyOrderType
;
private
String
exchangeApplyOrderTypeName
;
/**
* 换藏订单号
*/
private
String
distributionOrderId
;
/**
* 用于交换的用户商品信息
*/
private
List
<
SupplierItemVo
>
userItemList
;
/**
* 想要换的目标商品id
*/
private
List
<
SupplierItemVo
>
targetItemList
;
/**
* 买家收货地址id
*/
private
Long
addressId
;
/**
* 买家收货地址
*/
private
String
address
;
/**
* 快递公司编码
*/
private
String
logisticsCode
;
/**
* 运单号
*/
private
String
waybill
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 发货时间
*/
private
Date
deliveryTime
;
/**
* 完成时间
*/
private
Date
finishTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 订单状态
*/
private
Integer
state
;
/**
* 订单状态
*/
private
String
stateName
;
/**
* 物流状态
*/
private
Integer
logisticsState
;
private
Integer
logisticsStateName
;
/**
* 截止时间
*/
private
Date
expireTime
;
/**
* 商品类型
*/
private
Integer
type
;
private
String
typeName
;
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/ExchangeApplyOrderServiceImpl.java
View file @
ef7f85a9
...
...
@@ -64,7 +64,6 @@ public class ExchangeApplyOrderServiceImpl implements ExchangeApplyOrderService
@Override
public
Result
applyExchange
(
ExchangeApplyOrderRequestDto
dto
)
{
try
{
SupplierItemRequestDto
supplierItemRequestDto
=
new
SupplierItemRequestDto
();
supplierItemRequestDto
.
setCreatorId
(
dto
.
getUserId
());
List
<
ExchangeOrderSnapshot
>
exchangeOrderSnapshotList
=
exchangeOrderSnapshotDao
.
findByUserId
(
dto
.
getUserId
());
...
...
@@ -106,7 +105,9 @@ public class ExchangeApplyOrderServiceImpl implements ExchangeApplyOrderService
exchangeApplyOrderDetail
.
setUpdateTime
(
now
);
exchangeApplyOrderDetailDao
.
insert
(
exchangeApplyOrderDetail
);
}
return
Result
.
success
();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"exchangeApplyOrderId"
,
exchangeApplyOrderId
);
return
Result
.
success
(
map
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"用户申请以物换物 error:{}"
,
e
);
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/ExchangeOrderServiceImpl.java
0 → 100644
View file @
ef7f85a9
package
com.wwdz.ch.wx.impl.distribution
;
import
com.github.pagehelper.PageInfo
;
import
com.wwdz.ch.core.consts.DistributionEnum
;
import
com.wwdz.ch.core.consts.ExchangeApplyOrderEnum
;
import
com.wwdz.ch.core.consts.LogisticsEnum
;
import
com.wwdz.ch.core.entity.SupplierItemVo
;
import
com.wwdz.ch.core.type.PageSearchResult
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.util.MediaUtil
;
import
com.wwdz.ch.core.util.PriceUtil
;
import
com.wwdz.ch.core.util.RegexUtil
;
import
com.wwdz.ch.db.dao.distribution.DistributionOrderDao
;
import
com.wwdz.ch.db.dao.distribution.DistributionOrderDetailDao
;
import
com.wwdz.ch.db.dao.distribution.ExchangeOrderSnapshotDao
;
import
com.wwdz.ch.db.dao.distribution.SupplierItemDao
;
import
com.wwdz.ch.db.dao.exchange.ExchangeApplyOrderDao
;
import
com.wwdz.ch.db.dao.exchange.ExchangeApplyOrderDetailDao
;
import
com.wwdz.ch.db.domain.distribution.*
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto
;
import
com.wwdz.ch.wx.entity.GroupPurchaseInfo
;
import
com.wwdz.ch.wx.entity.vo.distribution.DistributionOrderVo
;
import
com.wwdz.ch.wx.entity.vo.distribution.ExchangeOrderDetailVo
;
import
com.wwdz.ch.wx.entity.vo.distribution.ExchangeOrderVo
;
import
com.wwdz.ch.wx.entity.vo.distribution.UserExchangeInfo
;
import
com.wwdz.ch.wx.service.distribution.ExchangeOrderService
;
import
com.xxdxxs.utils.EntityMapper
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.StringUtils
;
import
java.time.Duration
;
import
java.time.Instant
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
@Service
public
class
ExchangeOrderServiceImpl
implements
ExchangeOrderService
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
DistributionOrderServiceImpl
.
class
);
@Autowired
DistributionOrderDao
distributionOrderDao
;
@Autowired
DistributionOrderDetailDao
distributionOrderDetailDao
;
@Autowired
SupplierItemDao
supplierItemDao
;
@Autowired
ExchangeOrderSnapshotDao
exchangeOrderSnapshotDao
;
@Autowired
ExchangeApplyOrderDetailDao
exchangeApplyOrderDetailDao
;
@Autowired
ExchangeApplyOrderDao
exchangeApplyOrderDao
;
@Override
public
Result
findOrder
(
DistributionOrderRequestDto
dto
)
{
try
{
//检查是否有超时未支付订单
dto
.
setBuyerId
(
dto
.
getUserId
());
checkPrePayTimeOut
(
dto
.
getUserId
(),
null
);
if
(
StringUtils
.
hasLength
(
dto
.
getSearchParam
()))
{
//判断查询条件是否为中文,是的话就根据商品名称模糊查询
if
(
RegexUtil
.
isContainChinese
(
dto
.
getSearchParam
()))
{
SupplierItemRequestDto
supplierItemRequestDto
=
new
SupplierItemRequestDto
();
supplierItemRequestDto
.
setName
(
dto
.
getSearchParam
());
List
<
SupplierItem
>
supplierItemList
=
supplierItemDao
.
findList
(
supplierItemRequestDto
);
List
<
Long
>
itemIds
=
supplierItemList
.
stream
().
map
(
SupplierItem:
:
getId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
itemIds
))
{
dto
.
setItemIdList
(
itemIds
);
}
else
{
//没有对应名称的商品则直接返回空数据
return
Result
.
success
();
}
}
else
{
dto
.
setDistributionOrderId
(
dto
.
getSearchParam
());
}
}
//查询用户换藏订单
dto
.
setType
(
DistributionEnum
.
DistributionTypeEnum
.
EXCHANGE
.
getCode
());
List
<
DistributionOrder
>
distributionOrderList
=
distributionOrderDao
.
findByPage
(
dto
);
PageInfo
pageInfo
=
new
PageInfo
<>(
distributionOrderList
);
List
<
ExchangeOrderVo
>
exchangeOrderVoList
=
new
ArrayList
<>();
for
(
DistributionOrder
distributionOrder
:
distributionOrderList
)
{
//用户交换得到的商品信息
List
<
SupplierItemVo
>
targetItemList
=
new
ArrayList
<>();
//用户交换出去的商品信息
List
<
SupplierItemVo
>
userItemList
=
new
ArrayList
<>();
ExchangeOrderVo
exchangeOrderVo
=
new
ExchangeOrderVo
();
EntityMapper
.
copyAttribute
(
distributionOrder
,
exchangeOrderVo
);
//查询订单中交换得到的商品
List
<
DistributionOrderDetail
>
distributionOrderDetailList
=
distributionOrderDetailDao
.
findByOrderId
(
distributionOrder
.
getDistributionOrderId
());
for
(
DistributionOrderDetail
distributionOrderDetail
:
distributionOrderDetailList
)
{
long
targetItemId
=
distributionOrderDetail
.
getItemId
();
SupplierItem
targetItem
=
supplierItemDao
.
findById
(
targetItemId
);
SupplierItemVo
targetItemVo
=
new
SupplierItemVo
();
EntityMapper
.
copyAttribute
(
targetItem
,
targetItemVo
);
targetItemVo
.
setItemId
(
targetItemId
);
targetItemVo
.
setName
(
targetItem
.
getName
());
targetItemVo
.
setItemNum
(
distributionOrderDetail
.
getItemNum
());
targetItemVo
.
setDistributionPrice
(
PriceUtil
.
convertPriceFenToYuan
(
targetItem
.
getDistributionPrice
()));
targetItemVo
.
setOfficialEstimatedPrice
(
PriceUtil
.
convertPriceFenToYuan
(
targetItem
.
getOfficialEstimatedPrice
()));
targetItemVo
.
setHomePageImage
(
MediaUtil
.
getHomePageImage
(
targetItem
.
getImages
(),
targetItem
.
getVideos
()));
targetItemList
.
add
(
targetItemVo
);
}
exchangeOrderVo
.
setTargetItemList
(
targetItemList
);
//查询订单中交换出去的自己的商品
List
<
ExchangeOrderSnapshot
>
exchangeOrderSnapshotList
=
exchangeOrderSnapshotDao
.
findByOrderId
(
distributionOrder
.
getDistributionOrderId
());
for
(
ExchangeOrderSnapshot
exchangeOrderSnapshot
:
exchangeOrderSnapshotList
)
{
long
userItemId
=
exchangeOrderSnapshot
.
getItemId
();
SupplierItem
supplierItem
=
supplierItemDao
.
findById
(
userItemId
);
SupplierItemVo
supplierItemVo
=
new
SupplierItemVo
();
supplierItemVo
.
setItemId
(
exchangeOrderSnapshot
.
getItemId
());
supplierItemVo
.
setName
(
supplierItem
.
getName
());
supplierItemVo
.
setItemNum
(
exchangeOrderSnapshot
.
getItemNum
());
supplierItemVo
.
setDistributionPrice
(
PriceUtil
.
convertPriceFenToYuan
(
supplierItem
.
getDistributionPrice
()));
supplierItemVo
.
setOfficialEstimatedPrice
(
PriceUtil
.
convertPriceFenToYuan
(
supplierItem
.
getOfficialEstimatedPrice
()));
supplierItemVo
.
setHomePageImage
(
MediaUtil
.
getHomePageImage
(
supplierItem
.
getImages
(),
supplierItem
.
getVideos
()));
userItemList
.
add
(
supplierItemVo
);
}
exchangeOrderVo
.
setUserItemList
(
userItemList
);
//查询订单的交换单号
ExchangeApplyOrder
exchangeApplyOrder
=
exchangeApplyOrderDao
.
findByExchangeOrderId
(
distributionOrder
.
getDistributionOrderId
());
//和平台交换的商品,没有申请单
if
(
exchangeApplyOrder
!=
null
)
{
exchangeOrderVo
.
setExchangeApplyOrderId
(
exchangeApplyOrder
.
getExchangeApplyOrderId
());
exchangeOrderVo
.
setExchangeApplyOrderCreateTime
(
exchangeApplyOrder
.
getCreateTime
());
//判断是当前用户提交的交换申请单,还是收到的申请单
if
(
distributionOrder
.
getDistributionOrderId
().
equals
(
exchangeApplyOrder
.
getUserOrderId
()))
{
exchangeOrderVo
.
setExchangeApplyOrderType
(
ExchangeApplyOrderEnum
.
TypeEnum
.
COMMIT
.
getCode
());
exchangeOrderVo
.
setExchangeApplyOrderTypeName
(
ExchangeApplyOrderEnum
.
TypeEnum
.
COMMIT
.
getDes
());
}
else
{
exchangeOrderVo
.
setExchangeApplyOrderType
(
ExchangeApplyOrderEnum
.
TypeEnum
.
RECEIVE
.
getCode
());
exchangeOrderVo
.
setExchangeApplyOrderTypeName
(
ExchangeApplyOrderEnum
.
TypeEnum
.
RECEIVE
.
getDes
());
}
}
Date
date
=
distributionOrder
.
getCreateTime
();
Instant
instant
=
date
.
toInstant
().
plus
(
Duration
.
ofMinutes
(
48
));
Date
time
=
Date
.
from
(
instant
);
exchangeOrderVo
.
setExpireTime
(
time
);
exchangeOrderVoList
.
add
(
exchangeOrderVo
);
}
return
Result
.
success
(
PageSearchResult
.
of
(
pageInfo
,
exchangeOrderVoList
));
}
catch
(
Exception
e
)
{
logger
.
error
(
"查询用户换藏订单列表失败 error : {}"
,
e
);
}
return
Result
.
failed
();
}
@Override
public
Result
findOrderDetail
(
DistributionOrderRequestDto
dto
)
{
try
{
//检查是否有超时未支付订单
checkPrePayTimeOut
(
dto
.
getUserId
(),
null
);
dto
.
setBuyerId
(
dto
.
getUserId
());
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
dto
.
getDistributionOrderId
());
//用户交换得到的商品信息
List
<
SupplierItemVo
>
targetItemList
=
new
ArrayList
<>();
//用户交换出去的商品信息
List
<
SupplierItemVo
>
userItemList
=
new
ArrayList
<>();
ExchangeOrderDetailVo
exchangeOrderDetailVo
=
new
ExchangeOrderDetailVo
();
//查询订单中交换得到的商品
List
<
DistributionOrderDetail
>
distributionOrderDetailList
=
distributionOrderDetailDao
.
findByOrderId
(
distributionOrder
.
getDistributionOrderId
());
for
(
DistributionOrderDetail
distributionOrderDetail
:
distributionOrderDetailList
)
{
long
targetItemId
=
distributionOrderDetail
.
getItemId
();
SupplierItem
targetItem
=
supplierItemDao
.
findById
(
targetItemId
);
SupplierItemVo
targetItemVo
=
new
SupplierItemVo
();
EntityMapper
.
copyAttribute
(
targetItem
,
targetItemVo
);
targetItemVo
.
setItemId
(
targetItemId
);
targetItemVo
.
setName
(
targetItem
.
getName
());
targetItemVo
.
setItemNum
(
distributionOrderDetail
.
getItemNum
());
targetItemVo
.
setDistributionPrice
(
PriceUtil
.
convertPriceFenToYuan
(
targetItem
.
getDistributionPrice
()));
targetItemVo
.
setOfficialEstimatedPrice
(
PriceUtil
.
convertPriceFenToYuan
(
targetItem
.
getOfficialEstimatedPrice
()));
targetItemVo
.
setHomePageImage
(
MediaUtil
.
getHomePageImage
(
targetItem
.
getImages
(),
targetItem
.
getVideos
()));
targetItemList
.
add
(
targetItemVo
);
}
exchangeOrderDetailVo
.
setTargetItemList
(
targetItemList
);
//查询订单中交换出去的自己的商品
List
<
ExchangeOrderSnapshot
>
exchangeOrderSnapshotList
=
exchangeOrderSnapshotDao
.
findByOrderId
(
distributionOrder
.
getDistributionOrderId
());
UserExchangeInfo
userExchangeInfo
=
new
UserExchangeInfo
();
if
(!
CollectionUtils
.
isEmpty
(
exchangeOrderSnapshotList
))
{
userExchangeInfo
.
setFromWaybill
(
exchangeOrderSnapshotList
.
get
(
0
).
getWaybill
());
userExchangeInfo
.
setFromLogisticsCode
(
exchangeOrderSnapshotList
.
get
(
0
).
getLogisticsCode
());
userExchangeInfo
.
setFromLogisticsName
(
LogisticsEnum
.
getNameByCode
(
exchangeOrderSnapshotList
.
get
(
0
).
getLogisticsCode
()));
String
content
=
""
;
if
(
StringUtils
.
hasLength
(
exchangeOrderSnapshotList
.
get
(
0
).
getWaybill
()))
{
content
=
"商品已寄出,快递信息:"
+
LogisticsEnum
.
getNameByCode
(
exchangeOrderSnapshotList
.
get
(
0
).
getLogisticsCode
())
+
","
+
exchangeOrderSnapshotList
.
get
(
0
).
getWaybill
();
}
userExchangeInfo
.
setContent
(
content
);
}
List
<
SupplierItemVo
>
supplierItemVos
=
new
ArrayList
<>();
for
(
ExchangeOrderSnapshot
exchangeOrderSnapshot
:
exchangeOrderSnapshotList
)
{
SupplierItemVo
supplierItemVo
=
new
SupplierItemVo
();
supplierItemVo
.
setItemId
(
exchangeOrderSnapshot
.
getItemId
());
supplierItemVo
.
setName
(
exchangeOrderSnapshot
.
getItemName
());
supplierItemVo
.
setItemNum
(
exchangeOrderSnapshot
.
getItemNum
());
supplierItemVo
.
setDistributionPrice
(
PriceUtil
.
convertPriceFenToYuan
(
exchangeOrderSnapshot
.
getDistributionPrice
()));
supplierItemVo
.
setOfficialEstimatedPrice
(
PriceUtil
.
convertPriceFenToYuan
(
exchangeOrderSnapshot
.
getOfficialEstimatedPrice
()));
supplierItemVo
.
setHomePageImage
(
MediaUtil
.
getHomePageImage
(
exchangeOrderSnapshot
.
getImages
(),
exchangeOrderSnapshot
.
getVideos
()));
supplierItemVos
.
add
(
supplierItemVo
);
}
userExchangeInfo
.
setList
(
supplierItemVos
);
exchangeOrderDetailVo
.
setUserExchangeInfo
(
userExchangeInfo
);
//查询订单的交换单号
ExchangeApplyOrder
exchangeApplyOrder
=
exchangeApplyOrderDao
.
findByExchangeOrderId
(
distributionOrder
.
getDistributionOrderId
());
//和平台交换的商品,没有申请单
if
(
exchangeApplyOrder
!=
null
)
{
exchangeOrderDetailVo
.
setExchangeApplyOrderId
(
exchangeApplyOrder
.
getExchangeApplyOrderId
());
exchangeOrderDetailVo
.
setExchangeApplyOrderCreateTime
(
exchangeApplyOrder
.
getCreateTime
());
//判断是当前用户提交的交换申请单,还是收到的申请单
if
(
distributionOrder
.
getDistributionOrderId
().
equals
(
exchangeApplyOrder
.
getUserOrderId
()))
{
exchangeOrderDetailVo
.
setExchangeApplyOrderType
(
ExchangeApplyOrderEnum
.
TypeEnum
.
COMMIT
.
getCode
());
exchangeOrderDetailVo
.
setExchangeApplyOrderTypeName
(
ExchangeApplyOrderEnum
.
TypeEnum
.
COMMIT
.
getDes
());
}
else
{
exchangeOrderDetailVo
.
setExchangeApplyOrderType
(
ExchangeApplyOrderEnum
.
TypeEnum
.
RECEIVE
.
getCode
());
exchangeOrderDetailVo
.
setExchangeApplyOrderTypeName
(
ExchangeApplyOrderEnum
.
TypeEnum
.
RECEIVE
.
getDes
());
}
}
Date
date
=
distributionOrder
.
getCreateTime
();
Instant
instant
=
date
.
toInstant
().
plus
(
Duration
.
ofMinutes
(
48
));
Date
time
=
Date
.
from
(
instant
);
exchangeOrderDetailVo
.
setExpireTime
(
time
);
return
Result
.
success
(
exchangeOrderDetailVo
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"查询用户换藏订单详情失败 error : {}"
,
e
);
}
return
Result
.
failed
();
}
/**
* 检查用户订单是否有超时未寄出
* @param userId
* @param distributorId
*/
private
void
checkPrePayTimeOut
(
Long
userId
,
Long
distributorId
){
/* DistributionOrderRequestDto dto = new DistributionOrderRequestDto();
dto.setBuyerId(userId);
dto.setSellerId(distributorId);
dto.setType(DistributionEnum.DistributionTypeEnum.EXCHANGE.getCode());
dto.setState(DistributionEnum.DistributionOrderStateEnum.PRE_EXCHANGE.getCode());
List<DistributionOrder> prePayList = distributionOrderDao.findByPage(dto);
prePayList.forEach(distributionOrder -> {
long diffInMillies = Math.abs(new Date().getTime() - distributionOrder.getCreateTime().getTime());
//超出48小时未寄出,订单取消
long diffInHours = diffInMillies / (60 * 1000 * 60);
if (diffInHours >= 48) {
distributionOrderDao.updateState(distributionOrder.getDistributionOrderId(), DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
//换藏的品取消订单后恢复库存
if (!distributionOrder.getIsMultiple()) {
exchangeApplyOrderDetailDao.updateInValid(orderId);
distributionOrderDao.updateState(targetUserOrderId, DistributionEnum.DistributionOrderStateEnum.CANCEL.getCode());
SupplierItem supplierItem = supplierItemDao.findById(distributionOrder.getItemId());
supplierItemDao.updateStock(distributionOrder.getItemId(), supplierItem.getStock() + distributionOrder.getItemNum());
//订单快照设置为无效
ExchangeOrderSnapshot exchangeOrderSnapshot = new ExchangeOrderSnapshot();
exchangeOrderSnapshot.setDistributionOrderId(distributionOrder.getDistributionOrderId());
exchangeOrderSnapshot.setIsValid(false);
exchangeOrderSnapshotDao.update(exchangeOrderSnapshot);
}
}
}
});*/
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/ExchangeOrderService.java
0 → 100644
View file @
ef7f85a9
package
com.wwdz.ch.wx.service.distribution
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
public
interface
ExchangeOrderService
{
/**
* 查询换藏订单列表
* @param dto
* @return
*/
Result
findOrder
(
DistributionOrderRequestDto
dto
);
/**
* 查询换藏订单详情
* @param dto
* @return
*/
Result
findOrderDetail
(
DistributionOrderRequestDto
dto
);
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/ExchangeOrderController.java
0 → 100644
View file @
ef7f85a9
package
com.wwdz.ch.wx.web.distribution
;
import
com.alibaba.fastjson.JSON
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
import
com.wwdz.ch.wx.entity.request.ExchangeRequestDto
;
import
com.wwdz.ch.wx.service.distribution.ExchangeOrderService
;
import
com.xxdxxs.service.FormHandler
;
import
com.xxdxxs.validation.Validator
;
import
io.swagger.annotations.ApiOperation
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
@RestController
@RequestMapping
(
"/wx/exchangeOrder"
)
public
class
ExchangeOrderController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ExchangeOrderController
.
class
);
@Autowired
ExchangeOrderService
exchangeOrderService
;
@ApiOperation
(
value
=
"查询用户换藏订单列表"
)
@PostMapping
(
"/findList"
)
public
Result
findList
(
@RequestBody
DistributionOrderRequestDto
dto
)
{
logger
.
info
(
"查询用户换藏订单列表,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
Validator
validator
=
new
Validator
(
FormHandler
.
ofEntity
(
dto
));
validator
.
set
(
"userId"
,
"用户id"
).
must
().
number
()
.
end
();
if
(!
validator
.
isValid
())
{
return
Result
.
failed
(
validator
.
getErrorInfo
());
}
return
exchangeOrderService
.
findOrder
(
dto
);
}
@ApiOperation
(
value
=
"查询换藏订单详情"
)
@PostMapping
(
"/findOrderDetail"
)
public
Result
findOrderDetail
(
@RequestBody
DistributionOrderRequestDto
dto
)
{
logger
.
info
(
"查询换藏订单详情,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
Validator
validator
=
new
Validator
(
FormHandler
.
ofEntity
(
dto
));
validator
.
set
(
"distributionOrderId"
,
"订单号"
).
must
().
string
()
.
set
(
"userId"
,
"用户id"
).
must
().
number
()
.
end
();
if
(!
validator
.
isValid
())
{
return
Result
.
failed
(
validator
.
getErrorInfo
());
}
return
exchangeOrderService
.
findOrderDetail
(
dto
);
}
}
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