Browse Source

小组通知阅读状态修改

dev_shibei_match
sunyuchao 4 years ago
parent
commit
d1a125765b
  1. 21
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/ReadTypeFormDTO.java
  2. 14
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeReafdRecordController.java
  3. 6
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/dao/NoticeReafdRecordDao.java
  4. 9
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/NoticeReafdRecordService.java
  5. 39
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeReafdRecordServiceImpl.java
  6. 11
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeReafdRecordDao.xml

21
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/notice/form/ReadTypeFormDTO.java

@ -0,0 +1,21 @@
package com.epmet.resi.group.dto.notice.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author sun
* @Description 通知已读未读列表查询-接口入参
*/
@Data
public class ReadTypeFormDTO {
/**
* 通知Id
*/
@NotBlank(message = "通知Id不能为空",groups = {ReadTypeFormDTO.Read.class})
private String noticeId;
public interface Read{}
}

14
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/controller/NoticeReafdRecordController.java

@ -31,6 +31,7 @@ import com.epmet.modules.notice.excel.NoticeReafdRecordExcel;
import com.epmet.modules.notice.service.NoticeReafdRecordService;
import com.epmet.resi.group.dto.notice.NoticeReafdRecordDTO;
import com.epmet.resi.group.dto.notice.form.NoticeReadListFormDTO;
import com.epmet.resi.group.dto.notice.form.ReadTypeFormDTO;
import com.epmet.resi.group.dto.notice.result.NoticeReadListResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -107,4 +108,17 @@ public class NoticeReafdRecordController {
return new Result<NoticeReadListResultDTO>().ok(noticeReafdRecordService.noticeReadList(tokenDto, formDTO));
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 小组通知阅读状态修改
**/
@PostMapping(value = "readtype")
public Result readType(@LoginUser TokenDto tokenDto, @RequestBody ReadTypeFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, ReadTypeFormDTO.Read.class);
noticeReafdRecordService.readType(tokenDto, formDTO);
return new Result();
}
}

6
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/dao/NoticeReafdRecordDao.java

@ -45,4 +45,10 @@ public interface NoticeReafdRecordDao extends BaseDao<NoticeReafdRecordEntity> {
* @Description 根据通知Id查询组成员已读未读数据
**/
List<NoticeReafdRecordDTO> getByNoticeId(@Param("noticeId") String noticeId);
/**
* @Author sun
* @Description 查询当前人员是否存在对通知已读未读数据
**/
NoticeReafdRecordEntity selectByNoticeId(@Param("noticeId") String noticeId, @Param("userId") String userId);
}

9
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/NoticeReafdRecordService.java

@ -23,6 +23,7 @@ import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.modules.notice.entity.NoticeReafdRecordEntity;
import com.epmet.resi.group.dto.notice.NoticeReafdRecordDTO;
import com.epmet.resi.group.dto.notice.form.NoticeReadListFormDTO;
import com.epmet.resi.group.dto.notice.form.ReadTypeFormDTO;
import com.epmet.resi.group.dto.notice.result.NoticeReadListResultDTO;
import java.util.List;
@ -103,4 +104,12 @@ public interface NoticeReafdRecordService extends BaseService<NoticeReafdRecordE
* @Description 通知已读未读列表查询
**/
NoticeReadListResultDTO noticeReadList(TokenDto tokenDto, NoticeReadListFormDTO formDTO);
/**
* @param formDTO
* @return
* @Author sun
* @Description 小组通知阅读状态修改
**/
void readType(TokenDto tokenDto, ReadTypeFormDTO formDTO);
}

39
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/notice/service/impl/NoticeReafdRecordServiceImpl.java

@ -26,15 +26,18 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.ReadFlagConstant;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.modules.notice.dao.NoticeDao;
import com.epmet.modules.notice.dao.NoticeReafdRecordDao;
import com.epmet.modules.notice.entity.NoticeEntity;
import com.epmet.modules.notice.entity.NoticeReafdRecordEntity;
import com.epmet.modules.notice.redis.NoticeReafdRecordRedis;
import com.epmet.modules.notice.service.NoticeReafdRecordService;
import com.epmet.resi.group.dto.notice.NoticeReafdRecordDTO;
import com.epmet.resi.group.dto.notice.form.NoticeReadListFormDTO;
import com.epmet.resi.group.dto.notice.form.ReadTypeFormDTO;
import com.epmet.resi.group.dto.notice.result.NoticeReadListResultDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -45,7 +48,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
@ -173,4 +175,39 @@ public class NoticeReafdRecordServiceImpl extends BaseServiceImpl<NoticeReafdRec
return resultDTO;
}
/**
* @param formDTO
* @return
* @Author sun
* @Description 小组通知阅读状态修改
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void readType(TokenDto tokenDto, ReadTypeFormDTO formDTO) {
//1.根据通知Id和当前用户查询是否存在通知阅读记录
NoticeReafdRecordEntity entity = baseDao.selectByNoticeId(formDTO.getNoticeId(), tokenDto.getUserId());
//2.不存在记录时新增已读记录
if (null == entity || StringUtils.isEmpty(entity.getId())) {
//查询通知详情
NoticeEntity notice = noticeDao.selectById(formDTO.getNoticeId());
//新增当前人员已读数据
NoticeReafdRecordEntity reafdRecord = new NoticeReafdRecordEntity();
reafdRecord.setCustomerId(notice.getCustomerId());
reafdRecord.setGridId(notice.getGridId());
reafdRecord.setGroupId(notice.getGroupId());
reafdRecord.setNoticeId(notice.getId());
reafdRecord.setUserId(tokenDto.getUserId());
reafdRecord.setReadFlag(ReadFlagConstant.READ);
insert(reafdRecord);
} else {
//3.已存在记录且是已读状态不在修改
if (ReadFlagConstant.UN_READ.equals(entity.getReadFlag())) {
entity.setReadFlag(ReadFlagConstant.READ);
baseDao.updateById(entity);
}
}
}
}

11
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/notice/NoticeReafdRecordDao.xml

@ -13,6 +13,17 @@
AND notice_id = #{noticeId}
</select>
<select id="selectByNoticeId" resultType="com.epmet.modules.notice.entity.NoticeReafdRecordEntity">
SELECT
*
FROM
notice_reafd_record
WHERE
del_flag = '0'
AND notice_id = #{noticeId}
AND user_id = #{userId}
</select>
<delete id="delByNoticeId">
DELETE
FROM

Loading…
Cancel
Save