From 56efd0aa54e2c5cea81ff9b28855bca520dee475 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期五, 17 十月 2025 16:42:43 +0800 Subject: [PATCH] 无形广告资产接口 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotifationUserController.java | 124 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 122 insertions(+), 2 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotifationUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotifationUserController.java index 6437622..e33b0f2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotifationUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotifationUserController.java @@ -1,8 +1,36 @@ package com.ruoyi.web.controller.api; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.basic.PageInfo; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.domain.entity.TDept; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.framework.web.service.TokenService; +import com.ruoyi.system.model.OaNotification; +import com.ruoyi.system.model.OaNotificationUser; +import com.ruoyi.system.query.NotificationListQuery; +import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.system.service.OaNotifationUserService; +import com.ruoyi.system.service.OaNotificationService; +import com.ruoyi.system.service.TDeptService; +import com.ruoyi.system.vo.system.NotificationDeptUserDetailVO; +import com.ruoyi.system.vo.system.NotificationDetailVO; +import com.ruoyi.system.vo.system.NotificationUserDetailVO; +import com.ruoyi.system.vo.system.NotificationVO; +import io.swagger.annotations.ApiOperation; +import jdk.nashorn.internal.parser.Token; +import org.springframework.beans.BeanUtils; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -15,6 +43,98 @@ @RestController @RequestMapping("/oa-notifation-user") public class OaNotifationUserController { + @Resource + private OaNotificationService oaNotificationService; + @Resource + private OaNotifationUserService oaNotifationUserService; + @Resource + private TDeptService deptService; + @Resource + private ISysUserService sysUserService; + @Resource + private TokenService tokenService; + /** + * 获取部门树列表 + */ + @ApiOperation("消息通知分页列表") + @PostMapping("/pageList") + public R<PageInfo<NotificationVO>> pageListUser(@RequestBody NotificationListQuery query) { + Long userId = tokenService.getLoginUser().getUserId(); + query.setUserId(userId); + return R.ok(oaNotificationService.pageListUser(query)); + } + + + @ApiOperation(value = "消息通知详情") + @GetMapping(value = "/detail") + public R<NotificationDetailVO> detail(String id) { + NotificationDetailVO notificationDetailVO = new NotificationDetailVO(); + OaNotification oaNotification = oaNotificationService.getById(id); + BeanUtils.copyProperties(oaNotification, notificationDetailVO); +// StringBuilder deptName = new StringBuilder(); +// List<TDept> tDepts = deptService.list(); +// List<SysUser> sysUsers = sysUserService.selectAllList(); +// List<OaNotificationUser> notifationUsers = oaNotifationUserService.lambdaQuery().eq(OaNotificationUser::getNotificationId, id) +// .list(); +// Map<Integer, String> deptMap = tDepts.stream().collect(Collectors.toMap(TDept::getId, TDept::getDeptName)); +// Map<Long, SysUser> userMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, e->e)); +// if (oaNotification.getType()){ +// for (String deptId : oaNotification.getDeptIds().split(",")) { +// String orDefault = deptMap.getOrDefault(Integer.parseInt(deptId), ""); +// deptName.append(orDefault).append(","); +// } +// if (deptName.length() > 0){ +// notificationDetailVO.setDeptName(deptName.substring(0,deptName.length()-1)); +// }else { +// notificationDetailVO.setDeptName(""); +// } +// List<NotificationDeptUserDetailVO> notificationUserVOS = new ArrayList<>(); +// List<Long> userIds = notifationUsers.stream().map(e -> e.getUserId().longValue()).collect(Collectors.toList()); +// if (!userIds.isEmpty()){ +// Map<String, List<SysUser>> deptUserList = sysUsers.stream().filter(e -> userIds.contains(e.getUserId())) +// .collect(Collectors.groupingBy(SysUser::getDeptId)); +// // 遍历这个map +// for (Map.Entry<String, List<SysUser>> entry : deptUserList.entrySet()) { +// List<SysUser> users = entry.getValue(); +// String deptId = entry.getKey(); +// NotificationDeptUserDetailVO notificationDeptUserDetailVO = new NotificationDeptUserDetailVO(); +// notificationDeptUserDetailVO.setDeptName(deptMap.getOrDefault(Integer.parseInt(deptId), "")); +// notificationDeptUserDetailVO.setUsers(users); +// // 查询部门下的员工数是否和users一致 +// long count = sysUsers.stream().filter(e -> e.getDeptId().equals(deptId)).count(); +// if (count==users.size()){ +// notificationDeptUserDetailVO.setIsAll(true); +// }else{ +// notificationDeptUserDetailVO.setIsAll(false); +// } +// notificationUserVOS.add(notificationDeptUserDetailVO); +// } +// } +// notificationDetailVO.setNotificationDeptUserDetailVOList(notificationUserVOS); +// +// }else{ +// +// notificationDetailVO.setDeptName("全部人员"); +// } +// List<NotificationUserDetailVO> notificationUserDetailVOS = new ArrayList<>(); + +// for (OaNotificationUser notifationUser : notifationUsers) { +// NotificationUserDetailVO notificationUserDetailVO = new NotificationUserDetailVO(); +// BeanUtils.copyProperties(notifationUser, notificationUserDetailVO); +// SysUser sysUser = userMap.get(notifationUser.getUserId().longValue()); +// if (sysUser==null){ +// continue; +// } +// notificationUserDetailVO.setDeptName(deptMap.getOrDefault(Integer.parseInt(sysUser.getDeptId()), "")); +// notificationUserDetailVO.setNickName(sysUser.getNickName()); +// notificationUserDetailVO.setPhonenumber(sysUser.getPhonenumber()); +// notificationUserDetailVO.setPosition(sysUser.getPosition()); +// notificationUserDetailVOS.add(notificationUserDetailVO); +// } + +// notificationDetailVO.setNotificationUserDetailVOS(notificationUserDetailVOS); + return R.ok(notificationDetailVO); + } } -- Gitblit v1.7.1