feat(消息模块与部门模块): 修改了消息模块的bug并从新建消息接口中独立出添加附件接口,部门模块新添加了部门树返回接口

This commit is contained in:
zhuangtianxiang 2024-12-06 16:01:14 +08:00
parent 8521262f69
commit dbbc9e82db
14 changed files with 50 additions and 45 deletions

View File

@ -66,10 +66,10 @@ public class ApiExceptionHandler {
} }
//TODO 跟全局security 冲突 //TODO 跟全局security 冲突
@ExceptionHandler(value = {Exception.class}) // @ExceptionHandler(value = {Exception.class})
public ResponseEntity<Object> handleException(Exception ex) throws JsonProcessingException { // public ResponseEntity<Object> handleException(Exception ex) throws JsonProcessingException {
log.error("Exception: {}", objectMapper.writeValueAsString(Map.of("msg", ex.getMessage()))); // log.error("Exception: {}", objectMapper.writeValueAsString(Map.of("msg", ex.getMessage())));
return new ResponseEntity<>(objectMapper.writeValueAsString(Map.of("msg", ex.getMessage())), HttpStatus.INTERNAL_SERVER_ERROR); // return new ResponseEntity<>(objectMapper.writeValueAsString(Map.of("msg", ex.getMessage())), HttpStatus.INTERNAL_SERVER_ERROR);
} // }
} }

View File

@ -97,8 +97,8 @@ public class UserMessageController {
*/ */
@GetMapping @GetMapping
@PreAuthorize("hasAuthority('MESSAGE_QUERY')") @PreAuthorize("hasAuthority('MESSAGE_QUERY')")
public IPage<AdminMessageVo> page(Page<UserMessageVo> pageParam, AdminMessageQuery query) { public IPage<AdminMessageVo> page(Page<UserMessageVo> page, AdminMessageQuery query) {
return service.getAdminVo(pageParam, query); return service.getAdminMessagePage(page, query);
} }
/** /**

View File

@ -30,7 +30,7 @@ public class Message extends BaseEntity {
/** /**
* 是否系统生成 * 是否系统生成
*/ */
public Boolean system; public Boolean system = false;
/** /**
* 是否需要发送邮件 * 是否需要发送邮件

View File

@ -1,15 +0,0 @@
package com.zsc.edu.gateway.modules.notice.mapper;
import com.zsc.edu.gateway.common.mapstruct.BaseMapper;
import com.zsc.edu.gateway.modules.notice.dto.BulletinAttachmentDto;
import com.zsc.edu.gateway.modules.notice.entity.BulletinAttachment;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author zhuang
*/
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface BulletinAttachmentMapper extends BaseMapper<BulletinAttachmentDto, BulletinAttachment> {
}

View File

@ -10,8 +10,6 @@ import com.zsc.edu.gateway.modules.notice.vo.AdminMessageVo;
import com.zsc.edu.gateway.modules.notice.vo.UserMessageVo; import com.zsc.edu.gateway.modules.notice.vo.UserMessageVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 用户消息Repo * 用户消息Repo
* *
@ -21,7 +19,7 @@ public interface UserMessageRepository extends BaseMapper<UserMessage> {
UserMessageVo selectByMessageIdAndUserId(@Param("messageId") Long messageId, @Param("userId") Long userId); UserMessageVo selectByMessageIdAndUserId(@Param("messageId") Long messageId, @Param("userId") Long userId);
IPage<UserMessageVo> query(Page<UserMessageVo> page, @Param("query") UserMessageQuery query); IPage<UserMessageVo> page(Page<UserMessageVo> page, @Param("query") UserMessageQuery query);
IPage<AdminMessageVo> getAdminVo(Page<UserMessageVo> page, @Param("query") AdminMessageQuery query); IPage<AdminMessageVo> pageAdmin(Page<UserMessageVo> page, @Param("query") AdminMessageQuery query);
} }

View File

@ -10,7 +10,6 @@ import com.zsc.edu.gateway.modules.notice.query.AdminMessageQuery;
import com.zsc.edu.gateway.modules.notice.query.UserMessageQuery; import com.zsc.edu.gateway.modules.notice.query.UserMessageQuery;
import com.zsc.edu.gateway.modules.notice.vo.AdminMessageVo; import com.zsc.edu.gateway.modules.notice.vo.AdminMessageVo;
import com.zsc.edu.gateway.modules.notice.vo.UserMessageVo; import com.zsc.edu.gateway.modules.notice.vo.UserMessageVo;
import org.springframework.transaction.annotation.Transactional;
import java.util.List; import java.util.List;
@ -32,5 +31,5 @@ public interface UserMessageService extends IService<UserMessage> {
Integer markAsRead(UserDetailsImpl userDetails, List<Long> messageIds); Integer markAsRead(UserDetailsImpl userDetails, List<Long> messageIds);
IPage<AdminMessageVo> getAdminVo(Page<UserMessageVo> page, AdminMessageQuery query); IPage<AdminMessageVo> getAdminMessagePage(Page<UserMessageVo> page, AdminMessageQuery query);
} }

View File

@ -12,6 +12,7 @@ import com.zsc.edu.gateway.framework.message.sms.SmsSender;
import com.zsc.edu.gateway.framework.security.UserDetailsImpl; import com.zsc.edu.gateway.framework.security.UserDetailsImpl;
import com.zsc.edu.gateway.modules.notice.dto.UserMessageDto; import com.zsc.edu.gateway.modules.notice.dto.UserMessageDto;
import com.zsc.edu.gateway.modules.notice.entity.*; import com.zsc.edu.gateway.modules.notice.entity.*;
import com.zsc.edu.gateway.modules.notice.mapper.MessageMapper;
import com.zsc.edu.gateway.modules.notice.query.AdminMessageQuery; import com.zsc.edu.gateway.modules.notice.query.AdminMessageQuery;
import com.zsc.edu.gateway.modules.notice.query.UserMessageQuery; import com.zsc.edu.gateway.modules.notice.query.UserMessageQuery;
import com.zsc.edu.gateway.modules.notice.repo.MessageRepository; import com.zsc.edu.gateway.modules.notice.repo.MessageRepository;
@ -48,7 +49,7 @@ public class UserMessageServiceImpl extends ServiceImpl<UserMessageRepository, U
private final UserMessageRepository userMessageRepository; private final UserMessageRepository userMessageRepository;
private final MessageAttachmentService messageAttachmentService; private final MessageAttachmentService messageAttachmentService;
private final UserRepository userRepository; private final UserRepository userRepository;
private final MessageMapper messageMapper;
/** /**
* 查询消息详情 * 查询消息详情
* *
@ -79,7 +80,7 @@ public class UserMessageServiceImpl extends ServiceImpl<UserMessageRepository, U
*/ */
@Override @Override
public IPage<UserMessageVo> page(Page<UserMessageVo> page, UserMessageQuery query) { public IPage<UserMessageVo> page(Page<UserMessageVo> page, UserMessageQuery query) {
return userMessageRepository.query(page, query); return userMessageRepository.page(page, query);
} }
/** /**
@ -121,8 +122,8 @@ public class UserMessageServiceImpl extends ServiceImpl<UserMessageRepository, U
* @return 消息设置列表 * @return 消息设置列表
*/ */
@Override @Override
public IPage<AdminMessageVo> getAdminVo(Page<UserMessageVo> page, AdminMessageQuery query) { public IPage<AdminMessageVo> getAdminMessagePage(Page<UserMessageVo> page, AdminMessageQuery query) {
return userMessageRepository.getAdminVo(page, query); return userMessageRepository.pageAdmin(page, query);
} }
@ -136,7 +137,7 @@ public class UserMessageServiceImpl extends ServiceImpl<UserMessageRepository, U
@Override @Override
public Boolean createByAdmin(UserMessageDto dto) { public Boolean createByAdmin(UserMessageDto dto) {
Set<User> users = new HashSet<>(userRepository.selectList(new LambdaQueryWrapper<User>().in(User::getId, dto.userIds))); Set<User> users = new HashSet<>(userRepository.selectList(new LambdaQueryWrapper<User>().in(User::getId, dto.userIds)));
Message message = new Message(dto.type, false, dto.email, dto.sms, dto.html, dto.title, dto.content); Message message = messageMapper.toEntity(dto);
messageRepo.insert(message); messageRepo.insert(message);
Set<UserMessage> userMessages = users.stream() Set<UserMessage> userMessages = users.stream()
.map(user -> new UserMessage(null, user.getId(), message.getId(), true, null)) .map(user -> new UserMessage(null, user.getId(), message.getId(), true, null))

View File

@ -28,12 +28,12 @@ public class DeptController {
/** /**
* 返回管理部门列表 hasAuthority('DEPT_QUERY') * 返回管理部门列表 hasAuthority('DEPT_QUERY')
* * @param deptId 部门ID
* @return 部门列表 * @return 部门列表
*/ */
@GetMapping() @GetMapping("/{deptId}")
public List<Dept> getDeptTree() { public List<Dept> getDeptTree(@PathVariable Long deptId) {
return service.getDeptTree(); return service.getDeptTree(deptId);
} }
/** /**

View File

@ -36,5 +36,5 @@ public interface DeptService extends IService<Dept> {
* *
* @return Dept * @return Dept
*/ */
List<Dept> getDeptTree(); List<Dept> getDeptTree(Long deptId);
} }

View File

@ -2,10 +2,12 @@ package com.zsc.edu.gateway.modules.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zsc.edu.gateway.common.util.TreeUtil;
import com.zsc.edu.gateway.exception.ConstraintException; import com.zsc.edu.gateway.exception.ConstraintException;
import com.zsc.edu.gateway.modules.system.dto.AuthorityDto; import com.zsc.edu.gateway.modules.system.dto.AuthorityDto;
//import com.zsc.edu.gateway.modules.system.dto.RoleAuthorityDto; //import com.zsc.edu.gateway.modules.system.dto.RoleAuthorityDto;
import com.zsc.edu.gateway.modules.system.entity.Authority; import com.zsc.edu.gateway.modules.system.entity.Authority;
import com.zsc.edu.gateway.modules.system.entity.Dept;
import com.zsc.edu.gateway.modules.system.entity.Role; import com.zsc.edu.gateway.modules.system.entity.Role;
import com.zsc.edu.gateway.modules.system.mapper.AuthorityMapper; import com.zsc.edu.gateway.modules.system.mapper.AuthorityMapper;
import com.zsc.edu.gateway.modules.system.repo.AuthorityRepository; import com.zsc.edu.gateway.modules.system.repo.AuthorityRepository;
@ -13,6 +15,8 @@ import com.zsc.edu.gateway.modules.system.service.AuthorityService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.Set; import java.util.Set;
/** /**

View File

@ -12,7 +12,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects;
/** /**
* <p> * <p>
@ -57,14 +59,25 @@ public class DeptServiceImpl extends ServiceImpl<DeptRepository, Dept> implement
} }
@Override @Override
public List<Dept> getDeptTree() { public List<Dept> getDeptTree(Long deptId) {
List<Dept> deptTrees = repo.selectDeptTree(); List<Dept> deptTrees = repo.selectDeptTree();
return TreeUtil.makeTree( List<Dept> deptTree = TreeUtil.makeTree(
deptTrees, deptTrees,
department -> department.getPid() == null || department.getPid() == -1L, department -> department.getPid() == null || department.getPid() == -1L,
(parent, child) -> parent.getId().equals(child.getPid()), (parent, child) -> parent.getId().equals(child.getPid()),
Dept::setChildren Dept::setChildren
); );
if (Objects.nonNull(deptId)) {
List<Dept> deptChildrenTree = new ArrayList<>();
TreeUtil.forLevelOrder(deptTree, node -> {
if (node.getId().equals(deptId)) {
deptChildrenTree.add(node);
}
}, Dept::getChildren);
return deptChildrenTree;
}
return deptTree;
} }
} }

View File

@ -31,6 +31,7 @@
</collection> </collection>
</resultMap> </resultMap>
<select id="selectByBulletinId" resultMap="BulletinMap"> <select id="selectByBulletinId" resultMap="BulletinMap">
//TODO 查询数据问题已经修改
SELECT sb.*, a.id as attachment_id, a.file_name as attachment_file_name, a.url as attachment_url SELECT sb.*, a.id as attachment_id, a.file_name as attachment_file_name, a.url as attachment_url
FROM sys_bulletin sb FROM sys_bulletin sb
LEFT JOIN LEFT JOIN

View File

@ -47,7 +47,7 @@
</where> </where>
</select> </select>
<select id="query" resultType="com.zsc.edu.gateway.modules.notice.vo.UserMessageVo" resultMap="userMessageMap"> <select id="page" resultType="com.zsc.edu.gateway.modules.notice.vo.UserMessageVo" resultMap="userMessageMap">
select sum.*,sm.*,su.username,su.address,su.avatar,su.name select sum.*,sm.*,su.username,su.address,su.avatar,su.name
from sys_user_message sum from sys_user_message sum
left join sys_user su on sum.user_id = su.id left join sys_user su on sum.user_id = su.id
@ -79,7 +79,7 @@
sm.create_time DESC sm.create_time DESC
</select> </select>
<select id="getAdminVo" resultMap="userMessageAdminMap"> <select id="pageAdmin" resultMap="userMessageAdminMap">
SELECT SELECT
sm.*, -- 获取消息详情 sm.*, -- 获取消息详情
COUNT(DISTINCT sum.user_id) AS user_count, -- 统计用户的关联数量 COUNT(DISTINCT sum.user_id) AS user_count, -- 统计用户的关联数量

View File

@ -8,8 +8,12 @@
<result column="pid" property="pid"/> <result column="pid" property="pid"/>
<result column="name" property="name"/> <result column="name" property="name"/>
<result column="dept_sort" property="deptSort"/> <result column="dept_sort" property="deptSort"/>
<collection property="members" ofType="com.zsc.edu.gateway.modules.system.vo.UserVo" autoMapping="true" <collection
columnPrefix="members_"> property="members"
ofType="com.zsc.edu.gateway.modules.system.vo.UserVo"
autoMapping="true"
columnPrefix="members_"
>
<id column="id" jdbcType="BIGINT" property="userId"/> <id column="id" jdbcType="BIGINT" property="userId"/>
<result column="username" jdbcType="VARCHAR" property="username"/> <result column="username" jdbcType="VARCHAR" property="username"/>
<result column="email" jdbcType="VARCHAR" property="email"/> <result column="email" jdbcType="VARCHAR" property="email"/>