|
|
@@ -211,6 +211,35 @@ public class ProjectServiceImpl implements ProjectService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void syncProjectMembers(Integer projectId) {
|
|
|
+ CourseProject courseProject = courseProjectRepository.findById(projectId)
|
|
|
+ .orElseThrow(CustomErrorException::courseProjectNotFound);
|
|
|
+ List<UserVO> members;
|
|
|
+ try {
|
|
|
+ members = groupService.findGroup(courseProject.getCourse().getId()).getMembers();
|
|
|
+ } catch (Exception e) {
|
|
|
+ members = new ArrayList<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONArray existingMembers = this.findProjectMembers(projectId);
|
|
|
+ List<String> existingPhones = new ArrayList<>();
|
|
|
+ if (existingMembers != null) {
|
|
|
+ for (Object o : existingMembers) {
|
|
|
+ JSONObject member = (JSONObject) o;
|
|
|
+ if (member.containsKey("phone")) {
|
|
|
+ existingPhones.add(member.getString("phone"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (UserVO member : members) {
|
|
|
+ if (!existingPhones.contains(member.getPhone())) {
|
|
|
+ this.addProjectMember(projectId, member.getPhone());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void addProjectMember(Integer projectId, String phone) {
|
|
|
JSONObject devcloudRes = devcloudService.addMember(projectId, phone);
|
|
|
log.info("devcloudService.addMember: {}", devcloudRes);
|