| | |
| | | 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:list')") |
| | | // @PreAuthorize("@ss.hasPermi('system:notice:list')") |
| | | @GetMapping("/list") |
| | | public TableDataInfo list(SysNotice notice) { |
| | | startPage(); |
| | | List<SysNotice> list = noticeService.selectNoticeList(notice); |
| | | for (SysNotice sysNotice : list) { |
| | | LambdaQueryWrapper<SysNoticeUser> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(SysNoticeUser::getNoticeId, sysNotice.getNoticeId()); |
| | | List<SysNoticeUser> sysNoticeUsers = sysNoticeUserService.list(wq); |
| | | if(null != sysNoticeUsers && !sysNoticeUsers.isEmpty()){ |
| | | List<String> longList = sysNoticeUsers.stream().map(i -> i.getUserId().toString()).collect(Collectors.toList()); |
| | | sysNotice.setUserIds(longList); |
| | | } |
| | | } |
| | | return getDataTable(list); |
| | | } |
| | | |
| | | /** |
| | | * 根据通知公告编号获取详细信息 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:notice:query')") |
| | | // @PreAuthorize("@ss.hasPermi('system:notice:query')") |
| | | @GetMapping(value = "/{noticeId}") |
| | | public AjaxResult getInfo(@PathVariable Long noticeId) { |
| | | return success(noticeService.selectNoticeById(noticeId)); |
| | | SysNotice byId = noticeService.getById(noticeId); |
| | | LambdaQueryWrapper<SysNoticeUser> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(SysNoticeUser::getNoticeId, noticeId); |
| | | List<SysNoticeUser> sysNoticeUsers = sysNoticeUserService.list(wq); |
| | | if(null != sysNoticeUsers && !sysNoticeUsers.isEmpty()){ |
| | | List<String> longList = sysNoticeUsers.stream().map(i -> i.getUserId().toString()).collect(Collectors.toList()); |
| | | byId.setUserIds(longList); |
| | | } |
| | | return success(byId); |
| | | } |
| | | |
| | | /** |
| | | * 新增通知公告 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:notice:add')") |
| | | // @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()); |
| | | boolean insertNotice = noticeService.save(notice); |
| | | if (insertNotice){ |
| | | 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(); |
| | | } |
| | | |
| | | /** |
| | | * 修改通知公告 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:notice:edit')") |
| | | // @PreAuthorize("@ss.hasPermi('system:notice:edit')") |
| | | @Log(title = "通知公告", businessType = BusinessType.UPDATE) |
| | | @PutMapping |
| | | public AjaxResult edit(@Validated @RequestBody SysNotice notice) { |
| | | notice.setUpdateBy(getUsername()); |
| | | return toAjax(noticeService.updateNotice(notice)); |
| | | List<String> userIds = notice.getUserIds(); |
| | | if (noticeService.updateById(notice)) { |
| | | if(null !=userIds && !userIds.isEmpty()){ |
| | | LambdaQueryWrapper<SysNoticeUser> wq = new LambdaQueryWrapper<>(); |
| | | wq.eq(SysNoticeUser::getNoticeId, notice.getNoticeId()); |
| | | sysNoticeUserService.remove(wq); |
| | | for (String userId : userIds) { |
| | | SysNoticeUser user = new SysNoticeUser(); |
| | | user.setId(IdUtil.getSnowflake().nextId()); |
| | | user.setNoticeId(notice.getNoticeId()); |
| | | user.setUserId(Long.valueOf(userId)); |
| | | sysNoticeUserService.save(user); |
| | | } |
| | | } |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | return AjaxResult.error(); |
| | | } |
| | | |
| | | /** |
| | | * 删除通知公告 |
| | | */ |
| | | @PreAuthorize("@ss.hasPermi('system:notice:remove')") |
| | | // @PreAuthorize("@ss.hasPermi('system:notice:remove')") |
| | | @Log(title = "通知公告", businessType = BusinessType.DELETE) |
| | | @DeleteMapping("/{noticeIds}") |
| | | 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())); |
| | | } |
| | | } |
| | | } |