实现localTeacher批量分组接口

This commit is contained in:
Qi 2025-04-27 15:13:40 +08:00
parent 582707f996
commit 1df6d0f7dd
3 changed files with 101 additions and 2 deletions

View File

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSON;
import net.sf.json.JSONObject;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.base.controller.JeecgController;
@ -14,12 +16,14 @@ import org.jeecg.modules.entity.CeesLocalTeacher;
import org.jeecg.modules.enums.MajorEnum; import org.jeecg.modules.enums.MajorEnum;
import org.jeecg.modules.service.ICeesLocalTeacherService; import org.jeecg.modules.service.ICeesLocalTeacherService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.metrics.startup.StartupTimeMetricsListener;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.Arrays; import java.util.Arrays;
import java.util.Map;
/** /**
* @Description: 本校教师表 * @Description: 本校教师表
@ -34,8 +38,10 @@ import java.util.Arrays;
public class CeesLocalTeacherController extends JeecgController<CeesLocalTeacher, ICeesLocalTeacherService> { public class CeesLocalTeacherController extends JeecgController<CeesLocalTeacher, ICeesLocalTeacherService> {
@Autowired @Autowired
private ICeesLocalTeacherService ceesLocalTeacherService; private ICeesLocalTeacherService ceesLocalTeacherService;
@Autowired
private StartupTimeMetricsListener startupTimeMetrics;
/** /**
* 分页列表查询 * 分页列表查询
* *
* @param ceesLocalTeacher * @param ceesLocalTeacher
@ -58,6 +64,16 @@ public class CeesLocalTeacherController extends JeecgController<CeesLocalTeacher
return Result.OK(pageList); return Result.OK(pageList);
} }
/**
* 批量分组
* @return
*/
@PostMapping("/batchGroup")
public Result<?> batchGroup(@RequestBody Map<String, Object> webData){
log.info(webData.toString());
return ceesLocalTeacherService.batchGroup(webData);
}
/** /**
* 添加 * 添加
* *

View File

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.CeesLocalTeacher; import org.jeecg.modules.entity.CeesLocalTeacher;
import java.util.Map;
/** /**
* @Description: 本校教师表 * @Description: 本校教师表
* @Author: jeecg-boot * @Author: jeecg-boot
@ -14,4 +16,6 @@ import org.jeecg.modules.entity.CeesLocalTeacher;
public interface ICeesLocalTeacherService extends IService<CeesLocalTeacher> { public interface ICeesLocalTeacherService extends IService<CeesLocalTeacher> {
Result<?> h5Save(CeesLocalTeacher ceesLocalTeacher); Result<?> h5Save(CeesLocalTeacher ceesLocalTeacher);
Result<?> batchGroup(Map<String, Object> webData);
} }

View File

@ -3,6 +3,7 @@ package org.jeecg.modules.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.entity.CeesLocalTeacher; import org.jeecg.modules.entity.CeesLocalTeacher;
@ -14,6 +15,9 @@ import org.jeecg.modules.service.ICeesUserService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/** /**
* @Description: 本校教师表 * @Description: 本校教师表
@ -28,7 +32,8 @@ public class CeesLocalTeacherServiceImpl extends ServiceImpl<CeesLocalTeacherMap
CeesUserMapper ceesUserMapper; CeesUserMapper ceesUserMapper;
@Resource @Resource
ICeesUserService ceesUserService; ICeesUserService ceesUserService;
@Resource
CeesLocalTeacherMapper ceesLocalTeacherMapper;
/** /**
* @param ceesLocalTeacher * @param ceesLocalTeacher
@ -52,4 +57,78 @@ public class CeesLocalTeacherServiceImpl extends ServiceImpl<CeesLocalTeacherMap
jsonObject.put("router", "/mainPage"); jsonObject.put("router", "/mainPage");
return Result.ok(jsonObject); return Result.ok(jsonObject);
} }
@Override
public Result<?> batchGroup(Map<String, Object> webData) {
String groupId = webData.get("groupId").toString();
Object idsObj = webData.get("ids");
List<String> ids = JSONObject.parseArray(idsObj.toString(), String.class);
// 记录更新结果
int totalUpdatedLocal = 0;
List<String> failedIdsLocal = new ArrayList<>();
//更新具体的用户数据
for (String id : ids) {
try {
LambdaUpdateWrapper<CeesLocalTeacher> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(CeesLocalTeacher::getId, id)
.set(CeesLocalTeacher::getGroupId, groupId);
// 执行更新并检查受影响行数
int affectedRows = ceesLocalTeacherMapper.update(null, updateWrapper);
if (affectedRows > 0) {
totalUpdatedLocal++;
} else {
failedIdsLocal.add(id); // 记录未更新的ID可能用户不存在或groupId未变
}
} catch (Exception e) {
failedIdsLocal.add(id); // 记录更新失败的ID
}
}
// 记录更新结果
int totalUpdated = 0;
List<String> failedIds = new ArrayList<>();
//更新所以表中的用户数据
for (String id : ids) {
try {
LambdaQueryWrapper<CeesLocalTeacher> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(CeesLocalTeacher::getId, id);
CeesLocalTeacher ceesLocalTeacher = ceesLocalTeacherMapper.selectOne(queryWrapper);
String user_id = ceesLocalTeacher.getUserId();
LambdaUpdateWrapper<CeesUser> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(CeesUser::getUserId, user_id)
.set(CeesUser::getGroupId, groupId);
// 执行更新并检查受影响行数
int affectedRows = ceesUserMapper.update(null, updateWrapper);
if (affectedRows > 0) {
totalUpdated++;
} else {
failedIds.add(id); // 记录未更新的ID可能用户不存在或groupId未变
}
} catch (Exception e) {
failedIds.add(id); // 记录更新失败的ID
}
}
// 构建返回结果
JSONObject resultJson = new JSONObject();
//update-localTeacher
JSONObject localTeacherJson = new JSONObject();
localTeacherJson.put("totalUpdated", totalUpdatedLocal);
localTeacherJson.put("failedIds", failedIdsLocal);
localTeacherJson.put("success", failedIdsLocal.isEmpty()); // 是否全部成功
//update-User
JSONObject userJson = new JSONObject();
userJson.put("totalUpdated", totalUpdated);
userJson.put("failedIds", failedIds);
userJson.put("success", failedIds.isEmpty()); // 是否全部成功
resultJson.put("localTeacher", localTeacherJson);
resultJson.put("user", userJson);
return Result.ok(resultJson);
}
} }