Browse Source

通知列表 接口

feature/syp_points
zhangyongzhangyong 5 years ago
parent
commit
b84e1c56c5
  1. 45
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/v2/ApiNewsV2Controller.java
  2. 13
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/NewsFeignClient.java
  3. 5
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/NewsFeignClientFallback.java
  4. 12
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/NewsService.java
  5. 7
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java
  6. 43
      esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/v2/EpdcNoticeListV2FormDTO.java
  7. 5
      esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcNoticeListResultDTO.java
  8. 66
      esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/enums/AppNoticeCategoryEnum.java
  9. 15
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppNoticeController.java
  10. 12
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/NoticeDao.java
  11. 12
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/NoticeService.java
  12. 12
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/NoticeServiceImpl.java
  13. 19
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/NoticeDao.xml

45
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
*
* @Authorzhangyong
* @Date2020-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<java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO>>
* @Author zhangyong
* @Date 09:46 2020-05-19
**/
@GetMapping("notice/list")
public Result<List<EpdcNoticeListResultDTO>> listNotice(@LoginUser TokenDto userDetail, EpdcNoticeListV2FormDTO formDto) {
return newsService.listV2Notice(userDetail, formDto);
}
}

13
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<EpdcInformationFristResultDTO> selectOneFristByUserId(@PathVariable String userId);
/*
* 移动端通知列表接口 - v2
*
* @param userDetail
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO>>
* @Author zhangyong
* @Date 09:46 2020-05-19
**/
@GetMapping(value = "news/epdc-app/notice/v2/listNotice", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<EpdcNoticeListResultDTO>> listV2Notice(EpdcNoticeListV2FormDTO formDto);
}

5
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<List<EpdcNoticeListResultDTO>> listV2Notice(EpdcNoticeListV2FormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_NEWS_SERVER, "listV2Notice", formDto);
}
}

12
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<EpdcInformationFristResultDTO> selectOneFristByUserId(TokenDto userDetail);
/*
* 移动端通知列表接口 - v2
*
* @param userDetail
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO>>
* @Author zhangyong
* @Date 09:46 2020-05-19
**/
Result<List<EpdcNoticeListResultDTO>> listV2Notice(TokenDto userDetail, EpdcNoticeListV2FormDTO formDto);
}

7
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<List<EpdcNoticeListResultDTO>> listV2Notice(TokenDto userDetail, EpdcNoticeListV2FormDTO formDto) {
formDto.setDeptId(userDetail.getGridId());
return newsFeignClient.listV2Notice(formDto);
}
}

43
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查询条件
*
* @Authorzhangyong
* @Date2020-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;
}

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

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

15
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);
}
/*
* 移动端通知列表接口 - v2
*
* @param userDetail
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO>>
* @Author zhangyong
* @Date 09:46 2020-05-19
**/
@GetMapping("v2/listNotice")
public Result<List<EpdcNoticeListResultDTO>> listNotice(@RequestBody EpdcNoticeListV2FormDTO formDto) {
return noticeService.listV2Notice(formDto);
}
}

12
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<NoticeEntity> {
* @since 2020/3/7 1:20
*/
void updateDeptNameByDeptId(String newDeptName, Long deptId);
/*
* 移动端通知列表接口 - v2
*
* @param userDetail
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO>>
* @Author zhangyong
* @Date 09:46 2020-05-19
**/
List<EpdcNoticeListResultDTO> selectListV2AppNotice(EpdcNoticeListV2FormDTO formDto);
}

12
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<NoticeEntity> {
* @Date 18:40 2020-05-18
**/
Result<List<SysSimpleDictDTO>> getListSimpleByDictType(String dictType);
/*
* 移动端通知列表接口 - v2
*
* @param userDetail
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO>>
* @Author zhangyong
* @Date 09:46 2020-05-19
**/
Result<List<EpdcNoticeListResultDTO>> listV2Notice(EpdcNoticeListV2FormDTO formDto);
}

12
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<NoticeDao, NoticeEntity>
public Result<List<SysSimpleDictDTO>> getListSimpleByDictType(String dictType) {
return adminFeignClient.getListSimpleByDictType(dictType);
}
@Override
public Result<List<EpdcNoticeListResultDTO>> listV2Notice(EpdcNoticeListV2FormDTO formDto) {
int pageIndex = (formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize();
formDto.setPageIndex(pageIndex);
formDto.setNoticeCategory(AppNoticeCategoryEnum.getName(formDto.getNoticeCategory()));
List<EpdcNoticeListResultDTO> noticeList = this.baseDao.selectListV2AppNotice(formDto);
return new Result().ok(noticeList);
}
}

19
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}
</update>
<select id="selectListV2AppNotice" resultType="com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO">
SELECT
en.ID AS id,
en.NOTICE_TITLE AS noticeTitle,
en.RELEASE_TIME AS noticeTime,
SUBSTRING_INDEX(en.ALL_DEPT_NAMES,'-',-1) AS deptName,
en.NOTICE_IMAGE_URL imgUrl
FROM
epdc_notice en
RIGHT JOIN epdc_notice_department nd ON en.ID = nd.NOTICE_ID
WHERE
nd.DEPT_ID = #{deptId}
AND NOTICE_CATEGORY = #{noticeCategory}
AND en.DEL_FLAG = '0'
AND en.NOTICE_RELEASE_STATE = 1
ORDER BY
en.RELEASE_TIME DESC
LIMIT #{pageIndex},#{pageSize}
</select>
</mapper>
Loading…
Cancel
Save