commit 444515d18c523a80086b96decdef8c30e0994010
Author: Quella <2892744389@qq.com>
Date: Tue Jan 13 15:43:14 2026 +0800
init
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..c9547b3
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,112 @@
+
+
+ 4.0.0
+ com.backend
+ WebBackend
+ 0.0.1-SNAPSHOT
+ 607WebBackend
+ 607WebBackend
+
+ 1.8
+ UTF-8
+ UTF-8
+ 2.6.13
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.springframework.security
+ spring-security-crypto
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+
+ mysql
+ mysql-connector-java
+
+
+
+ com.alibaba
+ druid
+ 1.2.23
+
+
+
+
+ org.mybatis.spring.boot
+ mybatis-spring-boot-starter
+ 2.3.1
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot.version}
+ pom
+ import
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ ${spring-boot.version}
+
+ com.backend.webbackend.Application
+ true
+
+
+
+ repackage
+
+ repackage
+
+
+
+
+
+
+
+
diff --git a/src/main/java/com/backend/webbackend/Application.java b/src/main/java/com/backend/webbackend/Application.java
new file mode 100644
index 0000000..b9b726f
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/Application.java
@@ -0,0 +1,17 @@
+package com.backend.webbackend;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+import javax.annotation.ManagedBean;
+
+@SpringBootApplication
+@MapperScan("com.backend.webbackend.mapper")
+public class Application {
+
+ public static void main(String[] args) {
+ SpringApplication.run(Application.class, args);
+ }
+
+}
diff --git a/src/main/java/com/backend/webbackend/Controller/CourseController.java b/src/main/java/com/backend/webbackend/Controller/CourseController.java
new file mode 100644
index 0000000..fe3b7ae
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/Controller/CourseController.java
@@ -0,0 +1,20 @@
+package com.backend.webbackend.Controller;
+
+import com.backend.webbackend.Service.courseService;
+import com.backend.webbackend.Vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("course")
+public class CourseController {
+ @Autowired
+ private courseService courseService;
+
+ @GetMapping("getAll")
+ public ResultVo getAllCourses() {
+ return ResultVo.Success("",courseService.getAllCourseInfo());
+ }
+}
diff --git a/src/main/java/com/backend/webbackend/Controller/userController.java b/src/main/java/com/backend/webbackend/Controller/userController.java
new file mode 100644
index 0000000..2e3d5fe
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/Controller/userController.java
@@ -0,0 +1,43 @@
+package com.backend.webbackend.Controller;
+
+import com.backend.webbackend.Service.userService;
+import com.backend.webbackend.Vo.ResultVo;
+import com.backend.webbackend.domain.User;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("user")
+public class userController {
+ @Autowired
+ userService userService;
+
+
+ //返回所有部门信息
+ @GetMapping("dept")
+ public ResultVo getAllDept(){
+ return ResultVo.Success("",userService.getAlldept());
+ }
+
+
+ //用户注册
+ @PostMapping("register")
+ public ResultVo register(@RequestBody User user){
+ if(userService.register(user)){
+ return ResultVo.Success("","注册成功");
+ }
+ else {
+ return ResultVo.Error("","注册失败");
+ }
+ }
+
+ @PostMapping("login")
+ public ResultVo login(@RequestBody User user) {
+ if(!userService.login(user.getUsername(),user.getPassword())){
+ return ResultVo.Error("","用户名或密码错误");
+ }
+ return ResultVo.Success("","登陆成功");
+ }
+
+}
diff --git a/src/main/java/com/backend/webbackend/Exception/GlobalExceptionHandler.java b/src/main/java/com/backend/webbackend/Exception/GlobalExceptionHandler.java
new file mode 100644
index 0000000..062ef2b
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/Exception/GlobalExceptionHandler.java
@@ -0,0 +1,18 @@
+package com.backend.webbackend.Exception;
+
+import com.backend.webbackend.Vo.ResultVo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+@Slf4j
+@ControllerAdvice//主要作用:统一异常处理,全局数据绑定:通过InitBinder为所有控制器添加预定义的数据绑定规则,全局模型属性,通过ModelAttribute注解为所有控制器的模型添加公共属性
+public class GlobalExceptionHandler {
+ @ExceptionHandler(Exception.class)//异常捕获,当与ControllerAdvice注解一起使用时,可以捕获所有控制器抛出的异常,并统一处理
+ @ResponseBody//返回数据
+ public ResultVo error(Exception e){
+ log.error("Unhandled exception", e);
+ return ResultVo.Error("",e.getMessage());
+ }
+}
diff --git a/src/main/java/com/backend/webbackend/Service/Impl/courseServiceImpl.java b/src/main/java/com/backend/webbackend/Service/Impl/courseServiceImpl.java
new file mode 100644
index 0000000..6484f97
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/Service/Impl/courseServiceImpl.java
@@ -0,0 +1,23 @@
+package com.backend.webbackend.Service.Impl;
+
+import com.backend.webbackend.domain.Course;
+import com.backend.webbackend.mapper.CourseMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class courseServiceImpl implements com.backend.webbackend.Service.courseService {
+
+ @Autowired
+ CourseMapper courseMapper;
+
+ @Override
+ public List getAllCourseInfo() {
+// List courses = courseMapper.selectAllCourses();
+// String path = courses.get(0).getCourseIco().trim()+"/"+courses.get(0).getCourseName().trim();
+// System.out.println("path:"+path);
+ return courseMapper.selectAllCourses();
+ }
+}
diff --git a/src/main/java/com/backend/webbackend/Service/Impl/userServiceImpl.java b/src/main/java/com/backend/webbackend/Service/Impl/userServiceImpl.java
new file mode 100644
index 0000000..4522d47
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/Service/Impl/userServiceImpl.java
@@ -0,0 +1,80 @@
+package com.backend.webbackend.Service.Impl;
+
+import com.backend.webbackend.Service.userService;
+import com.backend.webbackend.Tools.Tools;
+import com.backend.webbackend.domain.Dept;
+import com.backend.webbackend.domain.User;
+import com.backend.webbackend.mapper.DeptMapper;
+import com.backend.webbackend.mapper.UserMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class userServiceImpl implements userService {
+ @Autowired
+ private UserMapper userMapper;
+ @Autowired
+ private DeptMapper deptMapper;
+ @Autowired
+ private Tools tools;
+
+
+ //注册用户实现
+ @Override
+ public boolean register(User user) {
+ //检查用户名唯一性
+ String userName = user.getUsername()==null?null:user.getUsername().trim();
+ user.setUsername(userName);
+ if(!tools.checkUsernameUnique(userName)){
+ throw new IllegalArgumentException("用户名已存在");
+ }
+ //校验手机号完整性
+ if(!tools.checkPhoneUnique(user.getPhone())){
+ throw new IllegalArgumentException("手机号格式不合法");
+ }
+
+ //密码加密处理,内部已有异常处理
+ String encryptedPassword = tools.encryptPassword(user.getPassword());
+ user.setPassword(encryptedPassword);
+
+ //获取部门id
+ Dept dept = deptMapper.selectIdByName(user.getDeptName());
+ if(dept == null){
+ throw new IllegalArgumentException("部门不存在");
+ }
+
+ user.setDeptId(dept.getId());
+
+ //设置创建和登陆时间
+ user.setCreateTime(new Date());
+ user.setLastLoginTime(new Date());
+ //默认用户状态为正常
+ user.setStatus(1);
+ user.setRole(2);
+ return userMapper.insert(user) == 1;
+ }
+
+ //用户登录实现
+ @Override
+ public boolean login(String username, String password) {
+ User user = userMapper.selectByUsername(username);
+ if(user == null){
+ throw new IllegalArgumentException("用户不存在");
+ }
+ //验证密码
+ if(!tools.matchesPassword(password, user.getPassword())){
+ throw new IllegalArgumentException("密码错误");
+ }
+ //更新最后登录时间
+ user.setLastLoginTime(new Date());
+ return userMapper.updateById(user)==1;
+ }
+
+ @Override
+ public List getAlldept() {
+ return deptMapper.selectAllDept();
+ }
+}
diff --git a/src/main/java/com/backend/webbackend/Service/courseService.java b/src/main/java/com/backend/webbackend/Service/courseService.java
new file mode 100644
index 0000000..edd1afb
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/Service/courseService.java
@@ -0,0 +1,11 @@
+package com.backend.webbackend.Service;
+
+import com.backend.webbackend.domain.Course;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface courseService {
+ List getAllCourseInfo();
+}
diff --git a/src/main/java/com/backend/webbackend/Service/userService.java b/src/main/java/com/backend/webbackend/Service/userService.java
new file mode 100644
index 0000000..a9ac1d5
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/Service/userService.java
@@ -0,0 +1,16 @@
+package com.backend.webbackend.Service;
+
+
+import com.backend.webbackend.domain.Dept;
+import com.backend.webbackend.domain.User;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public interface userService {
+ //注册
+ boolean register(User user);
+ boolean login(String username, String password);
+ List getAlldept();
+}
diff --git a/src/main/java/com/backend/webbackend/Tools/Tools.java b/src/main/java/com/backend/webbackend/Tools/Tools.java
new file mode 100644
index 0000000..2246758
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/Tools/Tools.java
@@ -0,0 +1,52 @@
+package com.backend.webbackend.Tools;
+import com.backend.webbackend.mapper.UserMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Service;
+
+import java.util.regex.Pattern;
+
+@Service
+public class Tools {
+
+ private static final Pattern CN_MOBILE_PATTERN = Pattern.compile("^1[3-9]\\d{9}$");
+ // 定义编码器,解决 PASSWORD_ENCODER 无法解析
+ private static final BCryptPasswordEncoder PASSWORD_ENCODER = new BCryptPasswordEncoder();
+
+ @Autowired
+ private final UserMapper userMapper;
+
+ public Tools(UserMapper userMapper) {
+ this.userMapper = userMapper;
+ }
+
+ //校验用户名唯一性
+ public boolean checkUsernameUnique(String username) {
+ return userMapper.countByUsername(username)==0;
+ }
+
+ //校验手机号格式合法性
+ public boolean checkPhoneUnique(String phone) {
+ if (phone == null) {
+ return false;
+ }
+ String p = phone.trim();
+ return CN_MOBILE_PATTERN.matcher(p).matches();
+ }
+
+ // 用户名密码加密处理(BCrypt:加盐慢哈希)
+ public String encryptPassword(String password) {
+ if (password == null || password.trim().isEmpty()) {
+ throw new IllegalArgumentException("密码不能为空");
+ }
+ return PASSWORD_ENCODER.encode(password);
+ }
+
+ // 校验明文密码是否匹配已加密密码
+ public boolean matchesPassword(String rawPassword, String encodedPassword) {
+ if (rawPassword == null || encodedPassword == null) {
+ return false;
+ }
+ return PASSWORD_ENCODER.matches(rawPassword, encodedPassword);
+ }
+}
diff --git a/src/main/java/com/backend/webbackend/Vo/ResultVo.java b/src/main/java/com/backend/webbackend/Vo/ResultVo.java
new file mode 100644
index 0000000..d545d59
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/Vo/ResultVo.java
@@ -0,0 +1,22 @@
+package com.backend.webbackend.Vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data //为所有字段自动生成getter、setter、toString、equals和hashCode方法
+@AllArgsConstructor //生成一个包含所有字段的构造函数
+@NoArgsConstructor// 生成一个无参构造函数
+public class ResultVo {
+ private Integer Code; //返回代码
+ private String msg; //返回消息
+ private Object data; //返回数据
+
+
+ static public ResultVo Success(String msg,Object data){
+ return new ResultVo(2000,msg,data);
+ }
+
+ static public ResultVo Error(String msg,Object data){return new ResultVo(5000,msg,data);}
+
+}
diff --git a/src/main/java/com/backend/webbackend/domain/Course.java b/src/main/java/com/backend/webbackend/domain/Course.java
new file mode 100644
index 0000000..9d9a7e3
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/Course.java
@@ -0,0 +1,23 @@
+package com.backend.webbackend.domain;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * @TableName course
+ */
+@Data
+public class Course {
+ private Long id;
+
+ private String courseName;
+
+ private String courseCode;
+
+ private String courseDesc;
+
+ private String courseCategory;
+
+ @JsonProperty("course_ico")
+ private String courseIco;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/CourseType.java b/src/main/java/com/backend/webbackend/domain/CourseType.java
new file mode 100644
index 0000000..9d33926
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/CourseType.java
@@ -0,0 +1,13 @@
+package com.backend.webbackend.domain;
+
+import lombok.Data;
+
+/**
+ * @TableName course_type
+ */
+@Data
+public class CourseType {
+ private Integer id;
+
+ private String typename;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/Dept.java b/src/main/java/com/backend/webbackend/domain/Dept.java
new file mode 100644
index 0000000..541004f
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/Dept.java
@@ -0,0 +1,15 @@
+package com.backend.webbackend.domain;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * @TableName dept
+ */
+@Data
+public class Dept {
+ private Long id;
+
+ @JsonProperty("dept_name")
+ private String deptName;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/Device.java b/src/main/java/com/backend/webbackend/domain/Device.java
new file mode 100644
index 0000000..243897a
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/Device.java
@@ -0,0 +1,19 @@
+package com.backend.webbackend.domain;
+
+import lombok.Data;
+
+/**
+ * @TableName device
+ */
+@Data
+public class Device {
+ private Long id;
+
+ private String deviceCode;
+
+ private String deviceName;
+
+ private String deviceStatus;
+
+ private String model;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/ExamPaper.java b/src/main/java/com/backend/webbackend/domain/ExamPaper.java
new file mode 100644
index 0000000..03f1656
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/ExamPaper.java
@@ -0,0 +1,19 @@
+package com.backend.webbackend.domain;
+
+import lombok.Data;
+
+/**
+ * @TableName exam_paper
+ */
+@Data
+public class ExamPaper {
+ private Long id;
+
+ private String paperName;
+
+ private String paperCode;
+
+ private String paperDesc;
+
+ private Integer totalScore;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/FaultEvent.java b/src/main/java/com/backend/webbackend/domain/FaultEvent.java
new file mode 100644
index 0000000..17362dd
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/FaultEvent.java
@@ -0,0 +1,28 @@
+package com.backend.webbackend.domain;
+
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * @TableName fault_event
+ */
+@Data
+public class FaultEvent {
+ private Long id;
+
+ private String eventCode;
+
+ private Long deviceId;
+
+ private Long partId;
+
+ private Long faultItemId;
+
+ private Date occurTime;
+
+ private String phenomenonDesc;
+
+ private String reasonAnalysis;
+
+ private String processingMeasures;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/FaultItem.java b/src/main/java/com/backend/webbackend/domain/FaultItem.java
new file mode 100644
index 0000000..111d060
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/FaultItem.java
@@ -0,0 +1,26 @@
+package com.backend.webbackend.domain;
+
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * @TableName fault_item
+ */
+@Data
+public class FaultItem {
+ private Long id;
+
+ private String faultCode;
+
+ private String faultName;
+
+ private String faultDesc;
+
+ private Long deviceId;
+
+ private Long partId;
+
+ private Long creatorId;
+
+ private Date createTime;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/ModelFile.java b/src/main/java/com/backend/webbackend/domain/ModelFile.java
new file mode 100644
index 0000000..f45167b
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/ModelFile.java
@@ -0,0 +1,17 @@
+package com.backend.webbackend.domain;
+
+import lombok.Data;
+
+/**
+ * @TableName model_file
+ */
+@Data
+public class ModelFile {
+ private Long id;
+
+ private Long partId;
+
+ private String fileName;
+
+ private String filePath;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/Part.java b/src/main/java/com/backend/webbackend/domain/Part.java
new file mode 100644
index 0000000..9a10919
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/Part.java
@@ -0,0 +1,19 @@
+package com.backend.webbackend.domain;
+
+import lombok.Data;
+
+/**
+ * @TableName part
+ */
+@Data
+public class Part {
+ private Long id;
+
+ private String partCode;
+
+ private String partName;
+
+ private Long deviceId;
+
+ private String partDesc;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/TrainingResource.java b/src/main/java/com/backend/webbackend/domain/TrainingResource.java
new file mode 100644
index 0000000..90a4a22
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/TrainingResource.java
@@ -0,0 +1,19 @@
+package com.backend.webbackend.domain;
+
+import lombok.Data;
+
+/**
+ * @TableName training_resource
+ */
+@Data
+public class TrainingResource {
+ private Long id;
+
+ private String resourceName;
+
+ private String resourceType;
+
+ private String filePath;
+
+ private Long courseId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/TroubleshootNode.java b/src/main/java/com/backend/webbackend/domain/TroubleshootNode.java
new file mode 100644
index 0000000..dc5ab5c
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/TroubleshootNode.java
@@ -0,0 +1,31 @@
+package com.backend.webbackend.domain;
+
+import lombok.Data;
+
+/**
+ * @TableName troubleshoot_node
+ */
+@Data
+public class TroubleshootNode {
+ private Long id;
+
+ private Long faultItemId;
+
+ private Integer stepOrder;
+
+ private String stepName;
+
+ private String stepDesc;
+
+ private String checkItems;
+
+ private String measurementPoint;
+
+ private String judgeStandard;
+
+ private Long nextNodeId;
+
+ private String branchCondition;
+
+ private Integer isLeaf;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/User.java b/src/main/java/com/backend/webbackend/domain/User.java
new file mode 100644
index 0000000..ac1298c
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/User.java
@@ -0,0 +1,40 @@
+package com.backend.webbackend.domain;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * @TableName user
+ */
+@Data
+public class User {
+ private Long id;
+
+ private String username;
+
+ private String password;
+
+ @JsonProperty("real_name")
+ private String realName;
+
+ @JsonProperty("dept_id")
+ private Long deptId;
+
+ @JsonProperty("dept_name")
+ private String deptName;
+
+
+ private String phone;
+
+ private Integer role;
+
+ private Integer status;
+
+ @JsonProperty("create_time")
+ private Date createTime;
+
+ @JsonProperty("last_login_time")
+ private Date lastLoginTime;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/UserExamScore.java b/src/main/java/com/backend/webbackend/domain/UserExamScore.java
new file mode 100644
index 0000000..222de0b
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/UserExamScore.java
@@ -0,0 +1,17 @@
+package com.backend.webbackend.domain;
+
+import lombok.Data;
+
+/**
+ * @TableName user_exam_score
+ */
+@Data
+public class UserExamScore {
+ private Long id;
+
+ private Long userId;
+
+ private Long paperId;
+
+ private Integer score;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/domain/UserLearningRecord.java b/src/main/java/com/backend/webbackend/domain/UserLearningRecord.java
new file mode 100644
index 0000000..f253c74
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/domain/UserLearningRecord.java
@@ -0,0 +1,19 @@
+package com.backend.webbackend.domain;
+
+import lombok.Data;
+
+/**
+ * @TableName user_learning_record
+ */
+@Data
+public class UserLearningRecord {
+ private Long id;
+
+ private Long userId;
+
+ private Long courseId;
+
+ private Long resourceId;
+
+ private String status;
+}
\ No newline at end of file
diff --git a/src/main/java/com/backend/webbackend/mapper/CourseMapper.java b/src/main/java/com/backend/webbackend/mapper/CourseMapper.java
new file mode 100644
index 0000000..a4f6664
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/CourseMapper.java
@@ -0,0 +1,29 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.Course;
+
+import java.util.List;
+
+/**
+* @author Quella
+* @description 针对表【course(课程表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.Course
+*/
+public interface CourseMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(Course record);
+
+ int insertSelective(Course record);
+
+ Course selectByPrimaryKey(Long id);
+
+ List selectAllCourses();
+
+ int updateByPrimaryKeySelective(Course record);
+
+ int updateByPrimaryKey(Course record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/CourseTypeMapper.java b/src/main/java/com/backend/webbackend/mapper/CourseTypeMapper.java
new file mode 100644
index 0000000..3675f78
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/CourseTypeMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.CourseType;
+
+/**
+* @author Quella
+* @description 针对表【course_type】的数据库操作Mapper
+* @createDate 2026-01-13 15:15:07
+* @Entity com.backend.webbackend.domain.CourseType
+*/
+public interface CourseTypeMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(CourseType record);
+
+ int insertSelective(CourseType record);
+
+ CourseType selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(CourseType record);
+
+ int updateByPrimaryKey(CourseType record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/DeptMapper.java b/src/main/java/com/backend/webbackend/mapper/DeptMapper.java
new file mode 100644
index 0000000..0d5ebe6
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/DeptMapper.java
@@ -0,0 +1,30 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.Dept;
+
+import java.util.List;
+
+/**
+* @author Quella
+* @description 针对表【dept(部门表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.Dept
+*/
+public interface DeptMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(Dept record);
+
+ int insertSelective(Dept record);
+
+ Dept selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(Dept record);
+
+ int updateByPrimaryKey(Dept record);
+
+ List selectAllDept();
+
+ Dept selectIdByName(String name);
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/DeviceMapper.java b/src/main/java/com/backend/webbackend/mapper/DeviceMapper.java
new file mode 100644
index 0000000..cc98155
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/DeviceMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.Device;
+
+/**
+* @author Quella
+* @description 针对表【device(设备表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.Device
+*/
+public interface DeviceMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(Device record);
+
+ int insertSelective(Device record);
+
+ Device selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(Device record);
+
+ int updateByPrimaryKey(Device record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/ExamPaperMapper.java b/src/main/java/com/backend/webbackend/mapper/ExamPaperMapper.java
new file mode 100644
index 0000000..8a67b22
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/ExamPaperMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.ExamPaper;
+
+/**
+* @author Quella
+* @description 针对表【exam_paper(试卷表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.ExamPaper
+*/
+public interface ExamPaperMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(ExamPaper record);
+
+ int insertSelective(ExamPaper record);
+
+ ExamPaper selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(ExamPaper record);
+
+ int updateByPrimaryKey(ExamPaper record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/FaultEventMapper.java b/src/main/java/com/backend/webbackend/mapper/FaultEventMapper.java
new file mode 100644
index 0000000..1608f03
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/FaultEventMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.FaultEvent;
+
+/**
+* @author Quella
+* @description 针对表【fault_event(故障事件表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.FaultEvent
+*/
+public interface FaultEventMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(FaultEvent record);
+
+ int insertSelective(FaultEvent record);
+
+ FaultEvent selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(FaultEvent record);
+
+ int updateByPrimaryKey(FaultEvent record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/FaultItemMapper.java b/src/main/java/com/backend/webbackend/mapper/FaultItemMapper.java
new file mode 100644
index 0000000..f2b57a3
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/FaultItemMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.FaultItem;
+
+/**
+* @author Quella
+* @description 针对表【fault_item(故障条目表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.FaultItem
+*/
+public interface FaultItemMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(FaultItem record);
+
+ int insertSelective(FaultItem record);
+
+ FaultItem selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(FaultItem record);
+
+ int updateByPrimaryKey(FaultItem record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/ModelFileMapper.java b/src/main/java/com/backend/webbackend/mapper/ModelFileMapper.java
new file mode 100644
index 0000000..1ab7b3a
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/ModelFileMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.ModelFile;
+
+/**
+* @author Quella
+* @description 针对表【model_file(模型文件表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.ModelFile
+*/
+public interface ModelFileMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(ModelFile record);
+
+ int insertSelective(ModelFile record);
+
+ ModelFile selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(ModelFile record);
+
+ int updateByPrimaryKey(ModelFile record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/PartMapper.java b/src/main/java/com/backend/webbackend/mapper/PartMapper.java
new file mode 100644
index 0000000..9923cce
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/PartMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.Part;
+
+/**
+* @author Quella
+* @description 针对表【part(部件表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.Part
+*/
+public interface PartMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(Part record);
+
+ int insertSelective(Part record);
+
+ Part selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(Part record);
+
+ int updateByPrimaryKey(Part record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/TrainingResourceMapper.java b/src/main/java/com/backend/webbackend/mapper/TrainingResourceMapper.java
new file mode 100644
index 0000000..97c386b
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/TrainingResourceMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.TrainingResource;
+
+/**
+* @author Quella
+* @description 针对表【training_resource(培训资源表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.TrainingResource
+*/
+public interface TrainingResourceMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(TrainingResource record);
+
+ int insertSelective(TrainingResource record);
+
+ TrainingResource selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(TrainingResource record);
+
+ int updateByPrimaryKey(TrainingResource record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/TroubleshootNodeMapper.java b/src/main/java/com/backend/webbackend/mapper/TroubleshootNodeMapper.java
new file mode 100644
index 0000000..30b7102
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/TroubleshootNodeMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.TroubleshootNode;
+
+/**
+* @author Quella
+* @description 针对表【troubleshoot_node(排故流程节点表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.TroubleshootNode
+*/
+public interface TroubleshootNodeMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(TroubleshootNode record);
+
+ int insertSelective(TroubleshootNode record);
+
+ TroubleshootNode selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(TroubleshootNode record);
+
+ int updateByPrimaryKey(TroubleshootNode record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/UserExamScoreMapper.java b/src/main/java/com/backend/webbackend/mapper/UserExamScoreMapper.java
new file mode 100644
index 0000000..7c765b1
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/UserExamScoreMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.UserExamScore;
+
+/**
+* @author Quella
+* @description 针对表【user_exam_score(用户考试成绩表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.UserExamScore
+*/
+public interface UserExamScoreMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(UserExamScore record);
+
+ int insertSelective(UserExamScore record);
+
+ UserExamScore selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(UserExamScore record);
+
+ int updateByPrimaryKey(UserExamScore record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/UserLearningRecordMapper.java b/src/main/java/com/backend/webbackend/mapper/UserLearningRecordMapper.java
new file mode 100644
index 0000000..10b35eb
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/UserLearningRecordMapper.java
@@ -0,0 +1,25 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.UserLearningRecord;
+
+/**
+* @author Quella
+* @description 针对表【user_learning_record(用户学习记录表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.UserLearningRecord
+*/
+public interface UserLearningRecordMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(UserLearningRecord record);
+
+ int insertSelective(UserLearningRecord record);
+
+ UserLearningRecord selectByPrimaryKey(Long id);
+
+ int updateByPrimaryKeySelective(UserLearningRecord record);
+
+ int updateByPrimaryKey(UserLearningRecord record);
+
+}
diff --git a/src/main/java/com/backend/webbackend/mapper/UserMapper.java b/src/main/java/com/backend/webbackend/mapper/UserMapper.java
new file mode 100644
index 0000000..ead5017
--- /dev/null
+++ b/src/main/java/com/backend/webbackend/mapper/UserMapper.java
@@ -0,0 +1,31 @@
+package com.backend.webbackend.mapper;
+
+import com.backend.webbackend.domain.User;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author Quella
+* @description 针对表【user(用户表)】的数据库操作Mapper
+* @createDate 2026-01-12 16:27:05
+* @Entity generator.domain.User
+*/
+public interface UserMapper {
+
+ int deleteByPrimaryKey(Long id);
+
+ int insert(User record);
+
+ int insertSelective(User record);
+
+ User selectByPrimaryKey(Long id);
+
+ User selectByUsername(@Param("username") String username);
+
+ int updateByPrimaryKeySelective(User record);
+
+ int updateByPrimaryKey(User record);
+
+ int countByUsername(@Param("username") String username);
+
+ int updateById(User user);
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..4f05097
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,18 @@
+server:
+ port: 8080
+
+spring:
+ datasource:
+ url: jdbc:mysql://101.35.140.199:13306/ietm
+ username: ietm
+ password: ietm11335577
+
+mybatis:
+ mapper-locations: classpath:/mapper/*.xml
+
+#logging:
+# level:
+# com:
+# backend:
+# webbackend:
+# mapper: debug
\ No newline at end of file
diff --git a/src/main/resources/mapper/CourseMapper.xml b/src/main/resources/mapper/CourseMapper.xml
new file mode 100644
index 0000000..a01ccf3
--- /dev/null
+++ b/src/main/resources/mapper/CourseMapper.xml
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,course_name,course_code,course_desc,course_category,course_ico
+
+
+
+
+
+
+
+ delete from course
+ where id = #{id}
+
+
+
+ insert into course
+ ( id,course_name,course_code,course_desc,course_category)
+ values (#{id},#{courseName},#{courseCode},#{courseDesc},#{courseCategory})
+
+
+ insert into course
+
+ id,
+ course_name,
+ course_code,
+ course_desc,
+ course_category,
+
+
+ #{id},
+ #{courseName},
+ #{courseCode},
+ #{courseDesc},
+ #{courseCategory},
+
+
+
+
+ update course
+
+
+ course_name = #{courseName},
+
+
+ course_code = #{courseCode},
+
+
+ course_desc = #{courseDesc},
+
+
+ course_category = #{courseCategory},
+
+
+ where id = #{id}
+
+
+ update course
+ set
+ course_name = #{courseName},
+ course_code = #{courseCode},
+ course_desc = #{courseDesc},
+ course_category = #{courseCategory}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/CourseTypeMapper.xml b/src/main/resources/mapper/CourseTypeMapper.xml
new file mode 100644
index 0000000..9650cf7
--- /dev/null
+++ b/src/main/resources/mapper/CourseTypeMapper.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+ id,typeName
+
+
+
+
+
+ delete from course_type
+ where id = #{id}
+
+
+ insert into course_type
+ ( id,typeName)
+ values (#{id},#{typename})
+
+
+ insert into course_type
+
+ id,
+ typeName,
+
+
+ #{id},
+ #{typename},
+
+
+
+ update course_type
+
+
+ typeName = #{typename},
+
+
+ where id = #{id}
+
+
+ update course_type
+ set
+ typeName = #{typename}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/DeptMapper.xml b/src/main/resources/mapper/DeptMapper.xml
new file mode 100644
index 0000000..3386970
--- /dev/null
+++ b/src/main/resources/mapper/DeptMapper.xml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+ id,dept_name
+
+
+
+
+
+
+
+
+ delete from dept
+ where id = #{id}
+
+
+ insert into dept
+ ( id,dept_name)
+ values (#{id},#{deptName})
+
+
+ insert into dept
+
+ id,
+ dept_name,
+
+
+ #{id},
+ #{deptName},
+
+
+
+ update dept
+
+
+ dept_name = #{deptName},
+
+
+ where id = #{id}
+
+
+ update dept
+ set
+ dept_name = #{deptName}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/DeviceMapper.xml b/src/main/resources/mapper/DeviceMapper.xml
new file mode 100644
index 0000000..55e1d9b
--- /dev/null
+++ b/src/main/resources/mapper/DeviceMapper.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,device_code,device_name,device_status,model
+
+
+
+
+
+ delete from device
+ where id = #{id}
+
+
+ insert into device
+ ( id,device_code,device_name,device_status,model)
+ values (#{id},#{deviceCode},#{deviceName},#{deviceStatus},#{model})
+
+
+ insert into device
+
+ id,
+ device_code,
+ device_name,
+ device_status,
+ model,
+
+
+ #{id},
+ #{deviceCode},
+ #{deviceName},
+ #{deviceStatus},
+ #{model},
+
+
+
+ update device
+
+
+ device_code = #{deviceCode},
+
+
+ device_name = #{deviceName},
+
+
+ device_status = #{deviceStatus},
+
+
+ model = #{model},
+
+
+ where id = #{id}
+
+
+ update device
+ set
+ device_code = #{deviceCode},
+ device_name = #{deviceName},
+ device_status = #{deviceStatus},
+ model = #{model}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/ExamPaperMapper.xml b/src/main/resources/mapper/ExamPaperMapper.xml
new file mode 100644
index 0000000..c16501b
--- /dev/null
+++ b/src/main/resources/mapper/ExamPaperMapper.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,paper_name,paper_code,paper_desc,total_score
+
+
+
+
+
+ delete from exam_paper
+ where id = #{id}
+
+
+ insert into exam_paper
+ ( id,paper_name,paper_code,paper_desc,total_score)
+ values (#{id},#{paperName},#{paperCode},#{paperDesc},#{totalScore})
+
+
+ insert into exam_paper
+
+ id,
+ paper_name,
+ paper_code,
+ paper_desc,
+ total_score,
+
+
+ #{id},
+ #{paperName},
+ #{paperCode},
+ #{paperDesc},
+ #{totalScore},
+
+
+
+ update exam_paper
+
+
+ paper_name = #{paperName},
+
+
+ paper_code = #{paperCode},
+
+
+ paper_desc = #{paperDesc},
+
+
+ total_score = #{totalScore},
+
+
+ where id = #{id}
+
+
+ update exam_paper
+ set
+ paper_name = #{paperName},
+ paper_code = #{paperCode},
+ paper_desc = #{paperDesc},
+ total_score = #{totalScore}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/FaultEventMapper.xml b/src/main/resources/mapper/FaultEventMapper.xml
new file mode 100644
index 0000000..a3d936b
--- /dev/null
+++ b/src/main/resources/mapper/FaultEventMapper.xml
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,event_code,device_id,part_id,fault_item_id,occur_time,
+ phenomenon_desc,reason_analysis,processing_measures
+
+
+
+
+
+ delete from fault_event
+ where id = #{id}
+
+
+ insert into fault_event
+ ( id,event_code,device_id,part_id,fault_item_id,occur_time,
+ phenomenon_desc,reason_analysis,processing_measures)
+ values (#{id},#{eventCode},#{deviceId},#{partId},#{faultItemId},#{occurTime},
+ #{phenomenonDesc},#{reasonAnalysis},#{processingMeasures})
+
+
+ insert into fault_event
+
+ id,
+ event_code,
+ device_id,
+ part_id,
+ fault_item_id,
+ occur_time,
+ phenomenon_desc,
+ reason_analysis,
+ processing_measures,
+
+
+ #{id},
+ #{eventCode},
+ #{deviceId},
+ #{partId},
+ #{faultItemId},
+ #{occurTime},
+ #{phenomenonDesc},
+ #{reasonAnalysis},
+ #{processingMeasures},
+
+
+
+ update fault_event
+
+
+ event_code = #{eventCode},
+
+
+ device_id = #{deviceId},
+
+
+ part_id = #{partId},
+
+
+ fault_item_id = #{faultItemId},
+
+
+ occur_time = #{occurTime},
+
+
+ phenomenon_desc = #{phenomenonDesc},
+
+
+ reason_analysis = #{reasonAnalysis},
+
+
+ processing_measures = #{processingMeasures},
+
+
+ where id = #{id}
+
+
+ update fault_event
+ set
+ event_code = #{eventCode},
+ device_id = #{deviceId},
+ part_id = #{partId},
+ fault_item_id = #{faultItemId},
+ occur_time = #{occurTime},
+ phenomenon_desc = #{phenomenonDesc},
+ reason_analysis = #{reasonAnalysis},
+ processing_measures = #{processingMeasures}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/FaultItemMapper.xml b/src/main/resources/mapper/FaultItemMapper.xml
new file mode 100644
index 0000000..e0cdc96
--- /dev/null
+++ b/src/main/resources/mapper/FaultItemMapper.xml
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,fault_code,fault_name,fault_desc,device_id,part_id,
+ creator_id,create_time
+
+
+
+
+
+ delete from fault_item
+ where id = #{id}
+
+
+ insert into fault_item
+ ( id,fault_code,fault_name,fault_desc,device_id,part_id,
+ creator_id,create_time)
+ values (#{id},#{faultCode},#{faultName},#{faultDesc},#{deviceId},#{partId},
+ #{creatorId},#{createTime})
+
+
+ insert into fault_item
+
+ id,
+ fault_code,
+ fault_name,
+ fault_desc,
+ device_id,
+ part_id,
+ creator_id,
+ create_time,
+
+
+ #{id},
+ #{faultCode},
+ #{faultName},
+ #{faultDesc},
+ #{deviceId},
+ #{partId},
+ #{creatorId},
+ #{createTime},
+
+
+
+ update fault_item
+
+
+ fault_code = #{faultCode},
+
+
+ fault_name = #{faultName},
+
+
+ fault_desc = #{faultDesc},
+
+
+ device_id = #{deviceId},
+
+
+ part_id = #{partId},
+
+
+ creator_id = #{creatorId},
+
+
+ create_time = #{createTime},
+
+
+ where id = #{id}
+
+
+ update fault_item
+ set
+ fault_code = #{faultCode},
+ fault_name = #{faultName},
+ fault_desc = #{faultDesc},
+ device_id = #{deviceId},
+ part_id = #{partId},
+ creator_id = #{creatorId},
+ create_time = #{createTime}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/ModelFileMapper.xml b/src/main/resources/mapper/ModelFileMapper.xml
new file mode 100644
index 0000000..be0bcc0
--- /dev/null
+++ b/src/main/resources/mapper/ModelFileMapper.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ id,part_id,file_name,file_path
+
+
+
+
+
+ delete from model_file
+ where id = #{id}
+
+
+ insert into model_file
+ ( id,part_id,file_name,file_path)
+ values (#{id},#{partId},#{fileName},#{filePath})
+
+
+ insert into model_file
+
+ id,
+ part_id,
+ file_name,
+ file_path,
+
+
+ #{id},
+ #{partId},
+ #{fileName},
+ #{filePath},
+
+
+
+ update model_file
+
+
+ part_id = #{partId},
+
+
+ file_name = #{fileName},
+
+
+ file_path = #{filePath},
+
+
+ where id = #{id}
+
+
+ update model_file
+ set
+ part_id = #{partId},
+ file_name = #{fileName},
+ file_path = #{filePath}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/PartMapper.xml b/src/main/resources/mapper/PartMapper.xml
new file mode 100644
index 0000000..d873e01
--- /dev/null
+++ b/src/main/resources/mapper/PartMapper.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,part_code,part_name,device_id,part_desc
+
+
+
+
+
+ delete from part
+ where id = #{id}
+
+
+ insert into part
+ ( id,part_code,part_name,device_id,part_desc)
+ values (#{id},#{partCode},#{partName},#{deviceId},#{partDesc})
+
+
+ insert into part
+
+ id,
+ part_code,
+ part_name,
+ device_id,
+ part_desc,
+
+
+ #{id},
+ #{partCode},
+ #{partName},
+ #{deviceId},
+ #{partDesc},
+
+
+
+ update part
+
+
+ part_code = #{partCode},
+
+
+ part_name = #{partName},
+
+
+ device_id = #{deviceId},
+
+
+ part_desc = #{partDesc},
+
+
+ where id = #{id}
+
+
+ update part
+ set
+ part_code = #{partCode},
+ part_name = #{partName},
+ device_id = #{deviceId},
+ part_desc = #{partDesc}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/TrainingResourceMapper.xml b/src/main/resources/mapper/TrainingResourceMapper.xml
new file mode 100644
index 0000000..c97d914
--- /dev/null
+++ b/src/main/resources/mapper/TrainingResourceMapper.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,resource_name,resource_type,file_path,course_id
+
+
+
+
+
+ delete from training_resource
+ where id = #{id}
+
+
+ insert into training_resource
+ ( id,resource_name,resource_type,file_path,course_id)
+ values (#{id},#{resourceName},#{resourceType},#{filePath},#{courseId})
+
+
+ insert into training_resource
+
+ id,
+ resource_name,
+ resource_type,
+ file_path,
+ course_id,
+
+
+ #{id},
+ #{resourceName},
+ #{resourceType},
+ #{filePath},
+ #{courseId},
+
+
+
+ update training_resource
+
+
+ resource_name = #{resourceName},
+
+
+ resource_type = #{resourceType},
+
+
+ file_path = #{filePath},
+
+
+ course_id = #{courseId},
+
+
+ where id = #{id}
+
+
+ update training_resource
+ set
+ resource_name = #{resourceName},
+ resource_type = #{resourceType},
+ file_path = #{filePath},
+ course_id = #{courseId}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/TroubleshootNodeMapper.xml b/src/main/resources/mapper/TroubleshootNodeMapper.xml
new file mode 100644
index 0000000..efc8cb0
--- /dev/null
+++ b/src/main/resources/mapper/TroubleshootNodeMapper.xml
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,fault_item_id,step_order,step_name,step_desc,check_items,
+ measurement_point,judge_standard,next_node_id,branch_condition,is_leaf
+
+
+
+
+
+ delete from troubleshoot_node
+ where id = #{id}
+
+
+ insert into troubleshoot_node
+ ( id,fault_item_id,step_order,step_name,step_desc,check_items,
+ measurement_point,judge_standard,next_node_id,branch_condition,is_leaf)
+ values (#{id},#{faultItemId},#{stepOrder},#{stepName},#{stepDesc},#{checkItems},
+ #{measurementPoint},#{judgeStandard},#{nextNodeId},#{branchCondition},#{isLeaf})
+
+
+ insert into troubleshoot_node
+
+ id,
+ fault_item_id,
+ step_order,
+ step_name,
+ step_desc,
+ check_items,
+ measurement_point,
+ judge_standard,
+ next_node_id,
+ branch_condition,
+ is_leaf,
+
+
+ #{id},
+ #{faultItemId},
+ #{stepOrder},
+ #{stepName},
+ #{stepDesc},
+ #{checkItems},
+ #{measurementPoint},
+ #{judgeStandard},
+ #{nextNodeId},
+ #{branchCondition},
+ #{isLeaf},
+
+
+
+ update troubleshoot_node
+
+
+ fault_item_id = #{faultItemId},
+
+
+ step_order = #{stepOrder},
+
+
+ step_name = #{stepName},
+
+
+ step_desc = #{stepDesc},
+
+
+ check_items = #{checkItems},
+
+
+ measurement_point = #{measurementPoint},
+
+
+ judge_standard = #{judgeStandard},
+
+
+ next_node_id = #{nextNodeId},
+
+
+ branch_condition = #{branchCondition},
+
+
+ is_leaf = #{isLeaf},
+
+
+ where id = #{id}
+
+
+ update troubleshoot_node
+ set
+ fault_item_id = #{faultItemId},
+ step_order = #{stepOrder},
+ step_name = #{stepName},
+ step_desc = #{stepDesc},
+ check_items = #{checkItems},
+ measurement_point = #{measurementPoint},
+ judge_standard = #{judgeStandard},
+ next_node_id = #{nextNodeId},
+ branch_condition = #{branchCondition},
+ is_leaf = #{isLeaf}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/UserExamScoreMapper.xml b/src/main/resources/mapper/UserExamScoreMapper.xml
new file mode 100644
index 0000000..78bc2bb
--- /dev/null
+++ b/src/main/resources/mapper/UserExamScoreMapper.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ id,user_id,paper_id,score
+
+
+
+
+
+ delete from user_exam_score
+ where id = #{id}
+
+
+ insert into user_exam_score
+ ( id,user_id,paper_id,score)
+ values (#{id},#{userId},#{paperId},#{score})
+
+
+ insert into user_exam_score
+
+ id,
+ user_id,
+ paper_id,
+ score,
+
+
+ #{id},
+ #{userId},
+ #{paperId},
+ #{score},
+
+
+
+ update user_exam_score
+
+
+ user_id = #{userId},
+
+
+ paper_id = #{paperId},
+
+
+ score = #{score},
+
+
+ where id = #{id}
+
+
+ update user_exam_score
+ set
+ user_id = #{userId},
+ paper_id = #{paperId},
+ score = #{score}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/UserLearningRecordMapper.xml b/src/main/resources/mapper/UserLearningRecordMapper.xml
new file mode 100644
index 0000000..221c7fb
--- /dev/null
+++ b/src/main/resources/mapper/UserLearningRecordMapper.xml
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,user_id,course_id,resource_id,status
+
+
+
+
+
+ delete from user_learning_record
+ where id = #{id}
+
+
+ insert into user_learning_record
+ ( id,user_id,course_id,resource_id,status)
+ values (#{id},#{userId},#{courseId},#{resourceId},#{status})
+
+
+ insert into user_learning_record
+
+ id,
+ user_id,
+ course_id,
+ resource_id,
+ status,
+
+
+ #{id},
+ #{userId},
+ #{courseId},
+ #{resourceId},
+ #{status},
+
+
+
+ update user_learning_record
+
+
+ user_id = #{userId},
+
+
+ course_id = #{courseId},
+
+
+ resource_id = #{resourceId},
+
+
+ status = #{status},
+
+
+ where id = #{id}
+
+
+ update user_learning_record
+ set
+ user_id = #{userId},
+ course_id = #{courseId},
+ resource_id = #{resourceId},
+ status = #{status}
+ where id = #{id}
+
+
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
new file mode 100644
index 0000000..4aae411
--- /dev/null
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ id,username,password,real_name,phone,role,
+ status,create_time,last_login_time
+
+
+
+
+
+
+
+ delete from user
+ where id = #{id}
+
+
+
+ insert into user
+ ( id,username,password,real_name,dept_id,phone,role,
+ status,create_time,last_login_time)
+ values (#{id},#{username},#{password},#{realName},#{deptId},#{phone},#{role},
+ #{status},#{createTime},#{lastLoginTime})
+
+
+
+ insert into user
+
+ id,
+ username,
+ password,
+ real_name,
+ phone,
+ role,
+ status,
+ create_time,
+ last_login_time,
+
+
+ #{id},
+ #{username},
+ #{password},
+ #{realName},
+ #{phone},
+ #{role},
+ #{status},
+ #{createTime},
+ #{lastLoginTime},
+
+
+
+ update user
+
+
+ username = #{username},
+
+
+ password = #{password},
+
+
+ real_name = #{realName},
+
+
+ phone = #{phone},
+
+
+ role = #{role},
+
+
+ status = #{status},
+
+
+ create_time = #{createTime},
+
+
+ last_login_time = #{lastLoginTime},
+
+
+ where id = #{id}
+
+
+ update user
+ set
+ username = #{username},
+ password = #{password},
+ real_name = #{realName},
+ phone = #{phone},
+ role = #{role},
+ status = #{status},
+ create_time = #{createTime},
+ last_login_time = #{lastLoginTime}
+ where id = #{id}
+
+
+ update user
+ set
+ last_login_time = #{lastLoginTime}
+ where id = #{id}
+
+
diff --git a/src/main/resources/static/index.html b/src/main/resources/static/index.html
new file mode 100644
index 0000000..e2d94a2
--- /dev/null
+++ b/src/main/resources/static/index.html
@@ -0,0 +1,6 @@
+
+
+ hello word!!!
+ this is a html page
+
+
\ No newline at end of file
diff --git a/src/test/java/com/backend/webbackend/ApplicationTests.java b/src/test/java/com/backend/webbackend/ApplicationTests.java
new file mode 100644
index 0000000..1c8a8e3
--- /dev/null
+++ b/src/test/java/com/backend/webbackend/ApplicationTests.java
@@ -0,0 +1,13 @@
+package com.backend.webbackend;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class ApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}