mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-11 03:46:50 +08:00
提交读标记
This commit is contained in:
@@ -177,6 +177,11 @@ public class CasesRecommendApi extends ApiBaseController {
|
||||
return success(iCasesRecommendPushRecordService.startRead(caseRecommendId));
|
||||
}
|
||||
|
||||
@GetMapping("/endRead")
|
||||
public JsonResponse<Boolean> endRead(String caseRecommendId) {
|
||||
return success(iCasesRecommendPushRecordService.startRead(caseRecommendId));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 发起推送
|
||||
|
||||
@@ -41,4 +41,11 @@ public interface ICasesRecommendPushRecordService {
|
||||
* @return
|
||||
*/
|
||||
boolean startRead(String caseRecommendId);
|
||||
|
||||
/**
|
||||
* 结束读
|
||||
* @param caseRecommendId
|
||||
* @return
|
||||
*/
|
||||
boolean endRead(String caseRecommendId);
|
||||
}
|
||||
|
||||
@@ -318,4 +318,16 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
|
||||
.addFilter(FieldFilters.eq("id", caseRecommendId))
|
||||
.builder()) > 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean endRead(String caseRecommendId) {
|
||||
CasesRecommendPushRecord casesRecommendPushRecord = casesRecommendPushRecordDao.get(caseRecommendId);
|
||||
if (casesRecommendPushRecord.getReadEndTime() != null) {
|
||||
return true;
|
||||
}
|
||||
return casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
|
||||
.addUpdateField("readEndTime", new Date())
|
||||
.addFilter(FieldFilters.eq("id", caseRecommendId))
|
||||
.builder()) > 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.xboe.system.user.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.xboe.common.OrderCondition;
|
||||
import com.xboe.common.PageList;
|
||||
import com.xboe.core.orm.FieldFilters;
|
||||
import com.xboe.core.orm.IFieldFilter;
|
||||
import com.xboe.core.orm.QueryBuilder;
|
||||
import com.xboe.core.orm.UpdateBuilder;
|
||||
import com.xboe.module.boecase.dao.CasesRecommendPushRecordDao;
|
||||
@@ -15,10 +17,8 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 消息
|
||||
@@ -75,14 +75,6 @@ public class MessageServiceImpl implements IMessageService {
|
||||
Message message = dao.get(id);
|
||||
if (!message.getIsRead()) {
|
||||
dao.updateFieldById(id, "isRead", true);
|
||||
|
||||
if ("99".equals(message.getRefType())) {
|
||||
casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
|
||||
.addUpdateField("readFlag", 1)
|
||||
.addUpdateField("readStartTime", new Date())
|
||||
.addFilter(FieldFilters.eq("id", message.getRefId()))
|
||||
.builder());
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
@@ -108,22 +100,13 @@ public class MessageServiceImpl implements IMessageService {
|
||||
if (CollectionUtils.isEmpty(ids)) {
|
||||
return;
|
||||
}
|
||||
//更新最后读时间
|
||||
for (String id : ids) {
|
||||
Message message = dao.get(id);
|
||||
if ("99".equals(message.getRefType())) {
|
||||
casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
|
||||
.addUpdateField("readEndTime", new Date())
|
||||
.addFilter(FieldFilters.eq("id", message.getRefId()))
|
||||
.builder());
|
||||
}
|
||||
}
|
||||
|
||||
dao.update(UpdateBuilder.from(Message.class)
|
||||
.addUpdateField("isRead", true)
|
||||
.addFilter(FieldFilters.in("id", ids))
|
||||
.builder());
|
||||
|
||||
markCommendCaseStartRead(null, ids);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -161,8 +144,48 @@ public class MessageServiceImpl implements IMessageService {
|
||||
@Transactional
|
||||
public void setReadByAcceptId(String aid) {
|
||||
dao.update("Update " + Message.class.getSimpleName() + " set isRead=?1 where acceptId=?2 and isRead=?3", true, aid, false);
|
||||
markCommendCaseStartRead(aid, null);
|
||||
}
|
||||
|
||||
|
||||
private void markCommendCaseStartRead(String aid, List<String> ids) {
|
||||
List<IFieldFilter> fieldFilters = new ArrayList<>();
|
||||
if (StrUtil.isNotBlank(aid)) {
|
||||
fieldFilters.add(FieldFilters.eq("acceptId", aid));
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(ids)) {
|
||||
fieldFilters.add(FieldFilters.in("id", ids));
|
||||
}
|
||||
fieldFilters.add(FieldFilters.eq("refType", "99"));
|
||||
List<Message> caseList = dao.findList(fieldFilters.toArray(new IFieldFilter[0]));
|
||||
if (CollectionUtils.isEmpty(caseList)) {
|
||||
return;
|
||||
}
|
||||
//单条推送
|
||||
List<Message> singleList = caseList.stream().filter(message -> StrUtil.isNotBlank(message.getRefId()) && !message.getRefId().equals(message.getBatchId()))
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(singleList)) {
|
||||
List<String> commendRecordIds = singleList.stream().map(Message::getRefId).collect(Collectors.toList());
|
||||
|
||||
casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
|
||||
.addUpdateField("readStartTime", new Date())
|
||||
.addUpdateField("readEndTime", new Date())
|
||||
.addFilter(FieldFilters.in("id", commendRecordIds))
|
||||
.builder());
|
||||
}
|
||||
|
||||
List<Message> mixList = caseList.stream().filter(message -> StrUtil.isNotBlank(message.getRefId()) && message.getRefId().equals(message.getBatchId())).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(mixList)) {
|
||||
List<String> commendIds = mixList.stream().map(Message::getRefId).collect(Collectors.toList());
|
||||
casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
|
||||
.addUpdateField("readStartTime", new Date())
|
||||
.addUpdateField("readEndTime", new Date())
|
||||
.addFilter(FieldFilters.in("recommendId", commendIds))
|
||||
.builder());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void cleanByAcceptId(String aid) {
|
||||
|
||||
Reference in New Issue
Block a user