From 8c829732ca08617f383eacb818beb05114a2fb7f Mon Sep 17 00:00:00 2001
From: CoderXiZhe <1974164566@qq.com>
Date: Mon, 20 Feb 2023 16:22:41 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E8=80=83=E6=A0=B8=E4=BD=9C=E4=B8=9A?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
2022-Autumn/Backend/xizhe/README.md | 11 +++
2022-Autumn/Backend/xizhe/Test1/README.md | 5 +
2022-Autumn/Backend/xizhe/Test1/pom.xml | 15 +++
.../src/main/java/com/xizhe/Solution.java | 72 ++++++++++++++
.../Test1/src/main/java/com/xizhe/Test.java | 20 ++++
2022-Autumn/Backend/xizhe/Test3/.gitignore | 33 +++++++
2022-Autumn/Backend/xizhe/Test3/README.md | 4 +
2022-Autumn/Backend/xizhe/Test3/pom.xml | 23 +++++
.../java/com/xizhe/demo/DemoApplication.java | 18 ++++
.../com/xizhe/demo/config/MyBatisConfig.java | 24 +++++
.../demo/controller/GradeController.java | 47 ++++++++++
.../demo/controller/StudentController.java | 20 ++++
.../main/java/com/xizhe/demo/dto/Result.java | 37 ++++++++
.../java/com/xizhe/demo/entity/Grade.java | 29 ++++++
.../java/com/xizhe/demo/entity/School.java | 26 ++++++
.../java/com/xizhe/demo/entity/Student.java | 30 ++++++
.../com/xizhe/demo/mapper/GradeMapper.java | 16 ++++
.../com/xizhe/demo/mapper/SchoolMapper.java | 13 +++
.../com/xizhe/demo/mapper/StudentMapper.java | 13 +++
.../com/xizhe/demo/service/GradeService.java | 43 +++++++++
.../com/xizhe/demo/service/SchoolService.java | 13 +++
.../xizhe/demo/service/StudentService.java | 13 +++
.../demo/service/impl/GradeServiceImpl.java | 87 +++++++++++++++++
.../demo/service/impl/SchoolServiceImpl.java | 18 ++++
.../demo/service/impl/StudentServiceImpl.java | 18 ++++
.../Test3/src/main/resources/application.yaml | 17 ++++
.../xizhe/Test3/src/main/resources/test.sql | 93 +++++++++++++++++++
.../com/xizhe/demo/DemoApplicationTests.java | 13 +++
28 files changed, 771 insertions(+)
create mode 100644 2022-Autumn/Backend/xizhe/README.md
create mode 100644 2022-Autumn/Backend/xizhe/Test1/README.md
create mode 100644 2022-Autumn/Backend/xizhe/Test1/pom.xml
create mode 100644 2022-Autumn/Backend/xizhe/Test1/src/main/java/com/xizhe/Solution.java
create mode 100644 2022-Autumn/Backend/xizhe/Test1/src/main/java/com/xizhe/Test.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/.gitignore
create mode 100644 2022-Autumn/Backend/xizhe/Test3/README.md
create mode 100644 2022-Autumn/Backend/xizhe/Test3/pom.xml
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/DemoApplication.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/config/MyBatisConfig.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/controller/GradeController.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/controller/StudentController.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/dto/Result.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/Grade.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/School.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/Student.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/GradeMapper.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/SchoolMapper.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/StudentMapper.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/GradeService.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/SchoolService.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/StudentService.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/impl/GradeServiceImpl.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/impl/SchoolServiceImpl.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/impl/StudentServiceImpl.java
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/resources/application.yaml
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/main/resources/test.sql
create mode 100644 2022-Autumn/Backend/xizhe/Test3/src/test/java/com/xizhe/demo/DemoApplicationTests.java
diff --git a/2022-Autumn/Backend/xizhe/README.md b/2022-Autumn/Backend/xizhe/README.md
new file mode 100644
index 0000000..fb067a5
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/README.md
@@ -0,0 +1,11 @@
+# 作业介绍
+ 1. Test1 作业包含立扣的两道算法题
+ + 第一题的思路是合并数组后进行排序
+ + 第二题主要是运用栈数据结构
+
+ 2. Test2 作业
+ + 使用springboot + mp + mysql 实现简单查询操作
+ + sql文件放在resources目录下
+
+ 3. 20-软件-李昊
+
\ No newline at end of file
diff --git a/2022-Autumn/Backend/xizhe/Test1/README.md b/2022-Autumn/Backend/xizhe/Test1/README.md
new file mode 100644
index 0000000..8b24a0d
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test1/README.md
@@ -0,0 +1,5 @@
+# 作业介绍
+ 作业包含立扣的两道算法题
+ + 第一题的思路是合并数组后进行排序
+ + 第二题主要是运用栈数据结构
+ + 20-软件-李昊
\ No newline at end of file
diff --git a/2022-Autumn/Backend/xizhe/Test1/pom.xml b/2022-Autumn/Backend/xizhe/Test1/pom.xml
new file mode 100644
index 0000000..a4142e4
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test1/pom.xml
@@ -0,0 +1,15 @@
+
+
+
+ demo
+ com.xizhe
+ 0.0.1-SNAPSHOT
+
+ 4.0.0
+
+ Test1
+
+
+
\ No newline at end of file
diff --git a/2022-Autumn/Backend/xizhe/Test1/src/main/java/com/xizhe/Solution.java b/2022-Autumn/Backend/xizhe/Test1/src/main/java/com/xizhe/Solution.java
new file mode 100644
index 0000000..c055393
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test1/src/main/java/com/xizhe/Solution.java
@@ -0,0 +1,72 @@
+package com.xizhe;
+
+import java.util.*;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 11:13
+ */
+
+public class Solution {
+
+
+ /**
+ * 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
+ *
+ * 请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
+ */
+ public void merge(int[] nums1, int m, int[] nums2, int n) {
+ if( n == 0) {
+ return;
+ }
+
+// if( m == 0) {
+// nums1 = nums2.clone();
+// return;
+// }
+
+ int i = m;
+ int j = 0;
+ while(i < m+n) {
+ nums1[i++] = nums2[j++];
+ }
+ Arrays.sort(nums1);
+ }
+
+
+ /**
+ * 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
+ *
+ * 有效字符串需满足:
+ *
+ * 左括号必须用相同类型的右括号闭合。
+ * 左括号必须以正确的顺序闭合。
+ * 每个右括号都有一个对应的相同类型的左括号。
+ */
+
+ public boolean isValid(String s) {
+ if((s.length() % 2) == 1) {
+ return false;
+ }
+ Stack stack = new Stack<>();
+ for( int i=0;i
+
+
+
+
+ demo
+ com.xizhe
+ 0.0.1-SNAPSHOT
+
+
+
+ 4.0.0
+ Test3
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/DemoApplication.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/DemoApplication.java
new file mode 100644
index 0000000..48c0463
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/DemoApplication.java
@@ -0,0 +1,18 @@
+package com.xizhe.demo;
+
+import lombok.extern.slf4j.Slf4j;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+@Slf4j
+@MapperScan("com.xizhe.demo.mapper")
+public class DemoApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(DemoApplication.class, args);
+ log.info("项目启动成功");
+ }
+
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/config/MyBatisConfig.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/config/MyBatisConfig.java
new file mode 100644
index 0000000..ca6ea1a
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/config/MyBatisConfig.java
@@ -0,0 +1,24 @@
+package com.xizhe.demo.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 13:43
+ */
+
+@Configuration
+public class MyBatisConfig {
+ @Bean
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+ return interceptor;
+ }
+}
\ No newline at end of file
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/controller/GradeController.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/controller/GradeController.java
new file mode 100644
index 0000000..a309a13
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/controller/GradeController.java
@@ -0,0 +1,47 @@
+package com.xizhe.demo.controller;
+
+import com.xizhe.demo.dto.Result;
+import com.xizhe.demo.service.GradeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:56
+ */
+
+@RestController
+@RequestMapping("/class")
+public class GradeController {
+
+ @Autowired
+ private GradeService gradeService;
+
+ @GetMapping("/queryStudent")
+ public Result queryExistByName(Integer id,String name) {
+ return gradeService.queryExistByName(id,name);
+ }
+
+ @GetMapping("/sumPeople/{id}")
+ public Result sum(@PathVariable Integer id) {
+ return gradeService.sum(id);
+ }
+
+ @GetMapping("/sumSex/{id}")
+ public Result sumSex(@PathVariable Integer id) {
+ return gradeService.sumSex(id);
+ }
+
+ @GetMapping("/sumLastName/{id}")
+ public Result sumLastName(@PathVariable Integer id) {
+ return gradeService.sumLastName(id);
+ }
+
+
+
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/controller/StudentController.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/controller/StudentController.java
new file mode 100644
index 0000000..0f2fa8f
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/controller/StudentController.java
@@ -0,0 +1,20 @@
+package com.xizhe.demo.controller;
+
+
+import com.xizhe.demo.dto.Result;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:55
+ */
+
+@RestController
+@RequestMapping("/student")
+public class StudentController {
+
+
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/dto/Result.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/dto/Result.java
new file mode 100644
index 0000000..b459816
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/dto/Result.java
@@ -0,0 +1,37 @@
+package com.xizhe.demo.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:57
+ */
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class Result {
+ private Boolean success;
+ private String errorMsg;
+ private Object data;
+ private Long total;
+
+ public static Result ok(){
+ return new Result(true, null, null, null);
+ }
+ public static Result ok(Object data){
+ return new Result(true, null, data, null);
+ }
+ public static Result ok(List> data, Long total){
+ return new Result(true, null, data, total);
+ }
+ public static Result fail(String errorMsg){
+ return new Result(false, errorMsg, null, null);
+ }
+}
\ No newline at end of file
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/Grade.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/Grade.java
new file mode 100644
index 0000000..2e54e03
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/Grade.java
@@ -0,0 +1,29 @@
+package com.xizhe.demo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.lang.reflect.Type;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:45
+ */
+
+@TableName("class")
+@Data
+public class Grade implements Serializable {
+
+ @TableId(type = IdType.ASSIGN_ID)
+ private Integer id;
+
+ private String name;
+
+ private Integer schoolId;
+
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/School.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/School.java
new file mode 100644
index 0000000..2041a79
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/School.java
@@ -0,0 +1,26 @@
+package com.xizhe.demo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:45
+ */
+
+@TableName("school")
+@Data
+public class School implements Serializable {
+
+ @TableId(type = IdType.ASSIGN_ID)
+ private Integer id;
+
+ private String name;
+
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/Student.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/Student.java
new file mode 100644
index 0000000..49fd111
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/entity/Student.java
@@ -0,0 +1,30 @@
+package com.xizhe.demo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:44
+ */
+@TableName("student")
+@Data
+public class Student implements Serializable {
+
+ @TableId(type = IdType.ASSIGN_ID)
+ private Integer id;
+
+ private String name;
+
+ private String sno;
+
+ private String sex;
+
+ private Integer classId;
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/GradeMapper.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/GradeMapper.java
new file mode 100644
index 0000000..bf6a02b
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/GradeMapper.java
@@ -0,0 +1,16 @@
+package com.xizhe.demo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xizhe.demo.entity.Grade;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:50
+ */
+
+public interface GradeMapper extends BaseMapper {
+
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/SchoolMapper.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/SchoolMapper.java
new file mode 100644
index 0000000..d26628b
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/SchoolMapper.java
@@ -0,0 +1,13 @@
+package com.xizhe.demo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xizhe.demo.entity.School;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:50
+ */
+public interface SchoolMapper extends BaseMapper {
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/StudentMapper.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/StudentMapper.java
new file mode 100644
index 0000000..59ae297
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/mapper/StudentMapper.java
@@ -0,0 +1,13 @@
+package com.xizhe.demo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.xizhe.demo.entity.Student;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:49
+ */
+public interface StudentMapper extends BaseMapper {
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/GradeService.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/GradeService.java
new file mode 100644
index 0000000..d7724a0
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/GradeService.java
@@ -0,0 +1,43 @@
+package com.xizhe.demo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xizhe.demo.dto.Result;
+import com.xizhe.demo.entity.Grade;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:52
+ */
+public interface GradeService extends IService {
+ /**
+ * 查询班级里是否有某一个学生
+ * @param id 班级id
+ * @param name 学生姓名
+ * @return
+ */
+ Result queryExistByName(Integer id, String name);
+
+
+ /**
+ * 统计班级人数
+ * @param id 班级id
+ * @return
+ */
+ Result sum(Integer id);
+
+ /**
+ * 统计性别人数以及比例
+ * @param id 班级id
+ * @return
+ */
+ Result sumSex(Integer id);
+
+ /**
+ * 统计姓氏与人数
+ * @param id 班级id
+ * @return
+ */
+ Result sumLastName(Integer id);
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/SchoolService.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/SchoolService.java
new file mode 100644
index 0000000..38b4d6c
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/SchoolService.java
@@ -0,0 +1,13 @@
+package com.xizhe.demo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xizhe.demo.entity.School;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:52
+ */
+public interface SchoolService extends IService {
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/StudentService.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/StudentService.java
new file mode 100644
index 0000000..0532034
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/StudentService.java
@@ -0,0 +1,13 @@
+package com.xizhe.demo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.xizhe.demo.entity.Student;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:51
+ */
+public interface StudentService extends IService {
+}
diff --git a/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/impl/GradeServiceImpl.java b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/impl/GradeServiceImpl.java
new file mode 100644
index 0000000..3adf5e1
--- /dev/null
+++ b/2022-Autumn/Backend/xizhe/Test3/src/main/java/com/xizhe/demo/service/impl/GradeServiceImpl.java
@@ -0,0 +1,87 @@
+package com.xizhe.demo.service.impl;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xizhe.demo.dto.Result;
+import com.xizhe.demo.entity.Student;
+import com.xizhe.demo.mapper.GradeMapper;
+import com.xizhe.demo.service.GradeService;
+import com.xizhe.demo.service.StudentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.xizhe.demo.entity.Grade;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+/**
+ * @author admin
+ * @version 1.0
+ * @description: TODO
+ * @date 2023/2/20 12:54
+ */
+@Service
+public class GradeServiceImpl extends ServiceImpl implements GradeService {
+
+ @Autowired
+ private StudentService studentService;
+
+ @Override
+ public Result queryExistByName(Integer id, String name) {
+ Grade c = this.baseMapper.selectById(id);
+ if (c == null) {
+ return Result.fail("班级不存在");
+ }
+ if(StrUtil.isBlank(name)) {
+ return Result.fail("学生姓名非法");
+ }
+ List list = studentService.query().eq("name", name).eq("class_id", id).list();
+ return Result.ok(list);
+ }
+
+ @Override
+ public Result sum(Integer id) {
+ Grade c = this.baseMapper.selectById(id);
+ if (c == null) {
+ return Result.fail("班级不存在");
+ }
+ Integer count = studentService.query().eq("class_id", id).count();
+ return Result.ok(count);
+ }
+
+ @Override
+ public Result sumSex(Integer id) {
+ Grade c = this.baseMapper.selectById(id);
+ if (c == null) {
+ return Result.fail("班级不存在");
+ }
+ Map> classMap = studentService.query().eq("class_id", id)
+ .list().stream().collect(Collectors.groupingBy(Student::getSex));
+ Map map = new HashMap<>();
+ map.put("男", Optional.ofNullable(classMap.get("男")).flatMap( l -> Optional.of(l.size())).orElse(0));
+ map.put("女",Optional.ofNullable(classMap.get("女")).flatMap( l -> Optional.of(l.size())).orElse(0));
+ return Result.ok(map);
+ }
+
+ @Override
+ public Result sumLastName(Integer id) {
+ Grade c = this.baseMapper.selectById(id);
+ if (c == null) {
+ return Result.fail("班级不存在");
+ }
+ Map