浏览代码

修改删除绑定学生

DESKTOP-USV654P\pc 2 年之前
父节点
当前提交
a0e74af6d2

+ 12 - 21
src/main/java/com/xjrsoft/module/organization/controller/UserController.java

@@ -200,9 +200,6 @@ public class UserController {
                         .eq(UserPostRelation::getUserId, user.getId().toString()))
                 .stream().map(UserPostRelation::getPostId).collect(Collectors.toList());
 
-        List<Long> studentIds = userStudentService.list(Wrappers.lambdaQuery(UserStudent.class)
-                        .eq(UserStudent::getUserId, user.getId().toString()))
-                .stream().map(UserStudent::getStudentId).collect(Collectors.toList());
 
         UserInfoVo vo = BeanUtil.toBean(user, UserInfoVo.class);
         if (roleIds.size() > 0) {
@@ -229,22 +226,10 @@ public class UserController {
 
             List<UserPostVo> userPostVoList = BeanUtil.copyToList(list, UserPostVo.class);
             vo.setPosts(userPostVoList);
-
         }
 
-        if (studentIds.size() > 0) {
-            MPJLambdaWrapper<BaseClass> queryWrapper = new MPJLambdaWrapper<>();
-            queryWrapper
-                    .disableSubLogicDel()
-                    .rightJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getClassId, BaseStudent::getId)
-                    .innerJoin(BaseStudentUser.class, BaseStudentUser::getId, BaseStudentSchoolRoll::getUserId)
-                    .in(BaseStudentSchoolRoll::getUserId, studentIds)
-                    .selectAs(BaseClass::getName, UserStudentVo::getClassName)
-                    .selectAs(BaseStudentUser::getName, UserStudentVo::getStudentName)
-                    .selectAs(BaseStudentUser::getId, UserStudentVo::getStudentId)
-                    .selectAs(BaseStudentUser::getAvatar, UserStudentVo::getAvatar);
-
-            List<UserStudentVo> list = baseClassService.selectJoinList(UserStudentVo.class,queryWrapper);
+        List<UserStudentVo> list = baseClassService.getStudents(user.getId());
+        if (list != null) {
             vo.setStudents(list);
         }
 
@@ -382,9 +367,9 @@ public class UserController {
         return R.error("该用户不存在!");
     }
 
-    @PostMapping("/unbind-openid")
+    @GetMapping("/unbind-openid")
     @ApiOperation(value = "取消绑定微信")
-    public  R unbindOpenid(@RequestBody Long id) {
+    public  R unbindOpenid(@RequestParam Long id) {
         User updateUser = new User();
         updateUser.setId(id);
         updateUser.setOpenId("");
@@ -420,7 +405,13 @@ public class UserController {
 
     @DeleteMapping("/unbind-student")
     @ApiOperation(value = "解绑学生")
-    public R unBindStudent(@Valid @RequestBody List<Long> ids) {
-        return R.ok(userStudentService.delete(ids));
+    public R unBindStudent(@Valid @RequestBody UserStudentDeleteDto dto) {
+        return R.ok(userStudentService.delete(dto));
+    }
+
+    @GetMapping("/student")
+    @ApiOperation(value = "获取绑定学生")
+    public R unBindStudent(@Valid @RequestParam Long id) {
+        return R.ok(baseClassService.getStudents(id));
     }
 }

+ 9 - 0
src/main/java/com/xjrsoft/module/organization/dto/UserStudentDeleteDto.java

@@ -0,0 +1,9 @@
+package com.xjrsoft.module.organization.dto;
+
+import lombok.Data;
+
+@Data
+public class UserStudentDeleteDto {
+    private Long userId;
+    private Long studentId;
+}

+ 2 - 0
src/main/java/com/xjrsoft/module/organization/service/IUserStudentService.java

@@ -2,6 +2,7 @@ package com.xjrsoft.module.organization.service;
 
 import com.github.yulichang.base.MPJBaseService;
 import com.xjrsoft.module.organization.dto.UserStudentAddDto;
+import com.xjrsoft.module.organization.dto.UserStudentDeleteDto;
 import com.xjrsoft.module.organization.entity.UserStudent;
 
 import java.util.List;
@@ -9,4 +10,5 @@ import java.util.List;
 public interface IUserStudentService  extends MPJBaseService<UserStudent> {
     boolean add(UserStudentAddDto dto);
     boolean delete(List<Long> ids);
+    boolean delete(UserStudentDeleteDto dto);
 }

+ 11 - 1
src/main/java/com/xjrsoft/module/organization/service/impl/UserStudentServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.xjrsoft.common.exception.MyException;
 import com.xjrsoft.module.organization.dto.UserStudentAddDto;
+import com.xjrsoft.module.organization.dto.UserStudentDeleteDto;
 import com.xjrsoft.module.organization.entity.UserStudent;
 import com.xjrsoft.module.organization.mapper.UserStudentMapper;
 import com.xjrsoft.module.organization.service.IUserStudentService;
@@ -30,9 +31,18 @@ public class UserStudentServiceImpl extends MPJBaseServiceImpl<UserStudentMapper
         userStudentMapper.insert(userStudent);
         return Boolean.TRUE;
     }
+
     @Override
-    public  boolean delete(List<Long> ids){
+    public boolean delete(List<Long> ids) {
         userStudentMapper.deleteBatchIds(ids);
         return Boolean.TRUE;
     }
+
+    @Override
+    public boolean delete(UserStudentDeleteDto dto) {
+        userStudentMapper.delete(Wrappers.<UserStudent>query().lambda()
+                .eq(UserStudent::getUserId, dto.getUserId())
+                .eq(UserStudent::getStudentId, dto.getStudentId()));
+        return Boolean.TRUE;
+    }
 }

+ 4 - 0
src/main/java/com/xjrsoft/module/student/service/IBaseClassService.java

@@ -1,7 +1,11 @@
 package com.xjrsoft.module.student.service;
 
 import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.organization.vo.UserStudentVo;
 import com.xjrsoft.module.student.entity.BaseClass;
 
+import java.util.List;
+
 public interface IBaseClassService  extends MPJBaseService<BaseClass> {
+    List<UserStudentVo> getStudents(long id);
 }

+ 36 - 0
src/main/java/com/xjrsoft/module/student/service/impl/BaseClassServiceImpl.java

@@ -1,13 +1,49 @@
 package com.xjrsoft.module.student.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.xjrsoft.module.organization.entity.UserStudent;
+import com.xjrsoft.module.organization.service.IUserStudentService;
+import com.xjrsoft.module.organization.vo.UserStudentVo;
 import com.xjrsoft.module.student.entity.BaseClass;
+import com.xjrsoft.module.student.entity.BaseStudent;
+import com.xjrsoft.module.student.entity.BaseStudentSchoolRoll;
+import com.xjrsoft.module.student.entity.BaseStudentUser;
 import com.xjrsoft.module.student.mapper.BaseClassMapper;
 import com.xjrsoft.module.student.service.IBaseClassService;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
 @Service
 @AllArgsConstructor
 public class BaseClassServiceImpl  extends MPJBaseServiceImpl<BaseClassMapper, BaseClass> implements IBaseClassService {
+
+    private final IUserStudentService userStudentService;
+
+    public List<UserStudentVo> getStudents(long id) {
+        List<Long> studentIds = userStudentService.list(Wrappers.lambdaQuery(UserStudent.class)
+                        .eq(UserStudent::getUserId, id))
+                .stream().map(UserStudent::getStudentId).collect(Collectors.toList());
+        List<UserStudentVo> list = null;
+        if (studentIds.size() > 0) {
+            MPJLambdaWrapper<BaseClass> queryWrapper = new MPJLambdaWrapper<>();
+            queryWrapper
+                    .disableSubLogicDel()
+                    .rightJoin(BaseStudentSchoolRoll.class, BaseStudentSchoolRoll::getClassId, BaseStudent::getId)
+                    .innerJoin(BaseStudentUser.class, BaseStudentUser::getId, BaseStudentSchoolRoll::getUserId)
+                    .in(BaseStudentSchoolRoll::getUserId, studentIds)
+                    .selectAs(BaseClass::getName, UserStudentVo::getClassName)
+                    .selectAs(BaseStudentUser::getName, UserStudentVo::getStudentName)
+                    .selectAs(BaseStudentUser::getId, UserStudentVo::getStudentId)
+                    .selectAs(BaseStudentUser::getAvatar, UserStudentVo::getAvatar);
+
+            list = selectJoinList(UserStudentVo.class, queryWrapper);
+        }
+        return list;
+    }
 }