提交 acde5dcc 作者: 洪东保

模板类型授权

父级 b2588b0b
...@@ -30,13 +30,7 @@ public class MeetingTypeController { ...@@ -30,13 +30,7 @@ public class MeetingTypeController {
*/ */
@PostMapping("/add") @PostMapping("/add")
public R add(@RequestBody @Validated(MeetingTypeVo.AddGroup.class) MeetingTypeVo meetingTypeVo) { public R add(@RequestBody @Validated(MeetingTypeVo.AddGroup.class) MeetingTypeVo meetingTypeVo) {
// 参数校验
Integer authType = meetingTypeVo.getAuthType();
if (MeetingTypeConstant.AUTH_TYPE_CUSTOM.equals(authType) && ObjectUtils.isEmpty(meetingTypeVo.getUserIds())) {
return R.error("userIds不能为空");
}
meetTypeService.add(meetingTypeVo); meetTypeService.add(meetingTypeVo);
return R.ok(); return R.ok();
} }
...@@ -46,13 +40,7 @@ public class MeetingTypeController { ...@@ -46,13 +40,7 @@ public class MeetingTypeController {
*/ */
@PostMapping("/update") @PostMapping("/update")
public R update(@RequestBody @Validated(MeetingTypeVo.UpdateGroup.class) MeetingTypeVo meetingTypeVo) { public R update(@RequestBody @Validated(MeetingTypeVo.UpdateGroup.class) MeetingTypeVo meetingTypeVo) {
// 参数校验
Integer authType = meetingTypeVo.getAuthType();
if (MeetingTypeConstant.AUTH_TYPE_CUSTOM.equals(authType) && ObjectUtils.isEmpty(meetingTypeVo.getUserIds())) {
return R.error("userIds不能为空");
}
meetTypeService.update(meetingTypeVo); meetTypeService.update(meetingTypeVo);
return R.ok(); return R.ok();
} }
......
...@@ -10,6 +10,7 @@ import com.cmeeting.util.R; ...@@ -10,6 +10,7 @@ import com.cmeeting.util.R;
import com.cmeeting.vo.AuthVO; import com.cmeeting.vo.AuthVO;
import com.cmeeting.vo.PermissionVO; import com.cmeeting.vo.PermissionVO;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -59,19 +60,22 @@ public class PermissionController { ...@@ -59,19 +60,22 @@ public class PermissionController {
* @return * @return
*/ */
@PostMapping("/remove") @PostMapping("/remove")
public R remove(@Validated @RequestBody AuthVO.Add vo) { @Transactional(rollbackFor = Exception.class)
boolean needTarget = vo.getPurpose().equals(PermissionPruposeType.TEMPLATE_TYPE_PERMISSION) public R remove(@Validated @RequestBody AuthVO vo) {
|| vo.getPurpose().equals(PermissionPruposeType.TEMPLATE_PERMISSION); for (AuthVO.Add authDatum : vo.getAuthData()) {
if (needTarget && vo.getTargetId() == null) { boolean needTarget = authDatum.getPurpose().equals(PermissionPruposeType.TEMPLATE_TYPE_PERMISSION)
throw new RuntimeException("param error! `purpose` equals 1 or 2, but `targetId` is null."); || authDatum.getPurpose().equals(PermissionPruposeType.TEMPLATE_PERMISSION);
if (needTarget && authDatum.getTargetId() == null) {
throw new RuntimeException("param error! `purpose` equals 1 or 2, but `targetId` is null.");
}
modulePermissionService.remove(new LambdaQueryWrapper<ModulePermission>()
.eq(!authDatum.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getType, authDatum.getType())
.eq(!authDatum.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getUserType, authDatum.getUserType())
.eq(ModulePermission::getPurpose, authDatum.getPurpose())
.eq(!authDatum.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getRelId, authDatum.getRelId())
.eq(authDatum.getTargetId() != null, ModulePermission::getTargetId, authDatum.getTargetId()));
} }
return R.ok(modulePermissionService.remove(new LambdaQueryWrapper<ModulePermission>() return R.ok();
.eq(!vo.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getType, vo.getType())
.eq(!vo.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getUserType, vo.getUserType())
.eq(ModulePermission::getPurpose, vo.getPurpose())
.eq(!vo.getRelId().equals(CategoryConstant.ALL_EN), ModulePermission::getRelId, vo.getRelId())
.eq(vo.getTargetId() != null, ModulePermission::getTargetId, vo.getTargetId()))
);
} }
......
package com.cmeeting.service.impl; package com.cmeeting.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.cmeeting.ad.entity.RobotSecurityUser; import com.cmeeting.ad.entity.RobotSecurityUser;
import com.cmeeting.ad.util.SecurityUtil; import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.constant.MeetingTypeConstant; import com.cmeeting.constant.MeetingTypeConstant;
import com.cmeeting.constant.PermissionPruposeType;
import com.cmeeting.dto.MeetTypeDto; import com.cmeeting.dto.MeetTypeDto;
import com.cmeeting.exception.RobotBaseException; import com.cmeeting.exception.RobotBaseException;
import com.cmeeting.mapper.primary.MeetTemplateEnableMapper; import com.cmeeting.mapper.primary.MeetTemplateEnableMapper;
...@@ -12,14 +15,19 @@ import com.cmeeting.mapper.primary.MeetingRecordTemplateMapper; ...@@ -12,14 +15,19 @@ import com.cmeeting.mapper.primary.MeetingRecordTemplateMapper;
import com.cmeeting.pojo.MeetTemplateEnable; import com.cmeeting.pojo.MeetTemplateEnable;
import com.cmeeting.pojo.MeetType; import com.cmeeting.pojo.MeetType;
import com.cmeeting.pojo.MeetingRecordTemplate; import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.pojo.ModulePermission;
import com.cmeeting.service.MeetTypeService; import com.cmeeting.service.MeetTypeService;
import com.cmeeting.mapper.primary.MeetTypeMapper; import com.cmeeting.mapper.primary.MeetTypeMapper;
import com.cmeeting.service.ModulePermissionService;
import com.cmeeting.vo.AuthVO;
import com.cmeeting.vo.MeetingTypeVo; import com.cmeeting.vo.MeetingTypeVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.spongycastle.math.raw.Mod;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Date; import java.util.Date;
...@@ -41,6 +49,8 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType> ...@@ -41,6 +49,8 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
private MeetingRecordTemplateMapper meetingRecordTemplateMapper; private MeetingRecordTemplateMapper meetingRecordTemplateMapper;
@Autowired @Autowired
private MeetTemplateEnableMapper meetTemplateEnableMapper; private MeetTemplateEnableMapper meetTemplateEnableMapper;
@Resource
private ModulePermissionService modulePermissionService;
/** /**
* 添加会议类型 * 添加会议类型
...@@ -48,6 +58,7 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType> ...@@ -48,6 +58,7 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
* @param meetingTypeVo 请求参数 * @param meetingTypeVo 请求参数
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void add(MeetingTypeVo meetingTypeVo) { public void add(MeetingTypeVo meetingTypeVo) {
Date now = new Date(); Date now = new Date();
...@@ -57,7 +68,6 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType> ...@@ -57,7 +68,6 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
if (!"admin".equals(role)) { if (!"admin".equals(role)) {
throw new RobotBaseException("非管理员用户不允许创建会议类型"); throw new RobotBaseException("非管理员用户不允许创建会议类型");
} }
MeetType meetType = new MeetType(); MeetType meetType = new MeetType();
meetType.setName(meetingTypeVo.getName()); meetType.setName(meetingTypeVo.getName());
meetType.setPersonalPermission(meetingTypeVo.getPersonalPermission()); meetType.setPersonalPermission(meetingTypeVo.getPersonalPermission());
...@@ -70,7 +80,15 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType> ...@@ -70,7 +80,15 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
meetType.setUpdateUser(loginUser.getUserId()); meetType.setUpdateUser(loginUser.getUserId());
meetType.setCreateUserName(loginUser.getUsername()); meetType.setCreateUserName(loginUser.getUsername());
meetType.setUpdateUserName(loginUser.getUsername()); meetType.setUpdateUserName(loginUser.getUsername());
meetTypeMapper.insert(meetType); if (meetTypeMapper.insert(meetType) != 0) {
List<AuthVO.Add> authData = meetingTypeVo.getAuthList().getAuthData();
if (CollUtil.isNotEmpty(authData)) {
Long targetId = meetType.getId();
authData.forEach(e->e.setTargetId(targetId));
modulePermissionService.auth(authData);
}
}
} }
/** /**
...@@ -79,6 +97,7 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType> ...@@ -79,6 +97,7 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
* @param meetingTypeVo 请求参数 * @param meetingTypeVo 请求参数
*/ */
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void update(MeetingTypeVo meetingTypeVo) { public void update(MeetingTypeVo meetingTypeVo) {
Date now = new Date(); Date now = new Date();
RobotSecurityUser loginUser = SecurityUtil.getUser(); RobotSecurityUser loginUser = SecurityUtil.getUser();
...@@ -93,7 +112,18 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType> ...@@ -93,7 +112,18 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
meetType.setUpdateTime(now); meetType.setUpdateTime(now);
meetType.setUpdateUser(loginUser.getUserId()); meetType.setUpdateUser(loginUser.getUserId());
meetType.setUpdateUserName(loginUser.getUsername()); meetType.setUpdateUserName(loginUser.getUsername());
meetTypeMapper.updateById(meetType); if (meetTypeMapper.updateById(meetType) != 0) {
modulePermissionService.remove(new LambdaQueryWrapper<ModulePermission>()
.eq(ModulePermission::getTargetId, meetingTypeVo.getId())
.eq(ModulePermission::getPurpose, PermissionPruposeType.TEMPLATE_TYPE_PERMISSION)
);
List<AuthVO.Add> authData = meetingTypeVo.getAuthList().getAuthData();
if (CollUtil.isNotEmpty(authData)) {
Long targetId = meetType.getId();
authData.forEach(e->e.setTargetId(targetId));
modulePermissionService.auth(authData);
}
}
} }
/** /**
......
...@@ -32,7 +32,8 @@ public class MeetingTypeVo { ...@@ -32,7 +32,8 @@ public class MeetingTypeVo {
private Integer authType; private Integer authType;
// 用户id // 用户id
private List<String> userIds; // private List<String> userIds;
private AuthVO authList;
// 参考类型id // 参考类型id
private Long relId; private Long relId;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论