Toggle navigation
Toggle navigation
This project
Loading...
Sign in
ufo
/
yohoufo-fore
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
mali
6 years ago
Commit
13fa1b1058b375d12b786789107493ef720af23d
2 parents
871f2422
826ffd5d
Merge branch 'test6.9.12' of
http://git.yoho.cn/ufo/yohoufo-fore
into test6.9.12
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
79 additions
and
32 deletions
dal/src/main/java/com/yohoufo/dal/order/StorageDepositMapper.java
dal/src/main/java/com/yohoufo/dal/order/model/StorageDeposit.java
dal/src/main/resources/META-INF/mybatis/order/StorageDepositMapper.xml
order/src/main/java/com/yohoufo/order/controller/DepositController.java
order/src/main/java/com/yohoufo/order/service/DepositService.java
order/src/main/java/com/yohoufo/order/service/concurrent/ThreadPoolFactory.java
order/src/main/java/com/yohoufo/order/service/impl/AbsGoodsServiceOrderService.java
order/src/main/java/com/yohoufo/order/service/impl/AppraiseService.java
order/src/main/java/com/yohoufo/order/service/impl/BuyerOrderCancelService.java
order/src/main/java/com/yohoufo/order/service/impl/DepositServiceImpl.java
dal/src/main/java/com/yohoufo/dal/order/StorageDepositMapper.java
View file @
13fa1b1
...
...
@@ -103,4 +103,6 @@ public interface StorageDepositMapper {
int
updateValidStatus
(
@Param
(
"id"
)
Integer
id
);
int
updateSellLock
(
@Param
(
"id"
)
Integer
id
,
@Param
(
"sellLock"
)
Integer
sellLock
,
@Param
(
"preSellLock"
)
Integer
preSellLock
);
}
\ No newline at end of file
...
...
dal/src/main/java/com/yohoufo/dal/order/model/StorageDeposit.java
View file @
13fa1b1
...
...
@@ -49,6 +49,8 @@ public class StorageDeposit {
private
Integer
depositType
;
private
Long
parentOrderCode
;
private
Integer
sellLock
;
public
Long
getParentOrderCode
()
{
return
parentOrderCode
;
...
...
@@ -233,4 +235,13 @@ public class StorageDeposit {
public
void
setNewSkup
(
Integer
newSkup
)
{
this
.
newSkup
=
newSkup
;
}
public
Integer
getSellLock
()
{
return
sellLock
;
}
public
void
setSellLock
(
Integer
sellLock
)
{
this
.
sellLock
=
sellLock
;
}
}
\ No newline at end of file
...
...
dal/src/main/resources/META-INF/mybatis/order/StorageDepositMapper.xml
View file @
13fa1b1
...
...
@@ -25,6 +25,7 @@
<result
column=
"deposit_type"
property=
"depositType"
jdbcType=
"INTEGER"
/>
<result
column=
"source"
property=
"source"
jdbcType=
"INTEGER"
/>
<result
column=
"parent_order_code"
property=
"parentOrderCode"
jdbcType=
"BIGINT"
/>
<result
column=
"sell_lock"
property=
"sellLock"
jdbcType=
"INTEGER"
/>
</resultMap>
<resultMap
id=
"CountResultMap"
type=
"com.yohoufo.dal.order.model.StorageDepositCount"
>
...
...
@@ -38,7 +39,7 @@
<sql
id=
"Base_Column_List"
>
id, product_id, goods_id, storage_id, deposit_code, shelf_code, owner_uid, order_code,
skup, status, order_status, update_time, create_time, deposit_start_time, deposit_end_time,
edit_pid, del_status, out_type, new_order_code, new_skup, parent_order_code, source, deposit_type, parent_order_code
edit_pid, del_status, out_type, new_order_code, new_skup, parent_order_code, source, deposit_type, parent_order_code
, sell_lock
</sql>
<select
id=
"selectByPrimaryKey"
resultMap=
"BaseResultMap"
parameterType=
"java.lang.Integer"
>
select
...
...
@@ -278,4 +279,12 @@
where id=#{id} and del_status=1
</update>
<update
id=
"updateSellLock"
>
update storage_deposit
set sell_lock = #{sellLock,jdbcType=INTEGER} ,update_time = unix_timestamp(now())
where id = #{id,jdbcType=INTEGER}
AND sell_lock = #{preSellLock,jdbcType=INTEGER}
AND del_status = 0
</update>
</mapper>
\ No newline at end of file
...
...
order/src/main/java/com/yohoufo/order/controller/DepositController.java
View file @
13fa1b1
...
...
@@ -249,7 +249,7 @@ public class DepositController {
@RequestMapping
(
params
=
"method=ufo.deposit.list"
)
@Cachable
(
expire
=
30
,
pageArgs
=
{
2
,
3
})
public
ApiResponse
save
(
@RequestParam
(
"uid"
)
Integer
uid
,
@RequestParam
(
"storageId"
)
Integer
storageId
,
public
ApiResponse
queryListByUidAndStorageId
(
@RequestParam
(
"uid"
)
Integer
uid
,
@RequestParam
(
"storageId"
)
Integer
storageId
,
@RequestParam
(
value
=
"page"
,
required
=
false
,
defaultValue
=
"1"
)
Integer
page
,
@RequestParam
(
value
=
"limit"
,
required
=
false
,
defaultValue
=
"10"
)
Integer
limit
)
{
LOG
.
info
(
"ufo.deposit.list in. uid is {}"
,
uid
);
...
...
order/src/main/java/com/yohoufo/order/service/DepositService.java
View file @
13fa1b1
...
...
@@ -133,5 +133,14 @@ public interface DepositService {
* @return
*/
boolean
updateDepositAfterCancelBuy
(
Integer
uid
,
String
depositCode
);
/**
* 更新出售锁状态
* @param uid
* @param depositCode
* @param sellLock
* @return
*/
int
updateSellLock
(
Integer
uid
,
String
depositCode
,
Integer
sellLock
);
}
...
...
order/src/main/java/com/yohoufo/order/service/concurrent/ThreadPoolFactory.java
View file @
13fa1b1
...
...
@@ -10,14 +10,23 @@ import java.util.concurrent.*;
public
class
ThreadPoolFactory
{
static
class
GoodKids
{
private
static
ForkJoinPool
forkJoinPool
;
private
static
ThreadPoolExecutor
threadpool
;
private
final
static
ForkJoinPool
forkJoinPool
;
private
final
static
ThreadPoolExecutor
threadpool
;
private
final
static
ExecutorService
executorService
;
private
final
static
ExecutorService
appraiseExecutorService
;
private
final
static
ExecutorService
depositRebateExecutorService
;
static
{
int
numberOfProcessorsAvailable
=
Runtime
.
getRuntime
().
availableProcessors
();
forkJoinPool
=
new
ForkJoinPool
(
6
);
threadpool
=
new
ThreadPoolExecutor
(
4
,
10
,
60
,
TimeUnit
.
SECONDS
,
threadpool
=
new
ThreadPoolExecutor
(
numberOfProcessorsAvailable
,
numberOfProcessorsAvailable
*
2
,
60
,
TimeUnit
.
SECONDS
,
new
ArrayBlockingQueue
<>(
100
),
NamedThreadFactory
.
newThreadFactory
(
"buyer-cancel-order"
));
executorService
=
Executors
.
newFixedThreadPool
(
Runtime
.
getRuntime
().
availableProcessors
()
*
2
);
executorService
=
Executors
.
newFixedThreadPool
(
numberOfProcessorsAvailable
*
2
);
//appraise
appraiseExecutorService
=
new
ThreadPoolExecutor
(
numberOfProcessorsAvailable
,
numberOfProcessorsAvailable
*
2
,
60
,
TimeUnit
.
SECONDS
,
new
ArrayBlockingQueue
<>(
1000
),
NamedThreadFactory
.
newThreadFactory
(
"appraise"
));
//
depositRebateExecutorService
=
new
ThreadPoolExecutor
(
numberOfProcessorsAvailable
,
numberOfProcessorsAvailable
*
2
,
60
,
TimeUnit
.
SECONDS
,
new
ArrayBlockingQueue
<>(
10
),
NamedThreadFactory
.
newThreadFactory
(
"depositRebate"
));
}
...
...
@@ -35,4 +44,13 @@ public class ThreadPoolFactory {
public
static
ExecutorService
getCommomExecutorService
(){
return
GoodKids
.
executorService
;
}
public
static
ExecutorService
getAppraiseExecutorService
(){
return
GoodKids
.
appraiseExecutorService
;
}
public
static
ExecutorService
getDepositRebateExecutorService
(){
return
GoodKids
.
depositRebateExecutorService
;
}
}
...
...
order/src/main/java/com/yohoufo/order/service/impl/AbsGoodsServiceOrderService.java
View file @
13fa1b1
...
...
@@ -17,21 +17,17 @@ import com.yohoufo.order.constants.AlarmConfig;
import
com.yohoufo.order.model.request.TranseferCellNode
;
import
com.yohoufo.order.model.request.TransferMoneyRequest
;
import
com.yohoufo.order.service.IGoodsService
;
import
com.yohoufo.order.service.
handler.transfer.TransferChancelSelector
;
import
com.yohoufo.order.service.
concurrent.ThreadPoolFactory
;
import
com.yohoufo.order.service.proxy.OrderStatusFlowService
;
import
com.yohoufo.order.service.support.codegenerator.OrderCodeGenerator
;
import
com.yohoufo.order.utils.LoggerUtils
;
import
com.yohoufo.order.utils.NamedThreadFactory
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.concurrent.ArrayBlockingQueue
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
public
abstract
class
AbsGoodsServiceOrderService
implements
IGoodsService
{
...
...
@@ -46,9 +42,6 @@ public abstract class AbsGoodsServiceOrderService implements IGoodsService {
OrderCodeGenerator
orderCodeGenerator
;
@Autowired
private
TransferChancelSelector
transferChancelSelector
;
@Autowired
TransferService
transferService
;
@Autowired
...
...
@@ -60,9 +53,7 @@ public abstract class AbsGoodsServiceOrderService implements IGoodsService {
@Autowired
UfoOrderPayConfigReader
ufoOrderPayConfigReader
;
private
ExecutorService
executorService
=
new
ThreadPoolExecutor
(
5
,
10
,
60
,
TimeUnit
.
SECONDS
,
new
ArrayBlockingQueue
<>(
1000
),
NamedThreadFactory
.
newThreadFactory
(
"appraise"
));
/**
* 申请寄存返利
...
...
@@ -90,7 +81,7 @@ public abstract class AbsGoodsServiceOrderService implements IGoodsService {
List
<
AppraiseOrder
>
depositCodeList
=
appraiseOrderList
.
stream
()
.
filter
(
appraiseOrder
->
appraiseOrder
.
getAttributes
()
==
OrderAttributes
.
DEPOSITE
.
getCode
())
.
collect
(
Collectors
.
toList
());
final
ExecutorService
executorService
=
ThreadPoolFactory
.
getDepositRebateExecutorService
();
executorService
.
execute
(()
->
{
// 只返4单
int
DEFAULT_REBATE_CNT
=
ufoOrderPayConfigReader
.
depositRebateCnt
();
...
...
order/src/main/java/com/yohoufo/order/service/impl/AppraiseService.java
View file @
13fa1b1
...
...
@@ -37,7 +37,7 @@ import com.yohoufo.order.model.response.AppraiseAddressResp;
import
com.yohoufo.order.mq.TopicConstants
;
import
com.yohoufo.order.service.*
;
import
com.yohoufo.order.service.cache.CacheCleaner
;
import
com.yohoufo.order.service.c
ache.CacheKeyBuilder
;
import
com.yohoufo.order.service.c
oncurrent.ThreadPoolFactory
;
import
com.yohoufo.order.service.handler.RefundEarnestMoneyHandler
;
import
com.yohoufo.order.service.handler.RefundGoodsMoneyHandler
;
import
com.yohoufo.order.service.handler.penalty.PenaltyResult
;
...
...
@@ -49,7 +49,6 @@ import com.yohoufo.order.service.proxy.*;
import
com.yohoufo.order.service.seller.orderMeta.SellerAddressService
;
import
com.yohoufo.order.service.seller.setting.SellerService
;
import
com.yohoufo.order.utils.BuyerOrderUtils
;
import
com.yohoufo.order.utils.NamedThreadFactory
;
import
com.yohoufo.order.utils.PaymentHelper
;
import
lombok.Data
;
import
org.apache.commons.collections.CollectionUtils
;
...
...
@@ -61,11 +60,11 @@ import org.springframework.stereotype.Service;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.concurrent.ArrayBlockingQueue
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
import
java.util.Set
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
import
java.util.function.Consumer
;
import
java.util.stream.Collectors
;
...
...
@@ -80,9 +79,7 @@ public class AppraiseService {
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
AppraiseService
.
class
);
private
ExecutorService
executorService
=
new
ThreadPoolExecutor
(
5
,
10
,
60
,
TimeUnit
.
SECONDS
,
new
ArrayBlockingQueue
<>(
1000
),
NamedThreadFactory
.
newThreadFactory
(
"appraise"
));
private
static
final
ExecutorService
executorService
=
ThreadPoolFactory
.
getAppraiseExecutorService
();
@Autowired
private
IExpressInfoService
expressInfoService
;
...
...
@@ -191,8 +188,6 @@ public class AppraiseService {
@Autowired
private
AppraiseOrderGoodsMapper
appraiseOrderGoodsMapper
;
@Autowired
private
BuyerOrderAssistant
buyerOrderAssistant
;
@Autowired
private
IBuyerOrderMetaService
buyerOrderMetaService
;
...
...
order/src/main/java/com/yohoufo/order/service/impl/BuyerOrderCancelService.java
View file @
13fa1b1
...
...
@@ -73,8 +73,6 @@ import static org.apache.zookeeper.ZooDefs.OpCode.delete;
@Service
public
class
BuyerOrderCancelService
{
private
ExecutorService
executorService
=
new
ThreadPoolExecutor
(
4
,
10
,
60
,
TimeUnit
.
SECONDS
,
new
ArrayBlockingQueue
<>(
1000
),
NamedThreadFactory
.
newThreadFactory
(
"buyer-order-cancel"
));
private
Logger
logger
=
LoggerUtils
.
getOrderCloseLogger
();
...
...
@@ -656,7 +654,7 @@ public class BuyerOrderCancelService {
private
void
asyncRefundGoodsAmount
()
{
final
ExecutorService
executorService
=
ThreadPoolFactory
.
getBuyerCancelThreadPool
();
executorService
.
execute
(()->{
BigDecimal
leftGoodsMoney
=
buyerOrder
.
getAmount
();
...
...
@@ -678,6 +676,7 @@ public class BuyerOrderCancelService {
}
private
void
saveFailRecord
(
int
uid
,
long
orderCode
,
String
failReason
){
final
ExecutorService
executorService
=
ThreadPoolFactory
.
getBuyerCancelThreadPool
();
executorService
.
execute
(()->
{
BuyerOrderMeta
record
=
new
BuyerOrderMeta
();
record
.
setOrderCode
(
orderCode
);
...
...
order/src/main/java/com/yohoufo/order/service/impl/DepositServiceImpl.java
View file @
13fa1b1
...
...
@@ -509,6 +509,8 @@ public class DepositServiceImpl implements DepositService {
if
(
storageId
!=
null
)
{
Method
queryUserStorageOffCount
=
DepositController
.
class
.
getMethod
(
"queryUserStorageOffCount"
,
new
Class
[]{
Integer
.
class
,
Integer
.
class
});
cacheAop
.
clearCache
(
queryUserStorageOffCount
,
new
Object
[]{
uid
,
storageId
});
Method
queryListByUidAndStorageId
=
DepositController
.
class
.
getMethod
(
"queryListByUidAndStorageId"
,
new
Class
[]{
Integer
.
class
,
Integer
.
class
});
cacheAop
.
clearCache
(
queryListByUidAndStorageId
,
new
Object
[]{
uid
,
storageId
});
}
Method
queryUserStorageCount
=
DepositController
.
class
.
getMethod
(
"queryUserStorageCount"
,
new
Class
[]{
Integer
.
class
});
...
...
@@ -864,6 +866,17 @@ public class DepositServiceImpl implements DepositService {
return
num
>
0
?
true
:
false
;
}
@Override
public
int
updateSellLock
(
Integer
uid
,
String
depositCode
,
Integer
sellLock
)
{
StorageDeposit
deposit
=
storageDepositMapper
.
queryByDepositCode
(
uid
,
depositCode
);
if
(
null
==
deposit
)
{
throw
new
UfoServiceException
(
400
,
"寄存商品不存在"
);
}
Integer
preSellLock
=
sellLock
.
intValue
()
==
0
?
1
:
0
;
return
storageDepositMapper
.
updateSellLock
(
deposit
.
getId
(),
sellLock
,
preSellLock
);
}
private
List
<
DepositDetailBo
>
convertDepositResp
(
List
<
StorageDeposit
>
list
,
List
<
Long
>
orderCodeList
){
Map
<
Long
,
BigDecimal
>
orderCodePriceMap
=
Maps
.
newHashMap
();
List
<
BuyerOrder
>
buyerOrderList
=
buyerOrderMapper
.
selectByOrderCodes
(
orderCodeList
,
null
);
...
...
Please
register
or
login
to post a comment