From 68f5303a4c8edfdf90446d97852a6ce71167c13e Mon Sep 17 00:00:00 2001 From: winter <2436197699@qq.com> Date: Thu, 23 Nov 2023 11:39:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AF=B9=E8=AF=84=E4=BB=B7?= =?UTF-8?q?=E6=A0=91=E7=9A=84crud=E4=BB=A5=E5=8F=8A=E6=B5=8B=E8=AF=95bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 14 +- src/main/java/cn/teammodel/common/PK.java | 2 +- .../config/exception/ServiceException.java | 13 +- .../teammodel/config/knife/Knife4jConfig.java | 35 +++++ .../controller/EvaluationController.java | 36 ++++- .../cn/teammodel/model/dto/DeleteNodeDto.java | 16 +++ .../cn/teammodel/model/dto/InsertNodeDto.java | 21 +++ .../cn/teammodel/model/dto/UpdateNodeDto.java | 19 +++ .../model/entity/EvaluationTreeNode.java | 9 +- .../security/SecurityConfiguration.java | 12 +- .../security/utils/SecurityUtils.java | 6 +- .../teammodel/service/EvaluationService.java | 23 +++- .../service/impl/EvaluationServiceImpl.java | 129 ++++++++++++++++-- src/main/resources/application.yml | 10 ++ src/main/resources/libs/jjwt-0.9.1.jar | Bin 0 -> 117093 bytes .../TeamModelExtensionApplicationTests.java | 11 +- .../java/cn/teammodel/TestWithoutSpring.java | 13 +- 17 files changed, 327 insertions(+), 42 deletions(-) create mode 100644 src/main/java/cn/teammodel/config/knife/Knife4jConfig.java create mode 100644 src/main/java/cn/teammodel/model/dto/DeleteNodeDto.java create mode 100644 src/main/java/cn/teammodel/model/dto/InsertNodeDto.java create mode 100644 src/main/java/cn/teammodel/model/dto/UpdateNodeDto.java create mode 100644 src/main/resources/libs/jjwt-0.9.1.jar diff --git a/pom.xml b/pom.xml index 3952c49..bede74a 100644 --- a/pom.xml +++ b/pom.xml @@ -43,7 +43,12 @@ com.azure.spring spring-cloud-azure-starter - + + + com.github.xiaoymin + knife4j-spring-boot-starter + 3.0.3 + com.azure.spring spring-cloud-azure-starter-data-cosmos @@ -61,6 +66,13 @@ true + + + io.jsonwebtoken + jjwt + 0.9.1 + + org.springframework.boot spring-boot-starter-test diff --git a/src/main/java/cn/teammodel/common/PK.java b/src/main/java/cn/teammodel/common/PK.java index b269ee8..be88a68 100644 --- a/src/main/java/cn/teammodel/common/PK.java +++ b/src/main/java/cn/teammodel/common/PK.java @@ -8,6 +8,6 @@ import com.azure.cosmos.models.PartitionKey; * @create 2023-11-22 15:31 */ public interface PK { - PartitionKey PK_SCHOOL = new PartitionKey("School"); + PartitionKey PK_EVALUATION = new PartitionKey("Evaluation"); } diff --git a/src/main/java/cn/teammodel/config/exception/ServiceException.java b/src/main/java/cn/teammodel/config/exception/ServiceException.java index 1ac597c..d41050d 100644 --- a/src/main/java/cn/teammodel/config/exception/ServiceException.java +++ b/src/main/java/cn/teammodel/config/exception/ServiceException.java @@ -1,5 +1,7 @@ package cn.teammodel.config.exception; +import cn.teammodel.common.ErrorCode; + /** * 业务异常 * @@ -27,20 +29,21 @@ public final class ServiceException extends RuntimeException /** * 空构造方法,避免反序列化问题 */ - public ServiceException() - { - } + public ServiceException() {} public ServiceException(String message) { this.message = message; } - public ServiceException(String message, Integer code) - { + public ServiceException(Integer code, String message) { this.message = message; this.code = code; } + public ServiceException(ErrorCode errorCode) { + this.code = errorCode.getCode(); + this.message = errorCode.getMessage(); + } public String getDetailMessage() { diff --git a/src/main/java/cn/teammodel/config/knife/Knife4jConfig.java b/src/main/java/cn/teammodel/config/knife/Knife4jConfig.java new file mode 100644 index 0000000..d875269 --- /dev/null +++ b/src/main/java/cn/teammodel/config/knife/Knife4jConfig.java @@ -0,0 +1,35 @@ +package cn.teammodel.config.knife; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +/** + * Knife4j 接口文档配置
+ * https://doc.xiaominfo.com/knife4j/documentation/get_start.html + */ +@Configuration +@EnableSwagger2 +//@Profile({"dev", "test"}) +public class Knife4jConfig { + + @Bean + public Docket defaultApi2() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(new ApiInfoBuilder() + .title("五育评价接口文档") + .description("五育评价接口描述") + .version("1.0.1") + .build()) + .select() + // 指定 Controller 扫描包路径 + .apis(RequestHandlerSelectors.basePackage("cn.teammodel.controller")) + .paths(PathSelectors.any()) + .build(); + } +} \ No newline at end of file diff --git a/src/main/java/cn/teammodel/controller/EvaluationController.java b/src/main/java/cn/teammodel/controller/EvaluationController.java index af5a405..0b23be7 100644 --- a/src/main/java/cn/teammodel/controller/EvaluationController.java +++ b/src/main/java/cn/teammodel/controller/EvaluationController.java @@ -1,30 +1,54 @@ package cn.teammodel.controller; import cn.teammodel.common.R; +import cn.teammodel.model.dto.DeleteNodeDto; import cn.teammodel.model.dto.GetEvaluateTreeDto; -import cn.teammodel.model.entity.EvaluationTreeNode; +import cn.teammodel.model.dto.InsertNodeDto; +import cn.teammodel.model.dto.UpdateNodeDto; +import cn.teammodel.model.entity.Evaluation; import cn.teammodel.service.EvaluationService; +import io.swagger.annotations.ApiOperation; 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 javax.annotation.Resource; -import java.util.List; /** * @author winter * @create 2023-11-22 15:10 */ @RestController -@RequestMapping("/public/evaluate") +@RequestMapping("/appraise") public class EvaluationController { @Resource private EvaluationService evaluationService; @PostMapping("getTrees") - public R> getEvaluateTree(@RequestBody GetEvaluateTreeDto getEvaluateTreeDto) { - List tree = evaluationService.getTree(getEvaluateTreeDto); - return R.success(tree); + @ApiOperation(value = "获取评价树", notes = "获取评价树") + public R getEvaluateTree(@RequestBody GetEvaluateTreeDto getEvaluateTreeDto) { + Evaluation evaluation = evaluationService.getTree(getEvaluateTreeDto); + return R.success(evaluation); + } + + @PostMapping("insertNode") + @ApiOperation(value = "新增评价树的节点") + public R insertNode(@RequestBody InsertNodeDto insertNodeDto) { + Evaluation evaluation = evaluationService.insertNode(insertNodeDto); + return R.success(evaluation); + } + @PostMapping("updateNode") + @ApiOperation(value = "更新评价树的节点", notes = "传递更新后的节点,而不是局部更新的值") + public R updateTree(@RequestBody UpdateNodeDto updateNodeDto) { + Evaluation evaluation = evaluationService.updateNode(updateNodeDto); + return R.success(evaluation); + } + @PostMapping("deleteNode") + @ApiOperation(value = "删除评价树的节点") + public R deleteNode(@RequestBody DeleteNodeDto deleteNodeDto) { + // todo: 注意删除子节点 + Evaluation evaluation = evaluationService.deleteNode(deleteNodeDto); + return R.success(evaluation); } } diff --git a/src/main/java/cn/teammodel/model/dto/DeleteNodeDto.java b/src/main/java/cn/teammodel/model/dto/DeleteNodeDto.java new file mode 100644 index 0000000..e78301c --- /dev/null +++ b/src/main/java/cn/teammodel/model/dto/DeleteNodeDto.java @@ -0,0 +1,16 @@ +package cn.teammodel.model.dto; + +import lombok.Data; + +/** + * @author winter + * @create 2023-11-22 16:16 + */ +@Data +public class DeleteNodeDto { + // 检索需要,但是有 bug + String schoolId; + String periodId; + // todo: 判断空 + String id; +} diff --git a/src/main/java/cn/teammodel/model/dto/InsertNodeDto.java b/src/main/java/cn/teammodel/model/dto/InsertNodeDto.java new file mode 100644 index 0000000..98d3ece --- /dev/null +++ b/src/main/java/cn/teammodel/model/dto/InsertNodeDto.java @@ -0,0 +1,21 @@ +package cn.teammodel.model.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author winter + * @create 2023-11-22 16:16 + */ +@Data +public class InsertNodeDto { + // 检索需要,但是有 bug + String schoolId; + String periodId; + @ApiModelProperty(value = "父亲节点,不传则为根节点") + String pid; + String name; + String logo; + Integer order; + boolean isPraise; +} diff --git a/src/main/java/cn/teammodel/model/dto/UpdateNodeDto.java b/src/main/java/cn/teammodel/model/dto/UpdateNodeDto.java new file mode 100644 index 0000000..084a540 --- /dev/null +++ b/src/main/java/cn/teammodel/model/dto/UpdateNodeDto.java @@ -0,0 +1,19 @@ +package cn.teammodel.model.dto; + +import lombok.Data; + +/** + * @author winter + * @create 2023-11-22 16:16 + */ +@Data +public class UpdateNodeDto { + // 检索需要,但是有 bug + String schoolId; + String periodId; + String id; + String name; + String logo; + Integer order; + boolean isPraise; +} diff --git a/src/main/java/cn/teammodel/model/entity/EvaluationTreeNode.java b/src/main/java/cn/teammodel/model/entity/EvaluationTreeNode.java index 7539d96..6eaf02f 100644 --- a/src/main/java/cn/teammodel/model/entity/EvaluationTreeNode.java +++ b/src/main/java/cn/teammodel/model/entity/EvaluationTreeNode.java @@ -1,6 +1,6 @@ package cn.teammodel.model.entity; -import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Data; import java.util.List; @@ -15,7 +15,7 @@ public class EvaluationTreeNode { /** * 排序 */ - String order; + Integer order; /** * 分值 */ @@ -23,7 +23,8 @@ public class EvaluationTreeNode { /** * 是否表扬? 默认 true */ - boolean isPraise = true; - @JsonIgnore + @JsonProperty("isPraise") + boolean isPraise; + List children; } diff --git a/src/main/java/cn/teammodel/security/SecurityConfiguration.java b/src/main/java/cn/teammodel/security/SecurityConfiguration.java index 5e9a411..016e298 100644 --- a/src/main/java/cn/teammodel/security/SecurityConfiguration.java +++ b/src/main/java/cn/teammodel/security/SecurityConfiguration.java @@ -34,7 +34,17 @@ public class SecurityConfiguration { .and() .authorizeRequests(authorizeRequests -> authorizeRequests - .antMatchers("/public/**").permitAll() + .antMatchers("/public/**", + "/swagger-ui/", + "/swagger-resources/**", + "/**/v2/api-docs", + "/**/v3/api-docs", + "/**/*.html", + "/**/*.js", + "/**/*.css", + "/**/*.png", + "/**/*.map", + "/favicon.ico").permitAll() .anyRequest().authenticated() ) .oauth2ResourceServer(OAuth2ResourceServerConfigurer::jwt) // 启用 OIDC jwt filter diff --git a/src/main/java/cn/teammodel/security/utils/SecurityUtils.java b/src/main/java/cn/teammodel/security/utils/SecurityUtils.java index f41caf5..b3dcf5f 100644 --- a/src/main/java/cn/teammodel/security/utils/SecurityUtils.java +++ b/src/main/java/cn/teammodel/security/utils/SecurityUtils.java @@ -26,7 +26,7 @@ public class SecurityUtils } catch (Exception e) { - throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED.value()); + throw new ServiceException( HttpStatus.UNAUTHORIZED.value(), "获取用户ID异常"); } } @@ -42,7 +42,7 @@ public class SecurityUtils } catch (Exception e) { - throw new ServiceException("获取用户账户异常", HttpStatus.UNAUTHORIZED.value()); + throw new ServiceException(HttpStatus.UNAUTHORIZED.value(), "获取用户账户异常"); } } @@ -57,7 +57,7 @@ public class SecurityUtils } catch (Exception e) { - throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED.value()); + throw new ServiceException(HttpStatus.UNAUTHORIZED.value(), "获取用户信息异常"); } } diff --git a/src/main/java/cn/teammodel/service/EvaluationService.java b/src/main/java/cn/teammodel/service/EvaluationService.java index 8769380..4fb1bcd 100644 --- a/src/main/java/cn/teammodel/service/EvaluationService.java +++ b/src/main/java/cn/teammodel/service/EvaluationService.java @@ -1,6 +1,10 @@ package cn.teammodel.service; +import cn.teammodel.model.dto.DeleteNodeDto; import cn.teammodel.model.dto.GetEvaluateTreeDto; +import cn.teammodel.model.dto.InsertNodeDto; +import cn.teammodel.model.dto.UpdateNodeDto; +import cn.teammodel.model.entity.Evaluation; import cn.teammodel.model.entity.EvaluationTreeNode; import java.util.List; @@ -10,12 +14,12 @@ import java.util.List; * @create 2023-11-20 17:46 */ public interface EvaluationService { - List getTree(GetEvaluateTreeDto getEvaluateTreeDto); + Evaluation getTree(GetEvaluateTreeDto getEvaluateTreeDto); /** * 递归构建树 */ - List buildTree(List nodes); + Evaluation buildTree(Evaluation evaluation); /** * 递归扁平化树 @@ -27,4 +31,19 @@ public interface EvaluationService { * @description: */ void flattenTree(List trees, List nodes); + + /** + * 新增评价树节点 + */ + Evaluation insertNode(InsertNodeDto insertNodeDto); + + /** + * 更新评价树节点 + */ + Evaluation updateNode(UpdateNodeDto updateNodeDto); + + /** + * 删除评价树节点,同时删除其子节点 + */ + Evaluation deleteNode(DeleteNodeDto deleteNodeDto); } diff --git a/src/main/java/cn/teammodel/service/impl/EvaluationServiceImpl.java b/src/main/java/cn/teammodel/service/impl/EvaluationServiceImpl.java index 2f96eca..dfa21bc 100644 --- a/src/main/java/cn/teammodel/service/impl/EvaluationServiceImpl.java +++ b/src/main/java/cn/teammodel/service/impl/EvaluationServiceImpl.java @@ -1,13 +1,21 @@ package cn.teammodel.service.impl; +import cn.hutool.core.lang.UUID; +import cn.teammodel.common.ErrorCode; import cn.teammodel.common.PK; +import cn.teammodel.config.exception.ServiceException; import cn.teammodel.dao.EvaluationRepository; +import cn.teammodel.model.dto.DeleteNodeDto; import cn.teammodel.model.dto.GetEvaluateTreeDto; +import cn.teammodel.model.dto.InsertNodeDto; +import cn.teammodel.model.dto.UpdateNodeDto; import cn.teammodel.model.entity.Evaluation; import cn.teammodel.model.entity.EvaluationTreeNode; import cn.teammodel.service.EvaluationService; +import com.azure.spring.data.cosmos.core.CosmosTemplate; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -20,25 +28,30 @@ import java.util.List; */ @Service public class EvaluationServiceImpl implements EvaluationService { + @Resource + CosmosTemplate cosmosTemplate; @Resource private EvaluationRepository evaluationRepository; @Override - public List getTree(GetEvaluateTreeDto getEvaluateTreeDto) { + public Evaluation getTree(GetEvaluateTreeDto getEvaluateTreeDto) { String schoolId = getEvaluateTreeDto.getSchoolId(); String periodId = getEvaluateTreeDto.getPeriodId(); periodId = StringUtils.isEmpty(periodId) ? "default" : periodId; - Evaluation evaluation = evaluationRepository.findBySchoolIdAndPeriodId(schoolId, periodId, PK.PK_SCHOOL); - List nodes = evaluation.getNodes(); - List trees = this.buildTree(nodes); - evaluation.setNodes(trees); - return trees; + Evaluation evaluation = evaluationRepository.findBySchoolIdAndPeriodId(schoolId, periodId, PK.PK_EVALUATION); + return this.buildTree(evaluation); } @Override - public List buildTree(List nodes) { + public Evaluation buildTree(Evaluation evaluation) { + if (evaluation == null) { + return null; + } + + List nodes = evaluation.getNodes(); List parents = new ArrayList<>(); + // pid 为 null 或者 "" 则为 parents for (EvaluationTreeNode node : nodes) { if (StringUtils.isBlank(node.getPid())) { @@ -49,7 +62,8 @@ public class EvaluationServiceImpl implements EvaluationService { for (EvaluationTreeNode parent : parents) { buildChildren(parent, nodes); } - return parents; + evaluation.setNodes(parents); + return evaluation; } @Override @@ -67,6 +81,101 @@ public class EvaluationServiceImpl implements EvaluationService { } } + @Override + public Evaluation insertNode(InsertNodeDto insertNodeDto) { + Evaluation evaluation = findEvaluation(insertNodeDto.getSchoolId(), insertNodeDto.getPeriodId()); + + List originNodes = evaluation.getNodes(); + // 拷贝数据到新节点 + EvaluationTreeNode newNode = new EvaluationTreeNode(); + BeanUtils.copyProperties(insertNodeDto, newNode); + + String newNodePid = newNode.getPid(); + // 根节点直接添加 + if (StringUtils.isNotEmpty(newNodePid)) { + boolean invalid = originNodes.stream().noneMatch(item -> newNodePid.equals(item.getId())); + if (invalid) { + throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "父节点不存在"); + } + } + // todo: 为新节点赋值必须参数 (id, creator), 可不可以添加默认值 order ? + newNode.setId(UUID.randomUUID().toString()); + originNodes.add(newNode); + evaluation.setNodes(originNodes); + return buildTree(evaluationRepository.save(evaluation)); + } + + @Override + public Evaluation updateNode(UpdateNodeDto updateNodeDto) { + String updateNodeId = updateNodeDto.getId(); + + Evaluation evaluation = findEvaluation(updateNodeDto.getSchoolId(), updateNodeDto.getPeriodId()); + List originNodes = evaluation.getNodes(); + // 每个节点都有 id, 直接校验是否合法 + EvaluationTreeNode updateNode = originNodes.stream() + .filter(item -> updateNodeId.equals(item.getId())) + .findFirst() + .orElseThrow(() -> new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "更新节点不存在")); + // 更新字段,考虑直接 copy properties + updateNode.setName(updateNodeDto.getName()); + updateNode.setLogo(updateNodeDto.getLogo()); + updateNode.setOrder(updateNodeDto.getOrder()); + updateNode.setPraise(updateNodeDto.isPraise()); + // todo: 为新节点赋值必须参数 (id, creator), 可不可以添加默认值 order ? + + return buildTree(evaluationRepository.save(evaluation)); + } + + @Override + public Evaluation deleteNode(DeleteNodeDto deleteNodeDto) { + // 删除指定节点,可能是(一级,二级,三级),设计一个通用的 + Evaluation evaluation = findEvaluation(deleteNodeDto.getSchoolId(), deleteNodeDto.getPeriodId()); + List nodes = evaluation.getNodes(); + List nodesToDelete = new ArrayList<>(); + + // 迭代器安全删除 + for (EvaluationTreeNode node : nodes) { + if (node.getId().equals(deleteNodeDto.getId())) { + // 删除当前节点 + nodesToDelete.add(node); + // 递归删除其孩子节点 + this.collectNodesToDelete(node.getId(), nodes, nodesToDelete); + } + } + nodes.removeAll(nodesToDelete); + + return buildTree(evaluationRepository.save(evaluation)); + } + + /** + * 递归收集 id 的节点及 id 节点的孩子节点 (迭代器删除居然也报错) + */ + private void collectNodesToDelete(String id, List nodes, List nodesToDelete) { + for (EvaluationTreeNode node : nodes) { + if (id.equals(node.getPid())) { + // 收集 + nodesToDelete.add(node); + // 递归收集 + collectNodesToDelete(node.getId(), nodes, nodesToDelete); + } + } + + } + + /** + * 通用的获取 evaluation 的方法: 判断参数,判断数据是否为空 + */ + private Evaluation findEvaluation(String schoolId,String periodId) { + periodId = StringUtils.isEmpty(periodId) ? "default" : periodId; + + // 拿到要新增节点的原始数据 + Evaluation evaluation = evaluationRepository.findBySchoolIdAndPeriodId(schoolId, periodId, PK.PK_EVALUATION); + if (evaluation == null) { + throw new ServiceException(ErrorCode.PARAMS_ERROR.getCode(), "学校评价数据不存在"); + } + return evaluation; + } + /** * 递归的构建父亲节点的孩子,以及孩子的孩子 (理论支持无极树,但应该考虑是否增加递归深度) */ @@ -84,6 +193,10 @@ public class EvaluationServiceImpl implements EvaluationService { } + + /** + * 获取节点的孩子节点列表 + */ private List getChildren(EvaluationTreeNode parent, List nodes) { List children = new ArrayList<>(); for (EvaluationTreeNode node : nodes) { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 968fddf..f0a1cdd 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,4 +1,14 @@ spring: + mvc: + pathmatch: + matching-strategy: ant_path_matcher + + # 文件上传 + servlet: + multipart: + # 大小限制 + max-file-size: 10MB + cloud: azure: cosmos: diff --git a/src/main/resources/libs/jjwt-0.9.1.jar b/src/main/resources/libs/jjwt-0.9.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..79d62881b8d4926480563cb3302cc1f6b8a43d55 GIT binary patch literal 117093 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 q?fo*2VXv&HAl)X&c~ChZ0~_~jR_}*7F~DcopXW literal 0 HcmV?d00001 diff --git a/src/test/java/cn/teammodel/TeamModelExtensionApplicationTests.java b/src/test/java/cn/teammodel/TeamModelExtensionApplicationTests.java index e0aa427..5d6a2d9 100644 --- a/src/test/java/cn/teammodel/TeamModelExtensionApplicationTests.java +++ b/src/test/java/cn/teammodel/TeamModelExtensionApplicationTests.java @@ -1,6 +1,5 @@ package cn.teammodel; -import cn.hutool.json.JSONUtil; import cn.teammodel.dao.EvaluationRepository; import cn.teammodel.dao.StudentRepository; import cn.teammodel.manager.DingAlertNotifier; @@ -9,16 +8,20 @@ import cn.teammodel.model.entity.EvaluationTreeNode; import cn.teammodel.service.EvaluationService; import cn.teammodel.service.impl.EvaluationServiceImpl; import com.azure.cosmos.models.PartitionKey; +import com.azure.spring.data.cosmos.core.CosmosTemplate; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.UUID; @SpringBootTest class TeamModelExtensionApplicationTests { + @Resource + CosmosTemplate cosmosTemplate; @Autowired private DingAlertNotifier notifier; @@ -65,7 +68,7 @@ class TeamModelExtensionApplicationTests { nodes.add(node2); evaluation.setNodes(nodes); - Evaluation saved = evaluationRepository.save(evaluation); + Evaluation saved = cosmosTemplate.insert(evaluation, null); System.out.println(saved); } @@ -73,14 +76,14 @@ class TeamModelExtensionApplicationTests { public void testSelect() { Evaluation saved = evaluationRepository.findBySchoolId("hbcn", new PartitionKey("evaluation")); EvaluationService service = new EvaluationServiceImpl(); - System.out.println(JSONUtil.parse(service.buildTree(saved.getNodes())).toStringPretty()); + //System.out.println(JSONUtil.parse(service.buildTree(saved.getNodes())).toStringPretty()); } @Test public void testUpdate() { //EvaluationTree saved = evaluationTreeRepository.findBySchoolId("hbcn", new PartitionKey("evaluation")); Evaluation saved = evaluationRepository.findBySchoolId("hbcn", new PartitionKey("evaluation")); EvaluationService service = new EvaluationServiceImpl(); - System.out.println(JSONUtil.parse(service.buildTree(saved.getNodes())).toStringPretty()); + //System.out.println(JSONUtil.parse(service.buildTree(saved.getNodes())).toStringPretty()); evaluationRepository.save(saved); } diff --git a/src/test/java/cn/teammodel/TestWithoutSpring.java b/src/test/java/cn/teammodel/TestWithoutSpring.java index 3546d66..c3e0096 100644 --- a/src/test/java/cn/teammodel/TestWithoutSpring.java +++ b/src/test/java/cn/teammodel/TestWithoutSpring.java @@ -1,6 +1,5 @@ package cn.teammodel; -import cn.hutool.json.JSONUtil; import cn.teammodel.model.entity.Evaluation; import cn.teammodel.model.entity.EvaluationTreeNode; import cn.teammodel.service.impl.EvaluationServiceImpl; @@ -127,11 +126,11 @@ public class TestWithoutSpring { nodes.add(node2); evaluation.setNodes(nodes); - List tree = service.buildTree(nodes); - System.out.println(JSONUtil.parse(service.buildTree(tree)).toStringPretty()); - - List nodeList = new ArrayList<>(); - service.flattenTree(tree, nodeList); - System.out.println(JSONUtil.parse(nodeList).toStringPretty()); + //List tree = service.buildTree(nodes); + //System.out.println(JSONUtil.parse(service.buildTree(tree)).toStringPretty()); + // + //List nodeList = new ArrayList<>(); + //service.flattenTree(tree, nodeList); + //System.out.println(JSONUtil.parse(nodeList).toStringPretty()); } }