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
4b59e54c
Commit
4b59e54c
authored
Nov 04, 2019
by
zhangdongwei-intern
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat-1001865: 群打卡排行榜新增点赞和分享功能
parent
d2167c92
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
41 changed files
with
1074 additions
and
15 deletions
+1074
-15
GroupQrcodeDao.java
...c/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
+7
-0
GroupQrcodeDaoImpl.java
...va/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
+5
-0
LunarCalendarUtils.java
.../java/com/pcloud/book/util/common/LunarCalendarUtils.java
+0
-0
WeixinClockBiz.java
.../java/com/pcloud/book/weixinclock/biz/WeixinClockBiz.java
+3
-2
WeixinClockPraiseBiz.java
...com/pcloud/book/weixinclock/biz/WeixinClockPraiseBiz.java
+27
-0
WeixinClockShareBiz.java
.../com/pcloud/book/weixinclock/biz/WeixinClockShareBiz.java
+19
-0
WeixinClockBizImpl.java
.../pcloud/book/weixinclock/biz/impl/WeixinClockBizImpl.java
+26
-8
WeixinClockPraiseBizImpl.java
...d/book/weixinclock/biz/impl/WeixinClockPraiseBizImpl.java
+106
-0
WeixinClockShareBizImpl.java
...ud/book/weixinclock/biz/impl/WeixinClockShareBizImpl.java
+77
-0
WeixinClockBrowseDao.java
...com/pcloud/book/weixinclock/dao/WeixinClockBrowseDao.java
+13
-0
WeixinClockMemberDao.java
...com/pcloud/book/weixinclock/dao/WeixinClockMemberDao.java
+8
-0
WeixinClockPraiseDao.java
...com/pcloud/book/weixinclock/dao/WeixinClockPraiseDao.java
+29
-0
WeixinClockShareDao.java
.../com/pcloud/book/weixinclock/dao/WeixinClockShareDao.java
+13
-0
WeixinClockShareWordDao.java
.../pcloud/book/weixinclock/dao/WeixinClockShareWordDao.java
+17
-0
WeixinClockTopicDao.java
.../com/pcloud/book/weixinclock/dao/WeixinClockTopicDao.java
+10
-0
WeixinClockBrowseDaoImpl.java
...d/book/weixinclock/dao/impl/WeixinClockBrowseDaoImpl.java
+18
-0
WeixinClockMemberDaoImpl.java
...d/book/weixinclock/dao/impl/WeixinClockMemberDaoImpl.java
+8
-0
WeixinClockPraiseDaoImpl.java
...d/book/weixinclock/dao/impl/WeixinClockPraiseDaoImpl.java
+29
-0
WeixinClockShareDaoImpl.java
...ud/book/weixinclock/dao/impl/WeixinClockShareDaoImpl.java
+17
-0
WeixinClockShareWordDaoImpl.java
...ook/weixinclock/dao/impl/WeixinClockShareWordDaoImpl.java
+20
-0
WeixinClockTopicDaoImpl.java
...ud/book/weixinclock/dao/impl/WeixinClockTopicDaoImpl.java
+9
-0
GetByMemberAndUserDto.java
...om/pcloud/book/weixinclock/dto/GetByMemberAndUserDto.java
+19
-0
ListWeixinClockRankDto.java
...m/pcloud/book/weixinclock/dto/ListWeixinClockRankDto.java
+41
-0
RankDto.java
...rc/main/java/com/pcloud/book/weixinclock/dto/RankDto.java
+35
-0
WeixinClockBrowse.java
...com/pcloud/book/weixinclock/entity/WeixinClockBrowse.java
+33
-0
WeixinClockPraise.java
...com/pcloud/book/weixinclock/entity/WeixinClockPraise.java
+38
-0
WeixinClockShare.java
.../com/pcloud/book/weixinclock/entity/WeixinClockShare.java
+32
-0
WeixinClockShareWord.java
.../pcloud/book/weixinclock/entity/WeixinClockShareWord.java
+17
-0
WeixinClockFacade.java
...com/pcloud/book/weixinclock/facade/WeixinClockFacade.java
+4
-1
WeixinClockFacadeImpl.java
...d/book/weixinclock/facade/impl/WeixinClockFacadeImpl.java
+15
-2
WeixinClockPraiseFacadeImpl.java
.../weixinclock/facade/impl/WeixinClockPraiseFacadeImpl.java
+52
-0
WeixinClockShareFacadeImpl.java
...k/weixinclock/facade/impl/WeixinClockShareFacadeImpl.java
+52
-0
PraiseForMemberRequestVO.java
...book/weixinclock/vo/request/PraiseForMemberRequestVO.java
+46
-0
DoShareResponseVO.java
...cloud/book/weixinclock/vo/response/DoShareResponseVO.java
+71
-0
GroupQrcode.Mapper.xml
...ok/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
+6
-0
WeixinClockBrowse.Mapper.xml
...resources/mapper/weixinclock/WeixinClockBrowse.Mapper.xml
+21
-0
WeixinClockMember.Mapper.xml
...resources/mapper/weixinclock/WeixinClockMember.Mapper.xml
+15
-2
WeixinClockPraise.Mapper.xml
...resources/mapper/weixinclock/WeixinClockPraise.Mapper.xml
+68
-0
WeixinClockShare.Mapper.xml
.../resources/mapper/weixinclock/WeixinClockShare.Mapper.xml
+19
-0
WeixinClockShareWord.Mapper.xml
...ources/mapper/weixinclock/WeixinClockShareWord.Mapper.xml
+21
-0
WeixinClockTopic.Mapper.xml
.../resources/mapper/weixinclock/WeixinClockTopic.Mapper.xml
+8
-0
No files found.
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
View file @
4b59e54c
...
@@ -273,4 +273,11 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
...
@@ -273,4 +273,11 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
* @return
* @return
*/
*/
List
<
Long
>
getIdsByBookGroupId
(
Long
bookGroupId
);
List
<
Long
>
getIdsByBookGroupId
(
Long
bookGroupId
);
/**
* 根据群id获取群信息
* @param wxGroupId
* @return
*/
GroupQrcode
getByWxGroupId
(
String
wxGroupId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
View file @
4b59e54c
...
@@ -277,4 +277,9 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
...
@@ -277,4 +277,9 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
public
List
<
Long
>
getIdsByBookGroupId
(
Long
bookGroupId
)
{
public
List
<
Long
>
getIdsByBookGroupId
(
Long
bookGroupId
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getIdsByBookGroupId"
),
bookGroupId
);
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"getIdsByBookGroupId"
),
bookGroupId
);
}
}
@Override
public
GroupQrcode
getByWxGroupId
(
String
wxGroupId
)
{
return
super
.
getSessionTemplate
().
selectOne
(
getStatement
(
"getByWxGroupId"
),
wxGroupId
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/util/common/LunarCalendarUtils.java
0 → 100644
View file @
4b59e54c
This diff is collapsed.
Click to expand it.
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/WeixinClockBiz.java
View file @
4b59e54c
...
@@ -2,6 +2,7 @@ package com.pcloud.book.weixinclock.biz;
...
@@ -2,6 +2,7 @@ package com.pcloud.book.weixinclock.biz;
import
com.pcloud.book.group.vo.BookGroupClassifyVO
;
import
com.pcloud.book.group.vo.BookGroupClassifyVO
;
import
com.pcloud.book.group.vo.ListGroupClassifyParam
;
import
com.pcloud.book.group.vo.ListGroupClassifyParam
;
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.dto.WeixinClockDto
;
import
com.pcloud.book.weixinclock.dto.WeixinClockDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
...
@@ -77,10 +78,10 @@ public interface WeixinClockBiz {
...
@@ -77,10 +78,10 @@ public interface WeixinClockBiz {
/**
/**
* 获取某个群内的打卡排行榜
* 获取某个群内的打卡排行榜
* @param
wxGroupId
* @param
dto
* @return
* @return
*/
*/
PageBeanNew
<
RankDto
>
listWeixinClockRank
(
String
wxGroupId
,
String
wxUserId
,
Integer
currentPage
,
Integer
numPerPage
);
PageBeanNew
<
RankDto
>
listWeixinClockRank
(
ListWeixinClockRankDto
dto
);
/**
/**
* 获取某个群内某个用户的信息
* 获取某个群内某个用户的信息
...
...
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/WeixinClockPraiseBiz.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
biz
;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.dto.RankDto
;
import
com.pcloud.book.weixinclock.vo.request.PraiseForMemberRequestVO
;
import
java.util.List
;
/**
* @Describe: 微信打卡点赞逻辑层
* @Author: zhangdongwei
* @Date: Create on 9:10 2019/10/23 0023
*/
public
interface
WeixinClockPraiseBiz
{
/**
* 为打卡成员点赞/取消点赞
* @param vo
*/
void
praiseForMember
(
PraiseForMemberRequestVO
vo
);
/**
* 填充打卡排行榜点赞信息
* @param list
* @param listWeixinClockRankDto
*/
void
fillPraise
(
List
<
RankDto
>
list
,
ListWeixinClockRankDto
listWeixinClockRankDto
);
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/WeixinClockShareBiz.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
biz
;
import
com.pcloud.book.weixinclock.vo.response.DoShareResponseVO
;
/**
* @Describe: 微信群打卡分享逻辑层
* @Author: zhangdongwei
* @Date: Create on 10:23 2019/10/29 0029
*/
public
interface
WeixinClockShareBiz
{
/**
* 微信群打卡分享
* @param wechatUserId
* @param wxGroupId
* @param wxUserId
* @return
*/
DoShareResponseVO
doShare
(
Long
wechatUserId
,
String
wxGroupId
,
String
wxUserId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/impl/WeixinClockBizImpl.java
View file @
4b59e54c
...
@@ -17,7 +17,9 @@ import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
...
@@ -17,7 +17,9 @@ import com.pcloud.book.group.dto.GroupClassifyQrcodeDTO;
import
com.pcloud.book.group.vo.BookGroupClassifyVO
;
import
com.pcloud.book.group.vo.BookGroupClassifyVO
;
import
com.pcloud.book.group.vo.ListGroupClassifyParam
;
import
com.pcloud.book.group.vo.ListGroupClassifyParam
;
import
com.pcloud.book.weixinclock.biz.WeixinClockBiz
;
import
com.pcloud.book.weixinclock.biz.WeixinClockBiz
;
import
com.pcloud.book.weixinclock.biz.WeixinClockPraiseBiz
;
import
com.pcloud.book.weixinclock.check.WeixinClockCheck
;
import
com.pcloud.book.weixinclock.check.WeixinClockCheck
;
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
;
...
@@ -25,11 +27,14 @@ import com.pcloud.book.weixinclock.dao.WeixinClockPrizeRecordDao;
...
@@ -25,11 +27,14 @@ 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
;
import
com.pcloud.book.weixinclock.dto.DrawRewardDto
;
import
com.pcloud.book.weixinclock.dto.DrawRewardDto
;
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.dto.WeixinClockDto
;
import
com.pcloud.book.weixinclock.dto.WeixinClockDto
;
import
com.pcloud.book.weixinclock.entity.WeixinClock
;
import
com.pcloud.book.weixinclock.entity.WeixinClock
;
import
com.pcloud.book.weixinclock.entity.WeixinClockBrowse
;
import
com.pcloud.book.weixinclock.entity.WeixinClockGroupClassify
;
import
com.pcloud.book.weixinclock.entity.WeixinClockGroupClassify
;
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.WeixinClockPrizeRecord
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPrizeRecord
;
import
com.pcloud.book.weixinclock.entity.WeixinClockTopic
;
import
com.pcloud.book.weixinclock.entity.WeixinClockTopic
;
import
com.pcloud.channelcenter.base.constants.ChannelConstants
;
import
com.pcloud.channelcenter.base.constants.ChannelConstants
;
...
@@ -125,6 +130,10 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
...
@@ -125,6 +130,10 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
private
WeixinClockPrizeRecordDao
weixinClockPrizeRecordDao
;
private
WeixinClockPrizeRecordDao
weixinClockPrizeRecordDao
;
@Autowired
@Autowired
private
AdviserConsr
adviserConsr
;
private
AdviserConsr
adviserConsr
;
@Autowired
private
WeixinClockPraiseBiz
weixinClockPraiseBiz
;
@Autowired
private
WeixinClockBrowseDao
weixinClockBrowseDao
;
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
();
...
@@ -326,6 +335,7 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
...
@@ -326,6 +335,7 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
WeixinClockDto
weixinClockDto
=
weixinClockDao
.
getWeixinClockBaseInfo
(
weixinClockId
);
WeixinClockDto
weixinClockDto
=
weixinClockDao
.
getWeixinClockBaseInfo
(
weixinClockId
);
if
(
null
!=
weixinClockDto
&&
null
!=
weixinClockDto
.
getClockPrizeId
()
&&
!
weixinClockDto
.
getClockPrizeId
().
equals
(
0L
))
{
if
(
null
!=
weixinClockDto
&&
null
!=
weixinClockDto
.
getClockPrizeId
()
&&
!
weixinClockDto
.
getClockPrizeId
().
equals
(
0L
))
{
AppDto
appDto
=
appConsr
.
getBaseById
(
weixinClockDto
.
getClockPrizeId
());
AppDto
appDto
=
appConsr
.
getBaseById
(
weixinClockDto
.
getClockPrizeId
());
appDto
=
null
==
appDto
?
new
AppDto
()
:
appDto
;
DrawRewardDto
drawRewardDto
=
new
DrawRewardDto
();
DrawRewardDto
drawRewardDto
=
new
DrawRewardDto
();
drawRewardDto
.
setAppId
(
weixinClockDto
.
getClockPrizeId
());
drawRewardDto
.
setAppId
(
weixinClockDto
.
getClockPrizeId
());
drawRewardDto
.
setChannelId
(
appDto
.
getChannelId
());
drawRewardDto
.
setChannelId
(
appDto
.
getChannelId
());
...
@@ -584,21 +594,29 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
...
@@ -584,21 +594,29 @@ public class WeixinClockBizImpl implements WeixinClockBiz {
/**
/**
* 获取某个群内的打卡排行榜
* 获取某个群内的打卡排行榜
* @param wxGroupId
* @param dto
* @param wxUserId
* @return
* @return
*/
*/
@Override
@Override
@ParamLog
(
"获取某个群内的打卡排行榜"
)
@ParamLog
(
"获取某个群内的打卡排行榜"
)
public
PageBeanNew
<
RankDto
>
listWeixinClockRank
(
String
wxGroupId
,
String
wxUserId
,
Integer
currentPage
,
Integer
numPerPage
)
{
public
PageBeanNew
<
RankDto
>
listWeixinClockRank
(
ListWeixinClockRankDto
dto
)
{
PageParam
pageParam
=
new
PageParam
(
currentPage
,
numPerPage
);
PageParam
pageParam
=
new
PageParam
(
dto
.
getCurrentPage
(),
dto
.
getNumPerPage
()
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"wxGroupId"
,
wxGroupId
);
map
.
put
(
"wxGroupId"
,
dto
.
getWxGroupId
()
);
map
.
put
(
"wxUserId"
,
wxUserId
);
map
.
put
(
"wxUserId"
,
dto
.
getWxUserId
()
);
PageBeanNew
<
RankDto
>
rankDtos
=
weixinClockMemberDao
.
listPageNew
(
pageParam
,
map
,
"listWeixinClockRank"
);
PageBeanNew
<
RankDto
>
rankDtos
=
weixinClockMemberDao
.
listPageNew
(
pageParam
,
map
,
"listWeixinClockRank"
);
if
(
null
==
rankDtos
||
ListUtils
.
isEmpty
(
rankDtos
.
getRecordList
()))
{
if
(
null
==
rankDtos
||
ListUtils
.
isEmpty
(
rankDtos
.
getRecordList
()))
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
0
,
new
ArrayList
<>());
return
new
PageBeanNew
<>(
dto
.
getCurrentPage
(),
dto
.
getNumPerPage
(),
0
,
new
ArrayList
<>());
}
}
List
<
RankDto
>
list
=
rankDtos
.
getRecordList
();
weixinClockPraiseBiz
.
fillPraise
(
list
,
dto
);
rankDtos
.
setRecordList
(
list
);
//埋点,用户浏览排行榜记录
WeixinClockBrowse
clockBrowse
=
new
WeixinClockBrowse
();
BeanUtils
.
copyProperties
(
dto
,
clockBrowse
);
clockBrowse
.
setBrowseTime
(
new
Date
());
clockBrowse
.
setIpAddress
(
dto
.
getIpAddress
());
weixinClockBrowseDao
.
insert
(
clockBrowse
);
return
rankDtos
;
return
rankDtos
;
}
}
...
...
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/impl/WeixinClockPraiseBizImpl.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
biz
.
impl
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.weixinclock.biz.WeixinClockPraiseBiz
;
import
com.pcloud.book.weixinclock.dao.WeixinClockMemberDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockPraiseDao
;
import
com.pcloud.book.weixinclock.dto.GetByMemberAndUserDto
;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.dto.RankDto
;
import
com.pcloud.book.weixinclock.entity.WeixinClockMember
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.book.weixinclock.vo.request.PraiseForMemberRequestVO
;
import
com.pcloud.common.utils.ListUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
* @Describe: 微信打卡点赞逻辑层实现类
* @Author: zhangdongwei
* @Date: Create on 9:10 2019/10/23 0023
*/
@Service
(
"weixinClockPraiseBiz"
)
public
class
WeixinClockPraiseBizImpl
implements
WeixinClockPraiseBiz
{
@Autowired
private
WeixinClockPraiseDao
weixinClockPraiseDao
;
@Autowired
private
WeixinClockMemberDao
weixinClockMemberDao
;
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
praiseForMember
(
PraiseForMemberRequestVO
vo
)
{
//根据微信群id和打卡成员id获取打卡成员信息
WeixinClockMember
weixinClockMember
=
weixinClockMemberDao
.
getByWxUserId
(
vo
.
getWxGroupId
(),
vo
.
getWxUserId
());
Optional
.
ofNullable
(
weixinClockMember
).
orElseThrow
(()
->
new
BookBizException
(
BookBizException
.
ID_NOT_EXIST
,
"该打卡成员不存在,不能点赞"
));
if
(
weixinClockMember
.
getAllClockDay
()
<=
0
){
throw
new
BookBizException
(
BookBizException
.
ID_NOT_EXIST
,
"该打卡成员未打过卡,不能点赞"
);
}
//获取当天零点的时间
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
new
Date
());
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
0
);
calendar
.
set
(
Calendar
.
MINUTE
,
0
);
calendar
.
set
(
Calendar
.
SECOND
,
0
);
Date
zero
=
calendar
.
getTime
();
GetByMemberAndUserDto
dto
=
new
GetByMemberAndUserDto
();
dto
.
setCreateTime
(
zero
);
dto
.
setWechatUserId
(
vo
.
getPraiseUserId
());
dto
.
setWxGroupId
(
vo
.
getWxGroupId
());
dto
.
setWxUserId
(
vo
.
getWxUserId
());
WeixinClockPraise
oldWeixinClockPraise
=
weixinClockPraiseDao
.
getByMemberAndUser
(
dto
);
WeixinClockPraise
weixinClockPraise
=
PraiseForMemberRequestVO
.
valueToClockPraise
(
vo
);
weixinClockPraise
.
setWeixinClockId
(
weixinClockMember
.
getWeixinClockId
());
if
(
null
==
oldWeixinClockPraise
){
weixinClockPraise
.
setIsCancel
(
1
);
weixinClockPraiseDao
.
insert
(
weixinClockPraise
);
}
else
{
weixinClockPraise
.
setId
(
oldWeixinClockPraise
.
getId
());
weixinClockPraiseDao
.
update
(
weixinClockPraise
);
}
}
@Override
public
void
fillPraise
(
List
<
RankDto
>
list
,
ListWeixinClockRankDto
listWeixinClockRankDto
)
{
if
(
ListUtils
.
isEmpty
(
list
)){
return
;
}
List
<
String
>
wxUserIds
=
list
.
stream
().
map
(
RankDto:
:
getWxUserId
).
collect
(
Collectors
.
toList
());
if
(
ListUtils
.
isEmpty
(
wxUserIds
)){
return
;
}
listWeixinClockRankDto
.
setWxUserIdList
(
wxUserIds
);
List
<
WeixinClockPraise
>
weixinClockPraiseList
=
weixinClockPraiseDao
.
getMemberPraise
(
listWeixinClockRankDto
);
Map
<
String
,
List
<
WeixinClockPraise
>>
praiseMap
=
weixinClockPraiseList
.
stream
().
collect
(
Collectors
.
groupingBy
(
WeixinClockPraise:
:
getWxUserId
));
Map
<
String
,
Boolean
>
map
=
new
HashMap
<>();
//获取当天零点的时间
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTime
(
new
Date
());
calendar
.
set
(
Calendar
.
HOUR_OF_DAY
,
0
);
calendar
.
set
(
Calendar
.
MINUTE
,
0
);
calendar
.
set
(
Calendar
.
SECOND
,
0
);
Date
zero
=
calendar
.
getTime
();
for
(
WeixinClockPraise
praise
:
weixinClockPraiseList
){
if
(
null
==
praise
.
getPraiseUserId
()
||
!
listWeixinClockRankDto
.
getWechatUserId
().
equals
(
praise
.
getPraiseUserId
())
||
map
.
getOrDefault
(
praise
.
getWxUserId
(),
Boolean
.
FALSE
)||
praise
.
getCreateTime
().
before
(
zero
)){
continue
;
}
map
.
put
(
praise
.
getWxUserId
(),
Boolean
.
TRUE
);
}
for
(
RankDto
rankDto
:
list
){
rankDto
.
setPraiseNum
(
ListUtils
.
isEmpty
(
praiseMap
.
get
(
rankDto
.
getWxUserId
()))
?
0
:
praiseMap
.
get
(
rankDto
.
getWxUserId
()).
size
());
rankDto
.
setIsPraise
(
map
.
getOrDefault
(
rankDto
.
getWxUserId
(),
Boolean
.
FALSE
)
?
1
:
0
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/biz/impl/WeixinClockShareBizImpl.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
biz
.
impl
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.group.dao.GroupQrcodeDao
;
import
com.pcloud.book.group.entity.GroupQrcode
;
import
com.pcloud.book.util.common.LunarCalendarUtils
;
import
com.pcloud.book.weixinclock.biz.WeixinClockShareBiz
;
import
com.pcloud.book.weixinclock.dao.WeixinClockMemberDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockShareDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockShareWordDao
;
import
com.pcloud.book.weixinclock.dao.WeixinClockTopicDao
;
import
com.pcloud.book.weixinclock.dto.RankDto
;
import
com.pcloud.book.weixinclock.entity.WeixinClockMember
;
import
com.pcloud.book.weixinclock.entity.WeixinClockShare
;
import
com.pcloud.book.weixinclock.vo.response.DoShareResponseVO
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.Map
;
/**
* @Describe: 微信群打卡分享逻辑层实现
* @Author: zhangdongwei
* @Date: Create on 10:24 2019/10/29 0029
*/
@Service
(
"weixinClockShareBiz"
)
public
class
WeixinClockShareBizImpl
implements
WeixinClockShareBiz
{
@Autowired
private
WeixinClockShareWordDao
weixinClockShareWordDao
;
@Autowired
private
WeixinClockMemberDao
weixinClockMemberDao
;
@Autowired
private
WeixinClockTopicDao
weixinClockTopicDao
;
@Autowired
private
GroupQrcodeDao
groupQrcodeDao
;
@Autowired
private
WeixinClockShareDao
weixinClockShareDao
;
@Override
public
DoShareResponseVO
doShare
(
Long
wechatUserId
,
String
wxGroupId
,
String
wxUserId
)
{
if
(
null
==
wxGroupId
||
null
==
wxUserId
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"分享失败,参数为空"
);
}
RankDto
rankDto
=
weixinClockMemberDao
.
getClockWechatUserRank
(
wechatUserId
,
wxGroupId
);
if
(
null
==
rankDto
||
null
==
rankDto
.
getWxUserId
()){
rankDto
=
weixinClockMemberDao
.
getClockWechatUserRankByWxUserId
(
wxUserId
,
wxGroupId
);
}
if
(
null
==
rankDto
){
return
new
DoShareResponseVO
();
}
wxUserId
=
null
!=
rankDto
.
getWxUserId
()
?
rankDto
.
getWxUserId
()
:
wxUserId
;
DoShareResponseVO
doShareResponseVO
=
DoShareResponseVO
.
valueFromRankDto
(
rankDto
);
Date
today
=
new
Date
();
Map
<
String
,
String
>
strMap
=
LunarCalendarUtils
.
dataToLunar
(
today
);
doShareResponseVO
.
setLunar
(
strMap
.
get
(
"lunar"
));
doShareResponseVO
.
setToday
(
today
);
doShareResponseVO
.
setGanZhi
(
strMap
.
get
(
"ganZhi"
));
String
shareWord
=
weixinClockShareWordDao
.
getRoundWord
();
doShareResponseVO
.
setShareWord
(
shareWord
);
Date
date
=
weixinClockTopicDao
.
getFirstClockDay
(
wxUserId
,
wxGroupId
);
doShareResponseVO
.
setStartClockDate
(
date
);
GroupQrcode
groupQrcode
=
groupQrcodeDao
.
getByWxGroupId
(
wxGroupId
);
doShareResponseVO
.
setTitle
(
groupQrcode
.
getGroupName
());
doShareResponseVO
.
setQrcodeUrl
(
groupQrcode
.
getQrcodeUrl
());
//埋点,用户分享记录
WeixinClockShare
weixinClockShare
=
new
WeixinClockShare
();
weixinClockShare
.
setShareTime
(
new
Date
());
weixinClockShare
.
setShareUserId
(
wechatUserId
);
weixinClockShare
.
setWxGroupId
(
wxGroupId
);
weixinClockShareDao
.
insert
(
weixinClockShare
);
return
doShareResponseVO
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/WeixinClockBrowseDao.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
dao
;
import
com.pcloud.book.weixinclock.entity.WeixinClockBrowse
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @Describe: 微信打卡分享记录dao接口层
* @Author: zhangdongwei
* @Date: Create on 17:03 2019/10/31 0031
*/
public
interface
WeixinClockBrowseDao
extends
BaseDao
<
WeixinClockBrowse
>
{
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/WeixinClockMemberDao.java
View file @
4b59e54c
...
@@ -57,4 +57,12 @@ public interface WeixinClockMemberDao extends BaseDao<WeixinClockMember> {
...
@@ -57,4 +57,12 @@ public interface WeixinClockMemberDao extends BaseDao<WeixinClockMember> {
* @return
* @return
*/
*/
void
updatMemberWechatUserId
(
String
wxUserId
,
Long
wechatUserId
);
void
updatMemberWechatUserId
(
String
wxUserId
,
Long
wechatUserId
);
/**
* 获取某个群内某个用户的信息
* @param wxGroupId
* @param wxUserId
* @return
*/
RankDto
getClockWechatUserRankByWxUserId
(
String
wxUserId
,
String
wxGroupId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/WeixinClockPraiseDao.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
dao
;
import
com.pcloud.book.weixinclock.dto.GetByMemberAndUserDto
;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
/**
* @Describe: 打卡点赞dao
* @Author: zhangdongwei
* @Date: Create on 17:19 2019/10/22 0022
*/
public
interface
WeixinClockPraiseDao
extends
BaseDao
<
WeixinClockPraise
>
{
/**
* 获取用户为成员点赞信息
* @param dto
* @return
*/
WeixinClockPraise
getByMemberAndUser
(
GetByMemberAndUserDto
dto
);
/**
* 获取去打卡成员收到的点赞
* @param dto
* @return
*/
List
<
WeixinClockPraise
>
getMemberPraise
(
ListWeixinClockRankDto
dto
);
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/WeixinClockShareDao.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
dao
;
import
com.pcloud.book.weixinclock.entity.WeixinClockShare
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @Describe: 微信群打卡分享dao接口层
* @Author: zhangdongwei
* @Date: Create on 17:40 2019/10/31 0031
*/
public
interface
WeixinClockShareDao
extends
BaseDao
<
WeixinClockShare
>
{
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/WeixinClockShareWordDao.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
dao
;
import
com.pcloud.book.weixinclock.entity.WeixinClockShareWord
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @Describe: 微信打卡分享句子dao接口
* @Author: zhangdongwei
* @Date: Create on 9:52 2019/10/29 0029
*/
public
interface
WeixinClockShareWordDao
extends
BaseDao
<
WeixinClockShareWord
>
{
/**
* 随机获取一个句子
* @return
*/
String
getRoundWord
();
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/WeixinClockTopicDao.java
View file @
4b59e54c
...
@@ -3,6 +3,8 @@ package com.pcloud.book.weixinclock.dao;
...
@@ -3,6 +3,8 @@ package com.pcloud.book.weixinclock.dao;
import
com.pcloud.book.weixinclock.entity.WeixinClockTopic
;
import
com.pcloud.book.weixinclock.entity.WeixinClockTopic
;
import
com.pcloud.common.core.dao.BaseDao
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.Date
;
/**
/**
* @author 杨涛
* @author 杨涛
* @description TODO
* @description TODO
...
@@ -26,4 +28,12 @@ public interface WeixinClockTopicDao extends BaseDao<WeixinClockTopic> {
...
@@ -26,4 +28,12 @@ public interface WeixinClockTopicDao extends BaseDao<WeixinClockTopic> {
*/
*/
Long
getClockCountByUser
(
String
wxGroupId
,
String
wxUserId
);
Long
getClockCountByUser
(
String
wxGroupId
,
String
wxUserId
);
/**
* 获取成员第一次打卡日期
* @param wxUserId
* @param wxGroupId
* @return
*/
Date
getFirstClockDay
(
String
wxUserId
,
String
wxGroupId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/impl/WeixinClockBrowseDaoImpl.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
dao
.
impl
;
import
com.pcloud.book.weixinclock.dao.WeixinClockBrowseDao
;
import
com.pcloud.book.weixinclock.entity.WeixinClockBrowse
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
/**
* @Describe: 微信打卡分享记录dao实现层
* @Author: zhangdongwei
* @Date: Create on 17:08 2019/10/31 0031
*/
@Repository
(
"weixinClockBrowseDao"
)
public
class
WeixinClockBrowseDaoImpl
extends
BaseDaoImpl
<
WeixinClockBrowse
>
implements
WeixinClockBrowseDao
{
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/impl/WeixinClockMemberDaoImpl.java
View file @
4b59e54c
...
@@ -92,4 +92,12 @@ public class WeixinClockMemberDaoImpl extends BaseDaoImpl<WeixinClockMember> imp
...
@@ -92,4 +92,12 @@ public class WeixinClockMemberDaoImpl extends BaseDaoImpl<WeixinClockMember> imp
paramMap
.
put
(
"wechatUserId"
,
wechatUserId
);
paramMap
.
put
(
"wechatUserId"
,
wechatUserId
);
super
.
sqlSessionTemplate
.
update
(
getStatement
(
"updatMemberWechatUserId"
),
paramMap
);
super
.
sqlSessionTemplate
.
update
(
getStatement
(
"updatMemberWechatUserId"
),
paramMap
);
}
}
@Override
public
RankDto
getClockWechatUserRankByWxUserId
(
String
wxUserId
,
String
wxGroupId
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"wxUserId"
,
wxUserId
);
map
.
put
(
"wechatGroupId"
,
wxGroupId
);
return
super
.
getSqlSession
().
selectOne
(
getStatement
(
"getClockWechatUserRankByWxUserId"
),
map
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/impl/WeixinClockPraiseDaoImpl.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
dao
.
impl
;
import
com.pcloud.book.weixinclock.dao.WeixinClockPraiseDao
;
import
com.pcloud.book.weixinclock.dto.GetByMemberAndUserDto
;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* @Describe: 打卡点赞dao实现类
* @Author: zhangdongwei
* @Date: Create on 17:20 2019/10/22 0022
*/
@Repository
(
"weixinClockPraise"
)
public
class
WeixinClockPraiseDaoImpl
extends
BaseDaoImpl
<
WeixinClockPraise
>
implements
WeixinClockPraiseDao
{
@Override
public
WeixinClockPraise
getByMemberAndUser
(
GetByMemberAndUserDto
dto
){
return
super
.
sqlSessionTemplate
.
selectOne
(
getStatement
(
"getByMemberAndUser"
),
dto
);
}
@Override
public
List
<
WeixinClockPraise
>
getMemberPraise
(
ListWeixinClockRankDto
dto
)
{
return
super
.
sqlSessionTemplate
.
selectList
(
getStatement
(
"getMemberPraise"
),
dto
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/impl/WeixinClockShareDaoImpl.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
dao
.
impl
;
import
com.pcloud.book.weixinclock.dao.WeixinClockShareDao
;
import
com.pcloud.book.weixinclock.entity.WeixinClockShare
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
/**
* @Describe: 微信群打卡分享dao实现层
* @Author: zhangdongwei
* @Date: Create on 17:42 2019/10/31 0031
*/
@Repository
(
"weixinClockShareDao"
)
public
class
WeixinClockShareDaoImpl
extends
BaseDaoImpl
<
WeixinClockShare
>
implements
WeixinClockShareDao
{
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/impl/WeixinClockShareWordDaoImpl.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
dao
.
impl
;
import
com.pcloud.book.weixinclock.dao.WeixinClockShareWordDao
;
import
com.pcloud.book.weixinclock.entity.WeixinClockShareWord
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
/**
* @Describe: 微信打卡分享句子dao接口实现
* @Author: zhangdongwei
* @Date: Create on 9:52 2019/10/29 0029
*/
@Repository
(
"weixinClockShareWordDao"
)
public
class
WeixinClockShareWordDaoImpl
extends
BaseDaoImpl
<
WeixinClockShareWord
>
implements
WeixinClockShareWordDao
{
@Override
public
String
getRoundWord
()
{
return
super
.
sqlSessionTemplate
.
selectOne
(
getStatement
(
"getRoundWord"
));
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dao/impl/WeixinClockTopicDaoImpl.java
View file @
4b59e54c
...
@@ -9,6 +9,7 @@ import com.pcloud.common.utils.DateNewUtils;
...
@@ -9,6 +9,7 @@ import com.pcloud.common.utils.DateNewUtils;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
...
@@ -42,4 +43,12 @@ public class WeixinClockTopicDaoImpl extends BaseDaoImpl<WeixinClockTopic> imple
...
@@ -42,4 +43,12 @@ public class WeixinClockTopicDaoImpl extends BaseDaoImpl<WeixinClockTopic> imple
return
super
.
getSqlSession
().
selectOne
(
getStatement
(
"getClockCountByUser"
),
paramMap
);
return
super
.
getSqlSession
().
selectOne
(
getStatement
(
"getClockCountByUser"
),
paramMap
);
}
}
@Override
public
Date
getFirstClockDay
(
String
wxUserId
,
String
wxGroupId
)
{
Map
<
String
,
Object
>
paramMap
=
Maps
.
newHashMap
();
paramMap
.
put
(
"wxGroupId"
,
wxGroupId
);
paramMap
.
put
(
"wxUserId"
,
wxUserId
);
return
super
.
getSqlSession
().
selectOne
(
getStatement
(
"getFirstClockDay"
),
paramMap
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dto/GetByMemberAndUserDto.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
dto
;
import
java.util.Date
;
import
lombok.Data
;
/**
* @Describe: 获取用户为打卡成员点赞参数dto
* @Author: zhangdongwei
* @Date: Create on 16:39 2019/10/29 0029
*/
@Data
public
class
GetByMemberAndUserDto
{
private
String
wxUserId
;
private
String
wxGroupId
;
private
Long
wechatUserId
;
private
Date
createTime
;
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dto/ListWeixinClockRankDto.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
dto
;
import
java.util.List
;
import
lombok.Data
;
/**
* @Describe: 获取微信群打卡排名请求dto
* @Author: zhangdongwei
* @Date: Create on 10:11 2019/10/28 0028
*/
@Data
public
class
ListWeixinClockRankDto
{
/**
* 微信群id
*/
private
String
wxGroupId
;
/**
* 微信打卡成员id
*/
private
String
wxUserId
;
/**
* 微信用户di
*/
private
Long
wechatUserId
;
/**
* 当前页
*/
private
Integer
currentPage
;
/**
* 每页条数
*/
private
Integer
numPerPage
;
/**
* 打卡成员id列表
*/
private
List
<
String
>
wxUserIdList
;
private
String
ipAddress
;
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/dto/RankDto.java
View file @
4b59e54c
...
@@ -16,6 +16,9 @@ public class RankDto extends BaseDto {
...
@@ -16,6 +16,9 @@ public class RankDto extends BaseDto {
@ApiModelProperty
(
"排名"
)
@ApiModelProperty
(
"排名"
)
private
Integer
rankNum
;
private
Integer
rankNum
;
@ApiModelProperty
(
"打卡成员微信号"
)
private
String
wxUserId
;
@ApiModelProperty
(
"昵称"
)
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
private
String
nickname
;
...
@@ -25,6 +28,12 @@ public class RankDto extends BaseDto {
...
@@ -25,6 +28,12 @@ public class RankDto extends BaseDto {
@ApiModelProperty
(
"打卡次数"
)
@ApiModelProperty
(
"打卡次数"
)
private
Integer
clockNum
;
private
Integer
clockNum
;
@ApiModelProperty
(
"获取的点赞数"
)
private
Integer
praiseNum
;
@ApiModelProperty
(
"当前用户是否点赞"
)
private
Integer
isPraise
;
public
Integer
getRankNum
()
{
public
Integer
getRankNum
()
{
return
rankNum
;
return
rankNum
;
}
}
...
@@ -33,6 +42,14 @@ public class RankDto extends BaseDto {
...
@@ -33,6 +42,14 @@ public class RankDto extends BaseDto {
this
.
rankNum
=
rankNum
;
this
.
rankNum
=
rankNum
;
}
}
public
String
getWxUserId
()
{
return
wxUserId
;
}
public
void
setWxUserId
(
String
wxUserId
)
{
this
.
wxUserId
=
wxUserId
;
}
public
String
getNickname
()
{
public
String
getNickname
()
{
return
nickname
;
return
nickname
;
}
}
...
@@ -57,6 +74,22 @@ public class RankDto extends BaseDto {
...
@@ -57,6 +74,22 @@ public class RankDto extends BaseDto {
this
.
clockNum
=
clockNum
;
this
.
clockNum
=
clockNum
;
}
}
public
Integer
getPraiseNum
()
{
return
praiseNum
;
}
public
void
setPraiseNum
(
Integer
praiseNum
)
{
this
.
praiseNum
=
praiseNum
;
}
public
Integer
getIsPraise
()
{
return
isPraise
;
}
public
void
setIsPraise
(
Integer
isPraise
)
{
this
.
isPraise
=
isPraise
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"RankDto{"
+
return
"RankDto{"
+
...
@@ -64,6 +97,8 @@ public class RankDto extends BaseDto {
...
@@ -64,6 +97,8 @@ public class RankDto extends BaseDto {
", nickname='"
+
nickname
+
'\''
+
", nickname='"
+
nickname
+
'\''
+
", headPic='"
+
headPic
+
'\''
+
", headPic='"
+
headPic
+
'\''
+
", clockNum="
+
clockNum
+
", clockNum="
+
clockNum
+
", praiseNum="
+
praiseNum
+
", isPraise="
+
isPraise
+
'}'
;
'}'
;
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/entity/WeixinClockBrowse.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
entity
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
lombok.Data
;
/**
* @Describe: 打卡排行榜浏览记录实体类
* @Author: zhangdongwei
* @Date: Create on 17:00 2019/10/31 0031
*/
@Data
public
class
WeixinClockBrowse
extends
BaseEntity
{
/**
* 微信打卡id
*/
private
Long
weixinClockId
;
/**
* 微信群id
*/
private
String
wxGroupId
;
/**
* 微信用户id
*/
private
Long
wechatUserId
;
/**
* 浏览时间
*/
private
Date
browseTime
;
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/entity/WeixinClockPraise.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
entity
;
import
com.pcloud.common.entity.BaseEntity
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.ToString
;
/**
* @Describe: 打卡点赞实体
* @Author: zhangdongwei
* @Date: Create on 10:46 2019/10/22 0022
*/
@Data
@ToString
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
WeixinClockPraise
extends
BaseEntity
{
/**
* 打卡id
*/
private
Long
weixinClockId
;
/**
* 打卡成员id
*/
private
String
wxUserId
;
/**
* 打卡所在微信群id
*/
private
String
wxGroupId
;
/**
* 点赞用户id
*/
private
Long
praiseUserId
;
/**
* 是否取消点赞
*/
private
Integer
isCancel
;
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/entity/WeixinClockShare.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
entity
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
lombok.ToString
;
/**
* @Describe: 打卡分享实体
* @Author: zhangdongwei
* @Date: Create on 11:53 2019/10/22 0022
*/
@Data
@ToString
(
callSuper
=
true
)
@EqualsAndHashCode
(
callSuper
=
true
)
public
class
WeixinClockShare
extends
BaseEntity
{
/**
* 分享用户id
*/
private
Long
shareUserId
;
/**
* 微信群id
*/
private
String
wxGroupId
;
/**
* 分享时间
*/
private
Date
shareTime
;
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/entity/WeixinClockShareWord.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
entity
;
import
com.pcloud.common.entity.BaseEntity
;
import
lombok.Data
;
import
lombok.ToString
;
/**
* @Describe: 微信打卡分享句子
* @Author: zhangdongwei
* @Date: Create on 9:39 2019/10/29 0029
*/
@Data
@ToString
(
callSuper
=
true
)
public
class
WeixinClockShareWord
extends
BaseEntity
{
private
String
shareWord
;
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/facade/WeixinClockFacade.java
View file @
4b59e54c
...
@@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
...
@@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
javax.servlet.http.HttpServletRequest
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiImplicitParams
;
...
@@ -103,7 +105,8 @@ public interface WeixinClockFacade {
...
@@ -103,7 +105,8 @@ public interface WeixinClockFacade {
@RequestParam
(
value
=
"wxGroupId"
,
required
=
false
)
String
wxGroupId
,
@RequestParam
(
value
=
"wxGroupId"
,
required
=
false
)
String
wxGroupId
,
@RequestParam
(
value
=
"wxUserId"
,
required
=
false
)
String
wxUserId
,
@RequestParam
(
value
=
"wxUserId"
,
required
=
false
)
String
wxUserId
,
@RequestParam
(
value
=
"currentPage"
,
required
=
false
)
Integer
currentPage
,
@RequestParam
(
value
=
"currentPage"
,
required
=
false
)
Integer
currentPage
,
@RequestParam
(
value
=
"numPerPage"
,
required
=
false
)
Integer
numPerPage
)
@RequestParam
(
value
=
"numPerPage"
,
required
=
false
)
Integer
numPerPage
,
HttpServletRequest
request
)
throws
BizException
,
PermissionException
;
throws
BizException
,
PermissionException
;
@ApiOperation
(
"获取某个群内某个用户的信息"
)
@ApiOperation
(
"获取某个群内某个用户的信息"
)
...
...
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/facade/impl/WeixinClockFacadeImpl.java
View file @
4b59e54c
...
@@ -4,6 +4,7 @@ import com.pcloud.book.base.exception.BookBizException;
...
@@ -4,6 +4,7 @@ import com.pcloud.book.base.exception.BookBizException;
import
com.pcloud.book.group.vo.BookGroupClassifyVO
;
import
com.pcloud.book.group.vo.BookGroupClassifyVO
;
import
com.pcloud.book.group.vo.ListGroupClassifyParam
;
import
com.pcloud.book.group.vo.ListGroupClassifyParam
;
import
com.pcloud.book.weixinclock.biz.WeixinClockBiz
;
import
com.pcloud.book.weixinclock.biz.WeixinClockBiz
;
import
com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto
;
import
com.pcloud.book.weixinclock.dto.WeixinClockDto
;
import
com.pcloud.book.weixinclock.dto.WeixinClockDto
;
import
com.pcloud.book.weixinclock.facade.WeixinClockFacade
;
import
com.pcloud.book.weixinclock.facade.WeixinClockFacade
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
...
@@ -13,6 +14,7 @@ import com.pcloud.common.page.PageParam;
...
@@ -13,6 +14,7 @@ import com.pcloud.common.page.PageParam;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
com.pcloud.common.utils.nginx.NginxUtils
;
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
;
...
@@ -26,6 +28,8 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -26,6 +28,8 @@ import org.springframework.web.bind.annotation.RestController;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletRequest
;
import
io.swagger.annotations.ApiParam
;
import
io.swagger.annotations.ApiParam
;
/**
/**
...
@@ -181,10 +185,19 @@ public class WeixinClockFacadeImpl implements WeixinClockFacade {
...
@@ -181,10 +185,19 @@ public class WeixinClockFacadeImpl implements WeixinClockFacade {
@RequestParam
(
value
=
"wxGroupId"
,
required
=
false
)
String
wxGroupId
,
@RequestParam
(
value
=
"wxGroupId"
,
required
=
false
)
String
wxGroupId
,
@RequestParam
(
value
=
"wxUserId"
,
required
=
false
)
String
wxUserId
,
@RequestParam
(
value
=
"wxUserId"
,
required
=
false
)
String
wxUserId
,
@RequestParam
(
value
=
"currentPage"
,
required
=
false
)
Integer
currentPage
,
@RequestParam
(
value
=
"currentPage"
,
required
=
false
)
Integer
currentPage
,
@RequestParam
(
value
=
"numPerPage"
,
required
=
false
)
Integer
numPerPage
)
@RequestParam
(
value
=
"numPerPage"
,
required
=
false
)
Integer
numPerPage
,
HttpServletRequest
request
)
throws
BizException
,
PermissionException
{
throws
BizException
,
PermissionException
{
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
return
new
ResponseDto
<>(
weixinClockBiz
.
listWeixinClockRank
(
wxGroupId
,
wxUserId
,
currentPage
,
numPerPage
));
ListWeixinClockRankDto
dto
=
new
ListWeixinClockRankDto
();
dto
.
setCurrentPage
(
currentPage
);
dto
.
setNumPerPage
(
numPerPage
);
dto
.
setWxGroupId
(
wxGroupId
);
dto
.
setWxGroupId
(
wxGroupId
);
dto
.
setWechatUserId
(
wechatUserId
);
String
ipAddress
=
NginxUtils
.
getClientIp
(
request
);
dto
.
setIpAddress
(
ipAddress
);
return
new
ResponseDto
<>(
weixinClockBiz
.
listWeixinClockRank
(
dto
));
}
}
/**
/**
...
...
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/facade/impl/WeixinClockPraiseFacadeImpl.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
facade
.
impl
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.weixinclock.biz.WeixinClockPraiseBiz
;
import
com.pcloud.book.weixinclock.vo.request.PraiseForMemberRequestVO
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.CookieValue
;
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
;
import
java.util.Optional
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
/**
* @Describe: 微信打卡点赞外部接口实现
* @Author: zhangdongwei
* @Date: Create on 17:37 2019/10/22 0022
*/
@Api
(
description
=
"微信群签到打卡"
)
@RestController
(
"weixinClockPraiseFacade"
)
@RequestMapping
(
"weixinClockPraise"
)
public
class
WeixinClockPraiseFacadeImpl
{
@Autowired
private
WeixinClockPraiseBiz
weixinClockPraiseBiz
;
/**
* 为打卡成员点赞/取消点赞
* @param userInfo
* @param vo
* @return
* @throws BizException
* @throws PermissionException
*/
@ApiOperation
(
value
=
"为打卡成员点赞/取消点赞"
,
httpMethod
=
"POST"
)
@PostMapping
(
"praiseForMember"
)
public
ResponseDto
<?>
praiseForMember
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestBody
PraiseForMemberRequestVO
vo
)
throws
BizException
,
PermissionException
{
Optional
.
ofNullable
(
vo
).
orElseThrow
(()
->
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"点赞失败,参数为空"
));
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
vo
.
setPraiseUserId
(
wechatUserId
);
weixinClockPraiseBiz
.
praiseForMember
(
vo
);
return
new
ResponseDto
<>();
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/facade/impl/WeixinClockShareFacadeImpl.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
facade
.
impl
;
import
com.pcloud.book.weixinclock.biz.WeixinClockShareBiz
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.CookieValue
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
/**
* @Describe: 微信群打卡分享接口类
* @Author: zhangdongwei
* @Date: Create on 10:21 2019/10/29 0029
*/
@Api
(
description
=
"微信群签到打卡分享"
)
@RestController
(
"weixinClockShareFacade"
)
@RequestMapping
(
"weixinClockShare"
)
public
class
WeixinClockShareFacadeImpl
{
@Autowired
private
WeixinClockShareBiz
weixinClockShareBiz
;
/**
* 获取我的打卡排名
* @param userInfo
* @param wxGroupId
* @param wxUserId
* @return
* @throws BizException
* @throws PermissionException
*/
@ApiOperation
(
"分享我的排名"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"wxGroupId"
,
value
=
"微信群id"
,
dataType
=
"string"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"weUserId"
,
value
=
"微信群id"
,
dataType
=
"string"
,
paramType
=
"query"
)})
@RequestMapping
(
value
=
"doShare"
,
method
=
RequestMethod
.
GET
)
public
ResponseDto
<?>
doShare
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestParam
(
"wxGroupId"
)
String
wxGroupId
,
@RequestParam
(
"wxUserId"
)
String
wxUserId
)
throws
BizException
,
PermissionException
{
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
return
new
ResponseDto
<>(
weixinClockShareBiz
.
doShare
(
wechatUserId
,
wxGroupId
,
wxUserId
));
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/vo/request/PraiseForMemberRequestVO.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
vo
.
request
;
import
com.pcloud.book.weixinclock.entity.WeixinClockPraise
;
import
com.pcloud.common.utils.bean.BeanUtils
;
import
com.pcloud.common.vo.BaseVO
;
import
javax.validation.constraints.NotNull
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @Describe: 为打卡成员点赞请求vo
* @Author: zhangdongwei
* @Date: Create on 17:57 2019/10/22 0022
*/
@Data
@ApiModel
(
"为打卡成员点赞请求类"
)
public
class
PraiseForMemberRequestVO
extends
BaseVO
{
/**
* 点赞人id
*/
private
Long
praiseUserId
;
/**
* 打卡成员id
*/
@NotNull
(
message
=
"打卡成员不能为空"
)
@ApiModelProperty
(
"打卡成员id"
)
private
String
wxUserId
;
/**
* 群id
*/
@NotNull
(
message
=
"群id不能为空"
)
@ApiModelProperty
(
"打卡关联微信群id"
)
private
String
wxGroupId
;
@ApiModelProperty
(
"是否取消点赞"
)
private
Integer
isCancel
;
public
static
WeixinClockPraise
valueToClockPraise
(
PraiseForMemberRequestVO
vo
){
WeixinClockPraise
weixinClockPraise
=
BeanUtils
.
copy
(
vo
,
WeixinClockPraise
.
class
);
weixinClockPraise
.
setIsCancel
(
vo
.
getIsCancel
()
==
null
?
0
:
vo
.
getIsCancel
());
return
weixinClockPraise
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/weixinclock/vo/response/DoShareResponseVO.java
0 → 100644
View file @
4b59e54c
package
com
.
pcloud
.
book
.
weixinclock
.
vo
.
response
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.book.weixinclock.dto.RankDto
;
import
com.pcloud.common.utils.BeanUtils
;
import
com.pcloud.common.vo.BaseVO
;
import
java.util.Date
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @Describe: 微信群打卡分享返回类
* @Author: zhangdongwei
* @Date: Create on 10:43 2019/10/29 0029
*/
@Data
@ApiModel
(
"微信群打卡分享返回类"
)
public
class
DoShareResponseVO
extends
BaseVO
{
@ApiModelProperty
(
"排名"
)
private
Integer
rankNum
;
@ApiModelProperty
(
"打卡成员微信号"
)
private
String
wxUserId
;
@ApiModelProperty
(
"昵称"
)
private
String
nickname
;
@ApiModelProperty
(
"头像"
)
private
String
headPic
;
@ApiModelProperty
(
"打卡次数"
)
private
Integer
clockNum
;
@ApiModelProperty
(
"开始打卡日期"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
startClockDate
;
@ApiModelProperty
(
"今天日期"
)
@JsonFormat
(
pattern
=
"MM/dd"
,
timezone
=
"GMT+8"
)
private
Date
today
;
@ApiModelProperty
(
"农历日期"
)
private
String
lunar
;
@ApiModelProperty
(
"干支日期"
)
private
String
ganZhi
;
@ApiModelProperty
(
"分享句子"
)
private
String
shareWord
;
@ApiModelProperty
(
"二维码链接"
)
private
String
qrcodeUrl
;
@ApiModelProperty
(
"标题"
)
private
String
title
;
public
static
DoShareResponseVO
valueFromRankDto
(
RankDto
dto
){
DoShareResponseVO
vo
=
new
DoShareResponseVO
();
BeanUtils
.
copyProperties
(
dto
,
vo
);
return
vo
;
}
}
pcloud-service-book/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
View file @
4b59e54c
...
@@ -770,5 +770,10 @@
...
@@ -770,5 +770,10 @@
WHERE
WHERE
c.book_group_id = #{bookGroupId}
c.book_group_id = #{bookGroupId}
</select>
</select>
<select
id=
"getByWxGroupId"
parameterType=
"string"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from book_group_qrcode where weixin_group_id = #{wxGroupId}
and is_delete = 0
</select>
</mapper>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/weixinclock/WeixinClockBrowse.Mapper.xml
0 → 100644
View file @
4b59e54c
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.weixinclock.dao.impl.WeixinClockBrowseDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.weixinclock.entity.WeixinClockBrowse"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"weixin_clock_id"
property=
"weixinClockId"
jdbcType=
"BIGINT"
/>
<result
column=
"wx_group_id"
property=
"wxGroupId"
jdbcType=
"VARCHAR"
/>
<result
column=
"wechat_user_id"
property=
"wechatUserId"
jdbcType=
"BIGINT"
/>
<result
column=
"browse_time"
property=
"browseTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"ip_address"
property=
"ipAddress"
jdbcType=
"VARCHAR"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, weixin_clock_id, wx_group_id, wechat_user_id, browse_time, ip_address
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.weixinclock.entity.WeixinClockBrowse"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into weixin_clock_browse (weixin_clock_id, wx_group_id, wechat_user_id, browse_time, ip_address)
values (#{weixinClockId}, #{wxGroupId}, #{wechatUserId}, #{browseTime}, #{ipAddress})
</insert>
</mapper>
pcloud-service-book/src/main/resources/mapper/weixinclock/WeixinClockMember.Mapper.xml
View file @
4b59e54c
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
<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.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.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
...
@@ -80,7 +80,7 @@
...
@@ -80,7 +80,7 @@
</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.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 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, 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, head_pic, wechat_user_id, @rowNum:=0 from weixin_clock_member
where wx_group_id = #{wechatGroupId}
where wx_group_id = #{wechatGroupId}
...
@@ -98,4 +98,16 @@
...
@@ -98,4 +98,16 @@
where wx_user_id = #{wxUserId,jdbcType=VARCHAR}
where wx_user_id = #{wxUserId,jdbcType=VARCHAR}
</update>
</update>
<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 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, all_clock_day, nickname, head_pic, wechat_user_id, @rowNum:=0 from weixin_clock_member
where wx_group_id = #{wechatGroupId}
AND (all_clock_day
<![CDATA[ >]]>
0 or wx_user_id = #{wxUserId, jdbcType=VARCHAR})
order by all_clock_day desc, update_time asc
) a
) cm where cm.wx_user_id = #{wxUserId}
LIMIT 1
</select>
</mapper>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/weixinclock/WeixinClockPraise.Mapper.xml
0 → 100644
View file @
4b59e54c
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.weixinclock.dao.impl.WeixinClockPraiseDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.weixinclock.entity.WeixinClockPraise"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"weixin_clock_id"
property=
"weixinClockId"
jdbcType=
"BIGINT"
/>
<result
column=
"wx_user_id"
property=
"wxUserId"
jdbcType=
"VARCHAR"
/>
<result
column=
"wx_group_id"
property=
"wxGroupId"
jdbcType=
"VARCHAR"
/>
<result
column=
"praise_user_id"
property=
"praiseUserId"
jdbcType=
"BIGINT"
/>
<result
column=
"is_cancel"
property=
"isCancel"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, weixin_clock_id, wx_user_id, wx_group_id, praise_user_id, is_cancel, create_time, update_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.weixinclock.entity.WeixinClockPraise"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into weixin_clock_praise (weixin_clock_id, wx_user_id, wx_group_id, praise_user_id, is_cancel, create_time, update_time)
values (#{weixinClockId}, #{wxUserId}, #{wxGroupId}, #{praiseUserId}, #{isCancel}, now(), now())
</insert>
<update
id=
"update"
parameterType=
"com.pcloud.book.weixinclock.entity.WeixinClockPraise"
>
update weixin_clock_praise
<set>
<if
test=
"weixinClockId != null"
>
weixin_clock_id = #{weixinClockId},
</if>
<if
test=
"wxUserId != null"
>
wx_user_id = #{wxUserId},
</if>
<if
test=
"wxGroupId"
>
wx_group_id = #{wxGroupId},
</if>
<if
test=
"praiseUserId != null"
>
praise_user_id = #{praiseUserId},
</if>
<if
test=
"isCancel != null"
>
is_cancel = #{isCancel},
</if>
update_time = now(),
</set>
where id = #{id}
</update>
<select
id=
"getByMemberAndUser"
parameterType=
"com.pcloud.book.weixinclock.dto.GetByMemberAndUserDto"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from weixin_clock_praise
where wx_group_id = #{wxGroupId} and wx_user_id = #{wxUserId}
and praise_user_id = #{wechatUserId} and create_time
<![CDATA[>]]>
#{createTime}
limit 1
</select>
<select
id=
"getMemberPraise"
parameterType=
"com.pcloud.book.weixinclock.dto.ListWeixinClockRankDto"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
from weixin_clock_praise
where wx_group_id = #{wxGroupId}
and wx_user_id in
<foreach
collection=
"wxUserIdList"
open=
"("
close=
")"
separator=
","
item=
"item"
>
#{item}
</foreach>
and is_cancel = 1
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/weixinclock/WeixinClockShare.Mapper.xml
0 → 100644
View file @
4b59e54c
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.weixinclock.dao.impl.WeixinClockShareDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.weixinclock.entity.WeixinClockShare"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"share_user_id"
property=
"shareUserId"
jdbcType=
"BIGINT"
/>
<result
column=
"wx_group_id"
property=
"wxGroupId"
jdbcType=
"VARCHAR"
/>
<result
column=
"share_time"
property=
"shareTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, share_user_id, wx_group_id, share_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.weixinclock.entity.WeixinClockShare"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into weixin_clock_share (share_user_id, wx_group_id, share_time)
values (#{shareUserId}, #{wxGroupId}, #{shareTime})
</insert>
</mapper>
pcloud-service-book/src/main/resources/mapper/weixinclock/WeixinClockShareWord.Mapper.xml
0 → 100644
View file @
4b59e54c
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"com.pcloud.book.weixinclock.dao.impl.WeixinClockShareWordDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.weixinclock.entity.WeixinClockShareWord"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"share_word"
property=
"shareWord"
jdbcType=
"VARCHAR"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, share_word
</sql>
<select
id=
"getRoundWord"
resultType=
"string"
>
SELECT share_word
FROM weixin_clock_share_word AS t1 JOIN (
SELECT ROUND(RAND() * ((SELECT MAX(id) FROM weixin_clock_share_word)-(SELECT MIN(id) FROM weixin_clock_share_word))+(SELECT MIN(id) FROM weixin_clock_share_word)) AS id) AS t2
WHERE t1.id >= t2.id
ORDER BY t1.id LIMIT 1;
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/weixinclock/WeixinClockTopic.Mapper.xml
View file @
4b59e54c
...
@@ -56,4 +56,11 @@
...
@@ -56,4 +56,11 @@
</if>
</if>
</select>
</select>
<select
id=
"getFirstClockDay"
parameterType=
"map"
resultType=
"date"
>
select CREATED_DAY from weixin_clock_topic
where wx_group_id = #{wxGroupId, jdbcType=VARCHAR}
AND wx_user_id = #{wxUserId, jdbcType=VARCHAR}
order by CREATED_DAY limit 1
</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