From eda8b891f67d9f1abf142473975b4a6a9cc1dc39 Mon Sep 17 00:00:00 2001 From: daihh Date: Fri, 3 Mar 2023 15:43:13 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=89=93=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/module/course/service/impl/CourseServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java index 5787a4b5..35873657 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java @@ -259,6 +259,8 @@ public class CourseServiceImpl implements ICourseService { if(dto.getIsSystemAdmin()==null || !dto.getIsSystemAdmin()) { if(StringUtil.isNotBlank(dto.getOrgIds())){ + log.info("【"+dto.getOrgAid()+"】 按机构过滤和自己创建的课程"); + log.info(" orgids "+dto.getOrgIds()); if(dto.getOrgIds().contains(",")){ String[] split = dto.getOrgIds().split(","); List strings = Arrays.asList(split); @@ -267,9 +269,12 @@ public class CourseServiceImpl implements ICourseService { filters.add(FieldFilters.or(FieldFilters.eq("orgId",dto.getOrgIds()),FieldFilters.eq("sysCreateAid",dto.getOrgAid()))); } }else { + log.info("【"+dto.getOrgAid()+"】 机构ids没有, 只查询自己创建的课程"); //没有机构权限,只能查出自己创建的 filters.add(FieldFilters.eq("sysCreateAid",dto.getOrgAid())); } + }else { + log.info("【"+dto.getOrgAid()+"】IsSystemAdmin is true 不过机构过滤,查询全部"); } } From 23c9dfa3eb4a40237b7a26084cc59afb6a7cb5d3 Mon Sep 17 00:00:00 2001 From: daihh Date: Fri, 3 Mar 2023 16:02:38 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/course/service/impl/CourseServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java index 35873657..fd0e5cff 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java @@ -259,8 +259,8 @@ public class CourseServiceImpl implements ICourseService { if(dto.getIsSystemAdmin()==null || !dto.getIsSystemAdmin()) { if(StringUtil.isNotBlank(dto.getOrgIds())){ - log.info("【"+dto.getOrgAid()+"】 按机构过滤和自己创建的课程"); - log.info(" orgids "+dto.getOrgIds()); + log.error("【"+dto.getOrgAid()+"】 按机构过滤和自己创建的课程"); + log.error(" orgids "+dto.getOrgIds()); if(dto.getOrgIds().contains(",")){ String[] split = dto.getOrgIds().split(","); List strings = Arrays.asList(split); @@ -269,12 +269,12 @@ public class CourseServiceImpl implements ICourseService { filters.add(FieldFilters.or(FieldFilters.eq("orgId",dto.getOrgIds()),FieldFilters.eq("sysCreateAid",dto.getOrgAid()))); } }else { - log.info("【"+dto.getOrgAid()+"】 机构ids没有, 只查询自己创建的课程"); + log.error("【"+dto.getOrgAid()+"】 机构ids没有, 只查询自己创建的课程"); //没有机构权限,只能查出自己创建的 filters.add(FieldFilters.eq("sysCreateAid",dto.getOrgAid())); } }else { - log.info("【"+dto.getOrgAid()+"】IsSystemAdmin is true 不过机构过滤,查询全部"); + log.error("【"+dto.getOrgAid()+"】IsSystemAdmin is true 不过机构过滤,查询全部"); } } From 7e26c9935f2706a009ad03a5b55b4209e0354238 Mon Sep 17 00:00:00 2001 From: daihh Date: Sun, 5 Mar 2023 17:37:45 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=AD=A6=E4=B9=A0?= =?UTF-8?q?=E6=8A=A5=E5=90=8DES=E5=90=8C=E6=AD=A5=E7=9A=84=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/school/study/api/StudySignupApi.java | 8 +- .../study/service/IStudySignupService.java | 3 +- .../service/impl/StudyCourseServiceImpl.java | 49 +++--------- .../service/impl/StudySignupServiceImpl.java | 74 +++++++++++-------- 4 files changed, 60 insertions(+), 74 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudySignupApi.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudySignupApi.java index 0af37245..d59411e5 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudySignupApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/api/StudySignupApi.java @@ -230,10 +230,11 @@ public class StudySignupApi extends ApiBaseController{ } /** - * 只有未审核通过的才可以删除 + * 只有未审核通过的才可以删除,因为当前系统中无未审核的,所以此删除不会发生 * @param signup * @return */ + @Deprecated @PostMapping("/delete") public JsonResponse delete(String id){ if(StringUtils.isBlank(id)){ @@ -241,8 +242,9 @@ public class StudySignupApi extends ApiBaseController{ } try { - signupService.setDeleted(id); - return success(true); + //signupService.setDeleted(id); + //return success(true); + return error("已通过的报名不能在这里删除"); }catch(Exception e) { log.error("删除报名错误",e); return error("删除报名失败,请与管理员联系",e.getMessage()); diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudySignupService.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudySignupService.java index fabcc2bd..94515890 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudySignupService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/IStudySignupService.java @@ -5,6 +5,7 @@ import java.util.List; import com.xboe.common.OrderCondition; import com.xboe.common.PageList; import com.xboe.common.beans.KeyValue; +import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudySignup; /** @@ -46,7 +47,7 @@ public interface IStudySignupService { * 管理员添加报名 * @param signup */ - void addSignup(StudySignup signup); + StudyCourse addSignup(StudySignup signup); /** * 删除报名,只有未审核过的才可以删除 diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java index 8b95aa5b..baa5a13c 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudyCourseServiceImpl.java @@ -5,9 +5,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import javax.transaction.Transactional; @@ -42,6 +40,7 @@ import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudyCourseItem; import com.xboe.school.study.entity.StudySignup; import com.xboe.school.study.service.IStudyCourseService; +import com.xboe.school.study.service.IStudySignupService; import lombok.extern.slf4j.Slf4j; @@ -53,6 +52,9 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ @Autowired StudySignupDao signupDao; + @Autowired + IStudySignupService signupService; + @Autowired StudyCourseDao studyCourseDao; @@ -77,9 +79,6 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ @Autowired StudyScoreDao studyScoreDao; - @Autowired - StudySignupDao studySignupDao; - @Autowired StudyTimeDao studyTimeDao; @@ -87,7 +86,7 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ CourseDao courseDao; @Autowired(required = false) - ICourseStudySearch search;//对ES的处理 + ICourseStudySearch esSearch;//对ES的处理 @Override public StudyCourse findByCourseIdAndAid(String courseId, String aid) { @@ -278,13 +277,13 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ //删除课程学习时长记录 studyTimeDao.deleteByFilter(FieldFilters.eq("studyId",id)); //删除课程报名信息 - studySignupDao.deleteByFilter(FieldFilters.and(FieldFilters.eq("courseId",courseId),FieldFilters.eq("aid",aid))); + signupDao.deleteByFilter(FieldFilters.and(FieldFilters.eq("courseId",courseId),FieldFilters.eq("aid",aid))); //修改课程学习人数 courseDao.updateMultiFieldById(courseId, UpdateBuilder.create("studys", "studys-1", FieldUpdateType.EXPRESSION)); //同步删除ES的处理 - if(search!=null) { - //search.removeByStudyId(id); - log.info("删除,同步操作ES的删除未启用,如果确认已配置ES,请启用"); + if(esSearch!=null) { + esSearch.removeByStudyId(id); + log.info("删除,同步操作ES的课程报名学习记录"); } } @@ -641,37 +640,9 @@ public class StudyCourseServiceImpl implements IStudyCourseService{ public StudyCourse autoSignup(StudySignup signup) { signup.setSignType(StudySignup.SIGNTYPE_SELF); - if(signup.getStatus()==null) { - //如果未指定状态,就设置审核通过 - signup.setStatus(StudySignup.STATUS_PASS); - signup.setAuditType(StudySignup.AUDITTYPE_AUTO); - signup.setAuditInfo("系统自动审核"); - signup.setAuditUser(""); - } - signupDao.save(signup); - //添加到课程学习 - LocalDateTime now=LocalDateTime.now(); - - StudyCourse sc=new StudyCourse(); - sc.setAddTime(LocalDateTime.now()); - sc.setAid(signup.getAid()); - sc.setAname(signup.getName()); - sc.setCourseId(signup.getCourseId()); - sc.setCourseName(signup.getCourseName()); - sc.setCourseType(signup.getCourseType());//课程类型没有带过来 - sc.setFinishTime(null); - sc.setLastScore(0f); - sc.setProgress(0f); - sc.setSource(signup.getAuditType());//来源方式,和报名类型一致 - sc.setStatus(StudyCourse.STATUS_NOSTUDY); - sc.setStatusTime(now); - sc.setTotalDuration(0); - sc.setLastTime(sc.getAddTime()); - studyCourseDao.save(sc); - signup.setStudyId(sc.getId()); + StudyCourse sc=signupService.addSignup(signup); //更新课程学习人数 courseDao.updateMultiFieldById(signup.getCourseId(),UpdateBuilder.create("studys", "studys+1",FieldUpdateType.EXPRESSION)); - return sc; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudySignupServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudySignupServiceImpl.java index 84ff563c..20a64da3 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudySignupServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/service/impl/StudySignupServiceImpl.java @@ -1,6 +1,8 @@ package com.xboe.school.study.service.impl; +import java.io.IOException; import java.time.LocalDateTime; +import java.time.ZoneOffset; import java.util.List; import javax.transaction.Transactional; @@ -17,12 +19,17 @@ import com.xboe.core.orm.FieldUpdateType; import com.xboe.core.orm.QueryBuilder; import com.xboe.core.orm.UpdateBuilder; import com.xboe.module.course.dao.CourseDao; +import com.xboe.module.course.dto.CourseStudyDto; +import com.xboe.module.course.service.ICourseStudySearch; import com.xboe.school.study.dao.StudyCourseDao; import com.xboe.school.study.dao.StudySignupDao; import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudySignup; import com.xboe.school.study.service.IStudySignupService; +import lombok.extern.slf4j.Slf4j; + +@Slf4j @Service @Transactional public class StudySignupServiceImpl implements IStudySignupService{ @@ -33,47 +40,25 @@ public class StudySignupServiceImpl implements IStudySignupService{ @Autowired StudyCourseDao studyCourseDao; + @Autowired(required = false) + ICourseStudySearch esSearch; + @Autowired CourseDao courseDao; @Override public void selfSignup(StudySignup signup) { signup.setSignType(StudySignup.SIGNTYPE_SELF); - if(signup.getStatus()==null) { - //如果未指定状态,就设置审核通过 - signup.setStatus(StudySignup.STATUS_PASS); - signup.setAuditType(StudySignup.AUDITTYPE_AUTO); - signup.setAuditInfo("系统自动审核"); - signup.setAuditUser(""); - } - signupDao.save(signup); - //添加到课程学习 - LocalDateTime now=LocalDateTime.now(); - - StudyCourse sc=new StudyCourse(); - sc.setAddTime(LocalDateTime.now()); - sc.setAid(signup.getAid()); - sc.setAname(signup.getName()); - sc.setCourseId(signup.getCourseId()); - sc.setCourseName(signup.getCourseName()); - sc.setCourseType(signup.getCourseType());//课程类型没有带过来 - sc.setFinishTime(null); - sc.setLastScore(0f); - sc.setProgress(0f); - sc.setSource(signup.getAuditType());//来源方式,和报名类型一致 - sc.setStatus(StudyCourse.STATUS_NOSTUDY); - sc.setStatusTime(now); - sc.setTotalDuration(0); - sc.setLastTime(sc.getAddTime()); - studyCourseDao.save(sc); - signup.setStudyId(sc.getId()); + this.addSignup(signup); //更新课程学习人数 courseDao.updateMultiFieldById(signup.getCourseId(),UpdateBuilder.create("studys", "studys+1",FieldUpdateType.EXPRESSION)); } @Override - public void addSignup(StudySignup signup) { - signup.setSignType(StudySignup.SIGNTYPE_ADD); + public StudyCourse addSignup(StudySignup signup) { + if(signup.getSignType()==null) { + signup.setSignType(StudySignup.SIGNTYPE_ADD); + } if(signup.getStatus()==null) { //如果未指定状态,就设置审核通过 signup.setStatus(StudySignup.STATUS_PASS); @@ -101,6 +86,34 @@ public class StudySignupServiceImpl implements IStudySignupService{ sc.setLastTime(sc.getAddTime()); sc.setTotalDuration(0); studyCourseDao.save(sc); + signup.setStudyId(sc.getId()); + //发布到ES + if(esSearch!=null) { + CourseStudyDto dto=new CourseStudyDto(); + dto.setId(sc.getId()); + dto.setAccountId(sc.getAid()); + dto.setCourseId(sc.getCourseId()); + dto.setCourseImage(sc.getCourseImage()); + dto.setCourseName(sc.getCourseName()); + dto.setCourseType(sc.getCourseType()); + dto.setProgress(sc.getProgress()==null? 0:sc.getProgress().intValue()); + dto.setSource(2);//固定值,新系统 + //如果开始时间没有,就使用添加时间 + if(sc.getStartTime()!=null) { + dto.setStartTime(sc.getStartTime().toEpochSecond(ZoneOffset.of("+8"))); + }else { + dto.setStartTime(sc.getAddTime().toEpochSecond(ZoneOffset.of("+8"))); + } + dto.setStatus(sc.getStatus()); + try { + esSearch.publishOrUpdate(dto, null); + } catch (IOException e) { + log.error("ES发布报名课程学习【"+sc.getAname()+","+sc.getCourseName()+"】失败",e); + + } + } + + return sc; //courseDao.updateMultiFieldById(signup.getCourseId(),UpdateBuilder.create("studys", "studys+1",FieldUpdateType.EXPRESSION)); } @@ -188,7 +201,6 @@ public class StudySignupServiceImpl implements IStudySignupService{ @Override public void setDeleted(String id) { - signupDao.setDeleted(id); } From 830b09bd7815d6880cc5a76cd28966ef61926737 Mon Sep 17 00:00:00 2001 From: daihh Date: Tue, 7 Mar 2023 16:53:09 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E8=AF=BE=E4=BB=B6=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=9A=84=E6=9D=83=E9=99=90=E6=8E=A7=E5=88=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xboe/module/course/api/CourseFileApi.java | 32 +++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFileApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFileApi.java index fc2787c4..9b6bcefb 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFileApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/api/CourseFileApi.java @@ -174,13 +174,33 @@ public class CourseFileApi extends ApiBaseController { } //默认是查询自己的课件。 - if (self == null) { - self = false; - } - if (self) { - filters.add(FieldFilters.eq("sysCreateAid", getCurrent().getAccountId())); - } +// if (self == null) { +// self = false; +// } +// if (self) { +// filters.add(FieldFilters.eq("sysCreateAid", getCurrent().getAccountId())); +// } // + //增加权限的过滤,只要看到自己或有权限的机构的 + if(TempFilterConfig.Manager_CourseFile_ByOrgIds) { + UserOrgIds userOrgIds=outSideDataService.getOrgIds(); + List orgIds = userOrgIds.getIds(); + String aid=getCurrent().getAccountId(); + //如果是超级管理员,就不按机构过滤了 + boolean isSystemAdmin=false; + if(userOrgIds.getPermissions().containsKey(UserOrgIds.IsSystemAdminKey)) { + isSystemAdmin=userOrgIds.getPermissions().get(UserOrgIds.IsSystemAdminKey); + } + if(!isSystemAdmin) { + if(!orgIds.isEmpty()){ + //filters.add(FieldFilters.in("orgId", orgIds)); + filters.add(FieldFilters.or(FieldFilters.eq("sysCreateAid", aid),FieldFilters.in("orgId", orgIds))); + }else { + filters.add(FieldFilters.eq("sysCreateAid", aid)); + } + } + + } PageList courseFilePageList = courseFileService.queryPage(pager.getPageIndex(), pager.getPageSize(), OrderCondition.desc("id"), filters); return success(courseFilePageList); } From e607defdaa7143b8094c69e563df15878fd2955c Mon Sep 17 00:00:00 2001 From: daihh Date: Thu, 9 Mar 2023 18:06:42 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xboe/school/study/entity/StudyCourse.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/school/study/entity/StudyCourse.java b/servers/boe-server-all/src/main/java/com/xboe/school/study/entity/StudyCourse.java index 24cba7f6..6a07e05b 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/school/study/entity/StudyCourse.java +++ b/servers/boe-server-all/src/main/java/com/xboe/school/study/entity/StudyCourse.java @@ -82,8 +82,9 @@ public class StudyCourse extends IdEntity{ private LocalDateTime addTime; /* - * 开始学习时间 + * 开始学习时间,报名和学习是一体的,此字段为后续报名学习不致的情况,当前这种情况没有 * */ + @Deprecated @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Column(name = "start_time") private LocalDateTime startTime;