From c6a8d8661b94893e11a9de598657a9289537f47e Mon Sep 17 00:00:00 2001 From: yujintao Date: Thu, 5 Sep 2019 17:07:34 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../epdc/controller/SysDeptController.java | 6 + .../com/elink/esua/epdc/dao/SysDeptDao.java | 13 +- .../esua/epdc/service/SysDeptService.java | 11 ++ .../epdc/service/impl/SysDeptServiceImpl.java | 7 + .../src/main/resources/mapper/SysDeptDao.xml | 11 ++ .../epdc/commons/tools/enums/YesOrNoEnum.java | 10 +- .../epdc/commons/tools/utils/ModuleUtils.java | 45 ++++++ .../elink/esua/epdc/service/NewsService.java | 24 ++++ .../epdc/service/impl/NewsServiceImpl.java | 23 ++++ .../com/elink/esua/epdc/dto/NoticeDTO.java | 43 +++++- .../esua/epdc/dto/NoticeDepartmentDTO.java | 81 +++++++++++ .../epdc/controller/NoticeController.java | 26 +++- .../NoticeDepartmentController.java | 94 +++++++++++++ .../esua/epdc/dao/NoticeDepartmentDao.java | 42 ++++++ .../epdc/entity/NoticeDepartmentEntity.java | 53 ++++++++ .../elink/esua/epdc/entity/NoticeEntity.java | 44 +++++- .../epdc/excel/NoticeDepartmentExcel.java | 62 +++++++++ .../esua/epdc/feign/AdminFeignClient.java | 30 ++++ .../fallback/AdminFeignClientFallback.java | 24 ++++ .../epdc/redis/NoticeDepartmentRedis.java | 47 +++++++ .../epdc/service/NoticeDepartmentService.java | 116 ++++++++++++++++ .../esua/epdc/service/NoticeService.java | 10 ++ .../impl/NoticeDepartmentServiceImpl.java | 128 ++++++++++++++++++ .../epdc/service/impl/NoticeServiceImpl.java | 88 ++++++++++-- .../src/main/resources/mapper/NoticeDao.xml | 8 ++ .../resources/mapper/NoticeDepartmentDao.xml | 10 ++ 26 files changed, 1024 insertions(+), 32 deletions(-) create mode 100644 esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/NewsService.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NoticeDepartmentDTO.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/NoticeDepartmentController.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NoticeDepartmentDao.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/NoticeDepartmentEntity.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/excel/NoticeDepartmentExcel.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/redis/NoticeDepartmentRedis.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeDepartmentService.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeDepartmentServiceImpl.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDepartmentDao.xml diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java index b06fb2bf5..a44ec142c 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java @@ -98,4 +98,10 @@ public class SysDeptController { return new Result(); } + + @GetMapping("listGridId/{pid}") + @ApiOperation("获取所有下属网格ID集合") + public Result> listGridIdByPid(@PathVariable("pid") Long pid){ + return sysDeptService.listGridIdByPid(pid); + } } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java index 17a0c6e8d..5233ed93a 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java @@ -1,8 +1,8 @@ /** * Copyright (c) 2018 人人开源 All rights reserved. - * + *

* https://www.renren.io - * + *

* 版权所有,侵权必究! */ @@ -50,4 +50,13 @@ public interface SysDeptDao extends BaseDao { */ List listSimpleDeptInfo(Map params); + /** + * 获取所有下属网格ID集合 + * + * @param pid + * @return java.util.List + * @author yujintao + * @date 2019/9/5 13:46 + */ + List listGridIdByPid(Long pid); } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java index b8827fbe4..2b8bb9ed5 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java @@ -8,6 +8,7 @@ package com.elink.esua.epdc.service; +import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.SysSimpleDeptDTO; import com.elink.esua.epdc.entity.SysDeptEntity; import com.elink.esua.epdc.commons.mybatis.service.BaseService; @@ -51,4 +52,14 @@ public interface SysDeptService extends BaseService { * @param id 部门ID */ List getSubDeptIdList(Long id); + + /** + * 获取所有下属网格ID集合 + * + * @param pid 部门ID + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author yujintao + * @date 2019/9/5 13:45 + */ + Result> listGridIdByPid(Long pid); } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java index f7d4f545e..a36d74e5a 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java @@ -18,6 +18,7 @@ import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; 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.commons.tools.utils.TreeUtils; import com.elink.esua.epdc.dao.SysDeptDao; import com.elink.esua.epdc.dto.SysDeptDTO; @@ -174,4 +175,10 @@ public class SysDeptServiceImpl extends BaseServiceImpl> listGridIdByPid(Long pid) { + List deptIdList = this.baseDao.listGridIdByPid(pid); + return new Result().ok(deptIdList); + } } diff --git a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml index 60b2345ec..35ad9f915 100644 --- a/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml +++ b/esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml @@ -35,4 +35,15 @@ ( SELECT * FROM sys_dept d WHERE d.pid = #{deptId} ) temp + + diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/YesOrNoEnum.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/YesOrNoEnum.java index 4135959dc..ca35dc490 100644 --- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/YesOrNoEnum.java +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/YesOrNoEnum.java @@ -18,19 +18,19 @@ public enum YesOrNoEnum { /** * 是 */ - YES(1), + YES("1"), /** * 否 */ - NO(0); + NO("0"); - private int value; + private String value; - YesOrNoEnum(int value) { + YesOrNoEnum(String value) { this.value = value; } - public int value() { + public String value() { return this.value; } } diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java new file mode 100644 index 000000000..b47948dc7 --- /dev/null +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java @@ -0,0 +1,45 @@ +package com.elink.esua.epdc.commons.tools.utils; + +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; + +import java.util.UUID; + +/** + * 工具类 + * + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/9/5 14:44 + */ +@Slf4j +public class ModuleUtils { + + /** + * feignclient降级处理错误返回 + * + * @param errorMsg 保存信息 + * @param methodName 方法名,打印到日志文件 + * @param params 参数,打印的日志文件 + * @return com.elink.esua.commons.tools.utils.Result + * @author yujintao + * @date 2019/9/5 14:44 + */ + public static Result feignConError(String errorMsg, String methodName, Object... params) { + String msg = errorMsg + "调用方法->{},参数->{}"; + log.error(msg, methodName, JSONObject.toJSONString(params)); + return new Result().error(errorMsg); + } + + /** + * 生成uuid + * + * @return java.lang.String + * @author yujintao + * @date 2019/9/5 14:44 + */ + public static String generateUUID() { + return UUID.randomUUID().toString().replace("-", ""); + } + +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/NewsService.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/NewsService.java new file mode 100644 index 000000000..9a1aa7df1 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/NewsService.java @@ -0,0 +1,24 @@ +package com.elink.esua.epdc.service; + +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.NoticeDTO; + +/** + * 新闻通知模块 + * + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/6/5 14:10 + */ +public interface NewsService { + + /** + * 通知保存 + * + * @param notice + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author yujintao + * @date 2019/9/5 14:17 + */ + Result saveNotice(NoticeDTO notice); +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java new file mode 100644 index 000000000..81223fb02 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java @@ -0,0 +1,23 @@ +package com.elink.esua.epdc.service.impl; + +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.NoticeDTO; +import com.elink.esua.epdc.service.NewsService; +import org.springframework.stereotype.Service; + +/** + * 新闻通知模块 + * + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/9/5 14:10 + */ +@Service +public class NewsServiceImpl implements NewsService { + + + @Override + public Result saveNotice(NoticeDTO notice) { + return null; + } +} diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NoticeDTO.java b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NoticeDTO.java index e3e21626a..2ef174998 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NoticeDTO.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NoticeDTO.java @@ -49,17 +49,17 @@ public class NoticeDTO implements Serializable { private String noticeContent; /** - * 发布通知者姓名 + * 发布人姓名 */ private String creatorName; /** - * 发布通知部门 + * 发布人部门 */ - private String dept; + private String deptName; /** - * 发布通知部门ID + * 发布人部门ID */ private Long deptId; @@ -98,4 +98,39 @@ public class NoticeDTO implements Serializable { */ private String delFlag; + /** + * 是否已发布0否;1是 + */ + private String isPublish; + + /** + * 通知所属街道 + */ + private String street; + + /** + * 通知所属街道ID + */ + private Long streetId; + + /** + * 通知所属社区 + */ + private String community; + + /** + * 通知所属社区ID + */ + private Long communityId; + + /** + * 通知所属网格 + */ + private String grid; + + /** + * 通知所属网格ID + */ + private Long gridId; + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NoticeDepartmentDTO.java b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NoticeDepartmentDTO.java new file mode 100644 index 000000000..4475acffa --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NoticeDepartmentDTO.java @@ -0,0 +1,81 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.dto; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 通知部门关系表 + * + * @author yujintao yujintao@elink-cn.com + * @since v1.0.0 2019-09-05 + */ +@Data +public class NoticeDepartmentDTO implements Serializable { + + private static final long serialVersionUID = 3994084299547740579L; + + /** + * 主键 + */ + private String id; + + /** + * 通知ID + */ + private String noticeId; + + /** + * 部门ID + */ + private Long deptId; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + + /** + * 删除标记 + */ + private String delFlag; + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/NoticeController.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/NoticeController.java index e3c4f9955..d27d1aad9 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/NoticeController.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/NoticeController.java @@ -45,24 +45,24 @@ import java.util.Map; @RestController @RequestMapping("/notice") public class NoticeController { - + @Autowired private NoticeService noticeService; @GetMapping("page") - public Result> page(@RequestParam Map params){ + public Result> page(@RequestParam Map params) { PageData page = noticeService.page(params); return new Result>().ok(page); } @GetMapping("{id}") - public Result get(@PathVariable("id") String id){ + public Result get(@PathVariable("id") String id) { NoticeDTO data = noticeService.get(id); return new Result().ok(data); } @PostMapping - public Result save(@RequestBody NoticeDTO dto){ + public Result save(@RequestBody NoticeDTO dto) { //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); noticeService.save(dto); @@ -70,7 +70,7 @@ public class NoticeController { } @PutMapping - public Result update(@RequestBody NoticeDTO dto){ + public Result update(@RequestBody NoticeDTO dto) { //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); noticeService.update(dto); @@ -78,7 +78,7 @@ public class NoticeController { } @DeleteMapping - public Result delete(@RequestBody String[] ids){ + public Result delete(@RequestBody String[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); noticeService.delete(ids); @@ -91,4 +91,18 @@ public class NoticeController { ExcelUtils.exportExcelToTarget(response, null, list, NoticeExcel.class); } + /** + * 通知发布 + * + * @param noticeId + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author yujintao + * @date 2019/9/5 17:05 + */ + @PostMapping("publish/{noticeId}") + public Result publish(@PathVariable String noticeId) { + noticeService.updatePublish(noticeId); + return new Result(); + } + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/NoticeDepartmentController.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/NoticeDepartmentController.java new file mode 100644 index 000000000..8269dea12 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/NoticeDepartmentController.java @@ -0,0 +1,94 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.controller; + +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.commons.tools.validator.AssertUtils; +import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; +import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; +import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; +import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; +import com.elink.esua.epdc.dto.NoticeDepartmentDTO; +import com.elink.esua.epdc.excel.NoticeDepartmentExcel; +import com.elink.esua.epdc.service.NoticeDepartmentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 通知部门关系表 + * + * @author yujintao yujintao@elink-cn.com + * @since v1.0.0 2019-09-05 + */ +@RestController +@RequestMapping("noticedepartment") +public class NoticeDepartmentController { + + @Autowired + private NoticeDepartmentService noticeDepartmentService; + + @GetMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = noticeDepartmentService.page(params); + return new Result>().ok(page); + } + + @GetMapping("{id}") + public Result get(@PathVariable("id") String id){ + NoticeDepartmentDTO data = noticeDepartmentService.get(id); + return new Result().ok(data); + } + + @PostMapping + public Result save(@RequestBody NoticeDepartmentDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + noticeDepartmentService.save(dto); + return new Result(); + } + + @PutMapping + public Result update(@RequestBody NoticeDepartmentDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + noticeDepartmentService.update(dto); + return new Result(); + } + + @DeleteMapping + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + noticeDepartmentService.delete(ids); + return new Result(); + } + + @GetMapping("export") + public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { + List list = noticeDepartmentService.list(params); + ExcelUtils.exportExcelToTarget(response, null, list, NoticeDepartmentExcel.class); + } + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NoticeDepartmentDao.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NoticeDepartmentDao.java new file mode 100644 index 000000000..708832ba7 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NoticeDepartmentDao.java @@ -0,0 +1,42 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +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; + +/** + * 通知部门关系表 + * + * @author yujintao yujintao@elink-cn.com + * @since v1.0.0 2019-09-05 + */ +@Mapper +public interface NoticeDepartmentDao extends BaseDao { + + /** + * 根据noticeId删除 + * + * @param noticeId + * @return int + * @author yujintao + * @date 2019/9/5 16:37 + */ + int deleteByNoticeId(String noticeId); +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/NoticeDepartmentEntity.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/NoticeDepartmentEntity.java new file mode 100644 index 000000000..40509bf1d --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/NoticeDepartmentEntity.java @@ -0,0 +1,53 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; + +import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 通知部门关系表 + * + * @author yujintao yujintao@elink-cn.com + * @since v1.0.0 2019-09-05 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("epdc_notice_department") +public class NoticeDepartmentEntity extends BaseEpdcEntity { + + private static final long serialVersionUID = -5644283742322487661L; + + /** + * 通知ID + */ + private String noticeId; + + /** + * 部门ID + */ + @TableField(fill = FieldFill.DEFAULT) + private Long deptId; + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/NoticeEntity.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/NoticeEntity.java index f7c6ae639..699c18284 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/NoticeEntity.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/NoticeEntity.java @@ -55,12 +55,12 @@ public class NoticeEntity extends BaseEpdcEntity { private String creatorName; /** - * 发布通知部门 + * 发布人部门 */ - private String dept; + private String deptName; /** - * 发布通知部门ID + * 发布人部门ID */ @TableField(fill = FieldFill.DEFAULT) private Long deptId; @@ -70,4 +70,42 @@ public class NoticeEntity extends BaseEpdcEntity { */ private Integer readingAmount; + /** + * 是否已发布0否;1是 + */ + private String isPublish; + + /** + * 通知所属街道 + */ + private String street; + + /** + * 通知所属街道ID + */ + private Long streetId; + + /** + * 通知所属社区 + */ + private String community; + + /** + * 通知所属社区ID + */ + private Long communityId; + + /** + * 通知所属网格 + */ + private String grid; + + /** + * 通知所属网格ID + */ + private Long gridId; + + + + } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/excel/NoticeDepartmentExcel.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/excel/NoticeDepartmentExcel.java new file mode 100644 index 000000000..22ad1812b --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/excel/NoticeDepartmentExcel.java @@ -0,0 +1,62 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.util.Date; + +/** + * 通知部门关系表 + * + * @author yujintao yujintao@elink-cn.com + * @since v1.0.0 2019-09-05 + */ +@Data +public class NoticeDepartmentExcel { + + @Excel(name = "主键") + private String id; + + @Excel(name = "通知ID") + private String noticeId; + + @Excel(name = "部门ID") + private String deptId; + + @Excel(name = "乐观锁") + private Integer revision; + + @Excel(name = "创建人") + private String createdBy; + + @Excel(name = "创建时间") + private Date createdTime; + + @Excel(name = "更新人") + private String updatedBy; + + @Excel(name = "更新时间") + private Date updatedTime; + + @Excel(name = "删除标记") + private String delFlag; + + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java new file mode 100644 index 000000000..6f24d0f5c --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java @@ -0,0 +1,30 @@ +package com.elink.esua.epdc.feign; + +import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; + +import java.util.List; + +/** + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/9/5 14:44 + */ +@FeignClient(name = ServiceConstant.EPDC_ADMIN_SERVER, fallback = AdminFeignClientFallback.class) +public interface AdminFeignClient { + + /** + * 根据部门ID,获取下属所有网格ID + * + * @param pid + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author yujintao + * @date 2019/9/5 14:49 + */ + @GetMapping("/sys/dept/listGridId/{pid}") + Result> listGridIdByDeptPid(@PathVariable("pid") Long pid); +} diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java new file mode 100644 index 000000000..b1bf54ece --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java @@ -0,0 +1,24 @@ +package com.elink.esua.epdc.feign.fallback; + +import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.feign.AdminFeignClient; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/9/5 14:44 + */ +@Component +public class AdminFeignClientFallback implements AdminFeignClient { + + private final static String ERROR = "news调用admin失败"; + + @Override + public Result> listGridIdByDeptPid(Long pid) { + return ModuleUtils.feignConError(ERROR, "listGridIdByDeptPid", pid); + } +} diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/redis/NoticeDepartmentRedis.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/redis/NoticeDepartmentRedis.java new file mode 100644 index 000000000..dc3ab8f62 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/redis/NoticeDepartmentRedis.java @@ -0,0 +1,47 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.redis; + +import com.elink.esua.epdc.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 通知部门关系表 + * + * @author yujintao yujintao@elink-cn.com + * @since v1.0.0 2019-09-05 + */ +@Component +public class NoticeDepartmentRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeDepartmentService.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeDepartmentService.java new file mode 100644 index 000000000..ad6a3cf13 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeDepartmentService.java @@ -0,0 +1,116 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.service; + +import com.elink.esua.epdc.commons.mybatis.service.BaseService; +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.dto.NoticeDepartmentDTO; +import com.elink.esua.epdc.entity.NoticeDepartmentEntity; + +import java.util.List; +import java.util.Map; + +/** + * 通知部门关系表 + * + * @author yujintao yujintao@elink-cn.com + * @since v1.0.0 2019-09-05 + */ +public interface NoticeDepartmentService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author + * @date + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author + * @date + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return NoticeDepartmentDTO + * @author + * @date + */ + NoticeDepartmentDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author + * @date + */ + void save(NoticeDepartmentDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author + * @date + */ + void update(NoticeDepartmentDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author + * @date + */ + void delete(String[] ids); + + /** + * 保存通知和网格关系 + * + * @param id + * @param noticeGridList + * @return void + * @author yujintao + * @date 2019/9/5 15:08 + */ + void save(String id, List noticeGridList); + + /** + * 根据通知ID删除条目 + * + * @param id + * @return void + * @author yujintao + * @date 2019/9/5 15:52 + */ + void deleteByNoticeId(String id); +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeService.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeService.java index decc5ed48..f3d8c804e 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeService.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeService.java @@ -92,4 +92,14 @@ public interface NoticeService extends BaseService { * @date */ void delete(String[] ids); + + /** + * 通知发布 + * + * @param noticeId + * @return void + * @author yujintao + * @date 2019/9/5 16:59 + */ + void updatePublish(String noticeId); } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeDepartmentServiceImpl.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeDepartmentServiceImpl.java new file mode 100644 index 000000000..9191614fc --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeDepartmentServiceImpl.java @@ -0,0 +1,128 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.elink.esua.epdc.service.impl; + +import cn.hutool.core.collection.CollUtil; +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; +import com.elink.esua.epdc.commons.tools.constant.NumConstant; +import com.elink.esua.epdc.commons.tools.exception.RenException; +import com.elink.esua.epdc.commons.tools.page.PageData; +import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; +import com.elink.esua.epdc.commons.tools.constant.FieldConstant; +import com.elink.esua.epdc.dao.NoticeDepartmentDao; +import com.elink.esua.epdc.dto.NoticeDepartmentDTO; +import com.elink.esua.epdc.entity.NoticeDepartmentEntity; +import com.elink.esua.epdc.redis.NoticeDepartmentRedis; +import com.elink.esua.epdc.service.NoticeDepartmentService; +import com.google.common.collect.Lists; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 通知部门关系表 + * + * @author yujintao yujintao@elink-cn.com + * @since v1.0.0 2019-09-05 + */ +@Service +public class NoticeDepartmentServiceImpl extends BaseServiceImpl implements NoticeDepartmentService { + + @Autowired + private NoticeDepartmentRedis noticeDepartmentRedis; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, NoticeDepartmentDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, NoticeDepartmentDTO.class); + } + + private QueryWrapper getWrapper(Map params) { + String id = (String) params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public NoticeDepartmentDTO get(String id) { + NoticeDepartmentEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, NoticeDepartmentDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(NoticeDepartmentDTO dto) { + NoticeDepartmentEntity entity = ConvertUtils.sourceToTarget(dto, NoticeDepartmentEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(NoticeDepartmentDTO dto) { + NoticeDepartmentEntity entity = ConvertUtils.sourceToTarget(dto, NoticeDepartmentEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + @Override + public void save(String id, List noticeGridList) { + if (StringUtils.isBlank(id) || CollUtil.isEmpty(noticeGridList)) { + throw new RenException("保存通知网格信息失败"); + } + List list = Lists.newArrayList(); + NoticeDepartmentEntity entity; + for (Long gridId : noticeGridList) { + entity = new NoticeDepartmentEntity(); + entity.setNoticeId(id); + entity.setDeptId(gridId); + list.add(entity); + } + this.insertBatch(list, NumConstant.TWENTY); + } + + @Override + public void deleteByNoticeId(String id) { + this.baseDao.deleteByNoticeId(id); + } +} \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeServiceImpl.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeServiceImpl.java index dbe840fc4..61fc6b774 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeServiceImpl.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeServiceImpl.java @@ -17,20 +17,26 @@ package com.elink.esua.epdc.service.impl; +import cn.hutool.core.collection.CollUtil; 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; +import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; 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.constant.FieldConstant; +import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dao.NoticeDao; import com.elink.esua.epdc.dto.NoticeDTO; import com.elink.esua.epdc.entity.NoticeEntity; +import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.redis.NoticeRedis; +import com.elink.esua.epdc.service.NoticeDepartmentService; import com.elink.esua.epdc.service.NoticeService; +import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -52,6 +58,12 @@ public class NoticeServiceImpl extends BaseServiceImpl @Autowired private NoticeRedis noticeRedis; + @Autowired + private AdminFeignClient adminFeignClient; + + @Autowired + private NoticeDepartmentService noticeDepartmentService; + @Override public PageData page(Map params) { IPage page = baseDao.selectPage( @@ -70,9 +82,11 @@ public class NoticeServiceImpl extends BaseServiceImpl private QueryWrapper getWrapper(Map params) { String id = (String) params.get(FieldConstant.ID_HUMP); + String noticeTitle = (String) params.get("noticeTitle"); QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id) + .like(StringUtils.isNotBlank(noticeTitle), "NOTICE_TITLE", noticeTitle); return wrapper; } @@ -86,25 +100,65 @@ public class NoticeServiceImpl extends BaseServiceImpl @Override @Transactional(rollbackFor = Exception.class) public void save(NoticeDTO dto) { - - UserDetail user = SecurityUser.getUser(); - if (!user.getDeptIdList().contains(dto.getDeptId())) { - throw new RenException("您没有操作此部门的数据权限"); - } - dto.setCreatorName(user.getRealName()); - NoticeEntity entity = ConvertUtils.sourceToTarget(dto, NoticeEntity.class); - insert(entity); + this.saveOrUpdate(dto); } @Override @Transactional(rollbackFor = Exception.class) public void update(NoticeDTO dto) { + this.saveOrUpdate(dto); + } + + /** + * 通知保存或更新 + * + * @param dto + * @return void + * @author yujintao + * @date 2019/9/5 16:02 + */ + private void saveOrUpdate(NoticeDTO dto) { UserDetail user = SecurityUser.getUser(); - if (!user.getDeptIdList().contains(dto.getDeptId())) { + dto.setCreatorName(user.getRealName()); + dto.setDeptId(user.getDeptId()); + dto.setDeptName(user.getDeptName()); + NoticeEntity entity = ConvertUtils.sourceToTarget(dto, NoticeEntity.class); + + // 通知所属部门id + Long noticeDeptId = entity.getStreetId(); + // 能接收通知的所有网格的ID + List noticeGridList = Lists.newArrayList(); + if (null != entity.getCommunityId()) { + noticeDeptId = entity.getCommunityId(); + } + if (null != entity.getGridId()) { + noticeDeptId = entity.getGridId(); + noticeGridList.add(noticeDeptId); + } + + if (!user.getDeptIdList().contains(noticeDeptId)) { throw new RenException("您没有操作此部门的数据权限"); } - NoticeEntity entity = ConvertUtils.sourceToTarget(dto, NoticeEntity.class); - updateById(entity); + boolean isSave = true; + if (StringUtils.isNotBlank(dto.getId())) { + isSave = false; + } + + if (isSave) { + insert(entity); + } else { + updateById(entity); + noticeDepartmentService.deleteByNoticeId(entity.getId()); + } + + if (CollUtil.isEmpty(noticeGridList)) { + Result> adminResult = adminFeignClient.listGridIdByDeptPid(noticeDeptId); + if (!adminResult.success() || CollUtil.isEmpty(adminResult.getData())) { + throw new RenException("获取部门信息失败"); + } + noticeGridList = adminResult.getData(); + } + this.noticeDepartmentService.save(entity.getId(), noticeGridList); } @Override @@ -112,6 +166,16 @@ public class NoticeServiceImpl extends BaseServiceImpl public void delete(String[] ids) { //物理删除 baseDao.deleteBatchIds(Arrays.asList(ids)); + for (String noticeId : ids) { + this.noticeDepartmentService.deleteByNoticeId(noticeId); + } } + @Override + public void updatePublish(String noticeId) { + NoticeEntity entity = new NoticeEntity(); + entity.setId(noticeId); + entity.setIsPublish(YesOrNoEnum.YES.value()); + this.updateById(entity); + } } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml new file mode 100644 index 000000000..b6c61a605 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDepartmentDao.xml b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDepartmentDao.xml new file mode 100644 index 000000000..9bb1b8985 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDepartmentDao.xml @@ -0,0 +1,10 @@ + + + + + + + + DELETE FROM epdc_notice_department WHERE NOTICE_ID = #{noticeId} + + \ No newline at end of file