add gao user notify
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
package com.imyeyu.api.modules.common.service;
|
||||
|
||||
import com.imyeyu.api.modules.common.entity.Notify;
|
||||
import com.imyeyu.api.modules.common.vo.NotifyManagementItem;
|
||||
import com.imyeyu.spring.bean.Page;
|
||||
import com.imyeyu.spring.bean.PageResult;
|
||||
import com.imyeyu.spring.service.BaseService;
|
||||
|
||||
/**
|
||||
@@ -11,6 +14,32 @@ import com.imyeyu.spring.service.BaseService;
|
||||
*/
|
||||
public interface NotifyService extends BaseService<Notify, String> {
|
||||
|
||||
/// 分页查询当前用户创建的通知
|
||||
///
|
||||
/// @param page 分页参数
|
||||
/// @param userId 用户 ID
|
||||
/// @return 管理端通知列表
|
||||
PageResult<NotifyManagementItem> pageManagement(Page<Notify> page, String userId);
|
||||
|
||||
/// 查询当前用户可管理的通知
|
||||
///
|
||||
/// @param notifyId 通知 ID
|
||||
/// @param userId 用户 ID
|
||||
/// @return 通知
|
||||
Notify getManagement(String notifyId, String userId);
|
||||
|
||||
/// 删除当前用户创建的通知
|
||||
///
|
||||
/// @param notifyId 通知 ID
|
||||
/// @param userId 用户 ID
|
||||
void deleteManagement(String notifyId, String userId);
|
||||
|
||||
/// 取消当前用户创建的通知
|
||||
///
|
||||
/// @param notifyId 通知 ID
|
||||
/// @param userId 用户 ID
|
||||
void cancelManagement(String notifyId, String userId);
|
||||
|
||||
/// 取消通知中尚未成功发送的通知详情
|
||||
///
|
||||
/// @param notifyId 通知 ID
|
||||
|
||||
+4
-3
@@ -64,9 +64,10 @@ public class NotifyDetailServiceImplement extends AbstractEntityService<NotifyDe
|
||||
detail.setRetry(TimiJava.defaultIfNull(detail.getRetry(), 1));
|
||||
detail.setSendAt(TimiJava.defaultIfNull(detail.getSendAt(), Time.now()));
|
||||
detail.setTimeoutAt(TimiJava.defaultIfNull(detail.getTimeoutAt(), detail.getSendAt() + Time.D));
|
||||
detail.setStatus(detail.getMsgType() == NotifyDetail.MsgType.INTERNAL
|
||||
? NotifyDetail.Status.REMINDED
|
||||
: NotifyDetail.Status.WAITING);
|
||||
boolean scheduled = Time.now() < detail.getSendAt();
|
||||
detail.setStatus(detail.getMsgType() == NotifyDetail.MsgType.INTERNAL && !scheduled
|
||||
? NotifyDetail.Status.REMINDED
|
||||
: NotifyDetail.Status.WAITING);
|
||||
detail.setReadAt(null);
|
||||
super.create(detail);
|
||||
if (detail.getMsgType() == NotifyDetail.MsgType.INTERNAL) {
|
||||
|
||||
+54
-4
@@ -8,10 +8,13 @@ import com.imyeyu.api.modules.common.service.NotifyDetailService;
|
||||
import com.imyeyu.api.modules.common.service.NotifyService;
|
||||
import com.imyeyu.api.modules.system.entity.Logger;
|
||||
import com.imyeyu.api.modules.system.service.LoggerService;
|
||||
import com.imyeyu.api.modules.common.vo.NotifyManagementItem;
|
||||
import com.imyeyu.api.modules.user.service.UserLoginService;
|
||||
import com.imyeyu.java.TimiJava;
|
||||
import com.imyeyu.java.bean.timi.TimiCode;
|
||||
import com.imyeyu.java.bean.timi.TimiException;
|
||||
import com.imyeyu.spring.bean.Page;
|
||||
import com.imyeyu.spring.bean.PageResult;
|
||||
import com.imyeyu.spring.mapper.BaseMapper;
|
||||
import com.imyeyu.spring.service.AbstractEntityService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -53,12 +56,10 @@ public class NotifyServiceImplement extends AbstractEntityService<Notify, String
|
||||
try {
|
||||
TimiException.required(notify, "未找到通知");
|
||||
TimiException.required(notify.getDetailList(), "未找到通知详情列表");
|
||||
String sendFrom = userLoginService.isLogged() ? userLoginService.getRequireLoginUserId() : null;
|
||||
notify.setCreatedBy(sendFrom);
|
||||
super.create(notify);
|
||||
|
||||
String sendFrom = null;
|
||||
if (userLoginService.isLogged()) {
|
||||
sendFrom = userLoginService.getRequireLoginUserId();
|
||||
}
|
||||
for (NotifyDetail detail : notify.getDetailList()) {
|
||||
detail.setNotifyId(notify.getId());
|
||||
if (TimiJava.isNotEmpty(sendFrom)) {
|
||||
@@ -82,6 +83,55 @@ public class NotifyServiceImplement extends AbstractEntityService<Notify, String
|
||||
}
|
||||
}
|
||||
|
||||
/// 分页查询当前用户创建的通知
|
||||
///
|
||||
/// @param page 分页参数
|
||||
/// @param userId 用户 ID
|
||||
/// @return 管理端通知列表
|
||||
@Override
|
||||
public PageResult<NotifyManagementItem> pageManagement(Page<Notify> page, String userId) {
|
||||
TimiException.required(userId, "未找到用户 ID");
|
||||
Page<Notify> validPage = TimiJava.defaultIfNull(page, new Page<>());
|
||||
PageResult<NotifyManagementItem> result = new PageResult<>();
|
||||
result.setTotal(mapper.countManagement(userId));
|
||||
result.setList(mapper.selectManagementPage(userId, validPage.getOffset(), validPage.getLimit()));
|
||||
return result;
|
||||
}
|
||||
|
||||
/// 查询当前用户可管理的通知
|
||||
///
|
||||
/// @param notifyId 通知 ID
|
||||
/// @param userId 用户 ID
|
||||
/// @return 通知
|
||||
@Override
|
||||
public Notify getManagement(String notifyId, String userId) {
|
||||
TimiException.required(notifyId, "未找到通知 ID");
|
||||
TimiException.required(userId, "未找到用户 ID");
|
||||
Notify notify = mapper.selectManagement(notifyId, userId);
|
||||
TimiException.required(notify, "未找到可管理的通知");
|
||||
return notify;
|
||||
}
|
||||
|
||||
/// 删除当前用户创建的通知
|
||||
///
|
||||
/// @param notifyId 通知 ID
|
||||
/// @param userId 用户 ID
|
||||
@Override
|
||||
public void deleteManagement(String notifyId, String userId) {
|
||||
getManagement(notifyId, userId);
|
||||
delete(notifyId);
|
||||
}
|
||||
|
||||
/// 取消当前用户创建的通知
|
||||
///
|
||||
/// @param notifyId 通知 ID
|
||||
/// @param userId 用户 ID
|
||||
@Override
|
||||
public void cancelManagement(String notifyId, String userId) {
|
||||
getManagement(notifyId, userId);
|
||||
cancel(notifyId);
|
||||
}
|
||||
|
||||
/// 删除通知并级联软删除通知详情
|
||||
///
|
||||
/// @param notifyId 通知 ID
|
||||
|
||||
Reference in New Issue
Block a user