From 44960c75551d6c60698926c99b94a73ad367c826 Mon Sep 17 00:00:00 2001 From: whb <17803890193@163.com> Date: Mon, 23 Dec 2024 15:44:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=9E=E4=BD=93=E7=B1=BB?= =?UTF-8?q?=E6=97=A0=E5=8F=82=E6=9E=84=E9=80=A0=E6=8A=A5=E9=94=99=E5=92=8C?= =?UTF-8?q?=E6=95=99=E5=B8=88=E7=AB=AF=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../trade/controller/stu/UserController.java | 51 +- .../trade/controller/task/TaskController.java | 38 + .../tch/TchKnowledgeGraphController.java | 43 + .../tch/TchLoginLogAndStuListController.java | 2 +- .../trade/entity/TchDigitalTradeWeight.java | 7 + .../trade/entity/TchGeneralViewDTO.java | 14 +- .../trade/entity/TchKnowledgeGraph.java | 139 +++ .../entity/TchKnowledgeGraphExample.java | 900 ++++++++++++++++++ .../trade/mapper/TchKnowledgeGraphMapper.java | 30 + .../service/TchKnowledgeGraphService.java | 12 + .../impl/TchGeneralViewServiceImpl.java | 7 + .../impl/TchKnowledgeGraphServiceImpl.java | 85 ++ .../java/com/sztzjy/trade/util/TzApi.java | 2 +- src/main/resources/application.yml | 2 +- .../mappers/TchKnowledgeGraphMapper.xml | 306 ++++++ 15 files changed, 1626 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/sztzjy/trade/controller/task/TaskController.java create mode 100644 src/main/java/com/sztzjy/trade/controller/tch/TchKnowledgeGraphController.java create mode 100644 src/main/java/com/sztzjy/trade/entity/TchKnowledgeGraph.java create mode 100644 src/main/java/com/sztzjy/trade/entity/TchKnowledgeGraphExample.java create mode 100644 src/main/java/com/sztzjy/trade/mapper/TchKnowledgeGraphMapper.java create mode 100644 src/main/java/com/sztzjy/trade/service/TchKnowledgeGraphService.java create mode 100644 src/main/java/com/sztzjy/trade/service/impl/TchKnowledgeGraphServiceImpl.java create mode 100644 src/main/resources/mappers/TchKnowledgeGraphMapper.xml diff --git a/src/main/java/com/sztzjy/trade/controller/stu/UserController.java b/src/main/java/com/sztzjy/trade/controller/stu/UserController.java index 2e7cd99..5609444 100644 --- a/src/main/java/com/sztzjy/trade/controller/stu/UserController.java +++ b/src/main/java/com/sztzjy/trade/controller/stu/UserController.java @@ -13,13 +13,12 @@ import com.sztzjy.trade.entity.StuUserExample; import com.sztzjy.trade.entity.ZYUserInfo; import com.sztzjy.trade.mapper.StuUserMapper; import com.sztzjy.trade.service.StuUserService; -import com.sztzjy.trade.util.ResultDataEntity; -import com.sztzjy.trade.util.RsaUtil; -import com.sztzjy.trade.util.TzApi; +import com.sztzjy.trade.util.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.HttpStatus; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; @@ -27,10 +26,17 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; +import org.ujmp.core.util.R; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.io.IOException; +import java.util.HashMap; import java.util.List; +import java.util.Map; + @Api(tags = "用户管理") @RequestMapping("api/user") @@ -47,6 +53,11 @@ public class UserController { @Resource private AuthenticationManagerBuilder authenticationManagerBuilder; + @Autowired + private RedisUtil redisUtil; + + + @AnonymousAccess @ApiOperation("用户登录") @PostMapping("login") @@ -54,9 +65,11 @@ public class UserController { public ResultDataEntity login(@ApiParam("用户名") String username, @ApiParam("加密后的密码") String passwordEncode, @ApiParam("智云携带的token")@RequestParam(required = false) String TOKEN, - @RequestParam(required = false) Integer type) { + @RequestParam(required = false) Integer type, + HttpServletResponse response) throws IOException { JwtUser jwtUser; String password; + if(org.apache.commons.lang3.StringUtils.isBlank(TOKEN)){ //子系统登录 try { password = RsaUtil.decryptByPrivateKey(passwordEncode); @@ -92,6 +105,16 @@ public class UserController { loginResult.setRoleId(stuUser.getRoleId()); loginResult.setSchoolId(Integer.valueOf(stuUser.getSchoolId())); loginResult.setAccessToken(token); + + HttpSession session = request.getSession(); + long loginTime = System.currentTimeMillis(); + session.setAttribute("loginTime", loginTime); // 记录登录时间可以帮助后续管理 + session.setAttribute("userId", jwtUser.getUserId()); // 记录登录时间可以帮助后续管理 + + redisUtil.set("loginTime:"+loginTime,jwtUser.getUserId(),3600); + + + return new ResultDataEntity<>(HttpStatus.OK,loginResult); }else { if(password.equals(stuUser.getPassword())){ @@ -106,6 +129,14 @@ public class UserController { loginResult.setRoleId(stuUser.getRoleId()); loginResult.setSchoolId(Integer.valueOf(stuUser.getSchoolId())); loginResult.setAccessToken(token); + + HttpSession session = request.getSession(); + long loginTime = System.currentTimeMillis(); + session.setAttribute("loginTime", loginTime); // 记录登录时间可以帮助后续管理 + session.setAttribute("userId", jwtUser.getUserId()); // 记录登录时间可以帮助后续管理 + + redisUtil.set("loginTime:"+loginTime,jwtUser.getUserId(),3600); + return new ResultDataEntity<>(HttpStatus.OK,loginResult); }else { throw new UnAuthorizedException("密码错误"); @@ -158,6 +189,18 @@ public class UserController { // JwtUser user = TokenProvider.getJWTUser(request); // stuUserService.insertAll(jwtUser); + + //存入sesion + // 用户验证通过,创建会话 + HttpSession session = request.getSession(); + long loginTime = System.currentTimeMillis(); + session.setAttribute("loginTime", loginTime); // 记录登录时间可以帮助后续管理 + session.setAttribute("userId", jwtUser.getUserId()); // 记录登录时间可以帮助后续管理 + + redisUtil.set("loginTime:"+loginTime,jwtUser.getUserId(),3600); + + + return new ResultDataEntity(HttpStatus.OK,LoginResult.create(jwtUser, token)); } diff --git a/src/main/java/com/sztzjy/trade/controller/task/TaskController.java b/src/main/java/com/sztzjy/trade/controller/task/TaskController.java new file mode 100644 index 0000000..17ffca3 --- /dev/null +++ b/src/main/java/com/sztzjy/trade/controller/task/TaskController.java @@ -0,0 +1,38 @@ +package com.sztzjy.trade.controller.task; + +import com.sztzjy.trade.mapper.StuUserMapper; +import com.sztzjy.trade.util.CacheProvider; +import com.sztzjy.trade.util.RedisUtil; +import io.swagger.annotations.Api; +import org.apache.commons.logging.Log; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +/** + * @author 17803 + * @date 2024-12-20 16:22 + */ +@Component +public class TaskController { + + @Autowired + private RedisUtil redisUtil; + +// @Scheduled(fixedDelay = 10000) + public void updateUserRank(){ + //先查询所有学校id + Map log = (Map)redisUtil.get("loginLog"); + + + + System.out.println(log); + + } + +} diff --git a/src/main/java/com/sztzjy/trade/controller/tch/TchKnowledgeGraphController.java b/src/main/java/com/sztzjy/trade/controller/tch/TchKnowledgeGraphController.java new file mode 100644 index 0000000..611c39d --- /dev/null +++ b/src/main/java/com/sztzjy/trade/controller/tch/TchKnowledgeGraphController.java @@ -0,0 +1,43 @@ +package com.sztzjy.trade.controller.tch; + +import com.sztzjy.trade.annotation.AnonymousAccess; +import com.sztzjy.trade.entity.dto.LoginLogDTO; +import com.sztzjy.trade.service.TchKnowledgeGraphService; +import com.sztzjy.trade.util.ResultEntity; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; + +/** + * @author 17803 + * @date 2024-12-20 14:52 + */ +@Api(tags = "教师端知识图谱") +@RequestMapping("api/tch/knowledgeGraph") +@RestController +public class TchKnowledgeGraphController { + + @Autowired + private TchKnowledgeGraphService service; + + + @ApiOperation("知识图谱展示") + @GetMapping("/knowledgeGraphBaseInfo") + @AnonymousAccess + public ResultEntity knowledgeGraphBaseInfo(@RequestParam(required = false) String schoolId) { + //"yyyy-MM-dd HH:mm:ss" + + return service.knowledgeGraphBaseInfo(schoolId); + + } + + + + + + + +} diff --git a/src/main/java/com/sztzjy/trade/controller/tch/TchLoginLogAndStuListController.java b/src/main/java/com/sztzjy/trade/controller/tch/TchLoginLogAndStuListController.java index 73cebcf..23e9bda 100644 --- a/src/main/java/com/sztzjy/trade/controller/tch/TchLoginLogAndStuListController.java +++ b/src/main/java/com/sztzjy/trade/controller/tch/TchLoginLogAndStuListController.java @@ -71,7 +71,7 @@ public class TchLoginLogAndStuListController { @ApiOperation("登录日志条件查询") - @GetMapping("/queryCondition ") + @GetMapping("/queryCondition") @AnonymousAccess public ResultEntity queryCondition(@ApiParam("用户名") @RequestParam(required = false) String name, @ApiParam("所属班级ID") @RequestParam(required = false) String classID, diff --git a/src/main/java/com/sztzjy/trade/entity/TchDigitalTradeWeight.java b/src/main/java/com/sztzjy/trade/entity/TchDigitalTradeWeight.java index f470fb1..7746a9f 100644 --- a/src/main/java/com/sztzjy/trade/entity/TchDigitalTradeWeight.java +++ b/src/main/java/com/sztzjy/trade/entity/TchDigitalTradeWeight.java @@ -4,11 +4,18 @@ import java.math.BigDecimal; import java.util.Date; import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + /** * * @author whb * tch_digital_trade_weight */ +@Data +@NoArgsConstructor +@AllArgsConstructor public class TchDigitalTradeWeight { @ApiModelProperty(notes = "学校ID") private String schoolId; diff --git a/src/main/java/com/sztzjy/trade/entity/TchGeneralViewDTO.java b/src/main/java/com/sztzjy/trade/entity/TchGeneralViewDTO.java index 783dd46..4767b8f 100644 --- a/src/main/java/com/sztzjy/trade/entity/TchGeneralViewDTO.java +++ b/src/main/java/com/sztzjy/trade/entity/TchGeneralViewDTO.java @@ -1,7 +1,7 @@ package com.sztzjy.trade.entity; import io.swagger.annotations.ApiModelProperty; -import lombok.Data; +import lombok.*; import java.math.BigDecimal; import java.math.RoundingMode; @@ -11,6 +11,10 @@ import java.math.RoundingMode; * @date 2024-12-17 13:51 */ @Data +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor public class TchGeneralViewDTO { @ApiModelProperty(notes = "学号") @@ -22,14 +26,14 @@ public class TchGeneralViewDTO { @ApiModelProperty(notes = "班级名称") private String className; - @ApiModelProperty(notes = "学校ID") + @ApiModelProperty(notes = "学校ID(必传)") private String schoolId; - @ApiModelProperty(notes = "当前页") + @ApiModelProperty(notes = "当前页(必传)") private Integer page; - @ApiModelProperty(notes = "每页展示条数") + @ApiModelProperty(notes = "每页展示条数(必传)") private Integer size; @ApiModelProperty(notes = "权重") @@ -61,7 +65,7 @@ public class TchGeneralViewDTO { this.className=stuUser.getClassName(); this.attendanceScore = stuUser.getAttendanceScore() - .multiply(resultsOverviewWeight.getWeightOfAttendanceScores()) + .multiply(resultsOverviewWeight.getWeightOfAttendanceScoresSmall()) .setScale(2, RoundingMode.HALF_UP); // 四舍五入 this.examResultsForHomeworkAssignments = stuUser.getExamResultsForHomeworkAssignments() diff --git a/src/main/java/com/sztzjy/trade/entity/TchKnowledgeGraph.java b/src/main/java/com/sztzjy/trade/entity/TchKnowledgeGraph.java new file mode 100644 index 0000000..4e3ecce --- /dev/null +++ b/src/main/java/com/sztzjy/trade/entity/TchKnowledgeGraph.java @@ -0,0 +1,139 @@ +package com.sztzjy.trade.entity; + +import java.util.Date; +import java.util.List; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 教师端知识图谱 + * + * @author whb + * tch_knowledge_graph + */ +@Data +public class TchKnowledgeGraph { + @ApiModelProperty(notes = "id") + private String id; + + @ApiModelProperty(notes = "分支等级") + private Integer level; + + @ApiModelProperty(notes = "章节名") + private String name; + + @ApiModelProperty(notes = "1重点 0非重点") + private Integer keynote; + + @ApiModelProperty(notes = "1难点 0非难点") + private Integer difficulty; + + @ApiModelProperty(notes = "一级分支序号") + private Integer chapterNumber; + + @ApiModelProperty(notes = "分支ID") + private String chapterNumberId; + + @ApiModelProperty(notes = "1考点 0非考点") + private Integer examCenter; + + @ApiModelProperty(notes = "创建时间") + private Date createTime; + + @ApiModelProperty(notes = "更新时间") + private Date updateTime; + + @ApiModelProperty(notes = "学校ID") + private String schoolId; + + private List children; // 子目录列表 + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id == null ? null : id.trim(); + } + + public Integer getLevel() { + return level; + } + + public void setLevel(Integer level) { + this.level = level; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name == null ? null : name.trim(); + } + + public Integer getKeynote() { + return keynote; + } + + public void setKeynote(Integer keynote) { + this.keynote = keynote; + } + + public Integer getDifficulty() { + return difficulty; + } + + public void setDifficulty(Integer difficulty) { + this.difficulty = difficulty; + } + + public Integer getChapterNumber() { + return chapterNumber; + } + + public void setChapterNumber(Integer chapterNumber) { + this.chapterNumber = chapterNumber; + } + + public String getChapterNumberId() { + return chapterNumberId; + } + + public void setChapterNumberId(String chapterNumberId) { + this.chapterNumberId = chapterNumberId == null ? null : chapterNumberId.trim(); + } + + public Integer getExamCenter() { + return examCenter; + } + + public void setExamCenter(Integer examCenter) { + this.examCenter = examCenter; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public String getSchoolId() { + return schoolId; + } + + public void setSchoolId(String schoolId) { + this.schoolId = schoolId == null ? null : schoolId.trim(); + } +} \ No newline at end of file diff --git a/src/main/java/com/sztzjy/trade/entity/TchKnowledgeGraphExample.java b/src/main/java/com/sztzjy/trade/entity/TchKnowledgeGraphExample.java new file mode 100644 index 0000000..81f3739 --- /dev/null +++ b/src/main/java/com/sztzjy/trade/entity/TchKnowledgeGraphExample.java @@ -0,0 +1,900 @@ +package com.sztzjy.trade.entity; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class TchKnowledgeGraphExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public TchKnowledgeGraphExample() { + oredCriteria = new ArrayList<>(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList<>(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(String value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(String value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(String value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(String value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(String value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(String value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLike(String value) { + addCriterion("id like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotLike(String value) { + addCriterion("id not like", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(String value1, String value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(String value1, String value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andLevelIsNull() { + addCriterion("level is null"); + return (Criteria) this; + } + + public Criteria andLevelIsNotNull() { + addCriterion("level is not null"); + return (Criteria) this; + } + + public Criteria andLevelEqualTo(Integer value) { + addCriterion("level =", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotEqualTo(Integer value) { + addCriterion("level <>", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelGreaterThan(Integer value) { + addCriterion("level >", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelGreaterThanOrEqualTo(Integer value) { + addCriterion("level >=", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelLessThan(Integer value) { + addCriterion("level <", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelLessThanOrEqualTo(Integer value) { + addCriterion("level <=", value, "level"); + return (Criteria) this; + } + + public Criteria andLevelIn(List values) { + addCriterion("level in", values, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotIn(List values) { + addCriterion("level not in", values, "level"); + return (Criteria) this; + } + + public Criteria andLevelBetween(Integer value1, Integer value2) { + addCriterion("level between", value1, value2, "level"); + return (Criteria) this; + } + + public Criteria andLevelNotBetween(Integer value1, Integer value2) { + addCriterion("level not between", value1, value2, "level"); + return (Criteria) this; + } + + public Criteria andNameIsNull() { + addCriterion("name is null"); + return (Criteria) this; + } + + public Criteria andNameIsNotNull() { + addCriterion("name is not null"); + return (Criteria) this; + } + + public Criteria andNameEqualTo(String value) { + addCriterion("name =", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotEqualTo(String value) { + addCriterion("name <>", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThan(String value) { + addCriterion("name >", value, "name"); + return (Criteria) this; + } + + public Criteria andNameGreaterThanOrEqualTo(String value) { + addCriterion("name >=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThan(String value) { + addCriterion("name <", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLessThanOrEqualTo(String value) { + addCriterion("name <=", value, "name"); + return (Criteria) this; + } + + public Criteria andNameLike(String value) { + addCriterion("name like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameNotLike(String value) { + addCriterion("name not like", value, "name"); + return (Criteria) this; + } + + public Criteria andNameIn(List values) { + addCriterion("name in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameNotIn(List values) { + addCriterion("name not in", values, "name"); + return (Criteria) this; + } + + public Criteria andNameBetween(String value1, String value2) { + addCriterion("name between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andNameNotBetween(String value1, String value2) { + addCriterion("name not between", value1, value2, "name"); + return (Criteria) this; + } + + public Criteria andKeynoteIsNull() { + addCriterion("keynote is null"); + return (Criteria) this; + } + + public Criteria andKeynoteIsNotNull() { + addCriterion("keynote is not null"); + return (Criteria) this; + } + + public Criteria andKeynoteEqualTo(Integer value) { + addCriterion("keynote =", value, "keynote"); + return (Criteria) this; + } + + public Criteria andKeynoteNotEqualTo(Integer value) { + addCriterion("keynote <>", value, "keynote"); + return (Criteria) this; + } + + public Criteria andKeynoteGreaterThan(Integer value) { + addCriterion("keynote >", value, "keynote"); + return (Criteria) this; + } + + public Criteria andKeynoteGreaterThanOrEqualTo(Integer value) { + addCriterion("keynote >=", value, "keynote"); + return (Criteria) this; + } + + public Criteria andKeynoteLessThan(Integer value) { + addCriterion("keynote <", value, "keynote"); + return (Criteria) this; + } + + public Criteria andKeynoteLessThanOrEqualTo(Integer value) { + addCriterion("keynote <=", value, "keynote"); + return (Criteria) this; + } + + public Criteria andKeynoteIn(List values) { + addCriterion("keynote in", values, "keynote"); + return (Criteria) this; + } + + public Criteria andKeynoteNotIn(List values) { + addCriterion("keynote not in", values, "keynote"); + return (Criteria) this; + } + + public Criteria andKeynoteBetween(Integer value1, Integer value2) { + addCriterion("keynote between", value1, value2, "keynote"); + return (Criteria) this; + } + + public Criteria andKeynoteNotBetween(Integer value1, Integer value2) { + addCriterion("keynote not between", value1, value2, "keynote"); + return (Criteria) this; + } + + public Criteria andDifficultyIsNull() { + addCriterion("difficulty is null"); + return (Criteria) this; + } + + public Criteria andDifficultyIsNotNull() { + addCriterion("difficulty is not null"); + return (Criteria) this; + } + + public Criteria andDifficultyEqualTo(Integer value) { + addCriterion("difficulty =", value, "difficulty"); + return (Criteria) this; + } + + public Criteria andDifficultyNotEqualTo(Integer value) { + addCriterion("difficulty <>", value, "difficulty"); + return (Criteria) this; + } + + public Criteria andDifficultyGreaterThan(Integer value) { + addCriterion("difficulty >", value, "difficulty"); + return (Criteria) this; + } + + public Criteria andDifficultyGreaterThanOrEqualTo(Integer value) { + addCriterion("difficulty >=", value, "difficulty"); + return (Criteria) this; + } + + public Criteria andDifficultyLessThan(Integer value) { + addCriterion("difficulty <", value, "difficulty"); + return (Criteria) this; + } + + public Criteria andDifficultyLessThanOrEqualTo(Integer value) { + addCriterion("difficulty <=", value, "difficulty"); + return (Criteria) this; + } + + public Criteria andDifficultyIn(List values) { + addCriterion("difficulty in", values, "difficulty"); + return (Criteria) this; + } + + public Criteria andDifficultyNotIn(List values) { + addCriterion("difficulty not in", values, "difficulty"); + return (Criteria) this; + } + + public Criteria andDifficultyBetween(Integer value1, Integer value2) { + addCriterion("difficulty between", value1, value2, "difficulty"); + return (Criteria) this; + } + + public Criteria andDifficultyNotBetween(Integer value1, Integer value2) { + addCriterion("difficulty not between", value1, value2, "difficulty"); + return (Criteria) this; + } + + public Criteria andChapterNumberIsNull() { + addCriterion("chapter_number is null"); + return (Criteria) this; + } + + public Criteria andChapterNumberIsNotNull() { + addCriterion("chapter_number is not null"); + return (Criteria) this; + } + + public Criteria andChapterNumberEqualTo(Integer value) { + addCriterion("chapter_number =", value, "chapterNumber"); + return (Criteria) this; + } + + public Criteria andChapterNumberNotEqualTo(Integer value) { + addCriterion("chapter_number <>", value, "chapterNumber"); + return (Criteria) this; + } + + public Criteria andChapterNumberGreaterThan(Integer value) { + addCriterion("chapter_number >", value, "chapterNumber"); + return (Criteria) this; + } + + public Criteria andChapterNumberGreaterThanOrEqualTo(Integer value) { + addCriterion("chapter_number >=", value, "chapterNumber"); + return (Criteria) this; + } + + public Criteria andChapterNumberLessThan(Integer value) { + addCriterion("chapter_number <", value, "chapterNumber"); + return (Criteria) this; + } + + public Criteria andChapterNumberLessThanOrEqualTo(Integer value) { + addCriterion("chapter_number <=", value, "chapterNumber"); + return (Criteria) this; + } + + public Criteria andChapterNumberIn(List values) { + addCriterion("chapter_number in", values, "chapterNumber"); + return (Criteria) this; + } + + public Criteria andChapterNumberNotIn(List values) { + addCriterion("chapter_number not in", values, "chapterNumber"); + return (Criteria) this; + } + + public Criteria andChapterNumberBetween(Integer value1, Integer value2) { + addCriterion("chapter_number between", value1, value2, "chapterNumber"); + return (Criteria) this; + } + + public Criteria andChapterNumberNotBetween(Integer value1, Integer value2) { + addCriterion("chapter_number not between", value1, value2, "chapterNumber"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdIsNull() { + addCriterion("chapter_number_id is null"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdIsNotNull() { + addCriterion("chapter_number_id is not null"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdEqualTo(String value) { + addCriterion("chapter_number_id =", value, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdNotEqualTo(String value) { + addCriterion("chapter_number_id <>", value, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdGreaterThan(String value) { + addCriterion("chapter_number_id >", value, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdGreaterThanOrEqualTo(String value) { + addCriterion("chapter_number_id >=", value, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdLessThan(String value) { + addCriterion("chapter_number_id <", value, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdLessThanOrEqualTo(String value) { + addCriterion("chapter_number_id <=", value, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdLike(String value) { + addCriterion("chapter_number_id like", value, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdNotLike(String value) { + addCriterion("chapter_number_id not like", value, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdIn(List values) { + addCriterion("chapter_number_id in", values, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdNotIn(List values) { + addCriterion("chapter_number_id not in", values, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdBetween(String value1, String value2) { + addCriterion("chapter_number_id between", value1, value2, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andChapterNumberIdNotBetween(String value1, String value2) { + addCriterion("chapter_number_id not between", value1, value2, "chapterNumberId"); + return (Criteria) this; + } + + public Criteria andExamCenterIsNull() { + addCriterion("exam_center is null"); + return (Criteria) this; + } + + public Criteria andExamCenterIsNotNull() { + addCriterion("exam_center is not null"); + return (Criteria) this; + } + + public Criteria andExamCenterEqualTo(Integer value) { + addCriterion("exam_center =", value, "examCenter"); + return (Criteria) this; + } + + public Criteria andExamCenterNotEqualTo(Integer value) { + addCriterion("exam_center <>", value, "examCenter"); + return (Criteria) this; + } + + public Criteria andExamCenterGreaterThan(Integer value) { + addCriterion("exam_center >", value, "examCenter"); + return (Criteria) this; + } + + public Criteria andExamCenterGreaterThanOrEqualTo(Integer value) { + addCriterion("exam_center >=", value, "examCenter"); + return (Criteria) this; + } + + public Criteria andExamCenterLessThan(Integer value) { + addCriterion("exam_center <", value, "examCenter"); + return (Criteria) this; + } + + public Criteria andExamCenterLessThanOrEqualTo(Integer value) { + addCriterion("exam_center <=", value, "examCenter"); + return (Criteria) this; + } + + public Criteria andExamCenterIn(List values) { + addCriterion("exam_center in", values, "examCenter"); + return (Criteria) this; + } + + public Criteria andExamCenterNotIn(List values) { + addCriterion("exam_center not in", values, "examCenter"); + return (Criteria) this; + } + + public Criteria andExamCenterBetween(Integer value1, Integer value2) { + addCriterion("exam_center between", value1, value2, "examCenter"); + return (Criteria) this; + } + + public Criteria andExamCenterNotBetween(Integer value1, Integer value2) { + addCriterion("exam_center not between", value1, value2, "examCenter"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNull() { + addCriterion("create_time is null"); + return (Criteria) this; + } + + public Criteria andCreateTimeIsNotNull() { + addCriterion("create_time is not null"); + return (Criteria) this; + } + + public Criteria andCreateTimeEqualTo(Date value) { + addCriterion("create_time =", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotEqualTo(Date value) { + addCriterion("create_time <>", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThan(Date value) { + addCriterion("create_time >", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("create_time >=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThan(Date value) { + addCriterion("create_time <", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeLessThanOrEqualTo(Date value) { + addCriterion("create_time <=", value, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeIn(List values) { + addCriterion("create_time in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotIn(List values) { + addCriterion("create_time not in", values, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeBetween(Date value1, Date value2) { + addCriterion("create_time between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andCreateTimeNotBetween(Date value1, Date value2) { + addCriterion("create_time not between", value1, value2, "createTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNull() { + addCriterion("update_time is null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIsNotNull() { + addCriterion("update_time is not null"); + return (Criteria) this; + } + + public Criteria andUpdateTimeEqualTo(Date value) { + addCriterion("update_time =", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotEqualTo(Date value) { + addCriterion("update_time <>", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThan(Date value) { + addCriterion("update_time >", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) { + addCriterion("update_time >=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThan(Date value) { + addCriterion("update_time <", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeLessThanOrEqualTo(Date value) { + addCriterion("update_time <=", value, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeIn(List values) { + addCriterion("update_time in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotIn(List values) { + addCriterion("update_time not in", values, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeBetween(Date value1, Date value2) { + addCriterion("update_time between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andUpdateTimeNotBetween(Date value1, Date value2) { + addCriterion("update_time not between", value1, value2, "updateTime"); + return (Criteria) this; + } + + public Criteria andSchoolIdIsNull() { + addCriterion("school_id is null"); + return (Criteria) this; + } + + public Criteria andSchoolIdIsNotNull() { + addCriterion("school_id is not null"); + return (Criteria) this; + } + + public Criteria andSchoolIdEqualTo(String value) { + addCriterion("school_id =", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdNotEqualTo(String value) { + addCriterion("school_id <>", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdGreaterThan(String value) { + addCriterion("school_id >", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdGreaterThanOrEqualTo(String value) { + addCriterion("school_id >=", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdLessThan(String value) { + addCriterion("school_id <", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdLessThanOrEqualTo(String value) { + addCriterion("school_id <=", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdLike(String value) { + addCriterion("school_id like", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdNotLike(String value) { + addCriterion("school_id not like", value, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdIn(List values) { + addCriterion("school_id in", values, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdNotIn(List values) { + addCriterion("school_id not in", values, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdBetween(String value1, String value2) { + addCriterion("school_id between", value1, value2, "schoolId"); + return (Criteria) this; + } + + public Criteria andSchoolIdNotBetween(String value1, String value2) { + addCriterion("school_id not between", value1, value2, "schoolId"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/sztzjy/trade/mapper/TchKnowledgeGraphMapper.java b/src/main/java/com/sztzjy/trade/mapper/TchKnowledgeGraphMapper.java new file mode 100644 index 0000000..874a7ac --- /dev/null +++ b/src/main/java/com/sztzjy/trade/mapper/TchKnowledgeGraphMapper.java @@ -0,0 +1,30 @@ +package com.sztzjy.trade.mapper; + +import com.sztzjy.trade.entity.TchKnowledgeGraph; +import com.sztzjy.trade.entity.TchKnowledgeGraphExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface TchKnowledgeGraphMapper { + long countByExample(TchKnowledgeGraphExample example); + + int deleteByExample(TchKnowledgeGraphExample example); + + int deleteByPrimaryKey(String id); + + int insert(TchKnowledgeGraph record); + + int insertSelective(TchKnowledgeGraph record); + + List selectByExample(TchKnowledgeGraphExample example); + + TchKnowledgeGraph selectByPrimaryKey(String id); + + int updateByExampleSelective(@Param("record") TchKnowledgeGraph record, @Param("example") TchKnowledgeGraphExample example); + + int updateByExample(@Param("record") TchKnowledgeGraph record, @Param("example") TchKnowledgeGraphExample example); + + int updateByPrimaryKeySelective(TchKnowledgeGraph record); + + int updateByPrimaryKey(TchKnowledgeGraph record); +} \ No newline at end of file diff --git a/src/main/java/com/sztzjy/trade/service/TchKnowledgeGraphService.java b/src/main/java/com/sztzjy/trade/service/TchKnowledgeGraphService.java new file mode 100644 index 0000000..31f00d0 --- /dev/null +++ b/src/main/java/com/sztzjy/trade/service/TchKnowledgeGraphService.java @@ -0,0 +1,12 @@ +package com.sztzjy.trade.service; + +import com.sztzjy.trade.util.ResultEntity; + +/** + * @author 17803 + * @date 2024-12-20 14:53 + */ +public interface TchKnowledgeGraphService { + //知识图谱展示 + ResultEntity knowledgeGraphBaseInfo(String schoolId); +} diff --git a/src/main/java/com/sztzjy/trade/service/impl/TchGeneralViewServiceImpl.java b/src/main/java/com/sztzjy/trade/service/impl/TchGeneralViewServiceImpl.java index a4a4737..447b39f 100644 --- a/src/main/java/com/sztzjy/trade/service/impl/TchGeneralViewServiceImpl.java +++ b/src/main/java/com/sztzjy/trade/service/impl/TchGeneralViewServiceImpl.java @@ -45,6 +45,13 @@ public class TchGeneralViewServiceImpl implements TchGeneralViewService { //获取该学校权重数据 TchDigitalTradeWeight tchDigitalTradeWeight = tchDigitalTradeWeightMapper.selectByPrimaryKey(tchGeneralViewDTO.getSchoolId()); + if (tchDigitalTradeWeight == null) + { + tchDigitalTradeWeight = new TchDigitalTradeWeight(tchGeneralViewDTO.getSchoolId()); + tchDigitalTradeWeightMapper.insert(tchDigitalTradeWeight); + } + + PageHelper.startPage(tchGeneralViewDTO.getPage(), tchGeneralViewDTO.getSize()); //条件查询学生信息根据SchoolID StuUserExample stuUserExample = new StuUserExample(); diff --git a/src/main/java/com/sztzjy/trade/service/impl/TchKnowledgeGraphServiceImpl.java b/src/main/java/com/sztzjy/trade/service/impl/TchKnowledgeGraphServiceImpl.java new file mode 100644 index 0000000..5b3c954 --- /dev/null +++ b/src/main/java/com/sztzjy/trade/service/impl/TchKnowledgeGraphServiceImpl.java @@ -0,0 +1,85 @@ +package com.sztzjy.trade.service.impl; + +import com.sztzjy.trade.entity.TchKnowledgeGraph; +import com.sztzjy.trade.entity.TchKnowledgeGraphExample; +import com.sztzjy.trade.mapper.TchKnowledgeGraphMapper; +import com.sztzjy.trade.service.TchKnowledgeGraphService; +import com.sztzjy.trade.util.ResultEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author 17803 + * @date 2024-12-20 14:53 + */ +@Service +public class TchKnowledgeGraphServiceImpl implements TchKnowledgeGraphService { + + @Autowired + private TchKnowledgeGraphMapper mapper; + + //知识图谱展示 + @Override + public ResultEntity knowledgeGraphBaseInfo(String schoolId) { + + //递归查询出所有数据 + TchKnowledgeGraphExample example = new TchKnowledgeGraphExample(); + example.createCriteria().getAllCriteria(); + List tchKnowledgeGraphList = mapper.selectByExample(example); + if (!tchKnowledgeGraphList.isEmpty()) { + //按照章节顺序查询出所有一级目录 + List collect = tchKnowledgeGraphList.stream() + .filter(item -> item.getChapterNumberId() == null) // 确保这个条件是必要的 + .sorted(Comparator.comparing(TchKnowledgeGraph::getChapterNumber, Comparator.nullsLast(Comparator.naturalOrder()))) // 确保有效排序 + .collect(Collectors.toList()); + + // 递归获取所有目录 + List allEntriesWithChildren = new ArrayList<>(); + + //查询二级目录 三级目录 等等 递归查询 + for (TchKnowledgeGraph tchKnowledgeGraph : tchKnowledgeGraphList) { + + collect.forEach(item -> { + //说明是三级目录 + if (item.getId().equals(tchKnowledgeGraph.getChapterNumberId())) { + + // 获取当前目录及其所有子目录 + item.setChildren(getChildren(tchKnowledgeGraphList, item.getId())); + allEntriesWithChildren.add(item); + + } + }); + } + + return new ResultEntity(HttpStatus.OK, allEntriesWithChildren); + + + } + + + return null; + + } + + // 递归获取子目录 + private static List getChildren(List allEntries, String parentId) { + List children = allEntries.stream() + .filter(item -> parentId.equals(item.getChapterNumberId())) // 根据父ID查找子项 + .sorted(Comparator.comparing(TchKnowledgeGraph::getChapterNumber, Comparator.nullsLast(Comparator.naturalOrder()))) // 排序 + .collect(Collectors.toList()); + + // 对于每个子项,递归查找其子目录 + for (TchKnowledgeGraph child : children) { + child.setChildren(getChildren(allEntries, child.getId())); // 递归查找 + } + + return children; + } + +} diff --git a/src/main/java/com/sztzjy/trade/util/TzApi.java b/src/main/java/com/sztzjy/trade/util/TzApi.java index b187f8d..13d7296 100644 --- a/src/main/java/com/sztzjy/trade/util/TzApi.java +++ b/src/main/java/com/sztzjy/trade/util/TzApi.java @@ -34,7 +34,7 @@ public class TzApi { private final static String PAGE_STUDENT_BY_KEYWORD = NEW_API_URL + "/server/account/pagedListStudentByClassId.json"; // 智云接口调用token加入缓存,默认1小时过期 - private static CacheProvider cacheProvider = new CacheProvider(2400, 6000); + private static CacheProvider cacheProvider = new CacheProvider(3600, 6000); public static JwtUser foreignExchangeTradingLogin(String userName, String password) { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 6fd4f27..f0b6bc7 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -20,7 +20,7 @@ spring: pathmatch: matching-strategy: ant_path_matcher redis: - host: localhost + host: 118.31.7.2 port: 6379 database: 0 diff --git a/src/main/resources/mappers/TchKnowledgeGraphMapper.xml b/src/main/resources/mappers/TchKnowledgeGraphMapper.xml new file mode 100644 index 0000000..312addd --- /dev/null +++ b/src/main/resources/mappers/TchKnowledgeGraphMapper.xml @@ -0,0 +1,306 @@ + + + + + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, level, name, keynote, difficulty, chapter_number, chapter_number_id, exam_center, + create_time, update_time, school_id + + + + + delete from tch_knowledge_graph + where id = #{id,jdbcType=VARCHAR} + + + delete from tch_knowledge_graph + + + + + + insert into tch_knowledge_graph (id, level, name, + keynote, difficulty, chapter_number, + chapter_number_id, exam_center, create_time, + update_time, school_id) + values (#{id,jdbcType=VARCHAR}, #{level,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, + #{keynote,jdbcType=INTEGER}, #{difficulty,jdbcType=INTEGER}, #{chapterNumber,jdbcType=INTEGER}, + #{chapterNumberId,jdbcType=VARCHAR}, #{examCenter,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, + #{updateTime,jdbcType=TIMESTAMP}, #{schoolId,jdbcType=VARCHAR}) + + + insert into tch_knowledge_graph + + + id, + + + level, + + + name, + + + keynote, + + + difficulty, + + + chapter_number, + + + chapter_number_id, + + + exam_center, + + + create_time, + + + update_time, + + + school_id, + + + + + #{id,jdbcType=VARCHAR}, + + + #{level,jdbcType=INTEGER}, + + + #{name,jdbcType=VARCHAR}, + + + #{keynote,jdbcType=INTEGER}, + + + #{difficulty,jdbcType=INTEGER}, + + + #{chapterNumber,jdbcType=INTEGER}, + + + #{chapterNumberId,jdbcType=VARCHAR}, + + + #{examCenter,jdbcType=INTEGER}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{schoolId,jdbcType=VARCHAR}, + + + + + + update tch_knowledge_graph + + + id = #{record.id,jdbcType=VARCHAR}, + + + level = #{record.level,jdbcType=INTEGER}, + + + name = #{record.name,jdbcType=VARCHAR}, + + + keynote = #{record.keynote,jdbcType=INTEGER}, + + + difficulty = #{record.difficulty,jdbcType=INTEGER}, + + + chapter_number = #{record.chapterNumber,jdbcType=INTEGER}, + + + chapter_number_id = #{record.chapterNumberId,jdbcType=VARCHAR}, + + + exam_center = #{record.examCenter,jdbcType=INTEGER}, + + + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + + + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + + + school_id = #{record.schoolId,jdbcType=VARCHAR}, + + + + + + + + update tch_knowledge_graph + set id = #{record.id,jdbcType=VARCHAR}, + level = #{record.level,jdbcType=INTEGER}, + name = #{record.name,jdbcType=VARCHAR}, + keynote = #{record.keynote,jdbcType=INTEGER}, + difficulty = #{record.difficulty,jdbcType=INTEGER}, + chapter_number = #{record.chapterNumber,jdbcType=INTEGER}, + chapter_number_id = #{record.chapterNumberId,jdbcType=VARCHAR}, + exam_center = #{record.examCenter,jdbcType=INTEGER}, + create_time = #{record.createTime,jdbcType=TIMESTAMP}, + update_time = #{record.updateTime,jdbcType=TIMESTAMP}, + school_id = #{record.schoolId,jdbcType=VARCHAR} + + + + + + update tch_knowledge_graph + + + level = #{level,jdbcType=INTEGER}, + + + name = #{name,jdbcType=VARCHAR}, + + + keynote = #{keynote,jdbcType=INTEGER}, + + + difficulty = #{difficulty,jdbcType=INTEGER}, + + + chapter_number = #{chapterNumber,jdbcType=INTEGER}, + + + chapter_number_id = #{chapterNumberId,jdbcType=VARCHAR}, + + + exam_center = #{examCenter,jdbcType=INTEGER}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + school_id = #{schoolId,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=VARCHAR} + + + update tch_knowledge_graph + set level = #{level,jdbcType=INTEGER}, + name = #{name,jdbcType=VARCHAR}, + keynote = #{keynote,jdbcType=INTEGER}, + difficulty = #{difficulty,jdbcType=INTEGER}, + chapter_number = #{chapterNumber,jdbcType=INTEGER}, + chapter_number_id = #{chapterNumberId,jdbcType=VARCHAR}, + exam_center = #{examCenter,jdbcType=INTEGER}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_time = #{updateTime,jdbcType=TIMESTAMP}, + school_id = #{schoolId,jdbcType=VARCHAR} + where id = #{id,jdbcType=VARCHAR} + + \ No newline at end of file