Skip to content

Commit f52d150

Browse files
authored
Merge pull request #41 from fqliao/feature-milestone2
add report job for admin
2 parents 34fbc9e + d3f96c6 commit f52d150

File tree

14 files changed

+190
-47
lines changed

14 files changed

+190
-47
lines changed

wedpr-adm/src/main/java/com/webank/wedpr/adm/controller/request/CredentialRequest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
@EqualsAndHashCode(callSuper = true)
2424
@Data
2525
@ToString
26-
@EqualsAndHashCode(callSuper = false)
2726
public class CredentialRequest extends PageRequest {
2827
private ApiCredentialDO condition = new ApiCredentialDO(true);
2928
}

wedpr-adm/src/main/java/com/webank/wedpr/adm/controller/request/JupyterRequest.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
@EqualsAndHashCode(callSuper = true)
2424
@Data
2525
@ToString
26-
@EqualsAndHashCode(callSuper = false)
2726
public class JupyterRequest extends PageRequest {
2827
private JupyterInfoDO condition = new JupyterInfoDO(true);
2928
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.webank.wedpr.components.admin.response;
2+
3+
import java.util.List;
4+
import lombok.Data;
5+
6+
/** Created by caryliao on 2024/9/5 11:28 */
7+
@Data
8+
public class JobReportResponse {
9+
private Integer code;
10+
private String msg;
11+
private List<String> jobIdList;
12+
}

wedpr-components/env-integration/jupyter/src/main/java/com/webank/wedpr/components/integration/jupyter/dao/JupyterInfoDO.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
@EqualsAndHashCode(callSuper = true)
2727
@Data
2828
@ToString
29-
@EqualsAndHashCode(callSuper = false)
3029
public class JupyterInfoDO extends TimeRange {
3130
private String id = WeDPRUuidGenerator.generateID();
3231
private String owner;

wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/dao/JobDO.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@ public String toString() {
104104
+ ", result='"
105105
+ result
106106
+ '\''
107+
+ ", startTime="
108+
+ startTime
109+
+ ", timeCostMs="
110+
+ timeCostMs
107111
+ '}';
108112
}
109113
}
@@ -196,6 +200,7 @@ public String toString() {
196200
private String parties;
197201
// the job type
198202
private String jobType;
203+
private Integer reportStatus;
199204

200205
@JsonIgnore private transient JobType type;
201206
@JsonIgnore private transient JobType originalJobType;
@@ -301,6 +306,14 @@ public String getResult() {
301306
return result;
302307
}
303308

309+
public Integer getReportStatus() {
310+
return reportStatus;
311+
}
312+
313+
public void setReportStatus(Integer reportStatus) {
314+
this.reportStatus = reportStatus;
315+
}
316+
304317
public void setResult(String result) {
305318
this.result = result;
306319
this.jobResult = JobResult.deserialize(result);

wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/dao/ProjectMapper.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public interface ProjectMapper {
2727
// update the project information
2828
public int updateProjectInfo(
2929
@Param("owner") String owner, @Param("projectDO") ProjectDO projectDO);
30+
31+
public int batchUpdateProjectInfo(@Param("projectDOList") List<ProjectDO> projectDOList);
3032
// delete projects
3133
public int deleteProjects(
3234
@Param("owner") String owner, @Param("projectList") List<String> projectList);
@@ -62,8 +64,4 @@ public List<JobDO> queryFollowerJobByCondition(
6264
@Param("condition") JobDO condition);
6365

6466
public List<JobDO> queryJobsByDatasetID(@Param("datasetID") String datasetID);
65-
66-
List<ProjectDO> queryProjectForAdmin();
67-
68-
ProjectDO queryProjectById(@Param("id") String id);
6967
}

wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/service/ProjectService.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@
1515

1616
package com.webank.wedpr.components.project.service;
1717

18-
import com.webank.wedpr.components.project.dao.ProjectDO;
1918
import com.webank.wedpr.components.project.model.*;
20-
import com.webank.wedpr.core.utils.WeDPRException;
2119
import com.webank.wedpr.core.utils.WeDPRResponse;
2220
import java.util.List;
2321

@@ -52,8 +50,4 @@ public abstract WeDPRResponse queryJobsByDatasetID(
5250

5351
// job kill
5452
public abstract WeDPRResponse killJobs(String user, JobListRequest request);
55-
56-
List<ProjectDO> queryProjectForReport() throws WeDPRException;
57-
58-
ProjectDO queryProjectById(String id);
5953
}

wedpr-components/meta/project/src/main/java/com/webank/wedpr/components/project/service/impl/ProjectServiceImpl.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -479,24 +479,6 @@ public WeDPRResponse killJobs(String user, JobListRequest request) {
479479
user, WeDPRCommonConfig.getAgency(), request.getJobs(), JobStatus.WaitToKill);
480480
}
481481

482-
@Override
483-
public List<ProjectDO> queryProjectForReport() throws WeDPRException {
484-
PageRequest pageRequest = new PageRequest();
485-
pageRequest.setPageNum(Constant.DEFAULT_PAGE_NUM);
486-
pageRequest.setPageSize(Constant.DEFAULT_REPORT_PAGE_SIZE);
487-
try (PageHelperWrapper pageHelperWrapper = new PageHelperWrapper(pageRequest)) {
488-
return this.projectMapperWrapper.getProjectMapper().queryProjectForAdmin();
489-
} catch (Exception e) {
490-
logger.warn("queryProjectForAdmin exception, error: ", e);
491-
throw new WeDPRException(e);
492-
}
493-
}
494-
495-
@Override
496-
public ProjectDO queryProjectById(String id) {
497-
return this.projectMapperWrapper.getProjectMapper().queryProjectById(id);
498-
}
499-
500482
@Override
501483
public Object queryJobOverview(String user, JobOverviewRequest jobOverviewRequest)
502484
throws Exception {

wedpr-components/meta/project/src/main/resources/mapper/ProjectMapper.xml

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,26 @@
6262
<if test="projectDO.label != null and projectDO.label !=''">
6363
`label` = #{projectDO.label},
6464
</if>
65+
<if test="projectDO.reportStatus != null">
66+
`report_status` = #{projectDO.reportStatus},
67+
</if>
6568
</set>
6669
where `id` = #{projectDO.id}
6770
<if test="owner != null and owner !=''">
6871
and `owner` = #{owner}
6972
</if>
7073
</update>
74+
<update id="batchUpdateProjectInfo" parameterType="java.util.List">
75+
<foreach collection="projectDOList" item = "project" separator=";">
76+
update `wedpr_project_table`
77+
<set>
78+
<if test="project.reportStatus != null">
79+
`report_status` = #{project.reportStatus},
80+
</if>
81+
</set>
82+
where `id` = #{project.id}
83+
</foreach>
84+
</update>
7185
<delete id="deleteProjects" parameterType="java.util.List">
7286
delete from `wedpr_project_table`
7387
<foreach collection="projectList" item = "projectID" index = "index" separator=",">
@@ -108,6 +122,9 @@
108122
<if test="condition.ownerAgency != null and condition.ownerAgency !=''">
109123
and `owner_agency` = #{condition.ownerAgency}
110124
</if>
125+
<if test="condition.reportStatus != null">
126+
and `report_status` = #{condition.reportStatus}
127+
</if>
111128
<if test="condition.startTime != null and condition.startTime != ''">
112129
<![CDATA[ and datediff(create_time, #{condition.startTime}) >= 0]]>
113130
</if>
@@ -119,10 +136,6 @@
119136
order by `last_update_time` desc
120137
</select>
121138

122-
<select id="queryProjectForAdmin" resultMap="ProjectDOMap">
123-
select * from `wedpr_project_table` where `report_status` = 0
124-
</select>
125-
126139
<select id="queryProjectCount" resultType="java.lang.Long">
127140
select count(1) from `wedpr_project_table` where 1 = 1
128141
<choose>
@@ -199,6 +212,9 @@
199212
<if test="condition.jobType != null and condition.jobType !=''">
200213
and `job_type` = #{condition.jobType}
201214
</if>
215+
<if test="condition.reportStatus != null">
216+
and `report_status` = #{condition.reportStatus}
217+
</if>
202218
<if test="condition.startTime != null and condition.startTime != ''">
203219
<![CDATA[ and datediff(create_time, #{condition.startTime}) >= 0]]>
204220
</if>
@@ -359,11 +375,6 @@
359375
on job_table.id = follower_table.resource_id where job_table.owner is not NULL
360376
</select>
361377

362-
<select id="queryProjectById" resultMap="ProjectDOMap">
363-
select * from `wedpr_project_table` where `id` = #{id}
364-
</select>
365-
366-
367378
<update id="batchUpdateJobInfo" parameterType="java.util.List">
368379
<foreach collection="jobDOList" item = "job" separator=";">
369380
update `wedpr_job_table`
@@ -377,6 +388,9 @@
377388
<if test="job.result != null and job.result !=''">
378389
`job_result` = #{job.result},
379390
</if>
391+
<if test="job.reportStatus != null">
392+
`report_status` = #{job.reportStatus},
393+
</if>
380394
</set>
381395
where `id` = #{job.id}
382396
<if test="job.owner != null and job.owner !=''">
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.webank.wedpr.components.report.handler;
2+
3+
import com.webank.wedpr.components.project.dao.JobDO;
4+
import com.webank.wedpr.components.project.dao.ProjectMapper;
5+
import com.webank.wedpr.components.transport.Transport;
6+
import com.webank.wedpr.components.transport.model.Message;
7+
import com.webank.wedpr.core.utils.Constant;
8+
import com.webank.wedpr.core.utils.ObjectMapperFactory;
9+
import java.io.IOException;
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
import lombok.extern.slf4j.Slf4j;
13+
14+
/** Created by caryliao on 2024/9/4 10:54 */
15+
@Slf4j
16+
public class JobReportMessageHandler implements Transport.MessageHandler {
17+
private ProjectMapper projectMapper;
18+
19+
public JobReportMessageHandler(ProjectMapper projectMapper) {
20+
this.projectMapper = projectMapper;
21+
}
22+
23+
@Override
24+
public void call(Message msg) {
25+
byte[] payload = msg.getPayload();
26+
try {
27+
JobReportResponse jobReportResponse =
28+
ObjectMapperFactory.getObjectMapper()
29+
.readValue(payload, JobReportResponse.class);
30+
if (Constant.WEDPR_SUCCESS == jobReportResponse.getCode()) {
31+
// report ok ,then set report status to 1
32+
List<String> jobIdList = jobReportResponse.getJobIdList();
33+
ArrayList<JobDO> jobDOList = new ArrayList<>();
34+
for (String jobId : jobIdList) {
35+
JobDO jobDO = new JobDO();
36+
jobDO.setId(jobId);
37+
jobDO.setReportStatus(1);
38+
jobDOList.add(jobDO);
39+
}
40+
projectMapper.batchUpdateJobInfo(jobDOList);
41+
} else {
42+
log.warn("report job error:{}", jobReportResponse);
43+
}
44+
} catch (IOException e) {
45+
log.warn("handle JobReportResponse error", e);
46+
}
47+
}
48+
}

0 commit comments

Comments
 (0)