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
1b27516a
Commit
1b27516a
authored
Jun 25, 2024
by
shiyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
支持展示多个专场
parent
5700d630
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
98 additions
and
94 deletions
+98
-94
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
...va/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
+0
-1
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/SpecialPerformanceDao.java
...om/wwdz/ch/db/dao/distribution/SpecialPerformanceDao.java
+1
-1
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/SpecialPerformanceDaoImpl.java
...dz/ch/db/impl/distribution/SpecialPerformanceDaoImpl.java
+2
-2
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/SpecialPerformanceServiceImpl.java
...h/wx/impl/distribution/SpecialPerformanceServiceImpl.java
+95
-90
No files found.
ch-admin-api/src/main/java/com/wwdz/ch/admin/impl/SysSupplierItemServiceImpl.java
View file @
1b27516a
...
...
@@ -528,7 +528,6 @@ public class SysSupplierItemServiceImpl implements SysSupplierItemService {
auctionConfig
.
setRealEndTime
(
StringUtils
.
isEmpty
(
dto
.
getAuctionEndTime
())
?
endTime
:
DateUtils
.
parseString
(
dto
.
getAuctionEndTime
()));
auctionConfig
.
setStartPrice
(
StringUtils
.
isEmpty
(
dto
.
getStartPrice
())
?
0
:
PriceUtil
.
convertPriceFromStr
(
dto
.
getStartPrice
()));
auctionConfig
.
setAddExtent
(
StringUtils
.
isEmpty
(
dto
.
getAddExtent
())
?
5000
:
PriceUtil
.
convertPriceFromStr
(
dto
.
getAddExtent
()));
auctionConfig
.
setAddExtent
(
StringUtils
.
isEmpty
(
dto
.
getAddExtent
())
?
50
:
PriceUtil
.
convertPriceFromStr
(
dto
.
getAddExtent
()));
auctionConfig
.
setEstimatedPrice
(
StringUtils
.
isEmpty
(
dto
.
getEstimatedPrice
())
?
999999999
:
PriceUtil
.
convertPriceFromStr
(
dto
.
getEstimatedPrice
()));
auctionConfig
.
setCreateTime
(
now
);
auctionConfig
.
setUpdateTime
(
now
);
...
...
ch-dao/src/main/java/com/wwdz/ch/db/dao/distribution/SpecialPerformanceDao.java
View file @
1b27516a
...
...
@@ -9,7 +9,7 @@ public interface SpecialPerformanceDao {
List
<
SpecialPerformance
>
find
(
SpecialPerformanceRequestDto
dto
);
SpecialPerformance
findByType
(
SpecialPerformanceRequestDto
dto
);
List
<
SpecialPerformance
>
findByType
(
SpecialPerformanceRequestDto
dto
);
SpecialPerformance
findById
(
int
id
);
...
...
ch-dao/src/main/java/com/wwdz/ch/db/impl/distribution/SpecialPerformanceDaoImpl.java
View file @
1b27516a
...
...
@@ -35,12 +35,12 @@ public class SpecialPerformanceDaoImpl implements SpecialPerformanceDao {
}
@Override
public
SpecialPerformance
findByType
(
SpecialPerformanceRequestDto
dto
)
{
public
List
<
SpecialPerformance
>
findByType
(
SpecialPerformanceRequestDto
dto
)
{
SpecialPerformanceExample
example
=
new
SpecialPerformanceExample
();
SpecialPerformanceExample
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andTypeEqualTo
(
dto
.
getType
());
JdbcHelper
.
ifPresent
(
dto
.
getStateList
(),
criteria:
:
andStateIn
);
return
specialPerformanceMapper
.
select
One
ByExample
(
example
);
return
specialPerformanceMapper
.
selectByExample
(
example
);
}
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/distribution/SpecialPerformanceServiceImpl.java
View file @
1b27516a
...
...
@@ -90,67 +90,70 @@ public class SpecialPerformanceServiceImpl implements SpecialPerformanceService
specialPerformanceDao
.
update
(
updateDto
);
}
}
List
<
SpecialPerformanceVo
>
resultList
=
new
ArrayList
<>();
SpecialPerformanceVo
specialPerformanceVo
=
new
SpecialPerformanceVo
();
dto
.
setStateList
(
Arrays
.
asList
(
SpecialPerformanceEnum
.
StateEnum
.
PREVIEW
.
getCode
(),
SpecialPerformanceEnum
.
StateEnum
.
PROCESSING
.
getCode
()));
SpecialPerformance
specialPerformance
=
specialPerformanceDao
.
findByType
(
dto
);
if
(
specialPerformance
==
null
)
{
return
Result
.
success
(
specialPerformanceVo
);
List
<
SpecialPerformance
>
specialPerformances
=
specialPerformanceDao
.
findByType
(
dto
);
if
(
CollectionUtils
.
isEmpty
(
specialPerformances
)
)
{
return
Result
.
success
(
resultList
);
}
for
(
SpecialPerformance
specialPerformance
:
specialPerformances
)
{
SpecialPerformanceVo
specialPerformanceVo
=
new
SpecialPerformanceVo
();
if
(
now
.
after
(
specialPerformance
.
getEndTime
()))
{
SpecialPerformance
updateDto
=
new
SpecialPerformance
();
updateDto
.
setId
(
specialPerformance
.
getId
());
updateDto
.
setState
(
SpecialPerformanceEnum
.
StateEnum
.
END
.
getCode
());
updateDto
.
setUpdateTime
(
now
);
specialPerformanceDao
.
update
(
updateDto
);
specialPerformance
.
setState
(
SpecialPerformanceEnum
.
StateEnum
.
END
.
getCode
());
}
int
specialPerformanceId
=
specialPerformance
.
getId
();
SpecialPerformanceConfigRequestDto
specialPerformanceConfigRequestDto
=
new
SpecialPerformanceConfigRequestDto
();
specialPerformanceConfigRequestDto
.
setPage
(
dto
.
getPage
());
specialPerformanceConfigRequestDto
.
setLimit
(
dto
.
getLimit
());
specialPerformanceConfigRequestDto
.
setSpecialPerformanceId
(
specialPerformanceId
);
//排除待上架的商品
AuctionConfigRequestDto
auctionConfigRequestDto
=
new
AuctionConfigRequestDto
();
auctionConfigRequestDto
.
setState
(
AuctionEnum
.
StateEnum
.
WAIT_ON_SALE
.
getCode
());
auctionConfigRequestDto
.
setLimit
(
9999
);
List
<
AuctionConfig
>
auctionConfigList
=
auctionConfigDao
.
findList
(
auctionConfigRequestDto
);
List
<
Long
>
filterItemIdList
=
auctionConfigList
.
stream
().
map
(
AuctionConfig:
:
getItemId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
filterItemIdList
))
{
specialPerformanceConfigRequestDto
.
setFilterItemIdList
(
filterItemIdList
);
}
List
<
SpecialPerformanceConfig
>
list
=
specialPerformanceConfigDao
.
findList
(
specialPerformanceConfigRequestDto
);
PageInfo
pageInfo
=
new
PageInfo
<>(
list
);
specialPerformanceVo
.
setTotalItemNum
(
pageInfo
.
getTotal
());
specialPerformanceVo
.
setSpecialPerformanceId
(
specialPerformanceId
);
specialPerformanceVo
.
setTitle
(
specialPerformance
.
getTitle
());
specialPerformanceVo
.
setState
(
specialPerformance
.
getState
());
specialPerformanceVo
.
setStateName
(
SpecialPerformanceEnum
.
StateEnum
.
getNameByCode
(
specialPerformance
.
getState
()));
specialPerformanceVo
.
setStartTime
(
specialPerformance
.
getStartTime
());
specialPerformanceVo
.
setEndTime
(
specialPerformance
.
getEndTime
());
long
totalViewNum
=
specialPerformanceConfigDao
.
countViewNum
(
specialPerformanceId
);
specialPerformanceVo
.
setTotalViewNum
(
totalViewNum
);
List
<
Map
<
String
,
Object
>>
dataList
=
new
ArrayList
<>();
if
(
now
.
after
(
specialPerformance
.
getEndTime
()))
{
SpecialPerformance
updateDto
=
new
SpecialPerformance
();
updateDto
.
setId
(
specialPerformance
.
getId
());
updateDto
.
setState
(
SpecialPerformanceEnum
.
StateEnum
.
END
.
getCode
());
updateDto
.
setUpdateTime
(
now
);
specialPerformanceDao
.
update
(
updateDto
);
specialPerformance
.
setState
(
SpecialPerformanceEnum
.
StateEnum
.
END
.
getCode
());
}
int
specialPerformanceId
=
specialPerformance
.
getId
();
SpecialPerformanceConfigRequestDto
specialPerformanceConfigRequestDto
=
new
SpecialPerformanceConfigRequestDto
();
specialPerformanceConfigRequestDto
.
setPage
(
dto
.
getPage
());
specialPerformanceConfigRequestDto
.
setLimit
(
dto
.
getLimit
());
specialPerformanceConfigRequestDto
.
setSpecialPerformanceId
(
specialPerformanceId
);
//排除待上架的商品
AuctionConfigRequestDto
auctionConfigRequestDto
=
new
AuctionConfigRequestDto
();
auctionConfigRequestDto
.
setState
(
AuctionEnum
.
StateEnum
.
WAIT_ON_SALE
.
getCode
());
auctionConfigRequestDto
.
setLimit
(
9999
);
List
<
AuctionConfig
>
auctionConfigList
=
auctionConfigDao
.
findList
(
auctionConfigRequestDto
);
List
<
Long
>
filterItemIdList
=
auctionConfigList
.
stream
().
map
(
AuctionConfig:
:
getItemId
).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
filterItemIdList
))
{
specialPerformanceConfigRequestDto
.
setFilterItemIdList
(
filterItemIdList
);
}
List
<
SpecialPerformanceConfig
>
list
=
specialPerformanceConfigDao
.
findList
(
specialPerformanceConfigRequestDto
);
PageInfo
pageInfo
=
new
PageInfo
<>(
list
);
specialPerformanceVo
.
setTotalItemNum
(
pageInfo
.
getTotal
());
specialPerformanceVo
.
setSpecialPerformanceId
(
specialPerformanceId
);
specialPerformanceVo
.
setTitle
(
specialPerformance
.
getTitle
());
specialPerformanceVo
.
setState
(
specialPerformance
.
getState
());
specialPerformanceVo
.
setStateName
(
SpecialPerformanceEnum
.
StateEnum
.
getNameByCode
(
specialPerformance
.
getState
()));
specialPerformanceVo
.
setStartTime
(
specialPerformance
.
getStartTime
());
specialPerformanceVo
.
setEndTime
(
specialPerformance
.
getEndTime
());
long
totalViewNum
=
specialPerformanceConfigDao
.
countViewNum
(
specialPerformanceId
);
specialPerformanceVo
.
setTotalViewNum
(
totalViewNum
);
List
<
Map
<
String
,
Object
>>
dataList
=
new
ArrayList
<>();
List
<
Long
>
itemList
=
list
.
stream
().
map
(
SpecialPerformanceConfig:
:
getItemId
).
collect
(
Collectors
.
toList
());
List
<
SupplierItem
>
supplierItemList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
itemList
))
{
SupplierItemRequestDto
supplierItemRequestDto
=
new
SupplierItemRequestDto
();
supplierItemRequestDto
.
setIds
(
itemList
);
supplierItemList
=
supplierItemDao
.
findList
(
supplierItemRequestDto
);
}
Map
<
Long
,
Integer
>
specialPerformanceConfigMap
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
SpecialPerformanceConfig:
:
getItemId
,
SpecialPerformanceConfig:
:
getViewNum
,
(
k1
,
k2
)
->
k2
));
for
(
SupplierItem
supplierItem
:
supplierItemList
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"homePageImage"
,
MediaUtil
.
getHomePageImage
(
supplierItem
.
getImages
(),
supplierItem
.
getVideos
()));
map
.
put
(
"itemId"
,
supplierItem
.
getId
());
map
.
put
(
"itemName"
,
supplierItem
.
getName
());
map
.
put
(
"viewNum"
,
specialPerformanceConfigMap
.
get
(
supplierItem
.
getId
()));
dataList
.
add
(
map
);
List
<
Long
>
itemList
=
list
.
stream
().
map
(
SpecialPerformanceConfig:
:
getItemId
).
collect
(
Collectors
.
toList
());
List
<
SupplierItem
>
supplierItemList
=
new
ArrayList
<>();
if
(!
CollectionUtils
.
isEmpty
(
itemList
))
{
SupplierItemRequestDto
supplierItemRequestDto
=
new
SupplierItemRequestDto
();
supplierItemRequestDto
.
setIds
(
itemList
);
supplierItemList
=
supplierItemDao
.
findList
(
supplierItemRequestDto
);
}
Map
<
Long
,
Integer
>
specialPerformanceConfigMap
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
SpecialPerformanceConfig:
:
getItemId
,
SpecialPerformanceConfig:
:
getViewNum
,
(
k1
,
k2
)
->
k2
));
for
(
SupplierItem
supplierItem
:
supplierItemList
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"homePageImage"
,
MediaUtil
.
getHomePageImage
(
supplierItem
.
getImages
(),
supplierItem
.
getVideos
()));
map
.
put
(
"itemId"
,
supplierItem
.
getId
());
map
.
put
(
"itemName"
,
supplierItem
.
getName
());
map
.
put
(
"viewNum"
,
specialPerformanceConfigMap
.
get
(
supplierItem
.
getId
()));
dataList
.
add
(
map
);
}
specialPerformanceVo
.
setItemList
(
dataList
);
resultList
.
add
(
specialPerformanceVo
);
}
specialPerformanceVo
.
setItemList
(
dataList
);
return
Result
.
success
(
specialPerformanceVo
);
return
Result
.
success
(
resultList
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"查询专场信息失败 error : {}"
,
e
);
}
...
...
@@ -278,45 +281,47 @@ public class SpecialPerformanceServiceImpl implements SpecialPerformanceService
SpecialPerformanceRequestDto
specialPerformanceRequestDto
=
new
SpecialPerformanceRequestDto
();
specialPerformanceRequestDto
.
setType
(
SpecialPerformanceEnum
.
TypeEnum
.
AUCTION
.
getCode
());
specialPerformanceRequestDto
.
setState
(
SpecialPerformanceEnum
.
StateEnum
.
PROCESSING
.
getCode
());
SpecialPerformance
specialPerformance
=
specialPerformanceDao
.
findByType
(
specialPerformanceRequestDto
);
if
(
specialPerformance
==
null
)
{
List
<
SpecialPerformance
>
specialPerformanceList
=
specialPerformanceDao
.
findByType
(
specialPerformanceRequestDto
);
if
(
CollectionUtils
.
isEmpty
(
specialPerformanceList
)
)
{
return
Result
.
failed
(
"专场信息为空"
);
}
logger
.
info
(
"当前进行的专场id:{}, 名称为 {} "
,
specialPerformance
.
getId
(),
specialPerformance
.
getTitle
());
String
progressKey
=
SPECIAL_PERFORMANCE_PROGRESS_SEND_MSG_KEY
+
specialPerformance
.
getId
();
if
(!
redisUtils
.
hasKey
(
progressKey
))
{
//发送短信通知
String
url
=
wxAppletApi
.
getUrlLink
(
SPECIAL_PERFORMANCE_URL
,
"specialId="
+
specialPerformance
.
getId
());
String
msg
=
specialPerformance
.
getTitle
()
+
"正在火热进行中,请前往"
+
url
+
"查看"
;
boolean
hasNextPage
=
true
;
int
page
=
1
;
UserRequestDto
userRequestDto
=
new
UserRequestDto
();
while
(
hasNextPage
)
{
List
<
User
>
userList
=
userDao
.
findList
(
userRequestDto
);
PageInfo
pageInfo
=
new
PageInfo
(
userList
);
for
(
User
user
:
userList
)
{
String
phone
=
user
.
getMobile
();
if
(
StringUtils
.
hasLength
(
phone
))
{
aliSmsSender
.
sendSms
(
phone
,
msg
);
for
(
SpecialPerformance
specialPerformance
:
specialPerformanceList
)
{
logger
.
info
(
"当前进行的专场id:{}, 名称为 {} "
,
specialPerformance
.
getId
(),
specialPerformance
.
getTitle
());
String
progressKey
=
SPECIAL_PERFORMANCE_PROGRESS_SEND_MSG_KEY
+
specialPerformance
.
getId
();
if
(!
redisUtils
.
hasKey
(
progressKey
))
{
//发送短信通知
String
url
=
wxAppletApi
.
getUrlLink
(
SPECIAL_PERFORMANCE_URL
,
"specialId="
+
specialPerformance
.
getId
());
String
msg
=
specialPerformance
.
getTitle
()
+
"正在火热进行中,请前往"
+
url
+
"查看"
;
boolean
hasNextPage
=
true
;
int
page
=
1
;
UserRequestDto
userRequestDto
=
new
UserRequestDto
();
while
(
hasNextPage
)
{
List
<
User
>
userList
=
userDao
.
findList
(
userRequestDto
);
PageInfo
pageInfo
=
new
PageInfo
(
userList
);
for
(
User
user
:
userList
)
{
String
phone
=
user
.
getMobile
();
if
(
StringUtils
.
hasLength
(
phone
))
{
aliSmsSender
.
sendSms
(
phone
,
msg
);
}
}
if
(
pageInfo
.
isHasNextPage
())
{
page
=
page
+
1
;
userRequestDto
.
setPage
(
page
);
logger
.
info
(
"专场进行中要发送短信通知的用户数据总页数为 : {}, 当前为 : {}"
,
pageInfo
.
getPages
(),
page
);
}
else
{
hasNextPage
=
false
;
logger
.
info
(
"============= 发送专场进行中短信循环结束 ============="
);
}
if
(
page
>
500
)
{
hasNextPage
=
false
;
logger
.
info
(
"============= 发送专场进行中短信超出上限,停止发送 ============="
);
}
}
if
(
pageInfo
.
isHasNextPage
())
{
page
=
page
+
1
;
userRequestDto
.
setPage
(
page
);
logger
.
info
(
"专场进行中要发送短信通知的用户数据总页数为 : {}, 当前为 : {}"
,
pageInfo
.
getPages
(),
page
);
}
else
{
hasNextPage
=
false
;
logger
.
info
(
"============= 发送专场进行中短信循环结束 ============="
);
}
if
(
page
>
500
)
{
hasNextPage
=
false
;
logger
.
info
(
"============= 发送专场进行中短信超出上限,停止发送 ============="
);
}
logger
.
info
(
"================专场id: {}, 进行中通知任务,提醒短信发送成功 =============="
,
specialPerformance
.
getId
());
redisUtils
.
set
(
progressKey
,
specialPerformance
.
getId
(),
3600
*
24
);
}
else
{
return
Result
.
failed
(
"24小时内只能执行一次专场进行中通知任务"
);
}
logger
.
info
(
"================专场id: {}, 进行中通知任务,提醒短信发送成功 =============="
,
specialPerformance
.
getId
());
redisUtils
.
set
(
progressKey
,
specialPerformance
.
getId
(),
3600
*
24
);
}
else
{
return
Result
.
failed
(
"24小时内只能执行一次专场进行中通知任务"
);
}
return
Result
.
success
(
"专场进行中通知任务执行成功"
);
}
catch
(
Exception
e
)
{
...
...
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