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
c4ae0b0b
Commit
c4ae0b0b
authored
Feb 05, 2021
by
田超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/1004273' into 'master'
feat: [1004273] 本书服务埋点 See merge request rays/pcloud-book!1194
parents
1fd15347
58ad4b20
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
639 additions
and
0 deletions
+639
-0
AppletService.java
...in/java/com/pcloud/book/applet/service/AppletService.java
+4
-0
BookConstant.java
...main/java/com/pcloud/book/book/constant/BookConstant.java
+6
-0
ReadBookRecordBiz.java
...in/java/com/pcloud/book/applet/biz/ReadBookRecordBiz.java
+62
-0
ReadBookRecordBizImpl.java
...om/pcloud/book/applet/biz/impl/ReadBookRecordBizImpl.java
+178
-0
ReadBookRecordDao.java
...in/java/com/pcloud/book/applet/dao/ReadBookRecordDao.java
+28
-0
ReadBookRecordDaoImpl.java
...om/pcloud/book/applet/dao/impl/ReadBookRecordDaoImpl.java
+29
-0
ReadBookRecordDTO.java
...in/java/com/pcloud/book/applet/dto/ReadBookRecordDTO.java
+5
-0
ReadBookRedisDTO.java
...ain/java/com/pcloud/book/applet/dto/ReadBookRedisDTO.java
+8
-0
ReadBookRecord.java
...in/java/com/pcloud/book/applet/entity/ReadBookRecord.java
+56
-0
ReadBookRecordFacade.java
...a/com/pcloud/book/applet/facade/ReadBookRecordFacade.java
+93
-0
AppletServiceImpl.java
...om/pcloud/book/applet/service/impl/AppletServiceImpl.java
+11
-0
ReadBookRecord.Mapper.xml
...rc/main/resources/mapper/applet/ReadBookRecord.Mapper.xml
+159
-0
No files found.
pcloud-facade-book/src/main/java/com/pcloud/book/applet/service/AppletService.java
View file @
c4ae0b0b
...
@@ -124,4 +124,8 @@ public interface AppletService {
...
@@ -124,4 +124,8 @@ public interface AppletService {
@GetMapping
(
"autoChageBannerState"
)
@GetMapping
(
"autoChageBannerState"
)
void
autoChageBannerState
(
@RequestParam
(
"id"
)
Long
id
,
void
autoChageBannerState
(
@RequestParam
(
"id"
)
Long
id
,
@RequestParam
(
"showState"
)
Integer
showState
);
@RequestParam
(
"showState"
)
Integer
showState
);
@ApiOperation
(
"定时任务从redis中删掉超时的本书服务记录"
)
@GetMapping
(
"autoDeleteReadBook"
)
void
autoDeleteReadBook
();
}
}
pcloud-facade-book/src/main/java/com/pcloud/book/book/constant/BookConstant.java
View file @
c4ae0b0b
...
@@ -47,6 +47,12 @@ public class BookConstant {
...
@@ -47,6 +47,12 @@ public class BookConstant {
/**
/**
* 图书缓存时间60分钟
* 图书缓存时间60分钟
*/
*/
public
static
final
Integer
BOOK_CACHE_MINUTE
=
60
;
/**
* 图书缓存时间60分钟
*/
public
static
final
Integer
BOOK_CACHE_SECOUND
=
3600
;
public
static
final
Integer
BOOK_CACHE_SECOUND
=
3600
;
/**
/**
...
...
pcloud-service-book/src/main/java/com/pcloud/book/applet/biz/ReadBookRecordBiz.java
0 → 100644
View file @
c4ae0b0b
package
com
.
pcloud
.
book
.
applet
.
biz
;
import
com.pcloud.book.applet.dto.ReadBookRecordDTO
;
import
com.pcloud.book.applet.entity.ReadBookRecord
;
import
com.pcloud.common.page.PageBeanNew
;
/**
* (ReadBookRecord)表服务接口
*
* @author makejava
* @since 2021-02-04 15:33:43
*/
public
interface
ReadBookRecordBiz
{
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
ReadBookRecord
getById
(
Long
id
);
/**
* 分页查询
*/
PageBeanNew
getList
(
Integer
currentPage
,
Integer
numPerPage
);
/**
* 新增数据
*
* @param readBookRecord 实例对象
* @return 主键
*/
Long
insert
(
ReadBookRecord
readBookRecord
);
/**
* 修改数据
*
* @param readBookRecord 实例对象
*/
void
update
(
ReadBookRecord
readBookRecord
);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
void
deleteById
(
Long
id
);
/**
* 新增记录
* @param readBookRecordDTO
*/
Long
addReadBookRecord
(
ReadBookRecordDTO
readBookRecordDTO
);
/**
* 定时任务从redis中删掉超时的本书服务记录
*/
void
autoDeleteReadBook
();
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/applet/biz/impl/ReadBookRecordBizImpl.java
0 → 100644
View file @
c4ae0b0b
package
com
.
pcloud
.
book
.
applet
.
biz
.
impl
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.util.RandomUtil
;
import
cn.hutool.setting.SettingUtil
;
import
com.pcloud.book.applet.biz.ReadBookRecordBiz
;
import
com.pcloud.book.applet.dao.ReadBookRecordDao
;
import
com.pcloud.book.applet.dto.ReadBookRecordDTO
;
import
com.pcloud.book.applet.entity.ReadBookRecord
;
import
com.pcloud.book.book.constant.BookConstant
;
import
com.pcloud.book.util.common.ThreadPoolUtils
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.page.PageBeanNew
;
import
com.pcloud.common.page.PageParam
;
import
com.pcloud.common.utils.BeanUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.NumberUtil
;
import
com.pcloud.common.utils.cache.redis.JedisClusterUtils
;
import
com.pcloud.common.utils.json.JSONUtils
;
import
com.pcloud.readercenter.common.enums.YesOrNoNumEnum
;
import
org.apache.commons.collections4.SetUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Set
;
import
static
cn
.
hutool
.
core
.
date
.
DateUnit
.
SECOND
;
import
static
com
.
pcloud
.
book
.
book
.
constant
.
BookConstant
.
BOOK_CACHE_MINUTE
;
/**
* (ReadBookRecord)表服务实现类
*
* @author makejava
* @since 2021-02-04 15:33:44
*/
@Service
(
"readBookRecordBiz"
)
public
class
ReadBookRecordBizImpl
implements
ReadBookRecordBiz
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
ReadBookRecordBizImpl
.
class
);
private
static
final
String
redisKey4Reader
=
"BOOK:READER_ALL"
;
@Autowired
private
ReadBookRecordDao
readBookRecordDao
;
@Override
@ParamLog
(
"通过ID查询单条数据"
)
public
ReadBookRecord
getById
(
Long
id
)
{
return
readBookRecordDao
.
getById
(
id
);
}
@Override
@ParamLog
(
"查询多条数据"
)
public
PageBeanNew
getList
(
Integer
currentPage
,
Integer
numPerPage
)
{
PageBeanNew
pageBeanNew
=
readBookRecordDao
.
listPageNew
(
new
PageParam
(
currentPage
,
numPerPage
),
null
,
"getList"
);
List
recordList
=
pageBeanNew
.
getRecordList
();
if
(
ListUtils
.
isEmpty
(
recordList
))
{
return
pageBeanNew
;
}
// 加载其它数据
return
pageBeanNew
;
}
@Override
@ParamLog
(
"新增"
)
public
Long
insert
(
ReadBookRecord
readBookRecord
)
{
readBookRecordDao
.
insert
(
readBookRecord
);
return
readBookRecord
.
getId
();
}
@Override
@ParamLog
(
"修改"
)
public
void
update
(
ReadBookRecord
readBookRecord
)
{
if
(
readBookRecord
==
null
||
!
NumberUtil
.
isNumber
(
readBookRecord
.
getId
()))
{
throw
BizException
.
PARAM_IS_NULL
;
}
readBookRecordDao
.
update
(
readBookRecord
);
}
@Override
@ParamLog
(
"删除"
)
public
void
deleteById
(
Long
id
)
{
readBookRecordDao
.
deleteById
(
id
);
}
@Override
@ParamLog
(
"新增用户阅读本书服务记录"
)
public
Long
addReadBookRecord
(
ReadBookRecordDTO
readBookRecordDTO
)
{
Long
bookId
=
readBookRecordDTO
.
getBookId
();
Long
channelId
=
readBookRecordDTO
.
getChannelId
();
Long
adviserId
=
readBookRecordDTO
.
getAdviserId
();
Long
id
=
readBookRecordDTO
.
getId
();
String
redisKey4Random
=
"BOOK:READER_COUNT:"
+
bookId
+
":"
+
channelId
+
":"
+
adviserId
;
String
redisKey4Set
=
"BOOK:READER_SET:"
+
bookId
+
":"
+
channelId
+
":"
+
adviserId
;
Integer
readerCount
=
null
;
//获取随机读者数
if
(
JedisClusterUtils
.
exists
(
redisKey4Random
))
{
JedisClusterUtils
.
expire
(
redisKey4Random
,
BookConstant
.
BOOK_CACHE_SECOUND
);
}
else
{
List
<
Integer
>
readerCountList
=
BookConstant
.
READER_COUNT_MAP
.
get
(
DateUtil
.
hour
(
new
Date
(),
Boolean
.
TRUE
));
readerCount
=
RandomUtil
.
randomInt
(
readerCountList
.
get
(
0
),
readerCountList
.
get
(
1
));
JedisClusterUtils
.
set
(
redisKey4Random
,
readerCount
.
toString
(),
BookConstant
.
BOOK_CACHE_SECOUND
);
}
//新增记录并获取当前在读人数
if
(
Objects
.
equals
(
YesOrNoNumEnum
.
YES
.
getValue
(),
readBookRecordDTO
.
getRecordType
()))
{
JedisClusterUtils
.
sadd
(
redisKey4Set
,
readBookRecordDTO
.
getWechatUserId
().
toString
());
JedisClusterUtils
.
expire
(
redisKey4Set
,
BookConstant
.
BOOK_CACHE_SECOUND
);
ReadBookRecord
readBookRecord
=
new
ReadBookRecord
();
//id为空 新记录 插入数据库 并新增到redis中
BeanUtils
.
copyProperties
(
readBookRecordDTO
,
readBookRecord
);
readBookRecord
.
setStartTime
(
new
Date
());
readBookRecord
.
setLeaveType
(
YesOrNoNumEnum
.
NO
.
getValue
());
readBookRecordDao
.
insert
(
readBookRecord
);
id
=
readBookRecord
.
getId
();
JedisClusterUtils
.
sadd
(
redisKey4Reader
,
JSONUtils
.
toJsonString
(
readBookRecord
));
JedisClusterUtils
.
expire
(
redisKey4Reader
,
BookConstant
.
BOOK_CACHE_SECOUND
);
}
else
if
(
Objects
.
equals
(
YesOrNoNumEnum
.
NO
.
getValue
(),
readBookRecordDTO
.
getRecordType
()))
{
ReadBookRecord
readBookRecord
=
readBookRecordDao
.
getById
(
id
);
readBookRecord
.
setRecordTime
(
null
);
readBookRecord
.
setEndTime
(
null
);
JedisClusterUtils
.
srem
(
redisKey4Set
,
readBookRecordDTO
.
getWechatUserId
().
toString
());
JedisClusterUtils
.
expire
(
redisKey4Set
,
BookConstant
.
BOOK_CACHE_SECOUND
);
String
s
=
JSONUtils
.
toJsonString
(
readBookRecord
);
JedisClusterUtils
.
srem
(
redisKey4Reader
,
JSONUtils
.
toJsonString
(
readBookRecord
));
JedisClusterUtils
.
expire
(
redisKey4Reader
,
BookConstant
.
BOOK_CACHE_SECOUND
);
//id不为空 更新数据库时间 并从redis中删除
Date
endTime
=
new
Date
();
readBookRecord
.
setEndTime
(
endTime
);
readBookRecord
.
setRecordTime
(
DateUtil
.
between
(
readBookRecord
.
getStartTime
(),
endTime
,
SECOND
));
readBookRecordDao
.
updateRecordTime
(
readBookRecord
);
}
return
id
;
}
@Override
public
void
autoDeleteReadBook
()
{
Set
<
String
>
smembers
=
JedisClusterUtils
.
smembers
(
redisKey4Reader
);
if
(
null
==
smembers
||
smembers
.
size
()
==
0
)
{
LOGGER
.
info
(
"autoDeleteReadBook, 缓存为空,返回"
);
return
;
}
List
<
ReadBookRecord
>
readBookRecords
=
new
ArrayList
<>();
List
<
ReadBookRecord
>
readBookRecords4Expire
=
new
ArrayList
<>();
smembers
.
stream
().
forEach
(
e
->{
ReadBookRecord
readBookRecord
=
JSONUtils
.
jsonToBean
(
e
,
ReadBookRecord
.
class
);
readBookRecords
.
add
(
readBookRecord
);
});
if
(
ListUtils
.
isEmpty
(
readBookRecords
))
{
return
;
}
readBookRecords
.
stream
().
forEach
(
e
->
{
Date
startTime
=
e
.
getStartTime
();
long
between
=
DateUtil
.
between
(
startTime
,
new
Date
(),
SECOND
);
//查找开始时间与现在时间超过1分钟的数据
if
(
between
>
BOOK_CACHE_MINUTE
)
{
JedisClusterUtils
.
srem
(
redisKey4Reader
,
JSONUtils
.
toJsonString
(
e
));
e
.
setEndTime
(
DateUtil
.
offsetMinute
(
e
.
getStartTime
(),
1
));
e
.
setRecordTime
(
Long
.
valueOf
(
BOOK_CACHE_MINUTE
));
e
.
setLeaveType
(
YesOrNoNumEnum
.
YES
.
getValue
());
readBookRecords4Expire
.
add
(
e
);
}
});
if
(
ListUtils
.
isEmpty
(
readBookRecords4Expire
))
{
return
;
}
LOGGER
.
info
(
"批量更新已过期的本书服务页浏览记录:{}"
,
readBookRecords4Expire
);
readBookRecordDao
.
batchUpdateRecordTime
(
readBookRecords4Expire
);
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/applet/dao/ReadBookRecordDao.java
0 → 100644
View file @
c4ae0b0b
package
com
.
pcloud
.
book
.
applet
.
dao
;
import
com.pcloud.book.applet.entity.ReadBookRecord
;
import
com.pcloud.common.core.dao.BaseDao
;
import
java.util.List
;
/**
* (ReadBookRecord)表数据库访问层
*
* @author makejava
* @since 2021-02-04 15:33:43
*/
public
interface
ReadBookRecordDao
extends
BaseDao
<
ReadBookRecord
>
{
/**
* 更新访问时间
* @param readBookRecord
*/
void
updateRecordTime
(
ReadBookRecord
readBookRecord
);
/**
*
* @param readBookRecords
*/
void
batchUpdateRecordTime
(
List
<
ReadBookRecord
>
readBookRecords
);
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/applet/dao/impl/ReadBookRecordDaoImpl.java
0 → 100644
View file @
c4ae0b0b
package
com
.
pcloud
.
book
.
applet
.
dao
.
impl
;
import
com.pcloud.book.applet.dao.ReadBookRecordDao
;
import
com.pcloud.book.applet.entity.ReadBookRecord
;
import
com.pcloud.common.core.dao.BaseDaoImpl
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* (ReadBookRecord)表数据库访问层
*
* @author makejava
* @since 2021-02-04 15:33:43
*/
@Repository
(
"readBookRecordDaoImpl"
)
public
class
ReadBookRecordDaoImpl
extends
BaseDaoImpl
<
ReadBookRecord
>
implements
ReadBookRecordDao
{
@Override
public
void
updateRecordTime
(
ReadBookRecord
readBookRecord
)
{
getSessionTemplate
().
update
(
getStatement
(
"updateRecordTime"
),
readBookRecord
);
}
@Override
public
void
batchUpdateRecordTime
(
List
<
ReadBookRecord
>
readBookRecords
)
{
getSessionTemplate
().
update
(
getStatement
(
"batchUpdateRecordTime"
),
readBookRecords
);
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/applet/dto/ReadBookRecordDTO.java
View file @
c4ae0b0b
...
@@ -4,6 +4,11 @@ import lombok.Data;
...
@@ -4,6 +4,11 @@ import lombok.Data;
@Data
@Data
public
class
ReadBookRecordDTO
{
public
class
ReadBookRecordDTO
{
/**
* 主键id
*/
private
Long
id
;
/**
/**
* 书刊id
* 书刊id
*/
*/
...
...
pcloud-service-book/src/main/java/com/pcloud/book/applet/dto/ReadBookRedisDTO.java
0 → 100644
View file @
c4ae0b0b
package
com
.
pcloud
.
book
.
applet
.
dto
;
import
lombok.Data
;
@Data
public
class
ReadBookRedisDTO
{
}
pcloud-service-book/src/main/java/com/pcloud/book/applet/entity/ReadBookRecord.java
0 → 100644
View file @
c4ae0b0b
package
com
.
pcloud
.
book
.
applet
.
entity
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.fasterxml.jackson.annotation.JsonInclude
;
import
com.pcloud.common.entity.BaseEntity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* (ReadBookRecord)实体类
*
* @author makejava
* @since 2021-02-04 18:17:00
*/
@Data
@JsonInclude
(
JsonInclude
.
Include
.
NON_NULL
)
public
class
ReadBookRecord
extends
BaseEntity
{
private
static
final
long
serialVersionUID
=
430043591368019316L
;
@ApiModelProperty
(
"主键id"
)
private
Long
id
;
@ApiModelProperty
(
"用户id"
)
private
Long
wechatUserId
;
@ApiModelProperty
(
"书籍id"
)
private
Long
bookId
;
@ApiModelProperty
(
"渠道id"
)
private
Long
channelId
;
@ApiModelProperty
(
"编辑id"
)
private
Long
adviserId
;
@ApiModelProperty
(
"访问开始时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
startTime
;
@ApiModelProperty
(
"访问结束时间"
)
@JsonFormat
(
pattern
=
"yyyy-MM-dd HH:mm:ss"
,
timezone
=
"GMT+8"
)
private
Date
endTime
;
@ApiModelProperty
(
"本次访问持续时间"
)
private
Long
recordTime
;
@ApiModelProperty
(
"记录来源 默认0 小程序"
)
private
Integer
recordSource
;
@ApiModelProperty
(
"离开方式 默认0 主动离开 1 超时离开"
)
private
Integer
leaveType
;
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/applet/facade/ReadBookRecordFacade.java
0 → 100644
View file @
c4ae0b0b
package
com
.
pcloud
.
book
.
applet
.
facade
;
import
com.pcloud.book.applet.biz.ReadBookRecordBiz
;
import
com.pcloud.book.applet.dto.ReadBookRecordDTO
;
import
com.pcloud.book.applet.entity.ReadBookRecord
;
import
com.pcloud.book.base.exception.BookBizException
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.exceptions.BizException
;
import
com.pcloud.common.permission.PermissionException
;
import
com.pcloud.common.utils.SessionUtil
;
import
com.pcloud.common.utils.cookie.Cookie
;
import
io.swagger.annotations.ApiOperation
;
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
;
import
org.springframework.web.bind.annotation.RequestHeader
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* (ReadBookRecord)表控制层
*
* @author makejava
* @since 2021-02-04 15:33:44
*/
@RestController
(
"readBookRecordFacade"
)
@RequestMapping
(
"readBookRecord"
)
public
class
ReadBookRecordFacade
{
@Autowired
private
ReadBookRecordBiz
readBookRecordBiz
;
@ApiOperation
(
"通过主键查询单条数据"
)
@GetMapping
(
"getById"
)
public
ResponseDto
<?>
getById
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
Long
id
)
throws
BizException
,
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
return
new
ResponseDto
<>(
readBookRecordBiz
.
getById
(
id
));
}
@ApiOperation
(
"分页查询"
)
@GetMapping
(
"getList"
)
public
ResponseDto
<?>
getList
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
(
value
=
"currentPage"
,
defaultValue
=
"0"
)
Integer
currentPage
,
@RequestParam
(
value
=
"numPerPage"
,
defaultValue
=
"10"
)
Integer
numPerPage
)
throws
BizException
,
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
return
new
ResponseDto
<>(
readBookRecordBiz
.
getList
(
currentPage
,
numPerPage
));
}
@ApiOperation
(
"新增"
)
@PostMapping
(
"insert"
)
public
ResponseDto
<?>
insert
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
ReadBookRecord
readBookRecord
)
throws
BizException
,
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
return
new
ResponseDto
<>(
readBookRecordBiz
.
insert
(
readBookRecord
));
}
@ApiOperation
(
"更新"
)
@PostMapping
(
"update"
)
public
ResponseDto
<?>
update
(
@RequestHeader
(
"token"
)
String
token
,
@RequestBody
ReadBookRecord
readBookRecord
)
throws
BizException
,
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
readBookRecordBiz
.
update
(
readBookRecord
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
"删除"
)
@GetMapping
(
"deleteById"
)
public
ResponseDto
<?>
deleteById
(
@RequestHeader
(
"token"
)
String
token
,
@RequestParam
Long
id
)
throws
BizException
,
PermissionException
{
SessionUtil
.
getToken4Redis
(
token
);
if
(
null
==
id
)
{
throw
BookBizException
.
PARAM_DELETION
;
}
readBookRecordBiz
.
deleteById
(
id
);
return
new
ResponseDto
<>();
}
@ApiOperation
(
"本书服务页阅读记录"
)
@RequestMapping
(
value
=
"addReadBookRecord"
,
method
=
RequestMethod
.
POST
)
public
ResponseDto
<
Long
>
addReadBookRecord
(
@CookieValue
(
"userInfo"
)
String
userInfo
,
@RequestBody
ReadBookRecordDTO
readBookRecordDTO
){
Long
wechatUserId
=
Cookie
.
getId
(
userInfo
,
Cookie
.
_WECHAT_USER_ID
);
readBookRecordDTO
.
setWechatUserId
(
wechatUserId
);
return
new
ResponseDto
<
Long
>(
readBookRecordBiz
.
addReadBookRecord
(
readBookRecordDTO
));
}
}
\ No newline at end of file
pcloud-service-book/src/main/java/com/pcloud/book/applet/service/impl/AppletServiceImpl.java
View file @
c4ae0b0b
...
@@ -10,6 +10,7 @@ import com.pcloud.book.applet.biz.AppletRecordBiz;
...
@@ -10,6 +10,7 @@ import com.pcloud.book.applet.biz.AppletRecordBiz;
import
com.pcloud.book.applet.biz.AppletRecordStatisBiz
;
import
com.pcloud.book.applet.biz.AppletRecordStatisBiz
;
import
com.pcloud.book.applet.biz.AppletRecordAggrStatisBiz
;
import
com.pcloud.book.applet.biz.AppletRecordAggrStatisBiz
;
import
com.pcloud.book.applet.biz.AppletThirdResourcesStaticBiz
;
import
com.pcloud.book.applet.biz.AppletThirdResourcesStaticBiz
;
import
com.pcloud.book.applet.biz.ReadBookRecordBiz
;
import
com.pcloud.book.applet.biz.ServeCollectBiz
;
import
com.pcloud.book.applet.biz.ServeCollectBiz
;
import
com.pcloud.book.applet.dto.AppletAppOrProductDTO
;
import
com.pcloud.book.applet.dto.AppletAppOrProductDTO
;
import
com.pcloud.book.applet.dto.AppletNewsDTO
;
import
com.pcloud.book.applet.dto.AppletNewsDTO
;
...
@@ -24,6 +25,7 @@ import com.pcloud.book.applet.service.AppletService;
...
@@ -24,6 +25,7 @@ import com.pcloud.book.applet.service.AppletService;
import
com.pcloud.book.rightsSetting.biz.RightsSettingBiz
;
import
com.pcloud.book.rightsSetting.biz.RightsSettingBiz
;
import
com.pcloud.book.skill.biz.PcloudGroupActivityBiz
;
import
com.pcloud.book.skill.biz.PcloudGroupActivityBiz
;
import
com.pcloud.book.skill.entity.PcloudGroupActivity
;
import
com.pcloud.book.skill.entity.PcloudGroupActivity
;
import
com.pcloud.common.core.aspect.ParamLog
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.dto.ResponseDto
;
import
com.pcloud.common.utils.BeanUtils
;
import
com.pcloud.common.utils.BeanUtils
;
import
com.pcloud.common.utils.ListUtils
;
import
com.pcloud.common.utils.ListUtils
;
...
@@ -81,6 +83,8 @@ public class AppletServiceImpl implements AppletService {
...
@@ -81,6 +83,8 @@ public class AppletServiceImpl implements AppletService {
private
AppletRecordAggrStatisBiz
appletRecordAggrStatisBiz
;
private
AppletRecordAggrStatisBiz
appletRecordAggrStatisBiz
;
@Autowired
@Autowired
private
AppletBannerBiz
appletBannerBiz
;
private
AppletBannerBiz
appletBannerBiz
;
@Autowired
private
ReadBookRecordBiz
readBookRecordBiz
;
@Override
@Override
...
@@ -224,4 +228,11 @@ public class AppletServiceImpl implements AppletService {
...
@@ -224,4 +228,11 @@ public class AppletServiceImpl implements AppletService {
appletBannerBiz
.
autoChageBannerState
(
id
,
showState
);
appletBannerBiz
.
autoChageBannerState
(
id
,
showState
);
}
}
@Override
@ParamLog
(
"定时任务从redis中删掉超时的本书服务记录"
)
@GetMapping
(
"autoDeleteReadBook"
)
public
void
autoDeleteReadBook
()
{
readBookRecordBiz
.
autoDeleteReadBook
();
}
}
}
pcloud-service-book/src/main/resources/mapper/applet/ReadBookRecord.Mapper.xml
0 → 100644
View file @
c4ae0b0b
<?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.applet.dao.impl.ReadBookRecordDaoImpl"
>
<resultMap
id=
"BaseResultMap"
type=
"com.pcloud.book.applet.entity.ReadBookRecord"
>
<id
column=
"id"
property=
"id"
jdbcType=
"BIGINT"
/>
<result
column=
"wechat_user_id"
property=
"wechatUserId"
jdbcType=
"BIGINT"
/>
<result
column=
"book_id"
property=
"bookId"
jdbcType=
"BIGINT"
/>
<result
column=
"channel_id"
property=
"channelId"
jdbcType=
"BIGINT"
/>
<result
column=
"adviser_id"
property=
"adviserId"
jdbcType=
"BIGINT"
/>
<result
column=
"start_time"
property=
"startTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"end_time"
property=
"endTime"
jdbcType=
"TIMESTAMP"
/>
<result
column=
"record_time"
property=
"recordTime"
jdbcType=
"BIGINT"
/>
<result
column=
"record_source"
property=
"recordSource"
jdbcType=
"INTEGER"
/>
<result
column=
"leave_type"
property=
"leaveType"
jdbcType=
"INTEGER"
/>
</resultMap>
<sql
id=
"Base_Column_List"
>
id, wechat_user_id, book_id, channel_id, adviser_id, start_time, end_time, record_time, record_source, leave_type
</sql>
<select
id=
"getById"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM read_book_record
WHERE id = #{id}
</select>
<select
id=
"getList"
resultMap=
"BaseResultMap"
>
SELECT
<include
refid=
"Base_Column_List"
/>
FROM read_book_record
</select>
<insert
id=
"insert"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
INSERT INTO read_book_record(
wechat_user_id,
book_id,
channel_id,
adviser_id,
start_time,
end_time,
record_time,
record_source,
leave_type,
update_time
) VALUES (
#{wechatUserId, jdbcType=BIGINT},
#{bookId, jdbcType=BIGINT},
#{channelId, jdbcType=BIGINT},
#{adviserId, jdbcType=BIGINT},
#{startTime, jdbcType=TIMESTAMP},
#{endTime, jdbcType=TIMESTAMP},
#{recordTime, jdbcType=BIGINT},
#{recordSource, jdbcType=INTEGER},
#{leaveType, jdbcType=INTEGER},
now()
)
</insert>
<insert
id=
"batchInsert"
>
INSERT INTO read_book_record (
wechat_user_id,
book_id,
channel_id,
adviser_id,
start_time,
end_time,
record_time,
record_source,
leave_type
) VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.wechatUserId, jdbcType=BIGINT},
#{item.bookId, jdbcType=BIGINT},
#{item.channelId, jdbcType=BIGINT},
#{item.adviserId, jdbcType=BIGINT},
#{item.startTime, jdbcType=TIMESTAMP},
#{item.endTime, jdbcType=TIMESTAMP},
#{item.recordTime, jdbcType=BIGINT},
#{item.recordSource, jdbcType=INTEGER},
#{item.leaveType, jdbcType=INTEGER}
)
</foreach>
</insert>
<!--通过主键修改数据-->
<update
id=
"update"
>
UPDATE read_book_record
<set>
<if
test=
"wechatUserId != null"
>
wechat_user_id = #{wechatUserId},
</if>
<if
test=
"bookId != null"
>
book_id = #{bookId},
</if>
<if
test=
"channelId != null"
>
channel_id = #{channelId},
</if>
<if
test=
"adviserId != null"
>
adviser_id = #{adviserId},
</if>
<if
test=
"startTime != null"
>
start_time = #{startTime},
</if>
<if
test=
"endTime != null"
>
end_time = #{endTime},
</if>
<if
test=
"recordTime != null"
>
record_time = #{recordTime},
</if>
<if
test=
"recordSource != null"
>
record_source = #{recordSource},
</if>
<if
test=
"leaveType != null"
>
leave_type = #{leaveType},
</if>
</set>
WHERE id = #{id}
</update>
<!--通过主键删除-->
<delete
id=
"deleteById"
>
DELETE FROM read_book_record where id = #{id}
</delete>
<update
id=
"updateRecordTime"
>
UPDATE read_book_record
<set>
<if
test=
"endTime != null"
>
end_time = #{endTime},
record_time = #{recordTime}
</if>
</set>
WHERE id = #{id}
</update>
<update
id=
"batchUpdateRecordTime"
parameterType=
"com.pcloud.book.applet.entity.ReadBookRecord"
>
UPDATE read_book_record
<trim
prefix=
"set"
suffixOverrides=
","
>
<trim
prefix=
"end_time =case"
suffix=
"end,"
>
<foreach
collection=
"list"
item=
"item"
>
<if
test=
"item.endTime!=null"
>
when id=#{item.id} then #{item.endTime}
</if>
</foreach>
</trim>
record_time = 60,
leave_type = 1,
update_time = now(),
</trim>
WHERE
<foreach
collection=
"list"
separator=
"or"
item=
"item"
>
id = #{item.id}
</foreach>
</update>
</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