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
a60a1072
Commit
a60a1072
authored
Sep 06, 2019
by
高鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat-riddle' into 'master'
猜谜语 See merge request rays/pcloud-book!138
parents
a1670ff6
6a3d5438
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 @
a60a1072
...
@@ -22,5 +22,13 @@ public class RiddleConstant {
...
@@ -22,5 +22,13 @@ public class RiddleConstant {
*/
*/
public
static
final
String
JOB_NAME_RIDDLE_EXPIRE
=
"judgeRiddleTime"
;
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 @
a60a1072
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 @
a60a1072
...
@@ -19,7 +19,11 @@ public enum RiddleRecordStatusEnum {
...
@@ -19,7 +19,11 @@ public enum RiddleRecordStatusEnum {
/**
/**
*进行中
*进行中
*/
*/
underway
(
2
);
underway
(
2
),
/**
* 通关结束
*/
over
(
3
);
private
Integer
code
;
private
Integer
code
;
...
@@ -34,4 +38,6 @@ public enum RiddleRecordStatusEnum {
...
@@ -34,4 +38,6 @@ public enum RiddleRecordStatusEnum {
RiddleRecordStatusEnum
(
Integer
code
)
{
RiddleRecordStatusEnum
(
Integer
code
)
{
this
.
code
=
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 @
a60a1072
package
com
.
pcloud
.
book
.
riddle
.
biz
;
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.GroupRedisDTO
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.entity.RiddleClickRecord
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
...
@@ -67,4 +69,26 @@ public interface RiddleRecordBiz {
...
@@ -67,4 +69,26 @@ public interface RiddleRecordBiz {
* @param groupRedisDTO
* @param groupRedisDTO
*/
*/
public
void
sendIncorrectMessage
(
GroupRedisDTO
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 @
a60a1072
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 @
a60a1072
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 @
a60a1072
...
@@ -19,4 +19,10 @@ public interface RiddleDao extends BaseDao<Riddle> {
...
@@ -19,4 +19,10 @@ public interface RiddleDao extends BaseDao<Riddle> {
* @return
* @return
*/
*/
Riddle
getRiddleByGradeAndSeq
(
Integer
grade
,
Integer
seq
);
Riddle
getRiddleByGradeAndSeq
(
Integer
grade
,
Integer
seq
);
/**
* 获取所有题目数量
* @return
*/
Integer
getCount
();
}
}
pcloud-service-book/src/main/java/com/pcloud/book/riddle/dao/RiddleRecordDao.java
View file @
a60a1072
package
com
.
pcloud
.
book
.
riddle
.
dao
;
package
com
.
pcloud
.
book
.
riddle
.
dao
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.dto.UserRankingDTO
;
import
com.pcloud.book.riddle.entity.RiddleRecord
;
import
com.pcloud.book.riddle.entity.RiddleRecord
;
import
com.pcloud.common.core.dao.BaseDao
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* @描述:猜谜记录
* @描述:猜谜记录
* @作者:zhuyajie
* @作者:zhuyajie
...
@@ -16,9 +20,10 @@ public interface RiddleRecordDao extends BaseDao<RiddleRecord> {
...
@@ -16,9 +20,10 @@ public interface RiddleRecordDao extends BaseDao<RiddleRecord> {
/**
/**
* 获取上一条猜谜记录
* 获取上一条猜谜记录
* @param wxGroupId
* @param wxGroupId
* @param status 状态
* @return
* @return
*/
*/
RiddleRecord
getLastRecordByWxGroupId
(
String
wxGroupId
);
RiddleRecord
getLastRecordByWxGroupId
(
String
wxGroupId
,
Integer
status
);
/**
/**
* 获得答对题目数量
* 获得答对题目数量
...
@@ -33,4 +38,39 @@ public interface RiddleRecordDao extends BaseDao<RiddleRecord> {
...
@@ -33,4 +38,39 @@ public interface RiddleRecordDao extends BaseDao<RiddleRecord> {
* @return
* @return
*/
*/
public
GroupRiddleDTO
getParticipateCount
(
String
wxGroupId
);
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 @
a60a1072
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 @
a60a1072
...
@@ -26,4 +26,9 @@ public class RiddleDaoImpl extends BaseDaoImpl<Riddle> implements RiddleDao {
...
@@ -26,4 +26,9 @@ public class RiddleDaoImpl extends BaseDaoImpl<Riddle> implements RiddleDao {
map
.
put
(
"seq"
,
seq
);
map
.
put
(
"seq"
,
seq
);
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getRiddleByGradeAndSeq"
),
map
);
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 @
a60a1072
...
@@ -2,12 +2,15 @@ package com.pcloud.book.riddle.dao.impl;
...
@@ -2,12 +2,15 @@ package com.pcloud.book.riddle.dao.impl;
import
com.pcloud.book.riddle.dao.RiddleRecordDao
;
import
com.pcloud.book.riddle.dao.RiddleRecordDao
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.dto.GroupRiddleDTO
;
import
com.pcloud.book.riddle.dto.UserRankingDTO
;
import
com.pcloud.book.riddle.entity.RiddleRecord
;
import
com.pcloud.book.riddle.entity.RiddleRecord
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
/**
/**
...
@@ -21,8 +24,11 @@ public class RiddleRecordDaoImpl extends BaseDaoImpl<RiddleRecord> implements Ri
...
@@ -21,8 +24,11 @@ public class RiddleRecordDaoImpl extends BaseDaoImpl<RiddleRecord> implements Ri
@Override
@Override
public
RiddleRecord
getLastRecordByWxGroupId
(
String
wxGroupId
)
{
public
RiddleRecord
getLastRecordByWxGroupId
(
String
wxGroupId
,
Integer
status
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getLastRecordByWxGroupId"
),
wxGroupId
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"wxGroupId"
,
wxGroupId
);
map
.
put
(
"status"
,
status
);
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getLastRecordByWxGroupId"
),
map
);
}
}
@Override
@Override
...
@@ -37,4 +43,39 @@ public class RiddleRecordDaoImpl extends BaseDaoImpl<RiddleRecord> implements Ri
...
@@ -37,4 +43,39 @@ public class RiddleRecordDaoImpl extends BaseDaoImpl<RiddleRecord> implements Ri
public
GroupRiddleDTO
getParticipateCount
(
String
wxGroupId
)
{
public
GroupRiddleDTO
getParticipateCount
(
String
wxGroupId
)
{
return
getSessionTemplate
().
selectOne
(
getStatement
(
"getParticipateCount"
),
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 @
a60a1072
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 @
a60a1072
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 @
a60a1072
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 @
a60a1072
...
@@ -2,15 +2,20 @@ package com.pcloud.book.riddle.facade;
...
@@ -2,15 +2,20 @@ package com.pcloud.book.riddle.facade;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.book.riddle.biz.RiddleRecordBiz
;
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.GroupRiddleDTO
;
import
com.pcloud.book.riddle.dto.RiddleOpenDTO
;
import
com.pcloud.book.riddle.dto.RiddleOpenDTO
;
import
com.pcloud.book.riddle.entity.RiddleClickRecord
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageBeanNew
;
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.string.StringUtil
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
import
com.pcloud.wechatgroup.message.dto.SendTextDTO
;
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.GetMapping
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
@@ -39,14 +44,14 @@ public class RiddleFacade {
...
@@ -39,14 +44,14 @@ public class RiddleFacade {
@Autowired
@Autowired
private
RiddleRecordBiz
riddleRecordBiz
;
private
RiddleRecordBiz
riddleRecordBiz
;
@ApiOperation
(
"发送信息
"
)
@ApiOperation
(
value
=
"发送信息"
,
httpMethod
=
"POST
"
)
@PostMapping
(
"sendText"
)
@PostMapping
(
"sendText"
)
public
ResponseDto
<?>
sendText
(
@RequestBody
@ApiParam
SendTextDTO
sendTextDTO
){
public
ResponseDto
<?>
sendText
(
@RequestBody
@ApiParam
SendTextDTO
sendTextDTO
){
riddleRecordBiz
.
riddleProcess
(
sendTextDTO
);
riddleRecordBiz
.
riddleProcess
(
sendTextDTO
);
return
new
ResponseDto
<>();
return
new
ResponseDto
<>();
}
}
@ApiOperation
(
"猜谜语详情列表
"
)
@ApiOperation
(
value
=
"猜谜语详情列表"
,
httpMethod
=
"GET
"
)
@ApiImplicitParams
({
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"name"
,
value
=
"name"
,
required
=
false
,
dataType
=
"string"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"name"
,
value
=
"name"
,
required
=
false
,
dataType
=
"string"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"当前页"
,
required
=
true
,
dataType
=
"int"
,
paramType
=
"query"
),
@ApiImplicitParam
(
name
=
"currentPage"
,
value
=
"当前页"
,
required
=
true
,
dataType
=
"int"
,
paramType
=
"query"
),
...
@@ -64,7 +69,7 @@ public class RiddleFacade {
...
@@ -64,7 +69,7 @@ public class RiddleFacade {
return
new
ResponseDto
<>(
pageBean
);
return
new
ResponseDto
<>(
pageBean
);
}
}
@ApiOperation
(
"更新猜谜语状态
"
)
@ApiOperation
(
value
=
"更新猜谜语状态"
,
httpMethod
=
"POST
"
)
@PostMapping
(
"updateRiddleOpenStatus"
)
@PostMapping
(
"updateRiddleOpenStatus"
)
public
ResponseDto
<?>
updateRiddleOpenStatus
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
@ApiParam
RiddleOpenDTO
riddleOpenDTO
)
throws
PermissionException
{
public
ResponseDto
<?>
updateRiddleOpenStatus
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
@ApiParam
RiddleOpenDTO
riddleOpenDTO
)
throws
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
SessionUtil
.
getToken4Redis
(
token
);
...
@@ -79,4 +84,32 @@ public class RiddleFacade {
...
@@ -79,4 +84,32 @@ public class RiddleFacade {
riddleRecordBiz
.
updateRiddleOpenStatus
(
qrcodeId
,
status
);
riddleRecordBiz
.
updateRiddleOpenStatus
(
qrcodeId
,
status
);
return
new
ResponseDto
<>();
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 @
a60a1072
...
@@ -51,7 +51,7 @@ public class RiddleRedis {
...
@@ -51,7 +51,7 @@ public class RiddleRedis {
* 添加答题中的群
* 添加答题中的群
* @param wxGroupId
* @param wxGroupId
*/
*/
public
void
addUnderwayGroup
(
String
wxGroupId
,
String
wxId
,
String
ip
)
{
/*
public void addUnderwayGroup(String wxGroupId, String wxId, String ip) {
GroupRedisDTO dto = new GroupRedisDTO();
GroupRedisDTO dto = new GroupRedisDTO();
dto.setWxGroupId(wxGroupId);
dto.setWxGroupId(wxGroupId);
dto.setWxId(wxId);
dto.setWxId(wxId);
...
@@ -66,13 +66,13 @@ public class RiddleRedis {
...
@@ -66,13 +66,13 @@ public class RiddleRedis {
}
}
}
}
JedisClusterUtils.setJsonList(underway_group, list);
JedisClusterUtils.setJsonList(underway_group, list);
}
}
*/
/**
/**
* 获取答题中的群
* 获取答题中的群
* @return
* @return
*/
*/
public
List
<
GroupRedisDTO
>
getUnderwayGroup
()
{
/*
public List<GroupRedisDTO> getUnderwayGroup() {
List<GroupRedisDTO> list = JedisClusterUtils.getJsonList(underway_group, GroupRedisDTO.class);
List<GroupRedisDTO> list = JedisClusterUtils.getJsonList(underway_group, GroupRedisDTO.class);
if (ListUtils.isEmpty(list)) {
if (ListUtils.isEmpty(list)) {
list = new ArrayList<>();
list = new ArrayList<>();
...
@@ -85,12 +85,12 @@ public class RiddleRedis {
...
@@ -85,12 +85,12 @@ public class RiddleRedis {
}
}
return list;
return list;
}
}
*/
/**
/**
* 删除答题中的群
* 删除答题中的群
* @param wxGroupId
* @param wxGroupId
*/
*/
public
void
deleteUnderwayGroup
(
String
wxGroupId
)
{
/*
public void deleteUnderwayGroup(String wxGroupId) {
List<GroupRedisDTO> list = getUnderwayGroup();
List<GroupRedisDTO> list = getUnderwayGroup();
if (!ListUtils.isEmpty(list)) {
if (!ListUtils.isEmpty(list)) {
for (int i = 0; i < list.size() && null != list; i++) {
for (int i = 0; i < list.size() && null != list; i++) {
...
@@ -109,6 +109,6 @@ public class RiddleRedis {
...
@@ -109,6 +109,6 @@ public class RiddleRedis {
list.add(dto);
list.add(dto);
}
}
JedisClusterUtils.setJsonList(underway_group, list);
JedisClusterUtils.setJsonList(underway_group, list);
}
}
*/
}
}
pcloud-service-book/src/main/resources/mapper/riddle/RiddleClickRecordMapper.xml
0 → 100644
View file @
a60a1072
<?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 @
a60a1072
...
@@ -32,6 +32,12 @@
...
@@ -32,6 +32,12 @@
FROM riddle
FROM riddle
WHERE id = #{id}
WHERE id = #{id}
</select>
</select>
<select
id=
"getCount"
resultType=
"integer"
>
SELECT
COUNT(1)
FROM
riddle
</select>
</mapper>
</mapper>
\ No newline at end of file
pcloud-service-book/src/main/resources/mapper/riddle/RiddleRecordMapper.xml
View file @
a60a1072
...
@@ -19,19 +19,22 @@
...
@@ -19,19 +19,22 @@
<insert
id=
"insert"
parameterType=
"com.pcloud.book.riddle.entity.RiddleRecord"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
<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,
wx_group_id, wx_user_id, correct, status,
create_time, finish_count)
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},
#{wxGroupId,jdbcType=VARCHAR}, #{wxUserId,jdbcType=VARCHAR}, #{correct,jdbcType=BIT}, #{status},
NOW(), #{finishCount})
NOW(), #{finishCount})
</insert>
</insert>
<select
id=
"getLastRecordByWxGroupId"
resultMap=
"BaseResultMap"
parameterType=
"
String
"
>
<select
id=
"getLastRecordByWxGroupId"
resultMap=
"BaseResultMap"
parameterType=
"
map
"
>
SELECT
SELECT
<include
refid=
"Base_Column_List"
/>
<include
refid=
"Base_Column_List"
/>
FROM riddle_record
FROM riddle_record
WHERE wx_group_id = #{wxGroupId}
WHERE wx_group_id = #{wxGroupId}
<if
test=
"status != null"
>
AND `status`= #{status}
</if>
ORDER BY
ORDER BY
create_time DESC, id DESC
create_time DESC, id DESC
LIMIT 1
LIMIT 1
...
@@ -39,13 +42,15 @@
...
@@ -39,13 +42,15 @@
<select
id=
"getCorrectCountByGroup"
parameterType=
"map"
resultType=
"Integer"
>
<select
id=
"getCorrectCountByGroup"
parameterType=
"map"
resultType=
"Integer"
>
SELECT
SELECT
COUNT(DISTINCT riddle_id
)
COUNT(DISTINCT riddle_id,finish_count
)
FROM
FROM
riddle_record
riddle_record
WHERE
WHERE
wx_group_id = #{wxGroupId}
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>
<select
id=
"getParticipateCount"
parameterType=
"String"
resultType=
"com.pcloud.book.riddle.dto.GroupRiddleDTO"
>
<select
id=
"getParticipateCount"
parameterType=
"String"
resultType=
"com.pcloud.book.riddle.dto.GroupRiddleDTO"
>
...
@@ -58,5 +63,80 @@
...
@@ -58,5 +63,80 @@
wx_group_id = #{wxGroupId}
wx_group_id = #{wxGroupId}
AND correct IS NOT NULL
AND correct IS NOT NULL
</select>
</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>
</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