提交 21fade20 作者: 张开石

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

2、修改会议类型的删除接口
3、会议模板启用表添加字段:会议类型id
父级 92f093e0
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.cmeeting.ad.entity.RobotSecurityUser;
import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.dto.UserDTO;
import com.cmeeting.pojo.MeetingInfo;
import com.cmeeting.constant.RecordTemplateConstant;
import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.service.RecordTemplatePermissionService;
import com.cmeeting.util.R;
import com.cmeeting.vo.EditRecordTemplateVo;
import com.cmeeting.vo.RecordTemplateVO;
import com.deepoove.poi.XWPFTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
......@@ -41,40 +38,51 @@ public class RecordTemplateController {
@Resource
private RecordTemplatePermissionService recordTemplatePermissionService;
/**
* 创建模板
*/
@PostMapping("/create")
public R create(@RequestBody MeetingRecordTemplate recordTemplate) {
RobotSecurityUser user = SecurityUtil.getUser();
System.out.println("RobotSecurityUser:"+user.toString());
LocalDateTime now = LocalDateTime.now();
recordTemplate.setCreateTime(now);
recordTemplate.setUpdateTime(now);
recordTemplate.setIsDel(Boolean.FALSE);
recordTemplate.setCreateUser(user.getId());
recordTemplate.setUpdateUser(user.getId());
recordTemplate.setCreateUserName(user.getUsername());
recordTemplate.setUpdateUserName(user.getUsername());
boolean save = recordTemplateService.save(recordTemplate);
public R create(@RequestBody @Validated(EditRecordTemplateVo.AddGroup.class) EditRecordTemplateVo recordTemplate) {
// 参数校验
String type = recordTemplate.getType();
if (!RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM.equals(type) && !RecordTemplateConstant.TEMPLATE_TYPE_CUSTOM.equals(type)) {
return R.error("type参数错误");
}
recordTemplateService.save(recordTemplate);
return R.ok(recordTemplate);
}
/**
* 更新模板
*/
@PostMapping("/update")
public R update(@RequestBody MeetingRecordTemplate recordTemplate) {
RobotSecurityUser user = SecurityUtil.getUser();
recordTemplate.setUpdateTime(LocalDateTime.now());
recordTemplate.setUpdateUser(user.getId());
recordTemplate.setUpdateUserName(user.getUsername());
boolean save = recordTemplateService.updateById(recordTemplate);
return R.ok(save);
}
@PostMapping("/disable")
public R disable(@RequestBody MeetingRecordTemplate recordTemplate) {
boolean save = recordTemplateService.update(
new LambdaUpdateWrapper<MeetingRecordTemplate>()
.eq(MeetingRecordTemplate::getId,recordTemplate.getId())
.set(MeetingRecordTemplate::getIsDel,Boolean.TRUE)
);
return R.ok(save);
public R update(@RequestBody @Validated(EditRecordTemplateVo.UpdateGroup.class) EditRecordTemplateVo recordTemplate) {
// 参数校验
String type = recordTemplate.getType();
if (!RecordTemplateConstant.TEMPLATE_TYPE_SYSTEM.equals(type) && !RecordTemplateConstant.TEMPLATE_TYPE_CUSTOM.equals(type)) {
return R.error("type参数错误");
}
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("/enable")
public R enable(@RequestBody @Validated(EditRecordTemplateVo.EnableGroup.class) EditRecordTemplateVo recordTemplate) {
recordTemplateService.enable(recordTemplate.getId());
return R.ok();
}
/**
......
......@@ -25,6 +25,11 @@ public class MeetTemplateEnable {
private Long relId;
/**
* 会议类型id
*/
private Long meetTypeId;
/**
* 用户id/system (管理员)
*/
private String userId;
......
......@@ -10,7 +10,7 @@ import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
/**
* 会议纪要模板实体类
......@@ -29,7 +29,7 @@ public class MeetingRecordTemplate implements Serializable {
* 主键id
*/
@TableId(type = IdType.AUTO)
private Integer id;
private Long id;
/**
* 模板名称
*/
......@@ -60,14 +60,14 @@ public class MeetingRecordTemplate implements Serializable {
*/
@DateTimeFormat(pattern = "yyy-MM-dd HH:mm:ss")
@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")
@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 {
/**
* 引用的纪要模板id
*/
private Integer referTemplateId;
private Long referTemplateId;
/**
* 引用的纪要模板名称
*/
......
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.cmeeting.dto.UserDTO;
import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.vo.EditRecordTemplateVo;
import com.cmeeting.vo.RecordTemplateVO;
import org.springframework.web.multipart.MultipartFile;
......@@ -44,4 +45,28 @@ public interface MeetingRecordTemplateService extends IService<MeetingRecordTemp
* @return
*/
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>
if (templateCount == 0) {
return;
}
// 查询该类型下的所有模板
List<MeetingRecordTemplate> templateList = meetingRecordTemplateMapper.selectList(new QueryWrapper<MeetingRecordTemplate>()
.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));
// 删除模板的启用数据
meetTemplateEnableMapper.delete(new QueryWrapper<MeetTemplateEnable>().eq("meet_type_id", id));
}
......
......@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
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.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
......@@ -12,20 +13,21 @@ import com.cmeeting.ad.entity.SysUserSync;
import com.cmeeting.ad.util.SecurityUtil;
import com.cmeeting.constant.RecordTemplateConstant;
import com.cmeeting.dto.UserDTO;
import com.cmeeting.mapper.primary.CommonMapper;
import com.cmeeting.mapper.primary.MeetingRecordTemplateMapper;
import com.cmeeting.mapper.primary.RecordTemplatePermissionMapper;
import com.cmeeting.mapper.primary.*;
import com.cmeeting.mapper.secondary.SysUserSysMapper;
import com.cmeeting.pojo.MeetTemplateEnable;
import com.cmeeting.pojo.MeetingRecordTemplate;
import com.cmeeting.pojo.RecordTemplatePermission;
import com.cmeeting.service.MeetingRecordTemplateService;
import com.cmeeting.service.SysUserSyncService;
import com.cmeeting.util.MinioUtils;
import com.cmeeting.vo.EditRecordTemplateVo;
import com.cmeeting.vo.RecordTemplateVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
......@@ -44,6 +46,10 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
private RecordTemplatePermissionMapper permissionMapper;
@Resource
private SysUserSysMapper sysUserSysMapper;
@Autowired
private MeetTypeMapper meetTypeMapper;
@Autowired
private MeetTemplateEnableMapper meetTemplateEnableMapper;
@Resource
private SysUserSyncService sysUserSyncService;
@Value(value = "${permission.tenantId}")
......@@ -180,7 +186,7 @@ public class MeetingRecordTemplateServiceImpl extends ServiceImpl<MeetingRecordT
for (MeetingRecordTemplate template : meetingRecordTemplates) {
UserDTO.TemplateAuthorizedUserDTO resultItem = new UserDTO.TemplateAuthorizedUserDTO();
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());
//该系统模板授权人员
......@@ -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 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 @@
<resultMap id="BaseResultMap" type="com.cmeeting.pojo.MeetTemplateEnable">
<id property="id" column="id" />
<result property="relId" column="rel_id" />
<result property="meetTypeId" column="meet_type_id" />
<result property="userId" column="user_id" />
</resultMap>
<sql id="Base_Column_List">
id,rel_id,user_id
id,rel_id,meet_type_id,user_id
</sql>
</mapper>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论