完成添加班级到课程和学生信息的相关接口

This commit is contained in:
zlm133588 2025-03-14 19:08:24 +08:00
parent a9d9366f06
commit 2f97a3466c
11 changed files with 234 additions and 29 deletions

View File

@ -43,4 +43,8 @@ export default {
findAllTeacher: (data) =>
request.post('/adminusers/findAllTeacher', data),
findClassNotInCourse: (data) => request.post('/classes/findClassNotInCourse', data),
addClassToCourse: (data) => request.post('/classes/addClassToCourse', data),
findClassStudentsByIdPage: (data) => request.post('/classes/findClassStudentsByIdPage', data),
deleteClassStudentsById: (data) => request.post('/classes/deleteClassStudentsById', data),
getUserAdd: (data) => request.post('/user/getUserAdd', data),
}

View File

@ -264,13 +264,11 @@ const onDeleteClass = async (classid)=>{
}
}
const onStudentClass = async (classid)=>{
// const {id} = classid
const id=1
const {id} = classid
await router.push({name: 'AdminClassStudents', params: {clId: id}})
}
const onAssistantClass = async (classid)=>{
// const {id} = classid
const id=1
const {id} = classid
await router.push({name: 'AdminClassAssistant', params: {clId: id}})
}
const onEditClass = async (classid)=>{

View File

@ -11,7 +11,7 @@
:single-line="false"
ref="table"
:columns="columns"
:data="classList"
:data="studentList"
:loading="loading"
:pagination="paginationReactive"
:row-key="rowKey"
@ -34,8 +34,8 @@ const userStore = useUserStore()
const router = useRouter()
const route = useRoute()
const loading = ref(true)
const classList =
ref([{studentNo:"211310509",chineseName:"张三",username:"zhangsan",banji:"计算机2101",email:"2286848422@qq.com"}])
const studentList =
ref([])
const {clId} = route.params
const cIId=parseInt(clId)
const options = ref([])
@ -131,7 +131,7 @@ const queryByPage = async ()=>{
paginationReactive.page = pageNum
paginationReactive.pageSize = pageSize
paginationReactive.itemCount = total
classList.value=list.map((item,i)=>{
studentList.value=list.map((item,i)=>{
if (item.username===''||item.username===null){
item.username='请学生注册'
}
@ -147,8 +147,8 @@ const onChangePage = (page) => {
queryByPage()
}
}
const onDeleteClass = async (classId)=>{
classInfoValue.value.userId = classId.id
const onDeleteClass = async (student)=>{
classInfoValue.value.userId = student.id
try {
await api.deleteClassStudentsById({...classInfoValue.value})
$message.success("删除成功")

View File

@ -144,11 +144,11 @@ const onUpdatePageSize = (pageSize) => {
paginationReactive.page = 1;
queryByPage(1)
}
const onBanjiCourse= async (classId)=>{
const { id } = classId
const onBanjiCourse= async (courseId)=>{
const { id } = courseId
try {
await router.push({ name:
'AdminClassManage', query: { classId: id
'AdminClassManage', query: { courseId: id
} })
}catch (err){
$message.error('无法查看')

View File

@ -33,7 +33,7 @@
style="margin-left: 30px"
type="primary"
:loading="queryLoading"
@click="getClassesNotInExam"
@click="getClassesNotInCourse"
>
查询
</n-button>
@ -80,11 +80,11 @@ const options1 =
const options2 = ref([])
const queryLoading = ref(false)
const teacherInfoValue = ref({
schoolId: '1',
// schoolId: '1',
teacherId: '',
})
const teacherId = ref(0)
const classes = ref([{id:1,name:'班级1',teacherName:'黄秋波',studentNum:40}])
const classes = ref([])
const loading = ref(false)
const otherSchool = ref(false)
const columns = [
@ -130,7 +130,8 @@ const columns = [
return h(
ExamClassesAddActions,
{
onClickAdd: () => addClassToExam(row),
onClickAdd: () =>
addClassToCourse(row),
onClickStudentInfo: () => onStudentClass(row),
showStudentInfoButton: isAdmin || isTeacher,
onClickAssistant: () => onAssistantClass(row),
@ -221,11 +222,11 @@ const onStudentClass = (classId)=>{
const {id} = classId
router.push({name: 'AdminClassStudents',params:{clId: id}})
}
const addClassToExam = async (classId) => {
const addClassToCourse = async (classId) => {
const {id} = classId
try {
await api.addClassToExam({
examId: examId,
await api.addClassToCourse({
courseId:courseId,
classId: id,
history:history
})

View File

@ -3,6 +3,8 @@ package com.example.aes.user.controller;
import com.example.aes.global.model.DecodeToken;
import com.example.aes.global.model.PageBean;
import com.example.aes.global.model.RespBean;
import com.example.aes.user.dao.ClassesDaoI;
import com.example.aes.user.dao.ClassstudentsDaoI;
import com.example.aes.user.model.DataGrid;
import com.example.aes.user.model.Json;
import com.example.aes.user.model.PMClasses;
@ -25,16 +27,16 @@ public class ClassesController{
@Autowired
private ClassesServiceI classesServiceI;
// private int classId, userId, examId,paperexamId,ClassTimeId;
// @Autowired
// private ClassstudentsDaoI classstudentsDao;
@Autowired
private ClassstudentsDaoI classstudentsDao;
// @Autowired
// private ExamClassesDaoI examclassesDao;
// @Autowired
// private ExamClasseshisDaoI examClasseshisDaoI;
// @Autowired
// private PaperExamClassesDaoI paperexamclassesDao;
// @Autowired
// private ClassesDaoI classesDao;
@Autowired
private ClassesDaoI classesDao;
// @Autowired
// private ExamServiceI examService;
//
@ -106,12 +108,42 @@ public class ClassesController{
return RespBean.error("删除班级失败", result);
}
}
@PostMapping("/addClassToCourse")
public RespBean addClassToCourse(@RequestBody UClass uClass,HttpServletRequest request) // 添加班级到课程中
{
classesServiceI.addClassToCourse(uClass);
return RespBean.ok("添加班级成功");
}
@PostMapping("/addClass")
public RespBean addClass(@RequestBody PMClasses pmclasses) // 添加班级
{
classesServiceI.addClass(pmclasses);
return RespBean.ok("添加班级成功");
}
@PostMapping("/findClassStudentsByIdPage")
public RespBean findClassStudentsByIdPage(@RequestBody PageBean pageBean) {
if (pageBean.getPageNum() < 1 || pageBean.getPageSize() < 1)
return RespBean.error("参数错误!");
int classId = pageBean.getId();
DataGrid users = classesServiceI.findClassStudentsByIdPage(classId, pageBean.getPageNum(), pageBean.getPageSize());
return RespBean.ok("查询班级所有学生信息成功", users);
}
@PostMapping("/deleteClassStudentsById")
public RespBean deleteClassStudentsById(@RequestBody UClass uClass) // 通过编号删除班级学生
{
boolean result = classesServiceI.deleteClassStudentsByUserId(uClass.getClassId(), uClass.getUserId());
if (result == true) {
int studentsNum = classstudentsDao.getClassStudentsNum(uClass.getClassId());
classesDao.updateClassStudentsNum(uClass.getClassId(), studentsNum);
return RespBean.ok("删除班级学生成功");
} else {
return RespBean.error("删除班级学生失败");
}
}
@PostMapping("/findClassNotInCourse")
public RespBean findClassNotInCourse(@RequestBody UClass uClass, HttpServletRequest request) // 查看参与课程的班级
{

View File

@ -3,6 +3,8 @@ package com.example.aes.user.controller;
import com.auth0.jwt.exceptions.JWTDecodeException;
import com.example.aes.global.model.DecodeToken;
import com.example.aes.global.model.RespBean;
import com.example.aes.user.dao.AdminusersDaoI;
import com.example.aes.user.dao.ClassesDaoI;
import com.example.aes.user.model.*;
import com.example.aes.user.service.UserServiceI;
import com.example.aes.user.dao.ClassstudentsDaoI;
@ -29,6 +31,10 @@ public class UserController {
private UserServiceI userService;
@Resource
private ClassstudentsDaoI classstudentsDao;
@Resource
private ClassesDaoI classesDao;
@Resource
private AdminusersDaoI adminusersDao;
// 修改用户信息
@PostMapping("/editUserInfo")
public RespBean editUserInfo(@RequestBody PMUser user, HttpServletRequest request) {
@ -120,6 +126,82 @@ public class UserController {
return RespBean.error("获取学生信息失败");
}
}
@PostMapping("/getUserAdd")
public RespBean getUserAdd(@RequestBody PMUser user1) // 添加学生的信息
{
String studentNo = user1.getStudentNo();
String chineseName = user1.getChineseName();
String username = "";
String banji = user1.getBanji();
String sessionId = "";
String password = "";
int classId = user1.getId();
try {
Classes onclass = classesDao.get(Classes.class, classId);
if (onclass != null) {
int teacherId = onclass.getTeacherId();
Adminusers adminuser = adminusersDao.get(Adminusers.class, teacherId);
if (adminuser != null) {
// int schoolId = adminuser.getSchoolId();
Users user = userService.findUserByStudentNo(studentNo); // 用户信息
if (user != null) {
boolean result = classstudentsDao.findClassStudentByUserId(user.getId(), classId); // 如果为true则表明该学生已在表中
if (result) {
return RespBean.error("该学生已存在,不能重复添加!");
} else {
result = classstudentsDao.insertClassStudent(user.getId(), classId); // 强用户插入classstudents表
// 更新学生人数
int studentsNum = classstudentsDao.getClassStudentsNum(classId);
boolean results = classesDao.updateClassStudentsNum(classId, studentsNum);
if (results) {
return RespBean.ok("添加学生信息成功");
} else {
return RespBean.error("添加学生信息失败");
}
}
} else {
boolean flag = false;
PMUser pMuser = new PMUser();
// 将pMProblemTestCaseAdd 同属性的数据复制到problems
pMuser.setBanji(banji);
// pMuser.setSchoolId(schoolId);
pMuser.setChineseName(chineseName);
pMuser.setStudentNo(studentNo);
pMuser.setUsername(username);
pMuser.setSessionId(sessionId);
pMuser.setPassword(password);
flag = userService.addSignStudent(pMuser);
if (flag) {
Users u = userService.findUserByStudentNo(studentNo);
if (u != null) {
boolean result = classstudentsDao.findClassStudentByUserId(u.getId(), classId); // 如果为true则表明该学生已在表中
if (result == false)
result = classstudentsDao.insertClassStudent(u.getId(), classId); // 强用户插入classstudents表
}
// 更新学生人数
int studentsNum = classstudentsDao.getClassStudentsNum(classId);
boolean results = classesDao.updateClassStudentsNum(classId, studentsNum);
return RespBean.ok("添加学生信息成功");
} else {
return RespBean.error("添加学生信息失败");
}
}
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
// 新增
return RespBean.error("添加学生信息失败");
}
@PostMapping("/getPassword")
public RespBean getPassword(@RequestBody PMUser user1) // 获取学生的密码

View File

@ -45,4 +45,8 @@ public interface ClassesDaoI extends BaseDaoI<Classes> {
public long findClassNotInCourseNum(int courseId, int teacherId, boolean history);
public List<Classes> findAllClass(); // 查询所有班级
public void addClass(PMClasses pclass); // 添加班级
public void addClassToCourse(UClass uClass);//添加班级到课程
public long findClassStudentsByIdNum(int classId);
public List<PMUser> findClassStudentsByIdPage(int classId, int pageNum, int pageSize);
public boolean deleteClassStudentsByUserId(int classId, int userId); // 通过userId删除班级学生
}

View File

@ -336,7 +336,7 @@ public class ClassesDaoImpl extends BaseDaoImpl<Classes> implements ClassesDaoI
public List<PMClasses> findClassNotInCourse(int courseId, int teacherId, int pageNum, int pageSize, boolean history) {
// TODO Auto-generated method stub
StringBuffer sql = new StringBuffer();
Map<String,Object> params = new HashMap<String, Object>();
// Map<String,Object> params = new HashMap<String, Object>();
if(history){
sql.append("from Classes where " +
"courseId is null");
@ -346,9 +346,9 @@ public class ClassesDaoImpl extends BaseDaoImpl<Classes> implements ClassesDaoI
"courseId is null");
}
if(teacherId!=0){
sql.append(" and teacherId" +
"=:teacherId ");
params.put("teacherId", teacherId);
sql.append(" and teacherId=" +
teacherId);
// params.put("teacherId", teacherId);
}
sql.append(" order by id desc ");
// params.put("courseId", courseId);
@ -483,10 +483,59 @@ public class ClassesDaoImpl extends BaseDaoImpl<Classes> implements ClassesDaoI
this.save(c);
}
@Override
public void addClassToCourse(UClass uClass){
// TODO Auto-generated method stub
String hql =
"update Classes set courseId=" + uClass.getCourseId() + " where id="
+ uClass.getClassId();
this.executeHql(hql);
};
@Override
public List<Classes> findAllClass() {
// TODO Auto-generated method stub
String hql = "from Classes";
return this.find(hql);
}
@Override
public List<PMUser> findClassStudentsByIdPage(int classId, int pageNum, int pageSize){
String hql = "select u from Users u,Classstudents c where c.classId="
+ classId + " and u.id=c.userId order by u.studentNo asc";
Query q = this.getCurrentSession().createQuery(hql);
List<Users> classstudentsList = q.setFirstResult((pageNum - 1) * pageSize).setMaxResults(pageSize).list();
List<PMUser> userList = new ArrayList<PMUser>();
for (int i = 0; i < classstudentsList.size(); i++) {
Users user = classstudentsList.get(i);
if (user != null) {
PMUser p = new PMUser();
p.setId(user.getId());
p.setStudentNo(user.getStudentNo());
p.setUsername(user.getUsername());
p.setChineseName(user.getChineseName());
p.setBanji(user.getBanji());
p.setEmail(user.getEmail());
userList.add(p);
}
}
return userList;
}
@Override
public boolean deleteClassStudentsByUserId(int classId, int userId) {
// TODO Auto-generated method stub
String hql = "delete from Classstudents where classId=" + classId
+ " and userId=" + userId;
int result = classstudentsDao.executeHql(hql);
if (result == 1)
return true;
else
return false;
}
@Override
public long findClassStudentsByIdNum(int classId){
String totalhql = "select count(distinct u.id ) from Users u,Classstudents c where c.classId="
+ classId + " and u.id=c.userId order by u.studentNo asc";
return this.count(totalhql).longValue();
}
}

View File

@ -20,7 +20,9 @@ public interface ClassesServiceI {
public boolean deleteClass(int id); // 删除班级
public void addClass(PMClasses pclass); // 添加班级
public void addClassToCourse(UClass uClass);//添加班级到课程
public DataGrid findClassStudentsByIdPage(int classId,int pageNum, int pageSize);
public boolean deleteClassStudentsByUserId(int classId, int userId);
public DataGrid findClassNotInCourse(UClass uClass, int pageNum, int pageSize); // 获取未参加课程的班级
public DataGrid findClassNotInCourse(int courseId, int teacherId, int pageNum, int pageSize, boolean history); // 获取未参加课程的班级

View File

@ -184,6 +184,9 @@ public void setclassstudentsDao(ClassstudentsDaoI classstudentsDao) {
}
classesDao.addClass(pclass);
}
public void addClassToCourse(UClass uClass){
classesDao.addClassToCourse(uClass);
};
// addclass要用的方法
public String getInviteCode() {
// 1.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD>룬2.<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>
@ -198,5 +201,35 @@ public void setclassstudentsDao(ClassstudentsDaoI classstudentsDao) {
}
return shortBuffer.toString();
}
@Override
public DataGrid findClassStudentsByIdPage(int classId,int pageNum, int pageSize){
DataGrid dg = new DataGrid();
long totalLines;
List<PMUser> userList;
totalLines = classesDao.findClassStudentsByIdNum(classId);
userList = classesDao.findClassStudentsByIdPage(classId, pageNum, pageSize);
if (userList == null) {
return null;
} else{
// 设置总的记录行数
dg.setTotal(totalLines);
// 设置每页显示多少行
dg.setPageSize(pageSize);
// 设置总的页数,总页数 = (总行数/每页显示多少行)向上取整
dg.setTotalPages((long) (Math.ceil((double) dg.getTotal() / (double) dg.getPageSize())));
// 设置当前显示第几页
dg.setPageNum(pageNum);
// 设置当前页的数据行数量
dg.setCurrentPageLineNum(userList.size());
// 设置当前页的所有数据行
dg.setList(userList);
return dg;
}
}
@Override
public boolean deleteClassStudentsByUserId(int classId, int userId) {
return classesDao.deleteClassStudentsByUserId(classId, userId);
}
}