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

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) => findAllTeacher: (data) =>
request.post('/adminusers/findAllTeacher', data), request.post('/adminusers/findAllTeacher', data),
findClassNotInCourse: (data) => request.post('/classes/findClassNotInCourse', 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 onStudentClass = async (classid)=>{
// const {id} = classid const {id} = classid
const id=1
await router.push({name: 'AdminClassStudents', params: {clId: id}}) await router.push({name: 'AdminClassStudents', params: {clId: id}})
} }
const onAssistantClass = async (classid)=>{ const onAssistantClass = async (classid)=>{
// const {id} = classid const {id} = classid
const id=1
await router.push({name: 'AdminClassAssistant', params: {clId: id}}) await router.push({name: 'AdminClassAssistant', params: {clId: id}})
} }
const onEditClass = async (classid)=>{ const onEditClass = async (classid)=>{

View File

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

View File

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

View File

@ -33,7 +33,7 @@
style="margin-left: 30px" style="margin-left: 30px"
type="primary" type="primary"
:loading="queryLoading" :loading="queryLoading"
@click="getClassesNotInExam" @click="getClassesNotInCourse"
> >
查询 查询
</n-button> </n-button>
@ -80,11 +80,11 @@ const options1 =
const options2 = ref([]) const options2 = ref([])
const queryLoading = ref(false) const queryLoading = ref(false)
const teacherInfoValue = ref({ const teacherInfoValue = ref({
schoolId: '1', // schoolId: '1',
teacherId: '', teacherId: '',
}) })
const teacherId = ref(0) const teacherId = ref(0)
const classes = ref([{id:1,name:'班级1',teacherName:'黄秋波',studentNum:40}]) const classes = ref([])
const loading = ref(false) const loading = ref(false)
const otherSchool = ref(false) const otherSchool = ref(false)
const columns = [ const columns = [
@ -130,7 +130,8 @@ const columns = [
return h( return h(
ExamClassesAddActions, ExamClassesAddActions,
{ {
onClickAdd: () => addClassToExam(row), onClickAdd: () =>
addClassToCourse(row),
onClickStudentInfo: () => onStudentClass(row), onClickStudentInfo: () => onStudentClass(row),
showStudentInfoButton: isAdmin || isTeacher, showStudentInfoButton: isAdmin || isTeacher,
onClickAssistant: () => onAssistantClass(row), onClickAssistant: () => onAssistantClass(row),
@ -221,11 +222,11 @@ const onStudentClass = (classId)=>{
const {id} = classId const {id} = classId
router.push({name: 'AdminClassStudents',params:{clId: id}}) router.push({name: 'AdminClassStudents',params:{clId: id}})
} }
const addClassToExam = async (classId) => { const addClassToCourse = async (classId) => {
const {id} = classId const {id} = classId
try { try {
await api.addClassToExam({ await api.addClassToCourse({
examId: examId, courseId:courseId,
classId: id, classId: id,
history:history 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.DecodeToken;
import com.example.aes.global.model.PageBean; import com.example.aes.global.model.PageBean;
import com.example.aes.global.model.RespBean; 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.DataGrid;
import com.example.aes.user.model.Json; import com.example.aes.user.model.Json;
import com.example.aes.user.model.PMClasses; import com.example.aes.user.model.PMClasses;
@ -25,16 +27,16 @@ public class ClassesController{
@Autowired @Autowired
private ClassesServiceI classesServiceI; private ClassesServiceI classesServiceI;
// private int classId, userId, examId,paperexamId,ClassTimeId; // private int classId, userId, examId,paperexamId,ClassTimeId;
// @Autowired @Autowired
// private ClassstudentsDaoI classstudentsDao; private ClassstudentsDaoI classstudentsDao;
// @Autowired // @Autowired
// private ExamClassesDaoI examclassesDao; // private ExamClassesDaoI examclassesDao;
// @Autowired // @Autowired
// private ExamClasseshisDaoI examClasseshisDaoI; // private ExamClasseshisDaoI examClasseshisDaoI;
// @Autowired // @Autowired
// private PaperExamClassesDaoI paperexamclassesDao; // private PaperExamClassesDaoI paperexamclassesDao;
// @Autowired @Autowired
// private ClassesDaoI classesDao; private ClassesDaoI classesDao;
// @Autowired // @Autowired
// private ExamServiceI examService; // private ExamServiceI examService;
// //
@ -106,12 +108,42 @@ public class ClassesController{
return RespBean.error("删除班级失败", result); return RespBean.error("删除班级失败", result);
} }
} }
@PostMapping("/addClassToCourse")
public RespBean addClassToCourse(@RequestBody UClass uClass,HttpServletRequest request) // 添加班级到课程中
{
classesServiceI.addClassToCourse(uClass);
return RespBean.ok("添加班级成功");
}
@PostMapping("/addClass") @PostMapping("/addClass")
public RespBean addClass(@RequestBody PMClasses pmclasses) // 添加班级 public RespBean addClass(@RequestBody PMClasses pmclasses) // 添加班级
{ {
classesServiceI.addClass(pmclasses); classesServiceI.addClass(pmclasses);
return RespBean.ok("添加班级成功"); 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") @PostMapping("/findClassNotInCourse")
public RespBean findClassNotInCourse(@RequestBody UClass uClass, HttpServletRequest request) // 查看参与课程的班级 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.auth0.jwt.exceptions.JWTDecodeException;
import com.example.aes.global.model.DecodeToken; import com.example.aes.global.model.DecodeToken;
import com.example.aes.global.model.RespBean; 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.model.*;
import com.example.aes.user.service.UserServiceI; import com.example.aes.user.service.UserServiceI;
import com.example.aes.user.dao.ClassstudentsDaoI; import com.example.aes.user.dao.ClassstudentsDaoI;
@ -29,6 +31,10 @@ public class UserController {
private UserServiceI userService; private UserServiceI userService;
@Resource @Resource
private ClassstudentsDaoI classstudentsDao; private ClassstudentsDaoI classstudentsDao;
@Resource
private ClassesDaoI classesDao;
@Resource
private AdminusersDaoI adminusersDao;
// 修改用户信息 // 修改用户信息
@PostMapping("/editUserInfo") @PostMapping("/editUserInfo")
public RespBean editUserInfo(@RequestBody PMUser user, HttpServletRequest request) { public RespBean editUserInfo(@RequestBody PMUser user, HttpServletRequest request) {
@ -120,6 +126,82 @@ public class UserController {
return RespBean.error("获取学生信息失败"); 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") @PostMapping("/getPassword")
public RespBean getPassword(@RequestBody PMUser user1) // 获取学生的密码 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 long findClassNotInCourseNum(int courseId, int teacherId, boolean history);
public List<Classes> findAllClass(); // 查询所有班级 public List<Classes> findAllClass(); // 查询所有班级
public void addClass(PMClasses pclass); // 添加班级 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) { public List<PMClasses> findClassNotInCourse(int courseId, int teacherId, int pageNum, int pageSize, boolean history) {
// TODO Auto-generated method stub // TODO Auto-generated method stub
StringBuffer sql = new StringBuffer(); StringBuffer sql = new StringBuffer();
Map<String,Object> params = new HashMap<String, Object>(); // Map<String,Object> params = new HashMap<String, Object>();
if(history){ if(history){
sql.append("from Classes where " + sql.append("from Classes where " +
"courseId is null"); "courseId is null");
@ -346,9 +346,9 @@ public class ClassesDaoImpl extends BaseDaoImpl<Classes> implements ClassesDaoI
"courseId is null"); "courseId is null");
} }
if(teacherId!=0){ if(teacherId!=0){
sql.append(" and teacherId" + sql.append(" and teacherId=" +
"=:teacherId "); teacherId);
params.put("teacherId", teacherId); // params.put("teacherId", teacherId);
} }
sql.append(" order by id desc "); sql.append(" order by id desc ");
// params.put("courseId", courseId); // params.put("courseId", courseId);
@ -483,10 +483,59 @@ public class ClassesDaoImpl extends BaseDaoImpl<Classes> implements ClassesDaoI
this.save(c); this.save(c);
} }
@Override @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() { public List<Classes> findAllClass() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
String hql = "from Classes"; String hql = "from Classes";
return this.find(hql); 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 boolean deleteClass(int id); // 删除班级
public void addClass(PMClasses pclass); // 添加班级 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(UClass uClass, int pageNum, int pageSize); // 获取未参加课程的班级
public DataGrid findClassNotInCourse(int courseId, int teacherId, int pageNum, int pageSize, boolean history); // 获取未参加课程的班级 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); classesDao.addClass(pclass);
} }
public void addClassToCourse(UClass uClass){
classesDao.addClassToCourse(uClass);
};
// addclass要用的方法 // addclass要用的方法
public String getInviteCode() { public String getInviteCode() {
// 1.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD>룬2.<EFBFBD><EFBFBD>֤<EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD> // 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(); 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);
}
} }