From b2dd1b9e056d158d0f462c2e564fefd3d0bae740 Mon Sep 17 00:00:00 2001 From: Jackwang Date: Tue, 17 Aug 2021 16:20:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=86=85=E5=AE=B9=E7=AE=A1=E7=90=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/controller/NoticeController.java | 26 ++++ .../esua/epdc/dao/NoticeDepartmentDao.java | 5 + .../esua/epdc/service/NoticeService.java | 18 +++ .../epdc/service/impl/NoticeServiceImpl.java | 129 ++++++++++++++---- .../src/main/resources/mapper/NoticeDao.xml | 8 +- .../resources/mapper/NoticeDepartmentDao.xml | 8 ++ 6 files changed, 165 insertions(+), 29 deletions(-) diff --git a/epdc-cloud-news/src/main/java/com/elink/esua/epdc/controller/NoticeController.java b/epdc-cloud-news/src/main/java/com/elink/esua/epdc/controller/NoticeController.java index ddd8d7e..04e2090 100644 --- a/epdc-cloud-news/src/main/java/com/elink/esua/epdc/controller/NoticeController.java +++ b/epdc-cloud-news/src/main/java/com/elink/esua/epdc/controller/NoticeController.java @@ -149,4 +149,30 @@ public class NoticeController { return new Result>().ok(page); } + /** + * @describe: 是否推荐 + * @author wangtong + * @date 2021/8/17 14:07 + * @params [dto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @PutMapping("handleIsTop") + public Result handleIsTop(@RequestBody NoticeDTO dto) { + return noticeService.handleIsTop(dto); + } + + /** + * @describe: 是否上下架 + * @author wangtong + * @date 2021/8/17 14:07 + * @params [dto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + @PutMapping("handleIsUpDown") + public Result handleIsUpDown(@RequestBody NoticeDTO dto) { + return noticeService.handleIsUpDown(dto); + } + + + } \ No newline at end of file diff --git a/epdc-cloud-news/src/main/java/com/elink/esua/epdc/dao/NoticeDepartmentDao.java b/epdc-cloud-news/src/main/java/com/elink/esua/epdc/dao/NoticeDepartmentDao.java index 708832b..d3b8cf6 100644 --- a/epdc-cloud-news/src/main/java/com/elink/esua/epdc/dao/NoticeDepartmentDao.java +++ b/epdc-cloud-news/src/main/java/com/elink/esua/epdc/dao/NoticeDepartmentDao.java @@ -20,6 +20,9 @@ package com.elink.esua.epdc.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.entity.NoticeDepartmentEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 通知部门关系表 @@ -39,4 +42,6 @@ public interface NoticeDepartmentDao extends BaseDao { * @date 2019/9/5 16:37 */ int deleteByNoticeId(String noticeId); + + List selectListNoticeDeptIdInfo(@Param("noticeId") String noticeId); } \ No newline at end of file diff --git a/epdc-cloud-news/src/main/java/com/elink/esua/epdc/service/NoticeService.java b/epdc-cloud-news/src/main/java/com/elink/esua/epdc/service/NoticeService.java index 743063c..54fbf2a 100644 --- a/epdc-cloud-news/src/main/java/com/elink/esua/epdc/service/NoticeService.java +++ b/epdc-cloud-news/src/main/java/com/elink/esua/epdc/service/NoticeService.java @@ -177,4 +177,22 @@ public interface NoticeService extends BaseService { * @return com.elink.esua.epdc.commons.tools.utils.Result> */ PageData modulePage(Map params); + + /** + * @describe: 是否推荐 + * @author wangtong + * @date 2021/8/17 14:07 + * @params [dto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result handleIsTop(NoticeDTO dto); + + /** + * @describe: 是否上下架 + * @author wangtong + * @date 2021/8/17 14:07 + * @params [dto] + * @return com.elink.esua.epdc.commons.tools.utils.Result + */ + Result handleIsUpDown(NoticeDTO dto); } \ No newline at end of file diff --git a/epdc-cloud-news/src/main/java/com/elink/esua/epdc/service/impl/NoticeServiceImpl.java b/epdc-cloud-news/src/main/java/com/elink/esua/epdc/service/impl/NoticeServiceImpl.java index 9fffc51..563b6ac 100644 --- a/epdc-cloud-news/src/main/java/com/elink/esua/epdc/service/impl/NoticeServiceImpl.java +++ b/epdc-cloud-news/src/main/java/com/elink/esua/epdc/service/impl/NoticeServiceImpl.java @@ -17,6 +17,7 @@ package com.elink.esua.epdc.service.impl; +import com.alibaba.nacos.client.naming.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; @@ -30,6 +31,7 @@ import com.elink.esua.epdc.commons.tools.security.user.UserDetail; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dao.NoticeDao; +import com.elink.esua.epdc.dao.NoticeDepartmentDao; import com.elink.esua.epdc.dto.NoticeDTO; import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeBrowseFormDTO; @@ -68,19 +70,28 @@ public class NoticeServiceImpl extends BaseServiceImpl @Autowired private NoticeDepartmentService noticeDepartmentService; + @Autowired + private NoticeDepartmentDao noticeDepartmentDao; + @Override public PageData page(Map params) { - String noticeTitle = (String) params.get("noticeTitle"); - params.put("noticeTitle", noticeTitle.trim()); - QueryWrapper wrapper = this.getWrapper(params) - .eq(FieldConstant.CREATED_BY, SecurityUser.getUserId()) - .isNull("type_id"); - - IPage page = baseDao.selectPage( - getPage(params, FieldConstant.CREATED_TIME, false), - wrapper - ); - return getPageData(page, NoticeDTO.class); +// String noticeTitle = (String) params.get("noticeTitle"); +// params.put("noticeTitle", noticeTitle.trim()); +// QueryWrapper wrapper = this.getWrapper(params) +// .eq(FieldConstant.CREATED_BY, SecurityUser.getUserId()); +// +// IPage page = baseDao.selectPage( +// getPage(params, FieldConstant.CREATED_TIME, false), +// wrapper +// ); +// return getPageData(page, NoticeDTO.class); + + params.put("createdBy", SecurityUser.getUserId()); + + IPage page = getPage(params); + List list = baseDao.getModulePageList(params); + return new PageData<>(list, page.getTotal()); + } @Override @@ -89,7 +100,7 @@ public class NoticeServiceImpl extends BaseServiceImpl String gridId = (String) params.get("gridId"); params.put("noticeTitle", noticeTitle.trim()); params.put("deptIdList", SecurityUser.getUser().getDeptIdList()); - params.put("gridId",gridId.trim()); + params.put("gridId", gridId.trim()); IPage page = getPage(params); List list = baseDao.selectListByDeptId(params); return new PageData<>(list, page.getTotal()); @@ -118,7 +129,7 @@ public class NoticeServiceImpl extends BaseServiceImpl public NoticeDTO get(String id) { NoticeEntity entity = baseDao.selectById(id); NoticeDTO dto = ConvertUtils.sourceToTarget(entity, NoticeDTO.class); - if(StringUtils.isNotBlank(entity.getTypeId())){ + if (StringUtils.isNotBlank(entity.getTypeId())) { String[] ids = entity.getAllTypeId().split(","); List moduleTypes = Arrays.asList(ids); dto.setAllTypeId(moduleTypes); @@ -128,9 +139,38 @@ public class NoticeServiceImpl extends BaseServiceImpl List ids = Arrays.asList(idsShow); dto.setAllDeptIdsShow(ids.subList(1,ids.size())); }*/ + // 通知部门回显 + List listNoticeDeptId = noticeDepartmentDao.selectListNoticeDeptIdInfo(dto.getId()); + dto.setAllDeptIdsShow(this.getParentAllDeptInfo(listNoticeDeptId)); return dto; } + /** + * 根据部门id, 查询所有的父级id, 最后拼接起来 + * @param listDeptId + * @return java.util.List + * @Author zhangyong + * @Date 09:55 2020-06-02 + **/ + private List getParentAllDeptInfo(List listDeptId){ + // [0,1,2,3] + List allDeptIdsShowList = new ArrayList<>(); + for (Long list : listDeptId){ + // 查询父级部门 + Result parentAndAllDept = adminFeignClient.getParentAndAllDept(list.toString()); + ParentAndAllDeptDTO parentAndAllDeptDTO = parentAndAllDept.getData(); + String allDeptIds = parentAndAllDeptDTO.getAllDeptIds(); + String[] deptIdsShow = allDeptIds.split(","); + Long[] allDeptIdsShowLong = new Long[deptIdsShow.length]; + // 从第一级开始保存 + for (int i = 0; i <= deptIdsShow.length -1; i++){ + allDeptIdsShowLong[i] = Long.valueOf(deptIdsShow[i]); + } + allDeptIdsShowList.add(allDeptIdsShowLong); + } + return allDeptIdsShowList; + } + @Override @Transactional(rollbackFor = Exception.class) public void save(NoticeDTO dto) { @@ -160,6 +200,14 @@ public class NoticeServiceImpl extends BaseServiceImpl NoticeEntity entity = ConvertUtils.sourceToTarget(dto, NoticeEntity.class); entity.setDeptId(noticeDeptId); entity.setDeptName(user.getDeptName()); + if(!CollectionUtils.isEmpty(dto.getAllTypeId())){ + entity.setAllTypeId(StringUtils.join(dto.getAllTypeId(), ",")); + } + if ("0".equals(entity.getTopFlag())) { + entity.setTopTime(null); + } else { + entity.setTopTime(new Date()); + } // 塞入全部部门ids,names Result parentResult = adminFeignClient.getParentAndAllDept(String.valueOf(noticeDeptId)); @@ -257,13 +305,13 @@ public class NoticeServiceImpl extends BaseServiceImpl } /** - * @describe: 后台内容管理-新增/更新 - * @author wangtong - * @date 2021/8/11 14:19 - * @params [] - * @return void - */ - private void saveContentOrUpdate(NoticeDTO dto){ + * @return void + * @describe: 后台内容管理-新增/更新 + * @author wangtong + * @date 2021/8/11 14:19 + * @params [] + */ + private void saveContentOrUpdate(NoticeDTO dto) { UserDetail user = SecurityUser.getUser(); // 通知所属部门(发布者所在部门) Long noticeDeptId = user.getDeptId(); @@ -273,9 +321,9 @@ public class NoticeServiceImpl extends BaseServiceImpl entity.setDeptId(noticeDeptId); entity.setDeptName(user.getDeptName()); entity.setAllTypeId(StringUtils.join(dto.getAllTypeId(), ",")); - if("0".equals(entity.getTopFlag())){ + if ("0".equals(entity.getTopFlag())) { entity.setTopTime(null); - }else{ + } else { entity.setTopTime(new Date()); } // 塞入全部部门ids,names @@ -319,18 +367,49 @@ public class NoticeServiceImpl extends BaseServiceImpl return new PageData<>(list, page.getTotal()); } + @Transactional + @Override + public Result handleIsTop(NoticeDTO dto) { + NoticeEntity entity = selectById(dto.getId()); + if (null == entity) { + return new Result().error("未查到相关数据"); + } + if ("0".equals(dto.getTopFlag())) { + entity.setTopFlag("1"); + entity.setTopTime(new Date()); + } else { + entity.setTopFlag("0"); + } + updateById(entity); + return new Result().ok(""); + } + + @Override + public Result handleIsUpDown(NoticeDTO dto) { + NoticeEntity entity = selectById(dto.getId()); + if (null == entity) { + return new Result().error("未查到相关数据"); + } + if ("0".equals(dto.getNoticeUpDownState())) { + entity.setNoticeUpDownState("1"); + } else { + entity.setNoticeUpDownState("0"); + } + updateById(entity); + return new Result().ok(""); + } + /** - * * 组织机构信息处理 * - * @params [dto, noticeList] * @return java.util.List + * @params [dto, noticeList] * @author liuchuang * @since 2020/3/7 14:56 */ private List handleOrganizationInfo(OrganizationModifyDTO dto, List noticeList) { List entities = new ArrayList<>(); - for (NoticeDTO notice: noticeList) { + for (NoticeDTO notice : noticeList) { NoticeEntity entity = new NoticeEntity(); if (StringUtils.isNotEmpty(notice.getParentDeptIds()) && StringUtils.isNotEmpty(notice.getParentDeptNames())) { List parentDeptIds = Arrays.asList(notice.getParentDeptIds().split(",")); diff --git a/epdc-cloud-news/src/main/resources/mapper/NoticeDao.xml b/epdc-cloud-news/src/main/resources/mapper/NoticeDao.xml index 5b1b1c1..9cdeaa6 100644 --- a/epdc-cloud-news/src/main/resources/mapper/NoticeDao.xml +++ b/epdc-cloud-news/src/main/resources/mapper/NoticeDao.xml @@ -51,9 +51,7 @@ updated_by = #{updatedBy}, updated_time = #{updatedTime}, dept_id=#{deptId}, - dept_name=#{deptName}, - TOP_FLAG=#{topFlag}, - NOTICE_UP_DOWN_STATE=#{noticeUpDownState} + dept_name=#{deptName} WHERE id = #{id} AND del_flag = '0' @@ -105,7 +103,9 @@ AND en.NOTICE_TITLE like '%${noticeTitle}%' - and en.type_id is not null + + AND FIND_IN_SET(#{typeId},ALL_TYPE_ID) + order by en.TOP_FLAG desc,en.TOP_TIME desc,en.CREATED_TIME desc + SELECT + DEPT_ID deptId + FROM + epdc_notice_department nd + WHERE nd.DEL_FLAG = 0 + AND nd.NOTICE_ID = #{noticeId} + \ No newline at end of file