diff --git a/src/main/java/com/zsc/edu/gateway/framework/DeptTreeUtil.java b/src/main/java/com/zsc/edu/gateway/framework/DeptTreeUtil.java new file mode 100644 index 0000000..3c75c53 --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/framework/DeptTreeUtil.java @@ -0,0 +1,66 @@ +package com.zsc.edu.gateway.framework; + +import com.zsc.edu.gateway.modules.system.entity.Dept; +import com.zsc.edu.gateway.modules.system.entity.User; +import com.zsc.edu.gateway.modules.system.vo.DeptTree; +import com.zsc.edu.gateway.modules.system.vo.UserTree; +import org.springframework.stereotype.Component; + +import java.util.*; +import java.util.function.BiConsumer; +import java.util.function.BiFunction; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +@Component +public class DeptTreeUtil { + + public static List makeTree(List list, Predicate rootCheck, BiFunction parentCheck, BiConsumer> setSubChildren) { + return list.stream() + .filter(rootCheck) + .peek(x -> setSubChildren.accept(x, makeChildren(x, list, parentCheck, setSubChildren))) + .collect(Collectors.toList()); + } + + private static List makeChildren(E parent, List allData, BiFunction parentCheck, BiConsumer> setSubChildren) { + return allData.stream() + .filter(x -> parentCheck.apply(parent, x)) + .peek(x -> setSubChildren.accept(x, makeChildren(x, allData, parentCheck, setSubChildren))) + .collect(Collectors.toList()); + } + + public static List buildDeptTree(List depots, Map> userMap) { + List deptTrees = depots.stream() + .map(DeptTreeUtil::convertToDeptTree) + .collect(Collectors.toList()); + + deptTrees.forEach(deptTree -> { + List users = userMap.getOrDefault(deptTree.getId(), Collections.emptyList()); + deptTree.setMembers(users.stream() + .map(DeptTreeUtil::convertToUserTree) + .collect(Collectors.toList())); + }); + + return makeTree( + deptTrees, + deptTree -> deptTree.getPid() == null || deptTree.getPid() == 0L, + (parent, child) -> parent.getId().equals(child.getPid()), + DeptTree::setChildren + ); + } + + private static DeptTree convertToDeptTree(Dept dept) { + DeptTree deptTree = new DeptTree(); + deptTree.setId(dept.getId()); + deptTree.setPid(dept.getPid()); + deptTree.setName(dept.getName()); + return deptTree; + } + + private static UserTree convertToUserTree(User user) { + UserTree userTree = new UserTree(); + userTree.setId(user.getId()); + userTree.setName(user.getName()); + return userTree; + } +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/attachment/vo/AttachmentVo.java b/src/main/java/com/zsc/edu/gateway/modules/attachment/vo/AttachmentVo.java new file mode 100644 index 0000000..1de36e1 --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/attachment/vo/AttachmentVo.java @@ -0,0 +1,12 @@ +package com.zsc.edu.gateway.modules.attachment.vo; + +import lombok.Data; + +/** + * @author zhuang + */ +@Data +public class AttachmentVo { + public String fileName; + public String url; +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/repo/MessageAttachmentRepository.java b/src/main/java/com/zsc/edu/gateway/modules/notice/repo/MessageAttachmentRepository.java new file mode 100644 index 0000000..2931591 --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/notice/repo/MessageAttachmentRepository.java @@ -0,0 +1,7 @@ +package com.zsc.edu.gateway.modules.notice.repo; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.zsc.edu.gateway.modules.notice.entity.MessageAttachment; + +public interface MessageAttachmentRepository extends BaseMapper { +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/service/MessageAttachmentService.java b/src/main/java/com/zsc/edu/gateway/modules/notice/service/MessageAttachmentService.java new file mode 100644 index 0000000..12e302f --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/notice/service/MessageAttachmentService.java @@ -0,0 +1,7 @@ +package com.zsc.edu.gateway.modules.notice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.zsc.edu.gateway.modules.notice.entity.MessageAttachment; + +public interface MessageAttachmentService extends IService { +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/MessageAttachmentServiceImpl.java b/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/MessageAttachmentServiceImpl.java new file mode 100644 index 0000000..32e0d62 --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/notice/service/impl/MessageAttachmentServiceImpl.java @@ -0,0 +1,16 @@ +package com.zsc.edu.gateway.modules.notice.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zsc.edu.gateway.modules.notice.entity.MessageAttachment; +import com.zsc.edu.gateway.modules.notice.repo.MessageAttachmentRepository; +import com.zsc.edu.gateway.modules.notice.service.MessageAttachmentService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +/** + * @author zhuang + */ +@Service +@AllArgsConstructor +public class MessageAttachmentServiceImpl extends ServiceImpl implements MessageAttachmentService { +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/system/vo/DeptTree.java b/src/main/java/com/zsc/edu/gateway/modules/system/vo/DeptTree.java new file mode 100644 index 0000000..93a3657 --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/system/vo/DeptTree.java @@ -0,0 +1,26 @@ +package com.zsc.edu.gateway.modules.system.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.zsc.edu.gateway.modules.system.entity.User; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author zhuang + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class DeptTree { + + private Long id; + @JsonIgnore + private Long pid; + private String name; + List children = new ArrayList<>(); + List members = new ArrayList<>(); +} diff --git a/src/main/java/com/zsc/edu/gateway/modules/system/vo/UserTree.java b/src/main/java/com/zsc/edu/gateway/modules/system/vo/UserTree.java new file mode 100644 index 0000000..7a35ea4 --- /dev/null +++ b/src/main/java/com/zsc/edu/gateway/modules/system/vo/UserTree.java @@ -0,0 +1,16 @@ +package com.zsc.edu.gateway.modules.system.vo; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author zhuang + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class UserTree { + private Long id; + private String name; +}