2024/04/27(团队开发)
今天是团队开发的第八天,今天的例会上我向我的团队成员们提出来了昨天遇到的问题和对应的解决方法,让他们在接下来的开发中注意这一点。
我接下来要完成的任务就是完成上传封面视频后返回的信息打包再给后端存入数据库中,之后就开始给该界面添加样式使其稍微美观一点。
在昨天的基础上,编写了最后上传按钮对应的uploadmes方法:
uploadmes:function() { console.log(this.information); if(this.information.video_url==='') { uni.showToast({ title:"视频不能为空", icon:'error', }); return; } if(this.information.cover_url==='') { uni.showToast({ title:"封面不能为空", icon:'error', }); return; } if(this.information.description==='') { uni.showToast({ title:"视频描述不能为空", icon:'error', }); return; } uni.request({ method:"POST", url:'http://192.168.179.138:8080/mesupload', data:this.information, success: (res) => { console.log(res.data); uni.showToast({ title:"视频上传成功", }); uni.switchTab({ url:"/pages/index/index" }) }, fail() { uni.showToast({ title:"视频上传失败", icon:'error', }); } }) }
点击上传后会对这个视频的关键信息进行校验,信息只要有空值就会上传失败。
后端:
controller层:
package com.share.viedo_app.controller; import com.share.viedo_app.pojo.Result; import com.share.viedo_app.pojo.Video; import com.share.viedo_app.service.Impl.VideoServiceImpl; import com.share.viedo_app.service.VideoService; import com.share.viedo_app.util.AliOSSUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.util.List; @Slf4j @RestController public class UploadController { @Autowired private AliOSSUtils aliOSSUtils; @Autowired private VideoService videoService; @PostMapping("/upload") public String uploadVideo(MultipartFile file)throws Exception{ log.info("文件上传:{}",file.getOriginalFilename()); String url=aliOSSUtils.upload(file); log.info("文件上传完成,文件访问的url:{}",url); return url; } @PostMapping("/mesupload") public Result mesupload(@RequestBody Video video){ videoService.insert(video); return Result.success(); } }
service层:
package com.share.viedo_app.service.Impl; import com.share.viedo_app.mapper.VideoMapper; import com.share.viedo_app.pojo.Video; import com.share.viedo_app.service.VideoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class VideoServiceImpl implements VideoService { @Autowired private VideoMapper videoMapper; @Override public void insert(Video video) { videoMapper.insert(video); } }
mapper层:
package com.share.viedo_app.mapper; import com.share.viedo_app.pojo.Video; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; @Mapper public interface VideoMapper { @Insert("insert into video(userid,description,label, cover_url, video_url) values (#{userid},#{description},#{label},#{coverUrl},#{videoUrl})") void insert(Video video); }
预计时长1h,实际用时2小时
主要是前端传入的部分数据后端没有接收到,倒是最后mapper层一直报错数据操作出错,cover_url不能为空之类的,试了很多次都不成功后就开始找错误,尝试把实体类的名字修改了才能获取到。