Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
C
chnmuseum-party
Project
Project
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
liqin
chnmuseum-party
Commits
5ce1eabe
Commit
5ce1eabe
authored
Mar 28, 2021
by
yangtianyou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
展板播放记录统计
parent
7d5a761b
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
29 changed files
with
2584 additions
and
0 deletions
+2584
-0
CurrencyMathUtil.java
...senergy/chnmuseum/party/common/util/CurrencyMathUtil.java
+138
-0
RedisUtil.java
...a/cn/wisenergy/chnmuseum/party/common/util/RedisUtil.java
+664
-0
RedisLock.java
...wisenergy/chnmuseum/party/core/annotations/RedisLock.java
+45
-0
RedisLockInterceptor.java
...energy/chnmuseum/party/core/aop/RedisLockInterceptor.java
+84
-0
TBoardPlayRankMapper.java
...isenergy/chnmuseum/party/mapper/TBoardPlayRankMapper.java
+16
-0
TBoardPlayTrendMapper.java
...senergy/chnmuseum/party/mapper/TBoardPlayTrendMapper.java
+16
-0
TBoardStatisticMapper.java
...senergy/chnmuseum/party/mapper/TBoardStatisticMapper.java
+34
-0
TDistrictBoardStatisticMapper.java
...chnmuseum/party/mapper/TDistrictBoardStatisticMapper.java
+16
-0
TBoardPlayRank.java
...va/cn/wisenergy/chnmuseum/party/model/TBoardPlayRank.java
+73
-0
TBoardPlayTrend.java
...a/cn/wisenergy/chnmuseum/party/model/TBoardPlayTrend.java
+61
-0
TBoardStatistic.java
...a/cn/wisenergy/chnmuseum/party/model/TBoardStatistic.java
+78
-0
TDistrictBoardStatistic.java
...energy/chnmuseum/party/model/TDistrictBoardStatistic.java
+59
-0
TBoardPlayRankService.java
...energy/chnmuseum/party/service/TBoardPlayRankService.java
+16
-0
TBoardPlayTrendService.java
...nergy/chnmuseum/party/service/TBoardPlayTrendService.java
+16
-0
TBoardStatisticService.java
...nergy/chnmuseum/party/service/TBoardStatisticService.java
+54
-0
TDistrictBoardStatisticService.java
...nmuseum/party/service/TDistrictBoardStatisticService.java
+16
-0
TBoardPlayRankServiceImpl.java
...nmuseum/party/service/impl/TBoardPlayRankServiceImpl.java
+28
-0
TBoardPlayTrendServiceImpl.java
...museum/party/service/impl/TBoardPlayTrendServiceImpl.java
+28
-0
TBoardStatisticServiceImpl.java
...museum/party/service/impl/TBoardStatisticServiceImpl.java
+153
-0
TDistrictBoardStatisticServiceImpl.java
...arty/service/impl/TDistrictBoardStatisticServiceImpl.java
+28
-0
ChinaMobileRestApiController.java
...um/party/web/controller/ChinaMobileRestApiController.java
+29
-0
TBoardPlayRankController.java
...museum/party/web/controller/TBoardPlayRankController.java
+181
-0
TBoardPlayTrendController.java
...useum/party/web/controller/TBoardPlayTrendController.java
+181
-0
TBoardStatisticController.java
...useum/party/web/controller/TBoardStatisticController.java
+244
-0
TDistrictBoardStatisticController.java
...rty/web/controller/TDistrictBoardStatisticController.java
+181
-0
TBoardPlayRankMapper.xml
src/main/resources/mapper/TBoardPlayRankMapper.xml
+22
-0
TBoardPlayTrendMapper.xml
src/main/resources/mapper/TBoardPlayTrendMapper.xml
+20
-0
TBoardStatisticMapper.xml
src/main/resources/mapper/TBoardStatisticMapper.xml
+82
-0
TDistrictBoardStatisticMapper.xml
src/main/resources/mapper/TDistrictBoardStatisticMapper.xml
+21
-0
No files found.
src/main/java/cn/wisenergy/chnmuseum/party/common/util/CurrencyMathUtil.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
common
.
util
;
import
java.math.BigDecimal
;
import
java.text.DecimalFormat
;
public
class
CurrencyMathUtil
{
private
static
int
SCALE
=
18
;
public
static
int
compare
(
String
str1
,
String
str2
)
{
BigDecimal
a
=
new
BigDecimal
(
str1
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
str2
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
a
.
compareTo
(
b
);
}
/**
* 乘法
* @param str1
* @param str2
* @return
*/
public
static
String
multiply
(
String
str1
,
String
str2
)
{
BigDecimal
a
=
new
BigDecimal
(
str1
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
str2
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
multiply
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
toPlainString
();
}
/**
* 除法
* @param str1
* @param str2
* @return
*/
public
static
String
divide
(
String
str1
,
String
str2
)
{
BigDecimal
a
=
new
BigDecimal
(
str1
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
str2
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
divide
(
b
,
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
toPlainString
();
}
/**
* 加法
* @param str1
* @param str2
* @return
*/
public
static
String
add
(
String
str1
,
String
str2
)
{
BigDecimal
a
=
new
BigDecimal
(
str1
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
str2
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
add
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
toPlainString
();
}
public
static
String
add
(
Integer
str1
,
Integer
str2
)
{
BigDecimal
a
=
new
BigDecimal
(
str1
.
toString
()).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
str2
.
toString
()).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
add
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
toPlainString
();
}
public
static
Double
add
(
Double
d1
,
Double
d2
)
{
BigDecimal
a
=
new
BigDecimal
(
d1
.
toString
()).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
d2
.
toString
()).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
add
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
doubleValue
();
}
/**
* 减法
* @param str1
* @param str2
* @return
*/
public
static
String
subtract
(
String
str1
,
String
str2
)
{
BigDecimal
a
=
new
BigDecimal
(
str1
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
str2
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
subtract
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
toPlainString
();
}
public
static
Double
subtract
(
Double
str1
,
Double
str2
)
{
BigDecimal
a
=
new
BigDecimal
(
str1
.
toString
()).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
str2
.
toString
()).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
subtract
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
doubleValue
();
}
public
static
String
gweiToWei
(
String
gwei
)
{
BigDecimal
a
=
new
BigDecimal
(
gwei
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
"1000000000"
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
multiply
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
toPlainString
();
}
public
static
String
ethToWei
(
String
eth
)
{
BigDecimal
a
=
new
BigDecimal
(
eth
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
"1000000000000000000"
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
multiply
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
toPlainString
();
}
public
static
String
ethToGwei
(
String
eth
)
{
BigDecimal
a
=
new
BigDecimal
(
eth
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
"1000000000"
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
multiply
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
toPlainString
();
}
public
static
String
gweiToEth
(
String
gwei
)
{
BigDecimal
a
=
new
BigDecimal
(
gwei
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
"1000000000"
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
divide
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
toPlainString
();
}
public
static
String
weiToEth
(
String
gwei
)
{
BigDecimal
a
=
new
BigDecimal
(
gwei
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
b
=
new
BigDecimal
(
"1000000000000000000"
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
BigDecimal
c
=
a
.
divide
(
b
).
setScale
(
SCALE
,
BigDecimal
.
ROUND_HALF_DOWN
);
return
c
.
stripTrailingZeros
().
toPlainString
();
}
public
static
String
roundByScale
(
double
v
,
int
scale
)
{
if
(
scale
<
0
)
{
throw
new
IllegalArgumentException
(
"The scale must be a positive integer or zero"
);
}
if
(
scale
==
0
)
{
return
new
DecimalFormat
(
"0"
).
format
(
v
);
}
String
formatStr
=
"0."
;
for
(
int
i
=
0
;
i
<
scale
;
i
++)
{
formatStr
=
formatStr
+
"0"
;
}
return
new
DecimalFormat
(
formatStr
).
format
(
v
);
}
}
src/main/java/cn/wisenergy/chnmuseum/party/common/util/RedisUtil.java
0 → 100644
View file @
5ce1eabe
This diff is collapsed.
Click to expand it.
src/main/java/cn/wisenergy/chnmuseum/party/core/annotations/RedisLock.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
core
.
annotations
;
import
java.lang.annotation.ElementType
;
import
java.lang.annotation.Retention
;
import
java.lang.annotation.RetentionPolicy
;
import
java.lang.annotation.Target
;
/**
* Created by xulinglin on 2019/1/24
*/
@Target
({
ElementType
.
METHOD
})
@Retention
(
RetentionPolicy
.
RUNTIME
)
public
@interface
RedisLock
{
/**
* 上锁key值
* @return
*/
String
value
()
default
""
;
/**
* 上锁超时时间
* @return
*/
long
timeOut
()
default
3000
;
/**
* 是否循环等待获取锁进行执行方法
* @return
*/
boolean
required
()
default
false
;
/**
* 循环等待多少时间 时间单位秒
* @return
*/
long
timeLock
()
default
0
;
/**
* 是否开启事务
* 默认开启
* @return
*/
boolean
transaction
()
default
true
;
}
src/main/java/cn/wisenergy/chnmuseum/party/core/aop/RedisLockInterceptor.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
core
.
aop
;
import
cn.wisenergy.chnmuseum.party.common.util.RedisUtil
;
import
cn.wisenergy.chnmuseum.party.core.annotations.RedisLock
;
import
lombok.extern.java.Log
;
import
org.aspectj.lang.ProceedingJoinPoint
;
import
org.aspectj.lang.annotation.Around
;
import
org.aspectj.lang.annotation.Aspect
;
import
org.aspectj.lang.annotation.Pointcut
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.UUID
;
import
java.util.concurrent.TimeUnit
;
/**
* Created by xulinglin on 2019/1/24
*/
@Aspect
@Order
(-
1
)
//保证该AOP在@Transactional之前执行
@Component
@Log
public
class
RedisLockInterceptor
{
@Resource
private
RedisTemplate
<
String
,
Object
>
redisTemplate
;
@Resource
private
RedisUtil
redisUtil
;
@Pointcut
(
"@annotation(redisLock)"
)
public
void
pointCut
(
RedisLock
redisLock
)
{}
/**
* 环绕通知
* @param proceedingJoinPoint
* @param redisLock
* @return
* @throws Throwable
*/
@Around
(
"pointCut(redisLock)"
)
public
Object
around
(
ProceedingJoinPoint
proceedingJoinPoint
,
RedisLock
redisLock
)
throws
Throwable
{
//方法执行前时间
long
currentTimeMillis
=
System
.
currentTimeMillis
();
//获取当前值
String
lockKey
=
redisLock
.
value
();
//获取上锁超时时间
long
time
=
redisLock
.
timeOut
();
//获取循环等待多少时间
long
timeLock
=
redisLock
.
timeLock
();
//控制当前循环
boolean
required
=
redisLock
.
required
();
required
=
timeLock
>
0
;
//获取事务是否开启
boolean
transaction
=
redisLock
.
transaction
();
//获取随机id
String
name
=
String
.
valueOf
(
UUID
.
randomUUID
());
boolean
flag
=
false
;
try
{
do
{
//set到redis
flag
=
redisUtil
.
lock
(
lockKey
,
currentTimeMillis
+
""
);
//执行添加了注解的方法并返回
if
(
flag
){
Object
result
=
proceedingJoinPoint
.
proceed
();
return
result
;
}
}
while
(
required
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
catch
(
Throwable
throwable
)
{
throwable
.
printStackTrace
();
}
finally
{
//最后在finally中删除
if
(
flag
){
redisUtil
.
del
(
lockKey
);
}
}
return
null
;
}
}
src/main/java/cn/wisenergy/chnmuseum/party/mapper/TBoardPlayRankMapper.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayRank
;
/**
* <pre>
* 展板播放排行 Mapper 接口
* </pre>
*
* @author Danny Lee
* @since 2021-03-26
*/
public
interface
TBoardPlayRankMapper
extends
BaseMapper
<
TBoardPlayRank
>
{
}
src/main/java/cn/wisenergy/chnmuseum/party/mapper/TBoardPlayTrendMapper.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend
;
/**
* <pre>
* 展板播放趋势 Mapper 接口
* </pre>
*
* @author Danny Lee
* @since 2021-03-26
*/
public
interface
TBoardPlayTrendMapper
extends
BaseMapper
<
TBoardPlayTrend
>
{
}
src/main/java/cn/wisenergy/chnmuseum/party/mapper/TBoardStatisticMapper.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
mapper
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayRank
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend
;
import
cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
cn.wisenergy.chnmuseum.party.model.TBoardStatistic
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
org.apache.ibatis.annotations.Param
;
import
org.mapstruct.Mapper
;
import
java.util.List
;
/**
* <pre>
* 展板统计信息表 Mapper 接口
* </pre>
*
* @author Danny Lee
* @since 2021-03-25
*/
@Mapper
public
interface
TBoardStatisticMapper
extends
BaseMapper
<
TBoardStatistic
>
{
public
List
<
TBoardPlayRank
>
getBoardRankPageList
(
Page
<
TBoardPlayRank
>
page
,
TBoardPlayRank
rank
);
public
List
<
TBoardPlayTrend
>
getBoardTrendPageList
(
Page
<
TBoardPlayTrend
>
page
,
TBoardPlayTrend
trend
);
public
List
<
TDistrictBoardStatistic
>
getBoardDistrictPageList
(
Page
<
TDistrictBoardStatistic
>
page
,
TDistrictBoardStatistic
trend
);
}
src/main/java/cn/wisenergy/chnmuseum/party/mapper/TDistrictBoardStatisticMapper.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic
;
/**
* <pre>
* 地区看板播放统计 Mapper 接口
* </pre>
*
* @author Danny Lee
* @since 2021-03-26
*/
public
interface
TDistrictBoardStatisticMapper
extends
BaseMapper
<
TDistrictBoardStatistic
>
{
}
src/main/java/cn/wisenergy/chnmuseum/party/model/TBoardPlayRank.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
model
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.Version
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.io.Serializable
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Add
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Update
;
/**
* <p>
* 展板播放排行
* </p>
*
* @author Danny Lee
* @since 2021-03-26
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
false
)
@TableName
(
"t_board_play_rank"
)
@ApiModel
(
value
=
"展板播放排行"
,
description
=
"展板播放排行"
)
public
class
TBoardPlayRank
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"ID"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
ASSIGN_ID
)
@NotNull
(
message
=
"ID不能为空"
,
groups
=
{
Update
.
class
})
private
String
id
;
@ApiModelProperty
(
"看板ID"
)
@TableField
(
"board_id"
)
@NotBlank
(
message
=
"看板ID不能为空"
,
groups
=
{
Add
.
class
,
Update
.
class
})
private
String
boardId
;
@ApiModelProperty
(
"看板名称"
)
@TableField
(
"board_name"
)
@NotBlank
(
message
=
"看板名称不能为空"
,
groups
=
{
Add
.
class
,
Update
.
class
})
private
String
boardName
;
@ApiModelProperty
(
"播放次数"
)
@TableField
(
"play_number"
)
private
Integer
playNumber
;
@ApiModelProperty
(
"机构id"
)
@TableField
(
"organ_id"
)
private
String
organId
;
@ApiModelProperty
(
"播放时间"
)
@TableField
(
"play_date"
)
private
String
playDate
;
}
src/main/java/cn/wisenergy/chnmuseum/party/model/TBoardPlayTrend.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
model
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
java.time.LocalDate
;
import
com.baomidou.mybatisplus.annotation.Version
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.io.Serializable
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Add
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Update
;
import
com.baomidou.mybatisplus.annotation.TableField
;
/**
* <p>
* 展板播放趋势
* </p>
*
* @author Danny Lee
* @since 2021-03-26
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
false
)
@TableName
(
"t_board_play_trend"
)
@ApiModel
(
value
=
"展板播放趋势"
,
description
=
"展板播放趋势"
)
public
class
TBoardPlayTrend
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"播放次数"
)
@TableField
(
"play_number"
)
private
Integer
playNumber
;
@ApiModelProperty
(
"播放时间 yyyy 统计周期为年 yyyyMM 统计周期为月"
)
@TableField
(
exist
=
false
)
private
String
playDate
;
@ApiModelProperty
(
"机构id"
)
@TableField
(
"organ_id"
)
private
Integer
organId
;
}
src/main/java/cn/wisenergy/chnmuseum/party/model/TBoardStatistic.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
model
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.Version
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.io.Serializable
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Add
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Update
;
/**
* <p>
* 展板统计信息表
* </p>
*
* @author Danny Lee
* @since 2021-03-25
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
false
)
@TableName
(
"t_board_statistic"
)
@ApiModel
(
value
=
"展板统计信息表"
,
description
=
"展板统计信息表"
)
public
class
TBoardStatistic
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"主键id"
)
@TableId
(
value
=
"id"
,
type
=
IdType
.
ASSIGN_ID
)
@NotNull
(
message
=
"主键id不能为空"
,
groups
=
{
Update
.
class
})
private
String
id
;
@ApiModelProperty
(
"展板id"
)
@TableField
(
"board_id"
)
@NotBlank
(
message
=
"展板id不能为空"
,
groups
=
{
Add
.
class
,
Update
.
class
})
private
String
boardId
;
@ApiModelProperty
(
"展板名称"
)
@TableField
(
"board_name"
)
private
String
boardName
;
@ApiModelProperty
(
"播放机构id"
)
@TableField
(
"organ_id"
)
private
String
organId
;
@ApiModelProperty
(
"机构所在地区id"
)
@TableField
(
"area_id"
)
private
Integer
areaId
;
@ApiModelProperty
(
"播放次数"
)
@TableField
(
"play_number"
)
private
Integer
playNumber
;
@ApiModelProperty
(
"播放日期yyyy-MM-dd"
)
@TableField
(
"play_date"
)
private
String
playDate
;
@ApiModelProperty
(
"用户id"
)
@TableField
(
exist
=
false
)
private
String
userId
;
}
src/main/java/cn/wisenergy/chnmuseum/party/model/TDistrictBoardStatistic.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
model
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.Version
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
java.io.Serializable
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.EqualsAndHashCode
;
import
lombok.experimental.Accessors
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotNull
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Add
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Update
;
import
com.baomidou.mybatisplus.annotation.TableField
;
/**
* <p>
* 地区看板播放统计
* </p>
*
* @author Danny Lee
* @since 2021-03-26
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors
(
chain
=
true
)
@EqualsAndHashCode
(
callSuper
=
false
)
@TableName
(
"t_district_board_statistic"
)
@ApiModel
(
value
=
"地区看板播放统计"
,
description
=
"地区看板播放统计"
)
public
class
TDistrictBoardStatistic
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"播放次数"
)
@TableField
(
"play_number"
)
private
Integer
playNumber
;
@ApiModelProperty
(
"地区名称"
)
@TableField
(
exist
=
false
)
private
String
areaName
;
@ApiModelProperty
(
"看板数量"
)
@TableField
(
exist
=
false
)
private
Integer
boardCnt
;
}
src/main/java/cn/wisenergy/chnmuseum/party/service/TBoardPlayRankService.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
service
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayRank
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
* <p>
* 展板播放排行 服务接口
* </p>
*
* @author Danny Lee
* @since 2021-03-26
*/
public
interface
TBoardPlayRankService
extends
IService
<
TBoardPlayRank
>
{
}
src/main/java/cn/wisenergy/chnmuseum/party/service/TBoardPlayTrendService.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
service
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
* <p>
* 展板播放趋势 服务接口
* </p>
*
* @author Danny Lee
* @since 2021-03-26
*/
public
interface
TBoardPlayTrendService
extends
IService
<
TBoardPlayTrend
>
{
}
src/main/java/cn/wisenergy/chnmuseum/party/service/TBoardStatisticService.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
service
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayRank
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend
;
import
cn.wisenergy.chnmuseum.party.model.TBoardStatistic
;
import
cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
java.util.List
;
/**
* <p>
* 展板统计信息表 服务接口
* </p>
*
* @author Danny Lee
* @since 2021-03-25
*/
public
interface
TBoardStatisticService
extends
IService
<
TBoardStatistic
>
{
Object
boardStatisticInfo
(
TBoardStatistic
tBoardStatistic
,
boolean
autoUpdate
);
/**
* 更新展板统计信息
*/
void
updateBoardStatisticInfo
(
List
<
TBoardStatistic
>
statisticList
,
String
redisKey
);
/**
* 获取展板播放排行
* @param page
* @param rank
* @return
*/
Page
<
TBoardPlayRank
>
getBoardRankPageList
(
Page
<
TBoardPlayRank
>
page
,
TBoardPlayRank
rank
);
/**
* 获取展板播放趋势
* @param page
* @param rank
* @return
*/
Page
<
TBoardPlayTrend
>
getBoardTrendPageList
(
Page
<
TBoardPlayTrend
>
page
,
TBoardPlayTrend
rank
);
/**
* 获取地区看板统计信息
* @param page
* @param district
* @return
*/
Page
<
TDistrictBoardStatistic
>
getBoardDistrictPageList
(
Page
<
TDistrictBoardStatistic
>
page
,
TDistrictBoardStatistic
district
);
}
src/main/java/cn/wisenergy/chnmuseum/party/service/TDistrictBoardStatisticService.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
service
;
import
cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic
;
import
com.baomidou.mybatisplus.extension.service.IService
;
/**
* <p>
* 地区看板播放统计 服务接口
* </p>
*
* @author Danny Lee
* @since 2021-03-26
*/
public
interface
TDistrictBoardStatisticService
extends
IService
<
TDistrictBoardStatistic
>
{
}
src/main/java/cn/wisenergy/chnmuseum/party/service/impl/TBoardPlayRankServiceImpl.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
service
.
impl
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayRank
;
import
cn.wisenergy.chnmuseum.party.mapper.TBoardPlayRankMapper
;
import
cn.wisenergy.chnmuseum.party.service.TBoardPlayRankService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.beans.factory.annotation.Autowired
;
/**
* <pre>
* 展板播放排行 服务实现类
* </pre>
*
* @author Danny Lee
* @since 2021-03-26
*/
@Slf4j
@Service
public
class
TBoardPlayRankServiceImpl
extends
ServiceImpl
<
TBoardPlayRankMapper
,
TBoardPlayRank
>
implements
TBoardPlayRankService
{
@Autowired
private
TBoardPlayRankMapper
tBoardPlayRankMapper
;
}
src/main/java/cn/wisenergy/chnmuseum/party/service/impl/TBoardPlayTrendServiceImpl.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
service
.
impl
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend
;
import
cn.wisenergy.chnmuseum.party.mapper.TBoardPlayTrendMapper
;
import
cn.wisenergy.chnmuseum.party.service.TBoardPlayTrendService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.beans.factory.annotation.Autowired
;
/**
* <pre>
* 展板播放趋势 服务实现类
* </pre>
*
* @author Danny Lee
* @since 2021-03-26
*/
@Slf4j
@Service
public
class
TBoardPlayTrendServiceImpl
extends
ServiceImpl
<
TBoardPlayTrendMapper
,
TBoardPlayTrend
>
implements
TBoardPlayTrendService
{
@Autowired
private
TBoardPlayTrendMapper
tBoardPlayTrendMapper
;
}
src/main/java/cn/wisenergy/chnmuseum/party/service/impl/TBoardStatisticServiceImpl.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
service
.
impl
;
import
cn.wisenergy.chnmuseum.party.common.util.CurrencyMathUtil
;
import
cn.wisenergy.chnmuseum.party.common.util.DateUtil
;
import
cn.wisenergy.chnmuseum.party.common.util.RedisUtil
;
import
cn.wisenergy.chnmuseum.party.core.annotations.RedisLock
;
import
cn.wisenergy.chnmuseum.party.model.*
;
import
cn.wisenergy.chnmuseum.party.mapper.TBoardStatisticMapper
;
import
cn.wisenergy.chnmuseum.party.service.TBoardStatisticService
;
import
cn.wisenergy.chnmuseum.party.service.TUserService
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* <pre>
* 展板统计信息表 服务实现类
* </pre>
*
* @author Danny Lee
* @since 2021-03-25
*/
@Slf4j
@Service
public
class
TBoardStatisticServiceImpl
extends
ServiceImpl
<
TBoardStatisticMapper
,
TBoardStatistic
>
implements
TBoardStatisticService
{
@Autowired
private
TBoardStatisticMapper
boardStatisticMapper
;
@Autowired
private
TUserService
userService
;
@Autowired
private
RedisUtil
redisUtil
;
@Autowired
private
RedisTemplate
<
String
,?
extends
Object
>
redisTemplate
;
private
static
String
STATISTIC_BOARD_INFO_KEY
=
"STATISTIC_BOARD_INFO_KEY"
;
// 展板统计信息key
@Override
@RedisLock
(
value
=
"boardLock"
,
timeLock
=
20
,
required
=
true
,
timeOut
=
1100000
)
public
Object
boardStatisticInfo
(
TBoardStatistic
tBoardStatistic
,
boolean
autoUpdate
)
{
// 根据用户id获取用户信息
TUser
user
=
userService
.
selectById
(
tBoardStatistic
.
getUserId
());
tBoardStatistic
.
setOrganId
(
user
.
getOrgId
());
// 用户所属机构
tBoardStatistic
.
setAreaId
(
Integer
.
parseInt
(
user
.
getAreaId
()));
// 用户所属地区
if
(
StringUtils
.
isEmpty
(
tBoardStatistic
.
getPlayDate
())){
// 获取当前日期
tBoardStatistic
.
setPlayDate
(
DateUtil
.
getCurrentDate
(
"yyyyMMdd"
));
}
List
<
TBoardStatistic
>
statisticList
=
new
ArrayList
<>();
String
redisKey
=
STATISTIC_BOARD_INFO_KEY
;
// 获取统计信息缓存数据
String
businessJsonArray
=
(
String
)
redisUtil
.
get
(
redisKey
);
// 缓存数据不为空,转换数据
if
(
StringUtils
.
isNotEmpty
(
businessJsonArray
)){
statisticList
=
JSONObject
.
parseArray
(
businessJsonArray
,
TBoardStatistic
.
class
);
}
statisticList
.
add
(
tBoardStatistic
);
redisUtil
.
set
(
redisKey
,
JSON
.
toJSON
(
statisticList
).
toString
());
// 统计记录数等于100 时,或者需要自动更新时 汇总统计数据
if
(
statisticList
.
size
()
>=
100
||
autoUpdate
){
// 更新展板统计信息
updateBoardStatisticInfo
(
statisticList
,
redisKey
);
}
return
true
;
}
@Override
public
Page
<
TBoardPlayRank
>
getBoardRankPageList
(
Page
<
TBoardPlayRank
>
page
,
TBoardPlayRank
rank
)
{
page
.
setRecords
(
boardStatisticMapper
.
getBoardRankPageList
(
page
,
rank
));
return
page
;
}
@Override
public
Page
<
TBoardPlayTrend
>
getBoardTrendPageList
(
Page
<
TBoardPlayTrend
>
page
,
TBoardPlayTrend
rank
)
{
page
.
setRecords
(
boardStatisticMapper
.
getBoardTrendPageList
(
page
,
rank
));
return
page
;
}
@Override
public
Page
<
TDistrictBoardStatistic
>
getBoardDistrictPageList
(
Page
<
TDistrictBoardStatistic
>
page
,
TDistrictBoardStatistic
district
){
page
.
setRecords
(
boardStatisticMapper
.
getBoardDistrictPageList
(
page
,
district
));
return
page
;
}
/**
* 更新展板统计信息
*/
@Override
public
void
updateBoardStatisticInfo
(
List
<
TBoardStatistic
>
statisticList
,
String
redisKey
)
{
Map
<
String
,
TBoardStatistic
>
map
=
new
HashMap
<>();
statisticList
.
stream
().
forEach
(
s
->{
String
key
=
s
.
getBoardId
()+
"_"
+
s
.
getOrganId
()+
"_"
+
s
.
getPlayDate
();
// 如果有对应的展板记录,累计播放量
if
(
map
.
containsKey
(
key
)){
TBoardStatistic
boardStatistic
=
map
.
get
(
key
);
boardStatistic
.
setPlayNumber
(
Integer
.
parseInt
(
CurrencyMathUtil
.
add
(
boardStatistic
.
getPlayNumber
(),
s
.
getPlayNumber
())));
map
.
put
(
key
,
boardStatistic
);
}
else
{
// 如果无对应的展板记录,插入到map中
map
.
put
(
key
,
s
);
}
});
// 更新数据库展板统计信息
for
(
String
key
:
map
.
keySet
()){
TBoardStatistic
bs
=
map
.
get
(
key
);
// 查询数据库是否有对应的记录
QueryWrapper
<
TBoardStatistic
>
qw
=
new
QueryWrapper
<>();
qw
.
eq
(
"board_id"
,
bs
.
getBoardId
());
qw
.
eq
(
"organ_id"
,
bs
.
getOrganId
());
qw
.
eq
(
"play_date"
,
bs
.
getPlayDate
());
TBoardStatistic
tbDB
=
this
.
getOne
(
qw
);
// 如果数据库存在统计记录,则累计统计数量
if
(
tbDB
!=
null
){
tbDB
.
setPlayNumber
(
Integer
.
parseInt
(
CurrencyMathUtil
.
add
(
bs
.
getPlayNumber
(),
tbDB
.
getPlayNumber
())));
this
.
updateById
(
tbDB
);
map
.
put
(
key
,
tbDB
);
}
else
{
// 如果数据库不存在统计记录,则增加统计数据
this
.
save
(
bs
);
}
}
// 更新展板播放排行 t_board_play_rank
// 插入
// 看板播放趋势
// 地区看板播放统计
// 播放数据概览
// 清空redis
redisUtil
.
del
(
redisKey
);
}
}
src/main/java/cn/wisenergy/chnmuseum/party/service/impl/TDistrictBoardStatisticServiceImpl.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
service
.
impl
;
import
cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic
;
import
cn.wisenergy.chnmuseum.party.mapper.TDistrictBoardStatisticMapper
;
import
cn.wisenergy.chnmuseum.party.service.TDistrictBoardStatisticService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.beans.factory.annotation.Autowired
;
/**
* <pre>
* 地区看板播放统计 服务实现类
* </pre>
*
* @author Danny Lee
* @since 2021-03-26
*/
@Slf4j
@Service
public
class
TDistrictBoardStatisticServiceImpl
extends
ServiceImpl
<
TDistrictBoardStatisticMapper
,
TDistrictBoardStatistic
>
implements
TDistrictBoardStatisticService
{
@Autowired
private
TDistrictBoardStatisticMapper
tDistrictBoardStatisticMapper
;
}
src/main/java/cn/wisenergy/chnmuseum/party/web/controller/ChinaMobileRestApiController.java
View file @
5ce1eabe
...
@@ -4,10 +4,12 @@ import cn.wisenergy.chnmuseum.party.auth.SHA256PasswordEncryptionService;
...
@@ -4,10 +4,12 @@ import cn.wisenergy.chnmuseum.party.auth.SHA256PasswordEncryptionService;
import
cn.wisenergy.chnmuseum.party.auth.util.JwtTokenUtil
;
import
cn.wisenergy.chnmuseum.party.auth.util.JwtTokenUtil
;
import
cn.wisenergy.chnmuseum.party.common.enums.LanguageEnum
;
import
cn.wisenergy.chnmuseum.party.common.enums.LanguageEnum
;
import
cn.wisenergy.chnmuseum.party.common.util.TimeUtils
;
import
cn.wisenergy.chnmuseum.party.common.util.TimeUtils
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Add
;
import
cn.wisenergy.chnmuseum.party.common.vo.GenericPageParam
;
import
cn.wisenergy.chnmuseum.party.common.vo.GenericPageParam
;
import
cn.wisenergy.chnmuseum.party.model.*
;
import
cn.wisenergy.chnmuseum.party.model.*
;
import
cn.wisenergy.chnmuseum.party.service.ExhibitionBoardService
;
import
cn.wisenergy.chnmuseum.party.service.ExhibitionBoardService
;
import
cn.wisenergy.chnmuseum.party.service.RunLogService
;
import
cn.wisenergy.chnmuseum.party.service.RunLogService
;
import
cn.wisenergy.chnmuseum.party.service.TBoardStatisticService
;
import
cn.wisenergy.chnmuseum.party.service.impl.*
;
import
cn.wisenergy.chnmuseum.party.service.impl.*
;
import
cn.wisenergy.chnmuseum.party.web.controller.base.BaseController
;
import
cn.wisenergy.chnmuseum.party.web.controller.base.BaseController
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
...
@@ -23,12 +25,14 @@ import org.apache.commons.lang3.StringUtils;
...
@@ -23,12 +25,14 @@ import org.apache.commons.lang3.StringUtils;
import
org.apache.shiro.SecurityUtils
;
import
org.apache.shiro.SecurityUtils
;
import
org.apache.shiro.authc.DisabledAccountException
;
import
org.apache.shiro.authc.DisabledAccountException
;
import
org.apache.shiro.authc.IncorrectCredentialsException
;
import
org.apache.shiro.authc.IncorrectCredentialsException
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.data.redis.core.StringRedisTemplate
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
...
@@ -69,6 +73,9 @@ public class ChinaMobileRestApiController extends BaseController {
...
@@ -69,6 +73,9 @@ public class ChinaMobileRestApiController extends BaseController {
@Resource
@Resource
private
ExhibitionBoardService
exhibitionBoardService
;
private
ExhibitionBoardService
exhibitionBoardService
;
@Resource
private
TBoardStatisticService
tBoardStatisticService
;
private
static
final
String
SHIRO_JWT_TOKEN
=
"shiro:jwt:token:"
;
private
static
final
String
SHIRO_JWT_TOKEN
=
"shiro:jwt:token:"
;
//用户登录次数计数 redisKey 前缀
//用户登录次数计数 redisKey 前缀
private
static
final
String
SHIRO_LOGIN_COUNT
=
"shiro_login_count_"
;
private
static
final
String
SHIRO_LOGIN_COUNT
=
"shiro_login_count_"
;
...
@@ -419,4 +426,26 @@ public class ChinaMobileRestApiController extends BaseController {
...
@@ -419,4 +426,26 @@ public class ChinaMobileRestApiController extends BaseController {
return
resultMap
;
return
resultMap
;
}
}
@PostMapping
(
"/equitment/playLog"
)
@RequiresPermissions
(
"t:board:statistic:statisticBoardInfo"
)
@ApiOperation
(
value
=
"播放记录信息反馈"
,
notes
=
"播放记录信息反馈"
)
public
Map
<
String
,
Object
>
boardStatisticInfo
(
@Validated
(
value
=
{
Add
.
class
})
TBoardStatistic
tBoardStatistic
)
{
// 展板信息统计
try
{
Object
result
=
tBoardStatisticService
.
boardStatisticInfo
(
tBoardStatistic
,
false
);
// 返回操作结果
if
(
result
!=
null
&&
(
boolean
)
result
)
{
return
getSuccessResult
();
}
}
catch
(
Exception
e
){
e
.
printStackTrace
();
}
// 保存失败
return
getFailResult
();
}
}
}
src/main/java/cn/wisenergy/chnmuseum/party/web/controller/TBoardPlayRankController.java
0 → 100644
View file @
5ce1eabe
package
cn
.
wisenergy
.
chnmuseum
.
party
.
web
.
controller
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
cn.wisenergy.chnmuseum.party.web.controller.base.BaseController
;
import
cn.wisenergy.chnmuseum.party.model.TBoardPlayRank
;
import
cn.wisenergy.chnmuseum.party.service.TBoardPlayRankService
;
import
cn.wisenergy.chnmuseum.party.common.enums.AuditStatusEnum
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Add
;
import
cn.wisenergy.chnmuseum.party.common.validator.groups.Update
;
import
cn.wisenergy.chnmuseum.party.common.vo.GenericPageParam
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.stereotype.Controller
;
import
javax.annotation.Resource
;
import
javax.validation.constraints.NotNull
;
import
java.util.List
;
import
java.util.Map
;
/**
* <pre>
* 展板播放排行 前端控制器
* </pre>
*
* @author Danny Lee
* @since 2021-03-26
*/
@Slf4j
@RestController
@RequestMapping
(
"/tBoardPlayRank"
)
@Api
(
tags
=
{
"展板播放排行操作接口"
})
public
class
TBoardPlayRankController
extends
BaseController
{
@Resource
private
TBoardPlayRankService
tBoardPlayRankService
;
@PostMapping
(
"/batchSave"
)
@RequiresPermissions
(
"t:board:play:rank:batch:save"
)
@ApiOperation
(
value
=
"批量添加展板播放排行"
,
notes
=
"批量添加展板播放排行"
)
public
Map
<
String
,
Object
>
batchSaveTBoardPlayRank
(
@Validated
(
value
=
{
Add
.
class
})
List
<
TBoardPlayRank
>
tBoardPlayRankList
)
{
// 保存业务节点信息
boolean
result
=
tBoardPlayRankService
.
saveBatch
(
tBoardPlayRankList
);
// 返回操作结果
if
(
result
)
{
return
getSuccessResult
();
}
else
{
// 保存失败
return
getFailResult
();
}
}
@PostMapping
(
"/save"
)
@RequiresPermissions
(
"t:board:play:rank:save"
)
@ApiOperation
(
value
=
"添加展板播放排行"
,
notes
=
"添加展板播放排行"
)
public
Map
<
String
,
Object
>
saveTBoardPlayRank
(
@Validated
(
value
=
{
Add
.
class
})
TBoardPlayRank
tBoardPlayRank
)
{
// 保存业务节点信息
boolean
result
=
tBoardPlayRankService
.
save
(
tBoardPlayRank
);
// 返回操作结果
if
(
result
)
{
return
getSuccessResult
();
}
else
{
// 保存失败
return
getFailResult
();
}
}
@PutMapping
(
"/update"
)
@RequiresPermissions
(
"t:board:play:rank:update"
)
@ApiOperation
(
value
=
"修改展板播放排行信息"
,
notes
=
"修改展板播放排行信息"
)
public
Map
<
String
,
Object
>
updateTBoardPlayRank
(
@Validated
(
value
=
{
Update
.
class
})
TBoardPlayRank
tBoardPlayRank
)
{
boolean
flag
=
tBoardPlayRankService
.
updateById
(
tBoardPlayRank
);
if
(
flag
)
{
return
getSuccessResult
();
}
return
getFailResult
();
}
// @PutMapping("/updateAuditStatus/{id}")
// @RequiresPermissions("t:board:play:rank:update:audit:status")
// @ApiOperation(value = "更新展板播放排行审核状态", notes = "更新展板播放排行审核状态")
// @ApiImplicitParams(value = {
// @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path"),
// @ApiImplicitParam(name = "status", value = "状态", paramType = "query", dataType = "String")
// })
// public Map<String, Object> updateStatus(@NotNull(message = "展板播放排行ID不能为空") @PathVariable("id") String id, @RequestParam("status") AuditStatusEnum status) {
// UpdateWrapper<TBoardPlayRank> updateWrapper = new UpdateWrapper<>();
// updateWrapper.eq("id", id);
// updateWrapper.eq("audit_status", status.name());
// boolean flag = tBoardPlayRankService.update(updateWrapper);
// if (flag) {
// return getSuccessResult();
// }
// return getFailResult();
// }
@DeleteMapping
(
"/delete/{id}"
)
@RequiresPermissions
(
"t:board:play:rank:delete"
)
@ApiOperation
(
value
=
"根据ID删除展板播放排行"
,
notes
=
"根据ID删除展板播放排行"
)
@ApiImplicitParams
(
value
=
{
@ApiImplicitParam
(
name
=
"id"
,
value
=
"标识ID"
,
paramType
=
"path"
,
dataType
=
"String"
)
})
public
Map
<
String
,
Object
>
deleteTBoardPlayRank
(
@PathVariable
(
"id"
)
String
id
)
{
boolean
result
=
tBoardPlayRankService
.
removeById
(
id
);
if
(
result
)
{
return
getSuccessResult
();
}
return
getFailResult
();
}
@GetMapping
(
"/getList"
)
@RequiresPermissions
(
"t:board:play:rank:list"
)
@ApiOperation
(
value
=
"获取展板播放排行全部列表(无分页)"
,
notes
=
"获取展板播放排行全部列表(无分页)"
)
@ApiImplicitParams
(
value
=
{
@ApiImplicitParam
(
name
=
"auditStatus"
,
value
=
"审核状态"
,
paramType
=
"query"
,
dataType
=
"String"
)
})
public
Map
<
String
,
Object
>
getTBoardPlayRankList
(
@RequestParam
(
value
=
"auditStatus"
,
defaultValue
=
"APPROVED_FINAL"
,
required
=
false
)
AuditStatusEnum
auditStatus
)
{
List
<
TBoardPlayRank
>
tBoardPlayRankList
=
tBoardPlayRankService
.
list
();
return
getResult
(
tBoardPlayRankList
);
}
@ApiImplicitParams
(
value
=
{
@ApiImplicitParam
(
name
=
"_index"
,
value
=
"分页起始偏移量"
,
paramType
=
"query"
,
dataType
=
"Integer"
),
@ApiImplicitParam
(
name
=
"_size"
,
value
=
"返回条数"
,
paramType
=
"query"
,
dataType
=
"Integer"
),
@ApiImplicitParam
(
name
=
"nameOrCode"
,
value
=
"名称或编码"
,
paramType
=
"query"
,
dataType
=
"String"
),
@ApiImplicitParam
(
name
=
"startDate"
,
value
=
"创建时间-开始"
,
paramType
=
"query"
,
dataType
=
"String"
),
@ApiImplicitParam
(
name
=
"endDate"
,
value
=
"创建时间-结束"
,
paramType
=
"query"
,
dataType
=
"String"
)
})
@PostMapping
(
"/getPageList"
)
@RequiresPermissions
(
"t:board:play:rank:page"
)
@ApiOperation
(
value
=
"获取展板播放排行分页列表"
,
notes
=
"获取展板播放排行分页列表"
)
public
Map
<
String
,
Object
>
getTBoardPlayRankPageList
(
GenericPageParam
genericPageParam
)
{
LambdaQueryWrapper
<
TBoardPlayRank
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
// // 对名称或编码模糊查询
// if (StringUtils.isNotBlank(genericPageParam.getNameOrCode())) {
// queryWrapper.like(TBoardPlayRank::getName, genericPageParam.getNameOrCode());
// }
// // 根据创建时间区间检索
// if (genericPageParam.getStartDate() != null && genericPageParam.getEndDate() != null) {
// queryWrapper.ge(TBoardPlayRank::getCreateTime, genericPageParam.getStartDate().atTime(0, 0, 0))
// .le(TBoardPlayRank::getCreateTime, genericPageParam.getEndDate().atTime(23, 59, 59));
// }
// // 设置排序规则
// queryWrapper.orderByDesc(TBoardPlayRank::getCreateTime);
// // 设置查询内容
// queryWrapper.select(
// TBoardPlayRank::getId,
// TBoardPlayRank::getName,
// TBoardPlayRank::getAuditStatus,
// TBoardPlayRank::getCreateTime,
// TBoardPlayRank::getUpdateTime);
Page
<
TBoardPlayRank
>
page
=
this
.
tBoardPlayRankService
.
page
(
getPage
(),
queryWrapper
);
for
(
TBoardPlayRank
tBoardPlayRank
:
page
.
getRecords
())
{
}
return
getResult
(
page
);
}
@ApiOperation
(
value
=
"获取展板播放排行详情"
,
notes
=
"获取展板播放排行详情"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"id"
,
value
=
"标识ID"
,
dataType
=
"String"
,
paramType
=
"path"
)
})
@GetMapping
(
"/get/{id}"
)
@RequiresPermissions
(
"t:board:play:rank:get:id"
)
public
Map
<
String
,
Object
>
getById
(
@PathVariable
(
"id"
)
String
id
)
{
TBoardPlayRank
tBoardPlayRank
=
tBoardPlayRankService
.
getById
(
id
);
return
getResult
(
tBoardPlayRank
);
}
}
src/main/java/cn/wisenergy/chnmuseum/party/web/controller/TBoardPlayTrendController.java
0 → 100644
View file @
5ce1eabe
//package cn.wisenergy.chnmuseum.party.web.controller;
//
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController;
//import cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend;
//import cn.wisenergy.chnmuseum.party.service.TBoardPlayTrendService;
//import cn.wisenergy.chnmuseum.party.common.enums.AuditStatusEnum;
//import cn.wisenergy.chnmuseum.party.common.validator.groups.Add;
//import cn.wisenergy.chnmuseum.party.common.validator.groups.Update;
//import cn.wisenergy.chnmuseum.party.common.vo.GenericPageParam;
//
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiImplicitParam;
//import io.swagger.annotations.ApiImplicitParams;
//import io.swagger.annotations.ApiOperation;
//
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.apache.shiro.authz.annotation.RequiresPermissions;
//import org.springframework.validation.annotation.Validated;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.stereotype.Controller;
//
//import javax.annotation.Resource;
//import javax.validation.constraints.NotNull;
//import java.util.List;
//import java.util.Map;
//
///**
// * <pre>
// * 展板播放趋势 前端控制器
// * </pre>
// *
// * @author Danny Lee
// * @since 2021-03-26
// */
//@Slf4j
//@RestController
//@RequestMapping("/tBoardPlayTrend")
//@Api(tags = {"展板播放趋势操作接口"})
//public class TBoardPlayTrendController extends BaseController {
//
// @Resource
// private TBoardPlayTrendService tBoardPlayTrendService;
//
// @PostMapping("/batchSave")
// @RequiresPermissions("t:board:play:trend:batch:save")
// @ApiOperation(value = "批量添加展板播放趋势", notes = "批量添加展板播放趋势")
// public Map<String, Object> batchSaveTBoardPlayTrend(@Validated(value = {Add.class}) List<TBoardPlayTrend> tBoardPlayTrendList) {
// // 保存业务节点信息
// boolean result = tBoardPlayTrendService.saveBatch(tBoardPlayTrendList);
// // 返回操作结果
// if (result) {
// return getSuccessResult();
// } else {
// // 保存失败
// return getFailResult();
// }
// }
//
// @PostMapping("/save")
// @RequiresPermissions("t:board:play:trend:save")
// @ApiOperation(value = "添加展板播放趋势", notes = "添加展板播放趋势")
// public Map<String, Object> saveTBoardPlayTrend(@Validated(value = {Add.class}) TBoardPlayTrend tBoardPlayTrend) {
// // 保存业务节点信息
// boolean result = tBoardPlayTrendService.save(tBoardPlayTrend);
// // 返回操作结果
// if (result) {
// return getSuccessResult();
// } else {
// // 保存失败
// return getFailResult();
// }
// }
//
// @PutMapping("/update")
// @RequiresPermissions("t:board:play:trend:update")
// @ApiOperation(value = "修改展板播放趋势信息", notes = "修改展板播放趋势信息")
// public Map<String, Object> updateTBoardPlayTrend(@Validated(value = {Update.class}) TBoardPlayTrend tBoardPlayTrend) {
// boolean flag = tBoardPlayTrendService.updateById(tBoardPlayTrend);
// if (flag) {
// return getSuccessResult();
// }
// return getFailResult();
// }
//
//// @PutMapping("/updateAuditStatus/{id}")
//// @RequiresPermissions("t:board:play:trend:update:audit:status")
//// @ApiOperation(value = "更新展板播放趋势审核状态", notes = "更新展板播放趋势审核状态")
//// @ApiImplicitParams(value = {
//// @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path"),
//// @ApiImplicitParam(name = "status", value = "状态", paramType = "query", dataType = "String")
//// })
//// public Map<String, Object> updateStatus(@NotNull(message = "展板播放趋势ID不能为空") @PathVariable("id") String id, @RequestParam("status") AuditStatusEnum status) {
//// UpdateWrapper<TBoardPlayTrend> updateWrapper = new UpdateWrapper<>();
//// updateWrapper.eq("id", id);
//// updateWrapper.eq("audit_status", status.name());
//// boolean flag = tBoardPlayTrendService.update(updateWrapper);
//// if (flag) {
//// return getSuccessResult();
//// }
//// return getFailResult();
//// }
//
// @DeleteMapping("/delete/{id}")
// @RequiresPermissions("t:board:play:trend:delete")
// @ApiOperation(value = "根据ID删除展板播放趋势", notes = "根据ID删除展板播放趋势")
// @ApiImplicitParams(value = {
// @ApiImplicitParam(name = "id", value = "标识ID", paramType = "path", dataType = "String")
// })
// public Map<String, Object> deleteTBoardPlayTrend(@PathVariable("id") String id) {
// boolean result = tBoardPlayTrendService.removeById(id);
// if (result) {
// return getSuccessResult();
// }
// return getFailResult();
// }
//
// @GetMapping("/getList")
// @RequiresPermissions("t:board:play:trend:list")
// @ApiOperation(value = "获取展板播放趋势全部列表(无分页)", notes = "获取展板播放趋势全部列表(无分页)")
// @ApiImplicitParams(value = {
// @ApiImplicitParam(name = "auditStatus", value = "审核状态", paramType = "query", dataType = "String")
// })
// public Map<String, Object> getTBoardPlayTrendList(@RequestParam(value = "auditStatus", defaultValue = "APPROVED_FINAL", required = false) AuditStatusEnum auditStatus) {
// List<TBoardPlayTrend> tBoardPlayTrendList = tBoardPlayTrendService.list();
// return getResult(tBoardPlayTrendList);
// }
//
// @ApiImplicitParams(value = {
// @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
// @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
// @ApiImplicitParam(name = "nameOrCode", value = "名称或编码", paramType = "query", dataType = "String"),
// @ApiImplicitParam(name = "startDate", value = "创建时间-开始", paramType = "query", dataType = "String"),
// @ApiImplicitParam(name = "endDate", value = "创建时间-结束", paramType = "query", dataType = "String")
// })
// @PostMapping("/getPageList")
// @RequiresPermissions("t:board:play:trend:page")
// @ApiOperation(value = "获取展板播放趋势分页列表", notes = "获取展板播放趋势分页列表")
// public Map<String, Object> getTBoardPlayTrendPageList(GenericPageParam genericPageParam) {
// LambdaQueryWrapper<TBoardPlayTrend> queryWrapper = new LambdaQueryWrapper<>();
// // 对名称或编码模糊查询
//// if (StringUtils.isNotBlank(genericPageParam.getNameOrCode())) {
//// queryWrapper.like(TBoardPlayTrend::getName, genericPageParam.getNameOrCode());
//// }
//// // 根据创建时间区间检索
//// if (genericPageParam.getStartDate() != null && genericPageParam.getEndDate() != null) {
//// queryWrapper.ge(TBoardPlayTrend::getCreateTime, genericPageParam.getStartDate().atTime(0, 0, 0))
//// .le(TBoardPlayTrend::getCreateTime, genericPageParam.getEndDate().atTime(23, 59, 59));
//// }
//// // 设置排序规则
//// queryWrapper.orderByDesc(TBoardPlayTrend::getCreateTime);
//// // 设置查询内容
//// queryWrapper.select(
//// TBoardPlayTrend::getId,
//// TBoardPlayTrend::getName,
//// TBoardPlayTrend::getAuditStatus,
//// TBoardPlayTrend::getCreateTime,
//// TBoardPlayTrend::getUpdateTime);
// Page<TBoardPlayTrend> page = this.tBoardPlayTrendService.page(getPage(), queryWrapper);
// for (TBoardPlayTrend tBoardPlayTrend : page.getRecords()) {
//
// }
// return getResult(page);
// }
//
// @ApiOperation(value = "获取展板播放趋势详情", notes = "获取展板播放趋势详情")
// @ApiImplicitParams({
// @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path")
// })
// @GetMapping("/get/{id}")
// @RequiresPermissions("t:board:play:trend:get:id")
// public Map<String, Object> getById(@PathVariable("id") String id) {
// TBoardPlayTrend tBoardPlayTrend = tBoardPlayTrendService.getById(id);
// return getResult(tBoardPlayTrend);
// }
//
//}
//
src/main/java/cn/wisenergy/chnmuseum/party/web/controller/TBoardStatisticController.java
0 → 100644
View file @
5ce1eabe
This diff is collapsed.
Click to expand it.
src/main/java/cn/wisenergy/chnmuseum/party/web/controller/TDistrictBoardStatisticController.java
0 → 100644
View file @
5ce1eabe
//package cn.wisenergy.chnmuseum.party.web.controller;
//
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
//import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
//import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController;
//import cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic;
//import cn.wisenergy.chnmuseum.party.service.TDistrictBoardStatisticService;
//import cn.wisenergy.chnmuseum.party.common.enums.AuditStatusEnum;
//import cn.wisenergy.chnmuseum.party.common.validator.groups.Add;
//import cn.wisenergy.chnmuseum.party.common.validator.groups.Update;
//import cn.wisenergy.chnmuseum.party.common.vo.GenericPageParam;
//
//import io.swagger.annotations.Api;
//import io.swagger.annotations.ApiImplicitParam;
//import io.swagger.annotations.ApiImplicitParams;
//import io.swagger.annotations.ApiOperation;
//
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.apache.shiro.authz.annotation.RequiresPermissions;
//import org.springframework.validation.annotation.Validated;
//import org.springframework.web.bind.annotation.*;
//import org.springframework.stereotype.Controller;
//
//import javax.annotation.Resource;
//import javax.validation.constraints.NotNull;
//import java.util.List;
//import java.util.Map;
//
///**
// * <pre>
// * 地区看板播放统计 前端控制器
// * </pre>
// *
// * @author Danny Lee
// * @since 2021-03-26
// */
//@Slf4j
//@RestController
//@RequestMapping("/tDistrictBoardStatistic")
//@Api(tags = {"地区看板播放统计操作接口"})
//public class TDistrictBoardStatisticController extends BaseController {
//
// @Resource
// private TDistrictBoardStatisticService tDistrictBoardStatisticService;
//
// @PostMapping("/batchSave")
// @RequiresPermissions("t:district:board:statistic:batch:save")
// @ApiOperation(value = "批量添加地区看板播放统计", notes = "批量添加地区看板播放统计")
// public Map<String, Object> batchSaveTDistrictBoardStatistic(@Validated(value = {Add.class}) List<TDistrictBoardStatistic> tDistrictBoardStatisticList) {
// // 保存业务节点信息
// boolean result = tDistrictBoardStatisticService.saveBatch(tDistrictBoardStatisticList);
// // 返回操作结果
// if (result) {
// return getSuccessResult();
// } else {
// // 保存失败
// return getFailResult();
// }
// }
//
// @PostMapping("/save")
// @RequiresPermissions("t:district:board:statistic:save")
// @ApiOperation(value = "添加地区看板播放统计", notes = "添加地区看板播放统计")
// public Map<String, Object> saveTDistrictBoardStatistic(@Validated(value = {Add.class}) TDistrictBoardStatistic tDistrictBoardStatistic) {
// // 保存业务节点信息
// boolean result = tDistrictBoardStatisticService.save(tDistrictBoardStatistic);
// // 返回操作结果
// if (result) {
// return getSuccessResult();
// } else {
// // 保存失败
// return getFailResult();
// }
// }
//
// @PutMapping("/update")
// @RequiresPermissions("t:district:board:statistic:update")
// @ApiOperation(value = "修改地区看板播放统计信息", notes = "修改地区看板播放统计信息")
// public Map<String, Object> updateTDistrictBoardStatistic(@Validated(value = {Update.class}) TDistrictBoardStatistic tDistrictBoardStatistic) {
// boolean flag = tDistrictBoardStatisticService.updateById(tDistrictBoardStatistic);
// if (flag) {
// return getSuccessResult();
// }
// return getFailResult();
// }
//
//// @PutMapping("/updateAuditStatus/{id}")
//// @RequiresPermissions("t:district:board:statistic:update:audit:status")
//// @ApiOperation(value = "更新地区看板播放统计审核状态", notes = "更新地区看板播放统计审核状态")
//// @ApiImplicitParams(value = {
//// @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path"),
//// @ApiImplicitParam(name = "status", value = "状态", paramType = "query", dataType = "String")
//// })
//// public Map<String, Object> updateStatus(@NotNull(message = "地区看板播放统计ID不能为空") @PathVariable("id") String id, @RequestParam("status") AuditStatusEnum status) {
//// UpdateWrapper<TDistrictBoardStatistic> updateWrapper = new UpdateWrapper<>();
//// updateWrapper.eq("id", id);
//// updateWrapper.eq("audit_status", status.name());
//// boolean flag = tDistrictBoardStatisticService.update(updateWrapper);
//// if (flag) {
//// return getSuccessResult();
//// }
//// return getFailResult();
//// }
//
// @DeleteMapping("/delete/{id}")
// @RequiresPermissions("t:district:board:statistic:delete")
// @ApiOperation(value = "根据ID删除地区看板播放统计", notes = "根据ID删除地区看板播放统计")
// @ApiImplicitParams(value = {
// @ApiImplicitParam(name = "id", value = "标识ID", paramType = "path", dataType = "String")
// })
// public Map<String, Object> deleteTDistrictBoardStatistic(@PathVariable("id") String id) {
// boolean result = tDistrictBoardStatisticService.removeById(id);
// if (result) {
// return getSuccessResult();
// }
// return getFailResult();
// }
//
// @GetMapping("/getList")
// @RequiresPermissions("t:district:board:statistic:list")
// @ApiOperation(value = "获取地区看板播放统计全部列表(无分页)", notes = "获取地区看板播放统计全部列表(无分页)")
// @ApiImplicitParams(value = {
// @ApiImplicitParam(name = "auditStatus", value = "审核状态", paramType = "query", dataType = "String")
// })
// public Map<String, Object> getTDistrictBoardStatisticList(@RequestParam(value = "auditStatus", defaultValue = "APPROVED_FINAL", required = false) AuditStatusEnum auditStatus) {
// List<TDistrictBoardStatistic> tDistrictBoardStatisticList = tDistrictBoardStatisticService.list();
// return getResult(tDistrictBoardStatisticList);
// }
//
// @ApiImplicitParams(value = {
// @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
// @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
// @ApiImplicitParam(name = "nameOrCode", value = "名称或编码", paramType = "query", dataType = "String"),
// @ApiImplicitParam(name = "startDate", value = "创建时间-开始", paramType = "query", dataType = "String"),
// @ApiImplicitParam(name = "endDate", value = "创建时间-结束", paramType = "query", dataType = "String")
// })
// @PostMapping("/getPageList")
// @RequiresPermissions("t:district:board:statistic:page")
// @ApiOperation(value = "获取地区看板播放统计分页列表", notes = "获取地区看板播放统计分页列表")
// public Map<String, Object> getTDistrictBoardStatisticPageList(GenericPageParam genericPageParam) {
// LambdaQueryWrapper<TDistrictBoardStatistic> queryWrapper = new LambdaQueryWrapper<>();
// // 对名称或编码模糊查询
//// if (StringUtils.isNotBlank(genericPageParam.getNameOrCode())) {
//// queryWrapper.like(TDistrictBoardStatistic::getName, genericPageParam.getNameOrCode());
//// }
//// // 根据创建时间区间检索
//// if (genericPageParam.getStartDate() != null && genericPageParam.getEndDate() != null) {
//// queryWrapper.ge(TDistrictBoardStatistic::getCreateTime, genericPageParam.getStartDate().atTime(0, 0, 0))
//// .le(TDistrictBoardStatistic::getCreateTime, genericPageParam.getEndDate().atTime(23, 59, 59));
//// }
//// // 设置排序规则
//// queryWrapper.orderByDesc(TDistrictBoardStatistic::getCreateTime);
//// // 设置查询内容
//// queryWrapper.select(
//// TDistrictBoardStatistic::getId,
//// TDistrictBoardStatistic::getName,
//// TDistrictBoardStatistic::getAuditStatus,
//// TDistrictBoardStatistic::getCreateTime,
//// TDistrictBoardStatistic::getUpdateTime);
// Page<TDistrictBoardStatistic> page = this.tDistrictBoardStatisticService.page(getPage(), queryWrapper);
// for (TDistrictBoardStatistic tDistrictBoardStatistic : page.getRecords()) {
//
// }
// return getResult(page);
// }
//
// @ApiOperation(value = "获取地区看板播放统计详情", notes = "获取地区看板播放统计详情")
// @ApiImplicitParams({
// @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path")
// })
// @GetMapping("/get/{id}")
// @RequiresPermissions("t:district:board:statistic:get:id")
// public Map<String, Object> getById(@PathVariable("id") String id) {
// TDistrictBoardStatistic tDistrictBoardStatistic = tDistrictBoardStatisticService.getById(id);
// return getResult(tDistrictBoardStatistic);
// }
//
//}
//
src/main/resources/mapper/TBoardPlayRankMapper.xml
0 → 100644
View file @
5ce1eabe
<?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=
"cn.wisenergy.chnmuseum.party.mapper.TBoardPlayRankMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.chnmuseum.party.model.TBoardPlayRank"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"board_id"
property=
"boardId"
/>
<result
column=
"board_name"
property=
"boardName"
/>
<result
column=
"play_number"
property=
"playNumber"
/>
<result
column=
"year"
property=
"year"
/>
<result
column=
"month"
property=
"month"
/>
<result
column=
"organ_id"
property=
"organId"
/>
<result
column=
"play_date"
property=
"playDate"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, board_id, board_name, play_number, year, month, organ_id, play_date
</sql>
</mapper>
src/main/resources/mapper/TBoardPlayTrendMapper.xml
0 → 100644
View file @
5ce1eabe
<?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=
"cn.wisenergy.chnmuseum.party.mapper.TBoardPlayTrendMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"board_id"
property=
"boardId"
/>
<result
column=
"board_name"
property=
"boardName"
/>
<result
column=
"play_number"
property=
"playNumber"
/>
<result
column=
"data_time"
property=
"dataTime"
/>
<result
column=
"organ_id"
property=
"organId"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, board_id, board_name, play_number, data_time, organ_id
</sql>
</mapper>
src/main/resources/mapper/TBoardStatisticMapper.xml
0 → 100644
View file @
5ce1eabe
<?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=
"cn.wisenergy.chnmuseum.party.mapper.TBoardStatisticMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.chnmuseum.party.model.TBoardStatistic"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"board_id"
property=
"boardId"
/>
<result
column=
"board_name"
property=
"boardName"
/>
<result
column=
"organ_id"
property=
"organId"
/>
<result
column=
"area_id"
property=
"areaId"
/>
<result
column=
"play_number"
property=
"playNumber"
/>
<result
column=
"play_date"
property=
"playDate"
/>
</resultMap>
<!-- 播放排行结果 -->
<resultMap
id=
"rankMap"
type=
"cn.wisenergy.chnmuseum.party.model.TBoardPlayRank"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"board_id"
property=
"boardId"
/>
<result
column=
"board_name"
property=
"boardName"
/>
<result
column=
"play_number"
property=
"playNumber"
/>
<result
column=
"play_date"
property=
"playDate"
/>
</resultMap>
<resultMap
id=
"trendMap"
type=
"cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend"
>
<result
column=
"play_number"
property=
"playNumber"
/>
<result
column=
"play_date"
property=
"playDate"
/>
</resultMap>
<!-- 地区看板统计 -->
<resultMap
id=
"districtMap"
type=
"cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic"
>
<result
column=
"area_name"
property=
"areaName"
/>
<result
column=
"play_number"
property=
"playNumber"
/>
<result
column=
"board_cnt"
property=
"boardCnt"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, board_id, board_name, organ_id, area_id, play_number, play_date
</sql>
<!-- 展板播放量统计 -->
<select
id=
"getBoardRankPageList"
parameterType=
"cn.wisenergy.chnmuseum.party.model.TBoardPlayRank"
resultMap=
"rankMap"
>
SELECT board_id,board_name,sum(play_number) play_number from t_board_statistic
<where>
<if
test=
"rank.playDate != null"
>
and play_date like concat( #{rank.playDate}, '%')
</if>
<if
test=
"rank.organId != null"
>
and organ_id = #{rank.organId}
</if>
</where>
GROUP BY board_id,board_name
ORDER BY sum(play_number) desc
</select>
<!-- 播放趋势统计 -->
<select
id=
"getBoardTrendPageList"
parameterType=
"cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend"
resultMap=
"trendMap"
>
<if
test=
"trend.playDate != null and trend.playDate.length() == 4"
>
SELECT sum(play_number) play_number,left(play_date,6) play_date from t_board_statistic
where left(play_date,4) = ${trend.playDate}
GROUP BY left(play_date,6)
ORDER BY left(play_date,6)
</if>
<if
test=
"trend.playDate != null and trend.playDate.length() == 6"
>
SELECT sum(play_number) play_number,play_date from t_board_statistic
where left(play_date,6) = ${trend.playDate}
GROUP BY play_date
ORDER BY play_date
</if>
</select>
<!-- 地区展板播放统计 -->
<select
id=
"getBoardDistrictPageList"
resultMap=
"districtMap"
>
SELECT a.name area_name,sum(play_number) play_number,count(board_id) board_cnt from t_board_statistic s
left join t_area a on s.area_id = a.id
GROUP BY area_id
order by sum(play_number) desc,count(board_id) desc
</select>
</mapper>
src/main/resources/mapper/TDistrictBoardStatisticMapper.xml
0 → 100644
View file @
5ce1eabe
<?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=
"cn.wisenergy.chnmuseum.party.mapper.TDistrictBoardStatisticMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"board_id"
property=
"boardId"
/>
<result
column=
"board_name"
property=
"boardName"
/>
<result
column=
"play_number"
property=
"playNumber"
/>
<result
column=
"year"
property=
"year"
/>
<result
column=
"month"
property=
"month"
/>
<result
column=
"organ_id"
property=
"organId"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
id, board_id, board_name, play_number, year, month, organ_id
</sql>
</mapper>
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