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
6a3d5438
Commit
6a3d5438
authored
Sep 06, 2019
by
朱亚洁
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
猜谜语
parent
e0a3d720
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
560 additions
and
21 deletions
+560
-21
RiddleConstant.java
...java/com/pcloud/book/riddle/constants/RiddleConstant.java
+8
-0
RiddleClickTypeEnum.java
...ava/com/pcloud/book/riddle/enums/RiddleClickTypeEnum.java
+36
-0
RiddleRecordStatusEnum.java
.../com/pcloud/book/riddle/enums/RiddleRecordStatusEnum.java
+7
-1
RiddleRecordBiz.java
...main/java/com/pcloud/book/riddle/biz/RiddleRecordBiz.java
+24
-0
RiddleRecordBizImpl.java
.../com/pcloud/book/riddle/biz/impl/RiddleRecordBizImpl.java
+0
-0
RiddleClickRecordDao.java
...java/com/pcloud/book/riddle/dao/RiddleClickRecordDao.java
+22
-0
RiddleDao.java
...k/src/main/java/com/pcloud/book/riddle/dao/RiddleDao.java
+6
-0
RiddleRecordDao.java
...main/java/com/pcloud/book/riddle/dao/RiddleRecordDao.java
+41
-1
RiddleClickRecordDaoImpl.java
...pcloud/book/riddle/dao/impl/RiddleClickRecordDaoImpl.java
+29
-0
RiddleDaoImpl.java
...n/java/com/pcloud/book/riddle/dao/impl/RiddleDaoImpl.java
+5
-0
RiddleRecordDaoImpl.java
.../com/pcloud/book/riddle/dao/impl/RiddleRecordDaoImpl.java
+43
-2
CouponClickDTO.java
.../main/java/com/pcloud/book/riddle/dto/CouponClickDTO.java
+46
-0
UserRankingDTO.java
.../main/java/com/pcloud/book/riddle/dto/UserRankingDTO.java
+45
-0
RiddleClickRecord.java
...java/com/pcloud/book/riddle/entity/RiddleClickRecord.java
+75
-0
RiddleFacade.java
...main/java/com/pcloud/book/riddle/facade/RiddleFacade.java
+36
-3
RiddleRedis.java
...c/main/java/com/pcloud/book/riddle/redis/RiddleRedis.java
+6
-6
RiddleClickRecordMapper.xml
.../main/resources/mapper/riddle/RiddleClickRecordMapper.xml
+35
-0
RiddleMapper.xml
...ce-book/src/main/resources/mapper/riddle/RiddleMapper.xml
+8
-1
RiddleRecordMapper.xml
...k/src/main/resources/mapper/riddle/RiddleRecordMapper.xml
+88
-7
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/riddle/constants/RiddleConstant.java
View file @
6a3d5438
...
...
@@ -22,5 +22,13 @@ public class RiddleConstant {
*/
public
static
final
String
JOB_NAME_RIDDLE_EXPIRE
=
"judgeRiddleTime"
;
/**
* 每个谜语后的规则提示
*/
public
static
final
String
rule_notice
=
"敲重点!如果答错了,我是不会回复的哦。"
;
/**
* 关键词说明
*/
public
static
final
String
introduce
=
"猜谜语,简单有趣的小游戏。连续答对5题,所有群成员可获得精美礼券"
;
}
pcloud-facade-book/src/main/java/com/pcloud/book/riddle/enums/RiddleClickTypeEnum.java
0 → 100644
View file @
6a3d5438
package
com
.
pcloud
.
book
.
riddle
.
enums
;
/**
* @描述:点击记录
* @作者:zhuyajie
* @创建时间:16:39 2019/8/29
* @版本:1.0
*/
public
enum
RiddleClickTypeEnum
{
/**
* 点击链接
*/
link
(
1
),
/**
* 许愿
*/
wish
(
2
),
/**
* 立即使用
*/
use
(
3
);
private
Integer
code
;
public
Integer
getCode
()
{
return
code
;
}
public
void
setCode
(
Integer
code
)
{
this
.
code
=
code
;
}
RiddleClickTypeEnum
(
Integer
code
)
{
this
.
code
=
code
;
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/riddle/enums/RiddleRecordStatusEnum.java
View file @
6a3d5438
...
...
@@ -19,7 +19,11 @@ public enum RiddleRecordStatusEnum {
/**
*进行中
*/
underway
(
2
);
underway
(
2
),
/**
* 通关结束
*/
over
(
3
);
private
Integer
code
;
...
...
@@ -34,4 +38,6 @@ public enum RiddleRecordStatusEnum {
RiddleRecordStatusEnum
(
Integer
code
)
{
this
.
code
=
code
;
}
public
static
final
Integer
[]
GAME_END
=
{
end
.
code
,
over
.
code
};
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/biz/RiddleRecordBiz.java
View file @
6a3d5438
package
com
.
pcloud
.
book
.
riddle
.
biz
;
import
com.pcloud.book.riddle.dto.CouponClickDTO
;
import
com.pcloud.book.riddle.dto.GroupRedisDTO
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.entity.RiddleClickRecord
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
...
...
@@ -67,4 +69,26 @@ public interface RiddleRecordBiz {
* @param groupRedisDTO
*/
public
void
sendIncorrectMessage
(
GroupRedisDTO
groupRedisDTO
);
/**
* 发送优惠券链接
* @param wxGroupId
* @param wxId
* @param ip
*/
public
void
sendCouponLink
(
String
wxId
,
String
wxGroupId
,
String
ip
);
/**
* 礼券点击记录埋点
* @param riddleClickRecord
*/
void
addClickTrack
(
RiddleClickRecord
riddleClickRecord
);
/**
* 优惠券剩余领取次数
* @param wxGroupId
* @param wechatUserId
* @return
*/
CouponClickDTO
getGroupWishCount
(
String
wxGroupId
,
Long
wechatUserId
);
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/biz/impl/RiddleRecordBizImpl.java
View file @
6a3d5438
This diff is collapsed.
Click to expand it.
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/RiddleClickRecordDao.java
0 → 100644
View file @
6a3d5438
package
com
.
pcloud
.
book
.
riddle
.
dao
;
import
com.pcloud.book.riddle.entity.RiddleClickRecord
;
import
com.pcloud.common.core.dao.BaseDao
;
/**
* @描述:点击记录
* @作者:zhuyajie
* @创建时间:18:27 2019/8/29
* @版本:1.0
*/
public
interface
RiddleClickRecordDao
extends
BaseDao
<
RiddleClickRecord
>
{
/**
* 根据类型查使用次数
* @param wxGroupId
* @param wechatUserId
* @param code
* @return
*/
Integer
getCountByType
(
String
wxGroupId
,
Long
wechatUserId
,
Integer
code
);
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/RiddleDao.java
View file @
6a3d5438
...
...
@@ -19,4 +19,10 @@ public interface RiddleDao extends BaseDao<Riddle> {
* @return
*/
Riddle
getRiddleByGradeAndSeq
(
Integer
grade
,
Integer
seq
);
/**
* 获取所有题目数量
* @return
*/
Integer
getCount
();
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/RiddleRecordDao.java
View file @
6a3d5438
package
com
.
pcloud
.
book
.
riddle
.
dao
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.dto.UserRankingDTO
;
import
com.pcloud.book.riddle.entity.RiddleRecord
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.Date
;
import
java.util.List
;
/**
* @描述:猜谜记录
* @作者:zhuyajie
...
...
@@ -16,9 +20,10 @@ public interface RiddleRecordDao extends BaseDao<RiddleRecord> {
/**
* 获取上一条猜谜记录
* @param wxGroupId
* @param status 状态
* @return
*/
RiddleRecord
getLastRecordByWxGroupId
(
String
wxGroupId
);
RiddleRecord
getLastRecordByWxGroupId
(
String
wxGroupId
,
Integer
status
);
/**
* 获得答对题目数量
...
...
@@ -33,4 +38,39 @@ public interface RiddleRecordDao extends BaseDao<RiddleRecord> {
* @return
*/
public
GroupRiddleDTO
getParticipateCount
(
String
wxGroupId
);
/**
* 获得群排名
* @param wxGroupId
* @return
*/
public
Integer
getGroupRanking
(
String
wxGroupId
);
/**
* 获得用户答题排名
* @param wxGroupId
* @return
*/
public
List
<
UserRankingDTO
>
getUserRanking
(
String
wxGroupId
,
Date
createTime
);
/**
* 根据时间查答对题数
* @param wxGroupId
* @param createTime
* @return
*/
public
Integer
getCorrectCountByTime
(
String
wxGroupId
,
Date
createTime
);
/**
* 连答对5题过关次数
* @param wxGroupId
* @return
*/
public
Integer
getOverTime
(
String
wxGroupId
);
/**
* 获得答对过题目群数
* @return
*/
public
Integer
getCorrectGroupCount
();
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/impl/RiddleClickRecordDaoImpl.java
0 → 100644
View file @
6a3d5438
package
com
.
pcloud
.
book
.
riddle
.
dao
.
impl
;
import
com.pcloud.book.riddle.dao.RiddleClickRecordDao
;
import
com.pcloud.book.riddle.entity.RiddleClickRecord
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
java.util.HashMap
;
import
java.util.Map
;
/**
* @描述:点击记录
* @作者:zhuyajie
* @创建时间:18:27 2019/8/29
* @版本:1.0
*/
@Component
(
"riddleClickRecordDao"
)
public
class
RiddleClickRecordDaoImpl
extends
BaseDaoImpl
<
RiddleClickRecord
>
implements
RiddleClickRecordDao
{
@Override
public
Integer
getCountByType
(
String
wxGroupId
,
Long
wechatUserId
,
Integer
code
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"wxGroupId"
,
wxGroupId
);
map
.
put
(
"wechatUserId"
,
wechatUserId
);
map
.
put
(
"type"
,
code
);
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getCountByType"
),
map
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/impl/RiddleDaoImpl.java
View file @
6a3d5438
...
...
@@ -26,4 +26,9 @@ public class RiddleDaoImpl extends BaseDaoImpl<Riddle> implements RiddleDao {
map
.
put
(
"seq"
,
seq
);
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getRiddleByGradeAndSeq"
),
map
);
}
@Override
public
Integer
getCount
()
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getCount"
));
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/impl/RiddleRecordDaoImpl.java
View file @
6a3d5438
...
...
@@ -2,12 +2,15 @@ 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.dto.UserRankingDTO
;
import
com.pcloud.book.riddle.entity.RiddleRecord
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
...
...
@@ -21,8 +24,11 @@ public class RiddleRecordDaoImpl extends BaseDaoImpl<RiddleRecord> implements Ri
@Override
public
RiddleRecord
getLastRecordByWxGroupId
(
String
wxGroupId
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getLastRecordByWxGroupId"
),
wxGroupId
);
public
RiddleRecord
getLastRecordByWxGroupId
(
String
wxGroupId
,
Integer
status
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"wxGroupId"
,
wxGroupId
);
map
.
put
(
"status"
,
status
);
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getLastRecordByWxGroupId"
),
map
);
}
@Override
...
...
@@ -37,4 +43,39 @@ public class RiddleRecordDaoImpl extends BaseDaoImpl<RiddleRecord> implements Ri
public
GroupRiddleDTO
getParticipateCount
(
String
wxGroupId
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getParticipateCount"
),
wxGroupId
);
}
@Override
public
Integer
getGroupRanking
(
String
wxGroupId
)
{
Integer
ranking
=
getSessionTemplate
().
selectOne
(
getStatement
(
"getGroupRanking"
),
wxGroupId
);
if
(
null
==
ranking
)
{
ranking
=
getCorrectGroupCount
()
+
1
;
}
return
ranking
;
}
@Override
public
List
<
UserRankingDTO
>
getUserRanking
(
String
wxGroupId
,
Date
createTime
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"wxGroupId"
,
wxGroupId
);
map
.
put
(
"createTime"
,
createTime
);
return
getSessionTemplate
().
selectList
(
getStatement
(
"getUserRanking"
),
map
);
}
@Override
public
Integer
getCorrectCountByTime
(
String
wxGroupId
,
Date
createTime
)
{
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"wxGroupId"
,
wxGroupId
);
map
.
put
(
"createTime"
,
createTime
);
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getCorrectCountByTime"
),
map
);
}
@Override
public
Integer
getOverTime
(
String
wxGroupId
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getOverTime"
),
wxGroupId
);
}
@Override
public
Integer
getCorrectGroupCount
()
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getCorrectGroupCount"
));
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dto/CouponClickDTO.java
0 → 100644
View file @
6a3d5438
package
com
.
pcloud
.
book
.
riddle
.
dto
;
import
com.pcloud.common.dto.BaseDto
;
/**
* @描述:优惠券领取次数
* @作者:zhuyajie
* @创建时间:14:38 2019/8/30
* @版本:1.0
*/
public
class
CouponClickDTO
extends
BaseDto
{
/**
* 总次数
*/
private
Integer
totalCount
;
/**
* 剩余次数
*/
private
Integer
remainCount
;
public
Integer
getTotalCount
()
{
return
totalCount
;
}
public
void
setTotalCount
(
Integer
totalCount
)
{
this
.
totalCount
=
totalCount
;
}
public
Integer
getRemainCount
()
{
return
remainCount
;
}
public
void
setRemainCount
(
Integer
remainCount
)
{
this
.
remainCount
=
remainCount
;
}
@Override
public
String
toString
()
{
return
"CouponClickDTO{"
+
"totalCount="
+
totalCount
+
", remainCount="
+
remainCount
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dto/UserRankingDTO.java
0 → 100644
View file @
6a3d5438
package
com
.
pcloud
.
book
.
riddle
.
dto
;
import
com.pcloud.common.dto.BaseDto
;
/**
* @描述:答题排名
* @作者:zhuyajie
* @创建时间:9:52 2019/8/29
* @版本:1.0
*/
public
class
UserRankingDTO
extends
BaseDto
{
/**
* 数量
*/
private
Integer
count
;
/**
* 用户id
*/
private
String
wxUserId
;
public
Integer
getCount
()
{
return
count
;
}
public
void
setCount
(
Integer
count
)
{
this
.
count
=
count
;
}
public
String
getWxUserId
()
{
return
wxUserId
;
}
public
void
setWxUserId
(
String
wxUserId
)
{
this
.
wxUserId
=
wxUserId
;
}
@Override
public
String
toString
()
{
return
"UserRankingDTO{"
+
"count="
+
count
+
", wxUserId='"
+
wxUserId
+
'\''
+
'}'
;
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/entity/RiddleClickRecord.java
0 → 100644
View file @
6a3d5438
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
RiddleClickRecord
extends
BaseEntity
{
@ApiModelProperty
(
"微信群id"
)
private
String
wxGroupId
;
@ApiModelProperty
(
"微信用户id"
)
private
Long
wechatUserId
;
@ApiModelProperty
(
"点击类型(1点击链接2许愿3奖品立即使用)"
)
private
Integer
clickType
;
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
@ApiModelProperty
(
"创建时间"
)
private
Date
createTime
;
public
String
getWxGroupId
()
{
return
wxGroupId
;
}
public
void
setWxGroupId
(
String
wxGroupId
)
{
this
.
wxGroupId
=
wxGroupId
==
null
?
null
:
wxGroupId
.
trim
();
}
public
Long
getWechatUserId
()
{
return
wechatUserId
;
}
public
void
setWechatUserId
(
Long
wechatUserId
)
{
this
.
wechatUserId
=
wechatUserId
;
}
public
Integer
getClickType
()
{
return
clickType
;
}
public
void
setClickType
(
Integer
clickType
)
{
this
.
clickType
=
clickType
;
}
public
Date
getCreateTime
()
{
return
createTime
;
}
public
void
setCreateTime
(
Date
createTime
)
{
this
.
createTime
=
createTime
;
}
@Override
public
String
toString
()
{
return
"RiddleClickRecord{"
+
"wxGroupId='"
+
wxGroupId
+
'\''
+
", wechatUserId="
+
wechatUserId
+
", clickType="
+
clickType
+
", createTime="
+
createTime
+
'}'
;
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/riddle/facade/RiddleFacade.java
View file @
6a3d5438
...
...
@@ -2,15 +2,20 @@ 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.CouponClickDTO
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.dto.RiddleOpenDTO
;
import
com.pcloud.book.riddle.entity.RiddleClickRecord
;
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.common.utils.cookie.Cookie
;
import
com.pcloud.common.utils.string.StringUtil
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.CookieValue
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
...
@@ -39,14 +44,14 @@ public class RiddleFacade {
@Autowired
private
RiddleRecordBiz
riddleRecordBiz
;
@ApiOperation
(
"发送信息
"
)
@ApiOperation
(
value
=
"发送信息"
,
httpMethod
=
"POST
"
)
@PostMapping
(
"sendText"
)
public
ResponseDto
<?>
sendText
(
@RequestBody
@ApiParam
SendTextDTO
sendTextDTO
){
riddleRecordBiz
.
riddleProcess
(
sendTextDTO
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
"猜谜语详情列表
"
)
@ApiOperation
(
value
=
"猜谜语详情列表"
,
httpMethod
=
"GET
"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"name"
,
value
=
"name"
,
required
=
false
,
dataType
=
"string"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"当前页"
,
required
=
true
,
dataType
=
"int"
,
paramType
=
"query"
),
...
...
@@ -64,7 +69,7 @@ public class RiddleFacade {
return
new
ResponseDto
<>(
pageBean
);
}
@ApiOperation
(
"更新猜谜语状态
"
)
@ApiOperation
(
value
=
"更新猜谜语状态"
,
httpMethod
=
"POST
"
)
@PostMapping
(
"updateRiddleOpenStatus"
)
public
ResponseDto
<?>
updateRiddleOpenStatus
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
@ApiParam
RiddleOpenDTO
riddleOpenDTO
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
...
...
@@ -79,4 +84,32 @@ public class RiddleFacade {
riddleRecordBiz
.
updateRiddleOpenStatus
(
qrcodeId
,
status
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
value
=
"添加点击记录"
,
httpMethod
=
"POST"
)
@PostMapping
(
"addClickTrack"
)
public
ResponseDto
<?>
addClickTrack
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestBody
@ApiParam
RiddleClickRecord
riddleClickRecord
){
if
(
null
==
riddleClickRecord
){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"参数为空"
);
}
if
(
StringUtil
.
isEmpty
(
riddleClickRecord
.
getWxGroupId
())
||
null
==
riddleClickRecord
.
getClickType
()){
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"参数缺失"
);
}
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
riddleClickRecord
.
setWechatUserId
(
wechatUserId
);
riddleRecordBiz
.
addClickTrack
(
riddleClickRecord
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
value
=
"群猜谜语优惠券许愿次数"
,
httpMethod
=
"GET"
)
@ApiImplicitParam
(
name
=
"wxGroupId"
,
value
=
"wxGroupId"
,
required
=
false
,
dataType
=
"string"
,
paramType
=
"query"
)
@GetMapping
(
"getGroupWishCount4Wechat"
)
public
ResponseDto
<
CouponClickDTO
>
getGroupWishCount4Wechat
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestParam
(
value
=
"wxGroupId"
,
required
=
false
)
String
wxGroupId
)
{
if
(
StringUtil
.
isEmpty
(
wxGroupId
))
{
throw
new
BookBizException
(
BookBizException
.
PARAM_IS_NULL
,
"缺少群id"
);
}
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
CouponClickDTO
dto
=
riddleRecordBiz
.
getGroupWishCount
(
wxGroupId
,
wechatUserId
);
return
new
ResponseDto
<>(
dto
);
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/redis/RiddleRedis.java
View file @
6a3d5438
...
...
@@ -51,7 +51,7 @@ public class RiddleRedis {
* 添加答题中的群
* @param wxGroupId
*/
public
void
addUnderwayGroup
(
String
wxGroupId
,
String
wxId
,
String
ip
)
{
/*
public void addUnderwayGroup(String wxGroupId, String wxId, String ip) {
GroupRedisDTO dto = new GroupRedisDTO();
dto.setWxGroupId(wxGroupId);
dto.setWxId(wxId);
...
...
@@ -66,13 +66,13 @@ public class RiddleRedis {
}
}
JedisClusterUtils.setJsonList(underway_group, list);
}
}
*/
/**
* 获取答题中的群
* @return
*/
public
List
<
GroupRedisDTO
>
getUnderwayGroup
()
{
/*
public List<GroupRedisDTO> getUnderwayGroup() {
List<GroupRedisDTO> list = JedisClusterUtils.getJsonList(underway_group, GroupRedisDTO.class);
if (ListUtils.isEmpty(list)) {
list = new ArrayList<>();
...
...
@@ -85,12 +85,12 @@ public class RiddleRedis {
}
return list;
}
*/
/**
* 删除答题中的群
* @param wxGroupId
*/
public
void
deleteUnderwayGroup
(
String
wxGroupId
)
{
/*
public void deleteUnderwayGroup(String wxGroupId) {
List<GroupRedisDTO> list = getUnderwayGroup();
if (!ListUtils.isEmpty(list)) {
for (int i = 0; i < list.size() && null != list; i++) {
...
...
@@ -109,6 +109,6 @@ public class RiddleRedis {
list.add(dto);
}
JedisClusterUtils.setJsonList(underway_group, list);
}
}
*/
}
pcloud-service-book/src/main/resources/mapper/riddle/RiddleClickRecordMapper.xml
0 → 100644
View file @
6a3d5438
<?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.RiddleClickRecordDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.riddle.entity.RiddleClickRecord"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"wx_group_id"
property=
"wxGroupId"
jdbcType=
"VARCHAR"
/>
<result
column=
"wechat_user_id"
property=
"wechatUserId"
jdbcType=
"BIGINT"
/>
<result
column=
"click_type"
property=
"clickType"
jdbcType=
"INTEGER"
/>
<result
column=
"create_time"
property=
"createTime"
jdbcType=
"TIMESTAMP"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, wx_group_id, wechat_user_id, click_type, create_time
</sql>
<insert
id=
"insert"
parameterType=
"com.pcloud.book.riddle.entity.RiddleClickRecord"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into riddle_click_record (wx_group_id, wechat_user_id,
click_type, create_time)
values (#{wxGroupId,jdbcType=VARCHAR}, #{wechatUserId,jdbcType=BIGINT},
#{clickType,jdbcType=INTEGER}, NOW())
</insert>
<select
id=
"getCountByType"
parameterType=
"map"
resultType=
"integer"
>
SELECT
COUNT(1)
FROM
riddle_click_record
WHERE
wx_group_id = #{wxGroupId}
AND wechat_user_id = #{wechatUserId}
AND click_type = #{type}
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/riddle/RiddleMapper.xml
View file @
6a3d5438
...
...
@@ -32,6 +32,12 @@
FROM riddle
WHERE id = #{id}
</select>
<select
id=
"getCount"
resultType=
"integer"
>
SELECT
COUNT(1)
FROM
riddle
</select>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/riddle/RiddleRecordMapper.xml
View file @
6a3d5438
...
...
@@ -19,19 +19,22 @@
<insert
id=
"insert"
parameterType=
"com.pcloud.book.riddle.entity.RiddleRecord"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into riddle_record (
id, riddle_id, message_content,
insert into riddle_record (
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},
values (#{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
id=
"getLastRecordByWxGroupId"
resultMap=
"BaseResultMap"
parameterType=
"
map
"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM riddle_record
WHERE wx_group_id = #{wxGroupId}
<if
test=
"status != null"
>
AND `status`= #{status}
</if>
ORDER BY
create_time DESC, id DESC
LIMIT 1
...
...
@@ -39,13 +42,15 @@
<select
id=
"getCorrectCountByGroup"
parameterType=
"map"
resultType=
"Integer"
>
SELECT
COUNT(DISTINCT riddle_id
)
COUNT(DISTINCT riddle_id,finish_count
)
FROM
riddle_record
WHERE
wx_group_id = #{wxGroupId}
AND finish_count = #{finishCount}
AND correct = 1
AND correct = 1
<if
test=
"finishCount != null"
>
AND finish_count = #{finishCount}
</if>
</select>
<select
id=
"getParticipateCount"
parameterType=
"String"
resultType=
"com.pcloud.book.riddle.dto.GroupRiddleDTO"
>
...
...
@@ -58,5 +63,80 @@
wx_group_id = #{wxGroupId}
AND correct IS NOT NULL
</select>
<select
id=
"getGroupRanking"
parameterType=
"string"
resultType=
"integer"
>
SELECT
b.rownum
FROM
(
SELECT
t.wx_group_id,
@rownum := @rownum + 1 AS rownum
FROM
(SELECT @rownum := 0) r,
(
SELECT
wx_group_id
FROM
riddle_record
WHERE
correct = 1
GROUP BY
wx_group_id
ORDER BY
COUNT(DISTINCT riddle_id,finish_count) DESC,
create_time DESC
) AS t
) AS b
WHERE
b.wx_group_id = #{wxGroupId}
</select>
<select
id=
"getUserRanking"
parameterType=
"map"
resultType=
"com.pcloud.book.riddle.dto.UserRankingDTO"
>
SELECT
COUNT(DISTINCT riddle_id,finish_count) count,
wx_user_id wxUserId
FROM
riddle_record
WHERE
wx_group_id = #{wxGroupId}
AND correct = 1
AND create_time > #{createTime}
GROUP BY
wx_user_id
ORDER BY
COUNT(DISTINCT riddle_id,finish_count) DESC
</select>
<select
id=
"getCorrectCountByTime"
resultType=
"integer"
parameterType=
"map"
>
SELECT
COUNT(DISTINCT riddle_id,finish_count)
FROM
riddle_record
WHERE
wx_group_id = #{wxGroupId}
AND correct = 1
AND create_time > #{createTime}
</select>
<!--连答对5题过关次数-->
<select
id=
"getOverTime"
resultType=
"integer"
parameterType=
"string"
>
SELECT
COUNT(1)
FROM
riddle_record
WHERE
wx_group_id = #{wxGroupId}
AND `status` = 3
</select>
<select
id=
"getCorrectGroupCount"
resultType=
"integer"
>
SELECT
COUNT(DISTINCT wx_group_id)
FROM
riddle_record
WHERE
correct = 1
</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