17取消选课功能的开发

Views: 0

只有学生登录才有取消选课

逻辑

前端操作:

学生在选课列表页面点击”取消选课”按钮 前端会把要取消的选课记录ID传给后端

后端处理:

后端先根据ID查到这条选课记录 然后删除这条选课记录 接着找到这门课程,把课程的”已选人数”减1 最后更新课程信息

前端

Choice.vue

<div class="card" style="margin-bottom: 5px">
 <el-table :data="data.tableData" stripe>
   <el-table-column label="课程名称" prop="name"></el-table-column>
   <el-table-column label="授课教师" prop="teacherName"></el-table-column>
   <el-table-column label="选课学生" prop="studentName"></el-table-column>
   <el-table-column label="操作" align="center" width="160" v-if ="data.user.role === 'STUDENT'">
     <template #default="scope" >
       <el-button type="danger" @click="handleDelete(scope.row.id)">取消选课</el-button>
     </template>
   </el-table-column>
 </el-table>
</div>
// 取消选课
const handleDelete = (id) => {
 ElMessageBox.confirm('取消后可能再也选不到这门课了!', '取消选课', { type: 'warning' }).then(res => {
   request.delete('/choice/deleteById/' + id).then(res => {
     if (res.code === '200') {
       load()
       ElMessage.success('操作成功')
    } else {
       ElMessage.error(res.msg)
    }
  })
}).catch(err => {})
}

ChoiceService.java

//根据id删除选课信息
public void deleteById(Integer id) {//传入一个id
    Choice choice= choiceMapper.selectById(id);//查询选课信息
    choiceMapper.deleteById(id);//删除选课信息
    //该门课程的已选人数减1
    Course course = courseMapper.selectById(choice.getCourseId());//查询课程信息
    course.setAlreadyNum(course.getAlreadyNum()-1);//已选人数减1
    courseMapper.updateById(course);//更新课程信息
}

Mapper

ChoiceMapper.java

//根据id查询
@Select("select * from choice where id = #{id}")
Choice selectById(Integer id);

CourseMapper.java

//根据id查询
@Select("select * from course where id = #{Id}")
Course selectById(Integer courseId);
版权声明

本网站名称:学海拾茜
本文链接:https://www.61lyf.top/17%e5%8f%96%e6%b6%88%e9%80%89%e8%af%be%e5%8a%9f%e8%83%bd%e7%9a%84%e5%bc%80%e5%8f%91/
本网站的文章部分内容可能来源于网络,仅供学习与参考,如有侵权,请联系站长进行核实删除。
转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处并附带原文链接!!!
站长邮箱:cyg1900@outlook.com 或studygod825@qq.com ,如不方便留言可邮件联系。
暂无评论

发送评论 编辑评论


				
上一篇
下一篇