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
617874e3
Commit
617874e3
authored
Jul 29, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
团购商品首页展示
parent
7bcff6ba
Changes
22
Show whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
674 additions
and
42 deletions
+674
-42
ch-admin-api/src/main/java/com/wwdz/ch/admin/config/ShiroConfig.java
...i/src/main/java/com/wwdz/ch/admin/config/ShiroConfig.java
+1
-1
ch-admin-api/src/main/java/com/wwdz/ch/admin/controller/SysGroupPurchaseController.java
.../wwdz/ch/admin/controller/SysGroupPurchaseController.java
+37
-0
ch-admin-api/src/main/java/com/wwdz/ch/admin/controller/SysSupplierItemController.java
...m/wwdz/ch/admin/controller/SysSupplierItemController.java
+2
-2
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysGroupPurchaseServiceImpl.java
...a/com/wwdz/ch/admin/impl/SysGroupPurchaseServiceImpl.java
+0
-3
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
...va/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
+14
-6
ch-core/src/main/java/com/wwdz/ch/core/consts/CommConsts.java
...ore/src/main/java/com/wwdz/ch/core/consts/CommConsts.java
+12
-0
ch-core/src/main/java/com/wwdz/ch/core/consts/DisposableSubscribeRecordEnum.java
...om/wwdz/ch/core/consts/DisposableSubscribeRecordEnum.java
+2
-1
ch-core/src/main/java/com/wwdz/ch/core/entity/GroupPurchaseNoticeMsg.java
.../java/com/wwdz/ch/core/entity/GroupPurchaseNoticeMsg.java
+100
-0
ch-core/src/main/java/com/wwdz/ch/core/entity/SupplierItemVo.java
...src/main/java/com/wwdz/ch/core/entity/SupplierItemVo.java
+10
-0
ch-core/src/main/java/com/wwdz/ch/core/impl/SendMsgServiceImpl.java
...c/main/java/com/wwdz/ch/core/impl/SendMsgServiceImpl.java
+94
-0
ch-core/src/main/java/com/wwdz/ch/core/service/SendMsgService.java
...rc/main/java/com/wwdz/ch/core/service/SendMsgService.java
+15
-0
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/GroupPurchaseConfigDao.java
...m/wwdz/ch/db/dao/distribution/GroupPurchaseConfigDao.java
+11
-0
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/GroupPurchaseRecordDao.java
...m/wwdz/ch/db/dao/distribution/GroupPurchaseRecordDao.java
+4
-0
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/GroupPurchaseConfigRequestDto.java
...o/request/distribution/GroupPurchaseConfigRequestDto.java
+78
-0
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/SupplierItemRequestDto.java
...h/db/dto/request/distribution/SupplierItemRequestDto.java
+0
-2
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/GroupPurchaseConfigDaoImpl.java
...z/ch/db/impl/distribution/GroupPurchaseConfigDaoImpl.java
+15
-0
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/GroupPurchaseRecordDaoImpl.java
...z/ch/db/impl/distribution/GroupPurchaseRecordDaoImpl.java
+14
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
...main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
+24
-11
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/GroupPurchaseItemVo.java
...wdz/ch/wx/entity/vo/distribution/GroupPurchaseItemVo.java
+59
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
...ch/wx/impl/distribution/DistributionOrderServiceImpl.java
+7
-8
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/GroupPurchaseServiceImpl.java
...wdz/ch/wx/impl/distribution/GroupPurchaseServiceImpl.java
+149
-8
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/GroupPurchaseService.java
...wwdz/ch/wx/service/distribution/GroupPurchaseService.java
+26
-0
No files found.
ch-admin-api/src/main/java/com/wwdz/ch/admin/config/ShiroConfig.java
View file @
617874e3
...
@@ -127,7 +127,7 @@ public class ShiroConfig {
...
@@ -127,7 +127,7 @@ public class ShiroConfig {
filterChainDefinitionMap
.
put
(
"/admin/dashboard/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/dashboard/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/specialPerformance/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/specialPerformance/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/sysFinance/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/sysFinance/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/groupPurchase/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/invitationCode/**"
,
"anon"
);
filterChainDefinitionMap
.
put
(
"/admin/invitationCode/**"
,
"anon"
);
// filterChainDefinitionMap.put("/admin/**", "anon");
// filterChainDefinitionMap.put("/admin/**", "anon");
...
...
ch-admin-api/src/main/java/com/wwdz/ch/admin/controller/SysGroupPurchaseController.java
0 → 100644
View file @
617874e3
package
com.wwdz.ch.admin.controller
;
import
com.alibaba.fastjson.JSON
;
import
com.wwdz.ch.admin.service.SysGroupPurchaseService
;
import
com.wwdz.ch.core.consts.ResultCode
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SupplierItemRequestDto
;
import
com.xxdxxs.utils.StringUtils
;
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
(
"/admin/groupPurchase"
)
public
class
SysGroupPurchaseController
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SysGroupPurchaseController
.
class
);
@Autowired
SysGroupPurchaseService
sysGroupPurchaseService
;
@ApiOperation
(
value
=
"藏品转团购"
)
@PostMapping
(
"/collectorItemConvertToGroupPurchase"
)
public
Result
collectorItemConvertToAuction
(
@RequestBody
SupplierItemRequestDto
dto
)
{
logger
.
info
(
"藏品转团购,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(
StringUtils
.
isEmpty
(
dto
.
getItemIdsStr
()))
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
return
sysGroupPurchaseService
.
collectorItemConvertToGroupPurchase
(
dto
);
}
}
ch-admin-api/src/main/java/com/wwdz/ch/admin/controller/SysSupplierItemController.java
View file @
617874e3
...
@@ -72,10 +72,10 @@ public class SysSupplierItemController {
...
@@ -72,10 +72,10 @@ public class SysSupplierItemController {
return
sysSupplierItemService
.
findAuctionList
(
dto
);
return
sysSupplierItemService
.
findAuctionList
(
dto
);
}
}
@ApiOperation
(
value
=
"添加专场商品查询拍卖品列表"
)
@ApiOperation
(
value
=
"添加专场商品
-
查询拍卖品列表"
)
@PostMapping
(
"/findSupplierItemForSpecialPerformance"
)
@PostMapping
(
"/findSupplierItemForSpecialPerformance"
)
public
Result
findSupplierItemForSpecialPerformance
(
@RequestBody
SupplierItemRequestDto
dto
)
{
public
Result
findSupplierItemForSpecialPerformance
(
@RequestBody
SupplierItemRequestDto
dto
)
{
logger
.
info
(
"添加专场商品查询拍卖品列表,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
logger
.
info
(
"添加专场商品
-
查询拍卖品列表,请求参数:{}"
,
JSON
.
toJSONString
(
dto
));
if
(
dto
.
getSpecialPerformanceId
()
==
null
)
{
if
(
dto
.
getSpecialPerformanceId
()
==
null
)
{
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
return
Result
.
failed
(
ResultCode
.
PARAM_ERROR
);
}
}
...
...
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysGroupPurchaseServiceImpl.java
View file @
617874e3
...
@@ -22,9 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -22,9 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
org.springframework.transaction.interceptor.TransactionAspectSupport
;
import
java.time.Duration
;
import
java.time.Instant
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
...
...
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
View file @
617874e3
...
@@ -182,12 +182,20 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
...
@@ -182,12 +182,20 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
if
(
supplierItem
.
getBuyLimitNum
()
==
-
1
)
{
if
(
supplierItem
.
getBuyLimitNum
()
==
-
1
)
{
supplierItemVo
.
setIsLimitBuy
(
false
);
supplierItemVo
.
setIsLimitBuy
(
false
);
}
}
if
(
supplierItem
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
AUCTION
.
getCode
())
{
AuctionConfig
auctionConfig
=
auctionConfigDao
.
findByItemId
(
supplierItem
.
getId
());
AuctionConfig
auctionConfig
=
auctionConfigDao
.
findByItemId
(
supplierItem
.
getId
());
if
(
auctionConfig
!=
null
&&
auctionConfig
.
getIsValid
())
{
if
(
auctionConfig
!=
null
&&
auctionConfig
.
getIsValid
())
{
supplierItemVo
.
setEditAble
(
false
);
supplierItemVo
.
setEditAble
(
false
);
}
else
{
}
else
{
supplierItemVo
.
setEditAble
(
true
);
supplierItemVo
.
setEditAble
(
true
);
}
}
}
else
if
(
supplierItem
.
getType
()
==
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
GroupPurchaseConfig
groupPurchaseConfig
=
groupPurchaseConfigDao
.
findByItemId
(
supplierItem
.
getId
());
supplierItemVo
.
setSalePrice
(
PriceUtil
.
convertPriceFenToYuan
(
groupPurchaseConfig
.
getPrice
()));
supplierItemVo
.
setDeposit
(
PriceUtil
.
convertPriceFenToYuan
(
groupPurchaseConfig
.
getDeposit
()));
supplierItemVo
.
setGroupPurchaseStartTime
(
DateUtils
.
toString
(
groupPurchaseConfig
.
getStartTime
()));
supplierItemVo
.
setGroupPurchaseEndTime
(
DateUtils
.
toString
(
groupPurchaseConfig
.
getEndTime
()));
}
supplierItemVos
.
add
(
supplierItemVo
);
supplierItemVos
.
add
(
supplierItemVo
);
//售出数量
//售出数量
Long
selledNum
=
distributionOrderDao
.
countSelledNum
(
supplierItem
.
getId
());
Long
selledNum
=
distributionOrderDao
.
countSelledNum
(
supplierItem
.
getId
());
...
@@ -430,7 +438,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
...
@@ -430,7 +438,7 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
}
}
SupplierItem
supplierItem
=
new
SupplierItem
();
SupplierItem
supplierItem
=
new
SupplierItem
();
EntityMapper
.
copyAttribute
(
dto
,
supplierItem
);
EntityMapper
.
copyAttribute
(
dto
,
supplierItem
);
supplierItem
.
setRebate
(
new
BigDecimal
(
dto
.
getRebate
()));
supplierItem
.
setRebate
(
new
BigDecimal
(
dto
.
getRebate
()
==
null
?
"3"
:
dto
.
getRebate
()
));
supplierItem
.
setDistributionPrice
(
PriceUtil
.
convertPriceFromStr
(
dto
.
getDistributionPrice
()));
supplierItem
.
setDistributionPrice
(
PriceUtil
.
convertPriceFromStr
(
dto
.
getDistributionPrice
()));
if
(
StringUtils
.
hasLength
(
dto
.
getSupplyPrice
()))
{
if
(
StringUtils
.
hasLength
(
dto
.
getSupplyPrice
()))
{
supplierItem
.
setSupplyPrice
(
PriceUtil
.
convertPriceFromStr
(
dto
.
getSupplyPrice
()));
supplierItem
.
setSupplyPrice
(
PriceUtil
.
convertPriceFromStr
(
dto
.
getSupplyPrice
()));
...
...
ch-core/src/main/java/com/wwdz/ch/core/consts/CommConsts.java
View file @
617874e3
...
@@ -94,6 +94,11 @@ public interface CommConsts {
...
@@ -94,6 +94,11 @@ public interface CommConsts {
*/
*/
public
final
static
String
GROUPPURCHASE_DEPOSIT_PREFIX
=
"GP"
;
public
final
static
String
GROUPPURCHASE_DEPOSIT_PREFIX
=
"GP"
;
/**
* 系统订单号
*/
public
final
static
String
DISTRIBUTION_ORDER_PREFIX
=
"DA"
;
/**
/**
* 平台收货地址
* 平台收货地址
*/
*/
...
@@ -110,6 +115,13 @@ public interface CommConsts {
...
@@ -110,6 +115,13 @@ public interface CommConsts {
*/
*/
public
final
static
String
ITEM_OF_SPECIAL_PERFORMANCE_URL
=
"/pages/saleAuctionDetail/index"
;
public
final
static
String
ITEM_OF_SPECIAL_PERFORMANCE_URL
=
"/pages/saleAuctionDetail/index"
;
/**
* 消息跳转团购商品详情
*/
public
final
static
String
ITEM_OF_GROUPPURCHASE_URL
=
"/pages/saleAuctionDetail/index"
;
/**
/**
* 微信手续费,按照最高的1%计算
* 微信手续费,按照最高的1%计算
*/
*/
...
...
ch-core/src/main/java/com/wwdz/ch/core/consts/DisposableSubscribeRecordEnum.java
View file @
617874e3
...
@@ -12,7 +12,8 @@ public class DisposableSubscribeRecordEnum {
...
@@ -12,7 +12,8 @@ public class DisposableSubscribeRecordEnum {
PRE_START
(
1
,
"AzJht7hkLJHSCN7trT3zsV3TaOE0Xk8faqm2sTf3Pm4"
,
"拍卖开始通知"
),
PRE_START
(
1
,
"AzJht7hkLJHSCN7trT3zsV3TaOE0Xk8faqm2sTf3Pm4"
,
"拍卖开始通知"
),
PRE_END
(
2
,
"G-GwA4yn63RJ6IysFotHB4anctNqbOy5qrz_R6vBJkM"
,
"即将结束"
),
PRE_END
(
2
,
"G-GwA4yn63RJ6IysFotHB4anctNqbOy5qrz_R6vBJkM"
,
"即将结束"
),
ITEM_PRE_END
(
3
,
"XhEvunfXdO0j5JSpCVKKYlLuQbF7Yux8QfVEz5_L9xQ"
,
"拍品即将结束"
),
ITEM_PRE_END
(
3
,
"XhEvunfXdO0j5JSpCVKKYlLuQbF7Yux8QfVEz5_L9xQ"
,
"拍品即将结束"
),
GROUPPURASE_SURPLUS_AMOUNT_PAY
(
4
,
"e6-VlkWBST_sN3PQ2Yx3iuPkxQL5Hf6cfMia3MDNinc"
,
"尾款支付提醒"
),
GROUPPURASE_CLOSER_TO_SUCCESS
(
5
,
"ekZ3s3OL6ZlWnORvvMOONfWNZsbm6DTlMNyv_2j2ijk"
,
"拼团待成团提醒"
),
;
;
private
int
type
;
private
int
type
;
...
...
ch-core/src/main/java/com/wwdz/ch/core/entity/GroupPurchaseNoticeMsg.java
0 → 100644
View file @
617874e3
package
com.wwdz.ch.core.entity
;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
GroupPurchaseNoticeMsg
implements
Entity
{
/**
* 团购定金支付id
*/
private
String
depositPayId
;
/**
* 关联的预售订单id
*/
private
String
distributionOrderId
;
/**
* 预支付id
*/
private
String
prepayId
;
/**
* 微信支付订单号
*/
private
String
transactionId
;
/**
* 商品id
*/
private
Long
itemId
;
private
String
itemName
;
/**
* 商品数量
*/
private
Integer
itemNum
;
/**
* 用户id
*/
private
Long
userId
;
/**
* 用户openid
*/
private
String
openId
;
/**
* 订单金额
*/
private
String
orderAmount
;
/**
* 定金金额
*/
private
String
deposit
;
/**
* 尾款金额
*/
private
String
surplusAmount
;
/**
* 支付结束时间
*/
private
String
payEndTime
;
/**
* 要求拼团人数
*/
private
Integer
requireNum
;
/**
* 已拼团人数
*/
private
Integer
peopleNum
;
/**
* 剩余拼团人数
*/
private
Integer
surplusNum
;
/**
* 拼团成功价格
*/
private
String
groupPuraseAmount
;
/**
* 拼团剩余时间
*/
private
String
surplusTime
;
}
ch-core/src/main/java/com/wwdz/ch/core/entity/SupplierItemVo.java
View file @
617874e3
...
@@ -356,4 +356,14 @@ public class SupplierItemVo implements Entity {
...
@@ -356,4 +356,14 @@ public class SupplierItemVo implements Entity {
*/
*/
private
Boolean
isSubscribed
;
private
Boolean
isSubscribed
;
/**
* 团购开始时间
*/
private
Date
startTime
;
/**
* 团购结束时间
*/
private
Date
endTime
;
}
}
ch-core/src/main/java/com/wwdz/ch/core/impl/SendMsgServiceImpl.java
View file @
617874e3
...
@@ -747,6 +747,100 @@ public class SendMsgServiceImpl implements SendMsgService {
...
@@ -747,6 +747,100 @@ public class SendMsgServiceImpl implements SendMsgService {
return
Result
.
success
();
return
Result
.
success
();
}
}
@Override
public
Result
sendGroupPurchaseSurplusAmountPayMsg
(
GroupPurchaseNoticeMsg
groupPurchaseNoticeMsg
)
{
String
openId
=
groupPurchaseNoticeMsg
.
getOpenId
();
String
token
=
wxAppletApi
.
getAppletAccessToken
();
String
url
=
SEND_SUBSCRIBE_MSG_URL
+
"?access_token="
+
token
;
OkHttpUtil
okHttpUtil
=
OkHttpUtil
.
builder
().
url
(
url
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"touser"
,
openId
);
map
.
put
(
"template_id"
,
DisposableSubscribeRecordEnum
.
TypeEnum
.
GROUPPURASE_SURPLUS_AMOUNT_PAY
.
getTemplateId
());
Map
<
String
,
Object
>
miniprogramMap
=
new
HashMap
<>();
miniprogramMap
.
put
(
"appid"
,
APPLET_APPID
);
StringBuffer
stringBuffer
=
new
StringBuffer
(
CommConsts
.
ITEM_OF_GROUPPURCHASE_URL
);
stringBuffer
.
append
(
"?itemId="
+
groupPurchaseNoticeMsg
.
getItemId
());
map
.
put
(
"page"
,
stringBuffer
.
toString
());
Map
<
String
,
Object
>
paramMap
=
new
LinkedHashMap
<>();
paramMap
.
put
(
"thing1"
,
new
HashMap
()
{{
put
(
"value"
,
groupPurchaseNoticeMsg
.
getItemName
());
}});
paramMap
.
put
(
"amount11"
,
new
HashMap
()
{{
put
(
"value"
,
groupPurchaseNoticeMsg
.
getOrderAmount
());
}});
paramMap
.
put
(
"amount13"
,
new
HashMap
()
{{
put
(
"value"
,
groupPurchaseNoticeMsg
.
getDeposit
());
}});
paramMap
.
put
(
"amount12"
,
new
HashMap
()
{{
put
(
"value"
,
groupPurchaseNoticeMsg
.
getSurplusAmount
());
}});
paramMap
.
put
(
"date7"
,
new
HashMap
()
{{
put
(
"value"
,
groupPurchaseNoticeMsg
.
getPayEndTime
());
}});
map
.
put
(
"data"
,
paramMap
);
logger
.
info
(
"============ 团购尾款支付提醒订阅消息内容 : {}"
,
JsonUtils
.
fromMap
(
map
));
okHttpUtil
.
addParams
(
map
);
okHttpUtil
.
post
(
true
);
String
responseStr
=
okHttpUtil
.
async
();
logger
.
info
(
"openid : {}, 发送团购尾款支付提醒订阅消息 response :{}"
,
openId
,
responseStr
);
String
errorCode
=
JsonUtils
.
getValueByPath
(
responseStr
,
"errcode"
);
String
errmsg
=
JsonUtils
.
getValueByPath
(
responseStr
,
"errmsg"
);
if
(!
"0"
.
equals
(
errorCode
))
{
logger
.
error
(
"openid : {}, 发送团购尾款支付提醒订阅消息, errorCode : {}, errmsg : {} "
,
openId
,
errorCode
,
errmsg
);
return
Result
.
failed
(
responseStr
);
}
logger
.
info
(
"============= 发送团购尾款支付提醒订阅消息成功 ==========="
);
return
Result
.
success
();
}
@Override
public
Result
sendGroupPurchasecloserToSuccessMsg
(
GroupPurchaseNoticeMsg
groupPurchaseNoticeMsg
)
{
String
openId
=
groupPurchaseNoticeMsg
.
getOpenId
();
String
token
=
wxAppletApi
.
getAppletAccessToken
();
String
url
=
SEND_SUBSCRIBE_MSG_URL
+
"?access_token="
+
token
;
OkHttpUtil
okHttpUtil
=
OkHttpUtil
.
builder
().
url
(
url
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"touser"
,
openId
);
map
.
put
(
"template_id"
,
DisposableSubscribeRecordEnum
.
TypeEnum
.
GROUPPURASE_CLOSER_TO_SUCCESS
.
getTemplateId
());
Map
<
String
,
Object
>
miniprogramMap
=
new
HashMap
<>();
miniprogramMap
.
put
(
"appid"
,
APPLET_APPID
);
StringBuffer
stringBuffer
=
new
StringBuffer
(
CommConsts
.
ITEM_OF_GROUPPURCHASE_URL
);
stringBuffer
.
append
(
"?itemId="
+
groupPurchaseNoticeMsg
.
getItemId
());
map
.
put
(
"page"
,
stringBuffer
.
toString
());
Map
<
String
,
Object
>
paramMap
=
new
LinkedHashMap
<>();
paramMap
.
put
(
"thing1"
,
new
HashMap
()
{{
put
(
"value"
,
groupPurchaseNoticeMsg
.
getItemName
());
}});
paramMap
.
put
(
"number5"
,
new
HashMap
()
{{
put
(
"value"
,
groupPurchaseNoticeMsg
.
getPeopleNum
());
}});
paramMap
.
put
(
"number2"
,
new
HashMap
()
{{
put
(
"value"
,
groupPurchaseNoticeMsg
.
getSurplusNum
());
}});
paramMap
.
put
(
"amount4"
,
new
HashMap
()
{{
put
(
"value"
,
groupPurchaseNoticeMsg
.
getGroupPuraseAmount
());
}});
paramMap
.
put
(
"thing8"
,
new
HashMap
()
{{
put
(
"value"
,
groupPurchaseNoticeMsg
.
getSurplusTime
());
}});
map
.
put
(
"data"
,
paramMap
);
logger
.
info
(
"============ 拼团待成团提醒订阅消息内容 : {}"
,
JsonUtils
.
fromMap
(
map
));
okHttpUtil
.
addParams
(
map
);
okHttpUtil
.
post
(
true
);
String
responseStr
=
okHttpUtil
.
async
();
logger
.
info
(
"openid : {}, 发送拼团待成团提醒订阅消息 response :{}"
,
openId
,
responseStr
);
String
errorCode
=
JsonUtils
.
getValueByPath
(
responseStr
,
"errcode"
);
String
errmsg
=
JsonUtils
.
getValueByPath
(
responseStr
,
"errmsg"
);
if
(!
"0"
.
equals
(
errorCode
))
{
logger
.
error
(
"openid : {}, 发送拼团待成团提醒订阅消息, errorCode : {}, errmsg : {} "
,
openId
,
errorCode
,
errmsg
);
return
Result
.
failed
(
responseStr
);
}
logger
.
info
(
"============= 发送拼团待成团提醒订阅消息成功 ==========="
);
return
Result
.
success
();
}
@Override
@Override
public
Result
followNoticeMsg
(
FollowFansMsg
followFansMsg
)
{
public
Result
followNoticeMsg
(
FollowFansMsg
followFansMsg
)
{
try
{
try
{
...
...
ch-core/src/main/java/com/wwdz/ch/core/service/SendMsgService.java
View file @
617874e3
...
@@ -94,5 +94,20 @@ public interface SendMsgService {
...
@@ -94,5 +94,20 @@ public interface SendMsgService {
*/
*/
Result
sendItemOfSpecialPerformanceEndMsg
(
AuctionOfferNoticeMsg
auctionOfferNoticeMsg
);
Result
sendItemOfSpecialPerformanceEndMsg
(
AuctionOfferNoticeMsg
auctionOfferNoticeMsg
);
/**
* 拼团尾款支付提醒
* 拼团结束后24小时为截止支付时间
* @param groupPurchaseNoticeMsg
* @return
*/
Result
sendGroupPurchaseSurplusAmountPayMsg
(
GroupPurchaseNoticeMsg
groupPurchaseNoticeMsg
);
/**
* 拼团待成团提醒
* 结束前2小时发送
* @param groupPurchaseNoticeMsg
* @return
*/
Result
sendGroupPurchasecloserToSuccessMsg
(
GroupPurchaseNoticeMsg
groupPurchaseNoticeMsg
);
}
}
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/GroupPurchaseConfigDao.java
View file @
617874e3
package
com.wwdz.ch.db.dao.distribution
;
package
com.wwdz.ch.db.dao.distribution
;
import
com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig
;
import
com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto
;
import
java.util.List
;
public
interface
GroupPurchaseConfigDao
{
public
interface
GroupPurchaseConfigDao
{
...
@@ -45,4 +48,12 @@ public interface GroupPurchaseConfigDao {
...
@@ -45,4 +48,12 @@ public interface GroupPurchaseConfigDao {
* @return
* @return
*/
*/
GroupPurchaseConfig
findByItemId
(
long
itemId
);
GroupPurchaseConfig
findByItemId
(
long
itemId
);
/**
* 查询团购商品列表
* @param itemId
* @return
*/
List
<
GroupPurchaseConfig
>
findList
(
GroupPurchaseConfigRequestDto
dto
);
}
}
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/GroupPurchaseRecordDao.java
View file @
617874e3
...
@@ -18,8 +18,12 @@ public interface GroupPurchaseRecordDao {
...
@@ -18,8 +18,12 @@ public interface GroupPurchaseRecordDao {
GroupPurchaseRecord
findByPayId
(
String
dispositPayId
);
GroupPurchaseRecord
findByPayId
(
String
dispositPayId
);
GroupPurchaseRecord
findByOrderId
(
String
distributionOrderId
);
int
updateByPayId
(
GroupPurchaseRecord
groupPurchaseRecord
);
int
updateByPayId
(
GroupPurchaseRecord
groupPurchaseRecord
);
int
updateByPrimaryKey
(
GroupPurchaseRecord
groupPurchaseRecord
);
/**
/**
* 统计当前商品已经团购的件数
* 统计当前商品已经团购的件数
* @param dto
* @param dto
...
...
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/GroupPurchaseConfigRequestDto.java
0 → 100644
View file @
617874e3
package
com.wwdz.ch.db.dto.request.distribution
;
import
com.wwdz.ch.db.dto.request.BaseRequestDto
;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
import
java.util.Date
;
@Data
public
class
GroupPurchaseConfigRequestDto
extends
BaseRequestDto
implements
Entity
{
/**
* id
*/
private
Integer
id
;
private
Long
userId
;
/**
* 商品id
*/
private
Long
itemId
;
/**
* 商品所属人id
*/
private
Long
creatorId
;
/**
* 团购开始时间
*/
private
Date
startTime
;
/**
* 团购结束时间
*/
private
Date
endTime
;
/**
* 售价
*/
private
Long
price
;
/**
* 供货价
*/
private
Long
supplyPrice
;
/**
* 定金
*/
private
Long
deposit
;
/**
* 创建时间
*/
private
Date
createTime
;
/**
* 更新时间
*/
private
Date
updateTime
;
/**
* 状态
*/
private
Integer
state
;
/**
* 是否有效
*/
private
Boolean
isValid
;
/**
* 是否成交
*/
private
Boolean
isDeal
;
}
ch-dao/src/main/java/com/wwdz/ch/db/dto/request/distribution/SupplierItemRequestDto.java
View file @
617874e3
...
@@ -170,8 +170,6 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
...
@@ -170,8 +170,6 @@ public class SupplierItemRequestDto extends BaseRequestDto implements Entity {
*/
*/
private
String
auctionEndTime
;
private
String
auctionEndTime
;
/**
/**
* 团购开始时间
* 团购开始时间
*/
*/
...
...
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/GroupPurchaseConfigDaoImpl.java
View file @
617874e3
package
com.wwdz.ch.db.impl.distribution
;
package
com.wwdz.ch.db.impl.distribution
;
import
com.github.pagehelper.PageHelper
;
import
com.wwdz.ch.db.dao.distribution.GroupPurchaseConfigDao
;
import
com.wwdz.ch.db.dao.distribution.GroupPurchaseConfigDao
;
import
com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig
;
import
com.wwdz.ch.db.domain.distribution.GroupPurchaseConfig
;
import
com.wwdz.ch.db.domain.distribution.GroupPurchaseConfigExample
;
import
com.wwdz.ch.db.domain.distribution.GroupPurchaseConfigExample
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseConfigRequestDto
;
import
com.wwdz.ch.db.mapper.distribution.GroupPurchaseConfigMapper
;
import
com.wwdz.ch.db.mapper.distribution.GroupPurchaseConfigMapper
;
import
com.xxdxxs.db.component.JdbcHelper
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
@Repository
@Repository
public
class
GroupPurchaseConfigDaoImpl
implements
GroupPurchaseConfigDao
{
public
class
GroupPurchaseConfigDaoImpl
implements
GroupPurchaseConfigDao
{
...
@@ -53,4 +57,15 @@ public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao {
...
@@ -53,4 +57,15 @@ public class GroupPurchaseConfigDaoImpl implements GroupPurchaseConfigDao {
criteria
.
andItemIdEqualTo
(
itemId
);
criteria
.
andItemIdEqualTo
(
itemId
);
return
groupPurchaseConfigMapper
.
selectOneByExample
(
example
);
return
groupPurchaseConfigMapper
.
selectOneByExample
(
example
);
}
}
@Override
public
List
<
GroupPurchaseConfig
>
findList
(
GroupPurchaseConfigRequestDto
dto
)
{
GroupPurchaseConfigExample
example
=
new
GroupPurchaseConfigExample
();
GroupPurchaseConfigExample
.
Criteria
criteria
=
example
.
createCriteria
();
JdbcHelper
.
ifPresent
(
dto
.
getItemId
(),
criteria:
:
andItemIdEqualTo
);
JdbcHelper
.
ifPresent
(
dto
.
getState
(),
criteria:
:
andStateEqualTo
);
example
.
setOrderByClause
(
" create_time desc"
);
PageHelper
.
startPage
(
dto
.
getPage
(),
dto
.
getLimit
());
return
groupPurchaseConfigMapper
.
selectByExample
(
example
);
}
}
}
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/GroupPurchaseRecordDaoImpl.java
View file @
617874e3
...
@@ -9,6 +9,7 @@ import com.xxdxxs.db.component.JdbcHelper;
...
@@ -9,6 +9,7 @@ import com.xxdxxs.db.component.JdbcHelper;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
@Repository
@Repository
...
@@ -31,6 +32,14 @@ public class GroupPurchaseRecordDaoImpl implements GroupPurchaseRecordDao {
...
@@ -31,6 +32,14 @@ public class GroupPurchaseRecordDaoImpl implements GroupPurchaseRecordDao {
return
groupPurchaseRecordMapper
.
selectOneByExample
(
example
);
return
groupPurchaseRecordMapper
.
selectOneByExample
(
example
);
}
}
@Override
public
GroupPurchaseRecord
findByOrderId
(
String
distributionOrderId
)
{
GroupPurchaseRecordExample
example
=
new
GroupPurchaseRecordExample
();
GroupPurchaseRecordExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andDistributionOrderIdEqualTo
(
distributionOrderId
);
return
groupPurchaseRecordMapper
.
selectOneByExample
(
example
);
}
@Override
@Override
public
int
updateByPayId
(
GroupPurchaseRecord
groupPurchaseRecord
)
{
public
int
updateByPayId
(
GroupPurchaseRecord
groupPurchaseRecord
)
{
GroupPurchaseRecordExample
example
=
new
GroupPurchaseRecordExample
();
GroupPurchaseRecordExample
example
=
new
GroupPurchaseRecordExample
();
...
@@ -39,6 +48,11 @@ public class GroupPurchaseRecordDaoImpl implements GroupPurchaseRecordDao {
...
@@ -39,6 +48,11 @@ public class GroupPurchaseRecordDaoImpl implements GroupPurchaseRecordDao {
return
groupPurchaseRecordMapper
.
updateByExampleSelective
(
groupPurchaseRecord
,
example
);
return
groupPurchaseRecordMapper
.
updateByExampleSelective
(
groupPurchaseRecord
,
example
);
}
}
@Override
public
int
updateByPrimaryKey
(
GroupPurchaseRecord
groupPurchaseRecord
)
{
groupPurchaseRecord
.
setUpdateTime
(
new
Date
());
return
groupPurchaseRecordMapper
.
updateByPrimaryKeySelective
(
groupPurchaseRecord
);
}
@Override
@Override
public
long
summaryItemNum
(
GroupPurchaseRecordRequestDto
dto
)
{
public
long
summaryItemNum
(
GroupPurchaseRecordRequestDto
dto
)
{
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/api/WxPayCallbackController.java
View file @
617874e3
...
@@ -594,13 +594,14 @@ public class WxPayCallbackController {
...
@@ -594,13 +594,14 @@ public class WxPayCallbackController {
redisUtils
.
set
(
refundId
,
refundId
);
redisUtils
.
set
(
refundId
,
refundId
);
//退款成功
//退款成功
if
(
refundNotification
.
getRefundStatus
().
equals
(
Status
.
SUCCESS
)){
if
(
refundNotification
.
getRefundStatus
().
equals
(
Status
.
SUCCESS
)){
String
successTime
=
refundNotification
.
getSuccessTime
();
//查询系统中订单现在的状态,避免重复更新
//查询系统中订单现在的状态,避免重复更新
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
distributionOrderId
);
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
distributionOrderId
);
if
(
distributionOrderId
.
startsWith
(
CommConsts
.
DISTRIBUTION_ORDER_PREFIX
))
{
//只有在订单状态为退款处理中,才进行退款成功的状态修改
//只有在订单状态为退款处理中,才进行退款成功的状态修改
if
(
distributionOrder
.
getState
()
==
DistributionEnum
.
DistributionOrderStateEnum
.
REFUNDING
.
getCode
())
{
if
(
distributionOrder
.
getState
()
==
DistributionEnum
.
DistributionOrderStateEnum
.
REFUNDING
.
getCode
())
{
//订单改为已取消的状态
//订单改为已取消的状态
distributionOrderDao
.
updateState
(
distributionOrderId
,
DistributionEnum
.
DistributionOrderStateEnum
.
CANCEL
.
getCode
());
distributionOrderDao
.
updateState
(
distributionOrderId
,
DistributionEnum
.
DistributionOrderStateEnum
.
CANCEL
.
getCode
());
String
successTime
=
refundNotification
.
getSuccessTime
();
//退款单状态改为成功
//退款单状态改为成功
RefundOrder
refundOrder
=
new
RefundOrder
();
RefundOrder
refundOrder
=
new
RefundOrder
();
refundOrder
.
setRefundId
(
refundId
);
refundOrder
.
setRefundId
(
refundId
);
...
@@ -617,6 +618,18 @@ public class WxPayCallbackController {
...
@@ -617,6 +618,18 @@ public class WxPayCallbackController {
returnMap
.
put
(
"message"
,
"成功"
);
returnMap
.
put
(
"message"
,
"成功"
);
return
JsonUtils
.
from
(
returnMap
);
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
{
}
else
{
//退款单状态改为失败
//退款单状态改为失败
RefundOrder
refundOrder
=
new
RefundOrder
();
RefundOrder
refundOrder
=
new
RefundOrder
();
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/vo/distribution/GroupPurchaseItemVo.java
0 → 100644
View file @
617874e3
package
com.wwdz.ch.wx.entity.vo.distribution
;
import
com.xxdxxs.entity.Entity
;
import
lombok.Data
;
import
java.util.Map
;
@Data
public
class
GroupPurchaseItemVo
implements
Entity
{
/**
* 商品id
*/
private
Long
itemId
;
/**
* 商品名称
*/
private
String
itemName
;
/**
* 用于列表展示的图片对象
*/
private
Map
<
String
,
Object
>
homePageImage
;
/**
* 商品详细介绍,是富文本格式
*/
private
String
description
;
/**
* 头像
*/
private
String
creatorAvatar
;
/**
* 简介
*/
private
String
creatorProfile
;
private
Long
creatorId
;
private
String
creatorName
;
/**
* 是否订阅了待成团消息
*/
private
Boolean
isSubscribedOfCloseToSuccess
;
/**
* 是否订阅了尾款支付提醒消息
*/
private
Boolean
isSubscribedOfPay
;
/**
* 折扣相关信息、进度
*/
private
Map
<
String
,
Object
>
discountInfo
;
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/DistributionOrderServiceImpl.java
View file @
617874e3
...
@@ -56,7 +56,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -56,7 +56,7 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
DistributionOrderServiceImpl
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
DistributionOrderServiceImpl
.
class
);
private
final
static
String
DISTRIBUTION_ORDER_PREFIX
=
"DA"
;
private
final
static
String
DISTRIBUTION_ORDER_PREFIX
=
CommConsts
.
DISTRIBUTION_ORDER_PREFIX
;
private
final
static
String
SECRET
=
"117eb48AX0864490fbe4d1ef081B9cc25"
;
private
final
static
String
SECRET
=
"117eb48AX0864490fbe4d1ef081B9cc25"
;
...
@@ -1116,8 +1116,11 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -1116,8 +1116,11 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
distributionOrderDetailVo
.
setTypeName
(
DistributionEnum
.
DistributionTypeEnum
.
getNameByCode
(
distributionOrder
.
getType
()));
distributionOrderDetailVo
.
setTypeName
(
DistributionEnum
.
DistributionTypeEnum
.
getNameByCode
(
distributionOrder
.
getType
()));
DistributorProfit
distributorProfit
=
distributorProfitDao
.
findByIdOfDistributor
(
dto
.
getDistributionOrderId
(),
distributionOrder
.
getSellerId
());
DistributorProfit
distributorProfit
=
distributorProfitDao
.
findByIdOfDistributor
(
dto
.
getDistributionOrderId
(),
distributionOrder
.
getSellerId
());
if
(
distributorProfit
!=
null
)
{
if
(
distributorProfit
!=
null
)
{
if
(
distributionOrder
.
getType
()
!=
DistributionEnum
.
DistributionTypeEnum
.
AUCTION
.
getCode
()
&&
distributionOrder
.
getType
()
!=
DistributionEnum
.
DistributionTypeEnum
.
GROUP_PURCHASE
.
getCode
())
{
distributionOrderDetailVo
.
setChannelCost
(
PriceUtil
.
convertPriceFenToYuan
(
distributorProfit
.
getChannelCost
()));
distributionOrderDetailVo
.
setChannelCost
(
PriceUtil
.
convertPriceFenToYuan
(
distributorProfit
.
getChannelCost
()));
distributionOrderDetailVo
.
setIntroduceCost
(
PriceUtil
.
convertPriceFenToYuan
(
distributorProfit
.
getIntroduceCost
()));
distributionOrderDetailVo
.
setIntroduceCost
(
PriceUtil
.
convertPriceFenToYuan
(
distributorProfit
.
getIntroduceCost
()));
}
FollowFansRecordRequestDto
followFansRecordRequestDto
=
new
FollowFansRecordRequestDto
();
FollowFansRecordRequestDto
followFansRecordRequestDto
=
new
FollowFansRecordRequestDto
();
followFansRecordRequestDto
.
setFollowerId
(
supplierItem
.
getCreatorId
());
followFansRecordRequestDto
.
setFollowerId
(
supplierItem
.
getCreatorId
());
followFansRecordRequestDto
.
setFansId
(
distributionOrder
.
getBuyerId
());
followFansRecordRequestDto
.
setFansId
(
distributionOrder
.
getBuyerId
());
...
@@ -1359,9 +1362,5 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
...
@@ -1359,9 +1362,5 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
return
Result
.
failed
();
return
Result
.
failed
();
}
}
public
static
void
main
(
String
[]
args
)
{
BigDecimal
bigDecimal
=
new
BigDecimal
(
"15.00"
);
bigDecimal
=
PriceUtil
.
convertToDivide
(
bigDecimal
);
System
.
out
.
println
(
bigDecimal
.
doubleValue
());
}
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/GroupPurchaseServiceImpl.java
View file @
617874e3
package
com.wwdz.ch.wx.impl.distribution
;
package
com.wwdz.ch.wx.impl.distribution
;
import
com.wechat.pay.java.service.refund.model.Refund
;
import
com.wechat.pay.java.service.refund.model.Status
;
import
com.wwdz.ch.core.api.wxpay.WxPayServiceApi
;
import
com.wwdz.ch.core.api.wxpay.WxPayServiceApi
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.*
;
import
com.wwdz.ch.core.consts.DistributionEnum
;
import
com.wwdz.ch.core.entity.wxPay.DistributionOrderRefundRequestDto
;
import
com.wwdz.ch.core.consts.GroupPurchaseEnum
;
import
com.wwdz.ch.core.consts.ResultCode
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.core.util.CacheUtil
;
import
com.wwdz.ch.core.util.*
;
import
com.wwdz.ch.core.util.IdUtils
;
import
com.wwdz.ch.db.dao.DisposableSubscribeRecordDao
;
import
com.wwdz.ch.core.util.PriceUtil
;
import
com.wwdz.ch.core.util.StringUtil
;
import
com.wwdz.ch.db.dao.distribution.*
;
import
com.wwdz.ch.db.dao.distribution.*
;
import
com.wwdz.ch.db.domain.User
;
import
com.wwdz.ch.db.domain.distribution.*
;
import
com.wwdz.ch.db.domain.distribution.*
;
import
com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.DistributionOrderRequestDto
;
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.GroupPurchaseRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.SpecialPerformanceRequestDto
;
import
com.wwdz.ch.wx.entity.vo.distribution.GroupPurchaseItemVo
;
import
com.wwdz.ch.wx.service.distribution.DistributorProfitService
;
import
com.wwdz.ch.wx.service.distribution.DistributorProfitService
;
import
com.wwdz.ch.wx.service.distribution.GroupPurchaseService
;
import
com.wwdz.ch.wx.service.distribution.GroupPurchaseService
;
import
jdk.internal.org.objectweb.asm.Handle
;
import
jdk.internal.org.objectweb.asm.Handle
;
import
org.redisson.api.RLock
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -29,6 +32,7 @@ import org.springframework.util.StringUtils;
...
@@ -29,6 +32,7 @@ import org.springframework.util.StringUtils;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
@Service
@Service
public
class
GroupPurchaseServiceImpl
implements
GroupPurchaseService
{
public
class
GroupPurchaseServiceImpl
implements
GroupPurchaseService
{
...
@@ -62,6 +66,83 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
...
@@ -62,6 +66,83 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
@Autowired
@Autowired
DistributorProfitDao
distributorProfitDao
;
DistributorProfitDao
distributorProfitDao
;
@Autowired
RefundOrderDao
refundOrderDao
;
@Autowired
DisposableSubscribeRecordDao
disposableSubscribeRecordDao
;
@Override
public
Result
findList
(
GroupPurchaseConfigRequestDto
dto
)
{
try
{
Date
now
=
new
Date
();
//检测团购商品的开始时间,修改状态
dto
.
setState
(
GroupPurchaseEnum
.
ItemStateEnum
.
NOT_START
.
getCode
());
List
<
GroupPurchaseConfig
>
groupPurchaseConfigList
=
groupPurchaseConfigDao
.
findList
(
dto
);
for
(
GroupPurchaseConfig
groupPurchaseConfig
:
groupPurchaseConfigList
)
{
if
(
now
.
after
(
groupPurchaseConfig
.
getStartTime
())
&&
groupPurchaseConfig
.
getEndTime
().
after
(
now
))
{
groupPurchaseConfigDao
.
updateState
(
groupPurchaseConfig
.
getItemId
(),
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getCode
());
}
}
//查询进行中的团购
dto
.
setState
(
GroupPurchaseEnum
.
ItemStateEnum
.
PROCESSING
.
getCode
());
List
<
GroupPurchaseConfig
>
groupPurchaseConfigs
=
groupPurchaseConfigDao
.
findList
(
dto
);
List
<
GroupPurchaseItemVo
>
groupPurchaseItemVos
=
new
ArrayList
<>();
for
(
GroupPurchaseConfig
groupPurchaseConfig
:
groupPurchaseConfigs
)
{
SupplierItem
supplierItem
=
supplierItemDao
.
findById
(
groupPurchaseConfig
.
getItemId
());
GroupPurchaseItemVo
groupPurchaseItemVo
=
new
GroupPurchaseItemVo
();
groupPurchaseItemVo
.
setItemId
(
supplierItem
.
getId
());
groupPurchaseItemVo
.
setItemName
(
supplierItem
.
getName
());
groupPurchaseItemVo
.
setCreatorId
(
supplierItem
.
getCreatorId
());
groupPurchaseItemVo
.
setHomePageImage
(
MediaUtil
.
getHomePageImage
(
supplierItem
.
getImages
(),
supplierItem
.
getVideos
()));
GroupPurchaseRecordRequestDto
groupPurchaseRecordRequestDto
=
new
GroupPurchaseRecordRequestDto
();
groupPurchaseRecordRequestDto
.
setItemId
(
groupPurchaseConfig
.
getItemId
());
Result
<
Map
<
String
,
Object
>>
result
=
checkGroupPurchase
(
groupPurchaseRecordRequestDto
);
if
(!
result
.
getSuccess
())
{
continue
;
}
Map
<
String
,
Object
>
map
=
result
.
getData
();
groupPurchaseItemVo
.
setDiscountInfo
(
map
);
groupPurchaseItemVos
.
add
(
groupPurchaseItemVo
);
}
return
Result
.
success
(
groupPurchaseItemVos
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"查询团购商品失败 error : {}"
,
e
);
}
return
Result
.
failed
(
"查询团购商品失败"
);
}
@Override
public
Result
findItemDetail
(
GroupPurchaseConfigRequestDto
dto
)
{
try
{
long
itemId
=
dto
.
getItemId
();
SupplierItem
supplierItem
=
supplierItemDao
.
findById
(
itemId
);
GroupPurchaseItemVo
groupPurchaseItemVo
=
new
GroupPurchaseItemVo
();
groupPurchaseItemVo
.
setItemId
(
supplierItem
.
getId
());
groupPurchaseItemVo
.
setItemName
(
supplierItem
.
getName
());
groupPurchaseItemVo
.
setDescription
(
supplierItem
.
getDescription
());
User
user
=
cacheUtil
.
appletUserInfoCache
.
get
(
supplierItem
.
getCreatorId
()).
get
();
groupPurchaseItemVo
.
setCreatorName
(
user
.
getNickname
());
groupPurchaseItemVo
.
setCreatorAvatar
(
user
.
getAvatar
());
groupPurchaseItemVo
.
setCreatorProfile
(
user
.
getProfile
());
groupPurchaseItemVo
.
setHomePageImage
(
MediaUtil
.
getHomePageImage
(
supplierItem
.
getImages
(),
supplierItem
.
getVideos
()));
GroupPurchaseRecordRequestDto
groupPurchaseRecordRequestDto
=
new
GroupPurchaseRecordRequestDto
();
groupPurchaseRecordRequestDto
.
setItemId
(
itemId
);
Result
<
Map
<
String
,
Object
>>
result
=
checkGroupPurchase
(
groupPurchaseRecordRequestDto
);
if
(!
result
.
getSuccess
())
{
return
Result
.
failed
(
"查询团购信息错误"
);
}
Map
<
String
,
Object
>
map
=
result
.
getData
();
groupPurchaseItemVo
.
setDiscountInfo
(
map
);
groupPurchaseItemVo
.
setIsSubscribedOfCloseToSuccess
(
disposableSubscribeRecordDao
.
isSubscribed
(
dto
.
getUserId
(),
itemId
,
DisposableSubscribeRecordEnum
.
TypeEnum
.
GROUPPURASE_CLOSER_TO_SUCCESS
.
getType
()));
groupPurchaseItemVo
.
setIsSubscribedOfPay
(
disposableSubscribeRecordDao
.
isSubscribed
(
dto
.
getUserId
(),
itemId
,
DisposableSubscribeRecordEnum
.
TypeEnum
.
GROUPPURASE_SURPLUS_AMOUNT_PAY
.
getType
()));
return
Result
.
success
(
groupPurchaseItemVo
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"查询团购商品详情失败 error : {}"
,
e
);
}
return
Result
.
failed
(
"查询团购商品详情失败"
);
}
@Override
@Override
public
Result
payDeposit
(
GroupPurchaseRecordRequestDto
dto
)
{
public
Result
payDeposit
(
GroupPurchaseRecordRequestDto
dto
)
{
...
@@ -96,6 +177,66 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
...
@@ -96,6 +177,66 @@ public class GroupPurchaseServiceImpl implements GroupPurchaseService {
}
}
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
Result
cancelDeposit
(
GroupPurchaseRecordRequestDto
dto
)
{
RLock
lock
=
null
;
try
{
String
refundId
=
IdUtils
.
getOrderNumber
(
CommConsts
.
REFUND_ORDER_PREFIX
);
//判断订单状态
String
distributionOrderId
=
dto
.
getDistributionOrderId
();
DistributionOrder
distributionOrder
=
distributionOrderDao
.
findById
(
distributionOrderId
);
if
(
distributionOrder
.
getState
()
!=
DistributionEnum
.
DistributionOrderStateEnum
.
PRE_SALE
.
getCode
())
{
return
Result
.
failed
(
"订单不是预售状态,不能取消定金"
);
}
//查询定金支付记录
GroupPurchaseRecord
groupPurchaseRecord
=
groupPurchaseRecordDao
.
findByOrderId
(
distributionOrderId
);
DistributionOrderRefundRequestDto
refundRequestDto
=
new
DistributionOrderRefundRequestDto
();
String
depositPayId
=
groupPurchaseRecord
.
getDepositPayId
();
refundRequestDto
.
setDistributionOrderId
(
depositPayId
);
refundRequestDto
.
setRefundPrice
(
groupPurchaseRecord
.
getAmount
());
refundRequestDto
.
setAmount
(
groupPurchaseRecord
.
getAmount
());
refundRequestDto
.
setRefundId
(
refundId
);
Result
result
=
wxPayServiceApi
.
orderRefund
(
refundRequestDto
);
if
(!
result
.
getSuccess
())
{
return
Result
.
failed
(
"调用微信支付退款接口错误"
);
}
Refund
refundResponse
=
(
Refund
)
result
.
getData
();
if
(
refundResponse
.
getStatus
().
equals
(
Status
.
SUCCESS
)
||
refundResponse
.
getStatus
().
equals
(
Status
.
PROCESSING
))
{
Date
now
=
new
Date
();
//创建退款单
RefundOrder
refundOrder
=
new
RefundOrder
();
refundOrder
.
setRefundId
(
refundId
);
refundOrder
.
setRefundAmount
(
groupPurchaseRecord
.
getAmount
());
refundOrder
.
setAmount
(
groupPurchaseRecord
.
getAmount
());
refundOrder
.
setDistributionOrderId
(
depositPayId
);
refundOrder
.
setDistributorId
(
distributionOrder
.
getSellerId
());
refundOrder
.
setCreateTime
(
now
);
refundOrder
.
setUpdateTime
(
now
);
refundOrder
.
setState
(
RefundOrderEnum
.
StateEnum
.
PROCESSING
.
getCode
());
refundOrderDao
.
insert
(
refundOrder
);
//退款受理成功,订单的状态改为取消
distributionOrderDao
.
updateState
(
distributionOrderId
,
DistributionEnum
.
DistributionOrderStateEnum
.
CANCEL
.
getCode
());
//团购的记录改为无效
GroupPurchaseRecord
updateRecord
=
new
GroupPurchaseRecord
();
updateRecord
.
setId
(
groupPurchaseRecord
.
getId
());
updateRecord
.
setState
(
GroupPurchaseEnum
.
StateEnum
.
INVALID
.
getCode
());
groupPurchaseRecordDao
.
updateByPrimaryKey
(
updateRecord
);
logger
.
info
(
">>>>>>>> 分销单号:{}, 退款单号:{}, 定金退款申请成功,创建退款单 <<<<<<<<<"
,
distributionOrderId
,
refundId
);
return
Result
.
success
(
refundId
);
}
}
catch
(
Exception
e
)
{
logger
.
error
(
"定金退款申请失败 error : {}"
,
e
);
TransactionAspectSupport
.
currentTransactionStatus
().
setRollbackOnly
();
}
finally
{
if
(
lock
!=
null
&&
lock
.
isHeldByCurrentThread
())
{
lock
.
unlock
();
}
}
return
Result
.
failed
();
}
@Override
@Override
public
Result
checkGroupPurchase
(
GroupPurchaseRecordRequestDto
dto
)
{
public
Result
checkGroupPurchase
(
GroupPurchaseRecordRequestDto
dto
)
{
try
{
try
{
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/distribution/GroupPurchaseService.java
View file @
617874e3
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.dto.request.distribution.GroupPurchaseConfigRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto
;
import
com.wwdz.ch.db.dto.request.distribution.GroupPurchaseRecordRequestDto
;
import
java.util.Map
;
import
java.util.Map
;
public
interface
GroupPurchaseService
{
public
interface
GroupPurchaseService
{
/**
* 查询团购商品
* @param dto
* @return
*/
Result
findList
(
GroupPurchaseConfigRequestDto
dto
);
/**
* 查询团购商品详情
* @param dto
* @return
*/
Result
findItemDetail
(
GroupPurchaseConfigRequestDto
dto
);
/**
/**
* 支付团购定金
* 支付团购定金
* @param dto
* @param dto
...
@@ -14,6 +31,15 @@ public interface GroupPurchaseService {
...
@@ -14,6 +31,15 @@ public interface GroupPurchaseService {
*/
*/
Result
payDeposit
(
GroupPurchaseRecordRequestDto
dto
);
Result
payDeposit
(
GroupPurchaseRecordRequestDto
dto
);
/**
* 取消订单,退定金
* @param dto
* @return
*/
Result
cancelDeposit
(
GroupPurchaseRecordRequestDto
dto
);
/**
/**
* 查询团购当前进度
* 查询团购当前进度
* @param dto
* @param 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