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 冲突
@ExceptionHandler(value = {Exception.class})
public ResponseEntity<Object> handleException(Exception ex) throws JsonProcessingException {
log.error("Exception: {}", objectMapper.writeValueAsString(Map.of("msg", ex.getMessage())));
return new ResponseEntity<>(objectMapper.writeValueAsString(Map.of("msg", ex.getMessage())), HttpStatus.INTERNAL_SERVER_ERROR);
}
// @ExceptionHandler(value = {Exception.class})
// public ResponseEntity<Object> handleException(Exception ex) throws JsonProcessingException {
// log.error("Exception: {}", objectMapper.writeValueAsString(Map.of("msg", ex.getMessage())));
// return new ResponseEntity<>(objectMapper.writeValueAsString(Map.of("msg", ex.getMessage())), HttpStatus.INTERNAL_SERVER_ERROR);
// }
}

View File

@ -97,8 +97,8 @@ public class UserMessageController {
*/
@GetMapping
@PreAuthorize("hasAuthority('MESSAGE_QUERY')")
public IPage<AdminMessageVo> page(Page<UserMessageVo> pageParam, AdminMessageQuery query) {
return service.getAdminVo(pageParam, query);
public IPage<AdminMessageVo> page(Page<UserMessageVo> page, AdminMessageQuery 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 org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 用户消息Repo
*
@ -21,7 +19,7 @@ public interface UserMessageRepository extends BaseMapper<UserMessage> {
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.vo.AdminMessageVo;
import com.zsc.edu.gateway.modules.notice.vo.UserMessageVo;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@ -32,5 +31,5 @@ public interface UserMessageService extends IService<UserMessage> {
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.modules.notice.dto.UserMessageDto;
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.UserMessageQuery;
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 MessageAttachmentService messageAttachmentService;
private final UserRepository userRepository;
private final MessageMapper messageMapper;
/**
* 查询消息详情
*
@ -79,7 +80,7 @@ public class UserMessageServiceImpl extends ServiceImpl<UserMessageRepository, U
*/
@Override
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 消息设置列表
*/
@Override
public IPage<AdminMessageVo> getAdminVo(Page<UserMessageVo> page, AdminMessageQuery query) {
return userMessageRepository.getAdminVo(page, query);
public IPage<AdminMessageVo> getAdminMessagePage(Page<UserMessageVo> page, AdminMessageQuery query) {
return userMessageRepository.pageAdmin(page, query);
}
@ -136,7 +137,7 @@ public class UserMessageServiceImpl extends ServiceImpl<UserMessageRepository, U
@Override
public Boolean createByAdmin(UserMessageDto dto) {
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);
Set<UserMessage> userMessages = users.stream()
.map(user -> new UserMessage(null, user.getId(), message.getId(), true, null))

View File

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

View File

@ -36,5 +36,5 @@ public interface DeptService extends IService<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.extension.service.impl.ServiceImpl;
import com.zsc.edu.gateway.common.util.TreeUtil;
import com.zsc.edu.gateway.exception.ConstraintException;
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.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.mapper.AuthorityMapper;
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 org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.Set;
/**

View File

@ -12,7 +12,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* <p>
@ -57,14 +59,25 @@ public class DeptServiceImpl extends ServiceImpl<DeptRepository, Dept> implement
}
@Override
public List<Dept> getDeptTree() {
public List<Dept> getDeptTree(Long deptId) {
List<Dept> deptTrees = repo.selectDeptTree();
return TreeUtil.makeTree(
List<Dept> deptTree = TreeUtil.makeTree(
deptTrees,
department -> department.getPid() == null || department.getPid() == -1L,
(parent, child) -> parent.getId().equals(child.getPid()),
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>
</resultMap>
<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
FROM sys_bulletin sb
LEFT JOIN

View File

@ -47,7 +47,7 @@
</where>
</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
from sys_user_message sum
left join sys_user su on sum.user_id = su.id
@ -79,7 +79,7 @@
sm.create_time DESC
</select>
<select id="getAdminVo" resultMap="userMessageAdminMap">
<select id="pageAdmin" resultMap="userMessageAdminMap">
SELECT
sm.*, -- 获取消息详情
COUNT(DISTINCT sum.user_id) AS user_count, -- 统计用户的关联数量

View File

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