feat(消息模块与部门模块): 修改了消息模块的bug并从新建消息接口中独立出添加附件接口,部门模块新添加了部门树返回接口
This commit is contained in:
parent
8521262f69
commit
dbbc9e82db
@ -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);
|
||||||
}
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -30,7 +30,7 @@ public class Message extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 是否系统生成
|
* 是否系统生成
|
||||||
*/
|
*/
|
||||||
public Boolean system;
|
public Boolean system = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否需要发送邮件
|
* 是否需要发送邮件
|
||||||
|
@ -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> {
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
@ -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))
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -36,5 +36,5 @@ public interface DeptService extends IService<Dept> {
|
|||||||
*
|
*
|
||||||
* @return Dept
|
* @return Dept
|
||||||
*/
|
*/
|
||||||
List<Dept> getDeptTree();
|
List<Dept> getDeptTree(Long deptId);
|
||||||
}
|
}
|
||||||
|
@ -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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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, -- 统计用户的关联数量
|
||||||
|
@ -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"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user