소스 검색

调整班级接口

dzx 1 년 전
부모
커밋
1100ec7c24

+ 11 - 1
src/main/java/com/xjrsoft/module/banding/controller/BandingTaskClassController.java

@@ -10,10 +10,11 @@ import com.xjrsoft.common.page.PageOutput;
 import com.xjrsoft.module.banding.dto.AddBandingTaskClassDto;
 import com.xjrsoft.module.banding.dto.BandingTaskClassPageDto;
 import com.xjrsoft.module.banding.dto.BandingTaskClassStudentPageDto;
-import com.xjrsoft.module.banding.dto.SureBandingTaskDto;
+import com.xjrsoft.module.banding.dto.ChangeClassDto;
 import com.xjrsoft.module.banding.dto.UpdateBandingClassDto;
 import com.xjrsoft.module.banding.entity.BandingTaskClass;
 import com.xjrsoft.module.banding.service.IBandingTaskClassService;
+import com.xjrsoft.module.banding.service.IBandingTaskClassStudentService;
 import com.xjrsoft.module.banding.vo.BandingTaskClassPageVo;
 import com.xjrsoft.module.banding.vo.BandingTaskClassVo;
 import com.xjrsoft.module.banding.vo.BandingTaskPageVo;
@@ -48,6 +49,7 @@ public class BandingTaskClassController {
 
 
     private final IBandingTaskClassService bandingTaskClassService;
+    private final IBandingTaskClassStudentService classStudentService;
 
     @GetMapping(value = "/page")
     @ApiOperation(value="新生分班任务班级配置列表(分页)")
@@ -128,4 +130,12 @@ public class BandingTaskClassController {
         return RT.ok(isSuccess);
     }
 
+
+    @PostMapping("/change-class")
+    @ApiOperation(value = "调整班级")
+    @SaCheckPermission("bandingTaskClass:change-class")
+    public RT<Boolean> changeClass(@Valid @RequestBody ChangeClassDto dto){
+        boolean isSuccess = classStudentService.changeClass(dto);
+        return RT.ok(isSuccess);
+    }
 }

+ 29 - 0
src/main/java/com/xjrsoft/module/banding/dto/ChangeClassDto.java

@@ -0,0 +1,29 @@
+package com.xjrsoft.module.banding.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+
+/**
+* @title: 调整班级
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Data
+public class ChangeClassDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty("学生ids")
+    private List<Long> newStudentIds;
+
+    @ApiModelProperty("班级id")
+    private Long bandingTaskClassId;
+
+}

+ 43 - 0
src/main/java/com/xjrsoft/module/banding/service/IBandingTaskClassStudentService.java

@@ -0,0 +1,43 @@
+package com.xjrsoft.module.banding.service;
+
+import com.github.yulichang.base.MPJBaseService;
+import com.xjrsoft.module.banding.dto.ChangeClassDto;
+import com.xjrsoft.module.banding.entity.BandingTaskClassStudent;
+
+import java.util.List;
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+
+public interface IBandingTaskClassStudentService extends MPJBaseService<BandingTaskClassStudent> {
+    /**
+    * 新增
+    *
+    * @param bandingTaskClass
+    * @return
+    */
+    Boolean add(BandingTaskClassStudent bandingTaskClass);
+
+    /**
+    * 更新
+    *
+    * @param bandingTaskClass
+    * @return
+    */
+    Boolean update(BandingTaskClassStudent bandingTaskClass);
+
+    /**
+    * 删除
+    *
+    * @param ids
+    * @return
+    */
+    Boolean delete(List<Long> ids);
+
+
+    Boolean changeClass(ChangeClassDto dto);
+}

+ 73 - 0
src/main/java/com/xjrsoft/module/banding/service/impl/BandingTaskClassStudentServiceImpl.java

@@ -0,0 +1,73 @@
+package com.xjrsoft.module.banding.service.impl;
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.xjrsoft.module.banding.dto.ChangeClassDto;
+import com.xjrsoft.module.banding.entity.BandingTaskClassStudent;
+import com.xjrsoft.module.banding.mapper.BandingTaskClassStudentMapper;
+import com.xjrsoft.module.banding.service.IBandingTaskClassStudentService;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+* @title: 新生分班任务
+* @Author dzx
+* @Date: 2024-07-01
+* @Version 1.0
+*/
+@Service
+@AllArgsConstructor
+public class BandingTaskClassStudentServiceImpl extends MPJBaseServiceImpl<BandingTaskClassStudentMapper, BandingTaskClassStudent> implements IBandingTaskClassStudentService {
+
+    @Override
+    public Boolean add(BandingTaskClassStudent bandingTaskClass) {
+        bandingTaskClass.setCreateDate(new Date());
+        this.baseMapper.insert(bandingTaskClass);
+        return true;
+    }
+
+    @Override
+    public Boolean update(BandingTaskClassStudent bandingTaskClass) {
+        bandingTaskClass.setModifyDate(new Date());
+        this.baseMapper.updateById(bandingTaskClass);
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(List<Long> ids) {
+        this.baseMapper.deleteBatchIds(ids);
+        return true;
+    }
+
+    @Override
+    public Boolean changeClass(ChangeClassDto dto) {
+        this.baseMapper.delete(
+                new QueryWrapper<BandingTaskClassStudent>().lambda()
+                        .in(BandingTaskClassStudent::getNewStudentId, dto.getNewStudentIds())
+        );
+        List<BandingTaskClassStudent> dataList = new ArrayList<>();
+        long createUserId = StpUtil.getLoginIdAsLong();
+        for (Long newStudentId : dto.getNewStudentIds()) {
+            dataList.add(
+                    new BandingTaskClassStudent(){{
+                        setCreateDate(new Date());
+                        setNewStudentId(newStudentId);
+                        setBandingTaskClassId(dto.getBandingTaskClassId());
+                        setCreateUserId(createUserId);
+                    }}
+            );
+        }
+        if(!dataList.isEmpty()){
+            this.saveBatch(dataList);
+        }
+        return true;
+    }
+
+}