|
@@ -16,6 +16,7 @@ import org.brynhild.graduation.user.factory.SpecificationFactory
|
|
|
import org.brynhild.graduation.user.service.IAdminService
|
|
|
import org.springframework.beans.factory.annotation.Autowired
|
|
|
import org.springframework.stereotype.Service
|
|
|
+import org.springframework.transaction.annotation.Transactional
|
|
|
|
|
|
@Service
|
|
|
class AdminServiceImpl implements IAdminService {
|
|
@@ -45,7 +46,7 @@ class AdminServiceImpl implements IAdminService {
|
|
|
@Override
|
|
|
Result addUser(AdminAddUser info, String token) {
|
|
|
def claims = jwtUtil.parseJWT(token)
|
|
|
- def id = Long.parseLong(claims.getId())
|
|
|
+ def id = Long.parseLong(claims.get(AccountConstant.TOKEN_ID) as String)
|
|
|
def name = claims.get(AccountConstant.TOKEN_NAME)
|
|
|
|
|
|
def user = userRepository.findUserByUsernameOrNo(info.username, info.no)
|
|
@@ -68,7 +69,7 @@ class AdminServiceImpl implements IAdminService {
|
|
|
@Override
|
|
|
Result modifyUser(AdminModifyUser info, String token) {
|
|
|
def claims = jwtUtil.parseJWT(token)
|
|
|
- def id = Long.parseLong(claims.getId())
|
|
|
+ def id = Long.parseLong(claims.get(AccountConstant.TOKEN_ID) as String)
|
|
|
def name = claims.get(AccountConstant.TOKEN_NAME)
|
|
|
|
|
|
def optional = userRepository.findById(info.id)
|
|
@@ -89,24 +90,33 @@ class AdminServiceImpl implements IAdminService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
Result deleteUser(AdminDeleteUser info, String token) {
|
|
|
def claims = jwtUtil.parseJWT(token)
|
|
|
- def id = Long.parseLong(claims.getId())
|
|
|
+ def id = Long.parseLong(claims.get(AccountConstant.TOKEN_ID) as String)
|
|
|
def name = claims.get(AccountConstant.TOKEN_NAME)
|
|
|
|
|
|
- def optional = userRepository.findById(info.id)
|
|
|
- if (optional.isEmpty()) {
|
|
|
- return new Result(false, "删除失败,无此用户")
|
|
|
+ List<OperationLog> operationLogList = new ArrayList<>()
|
|
|
+ for (Long userId : info.id) {
|
|
|
+ def optional = userRepository.findById(userId)
|
|
|
+ if (optional.isEmpty()) {
|
|
|
+ throw new IllegalArgumentException("没有这个用户")
|
|
|
+ }
|
|
|
+ def user = optional.get()
|
|
|
+ def log = new OperationLog()
|
|
|
+ log.operatorName = name
|
|
|
+ log.operatorId = id
|
|
|
+ log.targetName = user.name
|
|
|
+ log.targetId = user.id
|
|
|
+ log.description = "管理员${id}->${name}删除了用户${user.id}->${user.name}"
|
|
|
+ userRepository.logicDelete(user.id)
|
|
|
+ operationLogList.add(log)
|
|
|
}
|
|
|
- def user = optional.get()
|
|
|
- def log = new OperationLog()
|
|
|
- log.operatorName = name
|
|
|
- log.operatorId = id
|
|
|
- log.targetName = user.name
|
|
|
- log.targetId = user.id
|
|
|
- log.description = "管理员${id}->${name}删除了用户${user.id}->${user.name}"
|
|
|
- userRepository.logicDelete(user.id)
|
|
|
- logSender.sendOperationLog(log)
|
|
|
+
|
|
|
+ for (OperationLog log : operationLogList) {
|
|
|
+ logSender.sendOperationLog(log)
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
return new Result(true, "删除成功")
|
|
|
}
|
|
@@ -120,7 +130,7 @@ class AdminServiceImpl implements IAdminService {
|
|
|
@Override
|
|
|
Result addAcademy(AdminAddAcademy info, String token) {
|
|
|
def claims = jwtUtil.parseJWT(token)
|
|
|
- def id = Long.parseLong(claims.getId())
|
|
|
+ def id = Long.parseLong(claims.get(AccountConstant.TOKEN_ID) as String)
|
|
|
def name = claims.get(AccountConstant.TOKEN_NAME)
|
|
|
def academy = academyRepository.findAcademyByNameOrNo(info.name, info.no)
|
|
|
if (academy != null) {
|
|
@@ -141,7 +151,7 @@ class AdminServiceImpl implements IAdminService {
|
|
|
@Override
|
|
|
Result modifyAcademy(AdminModifyAcademy info, String token) {
|
|
|
def claims = jwtUtil.parseJWT(token)
|
|
|
- def id = Long.parseLong(claims.getId())
|
|
|
+ def id = Long.parseLong(claims.get(AccountConstant.TOKEN_ID) as String)
|
|
|
def name = claims.get(AccountConstant.TOKEN_NAME)
|
|
|
|
|
|
def optional = academyRepository.findById(info.id)
|
|
@@ -162,24 +172,35 @@ class AdminServiceImpl implements IAdminService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
Result deleteAcademy(AdminDeleteAcademy info, String token) {
|
|
|
def claims = jwtUtil.parseJWT(token)
|
|
|
- def id = Long.parseLong(claims.getId())
|
|
|
+ def id = Long.parseLong(claims.get(AccountConstant.TOKEN_ID) as String)
|
|
|
def name = claims.get(AccountConstant.TOKEN_NAME)
|
|
|
|
|
|
- def optional = academyRepository.findById(info.id)
|
|
|
- if (optional.isEmpty()) {
|
|
|
- return new Result(false, "删除失败,无相关数据")
|
|
|
+ List<OperationLog> logList=new ArrayList<>()
|
|
|
+ for(Long acaId:info.id){
|
|
|
+ def optional = academyRepository.findById(acaId)
|
|
|
+ if (optional.isEmpty()) {
|
|
|
+ throw new IllegalArgumentException("没有这个学院")
|
|
|
+ }
|
|
|
+ def academy = optional.get()
|
|
|
+ def log = new OperationLog()
|
|
|
+ log.operatorName = name
|
|
|
+ log.operatorId = id
|
|
|
+ log.targetName = academy.name
|
|
|
+ log.targetId = academy.id
|
|
|
+ log.description = "管理员${id}->${name}删除了学院${academy.id}->${academy.name}"
|
|
|
+ academyRepository.logicDelete(academy.id)
|
|
|
+ logList.add(log)
|
|
|
}
|
|
|
- def academy = optional.get()
|
|
|
- def log = new OperationLog()
|
|
|
- log.operatorName = name
|
|
|
- log.operatorId = id
|
|
|
- log.targetName = academy.name
|
|
|
- log.targetId = academy.id
|
|
|
- log.description = "管理员${id}->${name}删除了学院${academy.id}->${academy.name}"
|
|
|
- academyRepository.logicDelete(academy.id)
|
|
|
- logSender.sendOperationLog(log)
|
|
|
+
|
|
|
+ for(OperationLog log:logList){
|
|
|
+ logSender.sendOperationLog(log)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
return new Result(true, "删除成功")
|
|
|
}
|