From cc10f3d6e2deac26bb055b5dc4254b19a85edc48 Mon Sep 17 00:00:00 2001 From: yujintao Date: Fri, 6 Sep 2019 14:10:07 +0800 Subject: [PATCH] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E6=A8=A1=E5=9D=97=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=BF=AE=E6=94=B9=EF=BC=9Bfeignclient=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=EF=BC=9B=E7=A7=BB=E5=8A=A8=E7=AB=AF=E6=96=B0=E9=97=BB?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/elink/esua/epdc/dao/SysDeptDao.java | 3 +- .../epdc/commons/tools/utils/ModuleUtils.java | 13 ++-- .../epdc-api/epdc-api-server/pom.xml | 7 ++ .../epdc/controller/ApiNewsController.java | 41 ++++++++++ .../esua/epdc/feign/NewsFeignClient.java | 34 ++++++++ .../fallback/NewsFeignClientFallback.java | 25 ++++++ .../elink/esua/epdc/service/NewsService.java | 17 ++-- .../epdc/service/impl/NewsServiceImpl.java | 15 +++- .../src/main/resources/application.yml | 20 ++++- .../com/elink/esua/epdc/dto/NoticeDTO.java | 77 ++++++++++--------- .../epdc/dto/epdc/form/EpdcNoticeFormDTO.java | 41 ++++++++++ .../dto/epdc/result/EpdcNoticeResultDTO.java | 38 +++++++++ .../epdc-news/epdc-news-server/pom.xml | 1 + .../epdc/controller/NoticeController.java | 17 +++- .../com/elink/esua/epdc/dao/NoticeDao.java | 15 +++- .../elink/esua/epdc/entity/NoticeEntity.java | 40 +++++----- .../fallback/AdminFeignClientFallback.java | 5 +- .../esua/epdc/service/NoticeService.java | 13 ++++ .../epdc/service/impl/NoticeServiceImpl.java | 32 ++++++-- .../src/main/resources/application.yml | 17 ++++ .../src/main/resources/mapper/NoticeDao.xml | 18 ++++- 21 files changed, 404 insertions(+), 85 deletions(-) create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiNewsController.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/NewsFeignClient.java create mode 100644 esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/NewsFeignClientFallback.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcNoticeFormDTO.java create mode 100644 esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcNoticeResultDTO.java 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 5233ed93a..3f55b39ea 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 @@ -12,6 +12,7 @@ import com.elink.esua.epdc.dto.SysSimpleDeptDTO; import com.elink.esua.epdc.entity.SysDeptEntity; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; @@ -58,5 +59,5 @@ public interface SysDeptDao extends BaseDao { * @author yujintao * @date 2019/9/5 13:46 */ - List listGridIdByPid(Long pid); + List listGridIdByPid(@Param("pid") Long pid); } 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 index b47948dc7..24bb7ac73 100644 --- 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 @@ -1,6 +1,6 @@ package com.elink.esua.epdc.commons.tools.utils; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.JSON; import lombok.extern.slf4j.Slf4j; import java.util.UUID; @@ -18,17 +18,18 @@ public class ModuleUtils { /** * feignclient降级处理错误返回 * - * @param errorMsg 保存信息 + * @param serverName 服务模块名 * @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); + public static Result feignConError(String serverName, String methodName, Object... params) { + String errorMessage = "Failure to connect " + serverName; + String errorLog = errorMessage + "::[method]->{}::[params]->{}"; + log.error(errorLog, methodName, JSON.toJSONString(params)); + return new Result().error(errorMessage); } /** diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml index 69598c800..9daa044af 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/pom.xml @@ -71,6 +71,13 @@ epdc-common-clienttoken ${project.version} + + + io.github.openfeign + feign-httpclient + 10.3.0 + + diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiNewsController.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiNewsController.java new file mode 100644 index 000000000..8dbec33d2 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiNewsController.java @@ -0,0 +1,41 @@ +package com.elink.esua.epdc.controller; + +import com.elink.esua.epdc.common.token.dto.TokenDto; +import com.elink.esua.epdc.commons.tools.annotation.LoginUser; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeResultDTO; +import com.elink.esua.epdc.service.NewsService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * news模块,移动端接口 + * + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/9/5 20:11 + */ +@RestController +@RequestMapping("news") +public class ApiNewsController { + + @Autowired + private NewsService newsService; + + /** + * 移动端通知列表接口 + * + * @param userDetail + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author yujintao + * @date 2019/9/5 20:17 + */ + @GetMapping("notice/list") + public Result> noticeList(@LoginUser TokenDto userDetail, EpdcNoticeFormDTO formDto) { + return newsService.noticeList(userDetail, formDto); + } +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/NewsFeignClient.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/NewsFeignClient.java new file mode 100644 index 000000000..dcb9416be --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/NewsFeignClient.java @@ -0,0 +1,34 @@ +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.dto.epdc.form.EpdcNoticeFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeResultDTO; +import com.elink.esua.epdc.feign.fallback.NewsFeignClientFallback; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 新闻模块调用 + * + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/9/5 19:20 + */ +@FeignClient(name = ServiceConstant.EPDC_NEWS_SERVER, fallback = NewsFeignClientFallback.class) +public interface NewsFeignClient { + + /** + * 获取通知列表 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author yujintao + * @date 2019/9/5 20:07 + */ + @GetMapping(value = "news/notice/listNoticeForApp", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> listNoticeForApp(EpdcNoticeFormDTO formDto); +} diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/NewsFeignClientFallback.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/NewsFeignClientFallback.java new file mode 100644 index 000000000..9d78b66bc --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/NewsFeignClientFallback.java @@ -0,0 +1,25 @@ +package com.elink.esua.epdc.feign.fallback; + +import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; +import com.elink.esua.epdc.commons.tools.utils.ModuleUtils; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeResultDTO; +import com.elink.esua.epdc.feign.NewsFeignClient; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/9/5 19:28 + */ +@Component +public class NewsFeignClientFallback implements NewsFeignClient { + + @Override + public Result> listNoticeForApp(EpdcNoticeFormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_NEWS_SERVER, "listNoticeForApp", formDto); + } +} 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 index 9a1aa7df1..97429dfea 100644 --- 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 @@ -1,7 +1,11 @@ package com.elink.esua.epdc.service; +import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.NoticeDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeResultDTO; + +import java.util.List; /** * 新闻通知模块 @@ -13,12 +17,13 @@ import com.elink.esua.epdc.dto.NoticeDTO; public interface NewsService { /** - * 通知保存 + * 移动端通知列表接口 * - * @param notice - * @return com.elink.esua.epdc.commons.tools.utils.Result + * @param userDetail + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> * @author yujintao - * @date 2019/9/5 14:17 + * @date 2019/9/5 20:17 */ - Result saveNotice(NoticeDTO notice); + Result> noticeList(TokenDto userDetail, EpdcNoticeFormDTO formDto); } 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 index 81223fb02..9ac67a6d2 100644 --- 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 @@ -1,10 +1,16 @@ package com.elink.esua.epdc.service.impl; +import com.elink.esua.epdc.common.token.dto.TokenDto; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.dto.NoticeDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeResultDTO; +import com.elink.esua.epdc.feign.NewsFeignClient; import com.elink.esua.epdc.service.NewsService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + /** * 新闻通知模块 * @@ -15,9 +21,12 @@ import org.springframework.stereotype.Service; @Service public class NewsServiceImpl implements NewsService { + @Autowired + private NewsFeignClient newsFeignClient; @Override - public Result saveNotice(NoticeDTO notice) { - return null; + public Result> noticeList(TokenDto userDetail, EpdcNoticeFormDTO formDto) { + formDto.setDeptId(userDetail.getGridId()); + return newsFeignClient.listNoticeForApp(formDto); } } diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml index 94809a5be..0ebf1e061 100644 --- a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/resources/application.yml @@ -45,6 +45,24 @@ management: health: show-details: ALWAYS +feign: + hystrix: + enabled: true + httpclient: + enabled: true + +hystrix: + command: + default: + execution: + isolation: + thread: + timeoutInMilliseconds: 60000 #缺省为1000 + +ribbon: + ReadTimeout: 300000 + ConnectTimeout: 300000 + mybatis-plus: mapper-locations: classpath:/mapper/**/*.xml #实体扫描,多个package用逗号或者分号分隔 @@ -75,4 +93,4 @@ wx: aesKey: @wx.mp.configs.aesKey@ token: - expire: 21600L + expire: 21600 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 2ef174998..2c4ac6366 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 @@ -36,101 +36,106 @@ public class NoticeDTO implements Serializable { /** * 主键 */ - private String id; + private String id; /** * 通知标题 */ - private String noticeTitle; + private String noticeTitle; /** * 通知内容 */ - private String noticeContent; + private String noticeContent; /** - * 发布人姓名 + * 发布人的部门 */ - private String creatorName; + private String deptName; /** - * 发布人部门 + * 发布人的部门ID */ - private String deptName; + private Long deptId; /** - * 发布人部门ID + * 通知所属街道 */ - private Long deptId; + private String street; /** - * 阅读量 + * 通知所属街道ID */ - private Integer readingAmount; + private Long streetId; /** - * 乐观锁 + * 通知所属社区 */ - private Integer revision; + private String community; /** - * 创建人 + * 通知所属社区ID */ - private String createdBy; + private Long communityId; /** - * 创建时间 + * 通知所属网格 */ - private Date createdTime; + private String grid; /** - * 更新人 + * 通知所属网格ID */ - private String updatedBy; + private Long gridId; /** - * 更新时间 + * 阅读量 */ - private Date updatedTime; + private Integer readingAmount; /** - * 删除标记 + * 创建人姓名 */ - private String delFlag; + private String creatorName; /** * 是否已发布0否;1是 */ - private String isPublish; + private String noticeReleaseState; /** - * 通知所属街道 + * 发布时间 */ - private String street; + private Date releaseTime; /** - * 通知所属街道ID + * 乐观锁 */ - private Long streetId; + private Integer revision; /** - * 通知所属社区 + * 创建人 */ - private String community; + private String createdBy; /** - * 通知所属社区ID + * 创建时间 */ - private Long communityId; + private Date createdTime; /** - * 通知所属网格 + * 更新人 */ - private String grid; + private String updatedBy; /** - * 通知所属网格ID + * 更新时间 */ - private Long gridId; + private Date updatedTime; + + /** + * 删除标记 + */ + private String delFlag; } \ 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/epdc/form/EpdcNoticeFormDTO.java b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcNoticeFormDTO.java new file mode 100644 index 000000000..7b75828d1 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcNoticeFormDTO.java @@ -0,0 +1,41 @@ +package com.elink.esua.epdc.dto.epdc.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * 移动端通知列表,查询条件 + * + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/9/5 19:40 + */ +@Data +public class EpdcNoticeFormDTO { + + /** + * 用户所属网格ID + */ + @NotBlank(message = "用户网格ID不能为空") + private String deptId; + + /** + * 页码 + */ + @NotNull(message = "页码不能为空") + private Integer pageIndex; + + /** + * 页容量 + */ + @NotNull(message = "页容量不能为空") + private Integer pageSize; + + /** + * 第一页查询发起时的时间 + */ + @NotBlank(message = "时间戳不能为空") + private String timestamp; +} diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcNoticeResultDTO.java b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcNoticeResultDTO.java new file mode 100644 index 000000000..7d839b788 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcNoticeResultDTO.java @@ -0,0 +1,38 @@ +package com.elink.esua.epdc.dto.epdc.result; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * 用于移动端获取通知列表 + * + * @author yujintao + * @email yujintao@elink-cn.com + * @date 2019/9/5 19:30 + */ +@Data +public class EpdcNoticeResultDTO { + + /** + * 通知ID + */ + private String id; + + /** + * 通知标题 + */ + private String noticeTitle; + + /** + * 通知发布时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date noticeTime; + + /** + * 通知发布部门 + */ + private String deptName; +} diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/pom.xml b/esua-epdc/epdc-module/epdc-news/epdc-news-server/pom.xml index 2e0a3b66b..b77093fd7 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/pom.xml +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/pom.xml @@ -45,6 +45,7 @@ spring-boot-admin-starter-client ${spring.boot.admin.version} + 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 d27d1aad9..5beeb7065 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 @@ -26,6 +26,8 @@ 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.NoticeDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeResultDTO; import com.elink.esua.epdc.excel.NoticeExcel; import com.elink.esua.epdc.service.NoticeService; import org.springframework.beans.factory.annotation.Autowired; @@ -43,7 +45,7 @@ import java.util.Map; * @since v1.0.0 2019-09-04 */ @RestController -@RequestMapping("/notice") +@RequestMapping("notice") public class NoticeController { @Autowired @@ -105,4 +107,17 @@ public class NoticeController { return new Result(); } + /** + * 移动端通知列表 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author yujintao + * @date 2019/9/5 19:43 + */ + @GetMapping("listNoticeForApp") + public Result> listNoticeForApp(@RequestBody EpdcNoticeFormDTO formDto) { + ValidatorUtils.validateEntity(formDto); + return this.noticeService.listNoticeForApp(formDto); + } } \ 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/NoticeDao.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NoticeDao.java index 6a4b0e7b3..d8ce01118 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NoticeDao.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NoticeDao.java @@ -18,9 +18,13 @@ package com.elink.esua.epdc.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; +import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeResultDTO; import com.elink.esua.epdc.entity.NoticeEntity; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * 通知表 * @@ -29,5 +33,14 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface NoticeDao extends BaseDao { - + + /** + * APP端获取通知列表 + * + * @param formDto + * @return java.util.List + * @author yujintao + * @date 2019/9/5 19:51 + */ + List selectListAppNotice(EpdcNoticeFormDTO formDto); } \ 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 699c18284..fb5e7e3d3 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 @@ -25,6 +25,8 @@ import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; + /** * 通知表 @@ -50,31 +52,15 @@ public class NoticeEntity extends BaseEpdcEntity { private String noticeContent; /** - * 发布通知者姓名 - */ - private String creatorName; - - /** - * 发布人部门 + * 发布人的部门 */ private String deptName; /** - * 发布人部门ID + * 发布人的部门ID */ - @TableField(fill = FieldFill.DEFAULT) private Long deptId; - /** - * 阅读量 - */ - private Integer readingAmount; - - /** - * 是否已发布0否;1是 - */ - private String isPublish; - /** * 通知所属街道 */ @@ -105,7 +91,25 @@ public class NoticeEntity extends BaseEpdcEntity { */ private Long gridId; + /** + * 阅读量 + */ + private Integer readingAmount; + + /** + * 创建人姓名 + */ + private String creatorName; + /** + * 是否已发布0否;1是 + */ + private String noticeReleaseState; + + /** + * 发布时间 + */ + private Date releaseTime; } \ 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/fallback/AdminFeignClientFallback.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java index b1bf54ece..4ae6943df 100644 --- 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 @@ -1,5 +1,6 @@ package com.elink.esua.epdc.feign.fallback; +import com.elink.esua.epdc.commons.tools.constant.ServiceConstant; 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; @@ -15,10 +16,8 @@ import java.util.List; @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); + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "listGridIdByDeptPid", pid); } } 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 f3d8c804e..fce0dfbb5 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 @@ -19,7 +19,10 @@ 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.commons.tools.utils.Result; import com.elink.esua.epdc.dto.NoticeDTO; +import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeResultDTO; import com.elink.esua.epdc.entity.NoticeEntity; import java.util.List; @@ -102,4 +105,14 @@ public interface NoticeService extends BaseService { * @date 2019/9/5 16:59 */ void updatePublish(String noticeId); + + /** + * 移动端通知列表 + * + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @author yujintao + * @date 2019/9/5 19:37 + */ + Result> listNoticeForApp(EpdcNoticeFormDTO formDto); } \ 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 61fc6b774..b70da044f 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 @@ -21,6 +21,7 @@ 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.enums.YesOrNoEnum; import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.page.PageData; @@ -31,6 +32,8 @@ 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.dto.epdc.form.EpdcNoticeFormDTO; +import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeResultDTO; import com.elink.esua.epdc.entity.NoticeEntity; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.redis.NoticeRedis; @@ -43,6 +46,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Map; @@ -139,6 +143,15 @@ public class NoticeServiceImpl extends BaseServiceImpl if (!user.getDeptIdList().contains(noticeDeptId)) { throw new RenException("您没有操作此部门的数据权限"); } + + if (CollUtil.isEmpty(noticeGridList)) { + Result> adminResult = adminFeignClient.listGridIdByDeptPid(noticeDeptId); + if (!adminResult.success() || CollUtil.isEmpty(adminResult.getData())) { + throw new RenException("获取部门信息失败"); + } + noticeGridList = adminResult.getData(); + } + boolean isSave = true; if (StringUtils.isNotBlank(dto.getId())) { isSave = false; @@ -151,13 +164,6 @@ public class NoticeServiceImpl extends BaseServiceImpl 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); } @@ -175,7 +181,17 @@ public class NoticeServiceImpl extends BaseServiceImpl public void updatePublish(String noticeId) { NoticeEntity entity = new NoticeEntity(); entity.setId(noticeId); - entity.setIsPublish(YesOrNoEnum.YES.value()); + entity.setNoticeReleaseState(YesOrNoEnum.YES.value()); + entity.setReleaseTime(new Date()); this.updateById(entity); } + + @Override + public Result> listNoticeForApp(EpdcNoticeFormDTO formDto) { + int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize(); + formDto.setPageIndex(pageIndex); + + List noticeList = this.baseDao.selectListAppNotice(formDto); + return new Result().ok(noticeList); + } } \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/application.yml b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/application.yml index 5b3ea1487..12ceb21f3 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/application.yml +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/application.yml @@ -36,6 +36,23 @@ spring: username: @spring.datasource.druid.username@ password: @spring.datasource.druid.password@ +feign: + hystrix: + enabled: true + httpclient: + enabled: true + +hystrix: + command: + default: + execution: + isolation: + thread: + timeoutInMilliseconds: 60000 #缺省为1000 + +ribbon: + ReadTimeout: 300000 + ConnectTimeout: 300000 management: endpoints: 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 index b6c61a605..6fa7137f3 100644 --- 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 @@ -4,5 +4,21 @@ - + \ No newline at end of file