Commit ffd4b675e8717069a71a8884f8a774fa1c5eba72

Authored by 王明元
1 parent 88309c14

2022年10月20日15:12:42 重发直播审计待办接口

fw-dalaran-domain/src/main/java/cn/fw/dalaran/domain/db/TodoHistory.java
@@ -46,4 +46,11 @@ public class TodoHistory extends BaseAuditableTimeEntity<TodoHistory, Long> { @@ -46,4 +46,11 @@ public class TodoHistory extends BaseAuditableTimeEntity<TodoHistory, Long> {
46 * 附加信息 46 * 附加信息
47 */ 47 */
48 private String extra; 48 private String extra;
  49 +
  50 + /**
  51 + * 自定义去重条件
  52 + */
  53 + public String getRemoveDuplicatesCondition() {
  54 + return this.getUserId() + "-->" + this.getDataId();
  55 + }
49 } 56 }
fw-dalaran-server/src/main/java/cn/fw/dalaran/server/controller/app/OtherController.java
@@ -3,11 +3,10 @@ package cn.fw.dalaran.server.controller.app; @@ -3,11 +3,10 @@ package cn.fw.dalaran.server.controller.app;
3 import cn.fw.common.web.annotation.ControllerMethod; 3 import cn.fw.common.web.annotation.ControllerMethod;
4 import cn.fw.common.web.auth.LoginAuthBean; 4 import cn.fw.common.web.auth.LoginAuthBean;
5 import cn.fw.common.web.auth.annotation.CurrentUser; 5 import cn.fw.common.web.auth.annotation.CurrentUser;
6 -import cn.fw.dalaran.common.constants.DalaranConstants;  
7 import cn.fw.dalaran.domain.param.LiveCheckParams; 6 import cn.fw.dalaran.domain.param.LiveCheckParams;
8 import cn.fw.dalaran.domain.vo.LiveCheckVo; 7 import cn.fw.dalaran.domain.vo.LiveCheckVo;
9 import cn.fw.dalaran.rpc.erp.UserRoleRpcService; 8 import cn.fw.dalaran.rpc.erp.UserRoleRpcService;
10 -import cn.fw.dalaran.rpc.erp.dto.UserInfoDTO; 9 +import cn.fw.dalaran.server.task.TodoTask;
11 import cn.fw.dalaran.service.Common; 10 import cn.fw.dalaran.service.Common;
12 import cn.fw.dalaran.service.biz.OtherBizService; 11 import cn.fw.dalaran.service.biz.OtherBizService;
13 import cn.fw.data.base.domain.common.Message; 12 import cn.fw.data.base.domain.common.Message;
@@ -23,7 +22,6 @@ import javax.validation.Valid; @@ -23,7 +22,6 @@ import javax.validation.Valid;
23 import javax.validation.constraints.NotBlank; 22 import javax.validation.constraints.NotBlank;
24 import javax.validation.constraints.NotNull; 23 import javax.validation.constraints.NotNull;
25 import java.io.File; 24 import java.io.File;
26 -import java.util.List;  
27 import java.util.Objects; 25 import java.util.Objects;
28 26
29 import static cn.fw.common.web.util.ResultBuilder.success; 27 import static cn.fw.common.web.util.ResultBuilder.success;
@@ -46,6 +44,7 @@ public class OtherController { @@ -46,6 +44,7 @@ public class OtherController {
46 private final OtherBizService otherBizService; 44 private final OtherBizService otherBizService;
47 private final Common common; 45 private final Common common;
48 private final UserRoleRpcService userRoleRpcService; 46 private final UserRoleRpcService userRoleRpcService;
  47 + private final TodoTask todoTask;// 定时任务
49 48
50 /** 49 /**
51 * 获取直播审计页面 50 * 获取直播审计页面
@@ -110,13 +109,15 @@ public class OtherController { @@ -110,13 +109,15 @@ public class OtherController {
110 } 109 }
111 110
112 /** 111 /**
  112 + * 重发直播审计待办
113 * 113 *
114 - * @param shopId 门店id 114 + * @param timestamp 时间戳
115 * @return 115 * @return
116 */ 116 */
117 - @GetMapping("/test")  
118 - public Message<List<UserInfoDTO>> test(Long shopId) {  
119 - return Message.success(userRoleRpcService.getUsers(shopId, DalaranConstants.ZBSJ_ROLE_CODE)); 117 + @GetMapping("/resendLiveCheckBacklog")
  118 + public Message<Void> test(@NotNull(message = "请必须指定时间戳") Long timestamp) {
  119 + todoTask.sendLiveCheckBacklog(timestamp);
  120 + return Message.success();
120 } 121 }
121 122
122 } 123 }
fw-dalaran-server/src/main/java/cn/fw/dalaran/server/task/TodoTask.java
@@ -136,12 +136,21 @@ public class TodoTask { @@ -136,12 +136,21 @@ public class TodoTask {
136 */ 136 */
137 @Scheduled(fixedRate = 15 * 60 * 1000, initialDelay = 5 * 1000) 137 @Scheduled(fixedRate = 15 * 60 * 1000, initialDelay = 5 * 1000)
138 public void sendLiveCheckBacklog() { 138 public void sendLiveCheckBacklog() {
  139 + this.sendLiveCheckBacklog(System.currentTimeMillis());
  140 + }
  141 +
  142 + /**
  143 + * 发送直播审计待办
  144 + *
  145 + * @param timeStamp 指定时间
  146 + */
  147 + public void sendLiveCheckBacklog(Long timeStamp) {
139 final List<ActivityTheme> themeList = activityThemeService.lambdaQuery() 148 final List<ActivityTheme> themeList = activityThemeService.lambdaQuery()
140 - .gt(ActivityTheme::getEndTime, new Date(System.currentTimeMillis() - 7 * 24 * 3600 * 1000)) 149 + .gt(ActivityTheme::getEndTime, new Date(timeStamp - 7 * 24 * 3600 * 1000))
141 .list() 150 .list()
142 .stream() 151 .stream()
143 .filter(item -> { 152 .filter(item -> {
144 - final long timeSub = System.currentTimeMillis() - item.getEndTime().getTime(); 153 + final long timeSub = timeStamp - item.getEndTime().getTime();
145 return 24 * 3600 * 1000 < timeSub && timeSub < 2 * 24 * 3600 * 1000; 154 return 24 * 3600 * 1000 < timeSub && timeSub < 2 * 24 * 3600 * 1000;
146 }) 155 })
147 .collect(Collectors.toList());// 找到需要审计的主题 156 .collect(Collectors.toList());// 找到需要审计的主题
@@ -187,7 +196,7 @@ public class TodoTask { @@ -187,7 +196,7 @@ public class TodoTask {
187 .map(item -> {// 遍历每个门店 196 .map(item -> {// 遍历每个门店
188 TodoHistory todo = new TodoHistory(); 197 TodoHistory todo = new TodoHistory();
189 List<UserInfoDTO> users = userRoleRpcService.getUsers(item, DalaranConstants.ZBSJ_ROLE_CODE);// 获取门店拥有'直播审计'角色的人 198 List<UserInfoDTO> users = userRoleRpcService.getUsers(item, DalaranConstants.ZBSJ_ROLE_CODE);// 获取门店拥有'直播审计'角色的人
190 - if (users.size() > 0) { 199 + if (!users.isEmpty()) {
191 todo.setSend(false); 200 todo.setSend(false);
192 todo.setDone(false); 201 todo.setDone(false);
193 todo.setTodoDone(false); 202 todo.setTodoDone(false);
@@ -205,7 +214,7 @@ public class TodoTask { @@ -205,7 +214,7 @@ public class TodoTask {
205 }) 214 })
206 .filter(item -> Objects.nonNull(item.getTodoCode())) 215 .filter(item -> Objects.nonNull(item.getTodoCode()))
207 .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> 216 .collect(Collectors.collectingAndThen(Collectors.toCollection(() ->
208 - new TreeSet<>(Comparator.comparing(TodoHistory::getDataId))), ArrayList::new) 217 + new TreeSet<>(Comparator.comparing(TodoHistory::getRemoveDuplicatesCondition))), ArrayList::new)
209 ); 218 );
210 if (!Objects.equals(hasSaveTodo.size(), 0) && Objects.equals(collect.size(), hasSaveTodo.size())) 219 if (!Objects.equals(hasSaveTodo.size(), 0) && Objects.equals(collect.size(), hasSaveTodo.size()))
211 return; 220 return;