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
ce4054ee
Commit
ce4054ee
authored
Nov 18, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
微信预支付订单金额改为优惠后的金额
parent
a616d6af
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
112 additions
and
16 deletions
+112
-16
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
...main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
+2
-1
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
...ch/wx/impl/distribution/DistributionOrderServiceImpl.java
+18
-15
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/SellActivityServiceImpl.java
...wwdz/ch/wx/impl/distribution/SellActivityServiceImpl.java
+38
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/SellActivityService.java
.../wwdz/ch/wx/service/distribution/SellActivityService.java
+11
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/SellActivityController.java
...m/wwdz/ch/wx/web/distribution/SellActivityController.java
+43
-0
No files found.
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
View file @
ce4054ee
...
@@ -238,7 +238,8 @@ public class WxPayCallbackController {
...
@@ -238,7 +238,8 @@ public class WxPayCallbackController {
if
(!
updateResult
.
getSuccess
())
{
if
(!
updateResult
.
getSuccess
())
{
return
JsonUtils
.
from
(
returnMap
);
return
JsonUtils
.
from
(
returnMap
);
}
}
}
else
if
(
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
COLLECT
.
getCode
())
{
}
else
if
(
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
COLLECT
.
getCode
()
||
distributionOrder
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
BLACK_COLLECTION
.
getCode
())
{
//藏馆订单
//藏馆订单
Result
updateResult
=
handleOrderOfCollector
(
transaction
);
Result
updateResult
=
handleOrderOfCollector
(
transaction
);
if
(!
updateResult
.
getSuccess
())
{
if
(!
updateResult
.
getSuccess
())
{
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
View file @
ce4054ee
...
@@ -430,10 +430,26 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -430,10 +430,26 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
return
Result
.
failed
(
"超出购买上限"
+
buyLimitNum
+
"件"
);
return
Result
.
failed
(
"超出购买上限"
+
buyLimitNum
+
"件"
);
}
}
DistributionOrder
distributionOrder
=
new
DistributionOrder
();
long
orderAmount
=
supplierItem
.
getDistributionPrice
()
*
dto
.
getItemNum
();
//盲盒订单存在优惠活动,特殊处理
if
(
dto
.
getType
()
!=
null
&&
DistributionEnum
.
DistributionTypeEnum
.
BLACK_COLLECTION
.
getCode
()
==
dto
.
getType
())
{
//盲袋订单,盲袋编码在remark字段中
distributionOrder
.
setRemark
(
dto
.
getRemark
());
SellActivityRequestDto
sellActivityRequestDto
=
new
SellActivityRequestDto
();
sellActivityRequestDto
.
setOrderAmount
(
orderAmount
);
//查询优惠活动后的订单价格
Result
<
Long
>
result
=
sellActivityService
.
getActivityDiscountPrice
(
sellActivityRequestDto
);
if
(
result
.
getSuccess
())
{
orderAmount
=
result
.
getData
();
}
}
String
distributionOrderId
=
IdUtils
.
getOrderNumber
(
DISTRIBUTION_ORDER_PREFIX
);
String
distributionOrderId
=
IdUtils
.
getOrderNumber
(
DISTRIBUTION_ORDER_PREFIX
);
DistributionOrderRequestDto
prePayDto
=
new
DistributionOrderRequestDto
();
DistributionOrderRequestDto
prePayDto
=
new
DistributionOrderRequestDto
();
prePayDto
.
setDistributionOrderId
(
distributionOrderId
);
prePayDto
.
setDistributionOrderId
(
distributionOrderId
);
prePayDto
.
setAmount
(
String
.
valueOf
(
supplierItem
.
getDistributionPrice
()
*
dto
.
getItemNum
()
));
prePayDto
.
setAmount
(
String
.
valueOf
(
orderAmount
));
prePayDto
.
setBuyerOpenid
(
dto
.
getBuyerOpenid
());
prePayDto
.
setBuyerOpenid
(
dto
.
getBuyerOpenid
());
prePayDto
.
setItemName
(
supplierItem
.
getName
());
prePayDto
.
setItemName
(
supplierItem
.
getName
());
...
@@ -459,7 +475,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -459,7 +475,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
}
}
//查询佣金比例
//查询佣金比例
double
rebate
=
distributorProfitService
.
getIntroduceRebate
(
dto
.
getBuyerId
(),
introducerId
);
double
rebate
=
distributorProfitService
.
getIntroduceRebate
(
dto
.
getBuyerId
(),
introducerId
);
DistributionOrder
distributionOrder
=
new
DistributionOrder
();
distributionOrder
.
setIntroduceRebate
(
BigDecimal
.
valueOf
(
rebate
));
distributionOrder
.
setIntroduceRebate
(
BigDecimal
.
valueOf
(
rebate
));
distributionOrder
.
setIntroducerId
(
introducerId
);
distributionOrder
.
setIntroducerId
(
introducerId
);
distributionOrder
.
setItemId
(
itemId
);
distributionOrder
.
setItemId
(
itemId
);
...
@@ -471,20 +487,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -471,20 +487,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrder
.
setBuyerOpenid
(
dto
.
getBuyerOpenid
());
distributionOrder
.
setBuyerOpenid
(
dto
.
getBuyerOpenid
());
distributionOrder
.
setShopId
(
supplierItem
.
getCreatorId
());
distributionOrder
.
setShopId
(
supplierItem
.
getCreatorId
());
distributionOrder
.
setSellerId
(
supplierItem
.
getCreatorId
());
distributionOrder
.
setSellerId
(
supplierItem
.
getCreatorId
());
long
orderAmount
=
supplierItem
.
getDistributionPrice
()
*
dto
.
getItemNum
();
//盲盒订单存在优惠活动,特殊处理
if
(
dto
.
getType
()
!=
null
&&
DistributionEnum
.
DistributionTypeEnum
.
BLACK_COLLECTION
.
getCode
()
==
dto
.
getType
())
{
//盲袋订单,盲袋编码在remark字段中
distributionOrder
.
setRemark
(
dto
.
getRemark
());
SellActivityRequestDto
sellActivityRequestDto
=
new
SellActivityRequestDto
();
sellActivityRequestDto
.
setOrderAmount
(
orderAmount
);
//查询优惠活动后的订单价格
Result
<
Long
>
result
=
sellActivityService
.
getActivityDiscountPrice
(
sellActivityRequestDto
);
if
(
result
.
getSuccess
())
{
orderAmount
=
result
.
getData
();
}
}
distributionOrder
.
setAmount
(
orderAmount
);
distributionOrder
.
setAmount
(
orderAmount
);
distributionOrder
.
setAddressId
(
dto
.
getAddressId
());
distributionOrder
.
setAddressId
(
dto
.
getAddressId
());
distributionOrder
.
setReceiverAddress
(
dto
.
getReceiverAddress
());
distributionOrder
.
setReceiverAddress
(
dto
.
getReceiverAddress
());
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/SellActivityServiceImpl.java
View file @
ce4054ee
package
com.wwdz.ch.wx.impl.distribution
;
package
com.wwdz.ch.wx.impl.distribution
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.util.PriceUtil
;
import
com.wwdz.ch.db.dao.distribution.SellActivityDao
;
import
com.wwdz.ch.db.dao.distribution.SellActivityDao
;
import
com.wwdz.ch.db.dao.distribution.SupplierItemDao
;
import
com.wwdz.ch.db.domain.distribution.SellActivity
;
import
com.wwdz.ch.db.domain.distribution.SellActivity
;
import
com.wwdz.ch.db.domain.distribution.SupplierItem
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SellActivityRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SellActivityRequestDto
;
import
com.wwdz.ch.wx.service.distribution.SellActivityService
;
import
com.wwdz.ch.wx.service.distribution.SellActivityService
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
...
@@ -11,7 +15,10 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -11,7 +15,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.logging.Handler
;
@Service
@Service
public
class
SellActivityServiceImpl
implements
SellActivityService
{
public
class
SellActivityServiceImpl
implements
SellActivityService
{
...
@@ -21,6 +28,9 @@ public class SellActivityServiceImpl implements SellActivityService {
...
@@ -21,6 +28,9 @@ public class SellActivityServiceImpl implements SellActivityService {
@Autowired
@Autowired
SellActivityDao
sellActivityDao
;
SellActivityDao
sellActivityDao
;
@Autowired
SupplierItemDao
supplierItemDao
;
@Override
@Override
public
Result
<
Long
>
getActivityDiscountPrice
(
SellActivityRequestDto
dto
)
{
public
Result
<
Long
>
getActivityDiscountPrice
(
SellActivityRequestDto
dto
)
{
try
{
try
{
...
@@ -39,4 +49,32 @@ public class SellActivityServiceImpl implements SellActivityService {
...
@@ -39,4 +49,32 @@ public class SellActivityServiceImpl implements SellActivityService {
}
}
return
Result
.
failed
();
return
Result
.
failed
();
}
}
@Override
public
Result
getDiscountForItem
(
DistributionOrderRequestDto
dto
)
{
try
{
SupplierItem
supplierItem
=
supplierItemDao
.
findById
(
dto
.
getItemId
());
//优惠活动的起始时间小于当前,结束时间大于当前时间,按照使用门槛倒序排列
SellActivityRequestDto
sellActivityRequestDto
=
new
SellActivityRequestDto
();
sellActivityRequestDto
.
setCurrentTime
(
new
Date
());
List
<
SellActivity
>
sellActivityList
=
sellActivityDao
.
findList
(
sellActivityRequestDto
);
long
orderAmount
=
supplierItem
.
getDistributionPrice
()
*
dto
.
getItemNum
();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"orderAmount"
,
PriceUtil
.
convertPriceFenToYuan
(
orderAmount
));
for
(
SellActivity
sellActivity
:
sellActivityList
)
{
if
(
sellActivity
.
getThresholdAmount
()
<=
orderAmount
)
{
map
.
put
(
"discountAmount"
,
PriceUtil
.
convertPriceFenToYuan
(
sellActivity
.
getDiscountAmount
()));
map
.
put
(
"payAmount"
,
PriceUtil
.
convertPriceFenToYuan
(
orderAmount
-
sellActivity
.
getDiscountAmount
()));
}
else
{
map
.
put
(
"discountAmount"
,
"0"
);
map
.
put
(
"payAmount"
,
PriceUtil
.
convertPriceFenToYuan
(
orderAmount
));
}
}
return
Result
.
success
(
map
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"获取商品折扣信息失败error:{}"
,
e
);
}
return
Result
.
failed
();
}
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/SellActivityService.java
View file @
ce4054ee
package
com.wwdz.ch.wx.service.distribution
;
package
com.wwdz.ch.wx.service.distribution
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.domain.distribution.DistributionOrder
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SellActivityRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SellActivityRequestDto
;
public
interface
SellActivityService
{
public
interface
SellActivityService
{
...
@@ -12,4 +14,13 @@ public interface SellActivityService {
...
@@ -12,4 +14,13 @@ public interface SellActivityService {
* @return
* @return
*/
*/
Result
getActivityDiscountPrice
(
SellActivityRequestDto
dto
);
Result
getActivityDiscountPrice
(
SellActivityRequestDto
dto
);
/**
* 获取商品折扣后的价格
* @param dto
* @return
*/
Result
getDiscountForItem
(
DistributionOrderRequestDto
dto
);
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/distribution/SellActivityController.java
0 → 100644
View file @
ce4054ee
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.SelfPageRequestDto
;
import
com.wwdz.ch.wx.service.distribution.SellActivityService
;
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/sellActivity"
)
public
class
SellActivityController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SellActivityController
.
class
);
@Autowired
SellActivityService
sellActivityService
;
@ApiOperation
(
value
=
"获取商品折扣后的价格"
)
@PostMapping
(
"/getDistributorPageInfo"
)
public
Result
getDistributorPageInfo
(
@RequestBody
DistributionOrderRequestDto
dto
)
{
logger
.
info
(
"获取商品折扣后的价格,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
Validator
validator
=
new
Validator
(
FormHandler
.
ofEntity
(
dto
));
validator
.
set
(
"itemId"
,
"商品id"
).
must
().
number
()
.
set
(
"itemNum"
,
"商品数量"
).
must
().
number
()
.
end
();
if
(!
validator
.
isValid
())
{
return
Result
.
failed
(
validator
.
getErrorInfo
());
}
return
sellActivityService
.
getDiscountForItem
(
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