diff --git a/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiNewsV2Controller.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiNewsV2Controller.java new file mode 100644 index 00000000..a2d309a8 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiNewsV2Controller.java @@ -0,0 +1,45 @@ +package com.elink.esua.epdc.controller.v2; + +import com.elink.esua.epdc.common.token.dto.TokenDto; +import com.elink.esua.epdc.commons.api.version.ApiVersion; +import com.elink.esua.epdc.commons.tools.annotation.LoginUser; +import com.elink.esua.epdc.commons.tools.constant.Constant; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.epdc.form.v2.EpdcNoticeListV2FormDTO; +import com.elink.esua.epdc.dto.epdc.result.*; +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模块,移动端接口-V2 + * + * @Author:zhangyong + * @Date:2020-05-19 + */ +@ApiVersion(2) +@RestController("ApiNewsV2Controller") +@RequestMapping("news" + Constant.VERSION_CONTROL) +public class ApiNewsV2Controller { + + @Autowired + private NewsService newsService; + + /* + * 移动端通知列表接口 - v2 + * + * @param userDetail + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author zhangyong + * @Date 09:46 2020-05-19 + **/ + @GetMapping("notice/list") + public Result> listNotice(@LoginUser TokenDto userDetail, EpdcNoticeListV2FormDTO formDto) { + return newsService.listV2Notice(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 index 35a3ddb8..55fa11cd 100644 --- 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 @@ -3,6 +3,7 @@ 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.*; +import com.elink.esua.epdc.dto.epdc.form.v2.EpdcNoticeListV2FormDTO; import com.elink.esua.epdc.dto.epdc.result.*; import com.elink.esua.epdc.feign.fallback.NewsFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; @@ -156,5 +157,15 @@ public interface NewsFeignClient { @PostMapping(value = "news/epdc-app/information/first/{userId}", consumes = MediaType.APPLICATION_JSON_VALUE) Result selectOneFristByUserId(@PathVariable String userId); - + /* + * 移动端通知列表接口 - v2 + * + * @param userDetail + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author zhangyong + * @Date 09:46 2020-05-19 + **/ + @GetMapping(value = "news/epdc-app/notice/v2/listNotice", consumes = MediaType.APPLICATION_JSON_VALUE) + Result> listV2Notice(EpdcNoticeListV2FormDTO 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 index c1a66fc6..66726285 100644 --- 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 @@ -4,6 +4,7 @@ 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.*; +import com.elink.esua.epdc.dto.epdc.form.v2.EpdcNoticeListV2FormDTO; import com.elink.esua.epdc.dto.epdc.result.*; import com.elink.esua.epdc.feign.NewsFeignClient; import org.springframework.stereotype.Component; @@ -78,4 +79,8 @@ public class NewsFeignClientFallback implements NewsFeignClient { return ModuleUtils.feignConError(ServiceConstant.EPDC_NEWS_SERVER, "selectOneFristByUserId", userId); } + @Override + public Result> listV2Notice(EpdcNoticeListV2FormDTO formDto) { + return ModuleUtils.feignConError(ServiceConstant.EPDC_NEWS_SERVER, "listV2Notice", 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 80b552b6..24d25ddd 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 @@ -3,6 +3,7 @@ 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.epdc.form.*; +import com.elink.esua.epdc.dto.epdc.form.v2.EpdcNoticeListV2FormDTO; import com.elink.esua.epdc.dto.epdc.result.*; import java.util.List; @@ -132,4 +133,15 @@ public interface NewsService { * @date 2019/9/11 19:17 */ Result selectOneFristByUserId(TokenDto userDetail); + + /* + * 移动端通知列表接口 - v2 + * + * @param userDetail + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author zhangyong + * @Date 09:46 2020-05-19 + **/ + Result> listV2Notice(TokenDto userDetail, EpdcNoticeListV2FormDTO 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 4b02746b..28872f6e 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 @@ -5,6 +5,7 @@ import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum; import com.elink.esua.epdc.commons.tools.redis.RedisUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.dto.epdc.form.*; +import com.elink.esua.epdc.dto.epdc.form.v2.EpdcNoticeListV2FormDTO; import com.elink.esua.epdc.dto.epdc.result.*; import com.elink.esua.epdc.feign.NewsFeignClient; import com.elink.esua.epdc.service.NewsService; @@ -104,4 +105,10 @@ public class NewsServiceImpl implements NewsService { String userId = userDetail.getUserId(); return newsFeignClient.selectOneFristByUserId(userId); } + + @Override + public Result> listV2Notice(TokenDto userDetail, EpdcNoticeListV2FormDTO formDto) { + formDto.setDeptId(userDetail.getGridId()); + return newsFeignClient.listV2Notice(formDto); + } } diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/v2/EpdcNoticeListV2FormDTO.java b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/v2/EpdcNoticeListV2FormDTO.java new file mode 100644 index 00000000..0febe675 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/v2/EpdcNoticeListV2FormDTO.java @@ -0,0 +1,43 @@ +package com.elink.esua.epdc.dto.epdc.form.v2; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + +/** + * 移动端通知列表,V2查询条件 + * + * @Author:zhangyong + * @Date:2020-05-19 + */ +@Data +public class EpdcNoticeListV2FormDTO implements Serializable { + + private static final long serialVersionUID = 4209188661412055700L; + + /** + * 用户所属网格ID + */ + @NotNull(message = "用户网格ID不能为空") + private Long deptId; + + /** + * 页码 + */ + @NotNull(message = "页码不能为空") + private Integer pageIndex; + + /** + * 页容量 + */ + @NotNull(message = "页容量不能为空") + private Integer pageSize; + + /** + * 通知类别:模块编码(0-政策导航,1-印象,2-味道) + */ + @NotBlank(message = "通知类别(0-政策导航,1-印象,2-味道)不能为空") + private String noticeCategory; +} diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcNoticeListResultDTO.java b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcNoticeListResultDTO.java index cfd17906..36bb470c 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcNoticeListResultDTO.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcNoticeListResultDTO.java @@ -38,4 +38,9 @@ public class EpdcNoticeListResultDTO implements Serializable { * 通知发布部门 */ private String deptName; + + /** + * 首图 + */ + private String imgUrl; } diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/enums/AppNoticeCategoryEnum.java b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/enums/AppNoticeCategoryEnum.java new file mode 100644 index 00000000..9f695e2b --- /dev/null +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/enums/AppNoticeCategoryEnum.java @@ -0,0 +1,66 @@ +package com.elink.esua.epdc.enums; + +import com.elink.esua.epdc.commons.tools.constant.NumConstant; + +/** + * 消息通知分类枚举 + * + * @author zhangyong + * @date 09:46 2020-05-19 + */ +public enum AppNoticeCategoryEnum { + + /** + * 0 政策导航 + */ + NOTICE_NAVIGATION("notice_navigation", NumConstant.ZERO_STR), + /** + * 1 印象 + */ + NOTICE_IMPRESSION("notice_impression", NumConstant.ONE_STR), + /** + * 2 味道 + */ + NOTICE_TASTE("notice_taste", NumConstant.TWO_STR), + /** + * 3 硬核 + */ + NOTICE_HARDCORE("notice_hardcore", NumConstant.THREE_STR), + /** + * 4 档案 + */ + NOTICE_FILE("notice_file", NumConstant.FOUR_STR); + + private String name; + private String index; + + AppNoticeCategoryEnum(String name, String index) { + this.name = name; + this.index = index; + } + + public static String getName(String index) { + for (AppNoticeCategoryEnum c : AppNoticeCategoryEnum.values()) { + if (c.getIndex().equals(index)) { + return c.name; + } + } + return null; + } + + public static String getIndex(String name) { + for (AppNoticeCategoryEnum c : AppNoticeCategoryEnum.values()) { + if (c.getName().equals(name)) { + return c.index; + } + } + return null; + } + + public String getName() { + return name; + } + public String getIndex() { + return index; + } +} diff --git a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppNoticeController.java b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppNoticeController.java index 38e968c6..49726fcc 100644 --- a/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppNoticeController.java +++ b/esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppNoticeController.java @@ -22,6 +22,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeBrowseFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeListFormDTO; +import com.elink.esua.epdc.dto.epdc.form.v2.EpdcNoticeListV2FormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeDetailResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO; import com.elink.esua.epdc.service.NoticeService; @@ -84,4 +85,18 @@ public class EpdcAppNoticeController { ValidatorUtils.validateEntity(formDto); return this.noticeService.updateReadingAmount(formDto); } -} \ No newline at end of file + + /* + * 移动端通知列表接口 - v2 + * + * @param userDetail + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author zhangyong + * @Date 09:46 2020-05-19 + **/ + @GetMapping("v2/listNotice") + public Result> listNotice(@RequestBody EpdcNoticeListV2FormDTO formDto) { + return noticeService.listV2Notice(formDto); + } +} 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 2b4340d7..8fa6f286 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 @@ -20,6 +20,7 @@ package com.elink.esua.epdc.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.dto.NoticeDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeListFormDTO; +import com.elink.esua.epdc.dto.epdc.form.v2.EpdcNoticeListV2FormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeDetailResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO; import com.elink.esua.epdc.entity.NoticeEntity; @@ -109,4 +110,15 @@ public interface NoticeDao extends BaseDao { * @since 2020/3/7 1:20 */ void updateDeptNameByDeptId(String newDeptName, Long deptId); -} \ No newline at end of file + + /* + * 移动端通知列表接口 - v2 + * + * @param userDetail + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author zhangyong + * @Date 09:46 2020-05-19 + **/ + List selectListV2AppNotice(EpdcNoticeListV2FormDTO formDto); +} 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 59dfc90c..bd5ba517 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 @@ -24,6 +24,7 @@ import com.elink.esua.epdc.dto.NoticeDTO; import com.elink.esua.epdc.dto.SysSimpleDictDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeBrowseFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeListFormDTO; +import com.elink.esua.epdc.dto.epdc.form.v2.EpdcNoticeListV2FormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeDetailResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO; import com.elink.esua.epdc.entity.NoticeEntity; @@ -169,4 +170,15 @@ public interface NoticeService extends BaseService { * @Date 18:40 2020-05-18 **/ Result> getListSimpleByDictType(String dictType); + + /* + * 移动端通知列表接口 - v2 + * + * @param userDetail + * @param formDto + * @return com.elink.esua.epdc.commons.tools.utils.Result> + * @Author zhangyong + * @Date 09:46 2020-05-19 + **/ + Result> listV2Notice(EpdcNoticeListV2FormDTO formDto); } 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 3e52e946..4fc18211 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 @@ -36,9 +36,11 @@ import com.elink.esua.epdc.dto.ParentAndAllDeptDTO; import com.elink.esua.epdc.dto.SysSimpleDictDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeBrowseFormDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcNoticeListFormDTO; +import com.elink.esua.epdc.dto.epdc.form.v2.EpdcNoticeListV2FormDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeDetailResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO; import com.elink.esua.epdc.entity.NoticeEntity; +import com.elink.esua.epdc.enums.AppNoticeCategoryEnum; import com.elink.esua.epdc.feign.AdminFeignClient; import com.elink.esua.epdc.redis.NoticeRedis; import com.elink.esua.epdc.rocketmq.dto.OrganizationModifyDTO; @@ -292,4 +294,14 @@ public class NoticeServiceImpl extends BaseServiceImpl public Result> getListSimpleByDictType(String dictType) { return adminFeignClient.getListSimpleByDictType(dictType); } + + @Override + public Result> listV2Notice(EpdcNoticeListV2FormDTO formDto) { + int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize(); + formDto.setPageIndex(pageIndex); + formDto.setNoticeCategory(AppNoticeCategoryEnum.getName(formDto.getNoticeCategory())); + + List noticeList = this.baseDao.selectListV2AppNotice(formDto); + return new Result().ok(noticeList); + } } 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 c87bd37f..e1813acd 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 @@ -95,4 +95,23 @@ UPDATE epdc_notice SET DEPT_NAME = #{newDeptName}, UPDATED_TIME = NOW() WHERE DEPT_ID = #{deptId} - \ No newline at end of file + +