提交 21fade20 作者: 张开石

1、添加模板的新增、更新、启用、删除接口

2、修改会议类型的删除接口
3、会议模板启用表添加字段:会议类型id
父级 92f093e0
package com.cmeeting.controller; package com.cmeeting.controller;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cmeeting.ad.entity.RobotSecurityUser; import com.cmeeting.constant.RecordTemplateConstant;
import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.dto.UserDTO;
import com.cmeeting.pojo.MeetingInfo;
import com.cmeeting.pojo.MeetingRecordTemplate; import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.service.MeetingRecordTemplateService; import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.service.RecordTemplatePermissionService; import com.cmeeting.service.RecordTemplatePermissionService;
import com.cmeeting.util.R; import com.cmeeting.util.R;
import com.cmeeting.vo.EditRecordTemplateVo;
import com.cmeeting.vo.RecordTemplateVO; import com.cmeeting.vo.RecordTemplateVO;
import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.XWPFTemplate;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -41,40 +38,51 @@ public class RecordTemplateController { ...@@ -41,40 +38,51 @@ public class RecordTemplateController {
@Resource @Resource
private RecordTemplatePermissionService recordTemplatePermissionService; private RecordTemplatePermissionService recordTemplatePermissionService;
/**
* 创建模板
*/
@PostMapping("/create") @PostMapping("/create")
public R create(@RequestBody MeetingRecordTemplate recordTemplate) { public R create(@RequestBody @Validated(EditRecordTemplateVo.AddGroup.class) EditRecordTemplateVo recordTemplate) {
RobotSecurityUser user = SecurityUtil.getUser(); // 参数校验
System.out.println("RobotSecurityUser:"+user.toString()); String type = recordTemplate.getType();
LocalDateTime now = LocalDateTime.now(); if (!RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM.equals(type) && !RecordTemplateConstant.TEMPLATE_TYPE_CUSTOM.equals(type)) {
recordTemplate.setCreateTime(now); return R.error("type参数错误");
recordTemplate.setUpdateTime(now); }
recordTemplate.setIsDel(Boolean.FALSE);
recordTemplate.setCreateUser(user.getId()); recordTemplateService.save(recordTemplate);
recordTemplate.setUpdateUser(user.getId());
recordTemplate.setCreateUserName(user.getUsername());
recordTemplate.setUpdateUserName(user.getUsername());
boolean save = recordTemplateService.save(recordTemplate);
return R.ok(recordTemplate); return R.ok(recordTemplate);
} }
/**
* 更新模板
*/
@PostMapping("/update") @PostMapping("/update")
public R update(@RequestBody MeetingRecordTemplate recordTemplate) { public R update(@RequestBody @Validated(EditRecordTemplateVo.UpdateGroup.class) EditRecordTemplateVo recordTemplate) {
RobotSecurityUser user = SecurityUtil.getUser(); // 参数校验
recordTemplate.setUpdateTime(LocalDateTime.now()); String type = recordTemplate.getType();
recordTemplate.setUpdateUser(user.getId()); if (!RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM.equals(type) && !RecordTemplateConstant.TEMPLATE_TYPE_CUSTOM.equals(type)) {
recordTemplate.setUpdateUserName(user.getUsername()); return R.error("type参数错误");
boolean save = recordTemplateService.updateById(recordTemplate); }
return R.ok(save); recordTemplateService.updateById(recordTemplate);
return R.ok();
}
/**
* 删除模板
*/
@PostMapping("/delete")
public R delete(@RequestBody @Validated(EditRecordTemplateVo.DeleteGroup.class) EditRecordTemplateVo recordTemplate) {
recordTemplateService.delete(recordTemplate.getId());
return R.ok();
} }
@PostMapping("/disable") /**
public R disable(@RequestBody MeetingRecordTemplate recordTemplate) { * 启用模板
boolean save = recordTemplateService.update( */
new LambdaUpdateWrapper<MeetingRecordTemplate>() @PostMapping("/enable")
.eq(MeetingRecordTemplate::getId,recordTemplate.getId()) public R enable(@RequestBody @Validated(EditRecordTemplateVo.EnableGroup.class) EditRecordTemplateVo recordTemplate) {
.set(MeetingRecordTemplate::getIsDel,Boolean.TRUE) recordTemplateService.enable(recordTemplate.getId());
); return R.ok();
return R.ok(save);
} }
/** /**
......
...@@ -25,6 +25,11 @@ public class MeetTemplateEnable { ...@@ -25,6 +25,11 @@ public class MeetTemplateEnable {
private Long relId; private Long relId;
/** /**
* 会议类型id
*/
private Long meetTypeId;
/**
* 用户id/system (管理员) * 用户id/system (管理员)
*/ */
private String userId; private String userId;
......
...@@ -10,7 +10,7 @@ import lombok.experimental.Accessors; ...@@ -10,7 +10,7 @@ import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.util.Date;
/** /**
* 会议纪要模板实体类 * 会议纪要模板实体类
...@@ -29,7 +29,7 @@ public class MeetingRecordTemplate implements Serializable { ...@@ -29,7 +29,7 @@ public class MeetingRecordTemplate implements Serializable {
* 主键id * 主键id
*/ */
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Integer id; private Long id;
/** /**
* 模板名称 * 模板名称
*/ */
...@@ -60,14 +60,14 @@ public class MeetingRecordTemplate implements Serializable { ...@@ -60,14 +60,14 @@ public class MeetingRecordTemplate implements Serializable {
*/ */
@DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
private LocalDateTime createTime; private Date createTime;
/** /**
* 创建时间 * 创建时间
*/ */
@DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")
private LocalDateTime updateTime; private Date updateTime;
/** /**
* 创建人 * 创建人
...@@ -100,7 +100,7 @@ public class MeetingRecordTemplate implements Serializable { ...@@ -100,7 +100,7 @@ public class MeetingRecordTemplate implements Serializable {
/** /**
* 引用的纪要模板id * 引用的纪要模板id
*/ */
private Integer referTemplateId; private Long referTemplateId;
/** /**
* 引用的纪要模板名称 * 引用的纪要模板名称
*/ */
......
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.cmeeting.dto.UserDTO; import com.cmeeting.dto.UserDTO;
import com.cmeeting.pojo.MeetingRecordTemplate; import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.vo.EditRecordTemplateVo;
import com.cmeeting.vo.RecordTemplateVO; import com.cmeeting.vo.RecordTemplateVO;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -44,4 +45,28 @@ public interface MeetingRecordTemplateService extends IService<MeetingRecordTemp ...@@ -44,4 +45,28 @@ public interface MeetingRecordTemplateService extends IService<MeetingRecordTemp
* @return * @return
*/ */
List<MeetingRecordTemplate> getSelectList(RecordTemplateVO vo); List<MeetingRecordTemplate> getSelectList(RecordTemplateVO vo);
/**
* 保存模板
* @param recordTemplateVo 请求参数
*/
void save(EditRecordTemplateVo recordTemplateVo);
/**
* 更新模板
* @param recordTemplateVo 模板参数
*/
void updateById(EditRecordTemplateVo recordTemplateVo);
/**
* 启用模板
* @param id 模板id
*/
void enable(Long id);
/**
* 根据id删除会议模板
* @param id 模板id
*/
void delete(Long id);
} }
...@@ -116,13 +116,8 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType> ...@@ -116,13 +116,8 @@ public class MeetTypeServiceImpl extends ServiceImpl<MeetTypeMapper, MeetType>
if (templateCount == 0) { if (templateCount == 0) {
return; return;
} }
// 查询该类型下的所有模板 // 删除模板的启用数据
List<MeetingRecordTemplate> templateList = meetingRecordTemplateMapper.selectList(new QueryWrapper<MeetingRecordTemplate>() meetTemplateEnableMapper.delete(new QueryWrapper<MeetTemplateEnable>().eq("meet_type_id", id));
.select("meeting_type")
.eq("meeting_type", id));
List<Long> templateIdList = templateList.stream().map(item -> item.getMeetingType()).collect(Collectors.toList());
// 删除模板的授权数据
meetTemplateEnableMapper.delete(new QueryWrapper<MeetTemplateEnable>().in("rel_id", templateIdList));
} }
......
...@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; ...@@ -4,6 +4,7 @@ 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 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.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
...@@ -12,20 +13,21 @@ import com.cmeeting.ad.entity.SysUserSync; ...@@ -12,20 +13,21 @@ import com.cmeeting.ad.entity.SysUserSync;
import com.cmeeting.ad.util.SecurityUtil; import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.constant.RecordTemplateConstant; import com.cmeeting.constant.RecordTemplateConstant;
import com.cmeeting.dto.UserDTO; import com.cmeeting.dto.UserDTO;
import com.cmeeting.mapper.primary.CommonMapper; import com.cmeeting.mapper.primary.*;
import com.cmeeting.mapper.primary.MeetingRecordTemplateMapper;
import com.cmeeting.mapper.primary.RecordTemplatePermissionMapper;
import com.cmeeting.mapper.secondary.SysUserSysMapper; import com.cmeeting.mapper.secondary.SysUserSysMapper;
import com.cmeeting.pojo.MeetTemplateEnable;
import com.cmeeting.pojo.MeetingRecordTemplate; import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.pojo.RecordTemplatePermission; import com.cmeeting.pojo.RecordTemplatePermission;
import com.cmeeting.service.MeetingRecordTemplateService; import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.service.SysUserSyncService; import com.cmeeting.service.SysUserSyncService;
import com.cmeeting.util.MinioUtils; import com.cmeeting.util.MinioUtils;
import com.cmeeting.vo.EditRecordTemplateVo;
import com.cmeeting.vo.RecordTemplateVO; import com.cmeeting.vo.RecordTemplateVO;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -44,6 +46,10 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -44,6 +46,10 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
private RecordTemplatePermissionMapper permissionMapper; private RecordTemplatePermissionMapper permissionMapper;
@Resource @Resource
private SysUserSysMapper sysUserSysMapper; private SysUserSysMapper sysUserSysMapper;
@Autowired
private MeetTypeMapper meetTypeMapper;
@Autowired
private MeetTemplateEnableMapper meetTemplateEnableMapper;
@Resource @Resource
private SysUserSyncService sysUserSyncService; private SysUserSyncService sysUserSyncService;
@Value(value = "${permission.tenantId}") @Value(value = "${permission.tenantId}")
...@@ -180,7 +186,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -180,7 +186,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
for (MeetingRecordTemplate template : meetingRecordTemplates) { for (MeetingRecordTemplate template : meetingRecordTemplates) {
UserDTO.TemplateAuthorizedUserDTO resultItem = new UserDTO.TemplateAuthorizedUserDTO(); UserDTO.TemplateAuthorizedUserDTO resultItem = new UserDTO.TemplateAuthorizedUserDTO();
resultItem.setRecordTemplate(template); resultItem.setRecordTemplate(template);
resultItem.setRecordTemplateId(template.getId()); resultItem.setRecordTemplateId(template.getId().intValue());
//该系统模板授权部门 //该系统模板授权部门
List<RecordTemplatePermission> deptPermissions = permissions.stream().filter(item -> "1".equals(item.getRelType()) && template.getId().equals(item.getTemplateId())).collect(Collectors.toList()); List<RecordTemplatePermission> deptPermissions = permissions.stream().filter(item -> "1".equals(item.getRelType()) && template.getId().equals(item.getTemplateId())).collect(Collectors.toList());
//该系统模板授权人员 //该系统模板授权人员
...@@ -254,6 +260,100 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT ...@@ -254,6 +260,100 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
} }
/** /**
* 保存模板
*
* @param recordTemplateVo 请求参数
*/
@Override
public void save(EditRecordTemplateVo recordTemplateVo) {
Date now = new Date();
RobotSecurityUser loginUser = SecurityUtil.getUser();
MeetingRecordTemplate recordTemplate = new MeetingRecordTemplate();
recordTemplate.setName(recordTemplateVo.getName());
recordTemplate.setType(recordTemplateVo.getType());
recordTemplate.setMeetingType(recordTemplateVo.getMeetingTypeId());
recordTemplate.setTypeDetail(recordTemplateVo.getTypeDetail());
recordTemplate.setPrompt(recordTemplateVo.getPrompt());
recordTemplate.setReferTemplateId(recordTemplateVo.getReferTemplateId());
recordTemplate.setCreateTime(now);
recordTemplate.setUpdateTime(now);
recordTemplate.setCreateUser(loginUser.getId());
recordTemplate.setUpdateUser(loginUser.getId());
recordTemplate.setCreateUserName(loginUser.getUsername());
recordTemplate.setUpdateUserName(loginUser.getUsername());
baseMapper.insert(recordTemplate);
// 没有保存到启用表中,默认是不启用的。
}
/**
* 更新模板
* @param recordTemplateVo 模板参数
*/
@Override
public void updateById(EditRecordTemplateVo recordTemplateVo) {
Date now = new Date();
RobotSecurityUser loginUser = SecurityUtil.getUser();
MeetingRecordTemplate recordTemplate = new MeetingRecordTemplate();
recordTemplate.setId(recordTemplateVo.getId());
recordTemplate.setName(recordTemplateVo.getName());
recordTemplate.setType(recordTemplateVo.getType());
recordTemplate.setMeetingType(recordTemplateVo.getMeetingTypeId());
recordTemplate.setTypeDetail(recordTemplateVo.getTypeDetail());
recordTemplate.setPrompt(recordTemplateVo.getPrompt());
recordTemplate.setReferTemplateId(recordTemplateVo.getReferTemplateId());
recordTemplate.setUpdateTime(now);
recordTemplate.setUpdateUser(loginUser.getId());
recordTemplate.setUpdateUserName(loginUser.getUsername());
baseMapper.updateById(recordTemplate);
}
/**
* 启用模板
*
* @param id 模板id
*/
@Transactional
@Override
public void enable(Long id) {
RobotSecurityUser loginUser = SecurityUtil.getUser();
String userId = loginUser.getId();
MeetingRecordTemplate recordTemplate = baseMapper.selectOne(new QueryWrapper<MeetingRecordTemplate>().select("meeting_type")
.eq("rel_id", id));
Long meetTypeId = recordTemplate.getId();
// 根据会议类型和用户id删除已开启的模板
meetTemplateEnableMapper.delete(new QueryWrapper<MeetTemplateEnable>()
.eq("meet_type_id", meetTypeId)
.eq("user_id", userId));
// 开启模板
MeetTemplateEnable meetTemplateEnable = new MeetTemplateEnable();
meetTemplateEnable.setRelId(id);
meetTemplateEnable.setMeetTypeId(meetTypeId);
meetTemplateEnable.setUserId(userId);
meetTemplateEnableMapper.insert(meetTemplateEnable);
}
/**
* 根据id删除会议模板
*
* @param id 模板id
*/
@Transactional
@Override
public void delete(Long id) {
// 删除模板
baseMapper.deleteById(id);
// 删除模板启用表
meetTemplateEnableMapper.delete(new QueryWrapper<MeetTemplateEnable>().eq("rel_id", id));
}
/**
* 获取部门的路径 * 获取部门的路径
* @param deptPath * @param deptPath
* @param deptId * @param deptId
......
package com.cmeeting.vo;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
/**
* @Description
* @Author zhang kaishi
* @Date 2025/7/18 14:05
**/
@Data
public class EditRecordTemplateVo {
// 模板id
@NotNull(message = "id不能为空", groups = {UpdateGroup.class, DeleteGroup.class, EnableGroup.class})
private Long id;
// 会议类型id
@NotNull(message = "meetingTypeId不能为空", groups = {AddGroup.class, UpdateGroup.class})
private Long meetingTypeId;
// 模板名称
@NotEmpty(message = "name不能为空", groups = {AddGroup.class, UpdateGroup.class})
private String name;
// 参考模板id
private Long referTemplateId;
// 模板描述
private String typeDetail;
// 提示词
@NotEmpty(message = "prompt不能为空", groups = {AddGroup.class, UpdateGroup.class})
private String prompt;
/**
* 模板类型,system-系统创建,custom-用户创建
*/
@NotEmpty(message = "type不能为空", groups = {AddGroup.class, UpdateGroup.class})
private String type;
public interface AddGroup{};
public interface UpdateGroup{};
public interface DeleteGroup{};
public interface EnableGroup{};
}
...@@ -7,11 +7,12 @@ ...@@ -7,11 +7,12 @@
<resultMap id="BaseResultMap" type="com.cmeeting.pojo.MeetTemplateEnable"> <resultMap id="BaseResultMap" type="com.cmeeting.pojo.MeetTemplateEnable">
<id property="id" column="id" /> <id property="id" column="id" />
<result property="relId" column="rel_id" /> <result property="relId" column="rel_id" />
<result property="meetTypeId" column="meet_type_id" />
<result property="userId" column="user_id" /> <result property="userId" column="user_id" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,rel_id,user_id id,rel_id,meet_type_id,user_id
</sql> </sql>
</mapper> </mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论