From 81b6f1cc38a941b65f989ecdd40529f2648bdd8c Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 04 六月 2024 11:42:47 +0800
Subject: [PATCH] 班级成员管理代码生成,成员管理查询数据接口
---
src/main/java/com/ycl/jxkg/domain/query/ClassesUserQuery.java | 22 ++
src/main/java/com/ycl/jxkg/mapper/UserMapper.java | 9
src/main/java/com/ycl/jxkg/service/ClassesService.java | 16 +
src/main/java/com/ycl/jxkg/service/ClassesUserService.java | 65 +++++
src/main/java/com/ycl/jxkg/service/UserService.java | 9
src/main/java/com/ycl/jxkg/service/impl/UserServiceImpl.java | 6
src/main/java/com/ycl/jxkg/domain/form/ClassesUserForm.java | 47 ++++
src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java | 34 +++
src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java | 11 +
src/main/java/com/ycl/jxkg/domain/enums/general/ClassesStatusEnum.java | 28 ++
src/main/java/com/ycl/jxkg/controller/admin/UserController.java | 23 ++
src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java | 119 ++++++++++
src/main/java/com/ycl/jxkg/domain/vo/ClassesUserVO.java | 40 +++
src/main/java/com/ycl/jxkg/controller/student/UserController.java | 2
src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java | 4
src/main/java/com/ycl/jxkg/domain/vo/StudentVO.java | 18 +
src/main/resources/mapper/UserMapper.xml | 9
src/main/java/com/ycl/jxkg/controller/admin/ClassesUserController.java | 83 +++++++
src/main/resources/mapper/ClassesMapper.xml | 2
src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java | 7
src/main/java/com/ycl/jxkg/domain/entity/ClassesUser.java | 31 ++
src/main/java/com/ycl/jxkg/domain/entity/Classes.java | 3
src/main/resources/mapper/ClassesUserMapper.xml | 43 +++
23 files changed, 627 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java b/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java
index bf98774..6af2f91 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/ClassesController.java
@@ -65,6 +65,13 @@
return classesService.page(query);
}
+ @GetMapping("/dissolution/{id}")
+ @ApiOperation(value = "瑙f暎", notes = "瑙f暎")
+ @PreAuthorize("hasAuthority('classes:dissolution')")
+ public Result dissolution(@PathVariable("id") Integer id) {
+ return classesService.dissolution(id);
+ }
+
@GetMapping("/{id}")
@ApiOperation(value = "璇︽儏", notes = "璇︽儏")
@PreAuthorize("hasAuthority('classes:detail')")
diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ClassesUserController.java b/src/main/java/com/ycl/jxkg/controller/admin/ClassesUserController.java
new file mode 100644
index 0000000..faf1fee
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/controller/admin/ClassesUserController.java
@@ -0,0 +1,83 @@
+package com.ycl.jxkg.controller.admin;
+
+import com.ycl.jxkg.group.Update;
+import com.ycl.jxkg.group.Add;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.validation.annotation.Validated;
+import javax.validation.constraints.NotEmpty;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.ycl.jxkg.service.ClassesUserService;
+import com.ycl.jxkg.base.Result;
+import com.ycl.jxkg.domain.form.ClassesUserForm;
+import com.ycl.jxkg.domain.query.ClassesUserQuery;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 鐝骇瀛﹀憳
+ *
+ * @author xp
+ * @since 2024-06-04
+ */
+@Validated
+@RequiredArgsConstructor
+@Api(value = "鐝骇瀛﹀憳", tags = "鐝骇瀛﹀憳")
+@RestController
+@RequestMapping("/api/classes-user")
+public class ClassesUserController {
+
+ private final ClassesUserService classesUserService;
+
+ @PostMapping
+ @ApiOperation(value = "娣诲姞", notes = "娣诲姞")
+ @PreAuthorize("hasAuthority('classesUser:add')")
+ public Result add(@RequestBody @Validated(Add.class) ClassesUserForm form) {
+ return classesUserService.add(form);
+ }
+
+ @PutMapping
+ @ApiOperation(value = "淇敼", notes = "淇敼")
+ @PreAuthorize("hasAuthority('classesUser:edit')")
+ public Result update(@RequestBody @Validated(Update.class) ClassesUserForm form) {
+ return classesUserService.update(form);
+ }
+
+ @DeleteMapping("/{id}")
+ @ApiOperation(value = "ID鍒犻櫎", notes = "ID鍒犻櫎")
+ @PreAuthorize("hasAuthority('classesUser:del')")
+ public Result removeById(@PathVariable("id") String id) {
+ return classesUserService.removeById(id);
+ }
+
+ @DeleteMapping("/batch")
+ @ApiOperation(value = "鎵归噺鍒犻櫎", notes = "鎵归噺鍒犻櫎")
+ @PreAuthorize("hasAuthority('classesUser:del:batch')")
+ public Result remove(@RequestBody @NotEmpty(message = "璇烽�夋嫨鏁版嵁") List<String> ids) {
+ return classesUserService.remove(ids);
+ }
+
+ @GetMapping("/page")
+ @ApiOperation(value = "鍒嗛〉", notes = "鍒嗛〉")
+ @PreAuthorize("hasAuthority('classesUser:page')")
+ public Result page(ClassesUserQuery query) {
+ return classesUserService.page(query);
+ }
+
+ @GetMapping("/{id}")
+ @ApiOperation(value = "璇︽儏", notes = "璇︽儏")
+ @PreAuthorize("hasAuthority('classesUser:detail')")
+ public Result detail(@PathVariable("id") Integer id) {
+ return classesUserService.detail(id);
+ }
+
+ @GetMapping("/list")
+ @PreAuthorize("hasAuthority('classesUser:list')")
+ @ApiOperation(value = "鍒楄〃", notes = "鍒楄〃")
+ public Result list() {
+ return classesUserService.all();
+ }
+}
diff --git a/src/main/java/com/ycl/jxkg/controller/admin/UserController.java b/src/main/java/com/ycl/jxkg/controller/admin/UserController.java
index cb2c5c0..d9aa558 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/UserController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/UserController.java
@@ -1,11 +1,14 @@
package com.ycl.jxkg.controller.admin;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ycl.jxkg.base.BaseApiController;
import com.ycl.jxkg.base.Result;
+import com.ycl.jxkg.domain.enums.RoleEnum;
import com.ycl.jxkg.domain.other.KeyValue;
import com.ycl.jxkg.domain.entity.User;
import com.ycl.jxkg.domain.entity.UserEventLog;
import com.ycl.jxkg.domain.enums.UserStatusEnum;
+import com.ycl.jxkg.domain.vo.StudentVO;
import com.ycl.jxkg.service.AuthenticationService;
import com.ycl.jxkg.service.UserEventLogService;
import com.ycl.jxkg.service.UserService;
@@ -23,6 +26,7 @@
import java.util.Date;
import java.util.List;
import java.util.UUID;
+import java.util.stream.Collectors;
@RequiredArgsConstructor
@RestController("AdminUserController")
@@ -40,6 +44,25 @@
return Result.ok(page);
}
+ @RequestMapping(value = "/student/list", method = RequestMethod.GET)
+ public Result<com.ycl.jxkg.domain.vo.student.user.UserResponseVO> studentList() {
+ List<User> studentList = new LambdaQueryChainWrapper<>(userService.getBaseMapper())
+ .eq(User::getRole, RoleEnum.STUDENT.getCode())
+ .orderByDesc(User::getCreateTime)
+ .list();
+ List<StudentVO> studentVOS = studentList.stream().map(item -> {
+ StudentVO student = new StudentVO();
+ BeanUtils.copyProperties(item, student);
+ return student;
+ }).collect(Collectors.toList());
+ return Result.ok().data(studentVOS);
+ }
+
+ @RequestMapping(value = "/classes/students", method = RequestMethod.GET)
+ public Result<com.ycl.jxkg.domain.vo.student.user.UserResponseVO> classesStudent(@RequestParam Integer classesId) {
+ List<StudentVO> studentList = userService.classesStudent(classesId);
+ return Result.ok().data(studentList);
+ }
@RequestMapping(value = "/event/page/list", method = RequestMethod.POST)
public Result<PageInfo<UserEventLogVO>> eventPageList(@RequestBody UserEventPageRequestVO model) {
diff --git a/src/main/java/com/ycl/jxkg/controller/student/UserController.java b/src/main/java/com/ycl/jxkg/controller/student/UserController.java
index 6e76966..0ceabd8 100644
--- a/src/main/java/com/ycl/jxkg/controller/student/UserController.java
+++ b/src/main/java/com/ycl/jxkg/controller/student/UserController.java
@@ -1,5 +1,6 @@
package com.ycl.jxkg.controller.student;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ycl.jxkg.base.BaseApiController;
import com.ycl.jxkg.base.Result;
import com.ycl.jxkg.domain.entity.Message;
@@ -46,7 +47,6 @@
UserResponseVO userVm = UserResponseVO.from(user);
return Result.ok(userVm);
}
-
@RequestMapping(value = "/register", method = RequestMethod.POST)
public Result register(@RequestBody @Valid UserRegisterVO model) {
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/Classes.java b/src/main/java/com/ycl/jxkg/domain/entity/Classes.java
index d35218c..1c3619f 100644
--- a/src/main/java/com/ycl/jxkg/domain/entity/Classes.java
+++ b/src/main/java/com/ycl/jxkg/domain/entity/Classes.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableName;
import com.ycl.jxkg.domain.base.AbsEntity;
+import com.ycl.jxkg.domain.enums.general.ClassesStatusEnum;
import lombok.Data;
import java.util.Date;
@@ -34,7 +35,7 @@
@TableField("status")
/** 鐝骇鐘舵�� */
- private String status;
+ private ClassesStatusEnum status;
@TableField("verify_status")
/** 楠岃瘉鐘舵�� */
diff --git a/src/main/java/com/ycl/jxkg/domain/entity/ClassesUser.java b/src/main/java/com/ycl/jxkg/domain/entity/ClassesUser.java
new file mode 100644
index 0000000..d4782f7
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/entity/ClassesUser.java
@@ -0,0 +1,31 @@
+package com.ycl.jxkg.domain.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+
+import com.ycl.jxkg.domain.base.AbsEntity;
+import lombok.Data;
+
+/**
+ * 鐝骇涓庣敤鎴峰叧鑱旇〃
+ *
+ * @author xp
+ * @since 2024-06-04
+ */
+@Data
+@TableName("t_classes_user")
+public class ClassesUser extends AbsEntity {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableField("classes_id")
+ /** */
+ private Integer classesId;
+
+ @TableField("user_id")
+ /** */
+ private Integer userId;
+
+
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/enums/general/ClassesStatusEnum.java b/src/main/java/com/ycl/jxkg/domain/enums/general/ClassesStatusEnum.java
new file mode 100644
index 0000000..b135615
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/enums/general/ClassesStatusEnum.java
@@ -0,0 +1,28 @@
+package com.ycl.jxkg.domain.enums.general;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/6/4 9:35
+ */
+@Getter
+public enum ClassesStatusEnum {
+
+ NORMAL("normal", "姝e父"),
+ DISSOLUTION("dissolution", "瑙f暎"),
+ ;
+
+ @EnumValue
+ private final String value;
+
+ @JsonValue
+ private final String desc;
+
+ ClassesStatusEnum(String value, String desc) {
+ this.value = value;
+ this.desc = desc;
+ }
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/form/ClassesUserForm.java b/src/main/java/com/ycl/jxkg/domain/form/ClassesUserForm.java
new file mode 100644
index 0000000..d59163d
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/form/ClassesUserForm.java
@@ -0,0 +1,47 @@
+package com.ycl.jxkg.domain.form;
+
+import com.ycl.jxkg.group.Update;
+import com.ycl.jxkg.group.Add;
+import com.ycl.jxkg.domain.base.AbsForm;
+import com.ycl.jxkg.domain.entity.ClassesUser;
+import org.springframework.beans.BeanUtils;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import org.springframework.lang.NonNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 鐝骇涓庣敤鎴峰叧鑱旇〃琛ㄥ崟
+ *
+ * @author xp
+ * @since 2024-06-04
+ */
+@Data
+@ApiModel(value = "ClassesUser琛ㄥ崟", description = "鐝骇涓庣敤鎴峰叧鑱旇〃琛ㄥ崟")
+public class ClassesUserForm extends AbsForm {
+
+ @NotNull(message = "涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("")
+ private Integer classesId;
+
+ @NotNull(message = "涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("")
+ private Integer userId;
+
+ @NotNull(message = "鍔犲叆鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
+ @ApiModelProperty("鍔犲叆鏃堕棿")
+ private Date createTime;
+
+ public static ClassesUser getEntityByForm(@NonNull ClassesUserForm form, ClassesUser entity) {
+ if(entity == null) {
+ entity = new ClassesUser();
+ }
+ BeanUtils.copyProperties(form, entity);
+ return entity;
+ }
+
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/query/ClassesUserQuery.java b/src/main/java/com/ycl/jxkg/domain/query/ClassesUserQuery.java
new file mode 100644
index 0000000..8e7a398
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/query/ClassesUserQuery.java
@@ -0,0 +1,22 @@
+package com.ycl.jxkg.domain.query;
+
+import com.ycl.jxkg.domain.base.AbsQuery;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鐝骇涓庣敤鎴峰叧鑱旇〃鏌ヨ
+ *
+ * @author xp
+ * @since 2024-06-04
+ */
+@Data
+@ApiModel(value = "ClassesUser鏌ヨ", description = "鐝骇涓庣敤鎴峰叧鑱旇〃鏌ヨ")
+public class ClassesUserQuery extends AbsQuery {
+}
+
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/ClassesUserVO.java b/src/main/java/com/ycl/jxkg/domain/vo/ClassesUserVO.java
new file mode 100644
index 0000000..a9a63f0
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/vo/ClassesUserVO.java
@@ -0,0 +1,40 @@
+package com.ycl.jxkg.domain.vo;
+
+import com.ycl.jxkg.domain.base.AbsVo;
+import com.ycl.jxkg.domain.entity.ClassesUser;
+
+import java.util.Date;
+import java.util.List;
+import org.springframework.lang.NonNull;
+import org.springframework.beans.BeanUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鐝骇涓庣敤鎴峰叧鑱旇〃灞曠ず
+ *
+ * @author xp
+ * @since 2024-06-04
+ */
+@Data
+public class ClassesUserVO extends AbsVo {
+
+ /** */
+ private Integer classesId;
+
+ /** */
+ private Integer userId;
+
+ /** 鍔犲叆鏃堕棿 */
+ private Date createTime;
+
+ public static ClassesUserVO getVoByEntity(@NonNull ClassesUser entity, ClassesUserVO vo) {
+ if(vo == null) {
+ vo = new ClassesUserVO();
+ }
+ BeanUtils.copyProperties(entity, vo);
+ return vo;
+ }
+
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java b/src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java
index ea5b6c6..963d76d 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/ClassesVO.java
@@ -7,6 +7,8 @@
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
+
+import com.ycl.jxkg.domain.enums.general.ClassesStatusEnum;
import org.springframework.lang.NonNull;
import org.springframework.beans.BeanUtils;
import io.swagger.annotations.ApiModel;
@@ -38,7 +40,7 @@
private Integer classesNumber;
/** 鐝骇鐘舵�� */
- private String status;
+ private ClassesStatusEnum status;
/** 楠岃瘉鐘舵�� */
private String verifyStatus;
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/StudentVO.java b/src/main/java/com/ycl/jxkg/domain/vo/StudentVO.java
new file mode 100644
index 0000000..bce8164
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/vo/StudentVO.java
@@ -0,0 +1,18 @@
+package com.ycl.jxkg.domain.vo;
+
+import lombok.Data;
+
+/**
+ * @author锛歺p
+ * @date锛�2024/6/4 11:29
+ */
+@Data
+public class StudentVO {
+
+ private Integer id;
+
+ private String realName;
+
+ private String phone;
+
+}
diff --git a/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java b/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
new file mode 100644
index 0000000..8442500
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/mapper/ClassesUserMapper.java
@@ -0,0 +1,34 @@
+package com.ycl.jxkg.mapper;
+
+import com.ycl.jxkg.domain.entity.ClassesUser;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.jxkg.domain.query.ClassesUserQuery;
+import com.ycl.jxkg.domain.vo.ClassesUserVO;
+import com.ycl.jxkg.domain.form.ClassesUserForm;
+import java.util.List;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 鐝骇涓庣敤鎴峰叧鑱旇〃 Mapper 鎺ュ彛
+ *
+ * @author xp
+ * @since 2024-06-04
+ */
+@Mapper
+public interface ClassesUserMapper extends BaseMapper<ClassesUser> {
+
+ /**
+ * id鏌ユ壘鐝骇涓庣敤鎴峰叧鑱旇〃
+ * @param id
+ * @return
+ */
+ ClassesUserVO getById(Integer id);
+
+ /**
+ * 鍒嗛〉
+ */
+ IPage getPage(IPage page, @Param("query") ClassesUserQuery query);
+
+}
diff --git a/src/main/java/com/ycl/jxkg/mapper/UserMapper.java b/src/main/java/com/ycl/jxkg/mapper/UserMapper.java
index 53d7872..2b93691 100644
--- a/src/main/java/com/ycl/jxkg/mapper/UserMapper.java
+++ b/src/main/java/com/ycl/jxkg/mapper/UserMapper.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycl.jxkg.domain.other.KeyValue;
import com.ycl.jxkg.domain.entity.User;
+import com.ycl.jxkg.domain.vo.StudentVO;
import com.ycl.jxkg.domain.vo.admin.user.UserPageRequestVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -129,4 +130,12 @@
User selectByWxOpenId(@Param("wxOpenId") String wxOpenId);
+
+ /**
+ * 鏌ヨ鐝骇涓嬬殑瀛︾敓
+ *
+ * @param classesId
+ * @return
+ */
+ List<StudentVO> classesStudent(@Param("classesId") Integer classesId);
}
diff --git a/src/main/java/com/ycl/jxkg/service/ClassesService.java b/src/main/java/com/ycl/jxkg/service/ClassesService.java
index 1873b69..b517a84 100644
--- a/src/main/java/com/ycl/jxkg/service/ClassesService.java
+++ b/src/main/java/com/ycl/jxkg/service/ClassesService.java
@@ -5,6 +5,7 @@
import com.ycl.jxkg.base.Result;
import com.ycl.jxkg.domain.form.ClassesForm;
import com.ycl.jxkg.domain.query.ClassesQuery;
+
import java.util.List;
/**
@@ -17,6 +18,7 @@
/**
* 娣诲姞
+ *
* @param form
* @return
*/
@@ -24,6 +26,7 @@
/**
* 淇敼
+ *
* @param form
* @return
*/
@@ -31,6 +34,7 @@
/**
* 鎵归噺鍒犻櫎
+ *
* @param ids
* @return
*/
@@ -38,6 +42,7 @@
/**
* id鍒犻櫎
+ *
* @param id
* @return
*/
@@ -45,6 +50,7 @@
/**
* 鍒嗛〉鏌ヨ
+ *
* @param query
* @return
*/
@@ -52,6 +58,7 @@
/**
* 鏍规嵁id鏌ユ壘
+ *
* @param id
* @return
*/
@@ -59,7 +66,16 @@
/**
* 鍒楄〃
+ *
* @return
*/
Result all();
+
+ /**
+ * 瑙f暎
+ *
+ * @param id
+ * @return
+ */
+ Result dissolution(Integer id);
}
diff --git a/src/main/java/com/ycl/jxkg/service/ClassesUserService.java b/src/main/java/com/ycl/jxkg/service/ClassesUserService.java
new file mode 100644
index 0000000..754ac19
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/service/ClassesUserService.java
@@ -0,0 +1,65 @@
+package com.ycl.jxkg.service;
+
+import com.ycl.jxkg.domain.entity.ClassesUser;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.jxkg.base.Result;
+import com.ycl.jxkg.domain.form.ClassesUserForm;
+import com.ycl.jxkg.domain.query.ClassesUserQuery;
+import java.util.List;
+
+/**
+ * 鐝骇涓庣敤鎴峰叧鑱旇〃 鏈嶅姟绫�
+ *
+ * @author xp
+ * @since 2024-06-04
+ */
+public interface ClassesUserService extends IService<ClassesUser> {
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ Result add(ClassesUserForm form);
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ Result update(ClassesUserForm form);
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ Result remove(List<String> ids);
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ Result removeById(String id);
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ Result page(ClassesUserQuery query);
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ Result detail(Integer id);
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ Result all();
+}
diff --git a/src/main/java/com/ycl/jxkg/service/UserService.java b/src/main/java/com/ycl/jxkg/service/UserService.java
index ea65137..9644f52 100644
--- a/src/main/java/com/ycl/jxkg/service/UserService.java
+++ b/src/main/java/com/ycl/jxkg/service/UserService.java
@@ -4,6 +4,7 @@
import com.ycl.jxkg.domain.form.RegisterForm;
import com.ycl.jxkg.domain.other.KeyValue;
import com.ycl.jxkg.domain.entity.User;
+import com.ycl.jxkg.domain.vo.StudentVO;
import com.ycl.jxkg.domain.vo.admin.user.UserPageRequestVO;
import com.github.pagehelper.PageInfo;
@@ -141,4 +142,12 @@
* @param form
*/
void studentRegister(RegisterForm form);
+
+ /**
+ * 鏌ヨ鐝骇涓嬬幇鏈夌殑瀛︾敓
+ *
+ * @param classesId
+ * @return
+ */
+ List<StudentVO> classesStudent(Integer classesId);
}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
index 14082e3..f7caea6 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesServiceImpl.java
@@ -1,7 +1,9 @@
package com.ycl.jxkg.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.ycl.jxkg.domain.entity.Classes;
+import com.ycl.jxkg.domain.enums.general.ClassesStatusEnum;
import com.ycl.jxkg.mapper.ClassesMapper;
import com.ycl.jxkg.service.ClassesService;
import com.ycl.jxkg.base.Result;
@@ -116,4 +118,13 @@
.collect(Collectors.toList());
return Result.ok().data(vos);
}
+
+ @Override
+ public Result dissolution(Integer id) {
+ new LambdaUpdateChainWrapper<>(baseMapper)
+ .eq(Classes::getId, id)
+ .set(Classes::getStatus, ClassesStatusEnum.DISSOLUTION)
+ .update();
+ return Result.ok("瑙f暎鎴愬姛");
+ }
}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java
new file mode 100644
index 0000000..639af0f
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/service/impl/ClassesUserServiceImpl.java
@@ -0,0 +1,119 @@
+package com.ycl.jxkg.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ycl.jxkg.domain.entity.ClassesUser;
+import com.ycl.jxkg.mapper.ClassesUserMapper;
+import com.ycl.jxkg.service.ClassesUserService;
+import com.ycl.jxkg.base.Result;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ycl.jxkg.domain.form.ClassesUserForm;
+import com.ycl.jxkg.domain.vo.ClassesUserVO;
+import com.ycl.jxkg.domain.query.ClassesUserQuery;
+import org.springframework.stereotype.Service;
+import lombok.RequiredArgsConstructor;
+import com.ycl.jxkg.utils.PageUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.Assert;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 鐝骇涓庣敤鎴峰叧鑱旇〃 鏈嶅姟瀹炵幇绫�
+ *
+ * @author xp
+ * @since 2024-06-04
+ */
+@Service
+@RequiredArgsConstructor
+public class ClassesUserServiceImpl extends ServiceImpl<ClassesUserMapper, ClassesUser> implements ClassesUserService {
+
+ private final ClassesUserMapper classesUserMapper;
+
+ /**
+ * 娣诲姞
+ * @param form
+ * @return
+ */
+ @Override
+ public Result add(ClassesUserForm form) {
+ ClassesUser entity = ClassesUserForm.getEntityByForm(form, null);
+ baseMapper.insert(entity);
+ return Result.ok("娣诲姞鎴愬姛");
+ }
+
+ /**
+ * 淇敼
+ * @param form
+ * @return
+ */
+ @Override
+ public Result update(ClassesUserForm form) {
+ ClassesUser entity = baseMapper.selectById(form.getId());
+
+ // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊
+ Assert.notNull(entity, "璁板綍涓嶅瓨鍦�");
+ BeanUtils.copyProperties(form, entity);
+ baseMapper.updateById(entity);
+ return Result.ok("淇敼鎴愬姛");
+ }
+
+ /**
+ * 鎵归噺鍒犻櫎
+ * @param ids
+ * @return
+ */
+ @Override
+ public Result remove(List<String> ids) {
+ baseMapper.deleteBatchIds(ids);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * id鍒犻櫎
+ * @param id
+ * @return
+ */
+ @Override
+ public Result removeById(String id) {
+ baseMapper.deleteById(id);
+ return Result.ok("鍒犻櫎鎴愬姛");
+ }
+
+ /**
+ * 鍒嗛〉鏌ヨ
+ * @param query
+ * @return
+ */
+ @Override
+ public Result page(ClassesUserQuery query) {
+ IPage<ClassesUserVO> page = PageUtil.getPage(query, ClassesUserVO.class);
+ baseMapper.getPage(page, query);
+ return Result.ok().data(page.getRecords()).total(page.getTotal());
+ }
+
+ /**
+ * 鏍规嵁id鏌ユ壘
+ * @param id
+ * @return
+ */
+ @Override
+ public Result detail(Integer id) {
+ ClassesUserVO vo = baseMapper.getById(id);
+ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�");
+ return Result.ok().data(vo);
+ }
+
+ /**
+ * 鍒楄〃
+ * @return
+ */
+ @Override
+ public Result all() {
+ List<ClassesUser> entities = baseMapper.selectList(null);
+ List<ClassesUserVO> vos = entities.stream()
+ .map(entity -> ClassesUserVO.getVoByEntity(entity, null))
+ .collect(Collectors.toList());
+ return Result.ok().data(vos);
+ }
+}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/UserServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/UserServiceImpl.java
index 65cc9c8..77ae849 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/UserServiceImpl.java
@@ -6,6 +6,7 @@
import com.ycl.jxkg.domain.enums.UserStatusEnum;
import com.ycl.jxkg.domain.form.RegisterForm;
import com.ycl.jxkg.domain.other.KeyValue;
+import com.ycl.jxkg.domain.vo.StudentVO;
import com.ycl.jxkg.event.UserEvent;
import com.ycl.jxkg.exception.BusinessException;
import com.ycl.jxkg.domain.entity.User;
@@ -171,4 +172,9 @@
userEventLog.setContent("娆㈣繋 " + student.getUserName() + " 娉ㄥ唽鏉ュ埌姹熻タ绌虹闊宠棰戝煿璁郴缁�");
eventPublisher.publishEvent(new UserEvent(userEventLog));
}
+
+ @Override
+ public List<StudentVO> classesStudent(Integer classesId) {
+ return userMapper.classesStudent(classesId);
+ }
}
diff --git a/src/main/resources/mapper/ClassesMapper.xml b/src/main/resources/mapper/ClassesMapper.xml
index 2b6455b..95bd72e 100644
--- a/src/main/resources/mapper/ClassesMapper.xml
+++ b/src/main/resources/mapper/ClassesMapper.xml
@@ -10,7 +10,7 @@
<result column="phone" property="teacherPhone" />
<result column="create_time" property="createTime" />
<result column="classes_number" property="classesNumber" />
- <result column="status" property="status" />
+ <result column="status" property="status" typeHandler="com.baomidou.mybatisplus.core.handlers.MybatisEnumTypeHandler"/>
<result column="verify_status" property="verifyStatus" />
<result column="start_time" property="startTime" />
<result column="end_time" property="endTime" />
diff --git a/src/main/resources/mapper/ClassesUserMapper.xml b/src/main/resources/mapper/ClassesUserMapper.xml
new file mode 100644
index 0000000..87fc1f8
--- /dev/null
+++ b/src/main/resources/mapper/ClassesUserMapper.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.jxkg.mapper.ClassesUserMapper">
+
+ <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+ <resultMap id="BaseResultMap" type="com.ycl.jxkg.domain.vo.ClassesUserVO">
+ <result column="classes_id" property="classesId" />
+ <result column="user_id" property="userId" />
+ <result column="create_time" property="createTime" />
+ </resultMap>
+
+
+
+
+
+
+
+ <select id="getById" resultMap="BaseResultMap">
+ SELECT
+ TCU.classes_id,
+ TCU.user_id,
+ TCU.create_time,
+ TCU.id
+ FROM
+ t_classes_user TCU
+ WHERE
+ TCU.id = #{id} AND TCU.deleted = 0
+ </select>
+
+
+ <select id="getPage" resultMap="BaseResultMap">
+ SELECT
+ TCU.classes_id,
+ TCU.user_id,
+ TCU.create_time,
+ TCU.id
+ FROM
+ t_classes_user TCU
+ WHERE
+ TCU.deleted = 0
+ </select>
+
+</mapper>
diff --git a/src/main/resources/mapper/UserMapper.xml b/src/main/resources/mapper/UserMapper.xml
index ca8edcc..b3fa2cd 100644
--- a/src/main/resources/mapper/UserMapper.xml
+++ b/src/main/resources/mapper/UserMapper.xml
@@ -194,5 +194,14 @@
limit 1
</select>
+ <select id="classesStudent" resultType="com.ycl.jxkg.domain.vo.StudentVO">
+ SELECT tu.id,
+ tu.real_name,
+ tu.phone
+ FROM t_user tu
+ INNER JOIN t_classes_user tcu ON tu.id = tcu.user_id
+ WHERE tcu.classes_id = #{classesId}
+ ORDER BY tcu.create_time
+ </select>
</mapper>
--
Gitblit v1.8.0