提交 6fb056b0 作者: 洪东保

模板页面list接口

父级 a2cad16e
package com.cmeeting.constant;
/**
* @Description
* @Author zhang kaishi
* @Date 2025/7/24 10:34
**/
public class CommonConstant {
/**
* 逻辑标记
*/
public static final Integer FLAG_NO = 0;
public static final Integer FLAG_YES = 1;
}
...@@ -79,8 +79,7 @@ public class RecordTemplateController { ...@@ -79,8 +79,7 @@ public class RecordTemplateController {
@OperLog(location = "模板页面", operation = "启用模板") @OperLog(location = "模板页面", operation = "启用模板")
@PostMapping("/enable") @PostMapping("/enable")
public R enable(@RequestBody @Validated(EditRecordTemplateVo.EnableGroup.class) EditRecordTemplateVo recordTemplate) { public R enable(@RequestBody @Validated(EditRecordTemplateVo.EnableGroup.class) EditRecordTemplateVo recordTemplate) {
recordTemplateService.enable(recordTemplate.getId()); return R.ok(recordTemplateService.enable(recordTemplate.getId()));
return R.ok();
} }
/** /**
......
...@@ -76,15 +76,5 @@ public interface MeetingRecordTemplateMapper extends BaseMapper<MeetingRecordTem ...@@ -76,15 +76,5 @@ public interface MeetingRecordTemplateMapper extends BaseMapper<MeetingRecordTem
List<MeetTypeDto> selectCustomTemplate(String userId); List<MeetTypeDto> selectCustomTemplate(String userId);
/** int disableSystemExceptId(Long id);
* 停用系统模板
* @param meetTypeId
*/
void disableSystemTemplate(@Param("meetTypeId") Long meetTypeId);
/**
* 启用系统模板
* @param id
*/
void enableSystemTemplate(@Param("id") Long id);
} }
\ No newline at end of file
...@@ -109,5 +109,5 @@ public class MeetingRecordTemplate implements Serializable { ...@@ -109,5 +109,5 @@ public class MeetingRecordTemplate implements Serializable {
/** /**
* 停启用标示,只有系统模板才用,0-停用,1-启用(默认) * 停启用标示,只有系统模板才用,0-停用,1-启用(默认)
*/ */
private Integer enable; private Boolean enable;
} }
\ No newline at end of file
...@@ -64,7 +64,7 @@ public interface MeetingRecordTemplateService extends IService<MeetingRecordTemp ...@@ -64,7 +64,7 @@ public interface MeetingRecordTemplateService extends IService<MeetingRecordTemp
* 启用模板 * 启用模板
* @param id 模板id * @param id 模板id
*/ */
void enable(Long id); Boolean enable(Long id);
/** /**
* 根据id删除会议模板 * 根据id删除会议模板
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; ...@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -13,7 +14,6 @@ import com.cmeeting.ad.entity.RobotSecurityUser; ...@@ -13,7 +14,6 @@ import com.cmeeting.ad.entity.RobotSecurityUser;
import com.cmeeting.ad.entity.SysUserSync; import com.cmeeting.ad.entity.SysUserSync;
import com.cmeeting.ad.util.SecurityUtil; import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.constant.AuthTypeConstant; import com.cmeeting.constant.AuthTypeConstant;
import com.cmeeting.constant.CommonConstant;
import com.cmeeting.constant.MeetingTypeConstant; import com.cmeeting.constant.MeetingTypeConstant;
import com.cmeeting.constant.PermissionPruposeType; import com.cmeeting.constant.PermissionPruposeType;
import com.cmeeting.constant.RecordTemplateConstant; import com.cmeeting.constant.RecordTemplateConstant;
...@@ -24,6 +24,7 @@ import com.cmeeting.exception.RobotBaseException; ...@@ -24,6 +24,7 @@ import com.cmeeting.exception.RobotBaseException;
import com.cmeeting.mapper.primary.*; import com.cmeeting.mapper.primary.*;
import com.cmeeting.mapper.secondary.SysUserSysMapper; import com.cmeeting.mapper.secondary.SysUserSysMapper;
import com.cmeeting.pojo.*; import com.cmeeting.pojo.*;
import com.cmeeting.service.MeetTemplateEnableService;
import com.cmeeting.service.MeetingRecordTemplateService; import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.service.ModulePermissionService; import com.cmeeting.service.ModulePermissionService;
import com.cmeeting.service.SysUserSyncService; import com.cmeeting.service.SysUserSyncService;
...@@ -55,7 +56,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -55,7 +56,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
private SysUserSysMapper sysUserSysMapper; private SysUserSysMapper sysUserSysMapper;
@Autowired @Autowired
private MeetTypeMapper meetTypeMapper; private MeetTypeMapper meetTypeMapper;
@Autowired @Resource
private MeetTemplateEnableMapper meetTemplateEnableMapper; private MeetTemplateEnableMapper meetTemplateEnableMapper;
@Resource @Resource
private ModulePermissionService modulePermissionService; private ModulePermissionService modulePermissionService;
...@@ -65,6 +66,8 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -65,6 +66,8 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
private String permissionTenantId; private String permissionTenantId;
@Value(value = "${record-template-path-default}") @Value(value = "${record-template-path-default}")
private String defaultTemplatePath; private String defaultTemplatePath;
@Resource
private MeetTemplateEnableService meetTemplateEnableService;
@Override @Override
public List<RecordTemplateDto> getRecordTemplateDtoList(RecordTemplateVO vo) { public List<RecordTemplateDto> getRecordTemplateDtoList(RecordTemplateVO vo) {
...@@ -275,9 +278,9 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -275,9 +278,9 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
recordTemplate.setPrompt(recordTemplateVo.getPrompt()); recordTemplate.setPrompt(recordTemplateVo.getPrompt());
recordTemplate.setReferTemplateId(recordTemplateVo.getReferTemplateId()); recordTemplate.setReferTemplateId(recordTemplateVo.getReferTemplateId());
recordTemplate.setTemplate(defaultTemplatePath); recordTemplate.setTemplate(defaultTemplatePath);
if (MeetingTypeConstant.TYPE_SYSTEM.equals(role) && RecordTemplateConstant.COMMON_MEET_TYPE.equals(meetType.getId())) { if (MeetingTypeConstant.TYPE_SYSTEM.equals(role) && !RecordTemplateConstant.COMMON_MEET_TYPE.equals(meetType.getId())) {
// 超管在系统通用会议类型下创建模板 // 超管在系统通用会议类型下创建模板
recordTemplate.setEnable(CommonConstant.FLAG_NO); recordTemplate.setEnable(true);
} }
recordTemplate.setCreateTime(now); recordTemplate.setCreateTime(now);
recordTemplate.setUpdateTime(now); recordTemplate.setUpdateTime(now);
...@@ -327,7 +330,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -327,7 +330,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
*/ */
@Transactional @Transactional
@Override @Override
public void enable(Long id) { public Boolean enable(Long id) {
MeetingRecordTemplate recordTemplate = baseMapper.selectById(id); MeetingRecordTemplate recordTemplate = baseMapper.selectById(id);
if (ObjectUtils.isEmpty(recordTemplate)) { if (ObjectUtils.isEmpty(recordTemplate)) {
throw new RobotBaseException("当前纪要模板不存在"); throw new RobotBaseException("当前纪要模板不存在");
...@@ -336,9 +339,20 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -336,9 +339,20 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
RobotSecurityUser loginUser = SecurityUtil.getUser(); RobotSecurityUser loginUser = SecurityUtil.getUser();
if (loginUser.getRole().equals(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM)) { if (loginUser.getRole().equals(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM)) {
// 对模板的enable进行停用 // 对模板的enable进行停用
baseMapper.disableSystemTemplate(meetTypeId); recordTemplate.setEnable(true);
baseMapper.enableSystemTemplate(id); if (baseMapper.updateById(recordTemplate) != 0) {
return; // 删除个人启用其他系统模板的记录
List<Long> ids = baseMapper.selectList(new LambdaQueryWrapper<MeetingRecordTemplate>()
.eq(MeetingRecordTemplate::getMeetingType, 1)
.eq(MeetingRecordTemplate::getType, RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM)
.ne(MeetingRecordTemplate::getId, id).select(MeetingRecordTemplate::getId)).stream().map(MeetingRecordTemplate::getId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(ids)) {
meetTemplateEnableService.remove(new LambdaQueryWrapper<MeetTemplateEnable>().eq(MeetTemplateEnable::getMeetTypeId, 1)
.in(MeetTemplateEnable::getRelId, ids));
}
// 将其他模板的enable字段置为0
return baseMapper.disableSystemExceptId(id) != 0;
}
} }
String userId = String.format("%08d", loginUser.getUserId()); String userId = String.format("%08d", loginUser.getUserId());
...@@ -352,7 +366,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -352,7 +366,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
meetTemplateEnable.setRelId(id); meetTemplateEnable.setRelId(id);
meetTemplateEnable.setMeetTypeId(recordTemplate.getMeetingType()); meetTemplateEnable.setMeetTypeId(recordTemplate.getMeetingType());
meetTemplateEnable.setUserId(userId); meetTemplateEnable.setUserId(userId);
meetTemplateEnableMapper.insert(meetTemplateEnable); return meetTemplateEnableMapper.insert(meetTemplateEnable) != 0;
} }
/** /**
...@@ -437,17 +451,38 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -437,17 +451,38 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
Set<Long> ids = permissions.stream().filter(e -> e.getPurpose().equals(PermissionPruposeType.TEMPLATE_PERMISSION)).map(ModulePermission::getTargetId).collect(Collectors.toSet()); Set<Long> ids = permissions.stream().filter(e -> e.getPurpose().equals(PermissionPruposeType.TEMPLATE_PERMISSION)).map(ModulePermission::getTargetId).collect(Collectors.toSet());
meetTypeDtos.forEach(meetTypeDto -> { meetTypeDtos.forEach(meetTypeDto -> {
meetTypeDto.getRecordTemplateDTOList().removeIf(template -> template.getId() == null);
if (meetTypeDto.getId() != 1) { if (meetTypeDto.getId() != 1) {
Integer authType = meetTypeDto.getAuthType(); Integer authType = meetTypeDto.getAuthType();
if (AuthTypeConstant.NO_AUTH.equals(authType)) { if (AuthTypeConstant.NO_AUTH.equals(authType)) {
meetTypeDto.getRecordTemplateDTOList().removeIf(template -> template.getType().equals(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM) && !ids.contains(template.getId())); if (CollUtil.isNotEmpty(meetTypeDto.getRecordTemplateDTOList())) {
meetTypeDto.getRecordTemplateDTOList().removeIf(template -> template.getType().equals(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM) && !ids.contains(template.getId()));
}
} else if (AuthTypeConstant.SELECT.equals(authType)) { } else if (AuthTypeConstant.SELECT.equals(authType)) {
meetTypeDto.getRecordTemplateDTOList().removeIf(template -> if (CollUtil.isNotEmpty(meetTypeDto.getRecordTemplateDTOList())) {
template.getType().equals(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM) && !typeIds.contains(meetTypeDto.getId()) && !ids.contains(template.getId())); meetTypeDto.getRecordTemplateDTOList().removeIf(template ->
template.getType().equals(RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM) && !typeIds.contains(meetTypeDto.getId()) && !ids.contains(template.getId()));
}
} }
} }
}); });
// 通用类型(meetType=1)单独处理停启用状态-之前的sql没有办法一次性解决
List<MeetTemplateEnable> list = meetTemplateEnableService.list(new LambdaQueryWrapper<MeetTemplateEnable>()
.eq(MeetTemplateEnable::getMeetTypeId, 1)
.eq(MeetTemplateEnable::getUserId, userId).select(MeetTemplateEnable::getRelId));
if (CollUtil.isNotEmpty(list)) {
Set<Long> collect = list.stream().map(MeetTemplateEnable::getRelId).collect(Collectors.toSet());
meetTypeDtos.forEach(meetTypeDto -> {
if (meetTypeDto.getId() == 1) {
meetTypeDto.getRecordTemplateDTOList().forEach(template -> {
if (!collect.contains(template.getId())) {
template.setEnable(false);
}
});
}
});
}
return meetTypeDtos; return meetTypeDtos;
} }
......
...@@ -289,33 +289,25 @@ ...@@ -289,33 +289,25 @@
t2.refer_template_id, t2.refer_template_id,
t2.create_user as template_create_user, t2.create_user as template_create_user,
t2.create_time as template_create_time, t2.create_time as template_create_time,
if(t1.id != 1 and t3.id is null, 0, 1) as `enable` CASE
WHEN t2.type = 'system' THEN
CASE WHEN t3.id IS NULL AND t1.id != 1 THEN 0 ELSE t2.enable END
WHEN t2.type = 'custom' THEN
CASE WHEN t3.id IS NULL THEN 0 ELSE 1 END
ELSE NULL
END AS `enable`
from meet_type t1 from meet_type t1
left join cmt_meeting_record_template t2 on t2.meeting_type = t1.id and t2.is_del = 0 left join cmt_meeting_record_template t2 on t2.meeting_type = t1.id and t2.is_del = 0
and ((t2.type = 'system' and t2.enable = 1) or (t2.type = 'custom' and t2.create_user = #{userId})) and ((t2.type = 'system' and t2.enable = 1) or (t2.type = 'custom' and t2.create_user = #{userId}))
left join meet_template_enable t3 on t3.rel_id = t2.id and t3.user_id = #{userId} left join meet_template_enable t3 on t3.rel_id = t2.id and t3.user_id = #{userId}
where t1.is_del = 0 where t1.is_del = 0
order by CASE WHEN t2.type = 'system' THEN 1 WHEN t2.type = 'custom' THEN 2 ELSE 3 END,
t1.create_time,t2.create_time
</select> </select>
<update id="disableSystemExceptId">
<update id="enableSystemTemplate"> update cmt_meeting_record_template set enable = 0 where id != #{id} and meeting_type = 1;
update
meet_template_enable
set
`enable` = 1
where
id = #{id}
and `type` = 'system'
</update> </update>
<update id="disableSystemTemplate">
update
meet_template_enable
set
`enable` = 0
where
meeting_type = #{meetTypeId}
and `type` = 'system'
</update>
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论