学成在线--24.课程图片管理(保存课程图片)

文章目录

  • 一. 需求分析
  • 二. 服务端开发
    • 1. 模型类
    • 2. API
    • 3. Dao
    • 4. Service
    • 5. Controller
  • 三. 前端开发
    • 1. API
    • 2. 页面
      • 1). 添加上传成功的钩子 :on-success="handleSuccess"
      • 2). 在钩子方法 中保存课程图片信息

一. 需求分析

图片上传到文件系统后,其它子系统如果想使用图片可以引用图片的地址,课程管理模块使用图片的方式是将图片
地址保存到课程数据库中。业务流程如下:
1、上传图片到文件系统服务
2、保存图片地址到课程管理服务,在课程管理服务创建保存课程与图片对应关系的表 course_pic。
在这里插入图片描述
3、在course_pic保存图片成功后方可查询课程图片信息。
通过查询course_pic表数据则查询到某课程的图片信息。

二. 服务端开发

1. 模型类

package com.xuecheng.framework.domain.course;import lombok.Data;
import lombok.ToString;
import org.hibernate.annotations.GenericGenerator;import javax.persistence.*;
import java.io.Serializable;@Data
@ToString
@Entity
@Table(name="course_pic")
@GenericGenerator(name = "jpa-assigned", strategy = "assigned")
public class CoursePic implements Serializable {private static final long serialVersionUID = -916357110051689486L;@Id@GeneratedValue(generator = "jpa-assigned")private String courseid;private String pic;}

2. API

在课程管理服务中要提供保存课程图片的api。
文件位置:xcEduService01\xc-service-api\src\main\java\com\xuecheng\api\course\CourseControllerApi.java

@ApiOperation("添加课程图片")
public ResponseResult addCoursePic(String courseId,String pic);

3. Dao

文件位置:xcEduService01\xc-service-manage-course\src\main\java\com\xuecheng\manage_course\dao\ CoursePicRepository.java

public interface CoursePicRepository extends JpaRepository<CoursePic,String> {}

4. Service

文件位置:xcEduService01\xc-service-manage-course\src\main\java\com\xuecheng\manage_course\service\ CourseService.java

//向课程管理数据添加课程与图片的关联信息
@Transactional
public ResponseResult addCoursePic(String courseId, String pic) {//课程图片信息CoursePic coursePic = null;//查询课程图片Optional<CoursePic> picOptional = coursePicRepository.findById(courseId);if(picOptional.isPresent()){coursePic = picOptional.get();}if(coursePic == null){coursePic  = new CoursePic();}coursePic.setPic(pic);coursePic.setCourseid(courseId);coursePicRepository.save(coursePic);return new ResponseResult(CommonCode.SUCCESS);
}

5. Controller

文件位置:xcEduService01\xc-service-manage-course\src\main\java\com\xuecheng\manage_course\controller\ CourseController.java

@Override
@PostMapping("/coursepic/add")
public ResponseResult addCoursePic(@RequestParam("courseId") String courseId, @RequestParam("pic")String pic) {return courseService.addCoursePic(courseId,pic);}

三. 前端开发

1. API

文件位置:xc-ui-pc-teach\src\module\course\api\course.js

//保存课程图片地址到课程数据库
export const addCoursePic= (courseId,pic) => {return http.requestPost(apiUrl+'/course/coursepic/add?courseId='+courseId+"&pic="+pic)
}

2. 页面

文件位置:xc-ui-pc-teach\src\module\course\page\course_manage\course_picture.vue

1). 添加上传成功的钩子 :on-success=“handleSuccess”

<el-uploadaction="/api/filesystem/upload"list-type="picture-card":before-upload="setuploaddata":on-success="handleSuccess":file-list="fileList":limit="picmax":on-exceed="rejectupload":before-remove="handleRemove":data="uploadval"name="multipartFile"><i class="el-icon-plus"></i>
</el-upload>

2). 在钩子方法 中保存课程图片信息

  //上传成功的钩子方法handleSuccess(response, file, fileList){console.log(response)//   alert('上传成功')//调用课程管理的保存图片接口,将图片信息保存到课程管理数据库course_pic中//从response得到新的图片文件的地址if(response.success){let fileId = response.fileSystem.fileId;courseApi.addCoursePic(this.courseid,fileId).then(res=>{if(res.success){this.$message.success("上传图片成功")}else{this.$message.error(res.message)}})}},//上传失败执行的钩子方法handleError(err, file, fileList){this.$message.error('上传失败');//清空文件队列this.fileList = []},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从任意网页上摘取酷炫Jquery效果为自己使用的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 用的chrome 浏览器 2. 随意百度一个漂亮的jquery效果 比如我找到一个可以旋转的多面体效果 3. 再F12选 Resources到如下界面&…

shell基础05 处理用户输入

1. 命令行参数------类似javac 参数1 参数2 类似Java中编译的javac parm1....。在shell中&#xff0c;参数与参数之间用空格隔开。采用位置参数来识别对应的参数值&#xff1a;$0是程序名&#xff0c;$1是第一个参数&#xff0c;以此类推&#xff0c;知道第9个参数$9。对于大…

OpenCV 2.4.0 正式版发布,开源计算机视觉库

OpenCV 于近日发布了 2.4.0 正式版。 OpenCV是一个基于BSD许可证授权发行的跨平台开源计算机视觉库&#xff0c;可以运行在Linux、Windows和Mac OS操作系统上。作为一款简洁而且高效的视觉库&#xff0c;OpenCV由一系列 C 函数和少量 C 类构成&#xff0c;同时提供了Python、Ru…

最小编辑代价-golang

题目&#xff1a; 给定两个字符串str1和str2&#xff0c;在给定三个整数ic,dc和rc,分别代表插入、删除和替换一个 字符&#xff0c;返回将str1编辑成str2的最小代价。 解题方法&#xff1a; 动态规划。首先生成大小为(M1)X(N1)的矩阵dp。 假设str1"avb12cd3", str2&q…

You can't specify target table 'TS_AUTH_ADMIN' for update in FROM clause记录

&#xff11;. 报错&#xff1a;You cant specify target table TS_AUTH_ADMIN for update in FROM clause&#xff0c; 百度查到说是&#xff0c;不能在同一语句中先select出同一表中的某些值,再update这个表 。 我原本的sql是&#xff1a;&#xff08;删除角色的时候&#…

study of javaserver faces lifecycle

JavaServer Faces应用程序的生命周期在客户端为页面发出HTTP请求时开始&#xff0c;并在服务器响应该页面并转换为HTML时结束。 通常将JSF的生命周期分为两个阶段&#xff1a; #执行阶段 #渲染阶段 1.执行阶段 JavaServer Faces应用程序生命周期执行阶段包含以下子阶段&#xf…

从开源软件开发中体会到的心得

Mitchell Hashimoto 是一名开源软件工程师。由他托管到 GitHub 上的 开源项目 Vagrant&#xff0c;是一个用于创建和部署虚拟化开发环境的工具。近日&#xff0c;Mitchell撰文讲述了在开发 Vagrant 的过程中学到的有关开源软件开发的一些心得。 以下为原文文章&#xff1a; 把 …

学成在线--25.课程图片管理(图片查询)

文章目录一. 需求分析二. API三. 服务端开发1. Dao2. Service3. Controller四. 前端开发1. API方法2. 页面一. 需求分析 课程图片上传成功&#xff0c;再次进入课程上传页面应该显示出来已上传的图片。 二. API 在课程管理服务定义查询方法 文件位置&#xff1a;xcEduServic…

redux源码解读

背景 因为就得去实习了。所以打算开始补补坑。比如自己阅读源码的计划。所以今天来聊聊redux的源码。后续会有redux-thunk和react-redux的源码阅读。搞定这些的话&#xff0c;就开始阅读一个node的库的源码了&#xff0c;比如eventproxy和anywhere。 开始 总览, redux的文件结构…

sql语句update中多个case/when的写法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 又如&#xff1a; update xxxx_xxxx set xxx_typeCASE WHEN xxx_type 0 THENYXLX-0WHEN xxx_type 1 THENYXLX-1WHEN xxx_type 2 THE…

Redis-ha(sentinel)搭建

服务器描述&#xff1a;本次搭建是用来测试&#xff0c;所以是在一台服务器上搭建三个redis服务&#xff08;一主两从&#xff09; 服务角色 端口 Redis.conf名称 sentinel配置文件名称 sentinel端口 redis日志路径 sentinel路劲 主(master) 6379 redis.conf sentine…

学成在线--26.课程图片管理(图片删除)

文章目录一. 需求分析二. API三. 服务端开发1. Dao2. Service3. Controller四. 前端开发1. API方法2. 页面1.before-remove钩子方法2.handleRemove钩子方法一. 需求分析 课程图片上传成功后&#xff0c;可以重新上传&#xff0c;方法是先删除现有图片再上传新图片&#xff1b;…

警惕开源代码库中的安全隐患

最近的一项研究发现&#xff0c; 在调查的31个流行库&#xff08;框架&#xff09;的1261个版本中&#xff0c;超过三分之一存在已知的安全漏洞&#xff0c;大约四分之一的下载文件已经被污染。 该项研究由Aspect Security和Sonatype发起。Aspect Security是一家评估软件安全漏…

jsp注释

jsp注释 <%--注释内容--%> html注释 <!--注释内容-->

线程间的协作(3)——管道输入/输出流

2019独角兽企业重金招聘Python工程师标准>>> 1.管道输入/输出流类 分为两类&#xff0c;字节流管道类&#xff08;PipedInputStream/PipedOutputStream&#xff09;和字符流管道类&#xff08;PipedReader/ PipedWriter&#xff09;。这两个IO流实现了可以在不同的任…

windows简易版本 Redis 使用 demo样例(ssm框架下)

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1. 在网上下载 windows 版本 的Redis 。下载了直接解压出来 &#xff1a; 2. 双击 redis-server.exe 启动服务&#xff08;如下图&#…

Redhat7.3安装配置Telnet详细教程

请参考&#xff1a;https://blog.csdn.net/weixin_39934520/article/details/84835949 谢谢楼主分享&#xff01;

程序员的半衰期只有15年?

曾在Google工作负责过技术工作的科技编辑 Matt Heusser总结了他在Google的生活经历&#xff0c;得出结论&#xff1a; 作为程序员&#xff0c;你只有15年时间。Matt 写道当我在Google工作时&#xff0c;发现Google大部分人都是20出头的年轻人&#xff0c;他们经历的很多事情都是…

EasyNVR、EasyDSS二次开发之:RTMP、HLS流在web页面进行无插件播放示例Demo代码

不管是基于EasyNVR还是EasyDSS&#xff0c;都是支持无插件直播&#xff0c;这也是未来视频直播的一个趋势。对于传统的浏览器插件播放谁用谁知道&#xff1b; 以上是软件自带播放展示 背景需求 对于EasyNVR和EasyDSS的使用方式大概分为两大类&#xff0c;一类是直接将软件作为视…