Commit e44c53d0 by chenzy

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

parent fd1c1ffc
...@@ -2,25 +2,34 @@ package com.keymobile.syncdata.api; ...@@ -2,25 +2,34 @@ package com.keymobile.syncdata.api;
import com.keymobile.syncdata.dto.EmailDTO; import com.keymobile.syncdata.dto.EmailDTO;
import com.keymobile.syncdata.service.EmailService; import com.keymobile.syncdata.service.EmailService;
import com.keymobile.syncdata.service.SyncDataService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import org.springframework.beans.factory.annotation.Autowired; 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.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController @RestController
@RequestMapping("/email") @RequestMapping("/email")
public class EmailController { public class EmailController {
@Autowired @Autowired
private EmailService emailService; private EmailService emailService;
@Autowired
private SyncDataService syncDataService;
@Operation(summary = "发送纯文本") @Operation(summary = "发送纯文本")
@PostMapping("sendTxt") @PostMapping("sendTxt")
public void sendEmail(@RequestBody EmailDTO emailDTO) { 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; 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.OAService;
import com.keymobile.syncdata.service.SyncDataService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController @RestController
@RequestMapping("/oa") @RequestMapping("/oa")
public class OAMessageController { public class OAMessageController {
@Autowired @Autowired
private OAService oaService; private OAService oaService;
@Autowired
private SyncDataService syncDataService;
@GetMapping("getTodo") @GetMapping("getTodo")
@Operation(summary ="OA根据用户名查看用户待办信息") @Operation(summary ="OA根据用户名查看用户待办信息")
...@@ -22,8 +27,14 @@ public class OAMessageController { ...@@ -22,8 +27,14 @@ public class OAMessageController {
@Operation(summary ="OA根据用户名发送待办信息") @Operation(summary ="OA根据用户名发送待办信息")
@PostMapping("sendTodo") @PostMapping("sendTodo")
public void sendTodo(@RequestBody TodoRequest request){ public void sendTodo(@RequestBody OAMessageDTO oaMessageDTO){
oaService.sendTodo(request.getOaAccount(), request.getTitle(), request.getLink());
List<String> userNameList = syncDataService.getUserName(oaMessageDTO.getUsername());
// OA用户名就是平台的用户名
for (String oaAccount : userNameList) {
oaService.sendTodo(oaAccount, oaMessageDTO.getTitle(), oaMessageDTO.getLink());
}
} }
} }
package com.keymobile.syncdata.dto; package com.keymobile.syncdata.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class EmailDTO { 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; private String title;
@Schema(description = "通知内容", required = true)
private String content; private String content;
} }
...@@ -3,10 +3,15 @@ package com.keymobile.syncdata.dto; ...@@ -3,10 +3,15 @@ package com.keymobile.syncdata.dto;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data // 使用 Lombok 自动生成 getter/setter @Data // 使用 Lombok 自动生成 getter/setter
public class TodoRequest { public class OAMessageDTO {
@Schema(description = "OA账号", required = true) @Schema(description = "平台用户名", required = true)
private String oaAccount; private List<String> username;
// @Schema(description = "OA账号", required = true)
// private List<String> oaAccount;
@Schema(description = "待办信息标题", required = true) @Schema(description = "待办信息标题", required = true)
private String title; private String title;
......
...@@ -17,4 +17,8 @@ public interface SyncDataService { ...@@ -17,4 +17,8 @@ public interface SyncDataService {
// void fetchOrgDataFromUrl(Map<String, String> requestBody); // void fetchOrgDataFromUrl(Map<String, String> requestBody);
void syncData(String url, Map<String, Integer> requestBody, String collectionName); 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; ...@@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j;
import org.bson.Document; import org.bson.Document;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate; 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.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -23,6 +24,7 @@ import java.net.URI; ...@@ -23,6 +24,7 @@ import java.net.URI;
import java.net.http.HttpClient; import java.net.http.HttpClient;
import java.net.http.HttpRequest; import java.net.http.HttpRequest;
import java.net.http.HttpResponse; import java.net.http.HttpResponse;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -99,6 +101,40 @@ public class SyncDataServiceImpl implements SyncDataService { ...@@ -99,6 +101,40 @@ public class SyncDataServiceImpl implements SyncDataService {
dataSyncActor.tell(syncDataMessage, ActorRef.noSender()); 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) { private void writeData(JsonNode retJSON, String collectionName) {
ObjectMapper objectMapper = new ObjectMapper(); 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