判分修改,判分点堆内存溢出处理

master
cheney 2 months ago
parent 1373b27c4e
commit a2593b841d
  1. 0
      bank/src/main/resources/application.properties
  2. 41
      common/pom.xml
  3. 7
      common/src/main/java/com/huoran/common/entity/LcJudgmentPoint.java
  4. 2
      common/src/main/java/com/huoran/common/entity/ScoreDetails.java
  5. 0
      data_platform/src/main/resources/application.properties
  6. 14
      exam/src/main/resources/application.properties
  7. 103
      financial_product/src/main/java/com/huoran/financial_product/controller/SandTableCacheRecordController.java
  8. 150
      financial_product/src/main/java/com/huoran/financial_product/service/impl/BankProductsServiceImpl.java
  9. 34
      financial_product/src/main/resources/application.properties
  10. 11
      financial_product/src/main/resources/bootstrap.properties
  11. 8
      gateway/src/main/resources/bootstrap.properties
  12. 4
      gateway/src/main/resources/bootstrap.yml
  13. 11
      judgment_point/pom.xml
  14. 49
      judgment_point/src/main/java/com/huoran/judgment_point/config/ObjectPoolFactory.java
  15. 51
      judgment_point/src/main/java/com/huoran/judgment_point/controller/LcJudgmentPointController.java
  16. 69
      judgment_point/src/main/java/com/huoran/judgment_point/entity/LcJudgmentPoint.java
  17. 2
      judgment_point/src/main/java/com/huoran/judgment_point/entity/vo/LcJudgmentPointVo.java
  18. 2
      judgment_point/src/main/java/com/huoran/judgment_point/mapper/LcJudgmentPointMapper.java
  19. 4
      judgment_point/src/main/java/com/huoran/judgment_point/mapper/xml/LcJudgmentPointMapper.xml
  20. 2
      judgment_point/src/main/java/com/huoran/judgment_point/service/LcJudgmentPointService.java
  21. 4
      judgment_point/src/main/java/com/huoran/judgment_point/service/impl/BcJudgmentPointServiceImpl.java
  22. 43
      judgment_point/src/main/java/com/huoran/judgment_point/service/impl/LcJudgmentPointServiceImpl.java
  23. 31
      judgment_point/src/main/resources/application.properties
  24. 9
      judgment_point/src/main/resources/bootstrap.properties
  25. 27
      nakadai/src/main/java/com/huoran/nakadai/controller/ProductThemeController.java
  26. 13
      nakadai/src/main/resources/application.properties
  27. 3
      occupationlab/src/main/java/com/huoran/occupationlab/controller/ExperimentalReportController.java
  28. 16
      occupationlab/src/main/resources/application.properties
  29. 19
      occupationlab/src/main/resources/bootstrap.properties
  30. 34
      pom.xml
  31. 14
      users/src/main/resources/application.properties

@ -46,8 +46,7 @@
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<!-- <version>2.1.0.RELEASE</version>-->
<version>2.2.5.RELEASE</version>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
@ -154,10 +153,10 @@
</dependency>
<!--视频上传依赖-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.aliyun</groupId>-->
<!-- <artifactId>aliyun-java-sdk-core</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>com.aliyun</groupId>
@ -230,26 +229,28 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<exclusions>
<!-- <version>2.2.0</version>-->
<!-- <exclusions>-->
<!-- <exclusion>-->
<!-- <groupId>com.alibaba.nacos</groupId>-->
<!-- <artifactId>nacos-client</artifactId>-->
<!-- </exclusion>-->
<exclusion>
<artifactId>fastjson</artifactId>
<groupId>com.alibaba</groupId>
</exclusion>
<exclusion>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
</exclusion>
</exclusions>
<!-- <exclusion>-->
<!-- <artifactId>fastjson</artifactId>-->
<!-- <groupId>com.alibaba</groupId>-->
<!-- </exclusion>-->
<!-- <exclusion>-->
<!-- <artifactId>guava</artifactId>-->
<!-- <groupId>com.google.guava</groupId>-->
<!-- </exclusion>-->
<!-- </exclusions>-->
</dependency>
<!--服务配置-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<!-- <version>2.2.0</version>-->
<!-- <exclusions>-->
<!-- <exclusion>-->
<!-- <groupId>com.alibaba.nacos</groupId>-->
@ -354,10 +355,10 @@
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.aliyun</groupId>-->
<!-- <artifactId>aliyun-java-sdk-dysmsapi</artifactId>-->
<!-- </dependency>-->
<dependency>
<groupId>com.aliyun.oss</groupId>

@ -1,10 +1,12 @@
package com.huoran.common.entity;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
@ -21,6 +23,7 @@ public class LcJudgmentPoint implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "流程类判分点主键")
@TableId(value = "lc_id", type = IdType.AUTO)
private Integer lcId;
@ApiModelProperty(value = "流程类判分点名称")
@ -33,6 +36,7 @@ public class LcJudgmentPoint implements Serializable {
private String projectId;
@ApiModelProperty(value = "系统id")
@NotNull(message = "系统id不能为空")
private Integer systemId;
@ApiModelProperty(value = "账号id")
@ -42,12 +46,15 @@ public class LcJudgmentPoint implements Serializable {
private Integer isOpen;
@ApiModelProperty(value = "是否删除(0未删除 1已删除 默认0)")
@TableLogic(value = "0",delval = "1")
private Integer isDel;
@ApiModelProperty(value = "创建时间")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "更新时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;

@ -18,6 +18,4 @@ public class ScoreDetails implements Serializable {
@ApiModelProperty(value = "得分详情")
private List<ScoreInfo> scoreInfos;
@ApiModelProperty(value = "总得分")
private double scores;
}

@ -0,0 +1,14 @@
#server.port=9950
#
#spring.application.name=exam
#spring.cloud.nacos.config.namespace=huorantech-microservice-configuration-namespace
#spring.cloud.nacos.config.server-addr=127.0.0.1:8848
##spring.cloud.nacos.config.server-addr=192.168.0.36:8848
##spring.cloud.nacos.config.username=huorannacoskey
##spring.cloud.nacos.config.password=huorannacosvalue
##spring.cloud.nacos.config.contextPath=/nacos
#
#
#spring.config.additional-location=classpath:/application-common.properties
#
#

@ -125,75 +125,28 @@ public class SandTableCacheRecordController {
@ApiOperation(value = "沙盘提交实验")
@PostMapping("/submit")
public R submit(@RequestBody @Valid SubmitDTO submitDTO, HttpServletRequest request) {
String accountId = TokenUtils.getIdByJwtToken(request);
Integer schoolId = TokenUtils.getSchoolIdByJwtToken(request); submitDTO.setSchoolId(schoolId);
submitDTO.setAccountId(Integer.valueOf(accountId));
//删除原有的内置数据
UpdateWrapper<BankProducts> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("is_del", DelConstant.IS_DEL);
updateWrapper.eq("school_id", schoolId);
updateWrapper.eq("account_id", accountId);
updateWrapper.eq("project_id", submitDTO.getProjectId());
updateWrapper.eq("checkpoint_id", submitDTO.getCheckpointId());
updateWrapper.eq("is_built_in", 1);
updateWrapper.eq("is_del", DelConstant.NOT_DEL);
service.update(new BankProducts(), updateWrapper);
//新增内置数据
//builtInData(submitDTO.getProjectId(),submitDTO.getCheckpointId(),Integer.valueOf(accountId),schoolId);
int permissions = 0;
RemoveProductsReq removeProductsReq = new RemoveProductsReq();
removeProductsReq.setProjectId(submitDTO.getProjectId());
removeProductsReq.setAccountId(Integer.valueOf(accountId));
removeProductsReq.setSchoolId(schoolId);
if (submitDTO.getAssessmentId() != null) {
removeProductsReq.setAssessmentId(submitDTO.getAssessmentId());
permissions = 1;
}
if (submitDTO.getCompetitionId() != null) {
removeProductsReq.setCompetitionId(submitDTO.getCompetitionId());
permissions = 2;
}
//提交实验后删除对应的产品信息
//删除银行产品
boolean delBankProducts = service.deleteByMatchIdAndExamIdAndExerciseId(removeProductsReq);
// 待完善删除保险产品
boolean delInsuranceProducts = insuranceProductsService.removeInsuranceProducts(removeProductsReq);
// 待完善删除基金产品
boolean delFundProduct = fundProductsService.removeProducts(removeProductsReq);
//删除项目所有策略数据
strategyService.removeStrategy(removeProductsReq);
//用户开始时间
removeStartTime(permissions, accountId, submitDTO.getProjectId());
public R submit(@RequestBody @Valid SubmitDTO submitDTO) {
submitDTO.setSchoolId(TokenUtils.getSchoolId());
submitDTO.setAccountId(Integer.valueOf(TokenUtils.getAccountId()));
return service.submit(submitDTO);
}
public void removeProjectIdAndCidKey(RemoveProductsReq removeProductsReq) {
// 定义并构建键
String projectIdKey = "sandTableCache:projectId=" + submitDTO.getProjectId() + "+accountId=" + submitDTO.getAccountId();
if (submitDTO.getAssessmentId() != null) {
projectIdKey += "+assessmentId=" + submitDTO.getAssessmentId();
String projectIdKey = "sandTableCache:projectId=" + removeProductsReq.getProjectId() + "+accountId=" + removeProductsReq.getAccountId();
if (removeProductsReq.getAssessmentId() != null) {
projectIdKey += "+assessmentId=" + removeProductsReq.getAssessmentId();
}
if (submitDTO.getCompetitionId() != null) {
projectIdKey += "+competitionId=" + submitDTO.getCompetitionId();
if (removeProductsReq.getCompetitionId() != null) {
projectIdKey += "+competitionId=" + removeProductsReq.getCompetitionId();
}
String cidkey = "sandTableCache:cid=" + submitDTO.getCurriculumId() + "+accountId=" + submitDTO.getAccountId();
String cidkey = "sandTableCache:cid=" + removeProductsReq.getCid() + "+accountId=" + removeProductsReq.getAccountId();
// 删除对应的 Redis 键
redisTemplate.delete(projectIdKey);
redisTemplate.delete(cidkey);
sandTableClient.builtInData(removeProductsReq.getProjectId(), removeProductsReq.getCid(), Integer.valueOf(accountId),schoolId);
return service.submit(submitDTO);
}
public void removeStartTime(Integer permissions, String accountId, Integer projectId) {
@ -312,8 +265,21 @@ public class SandTableCacheRecordController {
@PostMapping("deleteOperationData")
public R deleteOperationData(@RequestBody RemoveProductsReq removeProductsReq, HttpServletRequest request) {
String accountId = TokenUtils.getIdByJwtToken(request);
Integer schoolId = TokenUtils.getSchoolIdByJwtToken(request); removeProductsReq.setAccountId(Integer.valueOf(accountId));
Integer schoolId = TokenUtils.getSchoolIdByJwtToken(request);
removeProductsReq.setAccountId(Integer.valueOf(accountId));
removeProductsReq.setSchoolId(schoolId);
//删除原有的内置数据
UpdateWrapper<BankProducts> updateWrapper = new UpdateWrapper<>();
updateWrapper.set("is_del", DelConstant.IS_DEL);
updateWrapper.eq("school_id", schoolId);
updateWrapper.eq("account_id", accountId);
updateWrapper.eq("project_id", removeProductsReq.getProjectId());
updateWrapper.eq("checkpoint_id", removeProductsReq.getCheckpointId());
updateWrapper.eq("is_built_in", 1);
updateWrapper.eq("is_del", DelConstant.NOT_DEL);
service.update(new BankProducts(), updateWrapper);
//删除银行产品
boolean delBankProducts = service.deleteByMatchIdAndExamIdAndExerciseId(removeProductsReq);
@ -339,25 +305,22 @@ public class SandTableCacheRecordController {
removeProductsReq.getCompetitionId());
}
// 定义并构建键
String projectIdKey = "sandTableCache:projectId=" + removeProductsReq.getProjectId() + "+accountId=" + accountId;
Integer permissions = 0;
int permissions = 0;
if (removeProductsReq.getAssessmentId() != null) {
projectIdKey += "+assessmentId=" + removeProductsReq.getAssessmentId();
permissions = 1;
}
if (removeProductsReq.getCompetitionId() != null) {
projectIdKey += "+competitionId=" + removeProductsReq.getCompetitionId();
permissions = 2;
}
String cidkey = "sandTableCache:cid=" + removeProductsReq.getCid() + "+accountId=" + removeProductsReq.getAccountId();
// 删除对应的 Redis 键
redisTemplate.delete(projectIdKey);
redisTemplate.delete(cidkey);
service.deleteCache(accountId);
//0、练习 1、考核 2、竞赛
removeStartTime(permissions, removeProductsReq.getAccountId(), removeProductsReq.getProjectId());
removeProjectIdAndCidKey(removeProductsReq);
//新增内置数据
// builtInData(submitDTO.getProjectId(),submitDTO.getCheckpointId(),Integer.valueOf(accountId),schoolId);
sandTableClient.builtInData(removeProductsReq.getProjectId(), removeProductsReq.getCid(), Integer.valueOf(accountId),schoolId);

@ -24,7 +24,6 @@ import com.huoran.financial_product.entity.vo.CacheVo;
import com.huoran.financial_product.mapper.*;
import com.huoran.financial_product.service.BankProductsService;
import com.huoran.financial_product.util.ProductElementProcessingTools;
import feign.FeignException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -516,95 +515,73 @@ public class BankProductsServiceImpl extends ServiceImpl<BankProductsMapper, Ban
public R submit(SubmitDTO submitDTO) {
Integer projectId = submitDTO.getProjectId();
Integer accountId = submitDTO.getAccountId();
List<ScoreInfo> scoreInfos = new ArrayList<>();
List<ScoreInfo> scoreInfos;
HashMap<String, Object> retMap = new HashMap<>();
double scores = 0.0;
// 获取项目下所有关卡的id
List<Integer> customsPassIds = mapper.getsTheLevelBoundToTheProject(projectId);
List<String> userOperationRecordCache = new ArrayList<>();
// 获取所有关卡的用户操作记录缓存key
for (Integer customsPassId : customsPassIds) {
StringBuilder cacheKey = buildCacheKey(accountId, submitDTO.getSchoolId(), projectId, customsPassId, submitDTO.getAssessmentId(), submitDTO.getCompetitionId());
userOperationRecordCache.add(cacheKey.toString());
}
//获取所有关卡操作记录
List<LcJudgmentRuleReq> ruleReqs = new ArrayList<>();
for (String cacheKey : userOperationRecordCache) {
// 查看缓存
HashMap<String, List<LcJudgmentRuleReq>> listHashMap = (HashMap<String, List<LcJudgmentRuleReq>>) CacheUtil.get(cacheKey);
if (listHashMap != null) {
// 防止缓存返回null,避免空指针异常
for (Map.Entry<String, List<LcJudgmentRuleReq>> entry : listHashMap.entrySet()) {
ruleReqs.addAll(entry.getValue());
List<Integer> levelIds = mapper.getsTheLevelBoundToTheProject(projectId);
// 获取所有关卡的用户操作记录缓存 key
List<String> operationRecordCacheKeys = new ArrayList<>();
for (Integer levelId : levelIds) {
StringBuilder cacheKey = buildCacheKey(accountId, submitDTO.getSchoolId(), projectId, levelId, submitDTO.getAssessmentId(), submitDTO.getCompetitionId());
operationRecordCacheKeys.add(cacheKey.toString());
}
// 获取所有关卡操作记录
List<LcJudgmentRuleReq> ruleRequests = new ArrayList<>();
for (String cacheKey : operationRecordCacheKeys) {
HashMap<String, List<LcJudgmentRuleReq>> cachedListMap = (HashMap<String, List<LcJudgmentRuleReq>>) CacheUtil.get(cacheKey);
if (cachedListMap != null) {
for (Map.Entry<String, List<LcJudgmentRuleReq>> entry : cachedListMap.entrySet()) {
if (entry.getValue() != null) {
ruleRequests.addAll(entry.getValue());
}
}
}
}
CalculateScoreParameters calculateScoreParameters = new CalculateScoreParameters();
calculateScoreParameters.setOperationRules(ruleReqs);
calculateScoreParameters.setOperationRules(ruleRequests);
calculateScoreParameters.setProjectId(projectId);
calculateScoreParameters.setLcIds(submitDTO.getLcId());
try {
ScoreDetails scoreDetails = judgmentPointClient.scoreAndReturnScoreDetails(calculateScoreParameters);
if (ObjectUtils.isEmpty(scoreDetails)|| scoreDetails.getScoreInfos().size()==0) {
if (ObjectUtils.isEmpty(scoreDetails) || scoreDetails.getScoreInfos().isEmpty()) {
throw new CustomException(ExceptionEnum.ADD_USER_SCORE_FAIL);
}
scoreInfos = scoreDetails.getScoreInfos();
scores = scoreDetails.getScores();
// 继续处理 scoreDetails
System.out.println("Score details: " + scoreDetails);
} catch (FeignException e) {
// 处理 Feign 异常
} catch (RuntimeException e) {
throw new CustomException(ExceptionEnum.ADD_USER_SCORE_FAIL);
}
// if (!ruleReqs.isEmpty()) {
//
// //判分点计算方法,并存储每个判分点分数以及计算总分
// for (Integer lcId : submitDTO.getLcId()) {
//
// //MD5生成标识 每个判分点不同
// String flag = MD5.encrypt(accountId + lcId + System.currentTimeMillis() + "");
//
// //判断单个判分点对错
// boolean calculate = judgmentPointClient.calculate(lcId, flag, ruleReqs);
//
// //获取项目管理判分点中间表的分数
// Double judgmentScore = occupationlabClient.getJudgmentScore(projectId, lcId);
// if (ObjectUtils.isEmpty(judgmentScore)) {
// throw new CustomException(ExceptionEnum.SELECT_JUDGMENT_SCORE_FAIL);
// }
// Double questionScore = 0.0;
// if (calculate) {
// questionScore = judgmentScore;
// }
// scoreInfos.add(new ScoreInfo(lcId, questionScore, calculate, judgmentScore, flag));
// if (calculate) {
// scores += judgmentScore;
// }
// }
// }
// 保留一位小数并重新赋值给scores
scores = Math.round(scores * 10.0) / 10.0;
double scores = scoreInfos.stream()
.filter(ScoreInfo::getCalculate)
.mapToDouble(ScoreInfo::getJudgmentScore)
.sum();
long time = ((submitDTO.getSubmitTime().getTime() - submitDTO.getStartTime().getTime()) / 1000 / 60);
//保存实验报告表
ExperimentalReport report = new ExperimentalReport().
setProjectId(projectId).setScore(scores).setAccountId(accountId).
setCurriculumId(submitDTO.getCurriculumId()).setPurpose(submitDTO.getPurpose()).
setProjectName(submitDTO.getProjectName()).setClassId(submitDTO.getClassId()).
setStartTime(submitDTO.getStartTime()).setSubmitTime(submitDTO.getSubmitTime()).
setEndTime(submitDTO.getEndTime()).setSchoolId(submitDTO.getSchoolId()).
setData(submitDTO.getData()).setMallId(submitDTO.getMallId());
if (time == 0) {
time = 1;
time = 1; // 设置默认值为 1
}
report.setTimeSum(Long.valueOf(time).intValue());
//保存实验报告表
ExperimentalReport report = new ExperimentalReport()
.setProjectId(projectId)
.setScore(scores)
.setAccountId(accountId)
.setCurriculumId(submitDTO.getCurriculumId())
.setPurpose(submitDTO.getPurpose())
.setProjectName(submitDTO.getProjectName())
.setClassId(submitDTO.getClassId())
.setStartTime(submitDTO.getStartTime())
.setSubmitTime(submitDTO.getSubmitTime())
.setEndTime(submitDTO.getEndTime())
.setSchoolId(submitDTO.getSchoolId())
.setData(submitDTO.getData())
.setMallId(submitDTO.getMallId())
.setTimeSum((int) time); // 直接设置 time 的值
//考核id可为空 --为空为练习
if (!ObjectUtils.isEmpty(submitDTO.getAssessmentId())) {
@ -623,10 +600,8 @@ public class BankProductsServiceImpl extends ServiceImpl<BankProductsMapper, Ban
}
Integer reportId = occupationlabClient.addExperimentalReport(report);
if (ObjectUtils.isEmpty(reportId) || reportId <= 0) {
//保存失败 操作回滚
throw new CustomException(ExceptionEnum.ADD_EXPERIMENTAL_REPORT_FAIL);
}
System.out.println("reportId: " + reportId);
List<UserScore> userScores = new ArrayList<>();
for (ScoreInfo scoreInfo : scoreInfos) {
@ -641,21 +616,38 @@ public class BankProductsServiceImpl extends ServiceImpl<BankProductsMapper, Ban
userScore.setTimeSum(submitDTO.getTimeSum());
userScore.setSubmitTime(submitDTO.getSubmitTime());
userScore.setTeamId(submitDTO.getTeamId());
//判分正确 错误默认值为0
// 判分正确 错误默认值为 0
if (scoreInfo.getCalculate()) {
userScore.setScore(scoreInfo.getJudgmentScore());
userScore.setIsCorrect(1);
}
userScores.add(userScore);
}
//保存用户分数记录
// 保存用户分数记录
boolean batchAddUserScore = occupationlabClient.batchAddUserScore(userScores);
System.out.println("batchAddUserScore: " + batchAddUserScore);
if (!batchAddUserScore) {
//保存失败 操作回滚
// 保存失败 操作回滚
throw new CustomException(ExceptionEnum.ADD_USER_SCORE_FAIL);
}
//删除缓存
this.deleteCache(accountId.toString());
// 创建一个 CompletableFuture 用于保存实验报告
// CompletableFuture<Integer> saveReportFuture = CompletableFuture.supplyAsync(() -> {
//
// if (ObjectUtils.isEmpty(reportId) || reportId <= 0) {
// // 保存失败 操作回滚
// throw new CustomException(ExceptionEnum.ADD_EXPERIMENTAL_REPORT_FAIL);
// }
// return reportId;
// });
// 当保存实验报告完成后,异步保存用户分数记录
// List<ScoreInfo> finalScoreInfos = scoreInfos;
// CompletableFuture<Void> saveScoresFuture = saveReportFuture.thenAcceptAsync(reportId -> {
//
// });
// 等待所有异步操作完成
// CompletableFuture.allOf(saveReportFuture, saveScoresFuture).join();
retMap.put("scoreInfo", scoreInfos);
retMap.put("totalScore", scores);

@ -0,0 +1,34 @@
#spring.application.name=product
## 服务端口
#server.port=9110
#server.max-http-header-size=104857600
#
##addr
#spring.cloud.nacos.config.server-addr=127.0.0.1:8848
##spring.cloud.nacos.config.server-addr=192.168.0.36:8848
##namespace
#spring.cloud.nacos.config.namespace=huorantech-microservice-configuration-namespace
#
#spring.config.additional-location=classpath:/application-common.properties
#
#feign.client.config.default.connectTimeout=100000
#feign.client.config.default.readTimeout=200000
#feign.client.config.default.logger-level=BASIC
#
#
#feign.httpclient.enabled=true
#feign.httpclient.max-connections=200
#feign.httpclient.max-connections-per-route=50
#feign.compression.request.enabled=false
#feign.compression.response.enabled=false
#eureka.client.healthcheck.enabled=true
#
#feign.hystrix.enabled=true
#hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=150000
##指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
#ribbon.ReadTimeout=500000
##指的是建立连接后从服务器读取到可用资源所用的时间
#ribbon.ConnectTimeout=500000
#
#
#

@ -1,7 +1,7 @@
spring.application.name=product
# 服务端口
server.port=9110
server.max-http-header-size=10485760
server.max-http-header-size=104857600
#addr
spring.cloud.nacos.config.server-addr=127.0.0.1:8848
@ -11,8 +11,8 @@ spring.cloud.nacos.config.namespace=huorantech-microservice-configuration-namesp
spring.config.additional-location=classpath:/application-common.properties
feign.client.config.default.connectTimeout=10000
feign.client.config.default.readTimeout=20000
feign.client.config.default.connectTimeout=100000
feign.client.config.default.readTimeout=200000
feign.client.config.default.logger-level=BASIC
@ -21,11 +21,14 @@ feign.httpclient.max-connections=200
feign.httpclient.max-connections-per-route=50
feign.compression.request.enabled=false
feign.compression.response.enabled=false
#eureka.client.healthcheck.enabled=true
feign.hystrix.enabled=true
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=15000
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=150000
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
ribbon.ReadTimeout=500000
#指的是建立连接后从服务器读取到可用资源所用的时间
ribbon.ConnectTimeout=500000

@ -9,4 +9,10 @@ spring.cloud.nacos.config.namespace=huorantech-microservice-configuration-namesp
spring.config.additional-location=classpath:/application-common.properties
feign.client.config.default.connectTimeout=10000
feign.client.config.default.readTimeout=20000
feign.client.config.default.logger-level=BASIC
feign.client.config.default.logger-level=BASIC
# 全局关闭Hystrix超时,对所有微服务有效
hystrix.command.default.execution.timeout.enabled=false
# 全局设置超时时间为60秒
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=60000

@ -25,5 +25,5 @@ ribbon:
ConnectTimeout: 60000
MaxAutoRetries: 3
MaxAutoRetriesNextServer: 3
# eureka:
# enabled: true
eureka:
enabled: true

@ -23,6 +23,12 @@
</properties>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.11.1</version>
</dependency>
<!--多数据源配置-->
<dependency>
<groupId>com.baomidou</groupId>
@ -33,6 +39,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
<version>3.1.4</version>
</dependency>
<!-- 公共包 将公共依赖放在公共包下 只需要引入一个即可 -->
<dependency>

@ -0,0 +1,49 @@
package com.huoran.judgment_point.config;
import com.huoran.common.entity.LcJudgmentPoint;
import org.apache.commons.pool2.BasePooledObjectFactory;
import org.apache.commons.pool2.PooledObject;
import org.apache.commons.pool2.impl.DefaultPooledObject;
import org.apache.commons.pool2.impl.GenericObjectPool;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import java.util.ArrayList;
import java.util.List;
public class ObjectPoolFactory {
private static GenericObjectPool<List<LcJudgmentPoint>> listPool;
static {
// 配置对象池
GenericObjectPoolConfig<List<LcJudgmentPoint>> listPoolConfig = new GenericObjectPoolConfig<>();
listPoolConfig.setMaxTotal(1000);
listPoolConfig.setMaxIdle(80);
listPoolConfig.setMinIdle(2);
listPool = new GenericObjectPool<>(new ListFactory(), listPoolConfig);
}
public static GenericObjectPool<List<LcJudgmentPoint>> getListPool() {
return listPool;
}
// List 工厂类
private static class ListFactory extends BasePooledObjectFactory<List<LcJudgmentPoint>> {
@Override
public List<LcJudgmentPoint> create() {
return new ArrayList<>();
}
@Override
public PooledObject<List<LcJudgmentPoint>> wrap(List<LcJudgmentPoint> list) {
return new DefaultPooledObject<>(list);
}
@Override
public void passivateObject(PooledObject<List<LcJudgmentPoint>> p) {
p.getObject().clear(); // 清空 List
}
}
}

@ -4,11 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.huoran.common.aop.annotation.LogAnnotation;
import com.huoran.common.entity.CalculateScoreParameters;
import com.huoran.common.entity.LcJudgmentPoint;
import com.huoran.common.entity.LcJudgmentRuleReq;
import com.huoran.common.entity.ScoreDetails;
import com.huoran.common.response.R;
import com.huoran.common.utils.TokenUtils;
import com.huoran.judgment_point.entity.LcJudgmentPoint;
import com.huoran.judgment_point.config.ObjectPoolFactory;
import com.huoran.judgment_point.entity.LcJudgmentRule;
import com.huoran.judgment_point.entity.req.CopyEditorLcJudgmentPointReq;
import com.huoran.judgment_point.entity.req.CopyLcJudgmentPointReq;
@ -19,12 +20,14 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.apache.commons.pool2.impl.GenericObjectPool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
@ -44,6 +47,13 @@ public class LcJudgmentPointController {
@Autowired
private LcJudgmentPointService lcJudgmentPointService;
private final GenericObjectPool<List<LcJudgmentPoint>> listPool;
public LcJudgmentPointController(LcJudgmentPointService lcJudgmentPointService) {
this.lcJudgmentPointService = lcJudgmentPointService;
this.listPool = ObjectPoolFactory.getListPool();
}
@ApiOperation(value = "获取流程类判分点列表")
@PostMapping("queryAllJudgmentPoint")
public R queryAllJudgmentPoint(@RequestBody @Valid LcJudgmentPointReq lcJudgmentPointReq, HttpServletRequest request) {
@ -67,12 +77,43 @@ public class LcJudgmentPointController {
@ApiOperation("根据判分点id查询判分点信息(不带规则 feign远程)")
@PostMapping("queryLcJudgmentByLcIds")
public List<LcJudgmentPoint> queryLcJudgmentByLcIds(@RequestBody List<Integer> lcIds, @RequestParam(value = "isOpen", required = false) Integer isOpen) {
QueryWrapper<LcJudgmentPoint> queryWrapper = new QueryWrapper<>();
queryWrapper.in("lc_id", lcIds);
if (isOpen != null) {
queryWrapper.eq("is_open", isOpen);
List<LcJudgmentPoint> resultList = null;
try {
// 从对象池中获取 QueryWrapper 和 List
resultList = listPool.borrowObject();
// 设置查询条件
queryWrapper.in("lc_id", lcIds);
if (isOpen != null) {
queryWrapper.eq("is_open", isOpen);
}
// 执行查询
List<LcJudgmentPoint> queryResult = lcJudgmentPointService.list(queryWrapper);
resultList.addAll(queryResult);
// 返回结果
return new ArrayList<>(resultList); // 返回一个新的列表,避免直接返回对象池中的对象
} catch (Exception e) {
throw new RuntimeException("Failed to query LcJudgmentPoint by lcIds", e);
} finally {
// 归还对象到对象池
if (resultList != null) {
resultList.clear(); // 清空列表
listPool.returnObject(resultList);
}
}
return lcJudgmentPointService.list(queryWrapper);
// QueryWrapper<LcJudgmentPoint> queryWrapper = new QueryWrapper<>();
// queryWrapper.in("lc_id", lcIds);
// if (isOpen != null) {
// queryWrapper.eq("is_open", isOpen);
// }
// return lcJudgmentPointService.list(queryWrapper);
}
@ApiOperation(value = "获取判分点详细信息")

@ -1,69 +0,0 @@
package com.huoran.judgment_point.entity;
import com.baomidou.mybatisplus.annotation.*;
import java.util.Date;
import java.io.Serializable;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* <p>
* 流程类判分点
* </p>
*
* @author Mr.JK
* @since 2021-08-13
*/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="LcJudgmentPoint对象", description="流程类判分点")
public class LcJudgmentPoint implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "流程类判分点主键")
@TableId(value = "lc_id", type = IdType.AUTO)
private Integer lcId;
@ApiModelProperty(value = "流程类判分点名称")
private String name;
@ApiModelProperty(value = "实验要求")
private String experimentalRequirements;
@ApiModelProperty(value = "项目id")
private String projectId;
@ApiModelProperty(value = "系统id")
@NotNull(message = "系统id不能为空")
private Integer systemId;
@ApiModelProperty(value = "账号id")
private Integer accountId;
@ApiModelProperty(value = "是否开启(0开启 1未开启 默认0)")
private Integer isOpen;
@ApiModelProperty(value = "是否删除(0未删除 1已删除 默认0)")
@TableLogic(value = "0",delval = "1")
private Integer isDel;
@ApiModelProperty(value = "创建时间")
@TableField(fill = FieldFill.INSERT)
private Date createTime;
@ApiModelProperty(value = "更新时间")
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}

@ -1,6 +1,6 @@
package com.huoran.judgment_point.entity.vo;
import com.huoran.judgment_point.entity.LcJudgmentPoint;
import com.huoran.common.entity.LcJudgmentPoint;
import com.huoran.judgment_point.entity.LcJudgmentRule;
import lombok.Data;
import lombok.EqualsAndHashCode;

@ -1,7 +1,7 @@
package com.huoran.judgment_point.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.huoran.judgment_point.entity.LcJudgmentPoint;
import com.huoran.common.entity.LcJudgmentPoint;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.huoran.judgment_point.mapper.LcJudgmentPointMapper">
<select id="verifyThatTheLevelExists" resultType="com.huoran.judgment_point.entity.LcJudgmentPoint">
<select id="verifyThatTheLevelExists" resultType="com.huoran.common.entity.LcJudgmentPoint">
SELECT
p.*,SUBSTRING_INDEX( SUBSTRING_INDEX( r.operation_ids, ',', 2 ), ',', - 1 ) AS checkpointId,
r.operation_ids,c.is_del as checkpointDel
@ -20,7 +20,7 @@
p.lc_id
</select>
<select id="verifyThatTheCheckpointIsEnabled"
resultType="com.huoran.judgment_point.entity.LcJudgmentPoint">
resultType="com.huoran.common.entity.LcJudgmentPoint">
SELECT
p.*,SUBSTRING_INDEX( SUBSTRING_INDEX( r.operation_ids, ',', 2 ), ',', - 1 ) AS checkpointId,

@ -3,10 +3,10 @@ package com.huoran.judgment_point.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huoran.common.entity.CalculateScoreParameters;
import com.huoran.common.entity.LcJudgmentPoint;
import com.huoran.common.entity.LcJudgmentRuleReq;
import com.huoran.common.entity.ScoreDetails;
import com.huoran.common.response.R;
import com.huoran.judgment_point.entity.LcJudgmentPoint;
import com.huoran.judgment_point.entity.req.CopyEditorLcJudgmentPointReq;
import com.huoran.judgment_point.entity.req.CopyLcJudgmentPointReq;
import com.huoran.judgment_point.entity.req.LcJudgmentPointReq;

@ -6,8 +6,10 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huoran.api.NakadaiClient;
import com.huoran.common.constant.DelConstant;
import com.huoran.common.entity.LcJudgmentPoint;
import com.huoran.common.entity.ProjectJudgmentVo;
import com.huoran.common.entity.PyAttributesReq;
import com.huoran.common.entity.RunCode;
@ -17,14 +19,12 @@ import com.huoran.common.exception.ExceptionEnum;
import com.huoran.common.response.R;
import com.huoran.judgment_point.entity.BcJudgmentPoint;
import com.huoran.judgment_point.entity.BcJudgmentRule;
import com.huoran.judgment_point.entity.LcJudgmentPoint;
import com.huoran.judgment_point.entity.req.BcJudgmentPointReq;
import com.huoran.judgment_point.entity.vo.BcJudgmentPointVo;
import com.huoran.judgment_point.mapper.BcJudgmentPointMapper;
import com.huoran.judgment_point.mapper.BcJudgmentRuleMapper;
import com.huoran.judgment_point.mapper.LcJudgmentPointMapper;
import com.huoran.judgment_point.service.BcJudgmentPointService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huoran.judgment_point.utils.ArithmeticUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

@ -12,7 +12,6 @@ import com.huoran.common.exception.ExceptionEnum;
import com.huoran.common.response.R;
import com.huoran.common.utils.MD5;
import com.huoran.judgment_point.constant.RuleConstant;
import com.huoran.judgment_point.entity.LcJudgmentPoint;
import com.huoran.judgment_point.entity.*;
import com.huoran.judgment_point.entity.req.CopyEditorLcJudgmentPointReq;
import com.huoran.judgment_point.entity.req.CopyLcJudgmentPointReq;
@ -393,12 +392,10 @@ public class LcJudgmentPointServiceImpl extends ServiceImpl<LcJudgmentPointMappe
List<LcJudgmentRule> judgmentRules = lcJudgmentRuleMapper.selectList(lcJudgmentRuleQueryWrapper);
List<ProjectJudgment> scoreList = occupationlabClient.getScoreListByProjectId(projectId, lcIds);
// 使用 Stream API 进行分组
// 规则进行分组
Map<Integer, List<LcJudgmentRule>> ruleMap = judgmentRules.stream()
.collect(Collectors.groupingBy(LcJudgmentRule::getLcId));
List<ScoreInfo> scoreInfos = new ArrayList<>();
boolean logicRight = false;
double scores = 0.0;
//查询所有判分点中判分规则选择题型的对应题目id(subjectId)
Set<String> subjectIds = judgmentRules.stream()
@ -407,7 +404,6 @@ public class LcJudgmentPointServiceImpl extends ServiceImpl<LcJudgmentPointMappe
.collect(Collectors.toSet());
//根据题目id查询所有对应选项名称
List<StItem> itemNames = stItemMapper.selectItemOptionsBySubjectIds(subjectIds);
List<LcRuleRecord> lcRuleRecordList = new ArrayList<>();
@ -455,14 +451,19 @@ public class LcJudgmentPointServiceImpl extends ServiceImpl<LcJudgmentPointMappe
scoreInfos.add(new ScoreInfo(lcId, 0.0, false, judgmentScore, flag));
}else {
HashMap<String, LcJudgmentRuleReq> operationMap = new HashMap<>();
//用户操作规则校验
if (!ObjectUtils.isEmpty(operationRules)) {
//优化 用户操作id串去重,且查询时间为O(1)
operationRules.forEach(operation -> {
operationMap.put(operation.getOperationIds(), operation);
});
}
// HashMap<String, LcJudgmentRuleReq> operationMap = new HashMap<>();
// //优化 用户操作id串去重,且查询时间为O(1)
// operationRules.forEach(operation -> {
// operationMap.put(operation.getOperationIds(), operation);
// });
// 假设 operationRules 是一个 Stream 或 Collection
Map<String, LcJudgmentRuleReq> operationMap = operationRules.stream()
.collect(Collectors.toMap(
LcJudgmentRuleReq::getOperationIds,
operation -> operation,
(existing, replacement) -> existing // 解决键冲突的情况
));
//存储不同规则之间的与或
ArrayList<Boolean> booleanList = new ArrayList<>();
@ -592,24 +593,20 @@ public class LcJudgmentPointServiceImpl extends ServiceImpl<LcJudgmentPointMappe
//添加操作记录
lcRuleRecordList.add(lcRuleRecord);
}
Double questionScore = 0.0;
// 逻辑运算 判断逻辑是否正确,正确则计分
boolean logicRight = ArithmeticUtil.logic(booleanList, logicList);
// 判断逻辑是否正确,正确则计分
if (logicRight) {
questionScore = judgmentScore;
scores += judgmentScore;
scoreInfos.add(new ScoreInfo(lcId, judgmentScore, true, judgmentScore, flag));
}else {
scoreInfos.add(new ScoreInfo(lcId, 0.0, false, judgmentScore, flag));
}
//逻辑运算
logicRight = ArithmeticUtil.logic(booleanList, logicList);
// 判断逻辑是否正确,正确则计分
scoreInfos.add(new ScoreInfo(lcId, questionScore, logicRight, judgmentScore, flag));
}
}
//批量插入
batchInsertRuleRecord(lcRuleRecordList);
scoreDetails.setScoreInfos(scoreInfos);
scoreDetails.setScores(scores);
return scoreDetails;
}

@ -0,0 +1,31 @@
#spring.application.name=judgment
## 服务端口
#server.port=9500
#server.max-http-header-size=1048576000
##addr
#spring.cloud.nacos.config.server-addr=127.0.0.1:8848
##spring.cloud.nacos.config.server-addr=192.168.0.36:8848
#
##namespace
#spring.cloud.nacos.config.namespace=huorantech-microservice-configuration-namespace
#
#spring.config.additional-location=classpath:/application-common.properties
#spring.cloud.inetutils.preferred-networks=192.168.0
#
#feign.client.config.default.connectTimeout=10000
#feign.client.config.default.readTimeout=20000
#feign.client.config.default.logger-level=BASIC
#feign.hystrix.enabled=true
#hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=150000
#
##指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
#ribbon.ReadTimeout=500000
##指的是建立连接后从服务器读取到可用资源所用的时间
#ribbon.ConnectTimeout=500000
#
#
#feign.httpclient.enabled=true
#feign.httpclient.max-connections=200
#feign.httpclient.max-connections-per-route=50
#feign.compression.request.enabled=false
#feign.compression.response.enabled=false

@ -10,7 +10,7 @@ spring.cloud.nacos.config.server-addr=127.0.0.1:8848
spring.cloud.nacos.config.namespace=huorantech-microservice-configuration-namespace
spring.config.additional-location=classpath:/application-common.properties
#spring.cloud.inetutils.preferred-networks=192.168.0
feign.client.config.default.connectTimeout=10000
feign.client.config.default.readTimeout=20000
@ -19,10 +19,13 @@ feign.hystrix.enabled=true
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=15000
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
ribbon.ReadTimeout=500000
ribbon.ReadTimeout=50000
#指的是建立连接后从服务器读取到可用资源所用的时间
ribbon.ConnectTimeout=500000
ribbon.ConnectTimeout=50000
#logging.level.com.alibaba.cloud.nacos.configdata=debug
##management.endpoint.health.show-details=always
#management.endpoints.web.exposure.include=*
feign.httpclient.enabled=true
feign.httpclient.max-connections=200

@ -1,35 +1,16 @@
package com.huoran.nakadai.controller;
import com.huoran.api.UserClient;
import com.huoran.common.utils.TokenUtils;
import io.swagger.annotations.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huoran.common.response.R;
import com.huoran.nakadai.entity.ProductTheme;
import com.huoran.nakadai.service.ProductThemeService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestParam;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import com.huoran.nakadai.service.ProductThemeService;
import com.huoran.nakadai.entity.ProductTheme;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
/**
* @描述控制类

@ -0,0 +1,13 @@
#spring.application.name=nakadai
## 服务端口
#server.port=9100
#
##addr
#spring.cloud.nacos.config.server-addr=127.0.0.1:8848
##spring.cloud.nacos.config.server-addr=192.168.0.36:8848
#
##namespace
#spring.cloud.nacos.config.namespace=huorantech-microservice-configuration-namespace
#
## application.properties
#spring.config.additional-location=classpath:/application-common.properties

@ -60,6 +60,9 @@ public class ExperimentalReportController {
if (experimentalReport.getAssessmentId()!=null && one!=null){
return 0;
}
if (experimentalReport.getScore() == null){
experimentalReport.setScore(0.0);
}
if (experimentalReportService.save(experimentalReport)) {
return experimentalReport.getReportId();
}

@ -0,0 +1,16 @@
#server.port=9400
#
#spring.application.name=occupationlab
#spring.cloud.nacos.config.namespace=huorantech-microservice-configuration-namespace
#spring.cloud.nacos.config.server-addr=127.0.0.1:8848
##spring.cloud.nacos.config.server-addr=192.168.0.36:8848
#
#spring.config.additional-location=classpath:/application-common.properties
#
#occupationlab.thread.core-size=20
#occupationlab.thread.keep-alive-time=10
#occupationlab.thread.max-size=200
#
#feign.client.config.default.connectTimeout=10000
#feign.client.config.default.readTimeout=20000
#

@ -11,6 +11,21 @@ occupationlab.thread.core-size=20
occupationlab.thread.keep-alive-time=10
occupationlab.thread.max-size=200
feign.client.config.default.connectTimeout=10000
feign.client.config.default.readTimeout=20000
feign.client.config.default.connectTimeout=100000
feign.client.config.default.readTimeout=200000
#feign.client.config.default.logger-level=BASIC
feign.httpclient.enabled=true
feign.httpclient.max-connections=200
feign.httpclient.max-connections-per-route=50
#feign.compression.request.enabled=false
#feign.compression.response.enabled=false
#feign.hystrix.enabled=true
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=150000
#指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间
ribbon.ReadTimeout=500000
#指的是建立连接后从服务器读取到可用资源所用的时间
ribbon.ConnectTimeout=500000

@ -48,7 +48,7 @@
<swagger-models.version>1.5.21</swagger-models.version>
<commons-io.version>2.6</commons-io.version>
<easyexcel-version>2.1.1</easyexcel-version>
<aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version>
<!-- <aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version>-->
<aliyun-sdk-oss.version>3.1.0</aliyun-sdk-oss.version>
<aliyun-java-sdk-vod.version>2.15.2</aliyun-java-sdk-vod.version>
<aliyun-sdk-vod-upload.version>1.4.14</aliyun-sdk-vod-upload.version>
@ -126,9 +126,41 @@
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${cloud-alibaba.version}</version>
<type>pom</type>
<exclusions>
<exclusion>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</exclusion>
</exclusions>
<scope>import</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-dependencies</artifactId>-->
<!-- <version>${spring.boot.version}</version>-->
<!-- <type>pom</type>-->
<!-- <scope>import</scope>-->
<!-- </dependency>-->
<!--Spring Cloud-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-dependencies</artifactId>-->
<!-- <version>Hoxton.RELEASE</version>-->
<!-- <type>pom</type>-->
<!-- <scope>import</scope>-->
<!-- </dependency>-->
<!-- &lt;!&ndash;Spring Cloud-alibaba&ndash;&gt;-->
<!-- <dependency>-->
<!-- <groupId>org.springframework.cloud</groupId>-->
<!-- <artifactId>spring-cloud-alibaba-dependencies</artifactId>-->
<!-- <version>${cloud-alibaba.version}</version>-->
<!-- <type>pom</type>-->
<!-- <scope>import</scope>-->
<!-- </dependency>-->
<!--Spring Cloud-->
<!-- <dependency>
<groupId>org.springframework.cloud</groupId>

@ -0,0 +1,14 @@
#spring.application.name=users
## 服务端口
#server.port=9300
#
#spring.config.additional-location=classpath:/application-common.properties
#
##addr
#spring.cloud.nacos.config.server-addr=127.0.0.1:8848
##spring.cloud.nacos.config.server-addr=192.168.0.36:8848
#
##namespace
#spring.cloud.nacos.config.namespace=huorantech-microservice-configuration-namespace
#
#
Loading…
Cancel
Save