mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/per-boe/java-servers.git
synced 2025-12-10 19:36:50 +08:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -32,6 +32,6 @@ public interface ICasesRecommendService {
|
||||
* 撤回或者重新推送
|
||||
* @param casesRecommendPushVo
|
||||
*/
|
||||
void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo);
|
||||
void rePushOrWithdraw(CasesRecommendPushVo casesRecommendPushVo,String userId);
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 移动端
|
||||
* 消息页面,按用户分组返回 暂时不用
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* 消息接口
|
||||
@@ -61,6 +60,13 @@ public interface IMessageService {
|
||||
* @return
|
||||
*/
|
||||
void cleanByAcceptId(String aid);
|
||||
|
||||
/**
|
||||
* 清楚消息排除推荐消息
|
||||
* @param aid
|
||||
* @return
|
||||
*/
|
||||
Integer clearMessageNotCase(String aid);
|
||||
|
||||
/**
|
||||
* 批量设置已读
|
||||
|
||||
@@ -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,52 +130,67 @@ 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());
|
||||
return list;
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
@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);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cleanByAcceptId(String aid) {
|
||||
dao.deleteByField("acceptId", aid);
|
||||
@Override
|
||||
@Transactional
|
||||
public void cleanByAcceptId(String aid) {
|
||||
dao.deleteByField("acceptId", aid);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void batchSave(List<Message> list) {
|
||||
@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) {
|
||||
|
||||
// for(Message msg : list) {
|
||||
//
|
||||
// }
|
||||
dao.saveList(list);
|
||||
}
|
||||
dao.saveList(list);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user