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
4dd4c6ca
Commit
4dd4c6ca
authored
Jul 31, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
团购商品列表
parent
41a6eace
Changes
15
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
238 additions
and
207 deletions
+238
-207
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
...va/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
+7
-5
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-dao/src/main/java/com/wwdz/ch/db/dao/distribution/UserAccountDetailDao.java
...com/wwdz/ch/db/dao/distribution/UserAccountDetailDao.java
+2
-0
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/GroupPurchaseRecordRequestDto.java
...o/request/distribution/GroupPurchaseRecordRequestDto.java
+5
-5
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/UserAccountDetailDaoImpl.java
...wdz/ch/db/impl/distribution/UserAccountDetailDaoImpl.java
+8
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
...main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
+52
-75
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/GroupPurchaseInfo.java
...rc/main/java/com/wwdz/ch/wx/entity/GroupPurchaseInfo.java
+3
-3
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/GroupPurchaseItemVo.java
...wdz/ch/wx/entity/vo/distribution/GroupPurchaseItemVo.java
+2
-2
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
...ch/wx/impl/distribution/DistributionOrderServiceImpl.java
+60
-14
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/GroupPurchaseServiceImpl.java
...wdz/ch/wx/impl/distribution/GroupPurchaseServiceImpl.java
+29
-74
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/UserAccountDetailServiceImpl.java
...ch/wx/impl/distribution/UserAccountDetailServiceImpl.java
+40
-2
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/GroupPurchaseService.java
...wwdz/ch/wx/service/distribution/GroupPurchaseService.java
+6
-12
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/UserAccountDetailService.java
.../ch/wx/service/distribution/UserAccountDetailService.java
+7
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/DistributionOrderController.java
...z/ch/wx/web/distribution/DistributionOrderController.java
+13
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/GroupPurchaseController.java
.../wwdz/ch/wx/web/distribution/GroupPurchaseController.java
+3
-14
No files found.
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
View file @
4dd4c6ca
...
...
@@ -190,12 +190,14 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
}
}
else
if
(
supplierItem
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
supplierItem
.
getId
());
if
(
groupPurchaseConfig
.
getStartTime
()
!=
null
&&
groupPurchaseConfig
.
getEndTime
()
!=
null
)
{
if
(
groupPurchaseConfig
.
getEndTime
().
before
(
now
)
&&
groupPurchaseConfig
.
getState
()
!=
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
())
{
groupPurchaseConfigDao
.
updateState
(
supplierItem
.
getId
(),
GroupPurchaseEnum
.
ItemStateEnum
.
END
.
getCode
());
}
else
if
(
now
.
after
(
groupPurchaseConfig
.
getStartTime
())
&&
groupPurchaseConfig
.
getEndTime
().
after
(
now
)
&&
groupPurchaseConfig
.
getState
()
==
GroupPurchaseEnum
.
ItemStateEnum
.
NOT_START
.
getCode
())
{
groupPurchaseConfigDao
.
updateState
(
groupPurchaseConfig
.
getItemId
(),
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getCode
());
}
}
supplierItemVo
.
setSalePrice
(
PriceUtil
.
convertPriceFenToYuan
(
groupPurchaseConfig
.
getPrice
()));
supplierItemVo
.
setGroupPurchaseStartTime
(
DateUtils
.
toString
(
groupPurchaseConfig
.
getStartTime
()));
supplierItemVo
.
setGroupPurchaseEndTime
(
DateUtils
.
toString
(
groupPurchaseConfig
.
getEndTime
()));
...
...
ch-core/src/main/java/com/wwdz/ch/core/consts/DistributionEnum.java
View file @
4dd4c6ca
...
...
@@ -7,7 +7,7 @@ public class DistributionEnum {
*/
public
enum
DistributionOrderStateEnum
{
PRE_PAY
(
1
,
"待付款"
),
PRE_SALE
(
5
,
"
预售
中"
),
PRE_SALE
(
5
,
"
众筹
中"
),
PRE_SEND
(
10
,
"待发货"
),
PRE_SIGNED
(
20
,
"待收货"
),
AFTER_SALE
(
30
,
"售后中"
),
...
...
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/UserAccountDetailDao.java
View file @
4dd4c6ca
...
...
@@ -15,6 +15,8 @@ public interface UserAccountDetailDao {
List
<
UserAccountDetail
>
findList
(
UserAccountDetailRequestDto
dto
);
List
<
UserAccountDetail
>
findByTransactionId
(
String
transactionId
);
/**
* 根据交易id和收支类型查询账单明细
* @param transactionId
...
...
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/GroupPurchaseRecordRequestDto.java
View file @
4dd4c6ca
...
...
@@ -30,6 +30,11 @@ public class GroupPurchaseRecordRequestDto extends BaseRequestDto {
*/
private
String
transactionId
;
/**
* 买方的微信openid
*/
private
String
buyerOpenid
;
/**
* 商品id
*/
...
...
@@ -45,11 +50,6 @@ public class GroupPurchaseRecordRequestDto extends BaseRequestDto {
*/
private
Long
userId
;
/**
* 用户openid
*/
private
String
userOpenid
;
/**
* 定金金额
*/
...
...
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/UserAccountDetailDaoImpl.java
View file @
4dd4c6ca
...
...
@@ -66,6 +66,14 @@ public class UserAccountDetailDaoImpl implements UserAccountDetailDao {
}
@Override
public
List
<
UserAccountDetail
>
findByTransactionId
(
String
transactionId
)
{
UserAccountDetailExample
example
=
new
UserAccountDetailExample
();
UserAccountDetailExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andTransactionIdEqualTo
(
transactionId
);
return
userAccountDetailMapper
.
selectByExample
(
example
);
}
@Override
public
UserAccountDetail
find
(
String
transactionId
,
int
type
)
{
UserAccountDetailExample
example
=
new
UserAccountDetailExample
();
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
View file @
4dd4c6ca
...
...
@@ -166,13 +166,6 @@ public class WxPayCallbackController {
Result
<
Transaction
>
queryResult
=
wxPayServiceApi
.
queryOrderBytOutTradeNo
(
distributionOrderRequestDto
);
//支付成功,修改订单状态
if
(
queryResult
.
getSuccess
())
{
//处理团购支付订单定金的逻辑,判断单号的前缀是否是定金交易订单号
if
(
distributionOrderId
.
startsWith
(
CommConsts
.
GROUPPURCHASE_DEPOSIT_PREFIX
))
{
Result
updateResult
=
handleOrderOfDeposit
(
transaction
);
if
(!
updateResult
.
getSuccess
())
{
return
JsonUtils
.
from
(
returnMap
);
}
}
else
{
//查询系统中订单现在的状态,避免重复更新
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
distributionOrderId
);
if
(
distributionOrder
.
getState
()
==
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_PAY
.
getCode
())
{
...
...
@@ -209,7 +202,6 @@ public class WxPayCallbackController {
}
}
}
}
returnMap
.
put
(
"code"
,
"SUCCESS"
);
returnMap
.
put
(
"message"
,
"成功"
);
return
JsonUtils
.
from
(
returnMap
);
...
...
@@ -398,13 +390,11 @@ public class WxPayCallbackController {
}
return
Result
.
failed
();
}
/**
/*
*//**
* 处理团购订单定金支付回调
* @return
*/
*/
/*
public Result handleOrderOfDeposit(Transaction transaction) {
try {
//商户订单号,分销订单号
...
...
@@ -435,8 +425,7 @@ public class WxPayCallbackController {
logger.error(">>>>>>>>>>>> 团购订单支付定金回调通知处理失败 error :{}", e);
}
return Result.failed();
}
}*/
/**
...
...
@@ -471,7 +460,7 @@ public class WxPayCallbackController {
/**
* 处理
团购订单
的回调
* 处理
众筹祝福成功
的回调
* @param transaction
* @return
*/
...
...
@@ -488,24 +477,23 @@ public class WxPayCallbackController {
distributionOrderDto
.
setDistributionOrderId
(
distributionOrderId
);
distributionOrderDto
.
setTransactionId
(
transactionId
);
distributionOrderDto
.
setPayTime
(
TimeUtil
.
wxTimeConvertToDate
(
payTime
));
distributionOrderDto
.
setState
(
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_S
END
.
getCode
());
distributionOrderDto
.
setState
(
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_S
ALE
.
getCode
());
distributionOrderDao
.
update
(
distributionOrderDto
);
//用户付款成功后,把分销商利润的记录更新为有效,因为未付款前只是创建了预计利润记录,但并未生效
distributorProfitDao
.
updateValidState
(
distributionOrderId
,
true
);
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
distributionOrderId
);
SupplierItem
supplierItem
=
supplierItemDao
.
findById
(
distributionOrder
.
getItemId
());
//更新库存
supplierItemService
.
reduceStock
(
distributionOrder
.
getItemId
(),
distributionOrder
.
getItemNum
());
logger
.
info
(
">>>>>>>>>>>> 团购订单,微信支付回调通知处理成功,更新
拍卖
订单状态和商品库存 <<<<<<<<<<<<"
);
logger
.
info
(
">>>>>>>>>>>> 团购订单,微信支付回调通知处理成功,更新
团购
订单状态和商品库存 <<<<<<<<<<<<"
);
//新增用户账户的明细,调整月度账单
DistributorProfit
distributorProfit
=
distributorProfitDao
.
findById
(
distributionOrderId
);
userAccountDetailService
.
create
(
distributionOrder
,
distributorProfit
);
return
Result
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
">>>>>>>>>>>>
竞拍
订单,微信支付回调通知处理失败 error :{}"
,
e
);
logger
.
error
(
">>>>>>>>>>>>
团购
订单,微信支付回调通知处理失败 error :{}"
,
e
);
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
}
return
Result
.
failed
();
...
...
@@ -597,7 +585,6 @@ public class WxPayCallbackController {
String
successTime
=
refundNotification
.
getSuccessTime
();
//查询系统中订单现在的状态,避免重复更新
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
distributionOrderId
);
if
(
distributionOrderId
.
startsWith
(
CommConsts
.
DISTRIBUTION_ORDER_PREFIX
))
{
//只有在订单状态为退款处理中,才进行退款成功的状态修改
if
(
distributionOrder
.
getState
()
==
DistributionEnum
.
DistributionOrderStateEnum
.
REFUNDING
.
getCode
())
{
//订单改为已取消的状态
...
...
@@ -613,23 +600,13 @@ public class WxPayCallbackController {
refundOrderDao
.
update
(
refundOrder
);
//分销商利润记录改为无效
distributorProfitDao
.
updateValidState
(
distributionOrderId
,
false
);
logger
.
info
(
">>>>>>>> 分销单号:{}, 退款单号:{},退款处理成功, 退款时间为: {}<<<<<<<<<"
,
distributionOrderId
,
refundId
,
TimeUtil
.
wxTimeConvertToDate
(
successTime
));
//账单记录设置无效
userAccountDetailService
.
cancel
(
distributionOrder
);
logger
.
info
(
">>>>>>>> 分销单号:{}, 退款单号:{},退款处理成功, 退款时间为: {} <<<<<<<<<"
,
distributionOrderId
,
refundId
,
TimeUtil
.
wxTimeConvertToDate
(
successTime
));
returnMap
.
put
(
"code"
,
"SUCCESS"
);
returnMap
.
put
(
"message"
,
"成功"
);
return
JsonUtils
.
from
(
returnMap
);
}
}
else
if
(
distributionOrderId
.
startsWith
(
CommConsts
.
GROUPPURCHASE_DEPOSIT_PREFIX
))
{
//团购定金交易单的退款处理
//退款单状态改为成功
RefundOrder
refundOrder
=
new
RefundOrder
();
refundOrder
.
setRefundId
(
refundId
);
refundOrder
.
setWxRefundId
(
refundNotification
.
getRefundId
());
refundOrder
.
setUpdateTime
(
new
Date
());
refundOrder
.
setSuccessTime
(
TimeUtil
.
wxTimeConvertToDate
(
successTime
));
refundOrder
.
setUserReceivedAccount
(
refundNotification
.
getUserReceivedAccount
());
refundOrder
.
setState
(
RefundOrderEnum
.
StateEnum
.
SUCCESS
.
getCode
());
refundOrderDao
.
update
(
refundOrder
);
}
}
else
{
//退款单状态改为失败
RefundOrder
refundOrder
=
new
RefundOrder
();
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/GroupPurchaseInfo.java
View file @
4dd4c6ca
...
...
@@ -12,7 +12,7 @@ public class GroupPurchaseInfo implements Entity {
/**
* 团购优惠要求件数
*/
private
Integer
require
Num
;
private
Integer
target
Num
;
/**
* 已达到的件数
...
...
@@ -40,9 +40,9 @@ public class GroupPurchaseInfo implements Entity {
private
List
<
String
>
userAvatarList
;
/**
*
优惠
比例
*
进度
比例
*/
private
String
r
eb
ate
;
private
String
rate
;
/**
* 团购结束时间
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/GroupPurchaseItemVo.java
View file @
4dd4c6ca
...
...
@@ -53,8 +53,8 @@ public class GroupPurchaseItemVo implements Entity {
private
Boolean
isSubscribedOfPay
;
/**
*
折扣相关信息、
进度
*
团购
进度
*/
private
GroupPurchaseInfo
discount
Info
;
private
GroupPurchaseInfo
rate
Info
;
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
View file @
4dd4c6ca
...
...
@@ -491,15 +491,12 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
@Override
public
Result
createGroupPurchaseOrder
(
GroupPurchaseRecordRequestDto
dto
)
{
try
{
//查询团购定金
GroupPurchaseRecord
groupPurchaseRecord
=
groupPurchaseRecordDao
.
findByPayId
(
dto
.
getDepositPayId
());
long
itemId
=
groupPurchaseRecord
.
getItemId
();
long
itemId
=
dto
.
getItemId
();
SupplierItem
supplierItem
=
supplierItemDao
.
findById
(
itemId
);
//查询该用户和藏家的介绍人
FollowFansRecordRequestDto
followFansRecordRequestDto
=
new
FollowFansRecordRequestDto
();
followFansRecordRequestDto
.
setFollowerId
(
supplierItem
.
getCreatorId
());
followFansRecordRequestDto
.
setFansId
(
groupPurchaseRecord
.
getUserId
());
followFansRecordRequestDto
.
setFansId
(
dto
.
getUserId
());
FollowFansRecord
followFansRecord
=
followFansRecordDao
.
findOne
(
followFansRecordRequestDto
);
long
introducerId
;
//没有关注记录,则介绍费算作平台的
...
...
@@ -509,25 +506,76 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
//把介绍人作为该订单的分享链接字段的值
introducerId
=
followFansRecord
.
getIntroducerId
();
}
//查询团购商品配置
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
itemId
);
String
distributionOrderId
=
IdUtils
.
getOrderNumber
(
DISTRIBUTION_ORDER_PREFIX
);
DistributionOrderRequestDto
prePayDto
=
new
DistributionOrderRequestDto
();
prePayDto
.
setDistributionOrderId
(
distributionOrderId
);
prePayDto
.
setAmount
(
dto
.
getAmount
());
prePayDto
.
setBuyerOpenid
(
dto
.
getBuyerOpenid
());
prePayDto
.
setItemName
(
supplierItem
.
getName
());
Result
prePayResult
=
wxPayServiceApi
.
createPrepareOrder
(
prePayDto
);
if
(!
prePayResult
.
getSuccess
())
{
return
Result
.
failed
(
"众筹预下单失败"
);
}
String
prepayId
=
(
String
)
prePayResult
.
getData
();
DistributionOrder
distributionOrder
=
new
DistributionOrder
();
distributionOrder
.
setItemId
(
itemId
);
distributionOrder
.
setItemNum
(
groupPurchaseRecord
.
getItemNum
());
distributionOrder
.
setItemNum
(
dto
.
getItemNum
());
distributionOrder
.
setShareRecordId
(
String
.
valueOf
(
introducerId
));
distributionOrder
.
setDistributionOrderId
(
distributionOrderId
);
distributionOrder
.
setBuyerId
(
groupPurchaseRecord
.
getUserId
());
distributionOrder
.
setBuyerOpenid
(
groupPurchaseRecord
.
getUs
erOpenid
());
distributionOrder
.
setBuyerId
(
dto
.
getUserId
());
distributionOrder
.
setBuyerOpenid
(
dto
.
getBuy
erOpenid
());
distributionOrder
.
setShopId
(
supplierItem
.
getCreatorId
());
distributionOrder
.
setSellerId
(
supplierItem
.
getCreatorId
());
distributionOrder
.
setAmount
(
groupPurchaseConfig
.
getPrice
(
));
distributionOrder
.
setAmount
(
PriceUtil
.
convertPriceFromStr
(
dto
.
getAmount
()
));
distributionOrder
.
setCreateTime
(
new
Date
());
distributionOrder
.
setUpdateTime
(
new
Date
());
distributionOrder
.
setState
(
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_
SALE
.
getCode
());
distributionOrder
.
setState
(
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_
PAY
.
getCode
());
distributionOrder
.
setType
(
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
());
distributionOrderDao
.
insert
(
distributionOrder
);
//保存众筹记录
String
depositPayId
=
IdUtils
.
getOrderNumber
(
CommConsts
.
GROUPPURCHASE_DEPOSIT_PREFIX
);
GroupPurchaseRecord
groupPurchaseRecord
=
new
GroupPurchaseRecord
();
groupPurchaseRecord
.
setDepositPayId
(
depositPayId
);
groupPurchaseRecord
.
setPrepayId
(
prepayId
);
groupPurchaseRecord
.
setItemId
(
distributionOrder
.
getItemId
());
groupPurchaseRecord
.
setItemNum
(
distributionOrder
.
getItemNum
());
groupPurchaseRecord
.
setUserId
(
distributionOrder
.
getBuyerId
());
groupPurchaseRecord
.
setUserOpenid
(
distributionOrder
.
getBuyerOpenid
());
groupPurchaseRecord
.
setAmount
(
distributionOrder
.
getAmount
());
groupPurchaseRecord
.
setState
(
GroupPurchaseEnum
.
StateEnum
.
INVALID
.
getCode
());
groupPurchaseRecordDao
.
insert
(
groupPurchaseRecord
);
//计算利润
//查询该用户和藏家的介绍人
double
rebate
=
distributorProfitService
.
getIntroduceRebate
(
followFansRecordRequestDto
);
double
introduceCost
=
distributionOrder
.
getAmount
().
doubleValue
()
*
rebate
;
//实际订单到账金额
double
realAmount
=
distributionOrder
.
getAmount
().
doubleValue
()
*
(
1
-
CommConsts
.
WX_COMMISSION_REBATE
);
DistributorProfit
distributorProfit
=
new
DistributorProfit
();
//团购的平台佣金 = 订单金额 - 藏家供货价 - 介绍佣金
double
channelServiceCost
=
distributionOrder
.
getAmount
().
doubleValue
()
-
supplierItem
.
getSupplyPrice
()
-
introduceCost
;
distributorProfit
.
setChannelCost
(
PriceUtil
.
convertPriceFromStr
(
PriceUtil
.
convertDoubleToString
(
channelServiceCost
)));
distributorProfit
.
setIntroduceCost
(
PriceUtil
.
convertPriceFromStr
(
PriceUtil
.
convertDoubleToString
(
introduceCost
)));
distributorProfit
.
setDistributionOrderId
(
distributionOrderId
);
distributorProfit
.
setDistributorId
(
distributionOrder
.
getSellerId
());
distributorProfit
.
setItemId
(
distributionOrder
.
getItemId
());
distributorProfit
.
setItemNum
(
distributionOrder
.
getItemNum
());
distributorProfit
.
setAmount
(
distributionOrder
.
getAmount
());
distributorProfit
.
setRealAmount
(
PriceUtil
.
convertPriceFromStr
(
PriceUtil
.
convertDoubleToString
(
realAmount
)));
distributorProfit
.
setItemCost
(
supplierItem
.
getSupplyPrice
());
distributorProfit
.
setChannelCost
(
PriceUtil
.
convertPriceFromStr
(
PriceUtil
.
convertDoubleToString
(
channelServiceCost
)));
distributorProfit
.
setIntroduceCost
(
PriceUtil
.
convertPriceFromStr
(
PriceUtil
.
convertDoubleToString
(
introduceCost
)));
//团购订单,藏家的利润就是商品设置的供货价
distributorProfit
.
setProfit
(
supplierItem
.
getSupplyPrice
());
distributorProfit
.
setCreateTime
(
new
Date
());
distributorProfit
.
setType
(
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
());
distributorProfit
.
setIsValid
(
false
);
distributorProfitDao
.
insert
(
distributorProfit
);
return
Result
.
success
(
distributionOrderId
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"团购订单创建失败 error : {}"
,
e
);
...
...
@@ -1007,8 +1055,6 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
Result
<
GroupPurchaseInfo
>
result
=
groupPurchaseService
.
checkGroupPurchase
(
groupPurchaseRecordRequestDto
);
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
distributionOrder
.
getItemId
());
distributionOrderDetailVo
.
setDeposit
(
PriceUtil
.
convertPriceFenToYuan
(
groupPurchaseConfig
.
getDeposit
()));
distributionOrderDetailVo
.
setSurplusAmount
(
PriceUtil
.
convertPriceFenToYuan
(
distributionOrder
.
getAmount
()
-
groupPurchaseConfig
.
getDeposit
()));
distributionOrderDetailVo
.
setGroupPurchaseEndTime
(
groupPurchaseConfig
.
getEndTime
());
Date
endTime
=
groupPurchaseConfig
.
getEndTime
();
Instant
instant
=
endTime
.
toInstant
().
plus
(
Duration
.
ofHours
(
24
));
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/GroupPurchaseServiceImpl.java
View file @
4dd4c6ca
This diff is collapsed.
Click to expand it.
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/UserAccountDetailServiceImpl.java
View file @
4dd4c6ca
...
...
@@ -8,6 +8,7 @@ import com.wwdz.ch.db.dao.distribution.UserBillDao;
import
com.wwdz.ch.db.domain.distribution.DistributionOrder
;
import
com.wwdz.ch.db.domain.distribution.DistributorProfit
;
import
com.wwdz.ch.db.domain.distribution.UserAccountDetail
;
import
com.wwdz.ch.db.domain.distribution.UserBill
;
import
com.wwdz.ch.wx.service.distribution.UserAccountDetailService
;
import
com.wwdz.ch.wx.service.distribution.UserBillService
;
import
com.xxdxxs.utils.StringUtils
;
...
...
@@ -19,6 +20,9 @@ import org.springframework.transaction.annotation.Propagation;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
java.text.SimpleDateFormat
;
import
java.util.List
;
@Service
public
class
UserAccountDetailServiceImpl
implements
UserAccountDetailService
{
...
...
@@ -103,6 +107,40 @@ public class UserAccountDetailServiceImpl implements UserAccountDetailService {
}
}
@Override
public
Result
cancel
(
DistributionOrder
distributionOrder
)
{
try
{
String
distributionOrderId
=
distributionOrder
.
getDistributionOrderId
();
userAccountDetailDao
.
updateState
(
distributionOrderId
,
BillEnum
.
AccountDetailStateEnum
.
INVALID
.
getCode
());
logger
.
info
(
"========= 订单号:{},相关账户明细已失效 ========="
,
distributionOrder
);
//用户账户待入账金额需要减去当前退款的订单收入
SimpleDateFormat
formatter
=
new
SimpleDateFormat
(
"yyyy-MM"
);
String
accountPeriod
=
formatter
.
format
(
distributionOrder
.
getCreateTime
());
List
<
UserAccountDetail
>
userAccountDetailList
=
userAccountDetailDao
.
findByTransactionId
(
distributionOrderId
);
for
(
UserAccountDetail
userAccountDetail
:
userAccountDetailList
)
{
long
userId
=
userAccountDetail
.
getUserId
();
UserBill
userBill
=
userBillDao
.
findOne
(
accountPeriod
,
userId
,
null
);
if
(
userBill
!=
null
)
{
if
(
userAccountDetail
.
getType
()
==
BillEnum
.
AccountDetailTypeEnum
.
ORDER
.
getCode
())
{
//卖家订单收入无效
userBill
.
setOrderWaitEntryAmount
(
userBill
.
getOrderWaitEntryAmount
()
-
userAccountDetail
.
getAmount
());
userBill
.
setTotalWaitEntryAmount
(
userBill
.
getTotalWaitEntryAmount
()
-
userAccountDetail
.
getAmount
());
userBillDao
.
updateByPrimaryKey
(
userBill
);
logger
.
info
(
"========= 订单号:{},用户账单中的订单收入已失效 ========="
,
distributionOrder
);
}
else
if
(
userAccountDetail
.
getType
()
==
BillEnum
.
AccountDetailTypeEnum
.
INTRODUCE
.
getCode
())
{
//用户的介绍佣金无效
userBill
.
setIntroduceWaitEntryAmount
(
userBill
.
getIntroduceWaitEntryAmount
()
-
userAccountDetail
.
getAmount
());
userBill
.
setTotalWaitEntryAmount
(
userBill
.
getTotalWaitEntryAmount
()
-
userAccountDetail
.
getAmount
());
userBillDao
.
updateByPrimaryKey
(
userBill
);
logger
.
info
(
"========= 订单号:{},用户账单中的介绍佣金已失效 ========="
,
distributionOrder
);
}
}
}
return
Result
.
success
();
}
catch
(
Exception
e
)
{
logger
.
error
(
"账单设置失效 error:{}"
,
e
);
}
return
Result
.
failed
();
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/GroupPurchaseService.java
View file @
4dd4c6ca
...
...
@@ -24,19 +24,13 @@ public interface GroupPurchaseService {
*/
Result
findItemDetail
(
GroupPurchaseConfigRequestDto
dto
);
/**
* 支付团购定金
* @param dto
* @return
*/
Result
payDeposit
(
GroupPurchaseRecordRequestDto
dto
);
/**
* 取消
订单退定金
* 取消
团购订单
* @param dto
* @return
*/
Result
cancel
Deposit
(
GroupPurchaseRecordRequestDto
dto
);
Result
cancel
Order
(
GroupPurchaseRecordRequestDto
dto
);
/**
* 查询团购当前进度
...
...
@@ -45,15 +39,15 @@ public interface GroupPurchaseService {
*/
Result
<
GroupPurchaseInfo
>
checkGroupPurchase
(
GroupPurchaseRecordRequestDto
dto
);
/**
/* */
/**
* 支付团购订单尾款
* @param dto
* @return
*/
Result
payBalance
(
GroupPurchaseRecordRequestDto
dto
);
*/
/*
Result payBalance(GroupPurchaseRecordRequestDto dto);
*/
Result
calculateProfit
(
GroupPurchaseRecordRequestDto
dto
);
//
Result calculateProfit(GroupPurchaseRecordRequestDto dto);
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/UserAccountDetailService.java
View file @
4dd4c6ca
...
...
@@ -13,4 +13,11 @@ public interface UserAccountDetailService {
* @return
*/
Result
create
(
DistributionOrder
distributionOrder
,
DistributorProfit
distributorProfit
)
throws
Exception
;
/**
* 订单取消后,账单记录设置失效
* @param distributionOrder
* @return
*/
Result
cancel
(
DistributionOrder
distributionOrder
)
throws
Exception
;
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/DistributionOrderController.java
View file @
4dd4c6ca
...
...
@@ -2,10 +2,13 @@ package com.wwdz.ch.wx.web.distribution;
import
com.alibaba.fastjson.JSON
;
import
com.wwdz.ch.core.api.wxpay.WxPayServiceApi
;
import
com.wwdz.ch.core.consts.ResultCode
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto
;
import
com.wwdz.ch.wx.service.distribution.DistributionOrderService
;
import
com.xxdxxs.service.FormHandler
;
import
com.xxdxxs.utils.StringUtils
;
import
com.xxdxxs.validation.Validator
;
import
io.swagger.annotations.ApiOperation
;
import
org.slf4j.Logger
;
...
...
@@ -103,6 +106,16 @@ public class DistributionOrderController {
}
@ApiOperation
(
value
=
"创建团购订单"
)
@PostMapping
(
"/createGroupPurchaseOrder"
)
public
Result
createGroupPurchaseOrder
(
@RequestBody
GroupPurchaseRecordRequestDto
dto
)
{
logger
.
info
(
"创建团购订单,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(!
StringUtils
.
isAllNotEmpty
(
dto
.
getItemId
(),
dto
.
getItemNum
(),
dto
.
getUserId
(),
dto
.
getBuyerOpenid
(),
dto
.
getAmount
()))
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
distributionOrderService
.
createGroupPurchaseOrder
(
dto
);
}
@ApiOperation
(
value
=
"前端获取支付所需参数"
)
@PostMapping
(
"/getPayParam"
)
public
Result
getPayParam
(
@RequestBody
DistributionOrderRequestDto
dto
)
{
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/GroupPurchaseController.java
View file @
4dd4c6ca
...
...
@@ -5,7 +5,6 @@ import com.wwdz.ch.core.consts.ResultCode;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceRequestDto
;
import
com.wwdz.ch.wx.service.distribution.GroupPurchaseService
;
import
com.xxdxxs.utils.StringUtils
;
import
io.swagger.annotations.ApiOperation
;
...
...
@@ -45,24 +44,14 @@ public class GroupPurchaseController {
}
@ApiOperation
(
value
=
"支付团购定金"
)
@PostMapping
(
"/payDeposit"
)
public
Result
payDeposit
(
@RequestBody
GroupPurchaseRecordRequestDto
dto
)
{
logger
.
info
(
"支付团购定金,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(!
StringUtils
.
isAllNotEmpty
(
dto
.
getItemId
(),
dto
.
getUserId
(),
dto
.
getAmount
()))
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
groupPurchaseService
.
payDeposit
(
dto
);
}
@ApiOperation
(
value
=
"取消
订单退定金
"
)
@ApiOperation
(
value
=
"取消
团购订单
"
)
@PostMapping
(
"/cancelDeposit"
)
public
Result
cancelDeposit
(
@RequestBody
GroupPurchaseRecordRequestDto
dto
)
{
logger
.
info
(
"取消
订单退定金
,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
logger
.
info
(
"取消
团购订单
,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(!
StringUtils
.
isAllNotEmpty
(
dto
.
getDistributionOrderId
()))
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
groupPurchaseService
.
cancel
Deposit
(
dto
);
return
groupPurchaseService
.
cancel
Order
(
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