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
c4945143
Commit
c4945143
authored
Nov 11, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
保证金
parent
607cdefe
Changes
12
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
68 additions
and
9 deletions
+68
-9
ch-core/src/main/java/com/wwdz/ch/core/consts/EarnestEnum.java
...re/src/main/java/com/wwdz/ch/core/consts/EarnestEnum.java
+2
-2
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/SpecialPerformanceConfigDao.java
...z/ch/db/dao/distribution/SpecialPerformanceConfigDao.java
+2
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/SpecialPerformanceConfigDaoImpl.java
...db/impl/distribution/SpecialPerformanceConfigDaoImpl.java
+9
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
...main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
+16
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/AuctionDetailVo.java
...om/wwdz/ch/wx/entity/vo/distribution/AuctionDetailVo.java
+2
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/AuctionRecordVo.java
...om/wwdz/ch/wx/entity/vo/distribution/AuctionRecordVo.java
+5
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/AuctionRecordServiceImpl.java
...wdz/ch/wx/impl/distribution/AuctionRecordServiceImpl.java
+15
-1
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/SupplierItemServiceImpl.java
...wwdz/ch/wx/impl/distribution/SupplierItemServiceImpl.java
+1
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/openShop/AuctionEarnestServiceImpl.java
...m/wwdz/ch/wx/impl/openShop/AuctionEarnestServiceImpl.java
+1
-1
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/openShop/EarnestRecordServiceImpl.java
...om/wwdz/ch/wx/impl/openShop/EarnestRecordServiceImpl.java
+12
-1
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/UserAccountService.java
.../main/java/com/wwdz/ch/wx/service/UserAccountService.java
+0
-1
ch-wx-api/src/test/java/com/wwdz/ch/wx/api/WxPayServiceTest.java
...pi/src/test/java/com/wwdz/ch/wx/api/WxPayServiceTest.java
+3
-3
No files found.
ch-core/src/main/java/com/wwdz/ch/core/consts/EarnestEnum.java
View file @
c4945143
...
...
@@ -45,7 +45,7 @@ public class EarnestEnum {
GIFT
(
1
,
"赠送保证金"
),
PAY
(
2
,
"缴纳保证金"
),
WITHDRAW
(
3
,
"提取保证金"
),
OCCUPY
(
4
,
"占用额度"
),
OCCUPY
(
4
,
"占用
出价
额度"
),
RELEASE
(
5
,
"释放保证金"
),
DEDUCT
(-
1
,
"扣除保证金"
),
;
...
...
@@ -83,7 +83,7 @@ public class EarnestEnum {
public
enum
StateEnum
{
VALID
(
1
,
"初始有效状态"
),
RELEASE
(
5
,
"已释放"
),
DEDUCT
(-
1
,
"中拍超时未支付,已扣除"
),
DEDUCT
(-
1
,
"中拍超时未支付,已扣除
保证金
"
),
;
private
int
code
;
...
...
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/SpecialPerformanceConfigDao.java
View file @
c4945143
...
...
@@ -13,6 +13,8 @@ public interface SpecialPerformanceConfigDao {
SpecialPerformanceConfig
findById
(
int
specialPerformanceId
,
long
itemId
);
SpecialPerformanceConfig
findByItemId
(
long
itemId
);
boolean
insert
(
SpecialPerformanceConfig
specialPerformanceConfig
);
boolean
update
(
SpecialPerformanceConfig
specialPerformanceConfig
);
...
...
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/SpecialPerformanceConfigDaoImpl.java
View file @
c4945143
...
...
@@ -64,6 +64,15 @@ public class SpecialPerformanceConfigDaoImpl implements SpecialPerformanceConfig
return
specialPerformanceConfigMapper
.
selectOneByExample
(
example
);
}
@Override
public
SpecialPerformanceConfig
findByItemId
(
long
itemId
)
{
SpecialPerformanceConfigExample
example
=
new
SpecialPerformanceConfigExample
();
SpecialPerformanceConfigExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andItemIdEqualTo
(
itemId
);
return
specialPerformanceConfigMapper
.
selectOneByExample
(
example
);
}
@Override
public
boolean
insert
(
SpecialPerformanceConfig
specialPerformanceConfig
)
{
specialPerformanceConfig
.
setCreateTime
(
new
Date
());
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
View file @
c4945143
...
...
@@ -48,6 +48,7 @@ import javax.servlet.http.HttpServletRequest;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.math.BigDecimal
;
import
java.time.Duration
;
import
java.time.Instant
;
import
java.time.LocalDateTime
;
...
...
@@ -151,6 +152,9 @@ public class WxPayCallbackController {
@Autowired
AuctionEarnestService
auctionEarnestService
;
@Autowired
EarnestRecordDao
earnestRecordDao
;
@RequestMapping
(
value
=
"/getPayNotify"
)
public
String
payNotify
(
HttpServletRequest
request
)
throws
IOException
{
logger
.
info
(
"------------------ 收到微信支付回调通知 ------------------"
);
...
...
@@ -689,6 +693,18 @@ public class WxPayCallbackController {
earnestOrder
.
setUpdateTime
(
new
Date
());
earnestOrderDao
.
update
(
earnestOrder
);
//保存充值记录
EarnestRecord
earnestRecord
=
new
EarnestRecord
();
earnestRecord
.
setUserId
(
userId
);
earnestRecord
.
setAmount
(
amount
);
earnestRecord
.
setEntryType
(
EarnestEnum
.
EntryEnum
.
INCREASE
.
getCode
());
earnestRecord
.
setCreateTime
(
new
Date
());
earnestRecord
.
setUpdateTime
(
new
Date
());
earnestRecord
.
setType
(
EarnestEnum
.
TypeEnum
.
PAY
.
getCode
());
earnestRecord
.
setState
(
EarnestEnum
.
StateEnum
.
VALID
.
getCode
());
earnestRecordDao
.
insert
(
earnestRecord
);
//用户账户,更新保证金额度
UserAccount
userAccount
=
userAccountDao
.
findByUserId
(
userId
);
long
earnestUsableAmount
=
userAccount
.
getEarnestUsableAmount
();
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/AuctionDetailVo.java
View file @
c4945143
...
...
@@ -163,4 +163,6 @@ public class AuctionDetailVo implements Entity {
*/
private
Boolean
isSubscribed
;
private
Integer
lot
;
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/AuctionRecordVo.java
View file @
c4945143
...
...
@@ -103,4 +103,9 @@ public class AuctionRecordVo implements Entity {
* 是否足够保证金
*/
private
Boolean
enoughEarnest
=
true
;
/**
* 可出价额度
*/
private
String
usableOfferAmount
;
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/AuctionRecordServiceImpl.java
View file @
c4945143
...
...
@@ -14,7 +14,9 @@ import com.wwdz.ch.core.util.PriceUtil;
import
com.wwdz.ch.db.dao.OfficialAccountSubscribeRecordDao
;
import
com.wwdz.ch.db.dao.UserDao
;
import
com.wwdz.ch.db.dao.distribution.*
;
import
com.wwdz.ch.db.dao.openShop.UserAccountDao
;
import
com.wwdz.ch.db.domain.distribution.*
;
import
com.wwdz.ch.db.domain.openShop.UserAccount
;
import
com.wwdz.ch.db.dto.request.distribution.AuctionRecordRequestDto
;
import
com.wwdz.ch.core.api.WxAppletApi
;
import
com.wwdz.ch.core.entity.AuctionOfferNoticeMsg
;
...
...
@@ -45,6 +47,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.ObjectUtils
;
import
java.math.BigDecimal
;
import
java.time.Duration
;
import
java.time.Instant
;
import
java.util.ArrayList
;
...
...
@@ -113,6 +116,9 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
@Autowired
AuctionEarnestService
auctionEarnestService
;
@Autowired
UserAccountDao
userAccountDao
;
@Value
(
"${spring.profiles.active}"
)
private
String
env
;
...
...
@@ -331,7 +337,15 @@ public class AuctionRecordServiceImpl implements AuctionRecordService {
earnestRecordRequestDto
.
setUserId
(
dto
.
getUserId
());
earnestRecordRequestDto
.
setAuctionPrice
(
PriceUtil
.
convertPriceFromStr
(
auctionRecordVo
.
getNextPrice
()));
Result
checkEnoughEarnestResult
=
auctionEarnestService
.
checkEnoughEarnest
(
earnestRecordRequestDto
);
if
(!
checkEnoughEarnestResult
.
getSuccess
())
{
long
auctionPrice
=
PriceUtil
.
convertPriceFromStr
(
auctionRecordVo
.
getNextPrice
());
//换算成对应需要占用的保证金
BigDecimal
earnestAmount
=
new
BigDecimal
(
String
.
valueOf
(
auctionPrice
)).
multiply
(
new
BigDecimal
(
CommConsts
.
EARNEST_REBATE
));
long
occupyAmount
=
earnestAmount
.
longValue
();
UserAccount
userAccount
=
userAccountDao
.
findByUserId
(
dto
.
getUserId
());
long
earnestUsableAmount
=
userAccount
.
getEarnestUsableAmount
();
//当前可出价的额度
auctionRecordVo
.
setUsableOfferAmount
(
PriceUtil
.
convertPriceFenToYuan
(
earnestUsableAmount
*
CommConsts
.
EARNEST_TRANSFORM_AUCTION_REBATE
));
if
(
occupyAmount
>
earnestUsableAmount
)
{
auctionRecordVo
.
setEnoughEarnest
(
false
);
}
auctionRecordVo
.
setStartPrice
(
PriceUtil
.
convertPriceFenToYuan
(
auctionConfig
.
getStartPrice
()));
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/SupplierItemServiceImpl.java
View file @
c4945143
...
...
@@ -647,6 +647,7 @@ public class SupplierItemServiceImpl implements SupplierItemService {
auctionDetailVo
.
setSpecialPerformanceId
(
specialPerformanceConfig
.
getSpecialPerformanceId
());
auctionDetailVo
.
setCurrentPrice
(
PriceUtil
.
convertPriceFenToYuan
(
specialPerformanceConfig
.
getCurrentPrice
()));
auctionDetailVo
.
setIsSubscribed
(
disposableSubscribeRecordDao
.
isSubscribed
(
dto
.
getUserId
(),
itemId
,
DisposableSubscribeRecordEnum
.
TypeEnum
.
ITEM_PRE_END
.
getType
()));
auctionDetailVo
.
setLot
(
specialPerformanceConfig
.
getLot
());
//查询用户是否关注该商品
SpecialPerformanceItemFollowRequestDto
specialPerformanceItemFollowRequestDto
=
new
SpecialPerformanceItemFollowRequestDto
();
specialPerformanceItemFollowRequestDto
.
setSpecialPerformanceId
(
specialPerformanceConfig
.
getSpecialPerformanceId
());
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/openShop/AuctionEarnestServiceImpl.java
View file @
c4945143
...
...
@@ -132,7 +132,7 @@ public class AuctionEarnestServiceImpl implements AuctionEarnestService {
if
(
occupyAmount
>
earnestUsableAmount
)
{
return
Result
.
failed
(
"保证金不足,去缴纳"
);
}
return
Result
.
success
();
return
Result
.
success
(
earnestUsableAmount
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"检查是否有足够的保证金失败 error : {}"
,
e
);
}
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/openShop/EarnestRecordServiceImpl.java
View file @
c4945143
package
com.wwdz.ch.wx.impl.openShop
;
import
com.github.pagehelper.PageInfo
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.EarnestEnum
;
import
com.wwdz.ch.core.entity.openShop.EarnestRecordVo
;
import
com.wwdz.ch.core.type.PageSearchResult
;
...
...
@@ -20,6 +21,8 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.math.BigDecimal
;
import
java.util.*
;
@Service
...
...
@@ -40,7 +43,8 @@ public class EarnestRecordServiceImpl implements EarnestRecordService {
public
Result
findList
(
EarnestRecordRequestDto
dto
)
{
try
{
List
<
EarnestRecordVo
>
earnestRecordVos
=
new
ArrayList
<>();
dto
.
setTypeList
(
Arrays
.
asList
(
EarnestEnum
.
TypeEnum
.
PAY
.
getCode
(),
EarnestEnum
.
TypeEnum
.
DEDUCT
.
getCode
(),
EarnestEnum
.
TypeEnum
.
WITHDRAW
.
getCode
()));
dto
.
setTypeList
(
Arrays
.
asList
(
EarnestEnum
.
TypeEnum
.
PAY
.
getCode
(),
EarnestEnum
.
TypeEnum
.
DEDUCT
.
getCode
(),
EarnestEnum
.
TypeEnum
.
WITHDRAW
.
getCode
(),
EarnestEnum
.
TypeEnum
.
GIFT
.
getCode
()));
List
<
EarnestRecord
>
earnestRecordList
=
earnestRecordDao
.
findList
(
dto
);
PageInfo
pageInfo
=
new
PageInfo
<>(
earnestRecordList
);
for
(
EarnestRecord
earnestRecord
:
earnestRecordList
)
{
...
...
@@ -76,6 +80,13 @@ public class EarnestRecordServiceImpl implements EarnestRecordService {
earnestRecordVo
.
setAmount
(
PriceUtil
.
convertPriceFenToYuan
(
earnestRecord
.
getAmount
()));
if
(
earnestRecord
.
getState
()
!=
EarnestEnum
.
StateEnum
.
VALID
.
getCode
())
{
earnestRecordVo
.
setStateName
(
EarnestEnum
.
StateEnum
.
getNameByCode
(
earnestRecord
.
getState
()));
if
(
earnestRecord
.
getState
()
==
EarnestEnum
.
StateEnum
.
DEDUCT
.
getCode
())
{
//算出被扣除的保证金金额
BigDecimal
earnestAmount
=
new
BigDecimal
(
String
.
valueOf
(
earnestRecord
.
getAmount
())).
multiply
(
new
BigDecimal
(
CommConsts
.
EARNEST_REBATE
));
//换算成对应占用的保证金
long
occupyAmount
=
earnestAmount
.
longValue
();
earnestRecordVo
.
setStateName
(
EarnestEnum
.
StateEnum
.
getNameByCode
(
earnestRecord
.
getState
())
+
"¥"
+
PriceUtil
.
convertPriceFenToYuan
(
occupyAmount
));
}
}
SupplierItem
supplierItem
=
supplierItemDao
.
findById
(
earnestRecord
.
getItemId
());
earnestRecordVo
.
setItemName
(
supplierItem
.
getName
());
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/UserAccountService.java
View file @
c4945143
package
com.wwdz.ch.wx.service
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.domain.distribution.DistributionOrder
;
public
interface
UserAccountService
{
...
...
ch-wx-api/src/test/java/com/wwdz/ch/wx/api/WxPayServiceTest.java
View file @
c4945143
...
...
@@ -89,12 +89,12 @@ public class WxPayServiceTest {
@Test
public
void
refund
()
{
List
<
String
>
list
=
Arrays
.
asList
(
"
DA2411042000269405675
"
);
List
<
String
>
list
=
Arrays
.
asList
(
"
AE2411111432126726864
"
);
list
.
forEach
(
orderId
->{
DistributionOrderRequestDto
dto
=
new
DistributionOrderRequestDto
();
dto
.
setDistributionOrderId
(
orderId
);
dto
.
setAmount
(
"
30
"
);
dto
.
setRefundPrice
(
"
30
"
);
dto
.
setAmount
(
"
0.1
"
);
dto
.
setRefundPrice
(
"
0.1
"
);
Result
result
=
wxPayServiceApi
.
refund
(
dto
);
logger
.
info
(
"申请微信支付退款:{}"
,
result
);
});
...
...
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