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
bbd5cd3e
Commit
bbd5cd3e
authored
Aug 12, 2019
by
朱亚洁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
猜谜语
parent
cbc4a913
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
1529 additions
and
9 deletions
+1529
-9
RiddleService.java
...k/src/main/java/com/pcloud/book/riddle/RiddleService.java
+26
-0
RiddleConstant.java
...java/com/pcloud/book/riddle/constants/RiddleConstant.java
+26
-0
RiddleRecordStatusEnum.java
.../com/pcloud/book/riddle/enums/RiddleRecordStatusEnum.java
+37
-0
RiddleReplyTypeEnum.java
...ava/com/pcloud/book/riddle/enums/RiddleReplyTypeEnum.java
+55
-0
WechatGroupConsr.java
...om/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
+15
-0
GroupQrcodeBiz.java
...c/main/java/com/pcloud/book/group/biz/GroupQrcodeBiz.java
+11
-0
GroupQrcodeBizImpl.java
...va/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
+43
-1
GroupQrcodeDao.java
...c/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
+8
-0
GroupQrcodeDaoImpl.java
...va/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
+9
-0
GroupQrcode.java
...c/main/java/com/pcloud/book/group/entity/GroupQrcode.java
+15
-0
BookGroupClassifyServiceImpl.java
...book/group/service/impl/BookGroupClassifyServiceImpl.java
+1
-4
WxGroupSendTextListener.java
...ava/com/pcloud/book/mq/topic/WxGroupSendTextListener.java
+6
-3
RiddleRecordBiz.java
...main/java/com/pcloud/book/riddle/biz/RiddleRecordBiz.java
+70
-0
RiddleRecordBizImpl.java
.../com/pcloud/book/riddle/biz/impl/RiddleRecordBizImpl.java
+0
-0
RiddleDao.java
...k/src/main/java/com/pcloud/book/riddle/dao/RiddleDao.java
+22
-0
RiddleRecordDao.java
...main/java/com/pcloud/book/riddle/dao/RiddleRecordDao.java
+36
-0
RiddleReplyDao.java
.../main/java/com/pcloud/book/riddle/dao/RiddleReplyDao.java
+22
-0
RiddleDaoImpl.java
...n/java/com/pcloud/book/riddle/dao/impl/RiddleDaoImpl.java
+29
-0
RiddleRecordDaoImpl.java
.../com/pcloud/book/riddle/dao/impl/RiddleRecordDaoImpl.java
+40
-0
RiddleReplyDaoImpl.java
...a/com/pcloud/book/riddle/dao/impl/RiddleReplyDaoImpl.java
+24
-0
GroupRedisDTO.java
...c/main/java/com/pcloud/book/riddle/dto/GroupRedisDTO.java
+58
-0
GroupRiddleDTO.java
.../main/java/com/pcloud/book/riddle/dto/GroupRiddleDTO.java
+258
-0
RiddleOpenDTO.java
...c/main/java/com/pcloud/book/riddle/dto/RiddleOpenDTO.java
+45
-0
Riddle.java
...k/src/main/java/com/pcloud/book/riddle/entity/Riddle.java
+96
-0
RiddleRecord.java
...main/java/com/pcloud/book/riddle/entity/RiddleRecord.java
+106
-0
RiddleReply.java
.../main/java/com/pcloud/book/riddle/entity/RiddleReply.java
+60
-0
RiddleFacade.java
...main/java/com/pcloud/book/riddle/facade/RiddleFacade.java
+82
-0
RiddleRedis.java
...c/main/java/com/pcloud/book/riddle/redis/RiddleRedis.java
+114
-0
RiddleServiceImpl.java
...om/pcloud/book/riddle/service/impl/RiddleServiceImpl.java
+44
-0
GroupQrcode.Mapper.xml
...ok/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
+45
-1
RiddleMapper.xml
...ce-book/src/main/resources/mapper/riddle/RiddleMapper.xml
+38
-0
RiddleRecordMapper.xml
...k/src/main/resources/mapper/riddle/RiddleRecordMapper.xml
+63
-0
RiddleReplyMapper.xml
...ok/src/main/resources/mapper/riddle/RiddleReplyMapper.xml
+25
-0
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/riddle/RiddleService.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
;
import
org.springframework.cloud.netflix.feign.FeignClient
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
java.util.Map
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
/**
* @描述:猜谜语接口
* @作者:zhuyajie
* @创建时间:16:24 2019/8/5
* @版本:1.0
*/
@FeignClient
(
value
=
"pcloud-service-book"
,
qualifier
=
"riddleServiceCloud"
,
path
=
"book/v1.0/riddleService"
)
@Api
(
description
=
"猜谜语接口"
)
public
interface
RiddleService
{
@ApiOperation
(
value
=
"定时器调用游戏结束接口"
,
httpMethod
=
"POST"
)
@RequestMapping
(
value
=
"/riddleEndQuartz"
,
method
=
RequestMethod
.
POST
)
public
void
riddleEndQuartz
(
@RequestBody
Map
<
String
,
Object
>
map
);
}
pcloud-facade-book/src/main/java/com/pcloud/book/riddle/constants/RiddleConstant.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
constants
;
/**
* @描述:猜谜语常量
* @作者:zhuyajie
* @创建时间:17:36 2019/7/29
* @版本:1.0
*/
public
class
RiddleConstant
{
/**
* 10s
*/
public
static
Integer
expire_seconds
=
12
;
/**
* 定时器类型名称
*/
public
static
final
String
JOB_GROUP_RIDDLE
=
"riddle"
;
/**
* 到期定时器方法名
*/
public
static
final
String
JOB_NAME_RIDDLE_EXPIRE
=
"judgeRiddleTime"
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/riddle/enums/RiddleRecordStatusEnum.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
enums
;
/**
* @描述:猜谜进度状态
* @作者:zhuyajie
* @创建时间:10:14 2019/7/25
* @版本:1.0
*/
public
enum
RiddleRecordStatusEnum
{
/**
* 开始
*/
begin
(
0
),
/**
*结束
*/
end
(
1
),
/**
*进行中
*/
underway
(
2
);
private
Integer
code
;
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
RiddleRecordStatusEnum
(
Integer
code
)
{
this
.
code
=
code
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/riddle/enums/RiddleReplyTypeEnum.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
enums
;
/**
* @描述:回复文案类型
* @作者:zhuyajie
* @创建时间:16:56 2019/7/24
* @版本:1.0
*/
public
enum
RiddleReplyTypeEnum
{
/**
* 游戏规则
*/
rule
(
"rule"
),
/**
* 无人回复的结束语
*/
no_reply_end
(
"no_reply_end"
),
/**
* 答完全部题结束语
*/
finish_end
(
"finish_end"
),
/**
* 中途回复关键词
*/
midway_in
(
"midway_in"
),
/**
* 答对
*/
correct
(
"correct"
),
/**
* 答错
*/
incorrect
(
"incorrect"
),
/**
* 部分正确
*/
partly_correct
(
"partly_correct"
);
private
String
code
;
public
String
getCode
()
{
return
code
;
}
public
void
setCode
(
String
code
)
{
this
.
code
=
code
;
}
RiddleReplyTypeEnum
(
String
code
)
{
this
.
code
=
code
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/consumer/wechatgroup/WechatGroupConsr.java
View file @
bbd5cd3e
...
@@ -2,12 +2,14 @@ package com.pcloud.book.consumer.wechatgroup;
...
@@ -2,12 +2,14 @@ package com.pcloud.book.consumer.wechatgroup;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupMemberStatisDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupRobotDTO
;
import
com.pcloud.wechatgroup.group.dto.GroupUserDTO
;
import
com.pcloud.wechatgroup.group.dto.RobotReplyDTO
;
import
com.pcloud.wechatgroup.group.dto.RobotReplyDTO
;
import
com.pcloud.wechatgroup.group.service.GroupMemberService
;
import
com.pcloud.wechatgroup.group.service.GroupMemberService
;
import
com.pcloud.wechatgroup.message.dto.GroupChatCountDTO
;
import
com.pcloud.wechatgroup.message.dto.GroupChatCountDTO
;
...
@@ -15,6 +17,7 @@ import com.pcloud.wechatgroup.message.service.MessageService;
...
@@ -15,6 +17,7 @@ import com.pcloud.wechatgroup.message.service.MessageService;
import
com.pcloud.wechatgroup.monitor.service.MonitorService
;
import
com.pcloud.wechatgroup.monitor.service.MonitorService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
...
@@ -267,4 +270,16 @@ public class WechatGroupConsr {
...
@@ -267,4 +270,16 @@ public class WechatGroupConsr {
}
}
return
map
;
return
map
;
}
}
@ParamLog
(
"根据用户微信ID获取用户信息"
)
public
GroupUserDTO
getWxUserInfoByWxUserId
(
String
wxUserId
)
{
GroupUserDTO
dto
=
new
GroupUserDTO
();
try
{
dto
=
ResponseHandleUtil
.
parseResponse
(
groupMemberService
.
getWxUserInfoByWxId
(
wxUserId
),
GroupUserDTO
.
class
);
}
catch
(
Exception
e
)
{
log
.
error
(
"根据用户微信ID获取用户信息.[getWxUserInfoByWxId]:"
+
e
.
getMessage
(),
e
);
}
return
dto
;
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/GroupQrcodeBiz.java
View file @
bbd5cd3e
...
@@ -10,6 +10,7 @@ import com.pcloud.book.group.vo.GroupQrcodeBookVO;
...
@@ -10,6 +10,7 @@ import com.pcloud.book.group.vo.GroupQrcodeBookVO;
import
com.pcloud.book.group.vo.ListGroupQrcodeResponseVO
;
import
com.pcloud.book.group.vo.ListGroupQrcodeResponseVO
;
import
com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO
;
import
com.pcloud.book.group.vo.ListQrcodeByClassifyParamVO
;
import
com.pcloud.book.group.vo.UpdateGroupQrcodeRequestVO
;
import
com.pcloud.book.group.vo.UpdateGroupQrcodeRequestVO
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
java.util.List
;
import
java.util.List
;
...
@@ -130,4 +131,14 @@ public interface GroupQrcodeBiz {
...
@@ -130,4 +131,14 @@ public interface GroupQrcodeBiz {
* @return
* @return
*/
*/
PageBeanNew
<
GroupQrcodeBookVO
>
listQrcodeByAdviser
(
Integer
currentPage
,
Integer
numPerPage
,
String
name
,
Long
adviserId
);
PageBeanNew
<
GroupQrcodeBookVO
>
listQrcodeByAdviser
(
Integer
currentPage
,
Integer
numPerPage
,
String
name
,
Long
adviserId
);
/**
* 猜谜语列表
* @param partyId
* @param currentPage
* @param numPerPage
* @param name
* @return
*/
PageBeanNew
<
GroupRiddleDTO
>
listPageRiddle
(
Long
partyId
,
Integer
currentPage
,
Integer
numPerPage
,
String
name
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/biz/impl/GroupQrcodeBizImpl.java
View file @
bbd5cd3e
...
@@ -47,7 +47,7 @@ import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
...
@@ -47,7 +47,7 @@ import com.pcloud.common.utils.cache.redis.JedisClusterUtils;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto
;
import
com.pcloud.usercenter.party.adviser.dto.AdviserBaseInfoDto
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
com.sdk.wxgroup.WxGroupSDK
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
org.apache.commons.collections4.MapUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -491,5 +491,47 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
...
@@ -491,5 +491,47 @@ public class GroupQrcodeBizImpl implements GroupQrcodeBiz {
return
pageBeanNew
;
return
pageBeanNew
;
}
}
@Override
public
PageBeanNew
<
GroupRiddleDTO
>
listPageRiddle
(
Long
partyId
,
Integer
currentPage
,
Integer
numPerPage
,
String
name
)
{
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
paramMap
.
put
(
"partyId"
,
partyId
);
paramMap
.
put
(
"name"
,
name
);
PageBeanNew
<
GroupRiddleDTO
>
pageBeanNew
=
groupQrcodeDao
.
listPageNew
(
new
PageParam
(
currentPage
,
numPerPage
),
paramMap
,
"listPageRiddle"
);
if
(
null
==
pageBeanNew
||
ListUtils
.
isEmpty
(
pageBeanNew
.
getRecordList
()))
{
return
new
PageBeanNew
<>(
currentPage
,
numPerPage
,
0
,
new
ArrayList
<>());
}
//标签
Map
<
Long
,
String
>
labelMap
=
new
HashMap
<>();
List
<
Long
>
labelIds
=
new
ArrayList
<>();
List
<
Long
>
proLabels
=
pageBeanNew
.
getRecordList
().
stream
().
filter
(
s
->
s
.
getProLabelId
()
!=
null
).
map
(
GroupRiddleDTO:
:
getProLabelId
).
distinct
().
collect
(
Collectors
.
toList
());
List
<
Long
>
depLabels
=
pageBeanNew
.
getRecordList
().
stream
().
filter
(
s
->
s
.
getDepLabelId
()
!=
null
).
map
(
GroupRiddleDTO:
:
getDepLabelId
).
distinct
().
collect
(
Collectors
.
toList
());
List
<
Long
>
purLabels
=
pageBeanNew
.
getRecordList
().
stream
().
filter
(
s
->
s
.
getPurLabelId
()
!=
null
).
map
(
GroupRiddleDTO:
:
getPurLabelId
).
distinct
().
collect
(
Collectors
.
toList
());
if
(!
ListUtils
.
isEmpty
(
proLabels
))
{
labelIds
.
addAll
(
proLabels
);
}
if
(!
ListUtils
.
isEmpty
(
depLabels
))
{
labelIds
.
addAll
(
depLabels
);
}
if
(!
ListUtils
.
isEmpty
(
purLabels
))
{
labelIds
.
addAll
(
purLabels
);
}
if
(!
ListUtils
.
isEmpty
(
labelIds
))
{
labelMap
=
labelConsr
.
getLabelName
(
labelIds
);
}
if
(!
MapUtils
.
isEmpty
(
labelMap
))
{
for
(
GroupRiddleDTO
riddleDTO
:
pageBeanNew
.
getRecordList
())
{
if
(
null
!=
riddleDTO
.
getProLabelId
()
&&
labelMap
.
containsKey
(
riddleDTO
.
getProLabelId
()))
{
riddleDTO
.
setProLabelName
(
labelMap
.
get
(
riddleDTO
.
getProLabelId
()));
}
if
(
null
!=
riddleDTO
.
getDepLabelId
()
&&
labelMap
.
containsKey
(
riddleDTO
.
getDepLabelId
()))
{
riddleDTO
.
setDepLabelName
(
labelMap
.
get
(
riddleDTO
.
getDepLabelId
()));
}
if
(
null
!=
riddleDTO
.
getPurLabelId
()
&&
labelMap
.
containsKey
(
riddleDTO
.
getPurLabelId
()))
{
riddleDTO
.
setPurLabelName
(
labelMap
.
get
(
riddleDTO
.
getPurLabelId
()));
}
}
}
return
pageBeanNew
;
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/GroupQrcodeDao.java
View file @
bbd5cd3e
...
@@ -196,4 +196,12 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
...
@@ -196,4 +196,12 @@ public interface GroupQrcodeDao extends BaseDao<GroupQrcode> {
* 根据分类id集合查询
* 根据分类id集合查询
*/
*/
List
<
GroupQrcodeFoAdDTO
>
GroupQrcodeFoAdDTOSByClassifyIds
(
List
<
Long
>
classifyIds
);
List
<
GroupQrcodeFoAdDTO
>
GroupQrcodeFoAdDTOSByClassifyIds
(
List
<
Long
>
classifyIds
);
/**
* 修改猜谜语开启状态
* @param qrcodeId
* @param status
*/
void
updateRiddleOpenStatus
(
Long
qrcodeId
,
Boolean
status
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/dao/impl/GroupQrcodeDaoImpl.java
View file @
bbd5cd3e
...
@@ -188,4 +188,13 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
...
@@ -188,4 +188,13 @@ public class GroupQrcodeDaoImpl extends BaseDaoImpl<GroupQrcode> implements Grou
public
List
<
GroupQrcodeFoAdDTO
>
GroupQrcodeFoAdDTOSByClassifyIds
(
List
<
Long
>
classifyIds
)
{
public
List
<
GroupQrcodeFoAdDTO
>
GroupQrcodeFoAdDTOSByClassifyIds
(
List
<
Long
>
classifyIds
)
{
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"GroupQrcodeFoAdDTOSByClassifyIds"
),
classifyIds
);
return
this
.
getSqlSession
().
selectList
(
this
.
getStatement
(
"GroupQrcodeFoAdDTOSByClassifyIds"
),
classifyIds
);
}
}
@Override
public
void
updateRiddleOpenStatus
(
Long
qrcodeId
,
Boolean
status
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"qrcodeId"
,
qrcodeId
);
map
.
put
(
"status"
,
status
);
getSessionTemplate
().
update
(
getStatement
(
"updateRiddleOpenStatus"
),
map
);
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/entity/GroupQrcode.java
View file @
bbd5cd3e
...
@@ -80,6 +80,10 @@ public class GroupQrcode extends BaseEntity {
...
@@ -80,6 +80,10 @@ public class GroupQrcode extends BaseEntity {
* 修改用户
* 修改用户
*/
*/
private
Long
updateUser
;
private
Long
updateUser
;
/**
* 猜谜语是否开启
*/
private
Boolean
riddleOpen
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
createTime
;
private
Date
createTime
;
...
@@ -231,6 +235,14 @@ public class GroupQrcode extends BaseEntity {
...
@@ -231,6 +235,14 @@ public class GroupQrcode extends BaseEntity {
this
.
qrcodeState
=
qrcodeState
;
this
.
qrcodeState
=
qrcodeState
;
}
}
public
Boolean
getRiddleOpen
()
{
return
riddleOpen
;
}
public
void
setRiddleOpen
(
Boolean
riddleOpen
)
{
this
.
riddleOpen
=
riddleOpen
;
}
@Override
@Override
public
String
toString
()
{
public
String
toString
()
{
return
"GroupQrcode{"
+
return
"GroupQrcode{"
+
...
@@ -243,12 +255,15 @@ public class GroupQrcode extends BaseEntity {
...
@@ -243,12 +255,15 @@ public class GroupQrcode extends BaseEntity {
", weixinGroupId='"
+
weixinGroupId
+
'\''
+
", weixinGroupId='"
+
weixinGroupId
+
'\''
+
", qrcodeUrl='"
+
qrcodeUrl
+
'\''
+
", qrcodeUrl='"
+
qrcodeUrl
+
'\''
+
", useState="
+
useState
+
", useState="
+
useState
+
", qrcodeState="
+
qrcodeState
+
", changeNameState="
+
changeNameState
+
", changeNameState="
+
changeNameState
+
", isDelete="
+
isDelete
+
", isDelete="
+
isDelete
+
", createUser="
+
createUser
+
", createUser="
+
createUser
+
", updateUser="
+
updateUser
+
", updateUser="
+
updateUser
+
", riddleOpen="
+
riddleOpen
+
", createTime="
+
createTime
+
", createTime="
+
createTime
+
", updateTime="
+
updateTime
+
", updateTime="
+
updateTime
+
", qrcodeHeadUrl='"
+
qrcodeHeadUrl
+
'\''
+
'}'
;
'}'
;
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/group/service/impl/BookGroupClassifyServiceImpl.java
View file @
bbd5cd3e
...
@@ -2,10 +2,7 @@ package com.pcloud.book.group.service.impl;
...
@@ -2,10 +2,7 @@ package com.pcloud.book.group.service.impl;
import
com.pcloud.book.group.biz.BookGroupClassifyBiz
;
import
com.pcloud.book.group.biz.BookGroupClassifyBiz
;
import
com.pcloud.book.group.biz.GroupQrcodeBiz
;
import
com.pcloud.book.group.biz.GroupQrcodeBiz
;
import
com.pcloud.book.group.dto.GroupClassifyQrcodeDTO
;
import
com.pcloud.book.group.dto.*
;
import
com.pcloud.book.group.dto.GroupQrcodeBaseDTO
;
import
com.pcloud.book.group.dto.GroupQrcodeInfo4Advertising
;
import
com.pcloud.book.group.dto.ProAssocGroupAndUserNumberDTO
;
import
com.pcloud.book.group.service.BookGroupClassifyService
;
import
com.pcloud.book.group.service.BookGroupClassifyService
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
import
com.pcloud.common.utils.ResponseHandleUtil
;
...
...
pcloud-service-book/src/main/java/com/pcloud/book/mq/topic/WxGroupSendTextListener.java
View file @
bbd5cd3e
...
@@ -6,6 +6,7 @@ import com.pcloud.book.clock.dto.BookClockInfoDTO;
...
@@ -6,6 +6,7 @@ import com.pcloud.book.clock.dto.BookClockInfoDTO;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.consumer.wechatgroup.WechatGroupConsr
;
import
com.pcloud.book.keywords.biz.BookKeywordBiz
;
import
com.pcloud.book.keywords.biz.BookKeywordBiz
;
import
com.pcloud.book.mq.config.MQTopicConumer
;
import
com.pcloud.book.mq.config.MQTopicConumer
;
import
com.pcloud.book.riddle.biz.RiddleRecordBiz
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
...
@@ -18,9 +19,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitHandler;
...
@@ -18,9 +19,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.amqp.rabbit.annotation.RabbitListener
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
import
java.util.List
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
/**
/**
...
@@ -33,7 +32,6 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -33,7 +32,6 @@ import lombok.extern.slf4j.Slf4j;
public
class
WxGroupSendTextListener
{
public
class
WxGroupSendTextListener
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
WxGroupSendTextListener
.
class
);
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
WxGroupSendTextListener
.
class
);
@Autowired
@Autowired
private
BookKeywordBiz
bookKeywordBiz
;
private
BookKeywordBiz
bookKeywordBiz
;
@Autowired
@Autowired
...
@@ -42,6 +40,8 @@ public class WxGroupSendTextListener {
...
@@ -42,6 +40,8 @@ public class WxGroupSendTextListener {
private
BookClockKeywordBiz
bookClockKeywordBiz
;
private
BookClockKeywordBiz
bookClockKeywordBiz
;
@Autowired
@Autowired
private
BookClockCheck
bookClockCheck
;
private
BookClockCheck
bookClockCheck
;
@Autowired
private
RiddleRecordBiz
riddleRecordBiz
;
/**
/**
* 接收微信用户进群消息
* 接收微信用户进群消息
...
@@ -64,9 +64,12 @@ public class WxGroupSendTextListener {
...
@@ -64,9 +64,12 @@ public class WxGroupSendTextListener {
bookKeywordBiz
.
sendKeywordMessage
(
sendTextDTO
.
getTextContent
().
trim
(),
sendTextDTO
.
getWechatGroupId
(),
wechatUserId
,
sendTextDTO
.
getWxId
(),
sendTextDTO
.
getIp
());
bookKeywordBiz
.
sendKeywordMessage
(
sendTextDTO
.
getTextContent
().
trim
(),
sendTextDTO
.
getWechatGroupId
(),
wechatUserId
,
sendTextDTO
.
getWxId
(),
sendTextDTO
.
getIp
());
log
.
info
(
"[接收用户发送文本消息] 总耗时:{}ms "
,
System
.
currentTimeMillis
()
-
l
);
log
.
info
(
"[接收用户发送文本消息] 总耗时:{}ms "
,
System
.
currentTimeMillis
()
-
l
);
}
}
//猜谜语
riddleRecordBiz
.
riddleProcess
(
sendTextDTO
);
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"接收用户发送文本消息失败"
+
e
.
getMessage
(),
e
);
LOGGER
.
error
(
"接收用户发送文本消息失败"
+
e
.
getMessage
(),
e
);
}
}
}
}
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/biz/RiddleRecordBiz.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
biz
;
import
com.pcloud.book.riddle.dto.GroupRedisDTO
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
/**
* @描述:猜谜过程
* @作者:zhuyajie
* @创建时间:18:20 2019/7/24
* @版本:1.0
*/
public
interface
RiddleRecordBiz
{
/**
* 猜谜过程
* @param sendTextDTO
*/
public
void
riddleProcess
(
SendTextDTO
sendTextDTO
);
/**
* 猜谜语详情列表
* @param partyId
* @param currentPage
* @param numPerPage
* @param name
* @return
*/
PageBeanNew
<
GroupRiddleDTO
>
listPage
(
Long
partyId
,
Integer
currentPage
,
Integer
numPerPage
,
String
name
);
/**
* 修改猜谜语开启状态
* @param qrcodeId
* @param status
*/
void
updateRiddleOpenStatus
(
Long
qrcodeId
,
Boolean
status
);
/**
* 自动结束
* @param wxGroupId
* @param wxId
* @param ip
* @param wxUserId
*/
public
void
autoEnd
(
String
wxGroupId
,
String
wxId
,
String
ip
,
String
wxUserId
);
/**
* 根据类型查回复语
* @param type
* @return
*/
public
String
getRandomReply
(
String
type
);
/**
* 发文本消息
* @param wxId
* @param wxGroupId
* @param content
* @param ip
* @param wxUserId
*/
public
void
sendWeixinTextMessage
(
String
wxId
,
String
wxGroupId
,
String
content
,
String
ip
,
String
wxUserId
);
/**
* 发送答错文案
* @param groupRedisDTO
*/
public
void
sendIncorrectMessage
(
GroupRedisDTO
groupRedisDTO
);
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/biz/impl/RiddleRecordBizImpl.java
0 → 100644
View file @
bbd5cd3e
This diff is collapsed.
Click to expand it.
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/RiddleDao.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
dao
;
import
com.pcloud.book.riddle.entity.Riddle
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @描述:
* @作者:zhuyajie
* @创建时间:16:47 2019/7/24
* @版本:1.0
*/
public
interface
RiddleDao
extends
BaseDao
<
Riddle
>
{
/**
* 根据等级和序号查下一个谜面
* @param grade
* @param seq
* @return
*/
Riddle
getRiddleByGradeAndSeq
(
Integer
grade
,
Integer
seq
);
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/RiddleRecordDao.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
dao
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.entity.RiddleRecord
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @描述:猜谜记录
* @作者:zhuyajie
* @创建时间:18:18 2019/7/24
* @版本:1.0
*/
public
interface
RiddleRecordDao
extends
BaseDao
<
RiddleRecord
>
{
/**
* 获取上一条猜谜记录
* @param wxGroupId
* @return
*/
RiddleRecord
getLastRecordByWxGroupId
(
String
wxGroupId
);
/**
* 获得答对题目数量
* @param wxGroupId
* @return
*/
Integer
getCorrectCountByGroup
(
String
wxGroupId
,
Integer
finishCount
);
/**
* 获取参与次数、人数
* @param wxGroupId
* @return
*/
public
GroupRiddleDTO
getParticipateCount
(
String
wxGroupId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/RiddleReplyDao.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
dao
;
import
com.pcloud.book.riddle.entity.RiddleReply
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
/**
* @描述:回复文案
* @作者:zhuyajie
* @创建时间:16:58 2019/7/24
* @版本:1.0
*/
public
interface
RiddleReplyDao
extends
BaseDao
<
RiddleReply
>
{
/**
* 根据类型获取回复语
* @param code
* @return
*/
List
<
String
>
getReplyByType
(
String
code
);
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/impl/RiddleDaoImpl.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
dao
.
impl
;
import
com.pcloud.book.riddle.dao.RiddleDao
;
import
com.pcloud.book.riddle.entity.Riddle
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @描述:
* @作者:zhuyajie
* @创建时间:16:47 2019/7/24
* @版本:1.0
*/
@Component
(
"riddleDao"
)
public
class
RiddleDaoImpl
extends
BaseDaoImpl
<
Riddle
>
implements
RiddleDao
{
@Override
public
Riddle
getRiddleByGradeAndSeq
(
Integer
grade
,
Integer
seq
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"grade"
,
grade
);
map
.
put
(
"seq"
,
seq
);
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getRiddleByGradeAndSeq"
),
map
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/impl/RiddleRecordDaoImpl.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
dao
.
impl
;
import
com.pcloud.book.riddle.dao.RiddleRecordDao
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.entity.RiddleRecord
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @描述:猜谜记录
* @作者:zhuyajie
* @创建时间:18:19 2019/7/24
* @版本:1.0
*/
@Component
(
"riddleRecordDao"
)
public
class
RiddleRecordDaoImpl
extends
BaseDaoImpl
<
RiddleRecord
>
implements
RiddleRecordDao
{
@Override
public
RiddleRecord
getLastRecordByWxGroupId
(
String
wxGroupId
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getLastRecordByWxGroupId"
),
wxGroupId
);
}
@Override
public
Integer
getCorrectCountByGroup
(
String
wxGroupId
,
Integer
finishCount
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"wxGroupId"
,
wxGroupId
);
map
.
put
(
"finishCount"
,
finishCount
);
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getCorrectCountByGroup"
),
map
);
}
@Override
public
GroupRiddleDTO
getParticipateCount
(
String
wxGroupId
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getParticipateCount"
),
wxGroupId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/impl/RiddleReplyDaoImpl.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
dao
.
impl
;
import
com.pcloud.book.riddle.dao.RiddleReplyDao
;
import
com.pcloud.book.riddle.entity.RiddleReply
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
java.util.List
;
/**
* @描述:回复文案
* @作者:zhuyajie
* @创建时间:16:58 2019/7/24
* @版本:1.0
*/
@Component
(
"riddleReplyDao"
)
public
class
RiddleReplyDaoImpl
extends
BaseDaoImpl
<
RiddleReply
>
implements
RiddleReplyDao
{
@Override
public
List
<
String
>
getReplyByType
(
String
code
)
{
return
getSessionTemplate
().
selectList
(
getStatement
(
"getReplyByType"
),
code
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dto/GroupRedisDTO.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
dto
;
/**
* @描述:
* @作者:zhuyajie
* @创建时间:11:58 2019/8/8
* @版本:1.0
*/
public
class
GroupRedisDTO
{
private
String
wxGroupId
;
private
String
wxId
;
private
String
ip
;
public
String
getWxGroupId
()
{
return
wxGroupId
;
}
public
void
setWxGroupId
(
String
wxGroupId
)
{
this
.
wxGroupId
=
wxGroupId
;
}
public
String
getWxId
()
{
return
wxId
;
}
public
void
setWxId
(
String
wxId
)
{
this
.
wxId
=
wxId
;
}
public
String
getIp
()
{
return
ip
;
}
public
void
setIp
(
String
ip
)
{
this
.
ip
=
ip
;
}
@Override
public
String
toString
()
{
return
"GroupRedisDTO{"
+
"wxGroupId='"
+
wxGroupId
+
'\''
+
", wxId='"
+
wxId
+
'\''
+
", ip='"
+
ip
+
'\''
+
'}'
;
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
this
==
o
)
return
true
;
if
(
o
==
null
||
getClass
()
!=
o
.
getClass
())
return
false
;
GroupRedisDTO
dto
=
(
GroupRedisDTO
)
o
;
return
wxGroupId
.
equals
(
dto
.
wxGroupId
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dto/GroupRiddleDTO.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
dto
;
import
com.pcloud.common.dto.BaseDto
;
/**
* @描述:编辑端猜谜语详情
* @作者:zhuyajie
* @创建时间:20:48 2019/7/31
* @版本:1.0
*/
public
class
GroupRiddleDTO
extends
BaseDto
{
/**
* 微信群名称
*/
private
String
groupName
;
/**
* 群二维码id
*/
private
Long
groupQrcodeId
;
/**
* 微信群id
*/
private
String
wxGroupId
;
/**
* 群分类
*/
private
String
classify
;
/**
*社群码名称
*/
private
String
groupQrcodeName
;
/**
* 图书名
*/
private
String
bookName
;
/**
* 专业标签ID
*/
private
Long
proLabelId
;
/**
* 专业标签名称
*/
private
String
proLabelName
;
/**
* 深度标签ID
*/
private
Long
depLabelId
;
/**
* 深度标签名称
*/
private
String
depLabelName
;
/**
* 目的标签ID
*/
private
Long
purLabelId
;
/**
* 目的标签名称
*/
private
String
purLabelName
;
/**
* 关卡等级
*/
private
Integer
grade
;
/**
* 猜中题数
*/
private
Integer
correctCount
;
/**
* 参与人数
*/
private
Integer
userNum
;
/**
* 参与次数
*/
private
Integer
participateCount
;
/**
* 开启状态
*/
private
Boolean
riddleOpen
;
/**
* 通关次数
*/
private
Integer
finishCount
;
public
String
getGroupName
()
{
return
groupName
;
}
public
void
setGroupName
(
String
groupName
)
{
this
.
groupName
=
groupName
;
}
public
Long
getGroupQrcodeId
()
{
return
groupQrcodeId
;
}
public
void
setGroupQrcodeId
(
Long
groupQrcodeId
)
{
this
.
groupQrcodeId
=
groupQrcodeId
;
}
public
String
getWxGroupId
()
{
return
wxGroupId
;
}
public
void
setWxGroupId
(
String
wxGroupId
)
{
this
.
wxGroupId
=
wxGroupId
;
}
public
String
getClassify
()
{
return
classify
;
}
public
void
setClassify
(
String
classify
)
{
this
.
classify
=
classify
;
}
public
String
getGroupQrcodeName
()
{
return
groupQrcodeName
;
}
public
void
setGroupQrcodeName
(
String
groupQrcodeName
)
{
this
.
groupQrcodeName
=
groupQrcodeName
;
}
public
String
getBookName
()
{
return
bookName
;
}
public
void
setBookName
(
String
bookName
)
{
this
.
bookName
=
bookName
;
}
public
Long
getProLabelId
()
{
return
proLabelId
;
}
public
void
setProLabelId
(
Long
proLabelId
)
{
this
.
proLabelId
=
proLabelId
;
}
public
String
getProLabelName
()
{
return
proLabelName
;
}
public
void
setProLabelName
(
String
proLabelName
)
{
this
.
proLabelName
=
proLabelName
;
}
public
Long
getDepLabelId
()
{
return
depLabelId
;
}
public
void
setDepLabelId
(
Long
depLabelId
)
{
this
.
depLabelId
=
depLabelId
;
}
public
String
getDepLabelName
()
{
return
depLabelName
;
}
public
void
setDepLabelName
(
String
depLabelName
)
{
this
.
depLabelName
=
depLabelName
;
}
public
Long
getPurLabelId
()
{
return
purLabelId
;
}
public
void
setPurLabelId
(
Long
purLabelId
)
{
this
.
purLabelId
=
purLabelId
;
}
public
String
getPurLabelName
()
{
return
purLabelName
;
}
public
void
setPurLabelName
(
String
purLabelName
)
{
this
.
purLabelName
=
purLabelName
;
}
public
Integer
getGrade
()
{
return
grade
;
}
public
void
setGrade
(
Integer
grade
)
{
this
.
grade
=
grade
;
}
public
Integer
getCorrectCount
()
{
return
correctCount
;
}
public
void
setCorrectCount
(
Integer
correctCount
)
{
this
.
correctCount
=
correctCount
;
}
public
Integer
getUserNum
()
{
return
userNum
;
}
public
void
setUserNum
(
Integer
userNum
)
{
this
.
userNum
=
userNum
;
}
public
Integer
getParticipateCount
()
{
return
participateCount
;
}
public
void
setParticipateCount
(
Integer
participateCount
)
{
this
.
participateCount
=
participateCount
;
}
public
Boolean
getRiddleOpen
()
{
return
riddleOpen
;
}
public
void
setRiddleOpen
(
Boolean
riddleOpen
)
{
this
.
riddleOpen
=
riddleOpen
;
}
public
Integer
getFinishCount
()
{
return
finishCount
;
}
public
void
setFinishCount
(
Integer
finishCount
)
{
this
.
finishCount
=
finishCount
;
}
@Override
public
String
toString
()
{
return
"GroupRiddleDTO{"
+
"groupName='"
+
groupName
+
'\''
+
", groupQrcodeId="
+
groupQrcodeId
+
", wxGroupId='"
+
wxGroupId
+
'\''
+
", classify='"
+
classify
+
'\''
+
", groupQrcodeName='"
+
groupQrcodeName
+
'\''
+
", bookName='"
+
bookName
+
'\''
+
", proLabelId="
+
proLabelId
+
", proLabelName='"
+
proLabelName
+
'\''
+
", depLabelId="
+
depLabelId
+
", depLabelName='"
+
depLabelName
+
'\''
+
", purLabelId="
+
purLabelId
+
", purLabelName='"
+
purLabelName
+
'\''
+
", grade="
+
grade
+
", correctCount="
+
correctCount
+
", userNum="
+
userNum
+
", participateCount="
+
participateCount
+
", riddleOpen="
+
riddleOpen
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dto/RiddleOpenDTO.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
dto
;
import
com.pcloud.common.dto.BaseDto
;
/**
* @描述:猜谜语开启状态
* @作者:zhuyajie
* @创建时间:21:51 2019/7/31
* @版本:1.0
*/
public
class
RiddleOpenDTO
extends
BaseDto
{
/**
* 群id
*/
private
Long
groupQrcodeId
;
/**
* 开启状态
*/
private
Boolean
status
;
public
Long
getGroupQrcodeId
()
{
return
groupQrcodeId
;
}
public
void
setGroupQrcodeId
(
Long
groupQrcodeId
)
{
this
.
groupQrcodeId
=
groupQrcodeId
;
}
public
Boolean
getStatus
()
{
return
status
;
}
public
void
setStatus
(
Boolean
status
)
{
this
.
status
=
status
;
}
@Override
public
String
toString
()
{
return
"RiddleOpenDTO{"
+
"groupQrcodeId="
+
groupQrcodeId
+
", status="
+
status
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/entity/Riddle.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
@ApiModel
(
"谜语"
)
public
class
Riddle
extends
BaseEntity
{
@ApiModelProperty
(
"谜面"
)
private
String
riddleContent
;
@ApiModelProperty
(
"谜底"
)
private
String
answer
;
@ApiModelProperty
(
"备选谜底"
)
private
String
otherAnswer
;
@ApiModelProperty
(
"等级"
)
private
Integer
grade
;
@ApiModelProperty
(
"序号"
)
private
Integer
seq
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
public
String
getRiddleContent
()
{
return
riddleContent
;
}
public
void
setRiddleContent
(
String
riddleContent
)
{
this
.
riddleContent
=
riddleContent
==
null
?
null
:
riddleContent
.
trim
();
}
public
String
getAnswer
()
{
return
answer
;
}
public
void
setAnswer
(
String
answer
)
{
this
.
answer
=
answer
==
null
?
null
:
answer
.
trim
();
}
public
String
getOtherAnswer
()
{
return
otherAnswer
;
}
public
void
setOtherAnswer
(
String
otherAnswer
)
{
this
.
otherAnswer
=
otherAnswer
;
}
public
Integer
getGrade
()
{
return
grade
;
}
public
void
setGrade
(
Integer
grade
)
{
this
.
grade
=
grade
;
}
public
Integer
getSeq
()
{
return
seq
;
}
public
void
setSeq
(
Integer
seq
)
{
this
.
seq
=
seq
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
@Override
public
String
toString
()
{
return
"Riddle{"
+
"riddleContent='"
+
riddleContent
+
'\''
+
", answer='"
+
answer
+
'\''
+
", otherAnswer='"
+
otherAnswer
+
'\''
+
", grade="
+
grade
+
", seq="
+
seq
+
", createTime="
+
createTime
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/riddle/entity/RiddleRecord.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
@ApiModel
(
"猜谜记录"
)
public
class
RiddleRecord
extends
BaseEntity
{
@ApiModelProperty
(
"谜语id"
)
private
Long
riddleId
;
@ApiModelProperty
(
"消息内容"
)
private
String
messageContent
;
@ApiModelProperty
(
"微信群"
)
private
String
wxGroupId
;
@ApiModelProperty
(
"微信用户"
)
private
String
wxUserId
;
@ApiModelProperty
(
"是否正确"
)
private
Boolean
correct
;
@ApiModelProperty
(
"进度状态"
)
private
Integer
status
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
@ApiModelProperty
(
"通关次数"
)
private
Integer
finishCount
;
public
Long
getRiddleId
()
{
return
riddleId
;
}
public
void
setRiddleId
(
Long
riddleId
)
{
this
.
riddleId
=
riddleId
;
}
public
String
getMessageContent
()
{
return
messageContent
;
}
public
void
setMessageContent
(
String
messageContent
)
{
this
.
messageContent
=
messageContent
;
}
public
String
getWxGroupId
()
{
return
wxGroupId
;
}
public
void
setWxGroupId
(
String
wxGroupId
)
{
this
.
wxGroupId
=
wxGroupId
==
null
?
null
:
wxGroupId
.
trim
();
}
public
String
getWxUserId
()
{
return
wxUserId
;
}
public
void
setWxUserId
(
String
wxUserId
)
{
this
.
wxUserId
=
wxUserId
==
null
?
null
:
wxUserId
.
trim
();
}
public
Boolean
getCorrect
()
{
return
correct
;
}
public
void
setCorrect
(
Boolean
correct
)
{
this
.
correct
=
correct
;
}
public
Integer
getStatus
()
{
return
status
;
}
public
void
setStatus
(
Integer
status
)
{
this
.
status
=
status
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
public
Integer
getFinishCount
()
{
return
finishCount
;
}
public
void
setFinishCount
(
Integer
finishCount
)
{
this
.
finishCount
=
finishCount
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/riddle/entity/RiddleReply.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.pcloud.common.entity.BaseEntity
;
import
java.util.Date
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
@ApiModel
(
"回复文案"
)
public
class
RiddleReply
extends
BaseEntity
{
@ApiModelProperty
(
"文案内容"
)
private
String
content
;
@ApiModelProperty
(
"文案类型"
)
private
String
type
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
public
String
getContent
()
{
return
content
;
}
public
void
setContent
(
String
content
)
{
this
.
content
=
content
==
null
?
null
:
content
.
trim
();
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
==
null
?
null
:
type
.
trim
();
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
@Override
public
String
toString
()
{
return
"RiddleReply{"
+
"content='"
+
content
+
'\''
+
", type='"
+
type
+
'\''
+
", createTime="
+
createTime
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/riddle/facade/RiddleFacade.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
facade
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.riddle.biz.RiddleRecordBiz
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.dto.RiddleOpenDTO
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestMapping
;
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
;
import
io.swagger.annotations.ApiParam
;
/**
* @描述:猜谜语外部接口
* @作者:zhuyajie
* @创建时间:17:53 2019/7/26
* @版本:1.0
*/
@Api
(
description
=
"猜谜语外部接口"
)
@RequestMapping
(
value
=
"/riddle"
)
@RestController
(
"riddleFacade"
)
public
class
RiddleFacade
{
@Autowired
private
RiddleRecordBiz
riddleRecordBiz
;
@ApiOperation
(
"发送信息"
)
@PostMapping
(
"sendText"
)
public
ResponseDto
<?>
sendText
(
@RequestBody
@ApiParam
SendTextDTO
sendTextDTO
){
riddleRecordBiz
.
riddleProcess
(
sendTextDTO
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
"猜谜语详情列表"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"name"
,
value
=
"name"
,
required
=
false
,
dataType
=
"string"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"当前页"
,
required
=
true
,
dataType
=
"int"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"numPerPage"
,
value
=
"每页条数"
,
required
=
true
,
dataType
=
"int"
,
paramType
=
"query"
),
})
@GetMapping
(
"listPage"
)
public
ResponseDto
<
PageBeanNew
<
GroupRiddleDTO
>>
listPage
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"name"
,
required
=
false
)
String
name
,
@RequestParam
(
"currentPage"
)
Integer
currentPage
,
@RequestParam
(
"numPerPage"
)
Integer
numPerPage
)
throws
PermissionException
{
Long
partyId
=
(
Long
)
SessionUtil
.
getVlaue
(
token
,
SessionUtil
.
PARTY_ID
);
if
(
null
==
numPerPage
||
null
==
currentPage
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"分页参数缺失"
);
}
PageBeanNew
<
GroupRiddleDTO
>
pageBean
=
riddleRecordBiz
.
listPage
(
partyId
,
currentPage
,
numPerPage
,
name
);
return
new
ResponseDto
<>(
pageBean
);
}
@ApiOperation
(
"更新猜谜语状态"
)
@PostMapping
(
"updateRiddleOpenStatus"
)
public
ResponseDto
<?>
updateRiddleOpenStatus
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
@ApiParam
RiddleOpenDTO
riddleOpenDTO
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
if
(
null
==
riddleOpenDTO
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数缺失"
);
}
Long
qrcodeId
=
riddleOpenDTO
.
getGroupQrcodeId
();
Boolean
status
=
riddleOpenDTO
.
getStatus
();
if
(
null
==
qrcodeId
||
null
==
status
)
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_ERROR
,
"参数缺失"
);
}
riddleRecordBiz
.
updateRiddleOpenStatus
(
qrcodeId
,
status
);
return
new
ResponseDto
<>();
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/redis/RiddleRedis.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
redis
;
import
com.pcloud.book.riddle.constants.RiddleConstant
;
import
com.pcloud.book.riddle.dto.GroupRedisDTO
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @描述:猜谜语缓存
* @作者:zhuyajie
* @创建时间:10:55 2019/7/30
* @版本:1.0
*/
@Component
(
"riddleRedis"
)
public
class
RiddleRedis
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
RiddleRedis
.
class
);
public
static
final
String
prefix
=
"BOOK_RIDDLE"
;
public
static
final
String
wait_time
=
prefix
+
"_wait_time"
;
//到时间回复信息
public
static
final
String
underway_group
=
prefix
+
"_underway_group"
;
//答题中的群
/**
* 添加等待时间
* @param wxGroupId
* @param value
*/
public
void
addWaitTime
(
String
wxGroupId
,
String
value
)
{
String
key
=
wait_time
+
wxGroupId
;
JedisClusterUtils
.
set
(
key
,
value
);
JedisClusterUtils
.
expire
(
key
,
RiddleConstant
.
expire_seconds
);
}
/**
* 获取等待时间
* @param wxGroupId
* @return
*/
public
String
getWaitTime
(
String
wxGroupId
)
{
String
key
=
wait_time
+
wxGroupId
;
return
JedisClusterUtils
.
get
(
key
);
}
/**
* 添加答题中的群
* @param wxGroupId
*/
public
void
addUnderwayGroup
(
String
wxGroupId
,
String
wxId
,
String
ip
)
{
GroupRedisDTO
dto
=
new
GroupRedisDTO
();
dto
.
setWxGroupId
(
wxGroupId
);
dto
.
setWxId
(
wxId
);
dto
.
setIp
(
ip
);
List
<
GroupRedisDTO
>
list
=
getUnderwayGroup
();
if
(
ListUtils
.
isEmpty
(
list
))
{
list
=
new
ArrayList
<>();
list
.
add
(
dto
);
}
else
{
if
(!
list
.
contains
(
dto
))
{
list
.
add
(
dto
);
}
}
JedisClusterUtils
.
setJsonList
(
underway_group
,
list
);
}
/**
* 获取答题中的群
* @return
*/
public
List
<
GroupRedisDTO
>
getUnderwayGroup
()
{
List
<
GroupRedisDTO
>
list
=
JedisClusterUtils
.
getJsonList
(
underway_group
,
GroupRedisDTO
.
class
);
if
(
ListUtils
.
isEmpty
(
list
))
{
list
=
new
ArrayList
<>();
GroupRedisDTO
dto
=
new
GroupRedisDTO
();
dto
.
setWxGroupId
(
"1"
);
dto
.
setWxId
(
"1"
);
dto
.
setIp
(
"1"
);
list
.
add
(
dto
);
JedisClusterUtils
.
setJsonList
(
underway_group
,
list
);
}
return
list
;
}
/**
* 删除答题中的群
* @param wxGroupId
*/
public
void
deleteUnderwayGroup
(
String
wxGroupId
)
{
List
<
GroupRedisDTO
>
list
=
getUnderwayGroup
();
if
(!
ListUtils
.
isEmpty
(
list
))
{
for
(
int
i
=
0
;
i
<
list
.
size
()
&&
null
!=
list
;
i
++)
{
GroupRedisDTO
dto
=
list
.
get
(
i
);
if
(
null
!=
dto
&&
dto
.
getWxGroupId
().
equals
(
wxGroupId
))
{
list
.
remove
(
dto
);
}
}
}
if
(
ListUtils
.
isEmpty
(
list
))
{
list
=
new
ArrayList
<>();
GroupRedisDTO
dto
=
new
GroupRedisDTO
();
dto
.
setWxGroupId
(
"1"
);
dto
.
setWxId
(
"1"
);
dto
.
setIp
(
"1"
);
list
.
add
(
dto
);
}
JedisClusterUtils
.
setJsonList
(
underway_group
,
list
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/service/impl/RiddleServiceImpl.java
0 → 100644
View file @
bbd5cd3e
package
com
.
pcloud
.
book
.
riddle
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
com.pcloud.book.riddle.RiddleService
;
import
com.pcloud.book.riddle.biz.RiddleRecordBiz
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.utils.string.StringUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RestController
;
import
java.util.Map
;
/**
* @描述:猜谜语
* @作者:zhuyajie
* @创建时间:16:26 2019/8/5
* @版本:1.0
*/
@RestController
(
"riddleService"
)
@RequestMapping
(
"riddleService"
)
public
class
RiddleServiceImpl
implements
RiddleService
{
@Autowired
private
RiddleRecordBiz
riddleRecordBiz
;
@RequestMapping
(
value
=
"/riddleEndQuartz"
,
method
=
RequestMethod
.
POST
)
@Override
@ParamLog
(
"定时器调用游戏结束接口"
)
public
void
riddleEndQuartz
(
@RequestBody
Map
<
String
,
Object
>
map
)
{
String
wxGroupId
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
map
.
get
(
"wxGroupId"
)),
new
TypeReference
<
String
>()
{});
String
wxId
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
map
.
get
(
"wxId"
)),
new
TypeReference
<
String
>()
{});
String
ip
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
map
.
get
(
"ip"
)),
new
TypeReference
<
String
>()
{});
String
wxUserId
=
JSON
.
parseObject
(
JSON
.
toJSONString
(
map
.
get
(
"wxUserId"
)),
new
TypeReference
<
String
>()
{});
if
(
StringUtil
.
isEmpty
(
wxGroupId
))
{
return
;
}
riddleRecordBiz
.
autoEnd
(
wxGroupId
,
wxId
,
ip
,
wxUserId
);
}
}
pcloud-service-book/src/main/resources/mapper/group/GroupQrcode.Mapper.xml
View file @
bbd5cd3e
...
@@ -18,11 +18,12 @@
...
@@ -18,11 +18,12 @@
<result
column=
"update_user"
property=
"updateUser"
jdbcType=
"BIGINT"
/>
<result
column=
"update_user"
property=
"updateUser"
jdbcType=
"BIGINT"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"update_time"
property=
"updateTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"is_delete"
property=
"isDelete"
jdbcType=
"BIT"
/>
<result
column=
"is_delete"
property=
"isDelete"
jdbcType=
"BIT"
/>
<result
column=
"riddle_open"
property=
"riddleOpen"
jdbcType=
"BIT"
/>
</resultMap>
</resultMap>
<sql
id=
"Base_Column_List"
>
<sql
id=
"Base_Column_List"
>
id,classify_id,group_name,group_seq,user_number,weixin_qrcode_id,weixin_group_id,qrcode_url,use_state,qrcode_state,
id,classify_id,group_name,group_seq,user_number,weixin_qrcode_id,weixin_group_id,qrcode_url,use_state,qrcode_state,
create_user,create_time,update_time,is_delete
create_user,create_time,update_time,is_delete
,riddle_open
</sql>
</sql>
<update
id=
"updateGroupQrcode"
parameterType=
"map"
>
<update
id=
"updateGroupQrcode"
parameterType=
"map"
>
...
@@ -498,4 +499,46 @@
...
@@ -498,4 +499,46 @@
#{item}
#{item}
</foreach>
</foreach>
</select>
</select>
<select
id=
"listPageRiddle"
parameterType=
"map"
resultType=
"com.pcloud.book.riddle.dto.GroupRiddleDTO"
>
SELECT
q.group_name AS groupName,
q.id AS groupQrcodeId,
q.weixin_group_id AS wxGroupId,
c.classify AS classify,
g.group_qrcode_name AS groupQrcodeName,
b.BOOK_NAME AS bookName,
g.pro_label_id AS proLabelId,
g.dep_label_id AS depLabelId,
g.pur_label_id AS purLabelId,
q.riddle_open AS riddleOpen
FROM
book_group_qrcode q
LEFT JOIN book_group_classify c ON q.classify_id = c.id
LEFT JOIN book_group g ON c.book_group_id = g.id
LEFT JOIN book b ON g.book_id = b.BOOK_ID
LEFT JOIN book_adviser a ON g.book_id = a.BOOK_ID
WHERE
a.ADVISER_ID = #{partyId}
AND a.IS_DELETE = 0
AND g.is_delete = 0
AND c.is_delete = 0
AND q.is_delete = 0
<if
test=
"name != null"
>
AND (
q.group_name LIKE CONCAT('%', #{name}, '%')
OR c.classify LIKE CONCAT('%', #{name}, '%')
OR g.group_qrcode_name LIKE CONCAT('%', #{name}, '%')
OR b.BOOK_NAME LIKE CONCAT('%', #{name}, '%')
)
</if>
</select>
<update
id=
"updateRiddleOpenStatus"
parameterType=
"map"
>
UPDATE book_group_qrcode
SET riddle_open = #{status}
WHERE
id = #{qrcodeId}
</update>
</mapper>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/riddle/RiddleMapper.xml
0 → 100644
View file @
bbd5cd3e
<?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.riddle.dao.impl.RiddleDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.riddle.entity.Riddle"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"riddle_content"
property=
"riddleContent"
jdbcType=
"VARCHAR"
/>
<result
column=
"answer"
property=
"answer"
jdbcType=
"VARCHAR"
/>
<result
column=
"other_answer"
property=
"otherAnswer"
jdbcType=
"VARCHAR"
/>
<result
column=
"grade"
property=
"grade"
jdbcType=
"TINYINT"
/>
<result
column=
"seq"
property=
"seq"
jdbcType=
"TINYINT"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, riddle_content, answer, other_answer, grade, seq, create_time
</sql>
<select
id=
"getRiddleByGradeAndSeq"
resultMap=
"BaseResultMap"
parameterType=
"map"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM
riddle
WHERE
grade = #{grade}
AND seq > #{seq}
LIMIT 1
</select>
<select
id=
"getById"
parameterType=
"Long"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM riddle
WHERE id = #{id}
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/riddle/RiddleRecordMapper.xml
0 → 100644
View file @
bbd5cd3e
<?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.riddle.dao.impl.RiddleRecordDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.riddle.entity.RiddleRecord"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"riddle_id"
property=
"riddleId"
jdbcType=
"BIGINT"
/>
<result
column=
"message_content"
property=
"messageContent"
jdbcType=
"VARCHAR"
/>
<result
column=
"wx_group_id"
property=
"wxGroupId"
jdbcType=
"VARCHAR"
/>
<result
column=
"wx_user_id"
property=
"wxUserId"
jdbcType=
"VARCHAR"
/>
<result
column=
"correct"
property=
"correct"
jdbcType=
"BIT"
/>
<result
column=
"status"
property=
"status"
jdbcType=
"TINYINT"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"finish_count"
property=
"finishCount"
jdbcType=
"INTEGER"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, riddle_id, message_content, wx_group_id, wx_user_id, correct, status, create_time, finish_count
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.riddle.entity.RiddleRecord"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into riddle_record (id, riddle_id, message_content,
wx_group_id, wx_user_id, correct, status,
create_time, finish_count)
values (#{id,jdbcType=BIGINT}, #{riddleId,jdbcType=BIGINT}, #{messageContent,jdbcType=VARCHAR},
#{wxGroupId,jdbcType=VARCHAR}, #{wxUserId,jdbcType=VARCHAR}, #{correct,jdbcType=BIT}, #{status},
NOW(), #{finishCount})
</insert>
<select
id=
"getLastRecordByWxGroupId"
resultMap=
"BaseResultMap"
parameterType=
"String"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM riddle_record
WHERE wx_group_id = #{wxGroupId}
ORDER BY
create_time DESC, id DESC
LIMIT 1
</select>
<select
id=
"getCorrectCountByGroup"
parameterType=
"map"
resultType=
"Integer"
>
SELECT
COUNT(DISTINCT riddle_id)
FROM
riddle_record
WHERE
wx_group_id = #{wxGroupId}
AND finish_count = #{finishCount}
AND correct = 1
</select>
<select
id=
"getParticipateCount"
parameterType=
"String"
resultType=
"com.pcloud.book.riddle.dto.GroupRiddleDTO"
>
SELECT
COUNT(DISTINCT wx_user_id) userNum,
COUNT(1) participateCount
FROM
riddle_record
WHERE
wx_group_id = #{wxGroupId}
AND correct IS NOT NULL
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/riddle/RiddleReplyMapper.xml
0 → 100644
View file @
bbd5cd3e
<?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.riddle.dao.impl.RiddleReplyDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.riddle.entity.RiddleReply"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"content"
property=
"content"
jdbcType=
"VARCHAR"
/>
<result
column=
"type"
property=
"type"
jdbcType=
"VARCHAR"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, content, type, create_time
</sql>
<select
id=
"getReplyByType"
parameterType=
"String"
resultType=
"String"
>
SELECT
content
FROM
riddle_reply
WHERE
type = #{type}
</select>
</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