Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
midjourney-proxy
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
徐少华
midjourney-proxy
Commits
bc49117d
Commit
bc49117d
authored
Nov 18, 2019
by
zhangdongwei-intern
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat-1001951: 群打卡排名点赞分享优化
parent
dad77e76
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
430 additions
and
24 deletions
+430
-24
LunarCalendarUtils.java
.../java/com/pcloud/book/util/common/LunarCalendarUtils.java
+1
-1
WeixinClockBiz.java
.../java/com/pcloud/book/weixinclock/biz/WeixinClockBiz.java
+13
-0
WeixinClockPraiseBiz.java
...com/pcloud/book/weixinclock/biz/WeixinClockPraiseBiz.java
+11
-0
WeixinClockBizImpl.java
.../pcloud/book/weixinclock/biz/impl/WeixinClockBizImpl.java
+44
-6
WeixinClockPraiseBizImpl.java
...d/book/weixinclock/biz/impl/WeixinClockPraiseBizImpl.java
+25
-2
WeixinClockShareBizImpl.java
...ud/book/weixinclock/biz/impl/WeixinClockShareBizImpl.java
+47
-0
WeixinClockMemberDao.java
...com/pcloud/book/weixinclock/dao/WeixinClockMemberDao.java
+20
-0
WeixinClockPraiseDao.java
...com/pcloud/book/weixinclock/dao/WeixinClockPraiseDao.java
+23
-0
WeixinClockMemberDaoImpl.java
...d/book/weixinclock/dao/impl/WeixinClockMemberDaoImpl.java
+22
-0
WeixinClockPraiseDaoImpl.java
...d/book/weixinclock/dao/impl/WeixinClockPraiseDaoImpl.java
+24
-0
RankDto.java
...rc/main/java/com/pcloud/book/weixinclock/dto/RankDto.java
+22
-0
WeixinClockMember.java
...com/pcloud/book/weixinclock/entity/WeixinClockMember.java
+11
-0
WeixinClockFacade.java
...com/pcloud/book/weixinclock/facade/WeixinClockFacade.java
+9
-0
WeixinClockFacadeImpl.java
...d/book/weixinclock/facade/impl/WeixinClockFacadeImpl.java
+15
-0
WeixinClockPraiseFacadeImpl.java
.../weixinclock/facade/impl/WeixinClockPraiseFacadeImpl.java
+18
-0
DoShareResponseVO.java
...cloud/book/weixinclock/vo/response/DoShareResponseVO.java
+3
-0
ListPraiseUserResponseVO.java
...ook/weixinclock/vo/response/ListPraiseUserResponseVO.java
+66
-0
WeixinClockMember.Mapper.xml
...resources/mapper/weixinclock/WeixinClockMember.Mapper.xml
+40
-15
WeixinClockPraise.Mapper.xml
...resources/mapper/weixinclock/WeixinClockPraise.Mapper.xml
+16
-0
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/util/common/LunarCalendarUtils.java
View file @
bc49117d
...
@@ -427,7 +427,7 @@ public class LunarCalendarUtils {
...
@@ -427,7 +427,7 @@ public class LunarCalendarUtils {
for
(
int
i
=
1
;
i
<
month
;
i
++){
for
(
int
i
=
1
;
i
<
month
;
i
++){
num
+=
MONTH_DAY
[
i
];
num
+=
MONTH_DAY
[
i
];
}
}
if
(
year
%
400
==
0
||
(
year
%
100
!=
0
&&
year
%
4
==
0
)
){
if
(
(
year
%
400
==
0
||
(
year
%
100
!=
0
&&
year
%
4
==
0
))
&&
month
>
2
){
num
+=
1
;
num
+=
1
;
}
}
num
+=
day
;
num
+=
day
;
...
...
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/WeixinClockBiz.java
View file @
bc49117d
...
@@ -95,4 +95,17 @@ public interface WeixinClockBiz {
...
@@ -95,4 +95,17 @@ public interface WeixinClockBiz {
* @param wechatGroupUser
* @param wechatGroupUser
*/
*/
void
receiveWxGroupUserBindTopic
(
WechatGroupUser
wechatGroupUser
);
void
receiveWxGroupUserBindTopic
(
WechatGroupUser
wechatGroupUser
);
/**
* 获取分享成员的打卡排名信息
* @param wxGroupId
* @param wxUserId
* @return
*/
RankDto
getShareMemberRank
(
String
wxGroupId
,
String
wxUserId
);
/**
* 旧数据处理
*/
void
solveOldData
();
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/WeixinClockPraiseBiz.java
View file @
bc49117d
...
@@ -3,6 +3,9 @@ package com.pcloud.book.weixinclock.biz;
...
@@ -3,6 +3,9 @@ package com.pcloud.book.weixinclock.biz;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.dto.RankDto
;
import
com.pcloud.book.weixinclock.dto.RankDto
;
import
com.pcloud.book.weixinclock.vo.request.PraiseForMemberRequestVO
;
import
com.pcloud.book.weixinclock.vo.request.PraiseForMemberRequestVO
;
import
com.pcloud.book.weixinclock.vo.response.ListPraiseUserResponseVO
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
java.util.List
;
import
java.util.List
;
...
@@ -24,4 +27,12 @@ public interface WeixinClockPraiseBiz {
...
@@ -24,4 +27,12 @@ public interface WeixinClockPraiseBiz {
* @param listWeixinClockRankDto
* @param listWeixinClockRankDto
*/
*/
void
fillPraise
(
List
<
RankDto
>
list
,
ListWeixinClockRankDto
listWeixinClockRankDto
);
void
fillPraise
(
List
<
RankDto
>
list
,
ListWeixinClockRankDto
listWeixinClockRankDto
);
/**
* 获取点赞用户列表
* @param wxGroupId
* @param wxUserId
* @return
*/
PageBeanNew
<
ListPraiseUserResponseVO
>
listPraiseUser
(
String
wxGroupId
,
String
wxUserId
,
PageParam
pageParam
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/impl/WeixinClockBizImpl.java
View file @
bc49117d
...
@@ -23,6 +23,7 @@ import com.pcloud.book.weixinclock.dao.WeixinClockBrowseDao;
...
@@ -23,6 +23,7 @@ import com.pcloud.book.weixinclock.dao.WeixinClockBrowseDao;
import
com.pcloud.book.weixinclock.dao.WeixinClockDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockGroupClassifyDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockGroupClassifyDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockMemberDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockMemberDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockPraiseDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockPrizeRecordDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockPrizeRecordDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockRewardDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockRewardDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockTopicDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockTopicDao
;
...
@@ -134,6 +135,8 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
...
@@ -134,6 +135,8 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
private
WeixinClockPraiseBiz
weixinClockPraiseBiz
;
private
WeixinClockPraiseBiz
weixinClockPraiseBiz
;
@Autowired
@Autowired
private
WeixinClockBrowseDao
weixinClockBrowseDao
;
private
WeixinClockBrowseDao
weixinClockBrowseDao
;
@Autowired
private
WeixinClockPraiseDao
weixinClockPraiseDao
;
private
static
final
ThreadFactory
NAMED_THREAD_FACTORY
=
new
ThreadFactoryBuilder
()
private
static
final
ThreadFactory
NAMED_THREAD_FACTORY
=
new
ThreadFactoryBuilder
()
.
setNameFormat
(
"weixinclock-pool-%d"
).
build
();
.
setNameFormat
(
"weixinclock-pool-%d"
).
build
();
...
@@ -514,6 +517,8 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
...
@@ -514,6 +517,8 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
nickname
=
"神秘客"
;
nickname
=
"神秘客"
;
}
}
WeixinClockTopic
weixinTopic
=
weixinClockTopicDao
.
getTopicByIds4Today
(
wechatGroupId
,
userWxId
);
WeixinClockTopic
weixinTopic
=
weixinClockTopicDao
.
getTopicByIds4Today
(
wechatGroupId
,
userWxId
);
//获取我获得的点赞数
Integer
praiseNum
=
weixinClockPraiseDao
.
getPraiseNum
(
wechatGroupId
,
userWxId
);
if
(
null
==
weixinTopic
){
if
(
null
==
weixinTopic
){
WeixinClockTopic
weixinClockTopic
=
new
WeixinClockTopic
();
WeixinClockTopic
weixinClockTopic
=
new
WeixinClockTopic
();
weixinClockTopic
.
setBookGroupClassifyId
(
classifyQrcodeInfo
.
getClassifyId
());
weixinClockTopic
.
setBookGroupClassifyId
(
classifyQrcodeInfo
.
getClassifyId
());
...
@@ -522,6 +527,7 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
...
@@ -522,6 +527,7 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
weixinClockTopic
.
setWxGroupId
(
wechatGroupId
);
weixinClockTopic
.
setWxGroupId
(
wechatGroupId
);
weixinClockTopic
.
setWxUserId
(
userWxId
);
weixinClockTopic
.
setWxUserId
(
userWxId
);
weixinClockTopic
.
setWeixinClockMemberId
(
weixinClockMemberId
);
weixinClockTopic
.
setWeixinClockMemberId
(
weixinClockMemberId
);
//修改打卡天数, 天数+1, 得分+1
weixinClockMemberDao
.
updateClockDays
(
wechatGroupId
,
userWxId
,
wechatUserId
);
weixinClockMemberDao
.
updateClockDays
(
wechatGroupId
,
userWxId
,
wechatUserId
);
weixinClockTopicDao
.
insert
(
weixinClockTopic
);
weixinClockTopicDao
.
insert
(
weixinClockTopic
);
//发topic,增加抽奖次数
//发topic,增加抽奖次数
...
@@ -576,15 +582,20 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
...
@@ -576,15 +582,20 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
}
}
if
(
null
!=
grantNum
&&
!
grantNum
.
equals
(
0
)){
if
(
null
!=
grantNum
&&
!
grantNum
.
equals
(
0
)){
sendContent
=
"@"
+
nickname
+
" "
+
weixinClockDto
.
getClockIntroduction
()
+
"\n"
+
month
+
"月"
+
dayOfMonth
+
"日打卡成功,你已累积打卡"
sendContent
=
"@"
+
nickname
+
" "
+
weixinClockDto
.
getClockIntroduction
()
+
"\n"
+
month
+
"月"
+
dayOfMonth
+
"日打卡成功,你已累积打卡"
+
clockDays
+
"天,排名第"
+
+
clockDays
+
"天,
累计收获"
+
praiseNum
+
"个赞,
排名第"
+
newOrder
+
",明天继续!"
+
"\n"
+
"\n"
+
"
查看排行榜:"
+
clockRankUrl
+
"\n"
+
"点击抽奖,即可有机会获得精美礼品哦:
"
+
clockRewardUrl
;
newOrder
+
",明天继续!"
+
"\n"
+
"\n"
+
"
-->点赞与排行榜:"
+
clockRankUrl
+
"\n"
+
"点击抽奖,即可有机会获得精美礼品哦:"
+
"\n"
+
"-->
"
+
clockRewardUrl
;
}
else
{
}
else
{
sendContent
=
"@"
+
nickname
+
" "
+
weixinClockDto
.
getClockIntroduction
()
+
"\n"
+
month
+
"月"
+
dayOfMonth
+
"日打卡成功,你已累积打卡"
sendContent
=
"@"
+
nickname
+
" "
+
weixinClockDto
.
getClockIntroduction
()
+
"\n"
+
month
+
"月"
+
dayOfMonth
+
"日打卡成功,你已累积打卡"
+
clockDays
+
"天,排名第"
+
+
clockDays
+
"天,
累计收获"
+
praiseNum
+
"个赞,
排名第"
+
newOrder
+
",明天继续!"
+
"\n"
+
"\n"
+
"
查看排行榜:
"
+
clockRankUrl
;
newOrder
+
",明天继续!"
+
"\n"
+
"\n"
+
"
点赞与排行榜:"
+
"\n"
+
"-->
"
+
clockRankUrl
;
}
}
}
else
{
}
else
{
sendContent
=
"@"
+
nickname
+
" ,你今天已经打过卡了,明天再继续!"
;
//获取我打卡天数
Long
clockDays
=
weixinClockTopicDao
.
getClockCountByUser
(
wechatGroupId
,
userWxId
);
//获取我的排名
Integer
newOrder
=
weixinClockMemberDao
.
getMyNewOrder
(
wechatGroupId
,
userWxId
);
sendContent
=
"@"
+
nickname
+
" ,你今天已经打过卡了, 目前累计打卡"
+
clockDays
+
"天,累计收获"
+
praiseNum
+
"个赞,排名第"
+
newOrder
+
",明天再继续!"
;
}
}
vo
.
setContent
(
sendContent
);
vo
.
setContent
(
sendContent
);
LOGGER
.
info
(
"微信群内加入并打卡:发送微信消息vo="
+
vo
);
LOGGER
.
info
(
"微信群内加入并打卡:发送微信消息vo="
+
vo
);
...
@@ -630,7 +641,12 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
...
@@ -630,7 +641,12 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
@ParamLog
(
"获取某个群内某个用户的信息"
)
@ParamLog
(
"获取某个群内某个用户的信息"
)
public
RankDto
getClockWechatUserRank
(
Long
wechatUserId
,
String
wxGroupId
,
String
wxUserId
)
{
public
RankDto
getClockWechatUserRank
(
Long
wechatUserId
,
String
wxGroupId
,
String
wxUserId
)
{
RankDto
rankDto
=
weixinClockMemberDao
.
getClockWechatUserRank
(
wechatUserId
,
wxGroupId
);
RankDto
rankDto
=
weixinClockMemberDao
.
getClockWechatUserRank
(
wechatUserId
,
wxGroupId
);
return
null
==
rankDto
?
new
RankDto
()
:
rankDto
;
if
(
null
==
rankDto
||
null
==
rankDto
.
getWxUserId
()){
return
new
RankDto
();
}
Integer
praiseNum
=
weixinClockPraiseDao
.
getPraiseNum
(
wxGroupId
,
rankDto
.
getWxUserId
());
rankDto
.
setPraiseNum
(
praiseNum
);
return
rankDto
;
}
}
/**
/**
...
@@ -660,4 +676,26 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
...
@@ -660,4 +676,26 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
weixinClockMemberDao
.
updatMemberWechatUserId
(
wechatGroupUser
.
getWxUserId
(),
wechatGroupUser
.
getWechatUserId
());
weixinClockMemberDao
.
updatMemberWechatUserId
(
wechatGroupUser
.
getWxUserId
(),
wechatGroupUser
.
getWechatUserId
());
}
}
@Override
public
RankDto
getShareMemberRank
(
String
wxGroupId
,
String
wxUserId
)
{
RankDto
rankDto
=
weixinClockMemberDao
.
getClockWechatUserRankByWxUserId
(
wxUserId
,
wxGroupId
);
if
(
null
==
rankDto
){
return
new
RankDto
();
}
Integer
praiseNum
=
weixinClockPraiseDao
.
getPraiseNum
(
wxGroupId
,
wxUserId
);
rankDto
.
setPraiseNum
(
praiseNum
);
return
rankDto
;
}
@Override
public
void
solveOldData
(){
weixinClockMemberDao
.
initScore
();
List
<
RankDto
>
rankDtos
=
weixinClockPraiseDao
.
listAll
();
if
(!
ListUtils
.
isEmpty
(
rankDtos
)){
for
(
RankDto
rankDto
:
rankDtos
){
weixinClockMemberDao
.
addPraiseNum
(
rankDto
.
getWxUserId
(),
rankDto
.
getWxGroupId
(),
rankDto
.
getPraiseNum
());
}
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/impl/WeixinClockPraiseBizImpl.java
View file @
bc49117d
package
com
.
pcloud
.
book
.
weixinclock
.
biz
.
impl
;
package
com
.
pcloud
.
book
.
weixinclock
.
biz
.
impl
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.consumer.reader.ReaderConsr
;
import
com.pcloud.book.weixinclock.biz.WeixinClockPraiseBiz
;
import
com.pcloud.book.weixinclock.biz.WeixinClockPraiseBiz
;
import
com.pcloud.book.weixinclock.dao.WeixinClockMemberDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockMemberDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockPraiseDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockPraiseDao
;
...
@@ -10,12 +11,17 @@ import com.pcloud.book.weixinclock.dto.RankDto;
...
@@ -10,12 +11,17 @@ import com.pcloud.book.weixinclock.dto.RankDto;
import
com.pcloud.book.weixinclock.entity.WeixinClockMember
;
import
com.pcloud.book.weixinclock.entity.WeixinClockMember
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.book.weixinclock.vo.request.PraiseForMemberRequestVO
;
import
com.pcloud.book.weixinclock.vo.request.PraiseForMemberRequestVO
;
import
com.pcloud.book.weixinclock.vo.response.ListPraiseUserResponseVO
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.readercenter.wechat.entity.WechatUser
;
import
org.springframework.beans.factory.annotation.Autowired
;
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
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
...
@@ -35,6 +41,8 @@ public class WeixinClockPraiseBizImpl implements WeixinClockPraiseBiz {
...
@@ -35,6 +41,8 @@ public class WeixinClockPraiseBizImpl implements WeixinClockPraiseBiz {
private
WeixinClockPraiseDao
weixinClockPraiseDao
;
private
WeixinClockPraiseDao
weixinClockPraiseDao
;
@Autowired
@Autowired
private
WeixinClockMemberDao
weixinClockMemberDao
;
private
WeixinClockMemberDao
weixinClockMemberDao
;
@Autowired
private
ReaderConsr
readerConsr
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Transactional
(
rollbackFor
=
Exception
.
class
)
...
@@ -63,11 +71,12 @@ public class WeixinClockPraiseBizImpl implements WeixinClockPraiseBiz {
...
@@ -63,11 +71,12 @@ public class WeixinClockPraiseBizImpl implements WeixinClockPraiseBiz {
if
(
null
==
oldWeixinClockPraise
){
if
(
null
==
oldWeixinClockPraise
){
weixinClockPraise
.
setIsCancel
(
1
);
weixinClockPraise
.
setIsCancel
(
1
);
weixinClockPraiseDao
.
insert
(
weixinClockPraise
);
weixinClockPraiseDao
.
insert
(
weixinClockPraise
);
}
else
{
}
else
{
weixinClockPraise
.
setId
(
oldWeixinClockPraise
.
getId
());
weixinClockPraise
.
setId
(
oldWeixinClockPraise
.
getId
());
weixinClockPraiseDao
.
update
(
weixinClockPraise
);
weixinClockPraiseDao
.
update
(
weixinClockPraise
);
}
}
//点赞或者取消成功, 修改打卡成员得分
weixinClockMemberDao
.
updateScore
(
weixinClockMember
.
getWeixinClockMemberId
(),
weixinClockPraise
.
getIsCancel
());
}
}
@Override
@Override
...
@@ -103,4 +112,18 @@ public class WeixinClockPraiseBizImpl implements WeixinClockPraiseBiz {
...
@@ -103,4 +112,18 @@ public class WeixinClockPraiseBizImpl implements WeixinClockPraiseBiz {
rankDto
.
setIsPraise
(
map
.
getOrDefault
(
rankDto
.
getWxUserId
(),
Boolean
.
FALSE
)
?
1
:
0
);
rankDto
.
setIsPraise
(
map
.
getOrDefault
(
rankDto
.
getWxUserId
(),
Boolean
.
FALSE
)
?
1
:
0
);
}
}
}
}
@Override
public
PageBeanNew
<
ListPraiseUserResponseVO
>
listPraiseUser
(
String
wxGroupId
,
String
wxUserId
,
PageParam
pageParam
){
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
PageBeanNew
<
WeixinClockPraise
>
pageBeanNew
=
weixinClockPraiseDao
.
listPageNew
(
pageParam
,
paramMap
,
"listByWxUserId"
);
List
<
WeixinClockPraise
>
weixinClockPraiseList
=
pageBeanNew
.
getRecordList
();
if
(
ListUtils
.
isEmpty
(
weixinClockPraiseList
)){
return
new
PageBeanNew
<>(
pageParam
.
getPageNum
(),
pageParam
.
getNumPerPage
(),
0
,
new
ArrayList
<>());
}
List
<
Long
>
wechatUserIds
=
weixinClockPraiseList
.
stream
().
map
(
WeixinClockPraise:
:
getPraiseUserId
).
distinct
().
collect
(
Collectors
.
toList
());
Map
<
Long
,
WechatUser
>
wechatUserMap
=
readerConsr
.
getUserList
(
wechatUserIds
);
List
<
ListPraiseUserResponseVO
>
vos
=
ListPraiseUserResponseVO
.
valueFromPraiseUser
(
weixinClockPraiseList
,
wechatUserMap
);
return
new
PageBeanNew
<>(
pageParam
.
getPageNum
(),
pageParam
.
getNumPerPage
(),
pageBeanNew
.
getTotalCount
(),
vos
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/impl/WeixinClockShareBizImpl.java
View file @
bc49117d
package
com
.
pcloud
.
book
.
weixinclock
.
biz
.
impl
;
package
com
.
pcloud
.
book
.
weixinclock
.
biz
.
impl
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.consumer.channel.QrcodeSceneConsr
;
import
com.pcloud.book.consumer.user.AdviserConsr
;
import
com.pcloud.book.group.dao.BookGroupClassifyDao
;
import
com.pcloud.book.group.dao.BookGroupClassifyDao
;
import
com.pcloud.book.group.dao.BookGroupDao
;
import
com.pcloud.book.group.dao.BookGroupDao
;
import
com.pcloud.book.group.dao.GroupQrcodeDao
;
import
com.pcloud.book.group.dao.GroupQrcodeDao
;
...
@@ -11,6 +13,7 @@ import com.pcloud.book.group.vo.ClassifyVO;
...
@@ -11,6 +13,7 @@ import com.pcloud.book.group.vo.ClassifyVO;
import
com.pcloud.book.util.common.LunarCalendarUtils
;
import
com.pcloud.book.util.common.LunarCalendarUtils
;
import
com.pcloud.book.weixinclock.biz.WeixinClockShareBiz
;
import
com.pcloud.book.weixinclock.biz.WeixinClockShareBiz
;
import
com.pcloud.book.weixinclock.dao.WeixinClockMemberDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockMemberDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockPraiseDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockShareDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockShareDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockShareWordDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockShareWordDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockTopicDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockTopicDao
;
...
@@ -18,10 +21,18 @@ import com.pcloud.book.weixinclock.dto.RankDto;
...
@@ -18,10 +21,18 @@ import com.pcloud.book.weixinclock.dto.RankDto;
import
com.pcloud.book.weixinclock.entity.WeixinClockMember
;
import
com.pcloud.book.weixinclock.entity.WeixinClockMember
;
import
com.pcloud.book.weixinclock.entity.WeixinClockShare
;
import
com.pcloud.book.weixinclock.entity.WeixinClockShare
;
import
com.pcloud.book.weixinclock.vo.response.DoShareResponseVO
;
import
com.pcloud.book.weixinclock.vo.response.DoShareResponseVO
;
import
com.pcloud.channelcenter.base.constants.ChannelConstants
;
import
com.pcloud.channelcenter.wechat.dto.AccountSettingDto
;
import
com.pcloud.common.utils.QrcodeUtils
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.httpclient.UrlUtils
;
import
com.pcloud.common.utils.string.StringUtil
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -47,8 +58,15 @@ public class WeixinClockShareBizImpl implements WeixinClockShareBiz {
...
@@ -47,8 +58,15 @@ public class WeixinClockShareBizImpl implements WeixinClockShareBiz {
private
BookGroupDao
bookGroupDao
;
private
BookGroupDao
bookGroupDao
;
@Autowired
@Autowired
private
BookGroupClassifyDao
bookGroupClassifyDao
;
private
BookGroupClassifyDao
bookGroupClassifyDao
;
@Autowired
private
AdviserConsr
adviserConsr
;
@Autowired
private
QrcodeSceneConsr
qrcodeSceneConsr
;
@Autowired
private
WeixinClockPraiseDao
weixinClockPraiseDao
;
@Override
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
DoShareResponseVO
doShare
(
Long
wechatUserId
,
String
wxGroupId
,
String
wxUserId
)
{
public
DoShareResponseVO
doShare
(
Long
wechatUserId
,
String
wxGroupId
,
String
wxUserId
)
{
if
(
null
==
wxGroupId
||
null
==
wxUserId
){
if
(
null
==
wxGroupId
||
null
==
wxUserId
){
...
@@ -63,6 +81,9 @@ public class WeixinClockShareBizImpl implements WeixinClockShareBiz {
...
@@ -63,6 +81,9 @@ public class WeixinClockShareBizImpl implements WeixinClockShareBiz {
}
}
wxUserId
=
null
!=
rankDto
.
getWxUserId
()
?
rankDto
.
getWxUserId
()
:
wxUserId
;
wxUserId
=
null
!=
rankDto
.
getWxUserId
()
?
rankDto
.
getWxUserId
()
:
wxUserId
;
DoShareResponseVO
doShareResponseVO
=
DoShareResponseVO
.
valueFromRankDto
(
rankDto
);
DoShareResponseVO
doShareResponseVO
=
DoShareResponseVO
.
valueFromRankDto
(
rankDto
);
//获得的点赞数
Integer
pariseNum
=
weixinClockPraiseDao
.
getPraiseNum
(
wxGroupId
,
wxUserId
);
doShareResponseVO
.
setPraiseNum
(
pariseNum
);
Date
today
=
new
Date
();
Date
today
=
new
Date
();
Map
<
String
,
String
>
strMap
=
LunarCalendarUtils
.
dataToLunar
(
today
);
Map
<
String
,
String
>
strMap
=
LunarCalendarUtils
.
dataToLunar
(
today
);
doShareResponseVO
.
setLunar
(
strMap
.
get
(
"lunar"
));
doShareResponseVO
.
setLunar
(
strMap
.
get
(
"lunar"
));
...
@@ -89,6 +110,32 @@ public class WeixinClockShareBizImpl implements WeixinClockShareBiz {
...
@@ -89,6 +110,32 @@ public class WeixinClockShareBizImpl implements WeixinClockShareBiz {
weixinClockShare
.
setShareUserId
(
wechatUserId
);
weixinClockShare
.
setShareUserId
(
wechatUserId
);
weixinClockShare
.
setWxGroupId
(
wxGroupId
);
weixinClockShare
.
setWxGroupId
(
wxGroupId
);
weixinClockShareDao
.
insert
(
weixinClockShare
);
weixinClockShareDao
.
insert
(
weixinClockShare
);
//将分享页面的二维码换成打卡排行榜的二维码
String
qrcodeUrl
=
JedisClusterUtils
.
get
(
wxGroupId
+
wxUserId
);
if
(!
StringUtil
.
isEmpty
(
qrcodeUrl
)){
doShareResponseVO
.
setQrcodeUrl
(
qrcodeUrl
);
return
doShareResponseVO
;
}
StringBuilder
linkUrl
=
new
StringBuilder
();
if
(
null
==
groupQrcode
){
return
doShareResponseVO
;
}
Long
channelId
=
adviserConsr
.
getDefaultChannel
(
groupQrcode
.
getCreateUser
());
AccountSettingDto
accountSettingDto
=
qrcodeSceneConsr
.
getWechatInfo
(
channelId
);
if
(
null
==
accountSettingDto
)
{
return
doShareResponseVO
;
}
String
protocol
=
accountSettingDto
.
getProtocol
();
if
(
StringUtils
.
isEmpty
(
protocol
))
{
protocol
=
ChannelConstants
.
HTTP
;
}
linkUrl
.
append
(
protocol
).
append
(
accountSettingDto
.
getDomain
()).
append
(
"/W"
)
.
append
(
accountSettingDto
.
getAccountSettingId
()).
append
(
"/clock"
).
append
(
"?wxGroupId="
)
.
append
(
wxGroupId
).
append
(
"&wxUserId="
).
append
(
wxUserId
).
append
(
"&isShare=1"
);
String
shortUrl4Own
=
UrlUtils
.
getShortUrl4Own
(
linkUrl
.
toString
());
qrcodeUrl
=
QrcodeUtils
.
create
(
shortUrl4Own
);
doShareResponseVO
.
setQrcodeUrl
(
qrcodeUrl
);
JedisClusterUtils
.
set
(
wxGroupId
+
wxUserId
,
qrcodeUrl
);
return
doShareResponseVO
;
return
doShareResponseVO
;
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/WeixinClockMemberDao.java
View file @
bc49117d
...
@@ -65,4 +65,24 @@ public interface WeixinClockMemberDao extends BaseDao<WeixinClockMember> {
...
@@ -65,4 +65,24 @@ public interface WeixinClockMemberDao extends BaseDao<WeixinClockMember> {
* @return
* @return
*/
*/
RankDto
getClockWechatUserRankByWxUserId
(
String
wxUserId
,
String
wxGroupId
);
RankDto
getClockWechatUserRankByWxUserId
(
String
wxUserId
,
String
wxGroupId
);
/**
* 更新打卡成员得分
* @param weixinClockMemberId
* @param isCancel
*/
void
updateScore
(
Long
weixinClockMemberId
,
Integer
isCancel
);
/**
* 旧数据处理:初始化成员分数
*/
void
initScore
();
/**
* 旧数据处理:打卡分数+点赞分数
* @param wxUserId
* @param wxGroupId
* @param praiseNum
*/
void
addPraiseNum
(
String
wxUserId
,
String
wxGroupId
,
Integer
praiseNum
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/WeixinClockPraiseDao.java
View file @
bc49117d
...
@@ -2,6 +2,7 @@ package com.pcloud.book.weixinclock.dao;
...
@@ -2,6 +2,7 @@ package com.pcloud.book.weixinclock.dao;
import
com.pcloud.book.weixinclock.dto.GetByMemberAndUserDto
;
import
com.pcloud.book.weixinclock.dto.GetByMemberAndUserDto
;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.dto.RankDto
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.common.core.dao.BaseDao
;
import
com.pcloud.common.core.dao.BaseDao
;
...
@@ -26,4 +27,26 @@ public interface WeixinClockPraiseDao extends BaseDao<WeixinClockPraise> {
...
@@ -26,4 +27,26 @@ public interface WeixinClockPraiseDao extends BaseDao<WeixinClockPraise> {
* @return
* @return
*/
*/
List
<
WeixinClockPraise
>
getMemberPraise
(
ListWeixinClockRankDto
dto
);
List
<
WeixinClockPraise
>
getMemberPraise
(
ListWeixinClockRankDto
dto
);
/**
* 获取打卡成员收到的点赞数
* @param wechatGroupId
* @param wxUserId
* @return
*/
Integer
getPraiseNum
(
String
wechatGroupId
,
String
wxUserId
);
/**
* 获取点赞列表
* @param wechatGroupId
* @param wxUserId
* @return
*/
List
<
WeixinClockPraise
>
listByWxUserId
(
String
wechatGroupId
,
String
wxUserId
);
/**
* 旧数据处理:获取所有的打卡成员收到的点赞数
* @return
*/
List
<
RankDto
>
listAll
();
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/impl/WeixinClockMemberDaoImpl.java
View file @
bc49117d
...
@@ -100,4 +100,26 @@ public class WeixinClockMemberDaoImpl extends BaseDaoImpl<WeixinClockMember> imp
...
@@ -100,4 +100,26 @@ public class WeixinClockMemberDaoImpl extends BaseDaoImpl<WeixinClockMember> imp
map
.
put
(
"wechatGroupId"
,
wxGroupId
);
map
.
put
(
"wechatGroupId"
,
wxGroupId
);
return
super
.
getSqlSession
().
selectOne
(
getStatement
(
"getClockWechatUserRankByWxUserId"
),
map
);
return
super
.
getSqlSession
().
selectOne
(
getStatement
(
"getClockWechatUserRankByWxUserId"
),
map
);
}
}
@Override
public
void
updateScore
(
Long
weixinClockMemberId
,
Integer
isCancel
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"weixinClockMemberId"
,
weixinClockMemberId
);
map
.
put
(
"isCancel"
,
isCancel
);
super
.
sqlSessionTemplate
.
update
(
getStatement
(
"updateScore"
),
map
);
}
@Override
public
void
initScore
()
{
super
.
sqlSessionTemplate
.
update
(
getStatement
(
"initScore"
));
}
@Override
public
void
addPraiseNum
(
String
wxUserId
,
String
wxGroupId
,
Integer
praiseNum
){
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"wxUserId"
,
wxUserId
);
map
.
put
(
"wxGroupId"
,
wxGroupId
);
map
.
put
(
"praiseNum"
,
praiseNum
);
super
.
sqlSessionTemplate
.
update
(
getStatement
(
"addPraiseNum"
),
map
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/impl/WeixinClockPraiseDaoImpl.java
View file @
bc49117d
...
@@ -3,12 +3,15 @@ package com.pcloud.book.weixinclock.dao.impl;
...
@@ -3,12 +3,15 @@ package com.pcloud.book.weixinclock.dao.impl;
import
com.pcloud.book.weixinclock.dao.WeixinClockPraiseDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockPraiseDao
;
import
com.pcloud.book.weixinclock.dto.GetByMemberAndUserDto
;
import
com.pcloud.book.weixinclock.dto.GetByMemberAndUserDto
;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.dto.RankDto
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* @Describe: 打卡点赞dao实现类
* @Describe: 打卡点赞dao实现类
...
@@ -26,4 +29,25 @@ public class WeixinClockPraiseDaoImpl extends BaseDaoImpl<WeixinClockPraise> imp
...
@@ -26,4 +29,25 @@ public class WeixinClockPraiseDaoImpl extends BaseDaoImpl<WeixinClockPraise> imp
public
List
<
WeixinClockPraise
>
getMemberPraise
(
ListWeixinClockRankDto
dto
)
{
public
List
<
WeixinClockPraise
>
getMemberPraise
(
ListWeixinClockRankDto
dto
)
{
return
super
.
sqlSessionTemplate
.
selectList
(
getStatement
(
"getMemberPraise"
),
dto
);
return
super
.
sqlSessionTemplate
.
selectList
(
getStatement
(
"getMemberPraise"
),
dto
);
}
}
@Override
public
Integer
getPraiseNum
(
String
wechatGroupId
,
String
wxUserId
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"wechatGroupId"
,
wechatGroupId
);
paramMap
.
put
(
"wxUserId"
,
wxUserId
);
return
super
.
sqlSessionTemplate
.
selectOne
(
getStatement
(
"getPraiseNum"
),
paramMap
);
}
@Override
public
List
<
WeixinClockPraise
>
listByWxUserId
(
String
wechatGroupId
,
String
wxUserId
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"wechatGroupId"
,
wechatGroupId
);
paramMap
.
put
(
"wxUserId"
,
wxUserId
);
return
super
.
sqlSessionTemplate
.
selectList
(
getStatement
(
"listByWxUserId"
),
paramMap
);
}
@Override
public
List
<
RankDto
>
listAll
()
{
return
super
.
sqlSessionTemplate
.
selectList
(
getStatement
(
"listAll"
));
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dto/RankDto.java
View file @
bc49117d
...
@@ -34,6 +34,12 @@ public class RankDto extends BaseDto {
...
@@ -34,6 +34,12 @@ public class RankDto extends BaseDto {
@ApiModelProperty
(
"当前用户是否点赞"
)
@ApiModelProperty
(
"当前用户是否点赞"
)
private
Integer
isPraise
;
private
Integer
isPraise
;
@ApiModelProperty
(
"得分(打卡分+点赞分)"
)
private
Integer
score
;
@ApiModelProperty
(
"群id"
)
private
String
wxGroupId
;
public
Integer
getRankNum
()
{
public
Integer
getRankNum
()
{
return
rankNum
;
return
rankNum
;
}
}
...
@@ -90,6 +96,22 @@ public class RankDto extends BaseDto {
...
@@ -90,6 +96,22 @@ public class RankDto extends BaseDto {
this
.
isPraise
=
isPraise
;
this
.
isPraise
=
isPraise
;
}
}
public
Integer
getScore
()
{
return
score
;
}
public
void
setScore
(
Integer
score
)
{
this
.
score
=
score
;
}
public
String
getWxGroupId
()
{
return
wxGroupId
;
}
public
void
setWxGroupId
(
String
wxGroupId
)
{
this
.
wxGroupId
=
wxGroupId
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"RankDto{"
+
return
"RankDto{"
+
...
...
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/entity/WeixinClockMember.java
View file @
bc49117d
...
@@ -40,6 +40,9 @@ public class WeixinClockMember extends BaseEntity {
...
@@ -40,6 +40,9 @@ public class WeixinClockMember extends BaseEntity {
@ApiModelProperty
(
"打卡天数"
)
@ApiModelProperty
(
"打卡天数"
)
private
Integer
allClockDay
;
private
Integer
allClockDay
;
@ApiModelProperty
(
"分数(打卡得分加点赞得分)"
)
private
Integer
score
;
@ApiModelProperty
(
"微信用户ID"
)
@ApiModelProperty
(
"微信用户ID"
)
private
Long
wechatUserId
;
private
Long
wechatUserId
;
...
@@ -111,6 +114,14 @@ public class WeixinClockMember extends BaseEntity {
...
@@ -111,6 +114,14 @@ public class WeixinClockMember extends BaseEntity {
this
.
allClockDay
=
allClockDay
;
this
.
allClockDay
=
allClockDay
;
}
}
public
Integer
getScore
()
{
return
score
;
}
public
void
setScore
(
Integer
score
)
{
this
.
score
=
score
;
}
public
Long
getWechatUserId
()
{
public
Long
getWechatUserId
()
{
return
wechatUserId
;
return
wechatUserId
;
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/facade/WeixinClockFacade.java
View file @
bc49117d
...
@@ -120,4 +120,13 @@ public interface WeixinClockFacade {
...
@@ -120,4 +120,13 @@ public interface WeixinClockFacade {
@RequestParam
(
value
=
"wxUserId"
,
required
=
false
)
String
wxUserId
)
@RequestParam
(
value
=
"wxUserId"
,
required
=
false
)
String
wxUserId
)
throws
BizException
,
PermissionException
;
throws
BizException
,
PermissionException
;
@ApiOperation
(
"获取分享成员的排名信息"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"userInfo"
,
value
=
"Cookie"
,
dataType
=
"string"
,
paramType
=
"header"
),
@ApiImplicitParam
(
name
=
"wxGroupId"
,
value
=
"wxGroupId"
,
dataType
=
"string"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"wxUserId"
,
value
=
"wxUserId"
,
dataType
=
"string"
,
paramType
=
"query"
)
})
@RequestMapping
(
value
=
"getShareMemberRank"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getShareMemberRank
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestParam
(
value
=
"wxGroupId"
)
String
wxGroupId
,
@RequestParam
(
value
=
"wxUserId"
)
String
wxUserId
)
throws
BizException
,
PermissionException
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/facade/impl/WeixinClockFacadeImpl.java
View file @
bc49117d
...
@@ -217,4 +217,19 @@ public class WeixinClockFacadeImpl implements WeixinClockFacade {
...
@@ -217,4 +217,19 @@ public class WeixinClockFacadeImpl implements WeixinClockFacade {
return
new
ResponseDto
<>(
weixinClockBiz
.
getClockWechatUserRank
(
wechatUserId
,
wxGroupId
,
wxUserId
));
return
new
ResponseDto
<>(
weixinClockBiz
.
getClockWechatUserRank
(
wechatUserId
,
wxGroupId
,
wxUserId
));
}
}
@Override
@RequestMapping
(
value
=
"getShareMemberRank"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
getShareMemberRank
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestParam
(
value
=
"wxGroupId"
)
String
wxGroupId
,
@RequestParam
(
value
=
"wxUserId"
)
String
wxUserId
)
throws
BizException
,
PermissionException
{
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_PARTY_ID
);
return
new
ResponseDto
<>(
weixinClockBiz
.
getShareMemberRank
(
wxGroupId
,
wxUserId
));
}
@RequestMapping
(
value
=
"solveOldData"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
solveOldData
(){
weixinClockBiz
.
solveOldData
();
return
new
ResponseDto
<>();
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/facade/impl/WeixinClockPraiseFacadeImpl.java
View file @
bc49117d
...
@@ -5,14 +5,17 @@ import com.pcloud.book.weixinclock.biz.WeixinClockPraiseBiz;
...
@@ -5,14 +5,17 @@ import com.pcloud.book.weixinclock.biz.WeixinClockPraiseBiz;
import
com.pcloud.book.weixinclock.vo.request.PraiseForMemberRequestVO
;
import
com.pcloud.book.weixinclock.vo.request.PraiseForMemberRequestVO
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.CookieValue
;
import
org.springframework.web.bind.annotation.CookieValue
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Optional
;
import
java.util.Optional
;
...
@@ -49,4 +52,19 @@ public class WeixinClockPraiseFacadeImpl {
...
@@ -49,4 +52,19 @@ public class WeixinClockPraiseFacadeImpl {
weixinClockPraiseBiz
.
praiseForMember
(
vo
);
weixinClockPraiseBiz
.
praiseForMember
(
vo
);
return
new
ResponseDto
<>();
return
new
ResponseDto
<>();
}
}
@ApiOperation
(
value
=
"获取点赞用户列表"
,
httpMethod
=
"GET"
)
@GetMapping
(
"listPraiseUser"
)
public
ResponseDto
<?>
listPraiseUser
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestParam
(
"wxGroupId"
)
String
wxGroupId
,
@RequestParam
(
"wxUserId"
)
String
wxUserId
,
@RequestParam
(
"currentPage"
)
Integer
currentPage
,
@RequestParam
(
"numPerPage"
)
Integer
numPerPage
)
throws
BizException
,
PermissionException
{
if
(
null
==
wxGroupId
||
null
==
wxUserId
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数为空"
);
}
PageParam
pageParam
=
new
PageParam
(
currentPage
,
numPerPage
);
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
return
new
ResponseDto
<>(
weixinClockPraiseBiz
.
listPraiseUser
(
wxGroupId
,
wxUserId
,
pageParam
));
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/vo/response/DoShareResponseVO.java
View file @
bc49117d
...
@@ -34,6 +34,9 @@ public class DoShareResponseVO extends BaseVO {
...
@@ -34,6 +34,9 @@ public class DoShareResponseVO extends BaseVO {
@ApiModelProperty
(
"打卡次数"
)
@ApiModelProperty
(
"打卡次数"
)
private
Integer
clockNum
;
private
Integer
clockNum
;
@ApiModelProperty
(
"获得的点赞数"
)
private
Integer
praiseNum
;
@ApiModelProperty
(
"开始打卡日期"
)
@ApiModelProperty
(
"开始打卡日期"
)
@JsonFormat
(
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
...
...
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/vo/response/ListPraiseUserResponseVO.java
0 → 100644
View file @
bc49117d
package
com
.
pcloud
.
book
.
weixinclock
.
vo
.
response
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.vo.BaseVO
;
import
com.pcloud.readercenter.wechat.entity.WechatUser
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Data
;
/**
* @Describe: 获取点赞用户列表返回vo
* @Author: zhangdongwei
* @Date: Create on 21:37 2019/11/11 0011
*/
@Data
@ApiModel
(
"获取点赞用户列表返回vo"
)
public
class
ListPraiseUserResponseVO
extends
BaseVO
{
/**
* 点赞用户id
*/
private
Long
priseUserId
;
/**
* 点赞用户头像
*/
private
String
headPic
;
/**
* 点赞用户昵称
*/
private
String
userName
;
/**
* 点赞时间
*/
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
praiseTime
;
public
static
List
<
ListPraiseUserResponseVO
>
valueFromPraiseUser
(
List
<
WeixinClockPraise
>
weixinClockPraises
,
Map
<
Long
,
WechatUser
>
wechatUserMap
){
if
(
ListUtils
.
isEmpty
(
weixinClockPraises
)){
return
new
ArrayList
<>();
}
List
<
ListPraiseUserResponseVO
>
vos
=
new
ArrayList
<>();
for
(
WeixinClockPraise
weixinClockPraise
:
weixinClockPraises
){
ListPraiseUserResponseVO
vo
=
new
ListPraiseUserResponseVO
();
vo
.
setPriseUserId
(
weixinClockPraise
.
getPraiseUserId
());
vo
.
setPraiseTime
(
weixinClockPraise
.
getUpdateTime
());
WechatUser
wechatUser
=
wechatUserMap
.
get
(
weixinClockPraise
.
getPraiseUserId
());
if
(
null
==
wechatUser
){
vos
.
add
(
vo
);
continue
;
}
vo
.
setUserName
(
wechatUser
.
getWechatUserNickname
());
vo
.
setHeadPic
(
wechatUser
.
getWechatUserHeadurl
());
vos
.
add
(
vo
);
}
return
vos
;
}
}
pcloud-service-book/src/main/resources/mapper/weixinclock/WeixinClockMember.Mapper.xml
View file @
bc49117d
...
@@ -11,22 +11,23 @@
...
@@ -11,22 +11,23 @@
<result
column=
"nickname"
property=
"nickname"
jdbcType=
"VARCHAR"
/>
<result
column=
"nickname"
property=
"nickname"
jdbcType=
"VARCHAR"
/>
<result
column=
"head_pic"
property=
"headPic"
jdbcType=
"VARCHAR"
/>
<result
column=
"head_pic"
property=
"headPic"
jdbcType=
"VARCHAR"
/>
<result
column=
"all_clock_day"
property=
"allClockDay"
jdbcType=
"INTEGER"
/>
<result
column=
"all_clock_day"
property=
"allClockDay"
jdbcType=
"INTEGER"
/>
<result
column=
"score"
property=
"score"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
</resultMap>
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
weixin_clock_member_id, weixin_clock_id, wx_user_id, book_group_classify_id, wx_group_id, nickname, head_pic, all_clock_day,
weixin_clock_member_id, weixin_clock_id, wx_user_id, book_group_classify_id, wx_group_id, nickname, head_pic, all_clock_day,
score,
create_time
create_time
</sql>
</sql>
<insert
id=
"insert"
parameterType=
"weixinClockMember"
useGeneratedKeys=
"true"
keyProperty=
"weixinClockMemberId"
flushCache=
"true"
>
<insert
id=
"insert"
parameterType=
"weixinClockMember"
useGeneratedKeys=
"true"
keyProperty=
"weixinClockMemberId"
flushCache=
"true"
>
INSERT INTO weixin_clock_member (
INSERT INTO weixin_clock_member (
weixin_clock_id, wx_user_id, book_group_classify_id, wx_group_id, nickname, head_pic, all_clock_day,
weixin_clock_id, wx_user_id, book_group_classify_id, wx_group_id, nickname, head_pic, all_clock_day,
score,
create_time, update_time,wechat_user_id
create_time, update_time,wechat_user_id
)
)
VALUES (
VALUES (
#{weixinClockId, jdbcType=BIGINT}, #{wxUserId, jdbcType=VARCHAR}, #{bookGroupClassifyId, jdbcType=BIGINT}, #{wxGroupId, jdbcType=VARCHAR},
#{weixinClockId, jdbcType=BIGINT}, #{wxUserId, jdbcType=VARCHAR}, #{bookGroupClassifyId, jdbcType=BIGINT}, #{wxGroupId, jdbcType=VARCHAR},
#{nickname, jdbcType=VARCHAR}, #{headPic, jdbcType=VARCHAR}, #{allClockDay, jdbcType=INTEGER}, NOW(), NOW(),#{wechatUserId, jdbcType=BIGINT}
#{nickname, jdbcType=VARCHAR}, #{headPic, jdbcType=VARCHAR}, #{allClockDay, jdbcType=INTEGER},
#{socre},
NOW(), NOW(),#{wechatUserId, jdbcType=BIGINT}
)
)
ON DUPLICATE KEY
ON DUPLICATE KEY
UPDATE
UPDATE
...
@@ -35,19 +36,19 @@
...
@@ -35,19 +36,19 @@
<select
id=
"listWeixinClockRank"
parameterType=
"map"
resultType=
"com.pcloud.book.weixinclock.dto.RankDto"
>
<select
id=
"listWeixinClockRank"
parameterType=
"map"
resultType=
"com.pcloud.book.weixinclock.dto.RankDto"
>
SELECT
SELECT
w.wx_user_id wxUserId, w.all_clock_day clockNum, w.nickname nickname, w.head_pic headPic, (@i :=@i + 1) rankNum
w.wx_user_id wxUserId, w.all_clock_day clockNum, w.
score score, w.
nickname nickname, w.head_pic headPic, (@i :=@i + 1) rankNum
FROM
FROM
weixin_clock_member w,
weixin_clock_member w,
(SELECT @i := 0) i
(SELECT @i := 0) i
WHERE
WHERE
w.wx_group_id = #{wxGroupId, jdbcType=VARCHAR}
w.wx_group_id = #{wxGroupId, jdbcType=VARCHAR}
AND (w.all_clock_day
<![CDATA[ >]]>
0 or w.wx_user_id = #{wxUserId, jdbcType=VARCHAR})
AND (w.all_clock_day
<![CDATA[ >]]>
0 or w.wx_user_id = #{wxUserId, jdbcType=VARCHAR})
ORDER BY w.
all_clock_day DESC
ORDER BY w.
score desc, w.update_time asc
</select>
</select>
<select
id=
"getByWxUserId"
parameterType=
"map"
resultMap=
"BaseResultMap"
>
<select
id=
"getByWxUserId"
parameterType=
"map"
resultMap=
"BaseResultMap"
>
select
select
weixin_clock_member_id, weixin_clock_id, wx_user_id, book_group_classify_id, wx_group_id, nickname, head_pic, all_clock_day, create_time
weixin_clock_member_id, weixin_clock_id, wx_user_id, book_group_classify_id, wx_group_id, nickname, head_pic, all_clock_day,
score,
create_time
from
from
weixin_clock_member
weixin_clock_member
where
where
...
@@ -60,6 +61,7 @@
...
@@ -60,6 +61,7 @@
update weixin_clock_member
update weixin_clock_member
set
set
all_clock_day = all_clock_day + 1,
all_clock_day = all_clock_day + 1,
score = score + 1,
wechat_user_id = #{wechatUserId, jdbcType=BIGINT},
wechat_user_id = #{wechatUserId, jdbcType=BIGINT},
update_time = NOW()
update_time = NOW()
where
where
...
@@ -73,19 +75,19 @@
...
@@ -73,19 +75,19 @@
select wx_user_id, @rowNum:=0 from weixin_clock_member
select wx_user_id, @rowNum:=0 from weixin_clock_member
where wx_group_id = #{wechatGroupId}
where wx_group_id = #{wechatGroupId}
AND (all_clock_day
<![CDATA[ >]]>
0 or wx_user_id = #{userWxId, jdbcType=VARCHAR})
AND (all_clock_day
<![CDATA[ >]]>
0 or wx_user_id = #{userWxId, jdbcType=VARCHAR})
order by
all_clock_day
desc, update_time asc
order by
score
desc, update_time asc
) a
) a
) cm where cm.wx_user_id = #{userWxId}
) cm where cm.wx_user_id = #{userWxId}
LIMIT 1
LIMIT 1
</select>
</select>
<select
id=
"getClockWechatUserRank"
parameterType=
"map"
resultType=
"com.pcloud.book.weixinclock.dto.RankDto"
>
<select
id=
"getClockWechatUserRank"
parameterType=
"map"
resultType=
"com.pcloud.book.weixinclock.dto.RankDto"
>
select cm.wx_user_id wxUserId, cm.rankNum rankNum, cm.clockNum clockNum, cm.nickname nickname, cm.headPic headPic from (
select cm.wx_user_id wxUserId, cm.rankNum rankNum, cm.clockNum clockNum, cm.nickname nickname, cm.headPic headPic
, cm.score score
from (
select wx_user_id, (@rowNum:=@rowNum+1) AS rankNum, all_clock_day clockNum, nickname nickname, head_pic headPic, wechat_user_id from (
select wx_user_id, (@rowNum:=@rowNum+1) AS rankNum, all_clock_day clockNum, nickname nickname,
score,
head_pic headPic, wechat_user_id from (
select wx_user_id, all_clock_day, nickname, head_pic, wechat_user_id, @rowNum:=0 from weixin_clock_member
select wx_user_id, all_clock_day, nickname,
score,
head_pic, wechat_user_id, @rowNum:=0 from weixin_clock_member
where wx_group_id = #{wechatGroupId}
where wx_group_id = #{wechatGroupId}
AND (all_clock_day
<![CDATA[ >]]>
0 or wechat_user_id = #{wechatUserId, jdbcType=VARCHAR})
AND (all_clock_day
<![CDATA[ >]]>
0 or wechat_user_id = #{wechatUserId, jdbcType=VARCHAR})
order by
all_clock_day
desc, update_time asc
order by
score
desc, update_time asc
) a
) a
) cm where cm.wechat_user_id = #{wechatUserId}
) cm where cm.wechat_user_id = #{wechatUserId}
LIMIT 1
LIMIT 1
...
@@ -99,15 +101,37 @@
...
@@ -99,15 +101,37 @@
</update>
</update>
<select
id=
"getClockWechatUserRankByWxUserId"
parameterType=
"map"
resultType=
"com.pcloud.book.weixinclock.dto.RankDto"
>
<select
id=
"getClockWechatUserRankByWxUserId"
parameterType=
"map"
resultType=
"com.pcloud.book.weixinclock.dto.RankDto"
>
select cm.wx_user_id wxUserId, cm.rankNum rankNum, cm.clockNum clockNum, cm.nickname nickname, cm.headPic headPic from (
select cm.wx_user_id wxUserId, cm.rankNum rankNum, cm.clockNum clockNum, cm.
score score, cm.
nickname nickname, cm.headPic headPic from (
select wx_user_id, (@rowNum:=@rowNum+1) AS rankNum, all_clock_day clockNum, nickname nickname, head_pic headPic, wechat_user_id from (
select wx_user_id, (@rowNum:=@rowNum+1) AS rankNum, all_clock_day clockNum,
score,
nickname nickname, head_pic headPic, wechat_user_id from (
select wx_user_id, all_clock_day, nickname, head_pic, wechat_user_id, @rowNum:=0 from weixin_clock_member
select wx_user_id, all_clock_day,
score,
nickname, head_pic, wechat_user_id, @rowNum:=0 from weixin_clock_member
where wx_group_id = #{wechatGroupId}
where wx_group_id = #{wechatGroupId}
AND (all_clock_day
<![CDATA[ >]]>
0 or wx_user_id = #{wxUserId, jdbcType=VARCHAR})
AND (all_clock_day
<![CDATA[ >]]>
0 or wx_user_id = #{wxUserId, jdbcType=VARCHAR})
order by
all_clock_day
desc, update_time asc
order by
score
desc, update_time asc
) a
) a
) cm where cm.wx_user_id = #{wxUserId}
) cm where cm.wx_user_id = #{wxUserId}
LIMIT 1
LIMIT 1
</select>
</select>
<select
id=
"updateScore"
parameterType=
"map"
>
update weixin_clock_member set
<choose>
<when
test=
"isCancel == 1"
>
score = score + 1
</when>
<otherwise>
score = score - 1
</otherwise>
</choose>
where weixin_clock_member_id = #{weixinClockMemberId}
</select>
<!--旧数据处理:初始化分数-->
<update
id=
"initScore"
>
update weixin_clock_member set score = all_clock_day
</update>
<!--旧数据处理-->
<update
id=
"addPraiseNum"
parameterType=
"map"
>
update weixin_clock_member set score = score + #{praiseNum} where wx_user_id = #{wxUserId} and wx_group_id = #{wxGroupId}
</update>
</mapper>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/weixinclock/WeixinClockPraise.Mapper.xml
View file @
bc49117d
...
@@ -64,4 +64,19 @@
...
@@ -64,4 +64,19 @@
</foreach>
</foreach>
and is_cancel = 1
and is_cancel = 1
</select>
</select>
<select
id=
"getPraiseNum"
parameterType=
"map"
resultType=
"integer"
>
select count(1) from weixin_clock_praise
where wx_user_id = #{wxUserId} and wx_group_id = #{wechatGroupId} and is_cancel = 1
</select>
<select
id=
"listByWxUserId"
parameterType=
"map"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from weixin_clock_praise
where wx_user_id = #{wxUserId} and wx_group_id = #{wechatGroupId} and is_cancel = 1
</select>
<select
id=
"listAll"
resultType=
"com.pcloud.book.weixinclock.dto.RankDto"
>
select wx_group_id wxGroupId, wx_user_id wxUserId, count(1) praiseNum from weixin_clock_praise
where is_cancel = 1 group by wxGroupId, wxUserId having praiseNum > 0
</select>
</mapper>
</mapper>
\ No newline at end of file
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