Browse Source

开放通知

V1.0
luogw 4 weeks ago
parent
commit
314070dade
  1. 15
      src/main/java/com/project/ding/utils/DingUtil.java
  2. 13
      src/main/java/com/project/exam/domain/service/impl/NotifyExamRecordDomainServiceImpl.java
  3. 21
      src/main/java/com/project/task/domain/service/impl/NotifyTaskDomainServiceImpl.java
  4. 46
      src/test/java/com/project/interaction/controller/InteractionControllerTest.java

15
src/main/java/com/project/ding/utils/DingUtil.java

@ -21,8 +21,6 @@ import com.project.ding.config.DingProperties;
import com.project.ding.domain.dto.DepartmentDTO; import com.project.ding.domain.dto.DepartmentDTO;
import com.project.ding.domain.dto.DingUserDTO; import com.project.ding.domain.dto.DingUserDTO;
import com.project.ding.domain.dto.UserDTO; import com.project.ding.domain.dto.UserDTO;
import com.project.ding.domain.entity.UserEntity;
import com.project.ding.domain.service.UserBaseService;
import io.vavr.control.Try; import io.vavr.control.Try;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -36,7 +34,6 @@ import com.aliyun.dingtalkoauth2_1_0.models.CreateJsapiTicketHeaders;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@ -56,10 +53,6 @@ public class DingUtil {
@Autowired @Autowired
private Client dingTalkClient; // 之前创建好的新版 SDK Client private Client dingTalkClient; // 之前创建好的新版 SDK Client
@Autowired
private UserBaseService userBaseService;
@Autowired @Autowired
private DingProperties dingTalkProperties; private DingProperties dingTalkProperties;
@ -271,18 +264,12 @@ public class DingUtil {
} }
/** /**
* 发送工作通知 * 发送审批工作通知
*/ */
@Async("asycExecutor") @Async("asycExecutor")
public void sendWorkNotice(AppealDTO appealDTO) throws DtErrorException { public void sendWorkNotice(AppealDTO appealDTO) throws DtErrorException {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
UserEntity user = userBaseService.getById(appealDTO.getUserId());
if (user == null || StrUtil.isBlank(user.getDeptIdStr()) || !user.getDeptIdStr().contains("10549213")) {
return;
}
boolean approved = appealDTO.getStatus() != null && appealDTO.getStatus() == 2; boolean approved = appealDTO.getStatus() != null && appealDTO.getStatus() == 2;
StringBuilder markdown = new StringBuilder(); StringBuilder markdown = new StringBuilder();
markdown.append(String.format("### 【%s】中<font color=#64BCF2>第%d题</font>的申诉结果如下:\n\n" , appealDTO.getTaskName(),appealDTO.getQuestionSort())) markdown.append(String.format("### 【%s】中<font color=#64BCF2>第%d题</font>的申诉结果如下:\n\n" , appealDTO.getTaskName(),appealDTO.getQuestionSort()))

13
src/main/java/com/project/exam/domain/service/impl/NotifyExamRecordDomainServiceImpl.java

@ -1,13 +1,10 @@
package com.project.exam.domain.service.impl; package com.project.exam.domain.service.impl;
import cn.hutool.core.util.StrUtil;
import com.github.tingyugetc520.ali.dingtalk.api.DtService; import com.github.tingyugetc520.ali.dingtalk.api.DtService;
import com.github.tingyugetc520.ali.dingtalk.bean.message.DtCorpConversationMessage; import com.github.tingyugetc520.ali.dingtalk.bean.message.DtCorpConversationMessage;
import com.github.tingyugetc520.ali.dingtalk.bean.message.DtCorpConversationMsgSendResult; import com.github.tingyugetc520.ali.dingtalk.bean.message.DtCorpConversationMsgSendResult;
import com.github.tingyugetc520.ali.dingtalk.bean.message.DtMessage; import com.github.tingyugetc520.ali.dingtalk.bean.message.DtMessage;
import com.project.ding.config.DingProperties; import com.project.ding.config.DingProperties;
import com.project.ding.domain.entity.UserEntity;
import com.project.ding.domain.service.UserBaseService;
import com.project.ding.utils.SecurityUtils; import com.project.ding.utils.SecurityUtils;
import com.project.exam.domain.dto.ExamRecordDTO; import com.project.exam.domain.dto.ExamRecordDTO;
import com.project.exam.domain.service.NotifyExamRecordDomainService; import com.project.exam.domain.service.NotifyExamRecordDomainService;
@ -27,20 +24,10 @@ public class NotifyExamRecordDomainServiceImpl implements NotifyExamRecordDomain
@Autowired @Autowired
private DingProperties dingProperties; private DingProperties dingProperties;
@Autowired
private UserBaseService userBaseService;
@Override @Override
public void notifyExamRecord(ExamRecordDTO dto) { public void notifyExamRecord(ExamRecordDTO dto) {
String userId = SecurityUtils.getUserId(); String userId = SecurityUtils.getUserId();
UserEntity user = userBaseService.getById(userId);
if(userId.equals("17456316000834265")){
}else if (user == null || StrUtil.isBlank(user.getDeptIdStr()) || !user.getDeptIdStr().contains("10549213")) {
return;
}
// 不阻碍正常业务 // 不阻碍正常业务
try { try {
String markdown = String.format("### 【%s】考试成绩已公布,请留意查收\n\n", dto.getTaskDTO().getName()) + String markdown = String.format("### 【%s】考试成绩已公布,请留意查收\n\n", dto.getTaskDTO().getName()) +

21
src/main/java/com/project/task/domain/service/impl/NotifyTaskDomainServiceImpl.java

@ -10,8 +10,6 @@ import com.github.tingyugetc520.ali.dingtalk.bean.message.DtCorpConversationMsgS
import com.github.tingyugetc520.ali.dingtalk.bean.message.DtMessage; import com.github.tingyugetc520.ali.dingtalk.bean.message.DtMessage;
import com.github.tingyugetc520.ali.dingtalk.error.DtErrorException; import com.github.tingyugetc520.ali.dingtalk.error.DtErrorException;
import com.project.ding.config.DingProperties; import com.project.ding.config.DingProperties;
import com.project.ding.domain.entity.UserEntity;
import com.project.ding.mapper.UserMapper;
import com.project.information.application.ProductLineApplicationService; import com.project.information.application.ProductLineApplicationService;
import com.project.task.domain.dto.TaskDTO; import com.project.task.domain.dto.TaskDTO;
import com.project.task.domain.entity.TaskEntity; import com.project.task.domain.entity.TaskEntity;
@ -21,7 +19,6 @@ import com.project.task.domain.service.NotifyTaskDomainService;
import com.project.task.mapper.TaskMapper; import com.project.task.mapper.TaskMapper;
import com.project.task.mapper.TaskUserMapper; import com.project.task.mapper.TaskUserMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -29,7 +26,6 @@ import java.text.SimpleDateFormat;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Service @Service
@Slf4j @Slf4j
@ -47,9 +43,6 @@ public class NotifyTaskDomainServiceImpl implements NotifyTaskDomainService {
@Autowired @Autowired
private DingProperties dingTalkProperties; private DingProperties dingTalkProperties;
@Autowired
private UserMapper userMapper;
private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
@ -70,12 +63,7 @@ public class NotifyTaskDomainServiceImpl implements NotifyTaskDomainService {
.eq(TaskUserEntity::getTaskId, task.getId())) .eq(TaskUserEntity::getTaskId, task.getId()))
.stream().map(TaskUserEntity::getUserId).toList(); .stream().map(TaskUserEntity::getUserId).toList();
List<String> userIdFilter = userMapper.selectBatchIds(userIds).stream() sendBatchNewTasks(userIds , task);
.filter(user -> ObjectUtils.isNotEmpty(user.getDeptIdStr()))
.filter(user -> user.getDeptIdStr().contains("10549213") || user.getId().equals("17456316000834265"))
.map(UserEntity::getId)
.toList();
sendBatchNewTasks(userIdFilter , task);
} }
} }
@Override @Override
@ -93,12 +81,7 @@ public class NotifyTaskDomainServiceImpl implements NotifyTaskDomainService {
.eq(TaskUserEntity::getTaskId, task.getId())) .eq(TaskUserEntity::getTaskId, task.getId()))
.stream().map(TaskUserEntity::getUserId).toList(); .stream().map(TaskUserEntity::getUserId).toList();
List<String> userIdFilter = userMapper.selectBatchIds(userIds).stream() sendBatchDeadlineTasks(userIds , task);
.filter(user -> ObjectUtils.isNotEmpty(user.getDeptIdStr()))
.filter(user -> user.getDeptIdStr().contains("10549213") || user.getId().equals("17456316000834265"))
.map(UserEntity::getId)
.toList();
sendBatchDeadlineTasks(userIdFilter , task);
} }
} }
private void sendBatchNewTasks(List<String> userIds , TaskDTO taskDTO) { private void sendBatchNewTasks(List<String> userIds , TaskDTO taskDTO) {

46
src/test/java/com/project/interaction/controller/InteractionControllerTest.java

@ -0,0 +1,46 @@
package com.project.interaction.controller;
import cn.hutool.core.collection.CollUtil;
import com.project.information.domain.dto.KnowledgePointDTO;
import com.project.information.domain.entity.KnowledgePointEntity;
import com.project.information.domain.service.KnowledgePointBaseService;
import com.project.interaction.application.AlgorithmApplicationService;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.internal.util.collections.Sets;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
import java.util.Set;
import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
@RunWith(SpringRunner.class)
@ActiveProfiles("test")
class InteractionControllerTest {
@Autowired
private AlgorithmApplicationService algorithmApplicationService;
@Autowired
private KnowledgePointBaseService knowledgePointBaseService;
@Test
public void test(){
Set<Long> idSet = Sets.newSet(
708018904630296576L
);
for (Long id : idSet) {
List<KnowledgePointDTO> list = knowledgePointBaseService.lambdaQuery()
.eq(KnowledgePointEntity::getInformationId, id).list().stream()
.map(entity -> entity.toDTO(KnowledgePointDTO::new)).toList();
if (CollUtil.isNotEmpty(list)) {
algorithmApplicationService.postToClusteringByInformationId(id , list);
}
}
}
}
Loading…
Cancel
Save