Browse Source

通知相关

dev
yujintao 6 years ago
parent
commit
c6a8d8661b
  1. 6
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java
  2. 13
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
  3. 11
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
  4. 7
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
  5. 11
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
  6. 10
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/YesOrNoEnum.java
  7. 45
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/utils/ModuleUtils.java
  8. 24
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/NewsService.java
  9. 23
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java
  10. 43
      esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NoticeDTO.java
  11. 81
      esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/NoticeDepartmentDTO.java
  12. 26
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/NoticeController.java
  13. 94
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/NoticeDepartmentController.java
  14. 42
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NoticeDepartmentDao.java
  15. 53
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/NoticeDepartmentEntity.java
  16. 44
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/NoticeEntity.java
  17. 62
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/excel/NoticeDepartmentExcel.java
  18. 30
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
  19. 24
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
  20. 47
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/redis/NoticeDepartmentRedis.java
  21. 116
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeDepartmentService.java
  22. 10
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeService.java
  23. 128
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeDepartmentServiceImpl.java
  24. 88
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeServiceImpl.java
  25. 8
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml
  26. 10
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDepartmentDao.xml

6
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<List<Long>> listGridIdByPid(@PathVariable("pid") Long pid){
return sysDeptService.listGridIdByPid(pid);
}
}

13
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.
*
* <p>
* https://www.renren.io
*
* <p>
* 版权所有侵权必究
*/
@ -50,4 +50,13 @@ public interface SysDeptDao extends BaseDao<SysDeptEntity> {
*/
List<SysSimpleDeptDTO> listSimpleDeptInfo(Map<String, Object> params);
/**
* 获取所有下属网格ID集合
*
* @param pid
* @return java.util.List<java.lang.Long>
* @author yujintao
* @date 2019/9/5 13:46
*/
List<Long> listGridIdByPid(Long pid);
}

11
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<SysDeptEntity> {
* @param id 部门ID
*/
List<Long> getSubDeptIdList(Long id);
/**
* 获取所有下属网格ID集合
*
* @param pid 部门ID
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < java.lang.Long>>
* @author yujintao
* @date 2019/9/5 13:45
*/
Result<List<Long>> listGridIdByPid(Long pid);
}

7
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<SysDeptDao, SysDeptEntit
pidList.add(pid);
}
@Override
public Result<List<Long>> listGridIdByPid(Long pid) {
List<Long> deptIdList = this.baseDao.listGridIdByPid(pid);
return new Result().ok(deptIdList);
}
}

11
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
</select>
<select id="listGridIdByPid" resultType="java.lang.Long">
SELECT
d.id
FROM
sys_dept d
WHERE
d.pids LIKE '%${pid}%'
AND NOT EXISTS
( SELECT 1 FROM sys_dept dd WHERE dd.pid = d.id )
</select>
</mapper>

10
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;
}
}

45
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("-", "");
}
}

24
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);
}

23
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;
}
}

43
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;
}

81
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;
}

26
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<PageData<NoticeDTO>> page(@RequestParam Map<String, Object> params){
public Result<PageData<NoticeDTO>> page(@RequestParam Map<String, Object> params) {
PageData<NoticeDTO> page = noticeService.page(params);
return new Result<PageData<NoticeDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<NoticeDTO> get(@PathVariable("id") String id){
public Result<NoticeDTO> get(@PathVariable("id") String id) {
NoticeDTO data = noticeService.get(id);
return new Result<NoticeDTO>().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();
}
}

94
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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<PageData<NoticeDepartmentDTO>> page(@RequestParam Map<String, Object> params){
PageData<NoticeDepartmentDTO> page = noticeDepartmentService.page(params);
return new Result<PageData<NoticeDepartmentDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<NoticeDepartmentDTO> get(@PathVariable("id") String id){
NoticeDepartmentDTO data = noticeDepartmentService.get(id);
return new Result<NoticeDepartmentDTO>().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<String, Object> params, HttpServletResponse response) throws Exception {
List<NoticeDepartmentDTO> list = noticeDepartmentService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, NoticeDepartmentExcel.class);
}
}

42
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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<NoticeDepartmentEntity> {
/**
* 根据noticeId删除
*
* @param noticeId
* @return int
* @author yujintao
* @date 2019/9/5 16:37
*/
int deleteByNoticeId(String noticeId);
}

53
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;
}

44
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;
}

62
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;
}

30
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<java.util.List < java.lang.Long>>
* @author yujintao
* @date 2019/9/5 14:49
*/
@GetMapping("/sys/dept/listGridId/{pid}")
Result<List<Long>> listGridIdByDeptPid(@PathVariable("pid") Long pid);
}

24
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<List<Long>> listGridIdByDeptPid(Long pid) {
return ModuleUtils.feignConError(ERROR, "listGridIdByDeptPid", pid);
}
}

47
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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;
}
}

116
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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<NoticeDepartmentEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<NoticeDepartmentDTO>
* @author
* @date
*/
PageData<NoticeDepartmentDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<NoticeDepartmentDTO>
* @author
* @date
*/
List<NoticeDepartmentDTO> list(Map<String, Object> 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<Long> noticeGridList);
/**
* 根据通知ID删除条目
*
* @param id
* @return void
* @author yujintao
* @date 2019/9/5 15:52
*/
void deleteByNoticeId(String id);
}

10
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<NoticeEntity> {
* @date
*/
void delete(String[] ids);
/**
* 通知发布
*
* @param noticeId
* @return void
* @author yujintao
* @date 2019/9/5 16:59
*/
void updatePublish(String noticeId);
}

128
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
* <p>
* 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.
* <p>
* 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.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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<NoticeDepartmentDao, NoticeDepartmentEntity> implements NoticeDepartmentService {
@Autowired
private NoticeDepartmentRedis noticeDepartmentRedis;
@Override
public PageData<NoticeDepartmentDTO> page(Map<String, Object> params) {
IPage<NoticeDepartmentEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, NoticeDepartmentDTO.class);
}
@Override
public List<NoticeDepartmentDTO> list(Map<String, Object> params) {
List<NoticeDepartmentEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, NoticeDepartmentDTO.class);
}
private QueryWrapper<NoticeDepartmentEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<NoticeDepartmentEntity> 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<Long> noticeGridList) {
if (StringUtils.isBlank(id) || CollUtil.isEmpty(noticeGridList)) {
throw new RenException("保存通知网格信息失败");
}
List<NoticeDepartmentEntity> 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);
}
}

88
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<NoticeDao, NoticeEntity>
@Autowired
private NoticeRedis noticeRedis;
@Autowired
private AdminFeignClient adminFeignClient;
@Autowired
private NoticeDepartmentService noticeDepartmentService;
@Override
public PageData<NoticeDTO> page(Map<String, Object> params) {
IPage<NoticeEntity> page = baseDao.selectPage(
@ -70,9 +82,11 @@ public class NoticeServiceImpl extends BaseServiceImpl<NoticeDao, NoticeEntity>
private QueryWrapper<NoticeEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
String noticeTitle = (String) params.get("noticeTitle");
QueryWrapper<NoticeEntity> 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<NoticeDao, NoticeEntity>
@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<Long> 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<List<Long>> 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<NoticeDao, NoticeEntity>
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);
}
}

8
esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.elink.esua.epdc.dao.NoticeDao">
</mapper>

10
esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDepartmentDao.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.elink.esua.epdc.dao.NoticeDepartmentDao">
<delete id="deleteByNoticeId">
DELETE FROM epdc_notice_department WHERE NOTICE_ID = #{noticeId}
</delete>
</mapper>
Loading…
Cancel
Save