Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
涂亚平
/
subsidy
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 93b423e7
authored
Dec 17, 2021
by
涂亚平
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
审计功能
1 parent
62afc730
Show whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
645 additions
and
47 deletions
src/main/java/com/subsidy/controller/AdministerController.java
src/main/java/com/subsidy/controller/OprAdmDictController.java
src/main/java/com/subsidy/controller/OprMemDictController.java
src/main/java/com/subsidy/dto/opr/GetHistoryDTO.java
src/main/java/com/subsidy/mapper/OprAdmDictMapper.java
src/main/java/com/subsidy/mapper/OprMemDictMapper.java
src/main/java/com/subsidy/mapper/VodDictMapper.java
src/main/java/com/subsidy/model/OprAdmDictDO.java
src/main/java/com/subsidy/model/OprMemDictDO.java
src/main/java/com/subsidy/service/OprAdmDictService.java
src/main/java/com/subsidy/service/OprMemDictService.java
src/main/java/com/subsidy/service/impl/AdministerServiceImpl.java
src/main/java/com/subsidy/service/impl/ClassHourDictServiceImpl.java
src/main/java/com/subsidy/service/impl/ExerciseDictServiceImpl.java
src/main/java/com/subsidy/service/impl/MemberServiceImpl.java
src/main/java/com/subsidy/service/impl/OprAdmDictServiceImpl.java
src/main/java/com/subsidy/service/impl/OprMemDictServiceImpl.java
src/main/java/com/subsidy/util/DateFormatUtil.java
src/main/java/com/subsidy/vo/administer/UserRoleVO.java
src/main/java/com/subsidy/vo/opr/GetHistoryVO.java
src/main/resources/application-dev.properties
src/main/resources/application-prod.properties
src/main/resources/application.properties
src/main/resources/code.properties
src/main/resources/mapper/MemberMapper.xml
src/main/resources/mapper/OprAdmDictMapper.xml
src/main/resources/mapper/OprMemDictMapper.xml
src/main/resources/mapper/VodDictMapper.xml
src/main/java/com/subsidy/controller/AdministerController.java
View file @
93b423e
...
...
@@ -103,14 +103,14 @@ public class AdministerController {
@PostMapping
(
"classDetail"
)
@ApiOperation
(
"** 班级管理--班级成员 id 班级id userName"
)
@LoginRequired
(
value
=
{
ConstantUtils
.
ADMINISTER_TERMINATE
})
//
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public
ResponseVO
classDetail
(
@RequestBody
ClassDetailDTO
classDetailDTO
){
return
ResponseData
.
generateCreatedResponse
(
0
,
administerService
.
classDetail
(
classDetailDTO
));
}
@PostMapping
(
"exportClassDetail"
)
@ApiOperation
(
"** 班级管理--班级成员--导出 id 班级id userName"
)
//
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
//
@LoginRequired(value = {ConstantUtils.ADMINISTER_TERMINATE})
public
void
exportClassDetail
(
@RequestBody
ClassDetailDTO
classDetailDTO
)
throws
Exception
{
classDetailDTO
.
setFlag
(
true
);
administerService
.
exportClassDetail
(
classDetailDTO
);
...
...
@@ -200,4 +200,6 @@ public class AdministerController {
return
ResponseData
.
generateCreatedResponse
(
0
,
administerService
.
importMember
(
companyId
,
file
));
}
}
src/main/java/com/subsidy/controller/OprAdmDictController.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
controller
;
import
com.subsidy.common.ResponseData
;
import
com.subsidy.common.ResponseVO
;
import
com.subsidy.dto.opr.GetHistoryDTO
;
import
com.subsidy.service.OprAdmDictService
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
io.swagger.annotations.Api
;
/**
* <p>
* 审计表 前端控制器
* </p>
*
* @author DengMin
* @since 2021-12-13
*/
@RestController
@Api
(
tags
=
"后台审计表"
)
@RequestMapping
(
"/oprAdm"
)
public
class
OprAdmDictController
{
@Autowired
private
OprAdmDictService
oprAdmDictService
;
@PostMapping
(
"getHistory"
)
@ApiOperation
(
"获取后台用户审计 {pageSize pageNum userName startDate endDate}"
)
public
ResponseVO
getHistory
(
@RequestBody
GetHistoryDTO
getHistoryDTO
){
return
ResponseData
.
generateCreatedResponse
(
0
,
oprAdmDictService
.
getHistory
(
getHistoryDTO
));
}
}
src/main/java/com/subsidy/controller/OprMemDictController.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
controller
;
import
com.subsidy.common.ResponseData
;
import
com.subsidy.common.ResponseVO
;
import
com.subsidy.dto.opr.GetHistoryDTO
;
import
com.subsidy.service.OprMemDictService
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
io.swagger.annotations.Api
;
/**
* <p>
* 审计表 前端控制器
* </p>
*
* @author DengMin
* @since 2021-12-13
*/
@RestController
@Api
(
tags
=
"学员审计表"
)
@RequestMapping
(
"/oprMem"
)
public
class
OprMemDictController
{
@Autowired
private
OprMemDictService
oprMemDictService
;
@PostMapping
(
"getHistory"
)
@ApiOperation
(
"获取学员审计 {pageSize pageNum userName startDate endDate}"
)
public
ResponseVO
getHistory
(
@RequestBody
GetHistoryDTO
getHistoryDTO
){
return
ResponseData
.
generateCreatedResponse
(
0
,
oprMemDictService
.
getHistory
(
getHistoryDTO
));
}
}
src/main/java/com/subsidy/dto/opr/GetHistoryDTO.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
dto
.
opr
;
import
lombok.Data
;
@Data
public
class
GetHistoryDTO
{
private
Integer
pageNum
;
private
Integer
pageSize
;
private
String
userName
;
private
String
startDate
;
private
String
endDate
;
}
src/main/java/com/subsidy/mapper/OprAdmDictMapper.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
mapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.subsidy.model.OprAdmDictDO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.subsidy.vo.opr.GetHistoryVO
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
* <p>
* 审计表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-12-13
*/
@Repository
public
interface
OprAdmDictMapper
extends
BaseMapper
<
OprAdmDictDO
>
{
/**
* 查看管理员的登录审计
*/
IPage
<
GetHistoryVO
>
getHistory
(
IPage
page
,
String
userName
,
String
startDate
,
String
endDate
);
/**
* 查看某为成员最近登录情况 五天超过次数
*/
List
<
OprAdmDictDO
>
getLoginInfo
(
Long
userId
);
}
src/main/java/com/subsidy/mapper/OprMemDictMapper.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
mapper
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.subsidy.model.OprMemDictDO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.subsidy.vo.opr.GetHistoryVO
;
import
org.springframework.stereotype.Repository
;
/**
* <p>
* 审计表 Mapper 接口
* </p>
*
* @author DengMin
* @since 2021-12-13
*/
@Repository
public
interface
OprMemDictMapper
extends
BaseMapper
<
OprMemDictDO
>
{
IPage
<
GetHistoryVO
>
getHistory
(
IPage
page
,
String
userName
,
String
startDate
,
String
endDate
);
}
src/main/java/com/subsidy/mapper/VodDictMapper.java
View file @
93b423e
...
...
@@ -33,5 +33,5 @@ public interface VodDictMapper extends BaseMapper<VodDictDO> {
/**
* 获取某课程下,学习人数和平均学习时长
*/
ClassVodCompleteInfoVO
classVodCompleteInfo
(
Long
classId
,
List
<
Long
>
memberIds
,
String
vodName
);
ClassVodCompleteInfoVO
classVodCompleteInfo
(
Long
classId
,
L
ong
vodId
,
L
ist
<
Long
>
memberIds
,
String
vodName
);
}
src/main/java/com/subsidy/model/OprAdmDictDO.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
model
;
import
com.subsidy.util.BaseModel
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 审计表
* </p>
*
* @author DengMin
* @since 2021-12-13
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"opr_adm_dict"
)
public
class
OprAdmDictDO
extends
BaseModel
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 用户id
*/
private
Long
userId
;
/**
* 操作类型
*/
private
String
oprType
;
/**
* 登录结果
*/
private
Integer
result
;
}
src/main/java/com/subsidy/model/OprMemDictDO.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
model
;
import
com.subsidy.util.BaseModel
;
import
com.baomidou.mybatisplus.annotation.TableName
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 审计表
* </p>
*
* @author DengMin
* @since 2021-12-13
*/
@Data
@EqualsAndHashCode
(
callSuper
=
true
)
@TableName
(
"opr_mem_dict"
)
public
class
OprMemDictDO
extends
BaseModel
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"id"
,
type
=
IdType
.
AUTO
)
private
Long
id
;
/**
* 用户id
*/
private
Long
userId
;
/**
* 操作类型
*/
private
String
oprType
;
/**
* 登录结果
*/
private
Integer
result
;
}
src/main/java/com/subsidy/service/OprAdmDictService.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.subsidy.dto.opr.GetHistoryDTO
;
import
com.subsidy.model.OprAdmDictDO
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.subsidy.vo.opr.GetHistoryVO
;
/**
* <p>
* 审计表 服务类
* </p>
*
* @author DengMin
* @since 2021-12-13
*/
public
interface
OprAdmDictService
extends
IService
<
OprAdmDictDO
>
{
IPage
<
GetHistoryVO
>
getHistory
(
GetHistoryDTO
getHistoryDTO
);
}
src/main/java/com/subsidy/service/OprMemDictService.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
service
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.subsidy.dto.opr.GetHistoryDTO
;
import
com.subsidy.model.OprMemDictDO
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.subsidy.vo.opr.GetHistoryVO
;
/**
* <p>
* 审计表 服务类
* </p>
*
* @author DengMin
* @since 2021-12-13
*/
public
interface
OprMemDictService
extends
IService
<
OprMemDictDO
>
{
IPage
<
GetHistoryVO
>
getHistory
(
GetHistoryDTO
getHistoryDTO
);
}
src/main/java/com/subsidy/service/impl/AdministerServiceImpl.java
View file @
93b423e
...
...
@@ -14,7 +14,6 @@ import com.subsidy.model.*;
import
com.subsidy.service.AdministerService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.subsidy.util.*
;
import
com.subsidy.util.excel.ExcelColumn
;
import
com.subsidy.util.excel.ExcelUtil
;
import
com.subsidy.vo.administer.*
;
import
com.subsidy.vo.classdict.ClassDetailVO
;
...
...
@@ -49,7 +48,6 @@ import org.springframework.web.multipart.MultipartFile;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.*
;
import
java.lang.reflect.Member
;
import
java.math.BigDecimal
;
import
java.nio.charset.StandardCharsets
;
import
java.text.ParseException
;
...
...
@@ -109,6 +107,9 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
@Autowired
private
VodDictMapper
vodDictMapper
;
@Autowired
private
OprAdmDictMapper
oprAdmDictMapper
;
public
LoginVO
login
(
AdministerDO
administerDO
)
{
LoginVO
loginVO
=
new
LoginVO
();
...
...
@@ -117,13 +118,64 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
.
lambda
()
.
eq
(
AdministerDO:
:
getAccountName
,
administerDO
.
getAccountName
()));
/**
* 最近5次都输入失败,5分钟后再验证
*/
List
<
OprAdmDictDO
>
oprAdmDictDOS
=
oprAdmDictMapper
.
getLoginInfo
(
administerDO1
.
getId
());
boolean
flag
=
false
;
for
(
int
i
=
0
;
i
<
oprAdmDictDOS
.
size
();
i
++)
{
if
(
oprAdmDictDOS
.
get
(
i
).
getResult
()
==
1
)
{
flag
=
true
;
break
;
}
}
if
(!
flag
&&
oprAdmDictDOS
.
size
()
>=
4
)
{
throw
new
HttpException
(
10016
);
}
if
(
null
!=
administerDO1
)
{
if
(
administerDO
.
getPassword
().
equals
(
administerDO1
.
getPassword
()))
{
String
token
=
JwtUtil
.
generateToken
(
administerDO1
.
getId
(),
ConstantUtils
.
ADMINISTER_TERMINATE
);
//登录成功,记录日志
OprAdmDictDO
oprAdmDictDO
=
new
OprAdmDictDO
();
oprAdmDictDO
.
setUserId
(
administerDO1
.
getId
());
oprAdmDictDO
.
setOprType
(
"登录"
);
oprAdmDictDO
.
setResult
(
1
);
oprAdmDictMapper
.
insert
(
oprAdmDictDO
);
loginVO
.
setToken
(
token
);
return
loginVO
;
}
else
{
throw
new
HttpException
(
10004
);
//登录失败,记录日志
OprAdmDictDO
oprAdmDictDO
=
new
OprAdmDictDO
();
oprAdmDictDO
.
setUserId
(
administerDO1
.
getId
());
oprAdmDictDO
.
setOprType
(
"登录"
);
oprAdmDictDO
.
setResult
(
0
);
oprAdmDictMapper
.
insert
(
oprAdmDictDO
);
int
i
=
0
;
for
(
OprAdmDictDO
oad
:
oprAdmDictDOS
)
{
if
(
oad
.
getResult
()
==
1
)
{
break
;
}
i
++;
}
if
(
i
==
0
)
{
throw
new
HttpException
(
10024
);
}
else
if
(
i
==
1
)
{
throw
new
HttpException
(
10023
);
}
else
if
(
i
==
2
)
{
throw
new
HttpException
(
10022
);
}
else
if
(
i
==
3
){
throw
new
HttpException
(
10021
);
}
else
{
throw
new
HttpException
(
10016
);
}
}
}
else
{
throw
new
HttpException
(
10011
);
...
...
@@ -347,26 +399,25 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
classDetailVO
.
setStudyVodCounts
(
i
);
//学生测试完成情况 多套卷子各返回最高成绩
List
<
GetMaxScoreVO
>
getMaxScoreVOS
=
exerciseDoneResultMapper
.
getMaxScore
(
classDictDO
.
getId
(),
classDetailVO
.
getId
());
List
<
GetMaxScoreVO
>
getMaxScoreVOS
=
exerciseDoneResultMapper
.
getMaxScore
(
classDictDO
.
getId
(),
classDetailVO
.
getId
());
classDetailVO
.
setGetMaxScoreVOS
(
getMaxScoreVOS
);
Boolean
flag
=
true
;
if
(
getMaxScoreVOS
.
size
()
>
0
)
{
for
(
GetMaxScoreVO
getMaxScoreVO
:
getMaxScoreVOS
){
if
(
getMaxScoreVO
.
getScore
()
<
60
)
{
if
(
getMaxScoreVOS
.
size
()
>
0
)
{
for
(
GetMaxScoreVO
getMaxScoreVO
:
getMaxScoreVOS
)
{
if
(
getMaxScoreVO
.
getScore
()
<
60
)
{
flag
=
false
;
}
}
}
else
{
}
else
{
flag
=
false
;
}
if
(
flag
){
if
(
flag
&&
i
==
vodDictDOS
.
size
())
{
classDetailVO
.
setResult
(
"合格"
);
}
else
{
}
else
{
classDetailVO
.
setResult
(
"不合格"
);
}
...
...
@@ -393,7 +444,7 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
}
public
List
<
ClassDetailVO
>
exportClassDetail
(
ClassDetailDTO
classDetailDTO
)
throws
Exception
{
Page
pager
=
new
Page
(
1
,
10000000
);
Page
pager
=
new
Page
(
1
,
-
1L
);
IPage
<
ClassDetailVO
>
classDetailVOIPage
=
this
.
baseMapper
.
classMembers
(
pager
,
classDetailDTO
.
getId
(),
classDetailDTO
.
getUserName
());
List
<
ClassDetailVO
>
classDetailVOS
=
classDetailVOIPage
.
getRecords
();
...
...
@@ -435,29 +486,29 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
classDetailVO
.
setClassProcess
(
i
+
"/"
+
vodDictDOS
.
size
());
//学生测试完成情况 多套卷子各返回最高成绩
List
<
GetMaxScoreVO
>
getMaxScoreVOS
=
exerciseDoneResultMapper
.
getMaxScore
(
classDictDO
.
getId
(),
classDetailVO
.
getId
());
List
<
GetMaxScoreVO
>
getMaxScoreVOS
=
exerciseDoneResultMapper
.
getMaxScore
(
classDictDO
.
getId
(),
classDetailVO
.
getId
());
classDetailVO
.
setGetMaxScoreVOS
(
getMaxScoreVOS
);
Boolean
flag
=
true
;
StringBuilder
stringBuilder
=
new
StringBuilder
();
if
(
getMaxScoreVOS
.
size
()
>
0
)
{
for
(
GetMaxScoreVO
getMaxScoreVO
:
getMaxScoreVOS
){
stringBuilder
.
append
(
getMaxScoreVO
.
getPaperName
()
+
":"
+
getMaxScoreVO
.
getScore
());
if
(
getMaxScoreVO
.
getScore
()
<
60
)
{
if
(
getMaxScoreVOS
.
size
()
>
0
)
{
for
(
GetMaxScoreVO
getMaxScoreVO
:
getMaxScoreVOS
)
{
stringBuilder
.
append
(
getMaxScoreVO
.
getPaperName
()
+
":"
+
getMaxScoreVO
.
getScore
());
if
(
getMaxScoreVO
.
getScore
()
<
60
)
{
flag
=
false
;
}
stringBuilder
.
append
(
" "
);
}
}
else
{
}
else
{
flag
=
false
;
}
if
(
flag
)
{
if
(
flag
&&
i
==
vodDictDOS
.
size
())
{
classDetailVO
.
setResult
(
"合格"
);
}
else
{
}
else
{
classDetailVO
.
setResult
(
"不合格"
);
}
...
...
@@ -558,7 +609,7 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
}
public
List
<
ClassSignVO
>
exportSignDetail
(
ClassDetailDTO
classDetailDTO
)
throws
Exception
{
Page
pager
=
new
Page
(
1
,
1000000
);
Page
pager
=
new
Page
(
1
,
-
1L
);
IPage
<
ClassSignVO
>
classSignVOIPage
=
this
.
baseMapper
.
classSign
(
pager
,
classDetailDTO
.
getId
(),
classDetailDTO
.
getUserName
());
List
<
ClassSignVO
>
classSignVOS
=
classSignVOIPage
.
getRecords
();
...
...
@@ -661,7 +712,7 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
}
public
List
<
ExerciseTestVO
>
exportExerciseTest
(
ClassDetailDTO
classDetailDTO
)
throws
Exception
{
Page
pager
=
new
Page
(
0
,
1000000
);
Page
pager
=
new
Page
(
0
,
-
1L
);
IPage
<
ExerciseTestVO
>
exerciseTestVOIPage
=
this
.
baseMapper
.
exerciseTest
(
pager
,
classDetailDTO
.
getId
(),
classDetailDTO
.
getUserName
());
List
<
ExerciseTestVO
>
exerciseTestVOS
=
exerciseTestVOIPage
.
getRecords
();
...
...
@@ -708,7 +759,7 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
}
public
List
<
AnswerRecordVO
>
exportAnswerRecord
(
ClassDetailDTO
classDetailDTO
)
throws
Exception
{
Page
pager
=
new
Page
(
1
,
1000000
);
Page
pager
=
new
Page
(
1
,
-
1L
);
IPage
iPage
=
this
.
baseMapper
.
answerRecord
(
pager
,
classDetailDTO
.
getId
(),
classDetailDTO
.
getUserName
());
List
<
AnswerRecordVO
>
answerRecordVOS
=
iPage
.
getRecords
();
...
...
@@ -728,11 +779,11 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
//获取班级成员
List
<
Long
>
memberIds
=
classMemberMappingMapper
.
getClassMembers
(
classVodInfoDTO
.
getClassId
());
List
<
VodDictDO
>
vodDictDOS
=
vodDictMapper
.
getCourseVods
(
classVodInfoDTO
.
getCourseId
(),
classVodInfoDTO
.
getVodName
());
List
<
VodDictDO
>
vodDictDOS
=
vodDictMapper
.
getCourseVods
(
classVodInfoDTO
.
getCourseId
(),
classVodInfoDTO
.
getVodName
());
for
(
VodDictDO
vodDictDO
:
vodDictDOS
)
{
//获取这个视频的学习人数和平均学习时长
ClassVodCompleteInfoVO
classVodCompleteInfoVO
=
vodDictMapper
.
classVodCompleteInfo
(
classVodInfoDTO
.
getClassId
(),
memberIds
,
classVodInfoDTO
.
getVodName
());
ClassVodCompleteInfoVO
classVodCompleteInfoVO
=
vodDictMapper
.
classVodCompleteInfo
(
classVodInfoDTO
.
getClassId
(),
vodDictDO
.
getId
(),
memberIds
,
classVodInfoDTO
.
getVodName
());
ClassVodInfoVO
classVodInfoVO
=
new
ClassVodInfoVO
();
classVodInfoVO
.
setVodName
(
vodDictDO
.
getVodName
());
classVodInfoVO
.
setStudyCnt
(
classVodCompleteInfoVO
.
getCnt
());
...
...
@@ -897,9 +948,9 @@ public class AdministerServiceImpl extends ServiceImpl<AdministerMapper, Adminis
.
eq
(
MemberDO:
:
getCompanyId
,
companyId
));
if
(
memberDOS
.
size
()
>
0
)
{
String
usernames
=
userName
(
accountName
,
0
,
companyId
);
memberDO1
.
setAccountName
(
usernames
.
replace
(
"u:"
,
"v"
));
memberDO1
.
setAccountName
(
usernames
.
replace
(
"u:"
,
"v"
));
}
else
{
memberDO1
.
setAccountName
(
accountName
.
replace
(
"u:"
,
"v"
));
memberDO1
.
setAccountName
(
accountName
.
replace
(
"u:"
,
"v"
));
}
}
catch
(
BadHanyuPinyinOutputFormatCombination
ex
)
{
...
...
src/main/java/com/subsidy/service/impl/ClassHourDictServiceImpl.java
View file @
93b423e
package
com
.
subsidy
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.subsidy.mapper.MemberMapper
;
import
com.subsidy.mapper.VodPlayHistoryMapper
;
import
com.subsidy.model.ClassHourDictDO
;
import
com.subsidy.mapper.ClassHourDictMapper
;
import
com.subsidy.model.MemberDO
;
import
com.subsidy.model.VodPlayHistoryDO
;
import
com.subsidy.service.ClassHourDictService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
...
...
@@ -32,6 +34,9 @@ public class ClassHourDictServiceImpl extends ServiceImpl<ClassHourDictMapper, C
@Autowired
private
VodPlayHistoryMapper
vodPlayHistoryMapper
;
@Autowired
private
MemberMapper
memberMapper
;
public
ClassHourDictDO
getSetting
(
ClassHourDictDO
classHourDictDO
)
{
ClassHourDictDO
classHourDictDO1
=
this
.
baseMapper
.
selectOne
(
new
QueryWrapper
<
ClassHourDictDO
>()
.
lambda
()
...
...
@@ -62,10 +67,14 @@ public class ClassHourDictServiceImpl extends ServiceImpl<ClassHourDictMapper, C
PollingGetVO
pollingGetVO
=
new
PollingGetVO
();
MemberDO
memberDO
=
memberMapper
.
selectById
(
vodPlayHistoryDO
.
getMemberId
());
//查看系统设定的时长
ClassHourDictDO
classHourDictDO
=
classHourDictMapper
.
selectOne
(
new
QueryWrapper
<
ClassHourDictDO
>()
.
lambda
()
.
eq
(
ClassHourDictDO:
:
getStatus
,
1
));
.
eq
(
ClassHourDictDO:
:
getStatus
,
1
)
.
eq
(
ClassHourDictDO:
:
getCompanyId
,
memberDO
.
getCompanyId
()));
if
(
null
==
classHourDictDO
){
pollingGetVO
.
setBool
(
false
);
return
pollingGetVO
;
...
...
src/main/java/com/subsidy/service/impl/ExerciseDictServiceImpl.java
View file @
93b423e
...
...
@@ -135,10 +135,10 @@ public class ExerciseDictServiceImpl extends ServiceImpl<ExerciseDictMapper, Exe
exerciseDoneResultDO
.
setResult
(
"不合格"
);
}
exerciseDoneResultMapper
.
delete
(
new
QueryWrapper
<
ExerciseDoneResultDO
>()
.
lambda
()
.
eq
(
ExerciseDoneResultDO:
:
getMemberId
,
submitDTO
.
getMemberId
())
.
eq
(
ExerciseDoneResultDO:
:
getCourseId
,
submitDTO
.
getCourseId
()));
//
exerciseDoneResultMapper.delete(new QueryWrapper<ExerciseDoneResultDO>()
//
.lambda()
//
.eq(ExerciseDoneResultDO::getMemberId, submitDTO.getMemberId())
//
.eq(ExerciseDoneResultDO::getCourseId, submitDTO.getCourseId()));
exerciseDoneResultMapper
.
insert
(
exerciseDoneResultDO
);
...
...
src/main/java/com/subsidy/service/impl/MemberServiceImpl.java
View file @
93b423e
...
...
@@ -80,6 +80,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
@Autowired
private
ClassHourDictMapper
classHourDictMapper
;
@Autowired
private
OprMemDictMapper
oprMemDictMapper
;
public
IPage
<
GetAllVO
>
getAll
(
GetAllDTO
getAllDTO
)
{
Page
pager
=
new
Page
(
getAllDTO
.
getPageNum
(),
getAllDTO
.
getPageSize
());
IPage
iPage
=
this
.
baseMapper
.
getMembers
(
pager
,
getAllDTO
.
getDepartmentId
(),
getAllDTO
.
getUserName
(),
getAllDTO
.
getStatus
());
...
...
@@ -205,6 +208,11 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
}
if
(
"冻结"
.
equals
(
memberDO
.
getStatus
()))
{
OprMemDictDO
oprMemDictDO
=
new
OprMemDictDO
();
oprMemDictDO
.
setUserId
(
memberDO
.
getId
());
oprMemDictDO
.
setOprType
(
"登录"
);
oprMemDictDO
.
setResult
(
0
);
oprMemDictMapper
.
insert
(
oprMemDictDO
);
throw
new
HttpException
(
10013
);
}
...
...
@@ -221,22 +229,54 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, MemberDO> imple
.
eq
(
SmsVerifyCodeDO:
:
getVerifyCode
,
verifyCodeDTO
.
getVerifyCode
())
.
gt
(
SmsVerifyCodeDO:
:
getCreateDate
,
LocalDateTime
.
now
().
minusMinutes
(
30L
)));
if
(
smsCodeDO
==
null
)
{
OprMemDictDO
oprMemDictDO
=
new
OprMemDictDO
();
oprMemDictDO
.
setUserId
(
memberDO
.
getId
());
oprMemDictDO
.
setOprType
(
"登录"
);
oprMemDictDO
.
setResult
(
0
);
oprMemDictMapper
.
insert
(
oprMemDictDO
);
throw
new
HttpException
(
70010
);
}
OprMemDictDO
oprMemDictDO
=
new
OprMemDictDO
();
oprMemDictDO
.
setUserId
(
memberDO
.
getId
());
oprMemDictDO
.
setOprType
(
"登录"
);
oprMemDictDO
.
setResult
(
1
);
oprMemDictMapper
.
insert
(
oprMemDictDO
);
return
userRoleVO
;
}
public
UserRoleVO
passwordLogin
(
PasswordLoginDTO
passwordLoginDTO
)
{
UserRoleVO
userRoleVO
=
this
.
baseMapper
.
passwordLogin
(
passwordLoginDTO
);
if
(
userRoleVO
==
null
)
{
throw
new
HttpException
(
10004
);
throw
new
HttpException
(
10017
);
}
if
(!
userRoleVO
.
getPassword
().
equals
(
passwordLoginDTO
.
getPassword
())){
OprMemDictDO
oprMemDictDO
=
new
OprMemDictDO
();
oprMemDictDO
.
setUserId
(
userRoleVO
.
getId
());
oprMemDictDO
.
setOprType
(
"登录"
);
oprMemDictDO
.
setResult
(
0
);
oprMemDictMapper
.
insert
(
oprMemDictDO
);
throw
new
HttpException
(
10016
);
}
if
(
0
==
userRoleVO
.
getFirstLogin
()){
OprMemDictDO
oprMemDictDO
=
new
OprMemDictDO
();
oprMemDictDO
.
setUserId
(
userRoleVO
.
getId
());
oprMemDictDO
.
setOprType
(
"登录"
);
oprMemDictDO
.
setResult
(
0
);
oprMemDictMapper
.
insert
(
oprMemDictDO
);
throw
new
HttpException
(
10015
);
}
if
(
"冻结"
.
equals
(
userRoleVO
.
getStatus
()))
{
throw
new
HttpException
(
10014
);
}
if
(
0
==
userRoleVO
.
getFirstLogin
())
{
throw
new
HttpException
(
10015
);
}
OprMemDictDO
oprMemDictDO
=
new
OprMemDictDO
();
oprMemDictDO
.
setUserId
(
userRoleVO
.
getId
());
oprMemDictDO
.
setOprType
(
"登录"
);
oprMemDictDO
.
setResult
(
1
);
oprMemDictMapper
.
insert
(
oprMemDictDO
);
return
userRoleVO
;
}
...
...
src/main/java/com/subsidy/service/impl/OprAdmDictServiceImpl.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.subsidy.dto.opr.GetHistoryDTO
;
import
com.subsidy.model.OprAdmDictDO
;
import
com.subsidy.mapper.OprAdmDictMapper
;
import
com.subsidy.service.OprAdmDictService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.subsidy.vo.opr.GetHistoryVO
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 审计表 服务实现类
* </p>
*
* @author DengMin
* @since 2021-12-13
*/
@Service
public
class
OprAdmDictServiceImpl
extends
ServiceImpl
<
OprAdmDictMapper
,
OprAdmDictDO
>
implements
OprAdmDictService
{
public
IPage
<
GetHistoryVO
>
getHistory
(
GetHistoryDTO
getHistoryDTO
){
Page
pager
=
new
Page
(
getHistoryDTO
.
getPageNum
(),
getHistoryDTO
.
getPageSize
());
return
this
.
baseMapper
.
getHistory
(
pager
,
getHistoryDTO
.
getUserName
(),
getHistoryDTO
.
getStartDate
(),
getHistoryDTO
.
getEndDate
());
}
}
src/main/java/com/subsidy/service/impl/OprMemDictServiceImpl.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.subsidy.dto.opr.GetHistoryDTO
;
import
com.subsidy.model.OprMemDictDO
;
import
com.subsidy.mapper.OprMemDictMapper
;
import
com.subsidy.service.OprMemDictService
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.subsidy.vo.opr.GetHistoryVO
;
import
org.springframework.stereotype.Service
;
/**
* <p>
* 审计表 服务实现类
* </p>
*
* @author DengMin
* @since 2021-12-13
*/
@Service
public
class
OprMemDictServiceImpl
extends
ServiceImpl
<
OprMemDictMapper
,
OprMemDictDO
>
implements
OprMemDictService
{
public
IPage
<
GetHistoryVO
>
getHistory
(
GetHistoryDTO
getHistoryDTO
){
Page
pager
=
new
Page
(
getHistoryDTO
.
getPageNum
(),
getHistoryDTO
.
getPageSize
());
return
this
.
baseMapper
.
getHistory
(
pager
,
getHistoryDTO
.
getUserName
(),
getHistoryDTO
.
getStartDate
(),
getHistoryDTO
.
getEndDate
());
}
}
src/main/java/com/subsidy/util/DateFormatUtil.java
View file @
93b423e
package
com
.
subsidy
.
util
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.time.ZonedDateTime
;
import
java.util.Date
;
/**
...
...
@@ -73,4 +76,13 @@ public class DateFormatUtil {
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"s m H d M ? yyyy"
);
return
sdf
.
format
(
date
);
}
public
static
Date
localDateTimeToDate
(
LocalDateTime
dateTime
)
{
if
(
dateTime
==
null
)
{
return
null
;
}
ZoneId
zoneId
=
ZoneId
.
systemDefault
();
ZonedDateTime
zdt
=
dateTime
.
atZone
(
zoneId
);
return
Date
.
from
(
zdt
.
toInstant
());
}
}
src/main/java/com/subsidy/vo/administer/UserRoleVO.java
View file @
93b423e
...
...
@@ -17,5 +17,7 @@ public class UserRoleVO {
private
Integer
firstLogin
;
private
String
password
;
}
src/main/java/com/subsidy/vo/opr/GetHistoryVO.java
0 → 100644
View file @
93b423e
package
com
.
subsidy
.
vo
.
opr
;
import
lombok.Data
;
@Data
public
class
GetHistoryVO
{
private
Integer
id
;
private
String
userName
;
private
String
companyName
;
private
String
oprType
;
private
String
createDate
;
private
String
result
;
}
src/main/resources/application-dev.properties
View file @
93b423e
# 本地环境配置
# 数据源配置
spring.datasource.url
=
jdbc:mysql://
116.62.57.92:3306/subsidy_test
?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.url
=
jdbc:mysql://
47.97.19.66:3306/subsidy
?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
spring.datasource.type
=
com.alibaba.druid.pool.DruidDataSource
spring.datasource.driver-class-
name
=
com.mysql.cj.jdbc.Driver
#spring.datasource.username=ykadmin_new
...
...
src/main/resources/application-prod.properties
View file @
93b423e
...
...
@@ -27,7 +27,7 @@ mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
spring.servlet.multipart.max-file-
size
=
2048KB
spring.servlet.multipart.max-request-
size
=
4098KB
wechat.appId
=
wx7785293ff5e31f14
wechat.appSecret
=
25d57cad61fc1b45b3afa46d4c35e8f6
wechat.msgUrl
=
https://teachai.youkehulian.com/login
wechat.templateId
=
Z1HNPLOrKiHEjfR1KMP-cC-uH3BWqDJIHv365Ev20yQ
#
wechat.appId= wx7785293ff5e31f14
#
wechat.appSecret= 25d57cad61fc1b45b3afa46d4c35e8f6
#
wechat.msgUrl= https://teachai.youkehulian.com/login
#
wechat.templateId= Z1HNPLOrKiHEjfR1KMP-cC-uH3BWqDJIHv365Ev20yQ
src/main/resources/application.properties
View file @
93b423e
# 环境配置
spring.profiles.active
=
prod
spring.profiles.active
=
dev
# 端口号
spring.server.port
=
23454
#嵌入tomcat配置
...
...
src/main/resources/code.properties
View file @
93b423e
...
...
@@ -9,6 +9,12 @@ meishu.code-message[10011]=成员信息不存在
meishu.code-message[10013]=账户已冻结,请联系账户管理员
meishu.code-message[10014]=该成员已存在,请勿重复添加
meishu.code-message[10015]=首次登录请使用验证码登录
meishu.code-message[10016]=密码输入错误,请稍后再试
meishu.code-message[10017]=该公司不存在该员工
meishu.code-message[10021]=密码输入错误,您还可以输入1次密码
meishu.code-message[10022]=密码输入错误,您还可以输入2次密码
meishu.code-message[10023]=密码输入错误,您还可以输入3次密码
meishu.code-message[10024]=密码输入错误,您还可以输入4次密码
meishu.code-message[20001]=该课程已存在
...
...
src/main/resources/mapper/MemberMapper.xml
View file @
93b423e
...
...
@@ -31,13 +31,13 @@
t.user_name,
t.image,
t.status,
t.first_login
t.first_login,
t.password
FROM
member t
WHERE
t.delete_date IS NULL
AND t.account_name = #{accountName}
AND t.PASSWORD = #{password}
AND t.company_id =#{companyId}
</select>
...
...
src/main/resources/mapper/OprAdmDictMapper.xml
0 → 100644
View file @
93b423e
<?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.subsidy.mapper.OprAdmDictMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"com.subsidy.model.OprAdmDictDO"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"create_date"
property=
"createDate"
/>
<result
column=
"update_date"
property=
"updateDate"
/>
<result
column=
"delete_date"
property=
"deleteDate"
/>
<result
column=
"user_id"
property=
"userId"
/>
<result
column=
"opr_type"
property=
"oprType"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
create_date,
update_date,
delete_date,
id, user_id, opr_type
</sql>
<select
id=
"getHistory"
resultType=
"com.subsidy.vo.opr.GetHistoryVO"
>
SELECT
t.id,
t2.account_name as userName,
t3.company_name,
t.opr_type,
t.create_date,
t.result
FROM
opr_adm_dict t
LEFT JOIN administer t2 ON t.user_id = t2.id
LEFT JOIN company_dict t3 ON t2.company_id = t3.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
AND t3.delete_date IS NULL
<if
test=
"userName != null and userName !=''"
>
and t2.account_name like concat('%',#{userName} ,'%')
</if>
AND DATE_FORMAT( t.create_date, '%Y-%m-%d' ) BETWEEN DATE_FORMAT( #{startDate}, '%Y-%m-%d' )
AND DATE_FORMAT( #{endDate}, '%Y-%m-%d' )
ORDER BY
t.create_date DESC
</select>
<select
id=
"getLoginInfo"
parameterType=
"long"
resultType=
"com.subsidy.model.OprAdmDictDO"
>
SELECT
*
FROM
(
SELECT
*
FROM
opr_adm_dict t
where t.delete_date is null
and t.user_id = #{userId}
and DATE_FORMAT(t.create_date,'%Y-%m-%d') =DATE_FORMAT(now(), '%Y-%m-%d')
and TIMESTAMPDIFF(SECOND,t.create_date,now())
<
= 300
ORDER BY
t.create_date DESC
LIMIT 5)t2
</select>
</mapper>
src/main/resources/mapper/OprMemDictMapper.xml
0 → 100644
View file @
93b423e
<?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.subsidy.mapper.OprMemDictMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"com.subsidy.model.OprMemDictDO"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"create_date"
property=
"createDate"
/>
<result
column=
"update_date"
property=
"updateDate"
/>
<result
column=
"delete_date"
property=
"deleteDate"
/>
<result
column=
"user_id"
property=
"userId"
/>
<result
column=
"opr_type"
property=
"oprType"
/>
</resultMap>
<!-- 通用查询结果列 -->
<sql
id=
"Base_Column_List"
>
create_date,
update_date,
delete_date,
id, user_id, opr_type
</sql>
<select
id=
"getHistory"
resultType=
"com.subsidy.vo.opr.GetHistoryVO"
>
SELECT
t.id,
t2.user_name,
t3.company_name,
t.opr_type,
t.create_date,
t.result
FROM
opr_mem_dict t
LEFT JOIN member t2 ON t.user_id = t2.id
LEFT JOIN company_dict t3 ON t2.company_id = t3.id
WHERE
t.delete_date IS NULL
AND t2.delete_date IS NULL
AND t3.delete_date IS NULL
<if
test=
"userName != null and userName !=''"
>
and t2.user_name like concat('%',#{userName} ,'%')
</if>
AND DATE_FORMAT( t.create_date, '%Y-%m-%d' ) BETWEEN DATE_FORMAT( #{startDate}, '%Y-%m-%d' )
AND DATE_FORMAT( #{endDate}, '%Y-%m-%d' )
ORDER BY
t.create_date DESC
</select>
</mapper>
src/main/resources/mapper/VodDictMapper.xml
View file @
93b423e
...
...
@@ -65,6 +65,7 @@
vod_play_history t
WHERE
t.class_id = #{classId}
and t.vod_id = #{vodId}
AND t.member_id IN
<foreach
collection=
"memberIds"
item=
"id"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{id}
...
...
Write
Preview
Markdown
is supported
Attach a file
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 post a comment