管理员系统分析模块

整章内容以教师管理模块进行操作模板,不涉及相关代码,单单只是对整个操作流程进行梳理分享,以便于自己进行项目编写的时候可以更好的上手。

一、前期准备工作,搭建整个项目框架

1、首先创建一个mevan项目,导入pom依赖,特别注意加入父工程跟子工程中间用pom跟modules进行规则划分

2、导入数据库信息

3、导入application.yml文件

4、在测试中导入代码生成器,结合数据库更好更方便的进行代码生成

二、具体模块划分

注意事项:

1、整个项目使用mybatis-plus,在pom文件导入的过程中,运用插件相

关信息,所以对基本的增删改查的操作不需要在xml文件中另行增加。

这样大大减少了代码的重复度,牢记遵循规则>配置>代码的整体规范

2、注意一定不要忘记在所有实体类中添加策略:@TableField(fill = FieldFill.INSERT)。这个特别重要,在时间中没有参加策略,相当于不会进行自动生成,代码运行会报错

公共模块插入:

  1. Swagger:创建公共模块common,创建子模块base,创建swaggerconfig,用于整个项目后端接口进行统一管理。注意controller调用的过程中,要在pom中导入swagger相关依赖的同时,加入注解跟扫描包组件。
  2. 统一定义数据状态码跟返回数据格式:首先在common中创建common.util模块,然后创建定义数据状态码跟返回数据格式的两个包,粘贴具体代码即可,第三在业务模块中调用相关配置,把接口方法的返回类型都改成R。
  3. 在遇到需要运用例如阿里云OSS或者是阿里云视频点播导入项目中的时候,往往单纯建立新的端口号就可以在swagger中端口就可以进行实现,但是特别注意,在前端中要用到nginx!!!负载均衡

一、讲师管理模块

1、讲师列表展示简单的service调用list方法,进行查询,返回json数组的形式,通过var调用List<>集合,中间填入定义的实体类即可成功。由于这个功能是数据的请求,所以使用Getmapping形式进行接口使用

2、讲师逻辑删除:也就是根据id进行删除:首先在config中要配置逻辑删除插件,第二在进行操作的实体类上加入逻辑删除注解@TableId,第三由于是使用查询id进行删除操作,所以接口调用的方法使用@DeleteMapping括号内加id的方法进行调用,第四具体实现方法依旧是使用service.removeByid的方法进行调用。

3、分页查询:首先在config中配置mp的分页插件,然后用GetMapping调用接口,具体到当前页码跟每页记录数(多用page跟limit调用),同时可以用@Apiparam跟@PathVariable对其进行含义赋值。具体代码呈现:首先调用方法类创建方法,注意在service扫描下,分页的功能就是用page来进行实现的。第二运用service.page(),调用方法的时候底层封装,把分页所有的数据封装到对象中去,第三,通过对象.getTotal封装记录数,对象.getRecords封装list集合,最终return返回数据即可。

4、条件查询加分页:具体方法跟分页查询类似,中间添加了wrapper来定义条件,通过mybatis的动态sql,结合if判断语句,将想要查询的数据放到wrapper中,最终还是通过service.page进行调用实现。

5、讲师添加:首先由于是对数据信息添加操作,由此使用Postmapping的方法进行接口对接,简单的运用了service.save的方法进行添加方法的使用。但是要注意的是,必须使用@Requestbody的方法来对相关类进行接收数据,然后用post的方法进行提交。

6、讲师修改功能:分为两个过程,首先进行id查询,然后再进行修改。首先getmapping接口中简单的servcie.getByid将数据查询出来。然后postmapping接口中用@Requestbody对方法类进行接收数据,然后用service.updateByid进行修改封装即可。

阿里云oss操作模型

1、创建相关模块,导入pom依赖跟yml配置文件,yml文件中配置自己阿里云中相关的id值

2、创建servcie跟controller,导入官方文档中的模板就行

3、创建常量类,读取yml中配置的相关信息

4、启动测试,就可以导入文件进入阿里云

注:默认情况下,swagger属于自定义早就安装完成了的

  • 课程分类管理

、增加课程分类:

  1. 使用EasyExcel操作excel进行读写操作:注意重点操作的重点,在于一级分类跟二级分类的显示跟操作。在idea实现过程:第一,引入相关easyexcel依赖。第二,使用代码生成器生成课程subject课程分类代码。第三,用@Data定义实体类,创建第一跟第二级分类的实体类,对应好excel中的关系。第四,创建监听器实现操作。

监听器代码编写:

  1. 监听器继承实体类的集合AnalysisEventListener<>
  2. 因为监听器listener不可以交给spring进行管理,故需要自己new,自己public一个实体类的service,并进行有参跟无参构造
  3. 在实体类中,新建一级跟二级分类,onesubject跟twosubject
  4. 首先先判断一级分类跟二级分类能不能重复添加:首先在private括号中传入自己new的service跟实体类中定义的方法名。第二,通过QueryWrapper<>方法调用wrapper,用wapper.eq()来进行添加条件来进行判断。第三,调用service.getone的方法调用,最后返回。同理二级分类一样的方法。
  5. 判断一级分类跟二级分类是否重复再进行添加:调用定义的private方法,判断一级分类是否重复,为空的话,通过service.save进行创建,然后获取id之后,对二级分类进行添加。
  • 课程页面显示:
  1. 总体来说,目的在于构建一个树形结构的一个展示效果,所以还要在serviceimpl中进行修改调用,故正常getMapping请求,定义list集合,service.方法跳转到service中,然后再impl中实现方法。
  2. Impl中具体过程:先查出一级分类跟二级分类,然后分别进行封装:
  • 用QueryWrapper<>来new一个对象
  • 调用wrapper.eq()将数据库的值调入进wrapper
  • 用basemapper.selectlist(wrapper),将wrapper的值,也就是数据库的值传进去。从而实现一级分类的查询,同理,即可实现二级分类的查询
  • New一个Arraylist<>集合,用于存储最终的封装数据
  • 封装一级分类跟二级分类:注:最终目的是为了让前端可以更好的调用接口,将List<EduSubject>onesubjectlist转换成List<OneSubject>finalsubjectlist具体操作:
  1. 用for循环遍历整个onesubjectlist
  2. 用edusubject=onesubjectlist.get(i)得到每一个one中edu的对象
  3. New一个onesubject,将edusubject中的值获取出来,传入onesubject,再用beanutil.copy()将edu中的值复制到one对象中去
  4. 最终用finalsubject.add(one)的方法,将one的值封装到final的list集合中去。
  5. 同理,实现二级分类的封装

   六、最终树形接口的实现

  • 课程管理(核心思想是运用实体类结合数据库定义的数据传入serviceimpl,在里面结合mybatis-plus进行操作)
  • 课程添加
  1. 编辑课程基本信息:
  • 运用代码生成器,结合course数据库生成相关代码
  • 在实体类中创建Vo,复制进去根据数据库的具体数据,注意在时间方面加入策略语句
  • 编写controller:注意private()调用@Requestbody调用vo中的实体类。然后service.saveCourserInfo创建service类,注意将vo实体类中的数据放入service.saveCourserInfo中。
  • 编写service类,在impl实现service类的方法。首先将实体类数据对象转换成educourse对象:用BeanUtils.copyProperties(),进行转换封装对象。然后用basemapper.save添加方法,将educourse数据放入,实现添加基本信息功能的实现。最后通过eaducourse.getID()获取添加之后课程的id,用于下面向课程简介表调用数据做准备。
  • 向课程简介表中添加数据:特别注意课程表中并没有课程简介这一东西,要在添加的过程中添加入课程简介,就要调用课程简介的service信息操作。首先注入@Autowired中课程描述的service。第二,new一个courseDescription对象,用service.save方法进行添加。第三:将course的实体类中的数据放入其中就可以实现。最后返回id值可。
  1. 创建课程大纲
  1. 添加章节接口:
  • 代码生成器生成代码
  • 创建post接口,添加@Requestbody加入章节的实体类数据
  • Service.save方法实现
  1. 修改章节接口:老方法,先根据id查询,再进行删除

一、代码生成器生成代码

二、创建get跟post接口,添加@Requestbody加入章节的实体类数据

三、分别使用service.getId跟service.updateByID进行查询id跟修改操作

   3、删除章节:根据id删除章节,但是注意要判断有没有小结!

      一、@Deletemapping方法创造接口

      二、service.delete自建(导入实体类)

      三、调用service转到serviceimpl,并实现方法

      四、serviceimpl中具体实现:首先querywrapper<小结实体类>查询小结中内容。第二用wrapper.eq对条件进行添加。第三将添加数据中的wrapper用service.count进行封装,count可以直接查出想要的值。最后,if条件判断即可。

4、添加小结操作; 与增加章节同理

5、修改小结接口:与修改章节同理

6、删除小结:前几步跟删除章节类似,但是并不需要最后进行判断,也就是第四步的第三小步,直接进行basemapper.delete(mapper)实现即可

  1. 发布课程(多是前端方面)
  2. 课程状态修改:依旧是先根据id查询,再进行修改
  1. 查询经典三步走,controller加service加impl,basemapper调用查询方法
  2. 首先new一个方法类,然后.setId(id),传入查询的id进行定位,第三用.setstatus()导入想要修改的状态。最后service.updateByid(实体类)实现修改课程状态。

五、阿里云osss图片后端接口实现

一、阿里云oss创建oss服务,创建秘钥

二、创建配置文件,新建端口号跟秘钥

三、导入oss相关依赖

四、controller加service加impl操作,impl写入文档内容即可

六、阿里云视频点播后端接口实现:类似于oss操作

七、登录login后端接口实现:创建与前端交互的接口,与前端进行对接

、Nacos调用:

  一、下载Nacos压缩包,解压cmd运行

   二、导入pom依赖跟yml文件信息(调用端跟被调用端都需要加入)

   三、启动类中导入注释,区分调用端跟被调用端

   四、微服务具体实现:

        1、调用端创建client包,创建接口,加@Feignclient注解注入被调用端,然后可以使用被调用端接口的方法进行操作,具体代码看实例

八、Hystrix:豪猪哥的应用

   一、首先确定豪猪哥是熔断器,当项目出现错误时进行熔断

二、操作:

    1、pom跟yml文件导入

    2、在client包中创建熔断器的实现类

    3、client中创建接口的注解

    4、测试实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值