| | |
| | | package com.ltkj.web.controller.system; |
| | | |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import cn.hutool.core.util.IdUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.ltkj.common.core.domain.entity.SysUser; |
| | | import com.ltkj.common.core.domain.model.LoginUser; |
| | | import com.ltkj.common.utils.SecurityUtils; |
| | | import com.ltkj.hosp.domain.SysNoticeUser; |
| | | import com.ltkj.hosp.service.SysNoticeUserService; |
| | | import com.ltkj.system.service.ISysUserService; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.security.access.prepost.PreAuthorize; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.DeleteMapping; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | |
| | | public class SysNoticeController extends BaseController { |
| | | @Autowired |
| | | private ISysNoticeService noticeService; |
| | | @Autowired |
| | | private SysNoticeUserService sysNoticeUserService; |
| | | @Autowired |
| | | private ISysUserService userService; |
| | | |
| | | /** |
| | | * 获取通知公告列表 |
| | |
| | | // @PreAuthorize("@ss.hasPermi('system:notice:add')") |
| | | @Log(title = "通知公告", businessType = BusinessType.INSERT) |
| | | @PostMapping |
| | | @Transactional |
| | | public AjaxResult add(@Validated @RequestBody SysNotice notice) { |
| | | notice.setCreateBy(getUsername()); |
| | | return toAjax(noticeService.insertNotice(notice)); |
| | | notice.setNoticeId(IdUtil.getSnowflake().nextId()); |
| | | int insertNotice = noticeService.insertNotice(notice); |
| | | if (insertNotice > 0){ |
| | | if (notice.getUserIds() == null || notice.getUserIds().isEmpty()){ |
| | | if (StrUtil.isBlank(notice.getDeptId())){ |
| | | notice.setUserIds(userService.list().stream().map(i -> String.valueOf(i.getUserId())).collect(Collectors.toList())); |
| | | }else { |
| | | LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.eq(SysUser::getDeptId, notice.getDeptId()); |
| | | notice.setUserIds(userService.list(wrapper).stream().map(i -> String.valueOf(i.getUserId())).collect(Collectors.toList())); |
| | | } |
| | | } |
| | | for (String userId : notice.getUserIds()) { |
| | | SysNoticeUser user = new SysNoticeUser(); |
| | | user.setId(IdUtil.getSnowflake().nextId()); |
| | | user.setNoticeId(notice.getNoticeId()); |
| | | user.setUserId(Long.valueOf(userId)); |
| | | sysNoticeUserService.save(user); |
| | | } |
| | | }else return AjaxResult.error(); |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | /** |
| | |
| | | public AjaxResult remove(@PathVariable Long[] noticeIds) { |
| | | return toAjax(noticeService.deleteNoticeByIds(noticeIds)); |
| | | } |
| | | |
| | | @GetMapping("/noticeToday") |
| | | public AjaxResult noticeToday(){ |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | if (loginUser.getUserId().equalsIgnoreCase("1")){ |
| | | return AjaxResult.success(noticeService.selectAllByAdmin()); |
| | | }else { |
| | | return AjaxResult.success(noticeService.selectAll(loginUser.getUserId())); |
| | | } |
| | | } |
| | | } |