针对尚硅谷教学微服务硅谷课堂在线学习平台的部分功能的自我改进
标题
针对讲师列表最后一页删除全部数据后应该自动跳到上一页的前端进行改善
首先是删除按钮的代码
接着是批量删除的代码改进
接着是对讲师上传头像的宽高做校验
// 上传校验
beforeAvatarUpload(file) {
const isJPG = file.type === 'image/jpeg'const isLt2M = file.size / 1024 / 1024 < 2if (!isJPG) {this.$message.error('上传头像图片只能是 JPG 格式!')}if (!isLt2M) {this.$message.error('上传头像图片大小不能超过 2MB!')}//判断尺寸大小let width1 =''let height1=''const isSize = new Promise(function (resolve, reject) {debuggerlet _URL = window.URL || window.webkitURL;let img = new Image();img.onload = function () {width1 = img.widthheight1 = img.heightlet valid = img.width<=700 && img.height<=900 && img.width>=300 && img.height>=400valid ? resolve() : reject();};img.src = _URL.createObjectURL(file);}).then(() => {return file;},() => {this.$message.warning({// message:'上传图片的尺寸300px<=高<=700px'`${api_name}/remove/${id}`,// message:'上传图片的尺寸300<=width<=700,400<=height<=700,当前上传图片的尺寸为:'message:'上传图片的尺寸应为当前上传图片的尺寸为:' + width1 + '*' + height1});return Promise.reject();//必须加上return false; 才能阻止return false; });return isJPG && isLt2M && isSize}
接着是对课程分类列表使用easyExcel导入功能的一点小修改
因为老师只是交了一条数据一条数据的插入数据库
这样如果数据多起来会频繁访问数据库
所以我决定使用mybatis-plus中的 insertBatchSomeColumn方法进行批量添加
insertBatchSomeColumn的实现方法是
在vod的pom.xml导入插件依赖
接着在老师写的vodConfig中添加配置bean
@Configuration
@MapperScan(“com.whx.ggkt.vod.mapper”)
public class VodConfig {
/*** 分页插件配置* @return*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();//添加分页插件interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));//添加乐观锁插件interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());return interceptor;
}@Bean
public EasySqlInjector easySqlInjector() {return new EasySqlInjector();
}
}
然后创建一个mapper来继承BaseMapper
public interface EasyBaseMapper extends BaseMapper {
/**
* 批量插入 仅适用于mysql
*
* @param entityList 实体列表
* @return 影响行数
*/
Integer insertBatchSomeColumn(Collection entityList);
}
然后将SubjectMapper继承EasyBaseMapper
然后就在老师讲的代码中那个easyExcel监听器里面将代码修改一下
因为subject表所有字段都是非空的,但是insertBatchSomeColumn它会插入空值,所以会导致报错
所以我在代码对几个字段进行了赋值
@Component
public class SubjectListener extends AnalysisEventListener {
@Autowired
private SubjectMapper subjectMapper;
List<Subject> sev = new ArrayList<>();
/*** 批处理阈值10000*/
private static final int count = 10000;@Override
public void invoke(SubjectEeVo subjectEeVo, AnalysisContext analysisContext) {//调用方法添加数据库Subject subject = new Subject();BeanUtils.copyProperties(subjectEeVo,subject);subject.setCreateTime(new Date());subject.setUpdateTime(new Date());subject.setIsDeleted(0);
// subjectMapper.insert(subject);
sev.add(subject);
//
if(sev.size()>count){
System.out.println(sev.size()+“size”);
System.out.println(10000);
subjectMapper.insertBatchSomeColumn(sev);
sev.clear();
}
}@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {subjectMapper.insertBatchSomeColumn(sev);
}
}
这代码不难,稍微解释一下,如果excel中的数据很多时,你可以进行分批取
如果数据不到一万条 它最后会通过doAfterAllAnalysed()这个方法批量添加。如果数据是100001条的话,会先先执行invoke()先批量添加10000条
但是还有1条就走doAfterAllAnalysed()。
其实还有那个懒加载课程分类列表,如果你们觉得频繁访问数据比较low 你们也可以一下全捞出数据用jdk8新特性流进行递归处理。
未完待续,还在学习
针对尚硅谷教学微服务硅谷课堂在线学习平台的部分功能的自我改进相关推荐
- 基于java基于微服务架构的在线音乐平台计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
基于java基于微服务架构的在线音乐平台计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署 基于java基于微服务架构的在线音乐平台计算机毕业设计源码+系统+lw文档+mysql数据库+调 ...
- PHP云课堂在线学习平台源码带文字安装教程
云课堂在线学习平台源码带文字安装教程 运行环境 服务器宝塔面板 PHP 5.6 Mysql 5.5及以上版本 Linux Centos7以上 这是一个功能齐全的云课堂在线学习平台,包括有直播系统,点播 ...
- 基于spingboot+springcloud微服务技术的在线教育平台系统
在线教育平台系统 分享一个优质的微服务项目教程,这是我在B站找到的项目,教程中老师讲得很细致,而且有配套的教学笔记,视频中听得不是很清楚的时候跟着教学笔记敲是非常方便的.跟着这个视频我搭建出了在线教育 ...
- 尚硅谷2020微服务分布式电商项目《谷粒商城》学习笔记
尚硅谷2020微服务分布式电商项目<谷粒商城> 项目简介 资料 百度云 链接:https://pan.baidu.com/s/1eGCTi6pLtKbDCwBs-zCOzQ 提取码:1pm ...
- 【JAVA微服务架构项目前后端分离开发-MyMooc教育在线学习平台】
类似于中国Mooc的在线学习平台 文章目录 类似于中国Mooc的在线学习平台 一.项目描述 二.后台管理员系统细讲 三.前台用户系统细讲 四.前端技术点总结 五.后端技术点总结 六.遇到问题及解决方法 ...
- (转)微服务架构 互联网保险O2O平台微服务架构设计
http://www.cnblogs.com/Leo_wl/p/5049722.html 微服务架构 互联网保险O2O平台微服务架构设计 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也 ...
- MyClouds-V1.0 发布,微服务治理及快速开发平台
2019独角兽企业重金招聘Python工程师标准>>> 轻量级微服务治理及快速开发平台 MyClouds-V1.0 已发布. 更新如下 [优化]优化了进行主题设置时候当前页面相关组件 ...
- 51信用卡在微服务架构下的监控平台架构实践
一.背景介绍 51信用卡的技术架构是基于Spring Cloud所打造的微服务体系,随着业务的飞速发展,不断增多的微服务以及指标给监控平台带来了极大的挑战.监控团队在开源vs自研,灵活vs稳定等问题上 ...
- 启动go服务_go微服务框架go-micro深度学习 rpc方法调用过程详解
摘要: 上一篇帖子go微服务框架go-micro深度学习(三) Registry服务的注册和发现详细解释了go-micro是如何做服务注册和发现在,服务端注册server信息,client获取serv ...
最新文章
- 经典HTML5学习资源
- 写毕业论文的最容易踩的几个坑
- maven(android-maven-plugin3.8.0)打包apk无法启动,apklib依赖包的资源索引出错(R文件与主模块冲突)问题解析
- httpd mysql认证_Apache Httpd服务器之认证与授权
- CoreMotion(加速计)
- 关于提BUG的一点思考以及工作中总结的规范
- python中pass的使用_pass语句如何在Python项目中使用
- 电设——开关电源——LM2596
- python母亲节代码_python 计算 母亲节
- C. New Year Ratings Change
- iOS 应用唤起淘宝到指定商店页面
- maven 排除配置文件打包_maven 打包排除配置文件
- 中专计算机应用基础课课程标准,计算机应用基础课程标准
- define and typedef
- maker mv rpg 源码_RPGMAKERMV入门教程(个性化游戏篇)
- 社恐患者的“死亡”瞬间
- nmn美国下架,nmn对肝脏有副作用吗,有实验证明!
- [激光原理与应用-18]:《激光原理与技术》-4- 激光产生技术 - 粒子数反转与“光”强放大的基本原理
- 电子表格控件 在线演示
- Android开发:使用CardView实现卡片式设计