Compare commits

..

1 Commits

Author SHA1 Message Date
Wangxxz
fec28f5baf 讲师管理-查询讲师时加启用条件判断 2024-10-20 14:24:04 +08:00
36 changed files with 241 additions and 613 deletions

View File

@@ -20,7 +20,7 @@ import com.xboe.common.utils.StringUtil;
public class ElasticsearchConfig { public class ElasticsearchConfig {
@Value("${xboe.elasticsearch.server.ip}") @Value("${xboe.elasticsearch.server.ip}")
private String esIp="10.251.88.214"; private String esIp="127.0.0.1";
@Value("${xboe.elasticsearch.server.port}") @Value("${xboe.elasticsearch.server.port}")
private int esPort=9200; private int esPort=9200;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@@ -16,38 +16,38 @@
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
<spring-cloud.version>2021.0.5</spring-cloud.version> <spring-cloud.version>2021.0.5</spring-cloud.version>
<spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version> <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>
<nacos-client.version>2.2.0</nacos-client.version> <nacos-client.version>2.2.0</nacos-client.version>
</properties> </properties>
<dependencies> <dependencies>
<!-- 引入Cloud --> <!-- 引入Cloud -->
<dependency> <dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${spring-cloud-alibaba.version}</version> <version>${spring-cloud-alibaba.version}</version>
<exclusions> <exclusions>
<exclusion> <exclusion>
<groupId>com.alibaba.nacos</groupId> <groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId> <artifactId>nacos-client</artifactId>
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.alibaba.nacos</groupId> <groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId> <artifactId>nacos-client</artifactId>
<version>${nacos-client.version}</version> <version>${nacos-client.version}</version>
</dependency> </dependency>
<!-- end --> <!-- end -->
<dependency> <dependency>
<groupId>org.apache.poi</groupId> <groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId> <artifactId>poi-ooxml</artifactId>
<version>4.0.1</version> <version>4.0.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.hutool</groupId> <groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>5.8.16</version> <version>5.8.16</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.xboe</groupId> <groupId>com.xboe</groupId>
<artifactId>xboe-api</artifactId> <artifactId>xboe-api</artifactId>
@@ -58,7 +58,7 @@
<artifactId>xboe-module-scorm</artifactId> <artifactId>xboe-module-scorm</artifactId>
<version>1.0.0</version> <version>1.0.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.xboe</groupId> <groupId>com.xboe</groupId>
<artifactId>xboe-core</artifactId> <artifactId>xboe-core</artifactId>
<version>1.0.0</version> <version>1.0.0</version>
@@ -84,6 +84,7 @@
<artifactId>xboe-module-es</artifactId> <artifactId>xboe-module-es</artifactId>
<version>1.0.0</version> <version>1.0.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>it.sauronsoftware</groupId> <groupId>it.sauronsoftware</groupId>
<artifactId>jave</artifactId> <artifactId>jave</artifactId>
@@ -92,9 +93,9 @@
<systemPath>${project.basedir}/src/main/resources/libs/jave-1.0.2.jar</systemPath> <systemPath>${project.basedir}/src/main/resources/libs/jave-1.0.2.jar</systemPath>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.auth0</groupId> <groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId> <artifactId>java-jwt</artifactId>
<version>3.18.3</version> <version>3.18.3</version>
</dependency> </dependency>
<!-- <!--
<dependency> <dependency>
@@ -109,8 +110,8 @@
<artifactId>commons-lang3</artifactId> <artifactId>commons-lang3</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-codec</groupId> <groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId> <artifactId>commons-codec</artifactId>
</dependency> </dependency>
<dependency> <dependency>
@@ -129,10 +130,10 @@
<groupId>org.springframework.session</groupId> <groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId> <artifactId>spring-session-data-redis</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId> <artifactId>spring-boot-starter-aop</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
@@ -184,13 +185,13 @@
</dependency> </dependency>
<!-- aspose --> <!-- aspose -->
<dependency> <dependency>
<groupId>com.aspose</groupId> <groupId>com.aspose</groupId>
<artifactId>slides</artifactId> <artifactId>slides</artifactId>
<version>15.9.0</version> <version>15.9.0</version>
<scope>system</scope> <scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/aspose/aspose.slides-15.9.0.jar</systemPath> <systemPath>${project.basedir}/src/main/resources/aspose/aspose.slides-15.9.0.jar</systemPath>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.aspose</groupId> <groupId>com.aspose</groupId>
<artifactId>words</artifactId> <artifactId>words</artifactId>
@@ -213,20 +214,20 @@
<version>3.0.3</version> <version>3.0.3</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.elasticsearch.client</groupId> <groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId> <artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.9.0</version> <version>7.9.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.elasticsearch</groupId> <groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId> <artifactId>elasticsearch</artifactId>
<version>7.9.0</version> <version>7.9.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.elasticsearch.client</groupId> <groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId> <artifactId>elasticsearch-rest-client</artifactId>
<version>7.9.0</version> <version>7.9.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.springframework.retry</groupId> <groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId> <artifactId>spring-retry</artifactId>
@@ -235,32 +236,32 @@
</dependencies> </dependencies>
<build> <build>
<resources> <resources>
<resource> <resource>
<filtering>true</filtering> <filtering>true</filtering>
<directory>src/main/resources</directory> <directory>src/main/resources</directory>
<includes> <includes>
<include>application-${profileActive}.properties</include> <include>application-${profileActive}.properties</include>
<include>application.properties</include> <include>application.properties</include>
</includes> </includes>
</resource> </resource>
<resource> <resource>
<filtering>false</filtering> <filtering>false</filtering>
<directory>src/main/resources</directory> <directory>src/main/resources</directory>
<excludes> <excludes>
<exclude>*.properties</exclude> <exclude>*.properties</exclude>
</excludes> </excludes>
</resource> </resource>
</resources> </resources>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<!-- <version>3.8.0</version> --> <!-- <version>3.8.0</version> -->
<configuration> <configuration>
<source>1.8</source> <source>1.8</source>
<target>1.8</target> <target>1.8</target>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId> <artifactId>spring-boot-maven-plugin</artifactId>
@@ -271,8 +272,8 @@
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
</exclude> </exclude>
</excludes> </excludes>
<includeSystemScope>true</includeSystemScope> <includeSystemScope>true</includeSystemScope>
</configuration> </configuration>
</plugin> </plugin>
</plugins> </plugins>
</build> </build>
@@ -295,12 +296,12 @@
<profileActive>test</profileActive> <profileActive>test</profileActive>
</properties> </properties>
</profile> </profile>
<profile> <profile>
<id>test135</id> <id>test135</id>
<properties> <properties>
<profileActive>test135</profileActive> <profileActive>test135</profileActive>
</properties> </properties>
</profile> </profile>
<profile> <profile>
<id>dev</id> <id>dev</id>
<properties> <properties>

View File

@@ -4,23 +4,21 @@ import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.lang.Opt; import cn.hutool.core.lang.Opt;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.nacos.shaded.com.google.gson.*;
import com.xboe.api.vo.*; import com.xboe.api.vo.*;
import com.xboe.module.course.vo.StudyCourseVo; import com.xboe.module.course.vo.StudyCourseVo;
import com.xboe.module.course.vo.TeacherInfoVo; import com.xboe.module.course.vo.TeacherInfoVo;
import com.xboe.module.course.vo.TeacherVo; import com.xboe.module.course.vo.TeacherVo;
import com.xboe.module.dict.entity.DictDto; import com.xboe.module.dict.entity.DictDto;
import com.xboe.module.exam.entity.AloneExam;
import com.xboe.module.exam.entity.ExamTest; import com.xboe.module.exam.entity.ExamTest;
import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudyCourse;
import com.xboe.system.user.dao.UserDao; import com.xboe.system.user.dao.UserDao;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.util.Collection;
import java.util.*; import java.util.List;
import java.util.Optional;
import java.util.concurrent.ForkJoinPool; import java.util.concurrent.ForkJoinPool;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.IntStream; import java.util.stream.IntStream;
@@ -65,10 +63,6 @@ public class ThirdApi {
@Value("${manageApi.editExam}") @Value("${manageApi.editExam}")
private String editExam; private String editExam;
@Value("${coursesuilt.syncExamScoreToCourseSuite}")
private String syncExamScoreToCourseSuite;
//获取例外人员的id //获取例外人员的id
public List<String> getUserId(){ public List<String> getUserId(){
String responseBody = Optional.ofNullable(HttpRequest.get(infarasApiUrl+"?pid=316&type=1").execute() //prod 316 String responseBody = Optional.ofNullable(HttpRequest.get(infarasApiUrl+"?pid=316&type=1").execute() //prod 316
@@ -237,21 +231,5 @@ public class ThirdApi {
} }
public void syncExamScoreToCourseSuite(AloneExam aloneExam,String token) {
Gson gson = new GsonBuilder()
.registerTypeAdapter(LocalDateTime.class, new LocalDateTimeSerializer())
.create();
String json = gson.toJson(aloneExam);
String resp = HttpRequest.post(syncExamScoreToCourseSuite)
.body(json)
.header("token", token)
.execute()
.body();
if (StringUtils.isBlank(resp)){
return;
}
JSONUtil.toBean(resp, SyncExamScoreBean.class).success();
}
} }

View File

@@ -1,31 +0,0 @@
package com.xboe.api.vo;
import cn.hutool.json.JSONUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@Data
@Slf4j
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CheckExamBandingBean {
private boolean show;
private String version;
private int code;
private String msg;
private Object data;
private boolean success;
public CheckExamBandingBean success() {
if (this.code!=200) {
log.error("获取绑定关系失败----{}", JSONUtil.toJsonPrettyStr(this));
return null;
}
return this;
}
}

View File

@@ -1,40 +0,0 @@
package com.xboe.api.vo;
import cn.hutool.json.JSONUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.util.Date;
import java.util.HashMap;
/**
* Auto-generated: 2022-12-10 14:3:18
*
* @author bejson.com (i@bejson.com)
* @website http://www.bejson.com/java2pojo/
*/
@Data
@Slf4j
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class GetUserIdByWorkNumResult {
private String error;
private String message;
private String permissions;
private HashMap<String,String> result;
private int status;
private Date timestamp;
public GetUserIdByWorkNumResult success() {
if (this.status != 200) {
log.error("获取用户ID列表失败----{}", JSONUtil.toJsonPrettyStr(this));
return null;
}
return this;
}
}

View File

@@ -1,19 +0,0 @@
package com.xboe.api.vo;
import com.alibaba.nacos.shaded.com.google.gson.JsonElement;
import com.alibaba.nacos.shaded.com.google.gson.JsonPrimitive;
import com.alibaba.nacos.shaded.com.google.gson.JsonSerializationContext;
import com.alibaba.nacos.shaded.com.google.gson.JsonSerializer;
import java.lang.reflect.Type;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTimeSerializer implements JsonSerializer<LocalDateTime> {
private final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@Override
public JsonElement serialize(LocalDateTime src, Type typeOfSrc, JsonSerializationContext context) {
return new JsonPrimitive(formatter.format(src));
}
}

View File

@@ -1,31 +0,0 @@
package com.xboe.api.vo;
import cn.hutool.json.JSONUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@Data
@Slf4j
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SyncExamScoreBean {
private boolean show;
private String version;
private int code;
private String msg;
private Object data;
private boolean success;
public SyncExamScoreBean success() {
if (this.code!=200) {
log.error("同步考试到boe库失败----{}", JSONUtil.toJsonPrettyStr(this));
return null;
}
return this;
}
}

View File

@@ -133,6 +133,4 @@ public interface CacheName {
* 字典缓存key * 字典缓存key
* */ * */
String KEY_DICT="dict"; String KEY_DICT="dict";
String STUDY_KEY = "StudyKey:";
} }

View File

@@ -9,7 +9,12 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
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.GetMapping;
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.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.xboe.common.PageList; import com.xboe.common.PageList;
import com.xboe.common.Pagination; import com.xboe.common.Pagination;
@@ -1159,11 +1164,5 @@ public class CourseManageApi extends ApiBaseController{
return success(courses); return success(courses);
} }
@GetMapping("/getCourseCoverUrl")
public JsonResponse<Map<String, String>> getCourseCoverUrl(@RequestParam String courseIds){
Map<String, String> courseUrlMap = courseService.getCourseCoverUrl(courseIds);
return success(courseUrlMap);
}
} }

View File

@@ -1,33 +1,21 @@
package com.xboe.module.course.api; package com.xboe.module.course.api;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.xboe.api.ThirdApi; import com.xboe.api.ThirdApi;
import com.xboe.core.orm.FieldFilters; import com.xboe.api.vo.AuditList;
import com.xboe.module.course.entity.*; import com.xboe.api.vo.AuditListParam;
import com.xboe.api.vo.UserDynamic;
import com.xboe.api.vo.UserdynamicParam;
import com.xboe.common.OrderCondition;
import com.xboe.core.JsonResponseStatus;
import com.xboe.module.course.vo.TeacherVo; import com.xboe.module.course.vo.TeacherVo;
import com.xboe.school.study.dao.StudyCourseDao; import com.xboe.module.usergroup.entity.UserGroupItem;
import com.xboe.school.study.entity.StudyHomeWork;
import com.xboe.school.study.service.IStudyHomeWorkService;
import com.xboe.school.study.service.IStudyService;
import com.xboe.system.user.entity.User;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
@@ -46,6 +34,11 @@ import com.xboe.core.api.ApiBaseController;
import com.xboe.module.course.dto.CourseQueryDto; import com.xboe.module.course.dto.CourseQueryDto;
import com.xboe.module.course.dto.CourseTeacherDto; import com.xboe.module.course.dto.CourseTeacherDto;
import com.xboe.module.course.dto.RankingDto; import com.xboe.module.course.dto.RankingDto;
import com.xboe.module.course.entity.Course;
import com.xboe.module.course.entity.CourseContent;
import com.xboe.module.course.entity.CourseCrowd;
import com.xboe.module.course.entity.CourseSection;
import com.xboe.module.course.entity.CourseTeacher;
import com.xboe.module.course.service.ICourseContentService; import com.xboe.module.course.service.ICourseContentService;
import com.xboe.module.course.service.ICourseSectionService; import com.xboe.module.course.service.ICourseSectionService;
import com.xboe.module.course.service.ICourseService; import com.xboe.module.course.service.ICourseService;
@@ -74,19 +67,19 @@ public class CoursePortalApi extends ApiBaseController{
@Resource @Resource
private ICourseService courseService; private ICourseService courseService;
@Resource @Resource
private ITeacherService teacherService; private ITeacherService teacherService;
@Resource @Resource
private ICourseContentService contentService; private ICourseContentService contentService;
@Resource @Resource
private ICourseSectionService sectionService; private ICourseSectionService sectionService;
@Resource @Resource
private ICourseTeacherService courseTeacherService; private ICourseTeacherService courseTeacherService;
@Autowired @Autowired
private IUserGroupService userGroupService; private IUserGroupService userGroupService;
@@ -96,15 +89,6 @@ public class CoursePortalApi extends ApiBaseController{
@Resource @Resource
private ThirdApi thirdApi; private ThirdApi thirdApi;
@Autowired
IStudyHomeWorkService shomeworkService;
@Autowired
IStudyService studyService;
@Autowired
StudyCourseDao studyCourseDao;
@Autowired @Autowired
StringRedisTemplate redisTemplate; StringRedisTemplate redisTemplate;
@@ -124,9 +108,9 @@ public class CoursePortalApi extends ApiBaseController{
Map<String,Object> list=courseService.findImages(cids); Map<String,Object> list=courseService.findImages(cids);
return success(list); return success(list);
} }
/** /**
* 人气榜 * 人气榜
* */ * */
@PostMapping("/ranking") @PostMapping("/ranking")
public JsonResponse<List<RankingDto>> Ranking(Integer type,Integer time){ public JsonResponse<List<RankingDto>> Ranking(Integer type,Integer time){
@@ -152,7 +136,7 @@ public class CoursePortalApi extends ApiBaseController{
return success(rankingDtos); return success(rankingDtos);
} }
/** /**
* 查询列表,数量,类型,最新,最热 * 查询列表,数量,类型,最新,最热
* @param num * @param num
@@ -178,7 +162,7 @@ public class CoursePortalApi extends ApiBaseController{
} }
dto.setDevice(device); dto.setDevice(device);
try { try {
List<Course> list=courseService.findList(num, dto); List<Course> list=courseService.findList(num, dto);
return success(list); return success(list);
}catch(Exception e) { }catch(Exception e) {
@@ -186,10 +170,10 @@ public class CoursePortalApi extends ApiBaseController{
return error("查询课程列表失败",e.getMessage()); return error("查询课程列表失败",e.getMessage());
} }
} }
@PostMapping("/pagelist-new") @PostMapping("/pagelist-new")
public JsonResponse<PageList<Course>> findNewPage(Pagination pager,CourseQueryDto dto){ public JsonResponse<PageList<Course>> findNewPage(Pagination pager,CourseQueryDto dto){
//只是查询已发布的 //只是查询已发布的
dto.setPublish(true); dto.setPublish(true);
@@ -211,9 +195,9 @@ public class CoursePortalApi extends ApiBaseController{
} }
} }
} }
return success(coursePageList); return success(coursePageList);
} }
/** /**
@@ -224,7 +208,7 @@ public class CoursePortalApi extends ApiBaseController{
*/ */
@PostMapping("/pagelist") @PostMapping("/pagelist")
public JsonResponse<PageList<Course>> findPage(Pagination pager,CourseQueryDto dto){ public JsonResponse<PageList<Course>> findPage(Pagination pager,CourseQueryDto dto){
//只是查询已发布的 //只是查询已发布的
dto.setPublish(true); dto.setPublish(true);
@@ -245,11 +229,11 @@ public class CoursePortalApi extends ApiBaseController{
} }
} }
} }
return success(coursePageList); return success(coursePageList);
} }
/** /**
* 获取详细信息 * 获取详细信息
* @param id * @param id
@@ -260,19 +244,19 @@ public class CoursePortalApi extends ApiBaseController{
if(StringUtils.isBlank(id)) { if(StringUtils.isBlank(id)) {
return badRequest("参数错误,未指定课程"); return badRequest("参数错误,未指定课程");
} }
//当前对于课程不增加浏览量,课程的意义并不是看过 //当前对于课程不增加浏览量,课程的意义并不是看过
// if(addView==null) { // if(addView==null) {
// addView=false; // addView=false;
// } // }
Map<String,Object> rs=new HashMap<String,Object>(); Map<String,Object> rs=new HashMap<String,Object>();
Course course=courseService.getAddView(id); Course course=courseService.getAddView(id);
if(course==null || course.getDeleted()){ if(course==null || course.getDeleted()){
return badRequest("课程不存在或已被删除"); return badRequest("课程不存在或已被删除");
} }
rs.put("course",course); rs.put("course",course);
List<CourseCrowd> courseCrowdList = courseService.findCrowdByCourseId(id); List<CourseCrowd> courseCrowdList = courseService.findCrowdByCourseId(id);
if(crowd!=null && crowd) { if(crowd!=null && crowd) {
rs.put("crowds",courseCrowdList); rs.put("crowds",courseCrowdList);
@@ -315,7 +299,7 @@ public class CoursePortalApi extends ApiBaseController{
List<CourseContent> cclist=contentService.getByCourseId(id); List<CourseContent> cclist=contentService.getByCourseId(id);
List<CourseSection> sectionlist=sectionService.getByCourseId(id); List<CourseSection> sectionlist=sectionService.getByCourseId(id);
List<CourseTeacher> teachers=courseService.findTeachersByCourseId(id); List<CourseTeacher> teachers=courseService.findTeachersByCourseId(id);
//获取教师的介绍信息,因为一门课程 的教师不会太多,所以这里简单直接遍历查询,后续再优化 //获取教师的介绍信息,因为一门课程 的教师不会太多,所以这里简单直接遍历查询,后续再优化
for(CourseTeacher ct : teachers) { for(CourseTeacher ct : teachers) {
@@ -335,7 +319,7 @@ public class CoursePortalApi extends ApiBaseController{
} }
} }
} }
} }
rs.put("isCrowd",pass); rs.put("isCrowd",pass);
@@ -344,7 +328,7 @@ public class CoursePortalApi extends ApiBaseController{
rs.put("teachers",teachers); rs.put("teachers",teachers);
//查询课程 //查询课程
return success(rs); return success(rs);
} }
private void getTeacherInfo(String token, List<String> teacherIds) { private void getTeacherInfo(String token, List<String> teacherIds) {
List<TeacherVo> teacherInfo = thirdApi.getTeacherInfo(teacherIds, token); List<TeacherVo> teacherInfo = thirdApi.getTeacherInfo(teacherIds, token);
@@ -363,102 +347,7 @@ public class CoursePortalApi extends ApiBaseController{
} }
} }
//作业导出
@GetMapping("/export")
public JsonResponse<String> export(String courseName,String courseId,String contentId,String name,Integer status) throws IOException {
Map<String, String>map=new HashMap<>();
List<String> userIds = studyCourseDao.findList(FieldFilters.eq("courseId", courseId)).stream().filter(Objects::nonNull).map(StudyCourse::getAid).collect(Collectors.toList());
if (userIds.isEmpty()){
return error("查询不到用户");
}
List<User>user=studyService.getUserNo(userIds);
try {//筛选出的人员
List<StudyCourseItem> list = studyService.getList(courseId, contentId, name, status);
if(list.isEmpty()){
return success("暂无数据");
}
for (StudyCourseItem s : list) {
List<StudyHomeWork> studyHomeWorks = shomeworkService.getByStudyIdAndContentId(s.getStudyId(), contentId).stream().filter(e-> !Objects.equals(e.getFilePath(), "")).filter(e->e.getFilePath()!=null).collect(Collectors.toList());
if(studyHomeWorks.isEmpty()){
return success("暂无数据");
}
studyHomeWorks.forEach(e->{
user.forEach(u->{
if(u.getId().equals(s.getAid())){
//取后缀
int dotIndex = e.getFilePath().lastIndexOf('.'); // 查找最后一个'.'的位置
String extension = e.getFilePath().substring(dotIndex);
map.put(u.getName()+"-"+u.getUserNo()+extension,"/home/www/elearning/upload"+e.getFilePath());
}
});
});
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("导出异常"+e.getMessage());
}
long totalFileSize = map.values().stream()
.mapToLong(path -> new File(path).length())
.sum();
// 检查文件总大小是否超过 2GB
if (totalFileSize > 2L * 1024 * 1024 * 1024) {
return success("您要下载的作业过大,请分批下载或联系管理员!");
}
// String encodedFilename = URLEncoder.encode(courseName+"【作业】.zip")
// .replace("+", "%20") // 空格替换为"%20"
// .replace("%2F", "/"); // 解决斜杠问题
// StringBuilder contentDispositionValue = new StringBuilder();
// contentDispositionValue.append("attachment; filename=\"")
// .append(encodedFilename)
// .append("\"")
// .append("; filename*=utf-8''")
// .append(encodedFilename);
//
// // 设置响应类型和Content-Disposition头
// response.setContentType("application/zip");
// 创建一个临时文件用于存储ZIP文件
File tempZipFile = new File("/home/www/elearning/upload/temp.zip");
try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(tempZipFile))) {
for (Map.Entry<String, String> e : map.entrySet()) {
File fileToZip = new File(e.getValue());
// 添加 ZIP 条目
ZipEntry entry = new ZipEntry(e.getKey());
entry.setSize(fileToZip.length());
zos.putNextEntry(entry);
try (FileInputStream fis = new FileInputStream(fileToZip)) {
byte[] buffer = new byte[4096];
int len;
while ((len = fis.read(buffer)) > 0) {
zos.write(buffer, 0, len);
}
}
zos.closeEntry();
}
}
// 将临时文件移动到指定位置
Path source = tempZipFile.toPath();
//生成uuid
String uuid = UUID.randomUUID().toString();
Path destination = Paths.get("/home/www/elearning/upload/saveZip/" + uuid + ".zip");
// 删除目标文件如果已存在
if (Files.exists(destination)) {
Files.delete(destination);
}
// 移动文件
Files.copy(source, destination, StandardCopyOption.REPLACE_EXISTING);
// 返回文件路径给前端
String filePath = destination.toAbsolutePath().toString();
return success(filePath);
}
@GetMapping("/detail-study") @GetMapping("/detail-study")
public JsonResponse<List<CourseStudyVo>> detailStudy(String courseId, String aid){ public JsonResponse<List<CourseStudyVo>> detailStudy(String courseId, String aid){
if(StringUtil.isBlank(courseId)){ if(StringUtil.isBlank(courseId)){
@@ -503,7 +392,7 @@ public class CoursePortalApi extends ApiBaseController{
cv.setStatus(9); cv.setStatus(9);
} }
} }
//音视频 //音视频
}else{ }else{
cv.setStatus(study.getStatus()); cv.setStatus(study.getStatus());

View File

@@ -340,8 +340,9 @@ public interface ICourseService {
* */ * */
List<Course> mobiledelList(Integer num,CourseQueryDto courseQueryDto); List<Course> mobiledelList(Integer num,CourseQueryDto courseQueryDto);
/**
* 获取课程封面
* */
Map<String, String> getCourseCoverUrl(String courseIds);
} }

View File

@@ -1979,16 +1979,5 @@ public class CourseServiceImpl implements ICourseService {
return courseDao.findListByHql("Select new Course(id,studys,score) from Course where id in(?1)", ids); return courseDao.findListByHql("Select new Course(id,studys,score) from Course where id in(?1)", ids);
} }
@Override
public Map<String, String> getCourseCoverUrl(String courseIds) {
List<String> courseIdList = Arrays.asList(courseIds.split(","));
List<Course> courseList = courseDao.findList(FieldFilters.in("id", courseIdList));
Map<String, String> coverUrlMap = courseList.stream()
.filter(course -> StringUtils.isNotBlank(course.getCoverImg()))
.collect(Collectors.toMap(Course::getId, Course::getCoverImg));
return coverUrlMap;
}
} }

View File

@@ -14,11 +14,15 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.xboe.module.exam.entity.*;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.dao.DuplicateKeyException; import org.springframework.dao.DuplicateKeyException;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.GetMapping;
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.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
@@ -37,6 +41,9 @@ import com.xboe.core.cache.IXaskCache;
import com.xboe.core.cache.XaskCacheProvider; import com.xboe.core.cache.XaskCacheProvider;
import com.xboe.core.exception.XaskException; import com.xboe.core.exception.XaskException;
import com.xboe.module.exam.dto.AloneExamExportDto; import com.xboe.module.exam.dto.AloneExamExportDto;
import com.xboe.module.exam.entity.AloneExam;
import com.xboe.module.exam.entity.AloneExamAnswer;
import com.xboe.module.exam.entity.ExamTest;
import com.xboe.module.exam.service.IAloneExamService; import com.xboe.module.exam.service.IAloneExamService;
import com.xboe.module.exam.service.IExamPaperService; import com.xboe.module.exam.service.IExamPaperService;
import com.xboe.module.exam.service.IExamTestService; import com.xboe.module.exam.service.IExamTestService;
@@ -546,7 +553,6 @@ public class AloneExamApi extends ApiBaseController {
//转化成百分数 //转化成百分数
//answer.setScore(this.calculateScore(detail)); //answer.setScore(this.calculateScore(detail));
service.submit(answer,scoreType); service.submit(answer,scoreType);
service.syncExamScoreToCourseSuite(answer, request);
return success(map); return success(map);
} catch (Exception e) { } catch (Exception e) {
log.error("提交答卷错误", e); log.error("提交答卷错误", e);

View File

@@ -166,12 +166,12 @@ public class ExamQuestionApi extends ApiBaseController {
return badRequest("请上传正确的试题文件"); return badRequest("请上传正确的试题文件");
} }
//获取表头 //获取表头
Row row = sheetAt.getRow(2); Row row = sheetAt.getRow(1);
//从第二行开始获取数据 //从第二行开始获取数据
List<ExamQuestion> examQuestions1 = new ArrayList<>(); List<ExamQuestion> examQuestions1 = new ArrayList<>();
QuestionDto questionDto = new QuestionDto(); QuestionDto questionDto = new QuestionDto();
for (int i=3;i<sheetAt.getPhysicalNumberOfRows();i++) { for (int i=2;i<sheetAt.getPhysicalNumberOfRows();i++) {
//获取每一行 //获取每一行
Row row1 = sheetAt.getRow(i); Row row1 = sheetAt.getRow(i);

View File

@@ -3,12 +3,14 @@ package com.xboe.module.exam.api;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import cn.hutool.core.collection.CollectionUtil;
import com.xboe.api.ThirdApi; import com.xboe.api.ThirdApi;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.hibernate.exception.ConstraintViolationException; import org.hibernate.exception.ConstraintViolationException;
import org.springframework.web.bind.annotation.GetMapping;
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 com.xboe.common.PageList; import com.xboe.common.PageList;
import com.xboe.common.Pagination; import com.xboe.common.Pagination;
@@ -21,8 +23,6 @@ import com.xboe.module.exam.service.IExamTestService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.List;
/** /**
* 考试 * 考试
* */ * */
@@ -33,10 +33,8 @@ public class ExamTestApi extends ApiBaseController {
@Resource @Resource
private IExamTestService examTestService; private IExamTestService examTestService;
@Resource @Resource
private ThirdApi thirdApi; ThirdApi thirdApi;
/** /**
*查询考试,分页,搜索,资源归属,状态 *查询考试,分页,搜索,资源归属,状态
**/ **/
@@ -185,21 +183,4 @@ public class ExamTestApi extends ApiBaseController {
return error("上下级失败",e.getMessage()); return error("上下级失败",e.getMessage());
} }
} }
/**
* 引用关系移除
* */
@PostMapping("/removeRel")
public JsonResponse<Boolean> removeRel(@RequestParam List<String> ids){
if(CollectionUtil.isEmpty(ids)){
return badRequest("参数异常");
}
try {
examTestService.removeRel(ids);
return success(true);
} catch (Exception e) {
log.error("引用关系移除异常",e);
return error("引用关系移除异常",e.getMessage());
}
}
} }

View File

@@ -65,7 +65,6 @@ public class AloneExam extends IdBaseEntity {
private String ucode; private String ucode;
/**关联类型*/ /**关联类型*/
/**关联类型 新增关联类型14代表成长路径图*/
@Column(name = "ref_type", length = 30) @Column(name = "ref_type", length = 30)
private String refType; private String refType;

View File

@@ -178,14 +178,4 @@ public class ExamTest extends BaseEntity {
@Transient @Transient
private String paperName; private String paperName;
/** 关联类型1、项目 2、学习路径图 3、面授课 14、成长路径图 */
@Column(name = "ref_type")
private Integer refType;
@Column(name = "ref_id")
private String refId;
@Column(name = "ref_status")
private Integer refStatus;
} }

View File

@@ -10,7 +10,6 @@ import com.xboe.module.exam.dto.TestUserQuery;
import com.xboe.module.exam.entity.AloneExam; import com.xboe.module.exam.entity.AloneExam;
import com.xboe.module.exam.entity.AloneExamAnswer; import com.xboe.module.exam.entity.AloneExamAnswer;
import com.xboe.module.exam.vo.AloneExamQuery; import com.xboe.module.exam.vo.AloneExamQuery;
import javax.servlet.http.HttpServletRequest;
/** /**
* 独立考试的处理。此信息无删除操作更新也只是更新answerJson字段 * 独立考试的处理。此信息无删除操作更新也只是更新answerJson字段
@@ -93,18 +92,10 @@ public interface IAloneExamService {
/** /**
* 提交考试 * 提交考试
*
* @param aea * @param aea
*/ */
void submit(AloneExamAnswer aea, Integer scoreType); void submit(AloneExamAnswer aea,Integer scoreType);
/**
* 同步考试成绩
* @param aea
* @param request
*/
void syncExamScoreToCourseSuite(AloneExamAnswer aea, HttpServletRequest request);
/** /**
* 更新答案 * 更新答案
* @param id * @param id

View File

@@ -3,8 +3,6 @@ package com.xboe.module.exam.service;
import com.xboe.common.PageList; import com.xboe.common.PageList;
import com.xboe.module.exam.entity.ExamTest; import com.xboe.module.exam.entity.ExamTest;
import java.util.List;
public interface IExamTestService { public interface IExamTestService {
/** /**
* 分页查,状态,搜索,资源归属 * 分页查,状态,搜索,资源归属
@@ -53,5 +51,4 @@ public interface IExamTestService {
* */ * */
void enabled(String id,Boolean enabled); void enabled(String id,Boolean enabled);
void removeRel(List<String> ids);
} }

View File

@@ -1,6 +1,17 @@
package com.xboe.module.exam.service.impl; package com.xboe.module.exam.service.impl;
import com.xboe.api.ThirdApi; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.xboe.common.OrderCondition; import com.xboe.common.OrderCondition;
import com.xboe.common.PageList; import com.xboe.common.PageList;
import com.xboe.common.utils.StringUtil; import com.xboe.common.utils.StringUtil;
@@ -9,7 +20,6 @@ import com.xboe.core.orm.QueryBuilder;
import com.xboe.core.orm.UpdateBuilder; import com.xboe.core.orm.UpdateBuilder;
import com.xboe.module.exam.dao.AloneExamAnswerDao; import com.xboe.module.exam.dao.AloneExamAnswerDao;
import com.xboe.module.exam.dao.AloneExamDao; import com.xboe.module.exam.dao.AloneExamDao;
import com.xboe.module.exam.dao.ExamTestDao;
import com.xboe.module.exam.dto.TestUserAnswerDto; import com.xboe.module.exam.dto.TestUserAnswerDto;
import com.xboe.module.exam.dto.TestUserDto; import com.xboe.module.exam.dto.TestUserDto;
import com.xboe.module.exam.dto.TestUserQuery; import com.xboe.module.exam.dto.TestUserQuery;
@@ -18,47 +28,23 @@ import com.xboe.module.exam.entity.AloneExamAnswer;
import com.xboe.module.exam.entity.ExamTest; import com.xboe.module.exam.entity.ExamTest;
import com.xboe.module.exam.service.IAloneExamService; import com.xboe.module.exam.service.IAloneExamService;
import com.xboe.module.exam.vo.AloneExamQuery; import com.xboe.module.exam.vo.AloneExamQuery;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture;
@Service @Service
public class AloneExamServiceImpl implements IAloneExamService{ public class AloneExamServiceImpl implements IAloneExamService{
private static final Logger log = LoggerFactory.getLogger(AloneExamServiceImpl.class);
@Resource @Resource
AloneExamAnswerDao dao; AloneExamAnswerDao dao;
@Resource @Resource
AloneExamDao aeDao; AloneExamDao aeDao;
@Autowired
private ThirdApi thirdApi;
@Override @Override
@Transactional @Transactional
public void save(AloneExamAnswer aea){ public void save(AloneExamAnswer aea){
dao.save(aea); dao.save(aea);
AloneExam ae=aeDao.findOne(FieldFilters.eq("aid", aea.getAid()),FieldFilters.eq("testId", aea.getTestId()));
int currentTimes = ae.getTimes() != null ? ae.getTimes() : 0;
//更新状态 //更新状态
aeDao.update(UpdateBuilder.from(AloneExam.class) aeDao.update(UpdateBuilder.from(AloneExam.class)
.addUpdateField("status", AloneExam.STATUS_NORMAL) .addUpdateField("status", AloneExam.STATUS_NORMAL)
.addUpdateField("times", currentTimes+1)
.addFilter(FieldFilters.eq("aid", aea.getAid())) .addFilter(FieldFilters.eq("aid", aea.getAid()))
.addFilter(FieldFilters.eq("testId", aea.getTestId())) .addFilter(FieldFilters.eq("testId", aea.getTestId()))
.addFilter(FieldFilters.eq("status",AloneExam.STATUS_NONE)) .addFilter(FieldFilters.eq("status",AloneExam.STATUS_NONE))
@@ -67,8 +53,8 @@ public class AloneExamServiceImpl implements IAloneExamService{
} }
@Override @Override
@Transactional(propagation = Propagation.REQUIRES_NEW) @Transactional
public void submit(AloneExamAnswer aea, Integer scoreType){ public void submit(AloneExamAnswer aea,Integer scoreType){
//dao.update(aea); //dao.update(aea);
aea.setStatus(AloneExamAnswer.STATUS_FINISH); aea.setStatus(AloneExamAnswer.STATUS_FINISH);
LocalDateTime now=LocalDateTime.now(); LocalDateTime now=LocalDateTime.now();
@@ -116,27 +102,6 @@ public class AloneExamServiceImpl implements IAloneExamService{
// } // }
} }
} }
@Override
public void syncExamScoreToCourseSuite(AloneExamAnswer aea, HttpServletRequest request) {
String token = request.getHeader("Xboe-Access-Token");
if (StringUtils.isEmpty(token)) {
token = request.getHeader("token");
}
String finalToken = token;
CompletableFuture.supplyAsync(() -> {
AloneExam aloneExam = aeDao.findOne(FieldFilters.eq("aid", aea.getAid()), FieldFilters.eq("testId", aea.getTestId()));
if (aloneExam.getRefType().equals("14")){
thirdApi.syncExamScoreToCourseSuite(aloneExam, finalToken);
}
return "完成结果";
}).exceptionally(ex -> {
log.error("异步操作中发生错误: " + ex.getMessage(), ex);
return "发生错误";
}).thenAccept(result -> {
log.info("同步考试成绩到课程项目完成:" + result);
});
}
@Override @Override
@Transactional @Transactional

View File

@@ -122,10 +122,4 @@ public class ExamTestServiceImpl implements IExamTestService {
} }
return null; return null;
} }
@Override
public void removeRel(List<String> ids) {
String idsStr = String.join(",", ids);
examTestDao.sqlUpdate("update boe_exam_test set ref_status=0 where id in (?1)",idsStr);
}
} }

View File

@@ -101,7 +101,7 @@ public class TeacherServiceImpl implements ITeacherService {
@Override @Override
public List<Teacher> findByName(String name) { public List<Teacher> findByName(String name) {
String hql="Select t.id,t.name,u.userNo from "+Teacher.class.getSimpleName()+" t,"+User.class.getSimpleName()+" u "; String hql="Select t.id,t.name,u.userNo from "+Teacher.class.getSimpleName()+" t,"+User.class.getSimpleName()+" u ";
hql+=" where t.id=u.id and (t.name like '%"+name+"%' or u.userNo=?1)"; hql+=" where t.id=u.id and t.status = 1 and (t.name like '%"+name+"%' or u.userNo=?1)";
List<Teacher> teachers=new ArrayList<Teacher>(); List<Teacher> teachers=new ArrayList<Teacher>();
try { try {
List<Object[]> list =dao.findListFields(hql,name); List<Object[]> list =dao.findListFields(hql,name);

View File

@@ -3,11 +3,13 @@ package com.xboe.school.study.api;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import com.alibaba.nacos.shaded.com.google.common.util.concurrent.RateLimiter; import cn.hutool.core.util.ArrayUtil;
import com.xboe.api.ThirdApi; import com.xboe.api.ThirdApi;
import com.xboe.constants.CacheName; import com.xboe.api.vo.*;
import com.xboe.module.course.vo.TeacherVo; import com.xboe.module.course.vo.TeacherVo;
import com.xboe.module.usergroup.entity.UserGroupItem;
import com.xboe.module.usergroup.service.IUserGroupService; import com.xboe.module.usergroup.service.IUserGroupService;
import com.xboe.school.study.dao.StudyCourseDao; import com.xboe.school.study.dao.StudyCourseDao;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
@@ -64,7 +66,9 @@ import javax.servlet.http.HttpServletRequest;
@RestController @RestController
@RequestMapping(value="/xboe/school/study/course") @RequestMapping(value="/xboe/school/study/course")
public class StudyCourseApi extends ApiBaseController{ public class StudyCourseApi extends ApiBaseController{
@Autowired @Autowired
IStudyCourseService service; IStudyCourseService service;
@@ -320,35 +324,31 @@ public class StudyCourseApi extends ApiBaseController{
if (StringUtils.isEmpty(token)) { if (StringUtils.isEmpty(token)) {
token = request.getHeader("token"); token = request.getHeader("token");
} }
//检查是否已存在 //检查是否已存在
StudyCourseItem item = studyService.checkHas(sci.getStudyId(),sci.getContentId()); StudyCourseItem item = studyService.checkHas(sci.getStudyId(),sci.getContentId());
if(item!=null) {
String studyKey = CacheName.NAME_AUTH + ":" + CacheName.STUDY_KEY + item.getCourseId()+":"+cuser.getAccountId()+":"+item.getContentId();
String studyKey2 = CacheName.NAME_AUTH + ":" + CacheName.STUDY_KEY + sci.getCourseId()+":"+cuser.getAccountId()+":"+sci.getContentId();
redisTemplate.opsForValue().set(studyKey,
String.valueOf(item.getProgress()), 2, TimeUnit.HOURS);
String progressStr = redisTemplate.opsForValue().get(studyKey2);
if (progressStr != null && !progressStr.isEmpty()) {
// 尝试将 Redis 中的字符串转换为整数
int redisProgress = Integer.parseInt(progressStr);
// 假设 item.getProgress() 返回的是 int 类型
int sciProgress = sci.getProgress();
if (redisProgress < sciProgress && redisProgress < 100) { // 20240815 特训营结营考试 临时代码
// 执行一些操作 // if(item != null && redisTemplate.opsForValue().get(item.getId())==null){
// if(item.getProgress()<100 && sci.getProgress()>item.getProgress()) { // redisTemplate.opsForValue().set(item.getId(),item.getId());
// } // //设置过期时间为1天
studyService.updateProcess(item.getId(), sci.getStudyId(), sci.getCourseId(), sci.getContentTotal(), sci.getProgress(),token); // redisTemplate.expire(item.getId(), 60, TimeUnit.SECONDS);
} // }else{
// return success("");
// }
if(item!=null) {
//如果记录存在但是进度不100无成情况就更新进度一期不会有这种情况
if(item.getProgress()<100 && sci.getProgress()>item.getProgress()) {
studyService.updateProcess(item.getId(), sci.getStudyId(), sci.getCourseId(), sci.getContentTotal(), sci.getProgress(),token);
} }
//追加学习时长 //追加学习时长
studyService.appendStudyDuration(sci.getStudyId(),item.getId(),sci.getContentId(),sci.getDuration()); studyService.appendStudyDuration(sci.getStudyId(),item.getId(),sci.getContentId(),sci.getDuration());
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId() ,sci.getCourseId(), token); List<StudyCourse> allUserList = thirdApi.getStudyCourseList(sci.getStudyId() ,sci.getCourseId(), token);
log.info("在线课学习记录"+allUserList); log.info("在线课学习记录"+allUserList);
return success(item.getId()); return success(item.getId());
//如果记录存在但是进度不100无成情况就更新进度一期不会有这种情况
} }
if(StringUtils.isBlank(sci.getCourseId())){ if(StringUtils.isBlank(sci.getCourseId())){
return error("无课程信息"); return error("无课程信息");
} }
@@ -421,6 +421,14 @@ public class StudyCourseApi extends ApiBaseController{
StudyCourseItem item = studyService.checkHas(sci.getStudyId(),sci.getContentId()); StudyCourseItem item = studyService.checkHas(sci.getStudyId(),sci.getContentId());
if(item!=null) { if(item!=null) {
//如果记录存在但是进度不到100未完成情况就更新进度一期不会有这种情况 //如果记录存在但是进度不到100未完成情况就更新进度一期不会有这种情况
// 20240815 特训营结营考试 临时代码
// if(item != null && redisTemplate.opsForValue().get(item.getId())==null){
// redisTemplate.opsForValue().set(item.getId(),item.getId());
// //设置过期时间为1天
// redisTemplate.expire(item.getId(), 60, TimeUnit.SECONDS);
// }else{
// return success("");
// }
if(item.getProgress()<100) { if(item.getProgress()<100) {
studyService.updateProcess(item.getId(),sci.getStudyId(),sci.getCourseId(), sci.getContentTotal(),100,token); studyService.updateProcess(item.getId(),sci.getStudyId(),sci.getCourseId(), sci.getContentTotal(),100,token);
} }
@@ -526,6 +534,14 @@ public class StudyCourseApi extends ApiBaseController{
token = request.getHeader("token"); token = request.getHeader("token");
} }
try { try {
// 20240815 特训营结营考试 临时代码
// if(itemId != null && redisTemplate.opsForValue().get(itemId)==null){
// redisTemplate.opsForValue().set(itemId,itemId);
// //设置过期时间为1天
// redisTemplate.expire(itemId, 60, TimeUnit.SECONDS);
// }else{
// return success(true);
// }
studyService.finishVideoStudyItem(itemId, studyId,courseId,cnum,token); studyService.finishVideoStudyItem(itemId, studyId,courseId,cnum,token);
List<StudyCourse> allUserList = thirdApi.getStudyCourseList(studyId ,courseId, token); List<StudyCourse> allUserList = thirdApi.getStudyCourseList(studyId ,courseId, token);
log.info("在线课学习记录"+allUserList); log.info("在线课学习记录"+allUserList);
@@ -707,9 +723,10 @@ public class StudyCourseApi extends ApiBaseController{
return error("查询失败",e.getMessage()); return error("查询失败",e.getMessage());
} }
} }
@RequestMapping(value="/study-course-content",method = {RequestMethod.GET,RequestMethod.POST}) @RequestMapping(value="/study-course-content",method = {RequestMethod.GET,RequestMethod.POST})
public JsonResponse<StudyCourseItem> findStudyCourseItem(String studyId,String contentId){ public JsonResponse<StudyCourseItem> findStudyCourseItem(String studyId,String contentId, HttpServletRequest request){
if(StringUtils.isBlank(studyId)){ if(StringUtils.isBlank(studyId)){
return error("无学习信息"); return error("无学习信息");
} }

View File

@@ -1,6 +1,5 @@
package com.xboe.school.study.service; package com.xboe.school.study.service;
import java.util.Collection;
import java.util.List; import java.util.List;
import com.xboe.school.study.entity.StudyHomeWork; import com.xboe.school.study.entity.StudyHomeWork;
@@ -30,6 +29,4 @@ public interface IStudyHomeWorkService {
* @return * @return
*/ */
List<StudyHomeWork> getByStudyIdAndContentId(String studyId,String contentId); List<StudyHomeWork> getByStudyIdAndContentId(String studyId,String contentId);
List<StudyHomeWork>getByStudnetNameAndContentId(List<String> studentName, String contentId);
} }

View File

@@ -7,7 +7,6 @@ import com.xboe.common.PageList;
import com.xboe.school.study.dto.StudyContentDto; import com.xboe.school.study.dto.StudyContentDto;
import com.xboe.school.study.entity.StudyCourseItem; import com.xboe.school.study.entity.StudyCourseItem;
import com.xboe.school.study.entity.StudyTime; import com.xboe.school.study.entity.StudyTime;
import com.xboe.system.user.entity.User;
/** /**
* 学习情况处理,比较综合一个处理类 * 学习情况处理,比较综合一个处理类
@@ -96,8 +95,4 @@ public interface IStudyService {
* @return * @return
*/ */
PageList<StudyCourseItem> findItemPage(int pageIndex, int pageSize, String contentId, String courseId, String name, Integer status); PageList<StudyCourseItem> findItemPage(int pageIndex, int pageSize, String contentId, String courseId, String name, Integer status);
List<StudyCourseItem> getList(String courseId, String contentId, String name, Integer status);
List<User> getUserNo(List<String> userIds);
} }

View File

@@ -89,9 +89,4 @@ public class StudyHomeWorkServiceImpl implements IStudyHomeWorkService{
return dao.findList(FieldFilters.eq("studyId", studyId),FieldFilters.eq("contentId", contentId)); return dao.findList(FieldFilters.eq("studyId", studyId),FieldFilters.eq("contentId", contentId));
} }
@Override
public List<StudyHomeWork> getByStudnetNameAndContentId(List<String> studentName, String contentId) {
return dao.findList(FieldFilters.in("student_name", studentName),FieldFilters.eq("contentId", contentId));
}
} }

View File

@@ -1,5 +1,6 @@
package com.xboe.school.study.service.impl; package com.xboe.school.study.service.impl;
import java.math.BigInteger;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
@@ -7,12 +8,12 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.annotation.Resource;
import javax.transaction.Transactional; import javax.transaction.Transactional;
import com.xboe.module.article.entity.Article; import com.xboe.module.article.entity.Article;
import com.xboe.module.interaction.entity.Shares; import com.xboe.module.interaction.entity.Shares;
import com.xboe.school.study.entity.StudyCourse; import com.xboe.school.study.entity.StudyCourse;
import com.xboe.system.user.entity.User;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -271,39 +272,6 @@ public class StudyServiceImpl implements IStudyService{
} }
@Override
public List<StudyCourseItem> getList(String courseId, String contentId, String name, Integer status) {
QueryBuilder query=QueryBuilder.from(StudyCourseItem.class);
OrderCondition oc=OrderCondition.desc("id");
query.addOrder(oc);
if(StringUtils.isNotBlank(contentId)) {
query.addFilter(FieldFilters.eq("contentId",contentId));
}
if(StringUtils.isNotBlank(courseId)) {
query.addFilter(FieldFilters.eq("courseId",courseId));
}
if(status!=null) {
if(status==1) {
query.addFilter(FieldFilters.eq("progress", 0));
}else {
query.addFilter(FieldFilters.eq("progress",100));
}
}
if(StringUtils.isNotBlank(name)) {
query.addFilter(FieldFilters.eq("aname", name));
}
return scItemDao.findList(query.builder());
}
@Override
public List<User> getUserNo(List<String> userIds) {
return userDao.findList(FieldFilters.in("id", userIds));
}
@Override @Override
@Transactional @Transactional
public void updateProcess(String studyContentId,String studyId, String courseId,Integer total, Integer progress,String token) { public void updateProcess(String studyContentId,String studyId, String courseId,Integer total, Integer progress,String token) {

View File

@@ -1,9 +1,9 @@
# cloud nacos config # cloud nacos config
spring.cloud.nacos.discovery.server-addr=10.251.113.100:8848 spring.cloud.nacos.discovery.server-addr=10.251.129.51:8848
## redis ## redis
spring.redis.database=1 spring.redis.database=1
spring.redis.host=10.251.88.213 spring.redis.host=10.251.129.122
spring.redis.password=qwert!W588 spring.redis.password=qwert!W588
spring.redis.port=6379 spring.redis.port=6379
@@ -16,7 +16,7 @@ spring.datasource.driverClassName=com.mysql.jdbc.Driver
#spring.datasource.url=jdbc:mysql://10.251.129.129:8066/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull #spring.datasource.url=jdbc:mysql://10.251.129.129:8066/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
#spring.datasource.username=admin #spring.datasource.username=admin
#spring.datasource.password=ocYMC>!{8G #spring.datasource.password=ocYMC>!{8G
spring.datasource.url=jdbc:mysql://10.251.88.216:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.url=jdbc:mysql://10.251.129.126:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=admin spring.datasource.username=admin
spring.datasource.password=boeRds01 spring.datasource.password=boeRds01
@@ -53,7 +53,6 @@ xboe.externalinterface.url.system=http://127.0.0.1:9091
## ????????????? ## ?????????????
xboe.old.base.url=https://u.boe.com xboe.old.base.url=https://u.boe.com
## ???????api?? ## ???????api??
xboe.stat.base.url=http://127.0.0.1:9080 xboe.stat.base.url=http://127.0.0.1:9080
xboe.server.userbasic.url=https://u.boe.com/userbasic xboe.server.userbasic.url=https://u.boe.com/userbasic
@@ -64,7 +63,7 @@ jasypt.encryptor.algorithm=PBEWithMD5AndDES
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
# elasticsearch config # elasticsearch config
xboe.elasticsearch.server.ip=10.251.88.218 xboe.elasticsearch.server.ip=10.251.129.21
xboe.elasticsearch.server.port=9200 xboe.elasticsearch.server.port=9200
xboe.elasticsearch.server.user= xboe.elasticsearch.server.user=
xboe.elasticsearch.server.password= xboe.elasticsearch.server.password=

View File

@@ -56,7 +56,7 @@ logging.config=classpath:log/logback-@profileActive@.xml
# config.id.generator.datacenter.num=1 # config.id.generator.datacenter.num=1
#boe.domain=https://pretest.zcwytd.com #boe.domain=https://pretest.zcwytd.com
boe.domain=http://127.0.0.1 boe.domain=https://u.boe.com
#boe.domain=http://localhost:30001 #boe.domain=http://localhost:30001
orgTree.orgTreeList=${boe.domain}/userbasic/org/list orgTree.orgTreeList=${boe.domain}/userbasic/org/list
# ????id???????????? # ????id????????????
@@ -73,6 +73,5 @@ infrasApi.dict=${boe.domain}/infrasApi/dict/list
manageApi.stu.offcourse=${boe.domain}/manageApi/stu/offcourse/getOffCourseId manageApi.stu.offcourse=${boe.domain}/manageApi/stu/offcourse/getOffCourseId
manageApi.editExam=${boe.domain}/manageApi/admin/project/editExam manageApi.editExam=${boe.domain}/manageApi/admin/project/editExam
#获取离职教师id #获取离职教师id
userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfocoursesuilt.getStudyStatus=${boe.domain}/manageApi/stu/project/completeStatus userBasic.getTeacherIds=${boe.domain}/userbasic/user/getTeacherInfo
coursesuilt.checkBanding=${boe.domain}/manageApi/stu/task/exam/checkBanding coursesuilt.getStudyStatus=${boe.domain}/manageApi/stu/project/completeStatus
coursesuilt.syncExamScoreToCourseSuite=${boe.domain}/manageApi/stu/task/exam/syncExamScoreToCourseSuite

View File

@@ -1,6 +1,6 @@
## redis ## redis
spring.redis.database=3 spring.redis.database=3
spring.redis.host=10.251.88.213 spring.redis.host=10.251.129.122
spring.redis.password=qwert!W588 spring.redis.password=qwert!W588
spring.redis.port=6379 spring.redis.port=6379
@@ -14,7 +14,7 @@ spring.datasource.driverClassName=com.mysql.jdbc.Driver
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
# 当前数据库 basic 对应的数据库 # 当前数据库 basic 对应的数据库
spring.datasource.db1.driverClassName=com.mysql.jdbc.Driver spring.datasource.db1.driverClassName=com.mysql.jdbc.Driver
spring.datasource.db1.jdbc-url=jdbc:mysql://10.251.88.216:3306/boe_basic?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.db1.jdbc-url=jdbc:mysql://10.251.129.126:3306/boe_basic?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.db1.username=admin spring.datasource.db1.username=admin
spring.datasource.db1.password=boeRds01 spring.datasource.db1.password=boeRds01
@@ -23,7 +23,7 @@ spring.datasource.db1.password=boeRds01
# 主数据库 all 对应的数据库 # 主数据库 all 对应的数据库
spring.datasource.db2.driverClassName=com.mysql.jdbc.Driver spring.datasource.db2.driverClassName=com.mysql.jdbc.Driver
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.db2.jdbc-url=jdbc:mysql://10.251.88.216:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.db2.jdbc-url=jdbc:mysql://10.251.129.126:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.db2.username=admin spring.datasource.db2.username=admin
spring.datasource.db2.password=boeRds01 spring.datasource.db2.password=boeRds01
@@ -48,7 +48,6 @@ xboe.upload.file.http_path=https://u.boe.com/upload
## 新系统的内部地址可以不通过nginx调用 ## 新系统的内部地址可以不通过nginx调用
xboe.inner.data.sync.baseurl=http://127.0.0.1:9090 xboe.inner.data.sync.baseurl=http://127.0.0.1:9090
#加密盐 #加密盐
#jasypt.encryptor.password=jasypt #jasypt.encryptor.password=jasypt
jasypt.encryptor.algorithm=PBEWithMD5AndDES jasypt.encryptor.algorithm=PBEWithMD5AndDES

View File

@@ -1,15 +1,15 @@
## redis ## redis
spring.redis.database=2 spring.redis.database=2
spring.redis.host=10.251.88.214 spring.redis.host=127.0.0.1
spring.redis.password=qwert!W588 spring.redis.password=ENC(zA5LNV8xw3yEx6LMwdGGBGgNsOaD3Cg+)
spring.redis.port=6379 spring.redis.port=6379
## datasource config ## datasource config
spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.driverClassName=com.mysql.jdbc.Driver
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql:/10.251.88.216:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=admin spring.datasource.username=root
spring.datasource.password=boeRds01 spring.datasource.password=ENC(lAoFOYuc8CAypPtigTNLYg==)
logging.level.org.hibernate.SQL=ERROR logging.level.org.hibernate.SQL=ERROR
# logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE # logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

View File

@@ -1,6 +1,6 @@
## redis ## redis
spring.redis.database=2 spring.redis.database=2
spring.redis.host=10.251.88.214 spring.redis.host=127.0.0.1
spring.redis.password=ENC(zA5LNV8xw3yEx6LMwdGGBGgNsOaD3Cg+) spring.redis.password=ENC(zA5LNV8xw3yEx6LMwdGGBGgNsOaD3Cg+)
spring.redis.port=6379 spring.redis.port=6379
@@ -8,7 +8,7 @@ spring.redis.port=6379
spring.jpa.hibernate.ddl-auto=none spring.jpa.hibernate.ddl-auto=none
spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.driverClassName=com.mysql.jdbc.Driver
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://10.251.88.216:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=ENC(lAoFOYuc8CAypPtigTNLYg==) spring.datasource.password=ENC(lAoFOYuc8CAypPtigTNLYg==)

View File

@@ -1,16 +1,16 @@
## redis ## redis
spring.redis.database=2 spring.redis.database=2
spring.redis.host=10.251.88.214 spring.redis.host=127.0.0.1
spring.redis.password=ENC(zA5LNV8xw3yEx6LMwdGGBGgNsOaD3Cg+) spring.redis.password=ENC(zA5LNV8xw3yEx6LMwdGGBGgNsOaD3Cg+)
spring.redis.port=6379 spring.redis.port=6379
# cloud nacos config # cloud nacos config
spring.cloud.nacos.discovery.server-addr=10.251.113.100:8848 spring.cloud.nacos.discovery.server-addr=10.251.181.11:8848
## datasource config ## datasource config
spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.driverClassName=com.mysql.jdbc.Driver
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://10.251.88.216:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=root spring.datasource.username=root
spring.datasource.password=ENC(lAoFOYuc8CAypPtigTNLYg==) spring.datasource.password=ENC(lAoFOYuc8CAypPtigTNLYg==)
@@ -33,6 +33,7 @@ xboe.upload.file.http_path=http://localhost:9090/cdn/upload
## 外部接口调用地址 旧系统机构及用户数据接口 ## 外部接口调用地址 旧系统机构及用户数据接口
xboe.externalinterface.url.system=http://localhost:9091 xboe.externalinterface.url.system=http://localhost:9091
#加密盐 #加密盐
#jasypt.encryptor.password=jasypt #jasypt.encryptor.password=jasypt
jasypt.encryptor.algorithm=PBEWithMD5AndDES jasypt.encryptor.algorithm=PBEWithMD5AndDES

View File

@@ -7,7 +7,7 @@ spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.driverClassName=com.mysql.jdbc.Driver
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
# 当前数据库 basic 对应的数据库 # 当前数据库 basic 对应的数据库
spring.datasource.url=jdbc:mysql://10.251.88.216:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.url=jdbc:mysql://10.251.129.126:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=admin spring.datasource.username=admin
spring.datasource.password=boeRds01 spring.datasource.password=boeRds01

View File

@@ -7,7 +7,7 @@ spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.driverClassName=com.mysql.jdbc.Driver
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
# 当前数据库 basic 对应的数据库 # 当前数据库 basic 对应的数据库
spring.datasource.url=jdbc:mysql://10.251.88.216:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.url=jdbc:mysql://10.251.129.126:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.username=admin spring.datasource.username=admin
spring.datasource.password=boeRds01 spring.datasource.password=boeRds01

View File

@@ -1,3 +1,4 @@
# datasource config # datasource config
# basic数据库 # basic数据库
spring.jpa.hibernate.ddl-auto=none spring.jpa.hibernate.ddl-auto=none
@@ -8,7 +9,7 @@ spring.datasource.driverClassName=com.mysql.jdbc.Driver
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
# 原数据库 old 对应的数据库 # 原数据库 old 对应的数据库
spring.datasource.db1.driverClassName=com.mysql.jdbc.Driver spring.datasource.db1.driverClassName=com.mysql.jdbc.Driver
spring.datasource.db1.jdbc-url=jdbc:mysql://10.251.88.216:3306/elearninglms?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.db1.jdbc-url=jdbc:mysql://10.251.129.126:3306/elearninglms?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.db1.username=admin spring.datasource.db1.username=admin
spring.datasource.db1.password=boeRds01 spring.datasource.db1.password=boeRds01
@@ -17,7 +18,7 @@ spring.datasource.db1.password=boeRds01
# 新主数据库 all 对应的数据库 # 新主数据库 all 对应的数据库
spring.datasource.db2.driverClassName=com.mysql.jdbc.Driver spring.datasource.db2.driverClassName=com.mysql.jdbc.Driver
# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver # spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.db2.jdbc-url=jdbc:mysql://10.251.88.216:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull spring.datasource.db2.jdbc-url=jdbc:mysql://10.251.129.126:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull
spring.datasource.db2.username=admin spring.datasource.db2.username=admin
spring.datasource.db2.password=boeRds01 spring.datasource.db2.password=boeRds01