Browse Source

消息模块

dev
yujintao 6 years ago
parent
commit
1e90e4c244
  1. 20
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiNewsController.java
  2. 16
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/NewsFeignClient.java
  3. 10
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/NewsFeignClientFallback.java
  4. 16
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/NewsService.java
  5. 11
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java
  6. 5
      esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/InformationDTO.java
  7. 45
      esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcInformationListFormDTO.java
  8. 55
      esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcInformationListResultDTO.java
  9. 18
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppInformationController.java
  10. 13
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/InformationDao.java
  11. 5
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/InformationEntity.java
  12. 12
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/InformationService.java
  13. 11
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/InformationServiceImpl.java
  14. 22
      esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/InformationDao.xml

20
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiNewsController.java

@ -5,10 +5,7 @@ import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
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.*;
import com.elink.esua.epdc.dto.epdc.result.EpdcNewsDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNewsListResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO;
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.*;
@ -110,7 +107,7 @@ public class ApiNewsController {
*
*/
@PostMapping("news/statement")
public Result upDateStatement(@LoginUser TokenDto userDetail, EpdcNewsStatementFromDTO newsStatementFromDTO) {
public Result upDateStatement(@LoginUser TokenDto userDetail, @RequestBody EpdcNewsStatementFromDTO newsStatementFromDTO) {
ValidatorUtils.validateEntity(newsStatementFromDTO);
return newsService.upDateStatement(userDetail, newsStatementFromDTO);
}
@ -143,4 +140,17 @@ public class ApiNewsController {
ValidatorUtils.validateEntity(formDto);
return newsService.readInformation(formDto);
}
/**
* 移动端用户消息列表
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author yujintao
* @date 2019/9/10 17:05
*/
@GetMapping("information/listByUserId")
public Result<List<EpdcInformationListResultDTO>> listInformationByUserId(@LoginUser TokenDto userDetail, @RequestBody EpdcInformationListFormDTO formDto) {
return newsService.listInformationByUserId(userDetail, formDto);
}
}

16
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/NewsFeignClient.java

@ -3,10 +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.result.EpdcNewsDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNewsListResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO;
import com.elink.esua.epdc.dto.epdc.result.*;
import com.elink.esua.epdc.feign.fallback.NewsFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
@ -127,4 +124,15 @@ public interface NewsFeignClient {
*/
@PostMapping(value = "news/epdc-app/information/read", consumes = MediaType.APPLICATION_JSON_VALUE)
Result readInformation(@RequestBody EpdcInformationReadFormDTO formDto);
/**
* 移动端用户消息列表
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcInformationListResultDTO>>
* @author yujintao
* @date 2019/9/10 17:09
*/
@GetMapping(value = "news/epdc-app/information/listByUserId", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<EpdcInformationListResultDTO>> listInformationByUserId(EpdcInformationListFormDTO formDto);
}

10
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/NewsFeignClientFallback.java

@ -4,10 +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.result.EpdcNewsDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNewsListResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO;
import com.elink.esua.epdc.dto.epdc.result.*;
import com.elink.esua.epdc.feign.NewsFeignClient;
import org.springframework.stereotype.Component;
@ -65,4 +62,9 @@ public class NewsFeignClientFallback implements NewsFeignClient {
public Result readInformation(EpdcInformationReadFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_NEWS_SERVER, "readInformation", formDto);
}
@Override
public Result<List<EpdcInformationListResultDTO>> listInformationByUserId(EpdcInformationListFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_NEWS_SERVER, "listInformationByUserId", formDto);
}
}

16
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/NewsService.java

@ -3,10 +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.result.EpdcNewsDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNewsListResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO;
import com.elink.esua.epdc.dto.epdc.result.*;
import java.util.List;
@ -104,4 +101,15 @@ public interface NewsService {
* @date 2019/9/10 11:05
*/
Result readInformation(EpdcInformationReadFormDTO formDto);
/**
* 移动端用户消息列表
*
* @param userDetail
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author yujintao
* @date 2019/9/10 17:05
*/
Result<List<EpdcInformationListResultDTO>> listInformationByUserId(TokenDto userDetail, EpdcInformationListFormDTO formDto);
}

11
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/NewsServiceImpl.java

@ -3,10 +3,7 @@ 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.epdc.form.*;
import com.elink.esua.epdc.dto.epdc.result.EpdcNewsDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNewsListResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeDetailResultDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcNoticeListResultDTO;
import com.elink.esua.epdc.dto.epdc.result.*;
import com.elink.esua.epdc.feign.NewsFeignClient;
import com.elink.esua.epdc.service.NewsService;
import org.springframework.beans.factory.annotation.Autowired;
@ -71,4 +68,10 @@ public class NewsServiceImpl implements NewsService {
public Result readInformation(EpdcInformationReadFormDTO formDto) {
return newsFeignClient.readInformation(formDto);
}
@Override
public Result<List<EpdcInformationListResultDTO>> listInformationByUserId(TokenDto userDetail, EpdcInformationListFormDTO formDto) {
formDto.setUserId(userDetail.getUserId());
return newsFeignClient.listInformationByUserId(formDto);
}
}

5
esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/InformationDTO.java

@ -49,11 +49,6 @@ public class InformationDTO implements Serializable {
*/
private String title;
/**
* 时间
*/
private Date time;
/**
* AppInformationEnum
* 我的消息类型0审核通知1互动通知2进度通知3社群通知

45
esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/form/EpdcInformationListFormDTO.java

@ -0,0 +1,45 @@
package com.elink.esua.epdc.dto.epdc.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 移动端我的消息列表
*
* @author yujintao
* @email yujintao@elink-cn.com
* @date 2019/9/10 15:32
*/
@Data
public class EpdcInformationListFormDTO implements Serializable {
private static final long serialVersionUID = 5168417844245777101L;
/**
* 用户ID
*/
@NotBlank(message = "用户ID不能为空")
private String userId;
/**
* 页码
*/
@NotNull(message = "页码不能为空")
private Integer pageIndex;
/**
* 页容量
*/
@NotNull(message = "页容量不能为空")
private Integer pageSize;
/**
* 第一页查询发起时的时间
*/
@NotBlank(message = "时间戳不能为空")
private String timestamp;
}

55
esua-epdc/epdc-module/epdc-news/epdc-news-client/src/main/java/com/elink/esua/epdc/dto/epdc/result/EpdcInformationListResultDTO.java

@ -0,0 +1,55 @@
package com.elink.esua.epdc.dto.epdc.result;
import lombok.Data;
import java.io.Serializable;
/**
* 移动端用户消息列表用
*
* @author yujintao
* @email yujintao@elink-cn.com
* @date 2019/9/10 15:41
*/
@Data
public class EpdcInformationListResultDTO implements Serializable {
private static final long serialVersionUID = 7751317347739906391L;
/**
* ID
*/
private String id;
/**
* 消息内容
*/
private String content;
/**
* 时间
*/
private String time;
/**
* 标题
*/
private String title;
/**
* 我的消息类型0审核通知1互动通知2进度通知3社群通知
*/
private String type;
/**
* 消息所属业务ID
*/
private String businessId;
/**
* 消息所属业务类型comment事件评论reply评论回复issue议题处理crowd社群邀请等
*/
private String businessType;
/**
* 消息关联业务内容被回复的评论被评论的议题等
*/
private String relBusinessContent;
/**
* 是否已读
*/
private String readFlag;
}

18
esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppInformationController.java

@ -21,11 +21,15 @@ import com.elink.esua.epdc.commons.tools.constant.Constant;
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.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationListFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationReadFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcInformationListResultDTO;
import com.elink.esua.epdc.service.InformationService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 我的消息
@ -67,4 +71,18 @@ public class EpdcAppInformationController {
ValidatorUtils.validateEntity(formDto);
return this.informationService.readInformation(formDto);
}
/**
* 移动端用户消息列表
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author yujintao
* @date 2019/9/10 16:42
*/
@GetMapping("listByUserId")
public Result<List<EpdcInformationListResultDTO>> listByUserId(@RequestBody EpdcInformationListFormDTO formDto) {
ValidatorUtils.validateEntity(formDto);
return this.informationService.listByUserId(formDto);
}
}

13
esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/dao/InformationDao.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.EpdcInformationListFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcInformationListResultDTO;
import com.elink.esua.epdc.entity.InformationEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 我的消息
*
@ -30,4 +34,13 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface InformationDao extends BaseDao<InformationEntity> {
/**
* 移动端用户消息列表
*
* @param formDto
* @return java.util.List<com.elink.esua.epdc.dto.epdc.result.EpdcInformationListResultDTO>
* @author yujintao
* @date 2019/9/10 16:47
*/
List<EpdcInformationListResultDTO> selectListInfromation(EpdcInformationListFormDTO formDto);
}

5
esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/entity/InformationEntity.java

@ -48,11 +48,6 @@ public class InformationEntity extends BaseEpdcEntity {
*/
private String title;
/**
* 时间
*/
private Date time;
/**
* AppInformationEnum
* 我的消息类型0审核通知1互动通知2进度通知3社群通知

12
esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/InformationService.java

@ -22,7 +22,9 @@ import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.InformationDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationListFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationReadFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcInformationListResultDTO;
import com.elink.esua.epdc.entity.InformationEntity;
import java.util.List;
@ -115,4 +117,14 @@ public interface InformationService extends BaseService<InformationEntity> {
* @date 2019/9/10 11:00
*/
Result readInformation(EpdcInformationReadFormDTO formDto);
/**
* 移动端用户消息列表
*
* @param formDto
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author yujintao
* @date 2019/9/10 16:43
*/
Result<List<EpdcInformationListResultDTO>> listByUserId(EpdcInformationListFormDTO formDto);
}

11
esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/java/com/elink/esua/epdc/service/impl/InformationServiceImpl.java

@ -20,6 +20,7 @@ package com.elink.esua.epdc.service.impl;
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.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
@ -28,7 +29,9 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dao.InformationDao;
import com.elink.esua.epdc.dto.InformationDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationListFormDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcInformationReadFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcInformationListResultDTO;
import com.elink.esua.epdc.entity.InformationEntity;
import com.elink.esua.epdc.service.InformationService;
import org.apache.commons.lang3.StringUtils;
@ -105,7 +108,6 @@ public class InformationServiceImpl extends BaseServiceImpl<InformationDao, Info
public Result saveInformation(EpdcInformationFormDTO formDto) {
InformationEntity entity = ConvertUtils.sourceToTarget(formDto, InformationEntity.class);
entity.setReadFlag(YesOrNoEnum.NO.value());
entity.setTime(new Date());
this.insert(entity);
return new Result();
}
@ -118,4 +120,11 @@ public class InformationServiceImpl extends BaseServiceImpl<InformationDao, Info
this.updateById(entity);
return new Result();
}
@Override
public Result<List<EpdcInformationListResultDTO>> listByUserId(EpdcInformationListFormDTO formDto) {
formDto.setPageIndex((formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize());
List<EpdcInformationListResultDTO> list = this.baseDao.selectListInfromation(formDto);
return new Result().ok(list);
}
}

22
esua-epdc/epdc-module/epdc-news/epdc-news-server/src/main/resources/mapper/InformationDao.xml

@ -4,5 +4,25 @@
<mapper namespace="com.elink.esua.epdc.dao.InformationDao">
<select id="selectListInfromation"
resultType="com.elink.esua.epdc.dto.epdc.result.EpdcInformationListResultDTO">
SELECT
im.ID,
im.TITLE,
im.CONTENT,
im.TYPE,
im.READ_FLAG,
im.BUSINESS_ID,
im.BUSINESS_TYPE,
im.REL_BUSINESS_CONTENT,
DATE_FORMAT( im.CREATED_TIME, '%Y-%m-%d %H:%i:%s' ) AS `time`
FROM
epdc_information im
WHERE
im.USER_ID = #{userId}
AND im.CREATED_TIME &lt;= STR_TO_DATE( #{timestamp}, '%Y-%m-%d %H:%i:%s' )
ORDER BY
im.READ_FLAG DESC, im.CREATED_TIME DESC
LIMIT #{pageIndex},#{pageSize}
</select>
</mapper>
Loading…
Cancel
Save