Commit e44c53d0 by chenzy

【修改】邮箱和OA通知修改,OA_Account就是用户名,统一认证-OA-平台,都一致

parent fd1c1ffc
......@@ -2,25 +2,34 @@ package com.keymobile.syncdata.api;
import com.keymobile.syncdata.dto.EmailDTO;
import com.keymobile.syncdata.service.EmailService;
import com.keymobile.syncdata.service.SyncDataService;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
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 java.util.List;
@RestController
@RequestMapping("/email")
public class EmailController {
@Autowired
private EmailService emailService;
@Autowired
private SyncDataService syncDataService;
@Operation(summary = "发送纯文本")
@PostMapping("sendTxt")
public void sendEmail(@RequestBody EmailDTO emailDTO) {
emailService.sendTextMailMessage(emailDTO.getToEmailAddress(), emailDTO.getTitle(), emailDTO.getContent());
List<String> username = emailDTO.getUsername();
List<String> userEmail = syncDataService.getUserEmail(username);
for (String email : userEmail) {
emailService.sendTextMailMessage(email, emailDTO.getTitle(), emailDTO.getContent());
}
}
......
package com.keymobile.syncdata.api;
import com.keymobile.syncdata.dto.TodoRequest;
import com.keymobile.syncdata.dto.OAMessageDTO;
import com.keymobile.syncdata.service.OAService;
import com.keymobile.syncdata.service.SyncDataService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/oa")
public class OAMessageController {
@Autowired
private OAService oaService;
@Autowired
private SyncDataService syncDataService;
@GetMapping("getTodo")
@Operation(summary ="OA根据用户名查看用户待办信息")
......@@ -22,8 +27,14 @@ public class OAMessageController {
@Operation(summary ="OA根据用户名发送待办信息")
@PostMapping("sendTodo")
public void sendTodo(@RequestBody TodoRequest request){
oaService.sendTodo(request.getOaAccount(), request.getTitle(), request.getLink());
public void sendTodo(@RequestBody OAMessageDTO oaMessageDTO){
List<String> userNameList = syncDataService.getUserName(oaMessageDTO.getUsername());
// OA用户名就是平台的用户名
for (String oaAccount : userNameList) {
oaService.sendTodo(oaAccount, oaMessageDTO.getTitle(), oaMessageDTO.getLink());
}
}
}
package com.keymobile.syncdata.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data
public class EmailDTO {
private String toEmailAddress;
@Schema(description = "平台用户名", required = true)
private List<String> username;
// private List<String> toEmailAddress;
@Schema(description = "通知标题", required = true)
private String title;
@Schema(description = "通知内容", required = true)
private String content;
}
......@@ -3,10 +3,15 @@ package com.keymobile.syncdata.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Data // 使用 Lombok 自动生成 getter/setter
public class TodoRequest {
@Schema(description = "OA账号", required = true)
private String oaAccount;
public class OAMessageDTO {
@Schema(description = "平台用户名", required = true)
private List<String> username;
// @Schema(description = "OA账号", required = true)
// private List<String> oaAccount;
@Schema(description = "待办信息标题", required = true)
private String title;
......
......@@ -17,4 +17,8 @@ public interface SyncDataService {
// void fetchOrgDataFromUrl(Map<String, String> requestBody);
void syncData(String url, Map<String, Integer> requestBody, String collectionName);
List<String> getUserEmail(List<String> usernames);
List<String> getUserName(List<String> usernames);
}
......@@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
......@@ -23,6 +24,7 @@ import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -99,6 +101,40 @@ public class SyncDataServiceImpl implements SyncDataService {
dataSyncActor.tell(syncDataMessage, ActorRef.noSender());
}
@Override
public List<String> getUserEmail(List<String> usernameList) {
// 构建查询条件
Query query = new Query(Criteria.where("OA_ACCOUNT").in(usernameList));
// 设置只返回email字段
query.fields().include("EMAIL_ADDR").exclude("_id");
List<Document> documents = mongoTemplate.find(query, Document.class, "sync_user_data");
List<String> emailList = new ArrayList<>();
for (Document document : documents) {
emailList.add(document.getString("EMAIL_ADDR"));
}
// 执行查询
return emailList;
}
// 返回存在的用户名
@Override
public List<String> getUserName(List<String> usernameList) {
Query query = new Query(Criteria.where("OA_ACCOUNT").in(usernameList));
// 设置只返回email字段
query.fields().include("OA_ACCOUNT").exclude("_id");
List<Document> documents = mongoTemplate.find(query, Document.class, "sync_user_data");
List<String> username = new ArrayList<>();
for (Document document : documents) {
username.add(document.getString("OA_ACCOUNT"));
}
// 执行查询
return username;
}
private void writeData(JsonNode retJSON, String collectionName) {
ObjectMapper objectMapper = new ObjectMapper();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment