From fa40000378a349aaea4132c670a5bb8d3937798e Mon Sep 17 00:00:00 2001 From: zlm133588 <13996255+zlm133588@user.noreply.gitee.com> Date: Fri, 7 Mar 2025 22:51:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=95=99=E5=B8=88=E7=AB=AF?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E3=80=81=E5=BF=98=E8=AE=B0=E5=AF=86=E7=A0=81?= =?UTF-8?q?=E3=80=81=E9=87=8D=E7=BD=AE=E5=AF=86=E7=A0=81=E7=AD=89=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=EF=BC=8C=E8=BF=98=E6=9C=89=E5=85=A8=E9=83=A8=E5=AD=A6?= =?UTF-8?q?=E7=94=9F=E6=A8=A1=E5=9D=97=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=8A=A9?= =?UTF-8?q?=E6=95=99=E7=AE=A1=E7=90=86=E6=A8=A1=E5=9D=97=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E4=BA=86=E4=B8=80=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AES-front/src/api/admin.js | 22 +- AES-front/src/components/LoginForm.vue | 6 +- .../views/admin/assistant/assistant-edit.vue | 3 +- .../views/admin/assistant/assistant-list.vue | 29 +- .../components/assistant-actions.vue | 2 +- AES-front/src/views/admin/login/register.vue | 4 +- .../problem/components/ProblemActions2.vue | 8 +- .../admin/problem/problem-edit-setup.vue | 20 +- .../src/views/admin/problem/problem-edit.vue | 99 ++ .../src/views/admin/problem/problem-post.vue | 14 +- .../views/admin/problem/problem-review.vue | 175 ++- .../src/views/admin/problem/problem-store.vue | 10 +- .../views/admin/problem/problem-student.vue | 12 +- AES-front/src/views/admin/route.js | 25 + .../src/views/admin/student/student-list.vue | 54 +- .../global/config/HttpInterceptorConfig.java | 7 +- .../user/controller/AdminusersController.java | 182 ++- .../user/controller/ClassesController.java | 57 + .../aes/user/controller/UserController.java | 185 +-- .../example/aes/user/dao/AdminusersDaoI.java | 6 +- .../aes/user/dao/AssistantClassDaoI.java | 26 + .../com/example/aes/user/dao/ClassesDaoI.java | 111 ++ .../aes/user/dao/ClassstudentsDaoI.java | 29 + .../aes/user/dao/impl/AdminusersDaoImpl.java | 121 +- .../aes/user/dao/impl/AssistantClassImpl.java | 96 ++ .../aes/user/dao/impl/ClassesDaoImpl.java | 1191 +++++++++++++++++ .../user/dao/impl/ClassstudentsDaoImpl.java | 109 ++ .../aes/user/dao/impl/UserDaoImpl.java | 9 +- .../aes/user/model/AssistantClass.java | 54 + .../com/example/aes/user/model/Classes.java | 131 ++ .../example/aes/user/model/Classstudents.java | 64 + .../example/aes/user/model/PMAdminusers.java | 32 +- .../com/example/aes/user/model/PMClasses.java | 89 ++ .../com/example/aes/user/model/PMUser.java | 16 +- .../example/aes/user/model/UAdminusers.java | 191 +++ .../com/example/aes/user/model/UClass.java | 130 ++ .../com/example/aes/user/model/Users.java | 2 +- .../aes/user/service/AdminusersServiceI.java | 8 + .../user/service/AssistantClassServiceI.java | 17 + .../aes/user/service/ClassesServiceI.java | 79 ++ .../service/impl/AdminusersServiceImpl.java | 140 ++ .../impl/AssistantClassServiceImpl.java | 66 + .../user/service/impl/ClassesServiceImpl.java | 41 + .../user/service/impl/UserServiceImpl.java | 9 +- 44 files changed, 3338 insertions(+), 343 deletions(-) create mode 100644 AES-front/src/views/admin/problem/problem-edit.vue create mode 100644 AES/src/main/java/com/example/aes/user/controller/ClassesController.java create mode 100644 AES/src/main/java/com/example/aes/user/dao/AssistantClassDaoI.java create mode 100644 AES/src/main/java/com/example/aes/user/dao/ClassesDaoI.java create mode 100644 AES/src/main/java/com/example/aes/user/dao/ClassstudentsDaoI.java create mode 100644 AES/src/main/java/com/example/aes/user/dao/impl/AssistantClassImpl.java create mode 100644 AES/src/main/java/com/example/aes/user/dao/impl/ClassesDaoImpl.java create mode 100644 AES/src/main/java/com/example/aes/user/dao/impl/ClassstudentsDaoImpl.java create mode 100644 AES/src/main/java/com/example/aes/user/model/AssistantClass.java create mode 100644 AES/src/main/java/com/example/aes/user/model/Classes.java create mode 100644 AES/src/main/java/com/example/aes/user/model/Classstudents.java create mode 100644 AES/src/main/java/com/example/aes/user/model/PMClasses.java create mode 100644 AES/src/main/java/com/example/aes/user/model/UAdminusers.java create mode 100644 AES/src/main/java/com/example/aes/user/model/UClass.java create mode 100644 AES/src/main/java/com/example/aes/user/service/AssistantClassServiceI.java create mode 100644 AES/src/main/java/com/example/aes/user/service/ClassesServiceI.java create mode 100644 AES/src/main/java/com/example/aes/user/service/impl/AssistantClassServiceImpl.java create mode 100644 AES/src/main/java/com/example/aes/user/service/impl/ClassesServiceImpl.java diff --git a/AES-front/src/api/admin.js b/AES-front/src/api/admin.js index 393c499..2718579 100644 --- a/AES-front/src/api/admin.js +++ b/AES-front/src/api/admin.js @@ -6,9 +6,21 @@ export default { getTeacherInfo: () => request.post('/adminusers/getTeacherInfo'), updateTeacherNoPassword: (data) => request.post('/adminusers/updateTeacherNoPassword', data), getTeacherSignList: () => request.post('/adminusers/getTeacherSignList'), - // findAllClassPage: (data) => request.post('/classes/findAllClassPage', data), - // findAllClasses: (data) => request.post('/classes/findAllClasses', data), - // findAllCoursesPage: (data) => request.post('/course/findAllCoursesPage', data) - signTeacher: (data) => request.post('/adminusers/signTeacher', data, { noNeedToken: true }) - + findAdminuserByno: (data) => request.post('/adminusers/findAdminuserByno', data, { noNeedToken: true }), + signTeacher: (data) => request.post('/adminusers/signTeacher', data, { noNeedToken: true }), + findAdminuserByAccountInRePwInfo: (data) => + request.post('/adminusers/findAdminuserByAccountInRePwInfo', data, { noNeedToken: true }), + confirmQuestionAnswer: (data) => + request.post('/adminusers/confirmQuestionAnswer', data, { noNeedToken: true }), + updatePasswordByAccount: (data) => + request.post('/adminusers/updatePasswordByAccount', data, { noNeedToken: true }), + findStudentsByCondition: (data) => request.post('/user/findStudentsByCondition', data), + getUser: (data) => request.post('/user/getUser', data), + editUserInfoByTeacher: (data) => request.post('/user/editUserInfoByTeacher', data), + editUserPasswordByTeacher: (data) => request.post('/user/editUserPasswordByTeacher', data), + remove: (data) => request.post('/user/remove', data), + findAllAssistant: (data) => request.post('/adminusers/findAllAssistant', data), + findAllClasses: (data) => request.post('/classes/findAllClasses', data), + getAssistantById: (data) => request.post('/adminusers/getAssistantById', data), + editAssistant: (data) => request.post('/adminusers/editAssistant', data), } diff --git a/AES-front/src/components/LoginForm.vue b/AES-front/src/components/LoginForm.vue index 8cfb65e..8575e1a 100644 --- a/AES-front/src/components/LoginForm.vue +++ b/AES-front/src/components/LoginForm.vue @@ -152,10 +152,10 @@ initLoginInfo() showTo() function showTo(){ - if(props.title==="OJ系统 - 管理端") showToStudent.value=false; + if(props.title==="自动评测系统 - 管理端") showToStudent.value=false; } const regist=()=>{ - if (props.title==="OJ系统 - 管理端"){ + if (props.title==="自动评测系统 - 管理端"){ router.push({name: 'AdminRegister'}) }else { router.push({name:'Signup'}) @@ -163,7 +163,7 @@ const regist=()=>{ } } const forget=()=>{ - if (props.title==="OJ系统 - 管理端"){ + if (props.title==="自动评测系统 - 管理端"){ router.push({name:'AdminRePwInfo'}) }else { router.push({name:'RePwInfo'}) diff --git a/AES-front/src/views/admin/assistant/assistant-edit.vue b/AES-front/src/views/admin/assistant/assistant-edit.vue index 875a26d..b7fc625 100644 --- a/AES-front/src/views/admin/assistant/assistant-edit.vue +++ b/AES-front/src/views/admin/assistant/assistant-edit.vue @@ -132,7 +132,8 @@ const queryByPage1 = async ()=>{ } onMounted(()=>{ - queryByPage() + queryByPage1() + queryByPage() }) diff --git a/AES-front/src/views/admin/assistant/assistant-list.vue b/AES-front/src/views/admin/assistant/assistant-list.vue index e289f21..56b089b 100644 --- a/AES-front/src/views/admin/assistant/assistant-list.vue +++ b/AES-front/src/views/admin/assistant/assistant-list.vue @@ -117,10 +117,9 @@ const columns = [ render(row) { return h( AssistantActions, - { - onClickDelete: () => onDeleteAssistant(row), - onClickEdit: () => onEditAssistant(row), + {onClickEdit: () => onEditAssistant(row), onClickPassword: () => onPasswordAssistant(row), + onClickDelete: () => onDeleteAssistant(row), } ); } @@ -133,7 +132,7 @@ const queryByPage = async (currentPage)=>{ const res = await api.findAllAssistant( { id:id, - schoolId:assistantInfoValue.value.schoolId, + // schoolId:assistantInfoValue.value.schoolId, pageNum:currentPage, pageSize:paginationReactive.pageSize, } @@ -143,17 +142,17 @@ const queryByPage = async (currentPage)=>{ paginationReactive.pageSize = pageSize paginationReactive.itemCount = total assistantList.value=list.map((item,i)=>{return item;}) - const res1=await api.findAllShoolsInAdminusers() - const list1=res1.data - const transformedDatas=list1.map(item => ({ - label: item.name, - value: item.id, - })); - transformedDatas.unshift({ - label: '全部', - value: 0, - }); - options.value=transformedDatas; + // const res1=await api.findAllShoolsInAdminusers() + // const list1=res1.data + // const transformedDatas=list1.map(item => ({ + // label: item.name, + // value: item.id, + // })); + // transformedDatas.unshift({ + // label: '全部', + // value: 0, + // }); + // options.value=transformedDatas; } catch (err) { }finally{ loading.value = false diff --git a/AES-front/src/views/admin/assistant/components/assistant-actions.vue b/AES-front/src/views/admin/assistant/components/assistant-actions.vue index 091704b..928e38e 100644 --- a/AES-front/src/views/admin/assistant/components/assistant-actions.vue +++ b/AES-front/src/views/admin/assistant/components/assistant-actions.vue @@ -5,7 +5,7 @@ 编辑 - 重置秘密 + 重置密码 删除 diff --git a/AES-front/src/views/admin/login/register.vue b/AES-front/src/views/admin/login/register.vue index cd1e8f2..5ae8163 100644 --- a/AES-front/src/views/admin/login/register.vue +++ b/AES-front/src/views/admin/login/register.vue @@ -141,7 +141,6 @@ const formRules = { const findExistUser = async () => { const res = await api.findAdminuserByno({ no: formValue.value.no - // schoolId:formValue.value.schoolId }) if (res.data) { const { account, name, email,no,question,answer} = res.data @@ -159,7 +158,8 @@ const findExistUser = async () => { positiveText: '确认', negativeText: '取消', onPositiveClick: () => { - router.push({ name: 'AdminRePwInfo', state: { account } }) + router.push({ name: 'AdminRePwInfo', + state: { account } }) }, }) } diff --git a/AES-front/src/views/admin/problem/components/ProblemActions2.vue b/AES-front/src/views/admin/problem/components/ProblemActions2.vue index a48ab33..1151159 100644 --- a/AES-front/src/views/admin/problem/components/ProblemActions2.vue +++ b/AES-front/src/views/admin/problem/components/ProblemActions2.vue @@ -2,7 +2,7 @@
发布 @@ -24,12 +24,12 @@ diff --git a/AES-front/src/views/admin/problem/problem-post.vue b/AES-front/src/views/admin/problem/problem-post.vue index 34f4032..092d414 100644 --- a/AES-front/src/views/admin/problem/problem-post.vue +++ b/AES-front/src/views/admin/problem/problem-post.vue @@ -60,16 +60,18 @@ @update="allow" > -
+
+
发布 + size="small" @click="submit" style='margin-left: + 30px'>发布 取消 + size="small" @click="cancel" style='margin-left: + 20px'>取消
- -
+ + diff --git a/AES-front/src/views/admin/problem/problem-review.vue b/AES-front/src/views/admin/problem/problem-review.vue index 2d3ccf0..9e41ac4 100644 --- a/AES-front/src/views/admin/problem/problem-review.vue +++ b/AES-front/src/views/admin/problem/problem-review.vue @@ -1,11 +1,170 @@ - - - \ No newline at end of file + diff --git a/AES-front/src/views/admin/problem/problem-store.vue b/AES-front/src/views/admin/problem/problem-store.vue index dccf047..7193501 100644 --- a/AES-front/src/views/admin/problem/problem-store.vue +++ b/AES-front/src/views/admin/problem/problem-store.vue @@ -134,8 +134,8 @@ if (role[0]=='admin'){ ProblemActions2, { - onClickReview: () => - onReviewProblem(row), + onClickPost: () => + onPostProblem(row), onClickEdit: () => onEditProblem(row), onClickDelete:()=>onDeleteProblem(row) } @@ -257,6 +257,12 @@ const onEditProblem = async (problemid)=>{ const {id} =1 await router.push({name: 'AdminProblemEdit', params: {clId: id}}) } +const onPostProblem = async (problemid)=>{ + // const {id} = problemid + const {id} =1 + await router.push({name: 'AdminProblemPost', + params: {clId: id}}) +} const search=async ()=>{ loading.value=true try { diff --git a/AES-front/src/views/admin/problem/problem-student.vue b/AES-front/src/views/admin/problem/problem-student.vue index 93c6038..595a5cb 100644 --- a/AES-front/src/views/admin/problem/problem-student.vue +++ b/AES-front/src/views/admin/problem/problem-student.vue @@ -136,19 +136,20 @@ const updateColumns=()=>{ { key: 'studentNo', title: '学号', - width: '160', + width: '80', align:'center', }, { key: 'chineseName', title: '姓名', - width: '80', + width: '50', align:'center', }, { key: 'readTime', title: '领取时间', - width: '200', + width: '100', + align:'center', render: (row) => { return row["readTime"]=formatDateTime(row["readTime"]); @@ -157,7 +158,7 @@ const updateColumns=()=>{ { key: 'status1', title: '状态', - width: '150', + width: '300', }, // { // key: 'actions', @@ -193,6 +194,7 @@ const updateColumns=()=>{ key: 'submitTime', title: '提交时间', width: '160', + align:'center', render: (row) => { return row["submitTime"]=formatDateTime(row["submitTime"]); @@ -202,11 +204,13 @@ const updateColumns=()=>{ key: 'status', title: '状态', width: '150', + align:'center', }, { key: 'score', title: '成绩', width: '170', + align:'center', }, { key: 'actions', diff --git a/AES-front/src/views/admin/route.js b/AES-front/src/views/admin/route.js index 22aa5d5..976d1a4 100644 --- a/AES-front/src/views/admin/route.js +++ b/AES-front/src/views/admin/route.js @@ -78,6 +78,19 @@ export default { keepAlive: true, }, }, + { + name: 'AdminProblemEdit', + path: 'problem-edit', + isHidden: true, + component: () => import('@/views/admin/problem/problem-edit.vue'), + meta: { + title: '作业编辑', + icon: 'ic:baseline-add', + role: ['admin', 'teacher'], + requireAuth: true, + keepAlive: true, + }, + }, { name: 'AdminProblemReview', path: 'problem-review', @@ -143,6 +156,18 @@ export default { keepAlive: true, }, }, + { + name: 'AdminProblemTest', + path: 'problem-test', + component: () => import('@/views/admin/problem/test.vue'), + meta: { + title: '测试页', + icon: 'ic:baseline-add', + role: ['admin', 'teacher'], + requireAuth: true, + keepAlive: true, + }, + }, { name: 'AdminProblemStore', path: 'problem-store', diff --git a/AES-front/src/views/admin/student/student-list.vue b/AES-front/src/views/admin/student/student-list.vue index fc4111b..5954394 100644 --- a/AES-front/src/views/admin/student/student-list.vue +++ b/AES-front/src/views/admin/student/student-list.vue @@ -68,7 +68,7 @@ const route = useRoute() const options=ref([]) const loading = ref(true) const studentList = - ref([{stId:1,studentNo:"211310509",chineseName:"张三",username:"zhangsan",banji:"计算机2101",email:"2286848422@qq.com"}]) + ref([]) const {clId} = route.params const paginationReactive = reactive({ page: 1, @@ -141,9 +141,11 @@ const columns = [ return h( StudentListAction, { - onClickPassword: () => onPasswordClass(row), - onClickEdit: () => onEditClass(row), - onClickDelete: () => onDeleteClass(row), + onClickPassword: () => + onPasswordStudent(row), + onClickEdit: () => onEditStudent(row), + onClickDelete: () => + onDeleteStudent(row), } ); } @@ -154,24 +156,24 @@ const studentInfoValue = ref({ studentNo:'', chineseName:'', stu_userName:'', - schoolId:0, + // schoolId:0, pageNum:paginationReactive.page, pageSize:paginationReactive.pageSize }); const queryByPage = async (currentPage)=>{ loading.value = true try { - const res1=await api.findAllShoolsInAdminusers() - const list1=res1.data - const transformedDatas=list1.map(item => ({ - label: item.name, - value: item.id, - })); - transformedDatas.unshift({ - label: '全部', - value: 0, - }); - options.value=transformedDatas; + // const res1=await api.findAllShoolsInAdminusers() + // const list1=res1.data + // const transformedDatas=list1.map(item => ({ + // label: item.name, + // value: item.id, + // })); + // transformedDatas.unshift({ + // label: '全部', + // value: 0, + // }); + // options.value=transformedDatas; studentInfoValue.value.pageNum=currentPage studentInfoValue.value.pageSize=paginationReactive.pageSize const res = await api.findStudentsByCondition({ @@ -179,8 +181,8 @@ const queryByPage = async (currentPage)=>{ pageSize:paginationReactive.pageSize, studentNo:studentInfoValue.value.studentNo, chineseName:studentInfoValue.value.chineseName, - stu_userName:studentInfoValue.value.stu_userName, - schoolId:studentInfoValue.value.schoolId + stu_userName:studentInfoValue.value.stu_userName + // schoolId:studentInfoValue.value.schoolId }) if (res.message==='获取学生信息为空'){ studentList.value=[] @@ -209,23 +211,21 @@ const queryByPage = async (currentPage)=>{ loading.value = false } } -const onPasswordClass = async (classId)=>{ - // const {id} = classId - const id=1 - if (classId.username==='请学生注册'){ +const onPasswordStudent = async (studentId)=>{ + const {id} = studentId + if (studentId.username==='请学生注册'){ $message.error("请先注册在进行此操作") }else { await router.push({name: 'StudentPassword', params: {clId: id}, query: {id: clId}}) } } -const onEditClass = async (classId)=>{ - // const {id} = classId - const id=1 +const onEditStudent = async (studentId)=>{ + const {id} = studentId await router.push({name: 'StudentEdits', params: {clId: id}, query: {id: clId}}) } -const onDeleteClass = async (classId)=>{ +const onDeleteStudent = async (student)=>{ try { - await api.remove({ids:classId.username}) + await api.remove({username:student.username}) $message.success("删除成功") if (!loading.value) { await queryByPage() diff --git a/AES/src/main/java/com/example/aes/global/config/HttpInterceptorConfig.java b/AES/src/main/java/com/example/aes/global/config/HttpInterceptorConfig.java index f7dc8d2..8427bf4 100644 --- a/AES/src/main/java/com/example/aes/global/config/HttpInterceptorConfig.java +++ b/AES/src/main/java/com/example/aes/global/config/HttpInterceptorConfig.java @@ -20,7 +20,12 @@ public class HttpInterceptorConfig extends WebMvcConfigurationSupport { registry.addInterceptor(jwtInterceptor) .addPathPatterns("/api/**") //拦截所有请求,判断token是否合法决定是否需要登录 .excludePathPatterns("/api/login/student","/api/login/admin","/api/login","/api/user/signUser", - "/api/user/findUserByStudentNoSchoolId","/api/school/getSchoolByName"); + "/api/user" + + "/findUserByStudentNoSchoolId","/api/school/getSchoolByName","/api/adminusers/findAdminuserByno","/api/adminusers/findAdminuserByAccountInRePwInfo", + "/api/adminusers" + + "/signTeacher", + "/api/adminusers" + + "/confirmQuestionAnswer","/api/adminusers/updatePasswordByAccount"); } diff --git a/AES/src/main/java/com/example/aes/user/controller/AdminusersController.java b/AES/src/main/java/com/example/aes/user/controller/AdminusersController.java index 36995d2..4f58d07 100644 --- a/AES/src/main/java/com/example/aes/user/controller/AdminusersController.java +++ b/AES/src/main/java/com/example/aes/user/controller/AdminusersController.java @@ -3,8 +3,12 @@ package com.example.aes.user.controller; import com.example.aes.global.model.DecodeToken; import com.example.aes.global.model.RespBean; +import com.example.aes.user.model.AssistantClass; +import com.example.aes.user.model.DataGrid; import com.example.aes.user.model.PMAdminusers; +import com.example.aes.user.model.UAdminusers; import com.example.aes.user.service.AdminusersServiceI; +import com.example.aes.user.service.AssistantClassServiceI; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; @@ -22,7 +26,8 @@ public class AdminusersController { @Autowired AdminusersServiceI adminusersServiceI; - + @Autowired + AssistantClassServiceI assistantClassService; // 管理员获取待审核记录列表 @PostMapping("/getTeacherSignList") @@ -35,70 +40,117 @@ public class AdminusersController { } return RespBean.error("不具备权限"); } -// @PostMapping("/signTeacher") -// public RespBean signTeacher(@RequestBody PMAdminusers pmadminusers) // 注册教师 -// { -// pmadminusers.setSessionId(pmadminusers.getSessionId().substring(64)); -// // 设置statu为未审核 -// pmadminusers.setStatus("待审核"); -// /* -// * UUID uuid = UUID.randomUUID(); -// * pmadminusers.setUuid(uuid.toString().replaceAll("\\-", "")); -// */ -// PMAdminusers pma = adminusersServiceI -// .getAdminuserByAccount(pmadminusers.getAccount()); -// if (pma != null) { -// if (pma.getQuestion().equals("") || pma.getQuestion().equals(null)) { -// boolean result = adminusersServiceI -// .updateQueAndAnsByaccount(pma); -// if (result == true) { -// return RespBean.ok("申请注册教师成功,请注意查收激活邮件!"); -// } else { -// return RespBean.error("注册教师失败"); -// } -// } else { -// return RespBean.error("用户名重复,请修改用户名"); -// } -// -// } else { -// boolean result = adminusersServiceI.addTeacher(pmadminusers); -// if (result == true) { -// return RespBean.ok("注册教师成功"); -// } else { -// return RespBean.error("注册教师失败"); -// } - /* - * try { - * - * SendMail mail = new SendMail(); // 收信人 String[] list = - * {pmadminusers.getEmail()}; //mail.setMailTo(list, "cc"); - * mail.setMailTo(list, "to"); // 发信人 - * mail.setMailFrom("dhuoj_noreply@163.com"); // - * mail.setMailFrom("duzhen"); // 邮件主题 - * mail.setSubject("OJ系统教师注册激活邮件"); // 邮件发送时间 mail.setSendDate(new - * Date()); // html格式邮件 // 邮件内容 String context = "" + "" - * + - * "您的OJ系统账号已创建,如果这是您在进行的操作,请点击链接(如果点击无效,请复制以下链接并在浏览器中打开)激活账号:
" - * + - * "http://218.193.156.209:8080/oj/admin/activeTeacher.jsp?account=" - * +pmadminusers.getAccount()+"&uuid="+pmadminusers.getUuid()+"" - * + "" + ""; mail.addHtmlContext(context); // txt格式邮件 - * // mail.addTextContext(""); mail.send(); - * System.out.println("send success"); boolean - * result=adminusersServiceI.addTeacher(pmadminusers); - * if(result==true){ logger.info("注册教师成功"); j.setSuccess(true); - * j.setMsg("申请注册教师成功,请注意查收激活邮件!"); super.writeJson(j); }else{ - * logger.info("注册教师失败"); j.setSuccess(false); j.setMsg("注册教师失败"); - * super.writeJson(j); } - * - * } catch (Exception e) { e.printStackTrace(); - * logger.info("注册教师邮件发送失败,请联系管理员11249242@qq.com"); - * j.setSuccess(false); - * j.setMsg("注册教师邮件发送失败,请联系管理员11249242@qq.com"); super.writeJson(j); - * } - */ + @PostMapping("/findAdminuserByno") + public RespBean findAdminuserByno(@RequestBody UAdminusers uAdminusers){ + String no = uAdminusers.getNo(); +// int schoolId = uAdminusers.getSchoolId(); + + PMAdminusers pmAdminusers = adminusersServiceI.findAdminuserByno(no); + if(pmAdminusers!=null) + return RespBean.ok("查询成功", pmAdminusers); + else + return RespBean.ok("无该账号信息"); + } + @PostMapping("/findAdminuserByAccountInRePwInfo") + public RespBean findAdminuserByAccountInRePwInfo(@RequestBody PMAdminusers pmadminusers) { + PMAdminusers adminuser = adminusersServiceI + .getAdminuserByAccount(pmadminusers.getAccount()); + if (adminuser != null) { + adminuser.setAnswer(null); + adminuser.setPassword(null); + return RespBean.ok("查询教师信息成功", adminuser); + } else { + return RespBean.error("查询教师信息失败"); } + } + @PostMapping("/signTeacher") + public RespBean signTeacher(@RequestBody PMAdminusers pmadminusers) // 注册教师 + { + pmadminusers.setSessionId(pmadminusers.getSessionId().substring(64)); + // 设置statu为未审核 + pmadminusers.setStatus("待审核"); + /* + * UUID uuid = UUID.randomUUID(); + * pmadminusers.setUuid(uuid.toString().replaceAll("\\-", "")); + */ + PMAdminusers pma = adminusersServiceI + .getAdminuserByAccount(pmadminusers.getAccount()); + if (pma != null) { + if (pma.getQuestion().equals("") || pma.getQuestion().equals(null)) { + boolean result = adminusersServiceI + .updateQueAndAnsByaccount(pma); + if (result == true) { + return RespBean.ok("申请注册教师成功,请注意查收激活邮件!"); + } else { + return RespBean.error("注册教师失败"); + } + } else { + return RespBean.error("用户名重复,请修改用户名"); + } + + } else { + boolean result = adminusersServiceI.addTeacher(pmadminusers); + if (result == true) { + return RespBean.ok("注册教师成功"); + } else { + return RespBean.error("注册教师失败"); + } + } + } + @PostMapping("/confirmQuestionAnswer") + public RespBean confirmQuestionAnswer(@RequestBody PMAdminusers pmadminusers) { + PMAdminusers adminuser = adminusersServiceI + .getAdminuserByAccount(pmadminusers.getAccount()); + if (adminuser != null) { + if(adminuser.getAnswer().equals(pmadminusers.getAnswer()) ){ + return RespBean.ok("问题答案正确"); + }else{ + return RespBean.error("问题答案错误"); + } + } else { + return RespBean.error("查询教师信息失败"); + } + } + @PostMapping("/updatePasswordByAccount") + public RespBean updatePasswordByAccount(@RequestBody PMAdminusers pmadminusers) { + pmadminusers.setSessionId(pmadminusers.getSessionId().substring(64)); + boolean result = adminusersServiceI + .updatePasswordByAccount(pmadminusers); + if (result == true) { + return RespBean.ok("重置密码成功"); + } else { + return RespBean.error("重置密码失败"); + } + } + @PostMapping("/findAllAssistant") + public RespBean findAllAssistant(@RequestBody PMAdminusers pmadminusers,HttpServletRequest request) // 查看所有助教信息 + { + DecodeToken decodeToken = new DecodeToken(request); + int userId = Integer.parseInt(decodeToken.getUserId()); + pmadminusers.setId(userId); + pmadminusers.setRole(decodeToken.getRole()); + System.out.println(decodeToken.getRole()); +// List list = adminusersServiceI +// .findAllAssistant(pmadminusers); + DataGrid dataGrid = adminusersServiceI + .findAllAssistant(pmadminusers); + return RespBean.ok("查看助教信息成功", dataGrid); + } + @PostMapping("/getAssistantById") + public RespBean getAssistantById(@RequestBody PMAdminusers pmadminusers) // 查找助教的信息 + { + PMAdminusers assistant = adminusersServiceI + .getAdminuserById(pmadminusers.getId()); + List list = assistantClassService + .getAssistantClassByAssistantId(pmadminusers.getId()); + String classIds = ""; + for (int i = 0; i < list.size(); i++) { + classIds += list.get(i).getClassId().intValue() + ","; + } + assistant.setClassIds(classIds); + return RespBean.ok("查询用户成功", assistant); + } +} + diff --git a/AES/src/main/java/com/example/aes/user/controller/ClassesController.java b/AES/src/main/java/com/example/aes/user/controller/ClassesController.java new file mode 100644 index 0000000..0576bc3 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/controller/ClassesController.java @@ -0,0 +1,57 @@ +package com.example.aes.user.controller; + +import com.example.aes.global.model.DecodeToken; +import com.example.aes.global.model.RespBean; +import com.example.aes.user.model.PMClasses; +import com.example.aes.user.service.ClassesServiceI; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +@RestController +@RequestMapping("/classes") +@Transactional +public class ClassesController{ + @Autowired + private ClassesServiceI classesServiceI; + // private int classId, userId, examId,paperexamId,ClassTimeId; +// @Autowired +// private ClassstudentsDaoI classstudentsDao; +// @Autowired +// private ExamClassesDaoI examclassesDao; +// @Autowired +// private ExamClasseshisDaoI examClasseshisDaoI; +// @Autowired +// private PaperExamClassesDaoI paperexamclassesDao; +// @Autowired +// private ClassesDaoI classesDao; +// @Autowired +// private ExamServiceI examService; +// +// @Autowired +// private AdminusersDaoI adminusersDaoI; +// @Autowired +// private LogServiceI logService; + @PostMapping("/findAllClasses") + public RespBean findAllClasses(@RequestBody PMClasses pmclasses, HttpServletRequest request) { + DecodeToken decodeToken=new DecodeToken(request); + int teacherId= Integer.parseInt(decodeToken.getUserId()); + String userrole=decodeToken.getRole(); + if (userrole.equals("admin")){ + teacherId=0; + List classes = classesServiceI.findClassesByCondition(teacherId); + return RespBean.ok("查询所有班级信息成功",classes); + }else{ + pmclasses.setTeacherId(teacherId); + List classes = classesServiceI.findClassesByCondition(pmclasses); + return RespBean.ok("查询所有班级信息成功",classes); + } + } + +} diff --git a/AES/src/main/java/com/example/aes/user/controller/UserController.java b/AES/src/main/java/com/example/aes/user/controller/UserController.java index 24b88b1..a7f2d1a 100644 --- a/AES/src/main/java/com/example/aes/user/controller/UserController.java +++ b/AES/src/main/java/com/example/aes/user/controller/UserController.java @@ -5,6 +5,8 @@ import com.example.aes.global.model.DecodeToken; import com.example.aes.global.model.RespBean; import com.example.aes.user.model.*; import com.example.aes.user.service.UserServiceI; +import com.example.aes.user.dao.ClassstudentsDaoI; +import lombok.extern.slf4j.Slf4j; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -17,7 +19,7 @@ import java.util.Date; import java.util.List; import java.util.UUID; - +@Slf4j @RestController @RequestMapping("/user") @Transactional @@ -25,29 +27,8 @@ public class UserController { @Resource private UserServiceI userService; -// @Resource -// private ClassstudentsDaoI classstudentsDao; -// @Resource -// private ClassesDaoI classesDao; -// @Resource -// private AdminusersDaoI adminusersDao; - - // 删除操作 -// @PostMapping("/remove") -// public RespBean remove(@RequestBody PMUser user) { -// String[] nUsernames = user.getIds().split(","); -// int len = nUsernames.length; -// // 判断这些用户是否有人已经加入班级 -// for(int i=0;i { public List getTeacherByStatus(String status); - + public Adminusers findAdminuserByno(String no); + public Adminusers getAdminuserByAccount(String account); + public boolean addTeacher(PMAdminusers pmadminusers); + public List findAllAssistant(PMAdminusers pmadminusers); // 查看所有助教信息 } diff --git a/AES/src/main/java/com/example/aes/user/dao/AssistantClassDaoI.java b/AES/src/main/java/com/example/aes/user/dao/AssistantClassDaoI.java new file mode 100644 index 0000000..6a5d3a8 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/dao/AssistantClassDaoI.java @@ -0,0 +1,26 @@ +package com.example.aes.user.dao; + + + + +import com.example.aes.user.model.AssistantClass; + +import java.util.List; + +public interface AssistantClassDaoI extends BaseDaoI { + + public boolean addAssistantClass(int assistantId, int classId); // 为班级添加助教 + + public List getAssistantClassByAssistantId(int assistantId); // 查询助教所属的班级 + + public List getAssistantClassByClassId(int classId); + + public AssistantClass getAssistantClassByPrimaryKey(int assistantId, int classId); + + public List getAssistantClassAndClassNotEnd(int teacherId, + int assistantId); // 获取教师没有结束的班级,时间为一年以内 + + public boolean delAssistantClass(int assistantId, int classId); // 删除一行 + + public boolean delAssistantClass(int id); +} diff --git a/AES/src/main/java/com/example/aes/user/dao/ClassesDaoI.java b/AES/src/main/java/com/example/aes/user/dao/ClassesDaoI.java new file mode 100644 index 0000000..e6925b4 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/dao/ClassesDaoI.java @@ -0,0 +1,111 @@ +package com.example.aes.user.dao; + + +import com.example.aes.user.model.Classes; + +import com.example.aes.user.model.PMClasses; + +import com.example.aes.user.model.PMUser; +import com.example.aes.user.model.UClass; + + +import java.util.Date; +import java.util.List; +import java.util.Map; + +public interface ClassesDaoI extends BaseDaoI { + + public List findAllClass(); // 查询所有班级 + +// public List findAllClassPage(int pageNum, int pageSize); + + public long findAllClassNum(int teacherId, String role); + + public List findClassesByCondition(int teacherId); // 根据teacherId获取所有的班级 + + public List findClassesByConditionPage(int teacherId,String role, int pageNum, int pageSize); + + public boolean editClassMessage(int id, String className, int teacherId, int advance, int late, int reject, String weektime, Date first_week_monday); // 修改班级信息 + + public boolean deleteClass(int id); // 删除班级 + + public List findClassStudentsById(int classId); // 通过班级id,查询学生 + + public List findClassStudentsByIdNoName(List classIdList, String studentNo, String chineseName, int pageNum, int pageSize); + + public long findClassStudentsByIdNoNameNum(List classIdList, String studentNo, String chineseName); + + public List findClassStudentsByIdPage(int classId, int pageNum, int pageSize); + + public long findClassStudentsByIdNum(int classId); + + public boolean deleteClassStudentsByUserId(int classId, int userId); // 通过userId删除班级学生 + + public boolean updateClassStudentsNum(int classId, int num); // 更新班级学生人数 + + public void addClass(PMClasses pclass); // 添加班级 + + public List findClassInExam(int examId, boolean history); // 获取参与考试的班级 + +// public List findClassInExam(int examId, int teacherId, String role, boolean history); // 获取参与考试的班级,并进行身份验证 + + public List findClassInExamPage(int examId, int pageNum, int pageSize, boolean history); // 获取参与考试的班级 + +// public List findClassInExamPage(int examId, int teacherId, String role, int pageNum, int pageSize); // 获取参与考试的班级,并进行身份验证 + + public long findClassInExamNum(int examId, boolean history); + +// public long findClassInExamNum(int examId, int teacherId, String role); + + public List findClassInExamRole(int examId, String role, int teacherId); // 根据角色获取参与考试的班级 + + public List findClassInExamNoRole(int examId, boolean history); + + public List findClassInExamRolePage(int examId, String role, int teacherId, int pageNum, int pageSize); // 根据角色获取参与考试的班级 + + public long findClassInExamRoleNum(int examId, String role, int teacherId); + + public List findClassInPaperExam(int paperexamId); // 获取参与考试的班级 + + public List findClassNotInExam(int examId, int teacherId, int pageNum, int pageSize, boolean history); // 获取未参与考试的班级 + + public List findClassNotInExam(UClass uClass, int pageNum, int pageSize); // 获取未参与考试的班级 + public long findClassNotInExamNum(int examId, int teacherId, boolean history); + + public long findClassNotInExamNum(UClass uClass); + + public List findClassNotInPaperExam(int paperexamId); // 获取未参与笔试考试的班级 + + public List findNotEndClassByTeacherId(int teacherId); // 通过教师查找所属的没有结束的班级,时间为一年以内 + + public List findClassesByCondition(PMClasses pmclasses); + + public List findClassesByConditionPage(PMClasses pmclasses, int pageNum, int pageSize); + + public long findClassesByConditionPageNum(PMClasses pmclasses); + + public List findClassByTeacherId(int teacherId); + + public Classes getClassesByCode(String inviteCode); + + //获取参与该场考试班级的数量和学生人数 + public List> getClassAndStudentNumByExamId(int examId); + + public List> getClassAndStudentNumByExamIdHis(int examId, boolean history); + + public List> getClassAndStudentNumByExamIdHis(int examId); + + public Integer findOnlyClassIdByUserExam(int examId,int userId);//通过userId和examId查找在本场考试中学生所属的班级 + + public List findClassesAfterCreateTime(String createTime); + + public Classes getLastClasses(); + + public List getAllClassesByExamId(int examId); + + public Classes getClassByPrimaryKey(String name, Integer teacherId, Date createTime); + + public int addClass(Classes classes); + + public int updateClass(Classes classes); +} diff --git a/AES/src/main/java/com/example/aes/user/dao/ClassstudentsDaoI.java b/AES/src/main/java/com/example/aes/user/dao/ClassstudentsDaoI.java new file mode 100644 index 0000000..bc31599 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/dao/ClassstudentsDaoI.java @@ -0,0 +1,29 @@ +package com.example.aes.user.dao; + + +import com.example.aes.user.model.Classstudents; + +import java.util.List; + +public interface ClassstudentsDaoI extends BaseDaoI { + + public boolean insertClassStudent(int userId, int classId); + + public boolean findClassStudentByUserId(int userId, int classId); // 查看该同学是否已在该课程中 + + public int getClassStudentsNum(int classId); // 获取班级的学生人数 + + public List getClassStudentsByExamId(int examId, boolean history); // 获取考试的学生 + + public List getClassStudentsByClassId(int classId); + + public boolean findClassesByUserId(int userId); + + public List getClassStudentsByExamId(Integer examId); + + public long addClassStudent(Classstudents classstudent); + + public void deleteClassStudent(int classId, int userId); + + public void deleteClassStudent(int id); +} diff --git a/AES/src/main/java/com/example/aes/user/dao/impl/AdminusersDaoImpl.java b/AES/src/main/java/com/example/aes/user/dao/impl/AdminusersDaoImpl.java index 31378aa..f5d7be2 100644 --- a/AES/src/main/java/com/example/aes/user/dao/impl/AdminusersDaoImpl.java +++ b/AES/src/main/java/com/example/aes/user/dao/impl/AdminusersDaoImpl.java @@ -1,7 +1,12 @@ package com.example.aes.user.dao.impl; import com.example.aes.user.dao.AdminusersDaoI; +import com.example.aes.user.dao.AssistantClassDaoI; +import com.example.aes.user.dao.ClassesDaoI; import com.example.aes.user.model.Adminusers; +import com.example.aes.user.model.AssistantClass; +import com.example.aes.user.model.Classes; +import com.example.aes.user.model.PMAdminusers; import org.hibernate.Query; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.kafka.KafkaProperties; @@ -16,15 +21,127 @@ import java.util.*; @Repository("adminusersDao") public class AdminusersDaoImpl extends BaseDaoImpl implements AdminusersDaoI { - - + @Autowired @Lazy + private ClassesDaoI classesDao; + @Autowired + private AssistantClassDaoI assistantClassDao; // 查询出teacher中status为未审核状态的列表 @Override public List getTeacherByStatus(String status){ String hql = "from Adminusers where status='"+ status + "' and role='" + "teacher" + "'"; return this.find(hql); } + @Override + public Adminusers findAdminuserByno(String no){ + String hql = "from Adminusers where no=" + + " '" + no+"'"; + List list = this.find(hql); + if (list != null && list.size() != 0) { + return list.get(0); + } else + return null; + } + @Override + public Adminusers getAdminuserByAccount(String account) { + // TODO Auto-generated method stub + String hql = "from Adminusers where account='" + account + "'"; + List list = this.find(hql); + if (list != null && list.size() != 0) { + return list.get(0); + } else + return null; + } + @Override + public boolean addTeacher(PMAdminusers pmadminusers) { + // TODO Auto-generated method stub + String hql = "from Adminusers where account=:account"; + Query q = this.getCurrentSession().createQuery(hql); + q.setParameter("account", pmadminusers.getAccount()); + List list = q.list(); // 如果账号以及存在,则不能添加 + if (list.size() == 0) { + Adminusers adminuser = new Adminusers(); + adminuser.setAccount(pmadminusers.getAccount()); + adminuser.setPassword(pmadminusers.getSessionId()); + adminuser.setPwd(pmadminusers.getPassword()); + adminuser.setName(pmadminusers.getName()); + adminuser.setRole("teacher"); + adminuser.setEmail(pmadminusers.getEmail()); + adminuser.setActive(1); +// adminuser.setSchoolId(pmadminusers.getSchoolId()); + // adminuser.setUuid(pmadminusers.getUuid()); + adminuser.setQuestion(pmadminusers.getQuestion()); + adminuser.setAnswer(pmadminusers.getAnswer()); + adminuser.setNo(pmadminusers.getNo()); + adminuser.setStatus(pmadminusers.getStatus()); + Integer result = (Integer) this.save(adminuser); + if (result != null) + return true; + else + return false; + } else + return false; + } + @Override + public List findAllAssistant(PMAdminusers pmadminusers) { // 查看所有助教 + // TODO Auto-generated method stub + List pmadminusersList = new ArrayList(); + if (pmadminusers.getId() != 4) {// + // 普通教师登陆,只能看到自己班的助教 + String hql = "from Adminusers where role='assistant'"; + List adminusersList = this.find(hql, pmadminusers.getPageNum(), pmadminusers.getPageSize()); + List classesList = classesDao + .findClassByTeacherId(pmadminusers.getId()); + ArrayList a = new ArrayList(); + for (int j = 0; j < classesList.size(); j++) { + a.add(j, classesList.get(j).getId()); + } + + for (int i = 0; i < adminusersList.size(); i++) { + ArrayList comment = new ArrayList(); + ArrayList ac = new ArrayList(); + comment.addAll(a); + Adminusers assistant = adminusersList.get(i); + + List assistantclasses = assistantClassDao + .getAssistantClassByAssistantId(assistant.getId()); + for (int j = 0; j < assistantclasses.size(); j++) { + ac.add(j, assistantclasses.get(j).getClassId()); + } + comment.retainAll(ac); + if ( comment.size() != 0) { + PMAdminusers p = new PMAdminusers(); + p.setId(assistant.getId()); + p.setName(assistant.getName()); + p.setAccount(assistant.getAccount()); + p.setRole(assistant.getRole()); + p.setEmail(assistant.getEmail()); + pmadminusersList.add(p); + } + + } + + } else {// 管理员登陆 + String hql = "from Adminusers where" + + " role='assistant'"; + + List adminusersList = this.find(hql, pmadminusers.getPageNum(), pmadminusers.getPageSize()); + pmadminusersList = new ArrayList(); + for (int i = 0; i < adminusersList.size(); i++) { + Adminusers assistant = adminusersList.get(i); + PMAdminusers p = new PMAdminusers(); + p.setId(assistant.getId()); + p.setName(assistant.getName()); + p.setAccount(assistant.getAccount()); + p.setRole(assistant.getRole()); + p.setEmail(assistant.getEmail()); + pmadminusersList.add(p); + + } + } + + return pmadminusersList; + } } diff --git a/AES/src/main/java/com/example/aes/user/dao/impl/AssistantClassImpl.java b/AES/src/main/java/com/example/aes/user/dao/impl/AssistantClassImpl.java new file mode 100644 index 0000000..47f70c7 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/dao/impl/AssistantClassImpl.java @@ -0,0 +1,96 @@ +package com.example.aes.user.dao.impl; + + +import com.example.aes.user.dao.AssistantClassDaoI; +import com.example.aes.user.model.AssistantClass; +import org.hibernate.Query; +import org.springframework.stereotype.Repository; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +@Repository("assistantClassDao") +public class AssistantClassImpl extends BaseDaoImpl implements + AssistantClassDaoI { + + @Override + public boolean addAssistantClass(int assistantId, int classId) { + // TODO Auto-generated method stub + String hql = "select count(*) from AssistantClass where assistantId=" + + assistantId + " and classId=" + classId; + long n = this.count(hql); + if (n == 0) // 表示数据库中没有该项数据则添加 + { + AssistantClass ac = new AssistantClass(); + ac.setAssistantId(assistantId); + ac.setClassId(classId); + this.save(ac); + if (ac.getId() != null) // 插入成功 + { + return true; + } else + return false; + } else + // 如果有,则同样返回true + return false; + } + + @Override + public List getAssistantClassByAssistantId(int assistantId) { + // TODO Auto-generated method stub + String hql = "from AssistantClass where assistantId=" + assistantId; + return this.find(hql); + } + + @Override + public List getAssistantClassByClassId(int classId) { + // TODO Auto-generated method stub + String hql = "from AssistantClass where classId=" + classId; + return this.find(hql); + } + + @Override + public AssistantClass getAssistantClassByPrimaryKey(int assistantId, int classId) { + // TODO Auto-generated method stub + String hql = "from AssistantClass where classId=" + classId + " and assistantId=" + assistantId; + return this.get(hql); + } + + @Override + public List getAssistantClassAndClassNotEnd(int teacherId, + int assistantId) { + // TODO Auto-generated method stub + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.YEAR, -1); + Date time = cal.getTime(); + String hql = "select distinct(ac) from AssistantClass ac,Classes c where ac.assistantId=" + + assistantId + " and c.createTime>:time"; + Query q = this.getCurrentSession().createQuery(hql); + q.setParameter("time", time); + return q.list(); + } + + @Override + public boolean delAssistantClass(int assistantId, int classId) { + // TODO Auto-generated method stub + String hql = "delete from AssistantClass where assistantId=" + + assistantId + " and classId=" + classId; + int result = this.executeHql(hql); + if (result > 0) + return true; + else + return false; + } + + @Override + public boolean delAssistantClass(int id) { + // TODO Auto-generated method stub + String hql = "delete from AssistantClass where id=" + id; + int result = this.executeHql(hql); + if (result > 0) + return true; + else + return false; + } +} diff --git a/AES/src/main/java/com/example/aes/user/dao/impl/ClassesDaoImpl.java b/AES/src/main/java/com/example/aes/user/dao/impl/ClassesDaoImpl.java new file mode 100644 index 0000000..77cb05b --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/dao/impl/ClassesDaoImpl.java @@ -0,0 +1,1191 @@ +package com.example.aes.user.dao.impl; + + +import com.example.aes.user.dao.*; +import com.example.aes.user.model.*; +import org.apache.commons.lang3.StringUtils; +import org.hibernate.Query; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Repository; + +import java.text.SimpleDateFormat; +import java.util.*; + +@Repository("classesDao") +public class ClassesDaoImpl extends BaseDaoImpl implements ClassesDaoI { + + private AdminusersDaoI adminusersDao; + private ClassstudentsDaoI classstudentsDao; + private UserDaoI userDao; + private AssistantClassDaoI assistantClassDao; +// private ExamDaoI examDao; + + @Autowired @Lazy + public void setAdminusersDao(AdminusersDaoI adminusersDao) { + this.adminusersDao = adminusersDao; + } + + public AdminusersDaoI getAdminusersDao() { + return adminusersDao; + } + + @Autowired + public void setClassstudentsDao(ClassstudentsDaoI classstudentsDao) { + this.classstudentsDao = classstudentsDao; + } + + public ClassstudentsDaoI getClassstudentsDao() { + return classstudentsDao; + } + + @Autowired + public void setUserDao(UserDaoI userDao) { + this.userDao = userDao; + } + + public UserDaoI getUserDao() { + return userDao; + } + +// @Autowired +// public void setExamDao(ExamDaoI examDao) { +// this.examDao = examDao; +// } +// +// public ExamDaoI getExamDao() { +// return examDao; +// } + + @Autowired + public void setAssistantClassDao(AssistantClassDaoI assistantClassDao) { + this.assistantClassDao = assistantClassDao; + } + + public AssistantClassDaoI getAssistantClassDao() { + return assistantClassDao; + } + + @Override + public List findClassesByCondition(int teacherId) { + // TODO Auto-generated method stub + String hql; + if (teacherId != 0) + hql = "from Classes where teacherId=" + teacherId + + " order by id desc"; + else + hql = "from Classes order by id desc"; + List classesList = this.find(hql); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setCourseId(classes.getCourseId()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + if(teacher != null){ + p.setTeacherName(teacher.getName()); + } + if(classes.getStudentNum()!=null) + p.setStudentNum(classes.getStudentNum()); + else p.setStudentNum(0); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + return pmclassesList; + } + @Override + public List findClassesByConditionPage(int teacherId,String role, int pageNum, int pageSize){ + // TODO Auto-generated method stub + String hql; + if (teacherId != 0) { + if (role.equals("assistant")) { + hql = "from Classes c where c.id in (select ac.classId from AssistantClass ac where ac.assistantId=" + teacherId + ")"; + } else { + hql = "from Classes where teacherId=" + teacherId + + " order by id desc"; + } + } + else + hql = "from Classes order by id desc"; + List classesList = this.find(hql, pageNum, pageSize); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + if(teacher != null){ + p.setTeacherName(teacher.getName()); + } + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + return pmclassesList; + } + + @Override + public boolean editClassMessage(int id, String className, int teacherId, int advance, int late, int reject, String weektime, Date first_week_monday) { // 执行修改班级信息 + // TODO Auto-generated method stub + StringBuilder hql = new StringBuilder(); + hql.append("update Classes set name=:className,advance=:advance,late=:late,reject=:reject,weektime=:weektime,first_week_monday=:first_week_monday"); + hql.append(" where id=:id"); +// String hql = "update Classes set name=:className,teacherId=:teacherId,advance=:advance,late=:late,reject=:reject,weektime=:weektime,first_week_monday=:first_week_monday where id=:id"; + Query q = this.getCurrentSession().createQuery(hql.toString()); + q.setParameter("className", className); + q.setParameter("id", id); + q.setParameter("advance", advance); + q.setParameter("late", late); + q.setParameter("reject", reject); + q.setParameter("weektime", weektime); + q.setParameter("first_week_monday", first_week_monday); + int num = q.executeUpdate(); + if (num != 0) + return true; + else + return false; + } + + @Override + public boolean deleteClass(int id) { + // TODO Auto-generated method stub + Classes oneclass = this.get(Classes.class, id); + this.delete(oneclass); + oneclass = null; + oneclass = this.get(Classes.class, id); + if (oneclass == null) { + return true; + } else + return false; + } + + @Override + public List findClassStudentsById(int classId) { + // TODO Auto-generated method stub + String hql = "select u from Users u,Classstudents c where c.classId=" + + classId + " and u.id=c.userId order by u.studentNo asc"; + List classstudentsList = userDao.find(hql); // 获取到了班级中所有学生的id + List userList = new ArrayList(); + 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 List findClassStudentsByIdNoName(List classIdList, String studentNo, String chineseName, int pageNum, int pageSize){ + StringBuffer sql = new StringBuffer(); + sql.append("select u from Users u,Classstudents c where c.classId in " + "(" + + StringUtils.strip(classIdList.toString(),"[]") + ")" + " and u.id=c.userId"); + if(!studentNo.equals("")){ + sql.append(" and u.studentNo like '%" + studentNo + "%'"); + } + if(!chineseName.equals("")){ + sql.append(" and u.chineseName like '%" + chineseName + "%'"); + } + sql.append(" order by u.studentNo asc"); + // TODO Auto-generated method stub +// String hql = "select u from Users u,Classstudents c where c.classId=" +// + classId + " and u.id=c.userId order by u.studentNo asc"; + List classstudentsList = userDao.find(sql.toString(), pageNum, pageSize); // 获取到了班级中所有学生的id + List userList = new ArrayList(); + 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; + } + + public long findClassStudentsByIdNoNameNum(List classIdList, String studentNo, String chineseName){ + StringBuffer sql = new StringBuffer(); + sql.append("select u from Users u,Classstudents c where c.classId in " + "(" + + StringUtils.strip(classIdList.toString(),"[]") + ")" + " and u.id=c.userId"); + if(!studentNo.equals("")){ + sql.append(" and u.studentNo like '%" + studentNo + "%'"); + } + if(!chineseName.equals("")){ + sql.append(" and u.chineseName like '%" + chineseName + "%'"); + } + sql.append(" order by u.studentNo asc"); + // TODO Auto-generated method stub +// String hql = "select u from Users u,Classstudents c where c.classId=" +// + classId + " and u.id=c.userId order by u.studentNo asc"; + List classstudentsList = userDao.find(sql.toString()); // 获取到了班级中所有学生的id + List userList = new ArrayList(); + 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.size(); + } + + @Override + public List 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 classstudentsList = q.setFirstResult((pageNum - 1) * pageSize).setMaxResults(pageSize).list(); + List userList = new ArrayList(); + 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 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(); + } + + @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 boolean updateClassStudentsNum(int classId, int num) { // 更新班级中的学生数量 + // TODO Auto-generated method stub + String hql = "update Classes set studentNum=" + num + " where id=" + + classId; + int result = this.executeHql(hql); + if (result == 1) + return true; + else + return false; + } + + @Override + public void addClass(PMClasses pclass) { + // TODO Auto-generated method stub + Classes c = new Classes(); + c.setName(pclass.getName()); + c.setTeacherId(pclass.getTeacherId()); +// c.setWeektime(pclass.getWeektime()); +// c.setAdvance(pclass.getAdvance()); +// c.setLate(pclass.getLate()); +// c.setReject(pclass.getReject()); +// c.setFirst_week_monday(pclass.getFirst_week_monday()); + Calendar cal = Calendar.getInstance(); + Date createTime = cal.getTime(); + c.setCreateTime(createTime); + c.setStudentNum(0); + c.setInviteCode(pclass.getInviteCode()); + this.save(c); + } + + @Override + public List findClassInExam(int examId, boolean history) { + // TODO Auto-generated method stub + String hql = ""; + if(history){ + hql = "from Classes c where c.id in (select e.classId from Examclasses_his e where e.examId=" + + examId + ") order by c.createTime desc"; + } + else { + hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") order by c.createTime desc"; + } + List classesList = this.find(hql); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + return pmclassesList; + } + + // 查询考试班级(若当前用户与该考试无关,则返回为空) +// @Override +// public List findClassInExam(int examId, int teacherId, String role, boolean history) { +// // TODO Auto-generated method stub +// boolean isRelevant = true; +// String hql = ""; +// List pmclassesList = new ArrayList(); +// // 若当前身份为助教 +// if(role.equals("assistant")) { +// if(history){ +// hql = "SELECT COUNT(*) FROM AssistantClass ac " + +// "INNER JOIN Examclasses_his ecs ON ecs.classId = ac.classId " + +// "WHERE ecs.examId = " + examId +" and ac.assistantId = " + teacherId; +// } +// else { +// hql = "SELECT COUNT(*) FROM AssistantClass ac " + +// "INNER JOIN Examclasses ecs ON ecs.classId = ac.classId " + +// "WHERE ecs.examId = " + examId +" and ac.assistantId = " + teacherId; +// } +// isRelevant = assistantClassDao.count(hql) > 0; +// } +// else if(role.equals("teacher")){ +// if(history){ +// hql = "SELECT COUNT(*) FROM Exam_his e " + +// "INNER JOIN Examclasses_his ecs ON e.id = ecs.examId " + +// "INNER JOIN Classes c ON ecs.classId = c.id " + +// "WHERE ecs.examId = " + examId + +// " AND (e.teacherId = " + teacherId + " OR c.teacherId = " + teacherId + ")"; +// } +// else { +// hql = "SELECT COUNT(*) FROM Exam e " + +// "INNER JOIN Examclasses ecs ON e.id = ecs.examId " + +// "INNER JOIN Classes c ON ecs.classId = c.id " + +// "WHERE ecs.examId = " + examId + +// " AND (e.teacherId = " + teacherId + " OR c.teacherId = " + teacherId + ")"; +// } +// +// isRelevant = examDao.count(hql) > 0; +// } +// if(isRelevant) { +// if(history){ +// hql = "from Classes c where c.id in (select e.classId from Examclasses_his e where e.examId=" +// + examId + ") order by c.createTime desc"; +// } +// else { +// hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" +// + examId + ") order by c.createTime desc"; +// } +// List classesList = this.find(hql); +// for (Classes classes : classesList) { +// PMClasses p = new PMClasses(); +// p.setId(classes.getId()); +// p.setName(classes.getName()); +// p.setTeacherId(classes.getTeacherId()); +// Adminusers teacher = adminusersDao.get(Adminusers.class, +// classes.getTeacherId()); +// p.setTeacherName(teacher.getName()); +// p.setStudentNum(classes.getStudentNum()); +// p.setCreateTime(classes.getCreateTime()); +// p.setInviteCode(classes.getInviteCode()); +// pmclassesList.add(p); +// } +// } +// return pmclassesList; +// } + + @Override + public List findClassInExamPage(int examId, int pageNum, int pageSize, boolean history) { + // TODO Auto-generated method stub + String hql = ""; + if(history){ + hql = "from Classes c where c.id in (select e.classId from Examclasses_his e where e.examId=" + + examId + ") order by c.createTime desc"; + } + else { + hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") order by c.createTime desc"; + } + List classesList = this.find(hql, pageNum, pageSize); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + return pmclassesList; + } + +// @Override +// public List findClassInExamPage(int examId, int teacherId, String role, int pageNum, int pageSize) { +// // TODO Auto-generated method stub +// boolean isRelevant = true; +// String hql = ""; +// List pmclassesList = new ArrayList(); +// // 若当前身份为助教 +// if(role.equals("assistant")) { +// hql = "SELECT COUNT(*) FROM Assistantclass ac " + +// "INNER JOIN Examclasses ecs ON ecs.classId = ac.classId " + +// "WHERE ecs.examId = " + examId +" and ac.assistantId = " + teacherId; +// isRelevant = assistantClassDao.count(hql) > 0; +// } +// else if(role.equals("teacher")){ +// hql = "SELECT COUNT(*) FROM Exam e " + +// "INNER JOIN Examclasses ecs ON e.id = ecs.examId " + +// "INNER JOIN Classes c ON ecs.classId = c.id " + +// "WHERE ecs.examId = " + examId + +// " AND (e.teacherId = " + teacherId + " OR c.teacherId = " + teacherId + ")"; +// isRelevant = examDao.count(hql) > 0; +// } +// if(isRelevant) { +// hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" +// + examId + ") order by c.createTime desc"; +// List classesList = this.find(hql, pageNum, pageSize); +// for (int i = 0; i < classesList.size(); i++) { +// Classes classes = classesList.get(i); +// PMClasses p = new PMClasses(); +// p.setId(classes.getId()); +// p.setName(classes.getName()); +// p.setTeacherId(classes.getTeacherId()); +// Adminusers teacher = adminusersDao.get(Adminusers.class, classes.getTeacherId()); +// p.setTeacherName(teacher.getName()); +// p.setStudentNum(classes.getStudentNum()); +// p.setCreateTime(classes.getCreateTime()); +// p.setInviteCode(classes.getInviteCode()); +// pmclassesList.add(p); +// } +// } +// return pmclassesList; +// } + + @Override + public long findClassInExamNum(int examId, boolean history) { + // TODO Auto-generated method stub + String hql = ""; + if(history){ + hql = "select count(*) from Classes c where c.id in (select e.classId from Examclasses_his e where e.examId=" + + examId + ") order by c.createTime desc"; + } + else { + hql = "select count(*) from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") order by c.createTime desc"; + } + return this.count(hql).longValue(); + } + +// @Override +// public long findClassInExamNum(int examId, int teacherId, String role) { +// // TODO Auto-generated method stub +// boolean isRelevant = true; +// String hql = ""; +// // 若当前身份为助教 +// if(role.equals("assistant")) { +// hql = "SELECT COUNT(*) FROM Assistantclass ac " + +// "INNER JOIN Examclasses ecs ON ecs.classId = ac.classId " + +// "WHERE ecs.examId = " + examId +" and ac.assistantId = " + teacherId; +// isRelevant = assistantClassDao.count(hql) > 0; +// } +// else if(role.equals("teacher")){ +// hql = "SELECT COUNT(*) FROM Exam e " + +// "INNER JOIN Examclasses ecs ON e.id = ecs.examId " + +// "INNER JOIN Classes c ON ecs.classId = c.id " + +// "WHERE ecs.examId = " + examId + +// " AND (e.teacherId = " + teacherId + " OR c.teacherId = " + teacherId + ")"; +// isRelevant = examDao.count(hql) > 0; +// } +// if(isRelevant) { +// hql = "select count(*) from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" +// + examId + ") order by c.createTime desc"; +// return this.count(hql).longValue(); +// } +// else { +// return 0; +// } +// } + + @Override + public List findClassInExamRole(int examId, String role, int teacherId){ + String hql = ""; + if(role.equals("admin")){ + hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") order by c.createTime desc"; + } + + else if (role.equals("teacher")) { + hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") and teacherId=" + teacherId + " order by c.createTime desc"; + } + + else if(role.equals("assistant")){ + hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") and c.id in (select a.classId from AssistantClass a where a.assistantId=" + + teacherId + ")"; + } + List classesList = this.find(hql); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + return pmclassesList; + + } + + @Override + public List findClassInExamNoRole(int examId, boolean history){ + String hql = ""; + if(history){ + hql = "from Classes c where c.id in (select e.classId from Examclasses_his e where e.examId=" + + examId + ") order by c.createTime desc"; + } + else { + hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") order by c.createTime desc"; + } + + List classesList = this.find(hql); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + return pmclassesList; + } + + @Override + public List findClassInExamRolePage(int examId, String role, int teacherId, int pageNum, int pageSize){ + String hql = ""; + if(role.equals("admin")){ + hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") order by c.createTime desc"; + } + + else if (role.equals("teacher")) { + hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") and teacherId=" + teacherId + " order by c.createTime desc"; + } + + else if(role.equals("assistant")){ + hql = "from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") and c.id in (select a.classId from AssistantClass a where a.assistantId=" + + teacherId + ")"; + } + List classesList = this.find(hql, pageNum, pageSize); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + return pmclassesList; + } + + @Override + public long findClassInExamRoleNum(int examId, String role, int teacherId){ + String hql = ""; + if(role.equals("admin")){ + hql = "select count(*) from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") order by c.createTime desc"; + } + + else if (role.equals("teacher")) { + hql = "select count(*) from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") and teacherId=" + teacherId + " order by c.createTime desc"; + } + + else if(role.equals("assistant")){ + hql = "select count(*) from Classes c where c.id in (select e.classId from Examclasses e where e.examId=" + + examId + ") and c.id in (select a.classId from AssistantClass a where a.assistantId=" + + teacherId + ")"; + } + return this.count(hql).longValue(); + } + + @Override + public List findClassInPaperExam(int paperexamId) { + // TODO Auto-generated method stub + String hql = "from Classes c where c.id in (select e.classId from PaperExamclasses e where e.paperexamId=" + + paperexamId + ") order by c.createTime desc"; + List classesList = this.find(hql); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + pmclassesList.add(p); + } + return pmclassesList; + } + + @Override + public List findClassNotInExam(int examId, int teacherId, int pageNum, int pageSize, boolean history) { + // TODO Auto-generated method stub + StringBuffer sql = new StringBuffer(); + Map params = new HashMap(); + if(history){ + sql.append("from Classes c where c.id not in (select e.classId from Examclasses_his e where e.examId=:examId) "); + } + else { + sql.append("from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=:examId) "); + } + if(teacherId!=0){ + sql.append("and c.teacherId=:teacherId "); + params.put("teacherId", teacherId); + } + sql.append("order by id desc "); + params.put("examId", examId); +// String hql = "from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=" +// + examId + ") order by id desc"; +// List classesList = this.find(hql, pageNum, pageSize); + List classesList = this.find(sql.toString(), pageNum, pageSize); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + if(teacher != null){ + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + + } + return pmclassesList; + } + + @Override + public List findClassNotInExam(UClass uClass, int pageNum, int pageSize){ + // TODO Auto-generated method stub + StringBuffer sql = new StringBuffer(); + Map params = new HashMap(); + if(uClass.isHistory()){ + sql.append("from Classes c where c.id not in (select e.classId from Examclasses_his e where e.examId=:examId) "); + } + else { + sql.append("from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=:examId) "); + } + if(uClass.getTeacherId()!=0){ + sql.append("and c.teacherId=:teacherId "); + params.put("teacherId", uClass.getTeacherId()); + } + sql.append("order by id desc "); + params.put("examId", uClass.getExamId()); +// String hql = "from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=" +// + examId + ") order by id desc"; +// List classesList = this.find(hql, pageNum, pageSize); + List classesList = this.find(sql.toString(), params, pageNum, pageSize); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + if(teacher != null ){ + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + + } + return pmclassesList; + } + + @Override + public long findClassNotInExamNum(int examId, int teacherId, boolean history){ + StringBuffer sql = new StringBuffer(); + Map params = new HashMap(); + if(history){ + sql.append("from Classes c where c.id not in (select e.classId from Examclasses_his e where e.examId=:examId) "); + } + else { + sql.append("from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=:examId) "); + } + if(teacherId!=0){ + sql.append("and c.teacherId=:teacherId "); + params.put("teacherId", teacherId); + } + sql.append("order by id desc "); + params.put("examId", examId); +// String hql = "from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=" +// + examId + ") order by id desc"; + + List classesList = this.find(sql.toString(), params); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + if(teacher != null){ + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + + } + return pmclassesList.size(); + } + + @Override + public long findClassNotInExamNum(UClass uClass){ + StringBuffer sql = new StringBuffer(); + Map params = new HashMap(); + if(uClass.isHistory()){ + sql.append("from Classes c where c.id not in (select e.classId from Examclasses_his e where e.examId=:examId) "); + } + else { + sql.append("from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=:examId) "); + } + if(uClass.getTeacherId()!=0){ + sql.append("and c.teacherId=:teacherId "); + params.put("teacherId", uClass.getTeacherId()); + } + sql.append("order by id desc "); + params.put("examId", uClass.getExamId()); +// String hql = "from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=" +// + examId + ") order by id desc"; + + List classesList = this.find(sql.toString(), params); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + if(teacher != null ){ + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + } + + } + return pmclassesList.size(); + } + + @Override + public List findClassNotInPaperExam(int paperexamId) { + // TODO Auto-generated method stub + String hql = "from Classes c where c.id not in (select e.classId from PaperExamclasses e where e.paperexamId=" + + paperexamId + ")"; + List classesList = this.find(hql); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + if(teacher != null){ + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + pmclassesList.add(p); + } + } + return pmclassesList; + } + + @Override + public List findAllClass() { + // TODO Auto-generated method stub + String hql = "from Classes"; + return this.find(hql); + } + +// @Override +// public List findAllClassPage(int pageNum, int pageSize){ +// String hql = "from Classes"; +// Query query = this.getCurrentSession().createQuery(hql); +// List classesList = query.setFirstResult((pageNum - 1) * pageSize).setMaxResults(pageSize).list(); +// List pmClassesList = new ArrayList<>(); +// // 封装teachetId +// Map teacherMap = new HashMap<>(); +// for (int i = 0; i < classesList.size(); i++){ +// Classes classes = classesList.get(i); +// teacherMap.put("'" + classes.getTeacherId().toString() + "'", ""); +// } +// // 批量查询teacherName +// String teacherString = String.join(",", teacherMap.keySet()); +// Map teachersMap = adminusersDao.findTeachersByteacherIdList(teacherString); +// for(int i=0;i findNotEndClassByTeacherId(int teacherId) { + // TODO Auto-generated method stub + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.YEAR, -1); + Date time = cal.getTime(); + String hql = "from Classes c where c.teacherId=" + teacherId; +// + " and c.createTime>:time"; + Query q = this.getCurrentSession().createQuery(hql); +// q.setParameter("time", time); + return q.list(); + } + + @Override + public List findClassByTeacherId(int teacherId) { + // TODO Auto-generated method stub + String hql = "from Classes c where c.teacherId=" + teacherId; + Query q = this.getCurrentSession().createQuery(hql); + return q.list(); + } + + @Override + public List findClassesByCondition(PMClasses pmclasses) { + // TODO Auto-generated method stub + String hql; + if (pmclasses.getTeacherId() != 0) + hql = "from Classes where teacherId=" + pmclasses.getTeacherId() + + " order by id desc"; + else +// hql = "from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=" +// + examId + ") order by id desc"; + hql = "from Classes order by id desc"; + List classesList = this.find(hql); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + p.setCourseId(classes.getCourseId()); + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + + } + return pmclassesList; + } + + @Override + public List findClassesByConditionPage(PMClasses pmclasses, int pageNum, int pageSize){ + // TODO Auto-generated method stub + String hql; + if (pmclasses.getTeacherId() != 0) + hql = "from Classes where teacherId=" + pmclasses.getTeacherId() + + " order by id desc"; + else +// hql = "from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=" +// + examId + ") order by id desc"; + hql = "from Classes order by id desc"; + List classesList = this.find(hql, pageNum, pageSize); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + + } + return pmclassesList; + } + + @Override + public long findClassesByConditionPageNum(PMClasses pmclasses){ + // TODO Auto-generated method stub + String hql; + if (pmclasses.getTeacherId() != 0) + hql = "from Classes where teacherId=" + pmclasses.getTeacherId() + + " order by id desc"; + else +// hql = "from Classes c where c.id not in (select e.classId from Examclasses e where e.examId=" +// + examId + ") order by id desc"; + hql = "from Classes order by id desc"; + List classesList = this.find(hql); + List pmclassesList = new ArrayList(); + for (int i = 0; i < classesList.size(); i++) { + Classes classes = classesList.get(i); + Adminusers teacher = adminusersDao.get(Adminusers.class, + classes.getTeacherId()); + + PMClasses p = new PMClasses(); + p.setId(classes.getId()); + p.setName(classes.getName()); + p.setTeacherId(classes.getTeacherId()); + p.setTeacherName(teacher.getName()); + p.setStudentNum(classes.getStudentNum()); + p.setCreateTime(classes.getCreateTime()); + p.setInviteCode(classes.getInviteCode()); + pmclassesList.add(p); + + } + return pmclassesList.size(); + } + + @Override + public Classes getClassesByCode(String inviteCode) { + //根据邀请码获取班级 + String hqlString="from Classes where inviteCode='"+inviteCode+"'"; + List classesList = this.find(hqlString); + if(classesList.size()>0){ + Classes classes = classesList.get(0); + return classes; + }else { + return null; + } + } + + @Override + public List> getClassAndStudentNumByExamId(int examId) { + StringBuilder sql = new StringBuilder(); + sql.append("SELECT examId,teacherId,classId,name,studentNum "); + sql.append("FROM gdoj.examclasses ec join gdoj.classes c on ec.classId = c.id "); + sql.append("where examId =:examId "); + + Map params = new HashMap(); + params.put("examId", examId); + + return this.findBySql(sql.toString(), params); + } + + public List> getClassAndStudentNumByExamIdHis(int examId, boolean history){ + StringBuilder sql = new StringBuilder(); + if(history){ + sql.append("SELECT examId,teacherId,classId,name,studentNum "); + sql.append("FROM gdoj.examclasses_his ec join gdoj.classes c on ec.classId = c.id "); + sql.append("where examId =:examId "); + } + else { + sql.append("SELECT examId,teacherId,classId,name,studentNum "); + sql.append("FROM gdoj.examclasses ec join gdoj.classes c on ec.classId = c.id "); + sql.append("where examId =:examId "); + } + + Map params = new HashMap(); + params.put("examId", examId); + + return this.findBySql(sql.toString(), params); + } + + public List> getClassAndStudentNumByExamIdHis(int examId){ + StringBuilder sql = new StringBuilder(); + + sql.append("SELECT examId,teacherId,classId,name,studentNum "); + sql.append("FROM gdoj.examclasses_his ec join gdoj.classes c on ec.classId = c.id "); + sql.append("where examId =:examId "); + + Map params = new HashMap(); + params.put("examId", examId); + + return this.findBySql(sql.toString(), params); + } + + @Override + public Integer findOnlyClassIdByUserExam(int examId,int userId){ + Map params = new HashMap(); + StringBuffer sql = new StringBuffer(); + sql.append("select classId from examclasses where examId = :examId and classid in ("); + sql.append("select id classId " + "from classes where id in ("); + sql.append("select classId from classstudents " + "where userId=:userId) "); + sql.append("ORDER BY createTime DESC)"); + params.put("examId", examId); + params.put("userId", userId); + List> list = this.findBySql(sql.toString(), params); + if(list.size()<=0) return null; + else return Integer.parseInt(list.get(0).get("classId").toString()); + + } + + @Override + public List findClassesAfterCreateTime(String createTime) { + String hql = "from Classes where createTime > '" + createTime + "'"; + return this.find(hql); + } + + @Override + public Classes getLastClasses(){ + String hql = "from Classes where id = (SELECT MAX(id) FROM Classes)"; + return this.get(hql); + } + + @Override + public List getAllClassesByExamId(int examId){ + String hql = "FROM Classes WHERE id IN (SELECT classId FROM Examclasses WHERE examId = " + examId +")"; + return this.find(hql); + } + + @Override + public Classes getClassByPrimaryKey(String name, Integer teacherId, Date createTime) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String formattedCreateTime = sdf.format(createTime); + String hql = "from Classes where name='" + name + "' and teacherId=" + teacherId + " and createTime='" + formattedCreateTime + "'"; + return this.get(hql); + } + + @Override + public int addClass(Classes classes) { + this.save(classes); + return classes.getId(); + } + + @Override + public int updateClass(Classes classes) { + String hql = "update Classes set name=:name, teacherId=:teacherId, studentNum=:studentNum," + + "createTime=:createTime, inviteCode=:inviteCode where id=:id"; + Query q = this.getCurrentSession().createQuery(hql); + q.setParameter("name", classes.getName()); + q.setParameter("teacherId", classes.getTeacherId()); + q.setParameter("studentNum", classes.getStudentNum()); + q.setParameter("createTime", classes.getCreateTime()); + q.setParameter("inviteCode", classes.getInviteCode()); +// q.setParameter("advance", classes.getAdvance()); +// q.setParameter("first_week_monday", classes.getFirst_week_monday()); +// q.setParameter("late", classes.getLate()); +// q.setParameter("reject", classes.getReject()); +// q.setParameter("weektime", classes.getWeektime()); + + q.setParameter("id", classes.getId()); + return q.executeUpdate(); + } +} diff --git a/AES/src/main/java/com/example/aes/user/dao/impl/ClassstudentsDaoImpl.java b/AES/src/main/java/com/example/aes/user/dao/impl/ClassstudentsDaoImpl.java new file mode 100644 index 0000000..7cf67d9 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/dao/impl/ClassstudentsDaoImpl.java @@ -0,0 +1,109 @@ +package com.example.aes.user.dao.impl; + + +import com.example.aes.user.dao.ClassstudentsDaoI; +import com.example.aes.user.model.Classstudents; +import org.springframework.stereotype.Repository; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Repository("classstudentsDao") +public class ClassstudentsDaoImpl extends BaseDaoImpl implements + ClassstudentsDaoI { + + @Override + public boolean insertClassStudent(int userId, int classId) { + // TODO Auto-generated method stub + Classstudents student = new Classstudents(); + student.setClassId(classId); + student.setUserId(userId); + this.save(student); + return true; + } + + @Override + public boolean findClassStudentByUserId(int userId, int classId) { + // TODO Auto-generated method stub + String hql = "from Classstudents where userId=" + userId + + " and classId=" + classId; + List classstudents = this.find(hql); + if (classstudents.size() > 0) + return true; + else + return false; + } + + @Override + public boolean findClassesByUserId(int userId){ + String hql = "from Classstudents where userId=" + userId; + List classstudents = this.find(hql); + if(classstudents.size()>0) + return true; + else + return false; + } + + @Override + public int getClassStudentsNum(int classId) { // 获取班级学生的总数 + // TODO Auto-generated method stub + Map params = new HashMap(); + String hql = "select count(*) from Classstudents where classId=:classId"; + params.put("classId", classId); + return countInt(hql, params); + } + + @Override + public List getClassStudentsByExamId(int examId, boolean history) { + // TODO Auto-generated method stub + String hql = ""; + if(history){ + hql = "from Classstudents c where c.classId in (select e.classId from Examclasses_his e where examId=" + + examId + ")"; + } + else { + hql = "from Classstudents c where c.classId in (select e.classId from Examclasses e where examId=" + + examId + ")"; + } + List classstudents = this.find(hql); + return classstudents; + } + + @Override + public List getClassStudentsByClassId(int classId) { + // TODO Auto-generated method stub + String hql = "from Classstudents where classId=" + classId; + List classstudents = this.find(hql); + return classstudents; + } + + @Override + public List getClassStudentsByExamId(Integer examId) { + String hql = "FROM Classstudents WHERE classId IN (SELECT classId FROM Examclasses WHERE examId = :examId)"; + Map params = new HashMap<>(); + params.put("examId", examId); + return this.find(hql, params); + } + + @Override + public long addClassStudent(Classstudents classstudent) { + this.save(classstudent); + return classstudent.getId(); + } + + @Override + public void deleteClassStudent(int classId, int userId) { + // 删除考试对应的班级数据 + String hql = "delete from Classstudents where classId=" + classId + + " and userId=" + userId; + this.executeHql(hql); + } + + @Override + public void deleteClassStudent(int id) { + // 删除考试对应的班级数据 + String hql = "delete from Classstudents where id=" + id; + this.executeHql(hql); + } +} diff --git a/AES/src/main/java/com/example/aes/user/dao/impl/UserDaoImpl.java b/AES/src/main/java/com/example/aes/user/dao/impl/UserDaoImpl.java index f036d06..e704268 100644 --- a/AES/src/main/java/com/example/aes/user/dao/impl/UserDaoImpl.java +++ b/AES/src/main/java/com/example/aes/user/dao/impl/UserDaoImpl.java @@ -123,8 +123,7 @@ public class UserDaoImpl extends BaseDaoImpl implements UserDaoI { @Override public List findStudentsByCondition(PMUser user) { // TODO Auto-generated method stub - String hql = "from Users u where u.schoolId=" + user.getSchoolId() - + " and (u.studentNo like '%" + user.getStudentNo() + String hql = "from Users u where (u.studentNo like '%" + user.getStudentNo() + "%' and u.chineseName like '%" + user.getChineseName() + "%' and u.username like '%" + user.getStu_userName() + "%') " + "order by u.id asc"; @@ -135,8 +134,7 @@ public class UserDaoImpl extends BaseDaoImpl implements UserDaoI { @Override public List findStudentsByConditionPage(PMUser user){ - String hql = "from Users u where u.schoolId=" + user.getSchoolId() - + " and (u.studentNo like '%" + user.getStudentNo() + String hql = "from Users u where (u.studentNo like '%" + user.getStudentNo() + "%' and u.chineseName like '%" + user.getChineseName() + "%' and u.username like '%" + user.getStu_userName() + "%') " + "order by u.id asc"; @@ -180,8 +178,7 @@ public class UserDaoImpl extends BaseDaoImpl implements UserDaoI { @Override public long findStudentsByConditionNum(PMUser user){ // TODO Auto-generated method stub - String hql = "select count(*) from Users u where u.schoolId=" + user.getSchoolId() - + " and (u.studentNo like '%" + user.getStudentNo() + String hql = "select count(*) from Users u where (u.studentNo like '%" + user.getStudentNo() + "%' and u.chineseName like '%" + user.getChineseName() + "%' and u.username like '%" + user.getStu_userName() + "%') " + "order by u.id asc"; diff --git a/AES/src/main/java/com/example/aes/user/model/AssistantClass.java b/AES/src/main/java/com/example/aes/user/model/AssistantClass.java new file mode 100644 index 0000000..677f6db --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/model/AssistantClass.java @@ -0,0 +1,54 @@ +package com.example.aes.user.model; + +import javax.persistence.*; + +@Entity +@Table(name = "assistantclass", catalog = "aes") +public class AssistantClass implements java.io.Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + private Integer id; + private Integer assistantId; + private Integer classId; + + public AssistantClass() { + } + + public AssistantClass(Integer assistantId, Integer classId) { + this.assistantId = assistantId; + this.classId = classId; + } + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", unique = true, nullable = false) + public Integer getId() { + return this.id; + } + + public void setId(Integer id) { + this.id = id; + } + + @Column(name = "assistantId", nullable = false) + public Integer getAssistantId() { + return assistantId; + } + + public void setAssistantId(Integer assistantId) { + this.assistantId = assistantId; + } + + @Column(name = "classId", nullable = false) + public Integer getClassId() { + return classId; + } + + public void setClassId(Integer classId) { + this.classId = classId; + } + +} diff --git a/AES/src/main/java/com/example/aes/user/model/Classes.java b/AES/src/main/java/com/example/aes/user/model/Classes.java new file mode 100644 index 0000000..27e30d4 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/model/Classes.java @@ -0,0 +1,131 @@ +package com.example.aes.user.model; + +import javax.persistence.*; +import javax.persistence.criteria.CriteriaBuilder; +import java.util.Date; +import java.util.Objects; + +/** + * Classes entity. @author MyEclipse Persistence Tools + */ +@Entity +@Table(name = "class", catalog = "aes") +public class Classes implements java.io.Serializable { + + // Fields + + /** + * + */ + private static final long serialVersionUID = -4577366061004245861L; + private Integer id; + private Integer courseId; + + + + private Integer teacherId; + private String name; + private Integer studentNum=0; + private Date createTime; + private String inviteCode; + + // Constructors + + /** default constructor */ + public Classes() { + } + + /** minimal constructor */ + public Classes(String name, Integer teacherId, Integer studentNum) { + this.name = name; + this.teacherId = teacherId; + this.studentNum = studentNum; + } + + /** full constructor */ + public Classes(String name, + Integer courseId, + Integer teacherId, + Integer studentNum, + Date createTime, String inviteCode) { + this.name = name; + this.courseId=courseId; + this.teacherId = teacherId; + this.studentNum = studentNum; + this.createTime = createTime; + this.inviteCode=inviteCode; + } + + // Property accessors + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", unique = true, nullable = false) + public Integer getId() { + return this.id; + } + + public void setId(Integer id) { + this.id = id; + } + + @Column(name = "name", nullable = false, length = 100) + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + } + @Column(name="courseId") + public Integer getCourseId() { + return courseId; + } + + public void setCourseId(Integer courseId) { + this.courseId = courseId; + } + @Column(name = "teacherId", nullable = false) + public Integer getTeacherId() { + return this.teacherId; + } + + public void setTeacherId(Integer teacherId) { + this.teacherId = teacherId; + } + + @Column(name = "studentNum", nullable = false) + public Integer getStudentNum() { + return this.studentNum; + } + + public void setStudentNum(Integer studentNum) { + this.studentNum = studentNum; + } + + @Column(name = "createTime", length = 19) + public Date getCreateTime() { + return this.createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + @Column(name = "inviteCode", length = 10) + public String getInviteCode() { + return inviteCode; + } + + + public void setInviteCode(String inviteCode) { + this.inviteCode = inviteCode; + } + + + + public boolean compare(Classes classes) { + return getName().equals(classes.getName()) && + getStudentNum().equals(classes.getStudentNum()) && + ((getCreateTime() == null && classes.getCreateTime() == null) || (getCreateTime() != null && classes.getCreateTime() != null && getCreateTime().compareTo(classes.getCreateTime()) == 0)) && + (Objects.equals(getInviteCode(), classes.getInviteCode())) ; + } +} \ No newline at end of file diff --git a/AES/src/main/java/com/example/aes/user/model/Classstudents.java b/AES/src/main/java/com/example/aes/user/model/Classstudents.java new file mode 100644 index 0000000..5e8fcef --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/model/Classstudents.java @@ -0,0 +1,64 @@ +package com.example.aes.user.model; + +import javax.persistence.*; + +/** + * Classstudents entity. @author MyEclipse Persistence Tools + */ +@Entity +@Table(name = "studentclass", catalog = "aes") +public class Classstudents implements java.io.Serializable { + + // Fields + + /** + * + */ + private static final long serialVersionUID = 8050828329203855066L; + private Integer id; + private Integer classId; + private Integer userId; + + // Constructors + + /** default constructor */ + public Classstudents() { + } + + /** full constructor */ + public Classstudents(Integer classId, Integer userId) { + this.classId = classId; + this.userId = userId; + } + + // Property accessors + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", unique = true, nullable = false) + public Integer getId() { + return this.id; + } + + public void setId(Integer id) { + this.id = id; + } + + @Column(name = "classId", nullable = false) + public Integer getClassId() { + return this.classId; + } + + public void setClassId(Integer classId) { + this.classId = classId; + } + + @Column(name = "userId", nullable = false) + public Integer getUserId() { + return this.userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + +} \ No newline at end of file diff --git a/AES/src/main/java/com/example/aes/user/model/PMAdminusers.java b/AES/src/main/java/com/example/aes/user/model/PMAdminusers.java index 77dd1e3..8b351df 100644 --- a/AES/src/main/java/com/example/aes/user/model/PMAdminusers.java +++ b/AES/src/main/java/com/example/aes/user/model/PMAdminusers.java @@ -16,11 +16,11 @@ public class PMAdminusers implements java.io.Serializable { private String Email; private String examIds; private int teacherId; - private int schoolId; +// private int schoolId; private int active; private String classIds; private String uuid; - private String schoolname; +// private String schoolname; private String question; private String answer; @@ -62,13 +62,13 @@ public class PMAdminusers implements java.io.Serializable { this.uuid = uuid; } - public int getSchoolId() { - return schoolId; - } - - public void setSchoolId(int schoolId) { - this.schoolId = schoolId; - } +// public int getSchoolId() { +// return schoolId; +// } +// +// public void setSchoolId(int schoolId) { +// this.schoolId = schoolId; +// } public int getActive() { return active; @@ -151,13 +151,13 @@ public class PMAdminusers implements java.io.Serializable { return classIds; } - public String getSchoolname() { - return schoolname; - } - - public void setSchoolname(String schoolname) { - this.schoolname = schoolname; - } +// public String getSchoolname() { +// return schoolname; +// } +// +// public void setSchoolname(String schoolname) { +// this.schoolname = schoolname; +// } public String getQuestion() { return question; diff --git a/AES/src/main/java/com/example/aes/user/model/PMClasses.java b/AES/src/main/java/com/example/aes/user/model/PMClasses.java new file mode 100644 index 0000000..94a7e98 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/model/PMClasses.java @@ -0,0 +1,89 @@ +package com.example.aes.user.model; + +import java.util.Date; + +public class PMClasses implements java.io.Serializable { + /** + * + */ + private static final long serialVersionUID = 5372127226595718778L; + private Integer id; + private String name; + private Integer teacherId; + + public void setId(Integer id) { + this.id = id; + } + + + public Integer getCourseId() { + return courseId; + } + + public void setCourseId(Integer courseId) { + this.courseId = courseId; + } + + + private Integer courseId; + private String teacherName; + private Integer studentNum=0; + private Date createTime; + private String inviteCode; + + + public int getId() { + return id; + } + + public void setName(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + public void setTeacherId(int teacherId) { + this.teacherId = teacherId; + } + + public int getTeacherId() { + return teacherId; + } + + public void setTeacherName(String teacherName) { + this.teacherName = teacherName; + } + + public String getTeacherName() { + return teacherName; + } + + + + public int getStudentNum() { + return studentNum; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getCreateTime() { + return createTime; + } + + + public String getInviteCode() { + return inviteCode; + } + + public void setInviteCode(String inviteCode) { + this.inviteCode = inviteCode; + } + public void setStudentNum(Integer studentNum) { + this.studentNum = studentNum; + } + +} diff --git a/AES/src/main/java/com/example/aes/user/model/PMUser.java b/AES/src/main/java/com/example/aes/user/model/PMUser.java index dd74b4f..ecdead5 100644 --- a/AES/src/main/java/com/example/aes/user/model/PMUser.java +++ b/AES/src/main/java/com/example/aes/user/model/PMUser.java @@ -135,18 +135,18 @@ public class PMUser implements java.io.Serializable { private String rspMsg; private String nickName; private String stu_userName; - private Integer schoolId; +// private Integer schoolId; private String uuid; private String messageCondition; - public Integer getSchoolId() { - return schoolId; - } - - public void setSchoolId(Integer schoolId) { - this.schoolId = schoolId; - } +// public Integer getSchoolId() { +// return schoolId; +// } +// +// public void setSchoolId(Integer schoolId) { +// this.schoolId = schoolId; +// } public String getUuid() { return uuid; diff --git a/AES/src/main/java/com/example/aes/user/model/UAdminusers.java b/AES/src/main/java/com/example/aes/user/model/UAdminusers.java new file mode 100644 index 0000000..fabcc92 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/model/UAdminusers.java @@ -0,0 +1,191 @@ +package com.example.aes.user.model; + +public class UAdminusers { + private Integer id; +// private Integer schoolId; + private String account; + private String password; + private String name; + private String role; + private String email; + private Integer active; + private String uuid; + private String question; + private String answer; + private String pwd; + private int classId; + + // 教师端的学号/工号 + private String no; + + private String status; + + private int pageNum; + + private int pageSize; + + private String endtime; + + public UAdminusers(){} + + public UAdminusers(Integer id, String account, String password, String name, String role, String email, Integer active, String uuid, String question, String answer, String pwd, int classId, String no) { + this.id = id; +// this.schoolId = schoolId; + this.account = account; + this.password = password; + this.name = name; + this.role = role; + this.email = email; + this.active = active; + this.uuid = uuid; + this.question = question; + this.answer = answer; + this.pwd = pwd; + this.classId = classId; + this.no = no; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + +// public Integer getSchoolId() { +// return schoolId; +// } +// +// public void setSchoolId(Integer schoolId) { +// this.schoolId = schoolId; +// } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getRole() { + return role; + } + + public void setRole(String role) { + this.role = role; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Integer getActive() { + return active; + } + + public void setActive(Integer active) { + this.active = active; + } + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public String getQuestion() { + return question; + } + + public void setQuestion(String question) { + this.question = question; + } + + public String getAnswer() { + return answer; + } + + public void setAnswer(String answer) { + this.answer = answer; + } + + public String getPwd() { + return pwd; + } + + public void setPwd(String pwd) { + this.pwd = pwd; + } + + public int getClassId() { + return classId; + } + + public void setClassId(int classId) { + this.classId = classId; + } + + public String getNo() { + return no; + } + + public void setNo(String no) { + this.no = no; + } + + public int getPageNum() { + return pageNum; + } + + public void setPageNum(int pageNum) { + this.pageNum = pageNum; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public String getEndtime() { + return endtime; + } + + public void setEndtime(String endtime) { + this.endtime = endtime; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } +} diff --git a/AES/src/main/java/com/example/aes/user/model/UClass.java b/AES/src/main/java/com/example/aes/user/model/UClass.java new file mode 100644 index 0000000..3ded97b --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/model/UClass.java @@ -0,0 +1,130 @@ +package com.example.aes.user.model; + +import java.io.InputStream; + +public class UClass { + + private int id; + private int classId; + private int userId; + private int examId; + private int paperexamId; + private int ClassTimeId; + private InputStream fileInput; + + private int pageNum; + private int pageSize; + + private int teacherId; + +// private int schoolId; + + private boolean history; + + public UClass(){} + + public UClass(int classId, int userId, int examId, int paperexamId, int classTimeId, InputStream fileInput) { + this.classId = classId; + this.userId = userId; + this.examId = examId; + this.paperexamId = paperexamId; + ClassTimeId = classTimeId; + this.fileInput = fileInput; + } + + public int getClassId() { + return classId; + } + + public void setClassId(int classId) { + this.classId = classId; + } + + public int getUserId() { + return userId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public int getExamId() { + return examId; + } + + public void setExamId(int examId) { + this.examId = examId; + } + + public int getPaperexamId() { + return paperexamId; + } + + public void setPaperexamId(int paperexamId) { + this.paperexamId = paperexamId; + } + + public int getClassTimeId() { + return ClassTimeId; + } + + public void setClassTimeId(int classTimeId) { + ClassTimeId = classTimeId; + } + + public InputStream getFileInput() { + return fileInput; + } + + public void setFileInput(InputStream fileInput) { + this.fileInput = fileInput; + } + + public int getPageNum() { + return pageNum; + } + + public void setPageNum(int pageNum) { + this.pageNum = pageNum; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getTeacherId() { + return teacherId; + } + + public void setTeacherId(int teacherId) { + this.teacherId = teacherId; + } + +// public int getSchoolId() { +// return schoolId; +// } +// +// public void setSchoolId(int schoolId) { +// this.schoolId = schoolId; +// } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public boolean isHistory() { + return history; + } + + public void setHistory(boolean history) { + this.history = history; + } +} diff --git a/AES/src/main/java/com/example/aes/user/model/Users.java b/AES/src/main/java/com/example/aes/user/model/Users.java index 1ee2eba..1fdc2c0 100644 --- a/AES/src/main/java/com/example/aes/user/model/Users.java +++ b/AES/src/main/java/com/example/aes/user/model/Users.java @@ -8,7 +8,7 @@ import java.util.Objects; * Users entity. @author MyEclipse Persistence Tools */ @Entity -@Table(name = "users", catalog = "gdoj") +@Table(name = "users", catalog = "aes") public class Users implements java.io.Serializable { /** diff --git a/AES/src/main/java/com/example/aes/user/service/AdminusersServiceI.java b/AES/src/main/java/com/example/aes/user/service/AdminusersServiceI.java index 0baa741..2e954ca 100644 --- a/AES/src/main/java/com/example/aes/user/service/AdminusersServiceI.java +++ b/AES/src/main/java/com/example/aes/user/service/AdminusersServiceI.java @@ -1,6 +1,7 @@ package com.example.aes.user.service; +import com.example.aes.user.model.DataGrid; import com.example.aes.user.model.PMAdminusers; import java.util.List; @@ -8,6 +9,13 @@ import java.util.List; public interface AdminusersServiceI { public List getTeacherByStatus(String status); + public PMAdminusers findAdminuserByno(String no); + public PMAdminusers getAdminuserByAccount(String account); // 通过账号查找 + public boolean updateQueAndAnsByaccount(PMAdminusers pma); + public boolean addTeacher(PMAdminusers pmadminusers);// 注册教师 + public boolean updatePasswordByAccount(PMAdminusers pmadminusers); +public DataGrid findAllAssistant(PMAdminusers pmadminusers); // 查看所有助教信息 + public PMAdminusers getAdminuserById(int id); // 根据id获取单个老师的信息 } diff --git a/AES/src/main/java/com/example/aes/user/service/AssistantClassServiceI.java b/AES/src/main/java/com/example/aes/user/service/AssistantClassServiceI.java new file mode 100644 index 0000000..7ae3cbe --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/service/AssistantClassServiceI.java @@ -0,0 +1,17 @@ +package com.example.aes.user.service; + + + + +import com.example.aes.user.model.AssistantClass; + +import java.util.List; + +public interface AssistantClassServiceI { + + public List getAssistantClassByAssistantId(int assistantId); // 获取助教班级信息 + + public void editAssistantClass(int teacherId, int assistantId, + String classIds); // 修改助教管理的班级 + +} diff --git a/AES/src/main/java/com/example/aes/user/service/ClassesServiceI.java b/AES/src/main/java/com/example/aes/user/service/ClassesServiceI.java new file mode 100644 index 0000000..912ea45 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/service/ClassesServiceI.java @@ -0,0 +1,79 @@ +package com.example.aes.user.service; + + + +import com.example.aes.user.model.*; + +import java.util.Date; +import java.util.List; + +public interface ClassesServiceI { + public List findClassesByCondition(int teacherId); + public List findClassesByCondition(PMClasses pmclasses); +// public List findAllClass(); +// +// public DataGrid findClassesByConditionPage(int teacherId, String role, int pageNum, int pageSize); +// +// +// +// // +// +// public boolean editClassMessage(int id, String className, int teacherId, int advance, int late, int reject, String weektime, Date first_week_monday); // 修改班级信息 +// +// public boolean deleteClass(int id); // 删除班级 +// +// public List findClassStudentsById(int classId); // 通过id查询所有学生 +// +// public DataGrid findClassStudentsByIdNoName(List classIdList, String studentNo, String chineseName, int pageNum, int pageSize); // 通过id查询所有学生 +// +// public DataGrid findClassStudentsByIdPage(int classId,int pageNum, int pageSize); +// +// public boolean deleteClassStudentsByUserId(int classId, int userId); +// +// public void addClass(PMClasses pclass); // 添加班级 +// +// public List findClassInExam(int examId); // 获取参与考试的班级 +// +// public List findClassInExam(int examId, int teacherId, String role, boolean history); // 获取参与考试的班级(有身份验证) +// +// public DataGrid findClassInExamPage(int examId, int pageNum, int pageSize, boolean history); // 获取参与考试的班级 +// +// public DataGrid findClassInExamPage(int examId, int teacherId, String role, int pageNum, int pageSize); // 获取参与考试的班级(有身份验证) +// +// public List findClassInExamRole(int examId, String role, int teacherId); // 根据角色获取参与考试的班级 +// +// public List findClassInExamNoRole(int examId, boolean history); // 根据角色获取参与考试的班级 +// +// public DataGrid findClassInExamRolePage(int examId, String role, int teacherId, int pageNum, int pageSize); // 根据角色获取参与考试的班级 +// +// public List findClassInPaperExam(int paperexamId); // 获取参与考试的班级 +// +// public DataGrid findClassNotInExam(int examId, int teacherId, int pageNum, int pageSize, boolean history); // 获取未参加考试的班级 +// +// public DataGrid findClassNotInExam(UClass uClass, int pageNum, int pageSize); // 获取未参加考试的班级 +// +// public List findClassNotInPaperExam(int paperexamId); // 获取未参加笔试考试的班级 +// +// public Classes findClassById(int classId); +// +// public List findNotEndClassByTeacherId(int teacherId); // 通过教师查找所属的班级,班级时间为一年以内 +// +// public List findClassesByCondition(PMClasses pmclasses); //查找教师没有参加该考试的班级 +// +// public DataGrid findClassesByConditionPage(PMClasses pmclasses, int pageNum, int pageSize); //查找教师没有参加该考试的班级 +// +// public Json takeOneClass(String inviteCode, int studentID); +// +// public List getAttendanceByClassId(int classId); // 通过班级id查询考勤情况 +// +// // 根据studentId获取该学生考勤的相关信息 +// public List findStudentAttendanceById(int studentId, int classId, int ClassTimeId); +// +//// public List getClassStudentsByClassId(int classId); // 通过班级id查询班级所有学生 +//// 根据学生id和考试id查询本场考试中该学生的所属班级 +// public Integer findClassInExamByStudentId(int studentId,int examId); +// +// public List findClassesAfterCreateTime(String createTime); +// +// public Classes getLastClasses(); +} diff --git a/AES/src/main/java/com/example/aes/user/service/impl/AdminusersServiceImpl.java b/AES/src/main/java/com/example/aes/user/service/impl/AdminusersServiceImpl.java index 333a613..4e3fbe0 100644 --- a/AES/src/main/java/com/example/aes/user/service/impl/AdminusersServiceImpl.java +++ b/AES/src/main/java/com/example/aes/user/service/impl/AdminusersServiceImpl.java @@ -3,6 +3,7 @@ package com.example.aes.user.service.impl; import com.example.aes.user.dao.AdminusersDaoI; import com.example.aes.user.model.Adminusers; +import com.example.aes.user.model.DataGrid; import com.example.aes.user.model.PMAdminusers; import com.example.aes.user.service.AdminusersServiceI; import org.springframework.beans.BeanUtils; @@ -23,10 +24,65 @@ public class AdminusersServiceImpl implements AdminusersServiceI { public void setAdminusersDaoI(AdminusersDaoI adminusersDao) { this.adminusersDao = adminusersDao; } + @Override + public PMAdminusers getAdminuserById(int id) { + // TODO Auto-generated method stub + Adminusers adminuser = adminusersDao.get(Adminusers.class, id); + if (adminuser != null) { + PMAdminusers pa = new PMAdminusers(); + pa.setAccount(adminuser.getAccount()); + pa.setName(adminuser.getName()); + pa.setId(adminuser.getId()); + pa.setEmail(adminuser.getEmail()); +// pa.setSchoolId(adminuser.getSchoolId()); + pa.setRole(adminuser.getRole()); + pa.setNo(adminuser.getNo()); + return pa; + } else + return null; + } public AdminusersDaoI getAdminusersDaoI() { return adminusersDao; } + public PMAdminusers findAdminuserByno(String no){ + Adminusers adminusers = adminusersDao.findAdminuserByno(no); + if(adminusers!=null){ + PMAdminusers pmAdminusers = new PMAdminusers(); + pmAdminusers.setId(adminusers.getId()); + pmAdminusers.setName(adminusers.getName()); + pmAdminusers.setAccount(adminusers.getAccount()); + pmAdminusers.setRole(adminusers.getRole()); + pmAdminusers.setEmail(adminusers.getEmail()); + pmAdminusers.setStatus(adminusers.getStatus()); + pmAdminusers.setNo(adminusers.getNo()); + return pmAdminusers; + } + else + return null; + } + @Override + public PMAdminusers getAdminuserByAccount(String account) { + // TODO Auto-generated method stub + + Adminusers a = adminusersDao.getAdminuserByAccount(account); + if (a != null) { + PMAdminusers p = new PMAdminusers(); + p.setId(a.getId()); + p.setAccount(a.getAccount()); + p.setName(a.getName()); + p.setRole(a.getRole()); +// p.setSchoolId(a.getSchoolId()); + p.setEmail(a.getEmail()); + p.setQuestion(a.getQuestion()); + p.setAnswer(a.getAnswer()); + p.setSessionId(a.getPassword()); + p.setPassword(a.getPwd()); + return p; + } else { + return null; + } + } @@ -49,6 +105,90 @@ public class AdminusersServiceImpl implements AdminusersServiceI { return pmadminusersList; } + @Override + public boolean addTeacher(PMAdminusers pmadminusers) { + // TODO Auto-generated method stub + return adminusersDao.addTeacher(pmadminusers); + } + @Override + public boolean updateQueAndAnsByaccount(PMAdminusers pma) { + // TODO Auto-generated method stub + String hql = "update Adminusers set question='" + pma.getQuestion() + + "',answer='" + pma.getAnswer() + "', where account='" + + pma.getAccount() + "'"; + int result = adminusersDao.executeHql(hql); + if (result == 1) + return true; + else + return false; + } + @Override + public boolean updatePasswordByAccount(PMAdminusers pmadminusers) { + // TODO Auto-generated method stub + String hql = "update Adminusers set password='" + + pmadminusers.getSessionId() + "', pwd='" + pmadminusers.getPassword() + "' where account='" + + pmadminusers.getAccount() + "'"; + int result = adminusersDao.executeHql(hql); + if (result == 1) + return true; + else + return false; + } + @Override + public DataGrid findAllAssistant(PMAdminusers pmadminusers) { + // TODO Auto-generated method stub + DataGrid dg = new DataGrid(); + int totalLines; + List theadminusers; + List pmAdminusers= adminusersDao.findAllAssistant(pmadminusers); + totalLines=pmAdminusers.size(); + int page= pmadminusers.getPageNum(); + List Adminusers=new ArrayList<>(); + int j=pmadminusers.getPageSize()*page; + if ((page-1)*pmadminusers.getPageSize() PMAdminusersList = new ArrayList(); + changeModels(Adminusers,PMAdminusersList); + dg.setTotal(totalLines); + dg.setPageSize(pmadminusers.getPageSize()); + dg.setTotalPages((long) (Math.ceil((double) dg.getTotal() / (double) dg.getPageSize()))); + // 设置当前显示第几页 + dg.setPageNum(pmadminusers.getPageNum()); + // 设置当前页的数据行数量 + dg.setCurrentPageLineNum(PMAdminusersList.size()); + // 设置当前页的所有数据行 + dg.setList(PMAdminusersList); + return dg; + } + private void changeModels(List l, List nl) { + if (l != null && l.size() > 0) { + for (PMAdminusers t : l) { + PMAdminusers u = new PMAdminusers(); + BeanUtils.copyProperties(t, u); + nl.add(u); + } + } + } } diff --git a/AES/src/main/java/com/example/aes/user/service/impl/AssistantClassServiceImpl.java b/AES/src/main/java/com/example/aes/user/service/impl/AssistantClassServiceImpl.java new file mode 100644 index 0000000..f249967 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/service/impl/AssistantClassServiceImpl.java @@ -0,0 +1,66 @@ +package com.example.aes.user.service.impl; + + +import com.example.aes.user.dao.AssistantClassDaoI; +import com.example.aes.user.model.AssistantClass; +import com.example.aes.user.service.AssistantClassServiceI; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +public class AssistantClassServiceImpl implements AssistantClassServiceI { + + AssistantClassDaoI assistantClassDao; + + @Autowired + public void setAssistantClassDao(AssistantClassDaoI assistantClassDao) { + this.assistantClassDao = assistantClassDao; + } + + public AssistantClassDaoI getAssistantClassDao() { + return assistantClassDao; + } + + @Override + public List getAssistantClassByAssistantId(int assistantId) { + // TODO Auto-generated method stub + return assistantClassDao.getAssistantClassByAssistantId(assistantId); + } + + @Override + public void editAssistantClass(int teacherId, int assistantId, + String classIds) { + + List aelist = assistantClassDao + .getAssistantClassAndClassNotEnd(teacherId, assistantId); // 获取教师一年以内的班级 + String classId[] = classIds.split(","); + boolean isExist = false; + for (int i = 0; i < classId.length; i++) { + isExist = false; + for (int j = 0; j < aelist.size(); j++) { + if (Integer.parseInt(classId[i]) == aelist.get(j).getClassId() + .intValue()) { + isExist = true; + aelist.remove(j); // 去掉重复 + break; + } + + } + if (isExist == false) // 新增加的 + { + assistantClassDao.addAssistantClass(assistantId, + Integer.parseInt(classId[i])); + } + } + for (int i = 0; i < aelist.size(); i++) // 去掉没有的 + { + + assistantClassDao.delAssistantClass(assistantId, aelist.get(i) + .getClassId().intValue()); + } + + } + +} diff --git a/AES/src/main/java/com/example/aes/user/service/impl/ClassesServiceImpl.java b/AES/src/main/java/com/example/aes/user/service/impl/ClassesServiceImpl.java new file mode 100644 index 0000000..84b8380 --- /dev/null +++ b/AES/src/main/java/com/example/aes/user/service/impl/ClassesServiceImpl.java @@ -0,0 +1,41 @@ +package com.example.aes.user.service.impl; + +import com.example.aes.user.dao.ClassesDaoI; +import com.example.aes.user.dao.ClassstudentsDaoI; +import com.example.aes.user.model.PMClasses; +import com.example.aes.user.service.ClassesServiceI; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.UUID; + +@Service +public class ClassesServiceImpl implements ClassesServiceI { + + private ClassesDaoI classesDao; +// private ClassstudentsDaoI classstudentsDao; +// private AttendenceDaoI attendenceDao; +// private StudentAttendenceDaoI studentattendenceDao; +// private ExamClassesDaoI examClassesDao; +@Autowired +public void setClassesDao(ClassesDaoI classesDao) { + this.classesDao = classesDao; +} + + + @Override + public List findClassesByCondition(int teacherId) { + // TODO Auto-generated method stub + return classesDao.findClassesByCondition(teacherId); + } + @Override + public List findClassesByCondition(PMClasses pmclasses) { + // TODO Auto-generated method stub + return classesDao.findClassesByCondition(pmclasses); + } + + +} diff --git a/AES/src/main/java/com/example/aes/user/service/impl/UserServiceImpl.java b/AES/src/main/java/com/example/aes/user/service/impl/UserServiceImpl.java index 89287b5..8e09571 100644 --- a/AES/src/main/java/com/example/aes/user/service/impl/UserServiceImpl.java +++ b/AES/src/main/java/com/example/aes/user/service/impl/UserServiceImpl.java @@ -224,7 +224,7 @@ public class UserServiceImpl implements UserServiceI { String chineseName = user.getChineseName(); String banji = user.getBanji(); Date createDate = new Date(); - int schoolId = user.getSchoolId(); +// int schoolId = user.getSchoolId(); Users u = new Users(); u.setChineseName(chineseName); u.setStudentNo(studentNo); @@ -399,7 +399,7 @@ public class UserServiceImpl implements UserServiceI { + "', email='" + user.getEmail() + "'," + "createDate='" + time + "' , question='" + user.getQuestion() + "', answer='" + user.getAnswer() + "'where studentNo='" + user.getStudentNo() - + "' and schoolId='" + user.getSchoolId() + "'"; + + "'"; int result = userDao.executeHql(hql); if (result == 1) return true; @@ -430,7 +430,7 @@ public class UserServiceImpl implements UserServiceI { String username = user.getUsername(); String password = user.getSessionId(); String pwd = user.getPassword(); - int schoolId = user.getSchoolId(); +// int schoolId = user.getSchoolId(); String studentNo = user.getStudentNo(); String chineseName = user.getChineseName(); String banji = user.getBanji(); @@ -589,7 +589,8 @@ public class UserServiceImpl implements UserServiceI { @Override public void selectForUpdate(int userId) { - String sqlString ="select id from gdoj.users where id="+userId+" for update "; + String sqlString ="select id from aes" + + ".users where id="+userId+" for update "; userDao.executesql(sqlString); }