Merge remote-tracking branch 'origin/master'

This commit is contained in:
buerjun
2023-07-03 16:51:08 +08:00
8 changed files with 127 additions and 83 deletions

View File

@@ -269,7 +269,7 @@ public class CasesRecommendApi extends ApiBaseController {
if (StringUtils.isEmpty(casesRecommendPushVo.getCasesRecommendId())) {
throw new RuntimeException("缺少必要参数");
}
iCasesRecommendService.rePushOrWithdraw(casesRecommendPushVo);
iCasesRecommendService.rePushOrWithdraw(casesRecommendPushVo,getCurrent().getAccountId());
return success(true);
}

View File

@@ -32,6 +32,6 @@ public interface ICasesRecommendService {
* 撤回或者重新推送
* @param casesRecommendPushVo
*/
void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo);
void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo,String userId);
}

View File

@@ -217,6 +217,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
message.setIsRead(false);
message.setMsgTime(LocalDateTime.now());
message.setRefId(pushRecords.get(0).getRecommendId());
message.setBatchId(pushRecords.get(0).getRecommendId());
message.setRefType("99");
message.setSendName(pushRecords.get(0).getSysCreateBy());
message.setSendType(1);
@@ -258,6 +259,7 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
message.setIsRead(false);
message.setMsgTime(LocalDateTime.now());
message.setRefId(casesRecommendPushRecord.getId());
message.setBatchId(casesRecommendPushRecord.getRecommendId());
message.setRefType("99");
message.setSendName(casesRecommendPushRecord.getSysCreateBy());
message.setSendType(1);

View File

@@ -12,6 +12,7 @@ import com.xboe.module.boecase.service.ICasesRecommendPushRecordService;
import com.xboe.module.boecase.service.ICasesRecommendService;
import com.xboe.module.boecase.vo.CasesRecommendPushVo;
import com.xboe.module.boecase.vo.CasesRecommendVo;
import com.xboe.system.user.dao.MessageDao;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -25,19 +26,22 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService {
@Resource
private CasesRecommendDao casesRecommendDao;
@Resource
private MessageDao messageDao;
@Resource
private ICasesRecommendPushRecordService iCasesRecommendPushRecordService;
@Override
public PageList<CasesRecommend> page(int pageIndex, int pageSize, CasesRecommendVo casesRecommendVo) {
QueryBuilder query=QueryBuilder.from(CasesRecommend.class);
query.addFilter(FieldFilters.eq("deleted",false));
if(StringUtils.isNotBlank(casesRecommendVo.getRecommendName())){
QueryBuilder query = QueryBuilder.from(CasesRecommend.class);
query.addFilter(FieldFilters.eq("deleted", false));
if (StringUtils.isNotBlank(casesRecommendVo.getRecommendName())) {
query.addFilter(FieldFilters.like("recommend_by", LikeMatchMode.ANYWHERE, casesRecommendVo.getRecommendName()));
}
if(!CollectionUtils.isEmpty(casesRecommendVo.getRecommendTimeList())){
query.addFilter(FieldFilters.ge("recommend_time",casesRecommendVo.getRecommendTimeList().get(0)));
query.addFilter(FieldFilters.le("recommend_time",casesRecommendVo.getRecommendTimeList().get(1)));
if (!CollectionUtils.isEmpty(casesRecommendVo.getRecommendTimeList())) {
query.addFilter(FieldFilters.ge("recommend_time", casesRecommendVo.getRecommendTimeList().get(0)));
query.addFilter(FieldFilters.le("recommend_time", casesRecommendVo.getRecommendTimeList().get(1)));
}
query.addOrder(OrderCondition.desc("sys_create_time"));
@@ -58,19 +62,22 @@ public class CasesRecommendServiceImpl implements ICasesRecommendService {
}
@Override
public void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo) {
public void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo, String userId) {
// 查询
CasesRecommend db = casesRecommendDao.get(casesRecommendPushVo.getCasesRecommendId());
if (CasesPushStatusEnum.PUSH_SUCCESS.getStatus().equals(db.getPushProgress())
|| CasesPushStatusEnum.WAIT_PUSH.getStatus().equals(db.getPushProgress())
|| CasesPushStatusEnum.PUSH_ING.getStatus().equals(db.getPushProgress())
){
) {
// 当为推送成功时为
iCasesRecommendPushRecordService.rePushOrWithdraw(true, db);
db.setPushProgress(CasesPushStatusEnum.PUSH_REVOKE.getStatus());
casesRecommendDao.update(db);
}else if (CasesPushStatusEnum.PUSH_FAIL.getStatus().equals(db.getPushProgress())
|| CasesPushStatusEnum.PUSH_REVOKE.getStatus().equals(db.getPushProgress())){
messageDao.deleteByFilter(FieldFilters.eq("acceptId", userId), FieldFilters.eq("refType", "99"),
FieldFilters.eq("batchId", casesRecommendPushVo.getCasesRecommendId()));
} else if (CasesPushStatusEnum.PUSH_FAIL.getStatus().equals(db.getPushProgress())
|| CasesPushStatusEnum.PUSH_REVOKE.getStatus().equals(db.getPushProgress())) {
// 推送失败或者已撤回时
iCasesRecommendPushRecordService.rePushOrWithdraw(false, db);
}

View File

@@ -1,18 +1,5 @@
package com.xboe.system.user.api;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.xboe.common.PageList;
import com.xboe.common.Pagination;
import com.xboe.common.utils.IDGenerator;
@@ -24,8 +11,14 @@ import com.xboe.system.user.entity.Message;
import com.xboe.system.user.service.IMessageService;
import com.xboe.system.user.service.MessageSender;
import com.xboe.system.user.vo.BatchMessage;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController
@@ -227,6 +220,23 @@ public class MessageApi extends ApiBaseController {
}
@GetMapping("/clearMessageNotCase")
public JsonResponse<Integer> clearMessageNotCase(){
String aid=getCurrent().getAccountId();
if(StringUtils.isBlank(aid)) {
return badRequest("获取用户信息异常");
}
try {
Integer type = service.clearMessageNotCase(aid);
return success(type);
} catch (Exception e) {
log.error("清空消息错误",e);
return error("清空消息失败",e.getMessage());
}
}
/**
* 移动端
* 消息页面,按用户分组返回 暂时不用

View File

@@ -1,18 +1,16 @@
package com.xboe.system.user.entity;
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xboe.core.SysConstant;
import com.xboe.core.orm.IdEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.time.LocalDateTime;
@Data
@EqualsAndHashCode(callSuper = false)
@@ -120,4 +118,10 @@ public class Message extends IdEntity {
@Column(name = "is_read")
private Boolean isRead;
/**
* 批次号
*/
@Column(name = "batch_id")
private String batchId;
}

View File

@@ -1,11 +1,10 @@
package com.xboe.system.user.service;
import java.util.List;
import java.util.Map;
import com.xboe.common.PageList;
import com.xboe.system.user.entity.Message;
import com.xboe.system.user.vo.BatchMessage;
import java.util.List;
import java.util.Map;
/**
* 消息接口
@@ -62,6 +61,13 @@ public interface IMessageService {
*/
void cleanByAcceptId(String aid);
/**
* 清楚消息排除推荐消息
* @param aid
* @return
*/
Integer clearMessageNotCase(String aid);
/**
* 批量设置已读
* */

View File

@@ -21,8 +21,8 @@ import java.util.List;
import java.util.Map;
/**
* 消息
* */
* 消息
*/
@Service
public class MessageServiceImpl implements IMessageService {
@@ -38,9 +38,9 @@ public class MessageServiceImpl implements IMessageService {
builder.addOrder(OrderCondition.desc("id"));
builder.setPageIndex(pageIndex);
builder.setPageSize(pageSize);
builder.addFilter(FieldFilters.eq("acceptId",aid));
if(isRead!=null){
builder.addFilter(FieldFilters.eq("isRead",isRead));
builder.addFilter(FieldFilters.eq("acceptId", aid));
if (isRead != null) {
builder.addFilter(FieldFilters.eq("isRead", isRead));
}
PageList<Message> list = dao.findPage(builder.builder());
return list;
@@ -52,12 +52,12 @@ public class MessageServiceImpl implements IMessageService {
builder.addOrder(OrderCondition.desc("id"));
builder.setPageIndex(pageIndex);
builder.setPageSize(pageSize);
builder.addFilter(FieldFilters.eq("acceptId",aid));
builder.addFilter(FieldFilters.ne("refType","3"));
builder.addFilter(FieldFilters.ne("refType","6"));
builder.addFilter(FieldFilters.eq("acceptId", aid));
builder.addFilter(FieldFilters.ne("refType", "3"));
builder.addFilter(FieldFilters.ne("refType", "6"));
// builder.addFilter(FieldFilters.ne("refType","3", FilterCheckValue.NONE));
if(isRead!=null){
builder.addFilter(FieldFilters.eq("isRead",isRead));
if (isRead != null) {
builder.addFilter(FieldFilters.eq("isRead", isRead));
}
PageList<Message> list = dao.findPage(builder.builder());
return list;
@@ -66,21 +66,21 @@ public class MessageServiceImpl implements IMessageService {
@Override
@Transactional
public void delete(List<String> ids) {
dao.deleteByFilter(FieldFilters.in("id",ids));
dao.deleteByFilter(FieldFilters.in("id", ids));
}
@Override
@Transactional
public Message detail(String id) {
Message message = dao.get(id);
if(!message.getIsRead()){
dao.updateFieldById(id,"isRead",true);
if (!message.getIsRead()) {
dao.updateFieldById(id, "isRead", true);
if("99".equals(message.getRefType())){
if ("99".equals(message.getRefType())) {
casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
.addUpdateField("readFlag",1)
.addUpdateField("readStartTime",new Date())
.addFilter(FieldFilters.eq("id",message.getRefId()))
.addUpdateField("readFlag", 1)
.addUpdateField("readStartTime", new Date())
.addFilter(FieldFilters.eq("id", message.getRefId()))
.builder());
}
}
@@ -96,8 +96,8 @@ public class MessageServiceImpl implements IMessageService {
@Override
public Integer isRead(String aid) {
QueryBuilder builder = QueryBuilder.from(Message.class);
builder.addFilter(FieldFilters.eq("isRead",false));
builder.addFilter(FieldFilters.eq("acceptId",aid));
builder.addFilter(FieldFilters.eq("isRead", false));
builder.addFilter(FieldFilters.eq("acceptId", aid));
PageList<Message> page = dao.findPage(builder.builder());
return page.getCount();
}
@@ -105,23 +105,23 @@ public class MessageServiceImpl implements IMessageService {
@Override
@Transactional
public void updateIsRead(List<String> ids) {
if(CollectionUtils.isEmpty(ids)){
if (CollectionUtils.isEmpty(ids)) {
return;
}
//更新最后读时间
for (String id:ids){
for (String id : ids) {
Message message = dao.get(id);
if("99".equals(message.getRefType())){
if ("99".equals(message.getRefType())) {
casesRecommendPushRecordDao.update(UpdateBuilder.from(CasesRecommendPushRecord.class)
.addUpdateField("readEndTime",new Date())
.addFilter(FieldFilters.eq("id",message.getRefId()))
.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))
.addUpdateField("isRead", true)
.addFilter(FieldFilters.in("id", ids))
.builder());
}
@@ -130,27 +130,27 @@ public class MessageServiceImpl implements IMessageService {
public Map<String, Object> messGroup(String aid) {
Map<String, Object> map = new HashMap<>();
QueryBuilder builder = QueryBuilder.from(Message.class);
builder.addFilter(FieldFilters.eq("acceptId",aid));
builder.addFilter(FieldFilters.eq("acceptId", aid));
builder.addGroupBy("acceptId");
List<Message> list = dao.findList(builder.builder());
map.put("mess",list);
map.put("mess", list);
//在查出未读消息数
String sql="select count(1) from boe_message where is_read=false and acceptId=?1";
String sql = "select count(1) from boe_message where is_read=false and acceptId=?1";
int count = dao.sqlCount(sql, aid);
map.put("count",count);
map.put("count", count);
return map;
}
@Override
@Transactional
public void remove(String aid) {
dao.deleteByFilter(FieldFilters.eq("acceptId",aid));
dao.deleteByFilter(FieldFilters.eq("acceptId", aid));
}
@Override
public List<Message> userMess(String aid) {
QueryBuilder builder = QueryBuilder.from(Message.class);
builder.addFilter(FieldFilters.eq("acceptId",aid));
builder.addFilter(FieldFilters.eq("acceptId", aid));
builder.addGroupBy("acceptId");
builder.addOrder(OrderCondition.desc("msgTime"));
List<Message> list = dao.findList(builder.builder());
@@ -160,15 +160,30 @@ public class MessageServiceImpl implements IMessageService {
@Override
@Transactional
public void setReadByAcceptId(String aid) {
dao.update("Update "+Message.class.getSimpleName()+" set isRead=?1 where acceptId=?2 and isRead=?3", true,aid,false);
dao.update("Update " + Message.class.getSimpleName() + " set isRead=?1 where acceptId=?2 and isRead=?3", true, aid, false);
}
@Override
@Transactional
public void cleanByAcceptId(String aid) {
dao.deleteByField("acceptId", aid);
}
@Override
@Transactional
public Integer clearMessageNotCase(String aid) {
List<Message> caseList = dao.findList(FieldFilters.eq("acceptId", aid), FieldFilters.eq("refType", "99"));
List<Message> notCaseList = dao.findList(FieldFilters.eq("acceptId", aid), FieldFilters.ne("refType", "99"));
dao.deleteByFilter(FieldFilters.eq("acceptId", aid), FieldFilters.ne("refType", "99"));
if (CollectionUtils.isNotEmpty(caseList) && CollectionUtils.isEmpty(notCaseList)) {
return 1;
} else if (CollectionUtils.isEmpty(caseList) && CollectionUtils.isNotEmpty(notCaseList)) {
return 2;
}
return 3;
}
@Override
@Transactional
public void batchSave(List<Message> list) {