Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
syncData
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
chenzy
syncData
Commits
e44c53d0
Commit
e44c53d0
authored
Jul 03, 2025
by
chenzy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【修改】邮箱和OA通知修改,OA_Account就是用户名,统一认证-OA-平台,都一致
parent
fd1c1ffc
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
82 additions
and
10 deletions
+82
-10
EmailController.java
...main/java/com/keymobile/syncdata/api/EmailController.java
+12
-3
OAMessageController.java
.../java/com/keymobile/syncdata/api/OAMessageController.java
+14
-3
EmailDTO.java
src/main/java/com/keymobile/syncdata/dto/EmailDTO.java
+8
-1
OAMessageDTO.java
src/main/java/com/keymobile/syncdata/dto/OAMessageDTO.java
+8
-3
SyncDataService.java
.../java/com/keymobile/syncdata/service/SyncDataService.java
+4
-0
SyncDataServiceImpl.java
.../keymobile/syncdata/service/impl/SyncDataServiceImpl.java
+36
-0
No files found.
src/main/java/com/keymobile/syncdata/api/EmailController.java
View file @
e44c53d0
...
...
@@ -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
());
}
}
...
...
src/main/java/com/keymobile/syncdata/api/OAMessageController.java
View file @
e44c53d0
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
());
}
}
}
src/main/java/com/keymobile/syncdata/dto/EmailDTO.java
View file @
e44c53d0
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
;
}
src/main/java/com/keymobile/syncdata/dto/
TodoRequest
.java
→
src/main/java/com/keymobile/syncdata/dto/
OAMessageDTO
.java
View file @
e44c53d0
...
...
@@ -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
;
...
...
src/main/java/com/keymobile/syncdata/service/SyncDataService.java
View file @
e44c53d0
...
...
@@ -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
);
}
src/main/java/com/keymobile/syncdata/service/impl/SyncDataServiceImpl.java
View file @
e44c53d0
...
...
@@ -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
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment