Java攻城狮社区首发,简历上的Spring Boot项目首选

五、Java程序员简历上的第二个项目


第一个项目应该是SSM整合,第二个应该就是Spring Boot + Vue了。

1、项目结构

2、EduTeacherController

package com.guor.eduservice.controller;

import com.guor.commonutils.R;

import com.guor.eduservice.entity.EduTeacher;

import com.guor.eduservice.entity.vo.TeacherQuery;

import com.guor.eduservice.service.EduTeacherService;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiOperation;

import io.swagger.annotations.ApiParam;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.util.StringUtils;

import org.springframework.web.bind.annotation.*;

import java.util.List;

@Api(description=“讲师管理”)

@RestController

@RequestMapping(“/eduservice/teacher”)

@CrossOrigin

public class EduTeacherController {

@Autowired

private EduTeacherService teacherService;

@ApiOperation(value = “所有讲师列表”)

@GetMapping(“findAll”)

public R findAllTeacher(){

List list = teacherService.list(null);

return R.Ok().data(“items”,list);

}

@ApiOperation(value = “根据ID查询讲师”)

@GetMapping(“findById{id}”)

public R findById(@ApiParam(name=“id”,value=“讲师ID”,required=true) @PathVariable String id){

EduTeacher teacher = teacherService.getById(id);

return R.Ok().data(“items”,teacher.getJson());

}

@ApiOperation(value = “根据ID删除讲师”)

//逻辑删除讲师的方法

@DeleteMapping(“{id}”)

public R removeTeacher(@ApiParam(name=“id”,value=“讲师ID”,required=true) @PathVariable String id){

Boolean flag = teacherService.removeById(id);

if(flag){

return R.Ok();

}else{

return R.error();

}

}

//分页

@GetMapping(“pageTeacher/{current}/{limit}”)

public R pageListTeacher(@PathVariable long current,@PathVariable long limit){

//创建page对象

Page pageTeacher = new Page<>(current,limit);

//调用方法的时候,底层封装,把分页所有数据封装到pageTeacher中

teacherService.page(pageTeacher,null);

long total = pageTeacher.getTotal();

List records = pageTeacher.getRecords();

//Map map = new HashMap();

//map.put(“total”,total);

//map.put(“rows”,records);

return R.Ok().data(“total”,total).data(“rows”,records);

}

@PostMapping(“pageTeacherCondition/{current}/{limit}”)

public R pageTeacherCondition(@PathVariable long current,@PathVariable long limit,

@RequestBody(required = false) TeacherQuery teacherQuery){

//创建一个page对象

Page pageTeacher = new Page<>(current,limit);

QueryWrapper wrapper = new QueryWrapper<>();

//多条件组合查询

//动态SQL

//判断条件值是否为空,不为空就拼接

String name = teacherQuery.getName();

Integer level = teacherQuery.getLevel();

String begin = teacherQuery.getBegin();

String end = teacherQuery.getEnd();

if(!StringUtils.isEmpty(name)){

wrapper.like(“name”,name);

}

if(!StringUtils.isEmpty(level)){

wrapper.eq(“level”,level);

}

if(!StringUtils.isEmpty(begin)){

wrapper.ge(“gmt_create”,begin);

}

if(!StringUtils.isEmpty(end)){

wrapper.le(“gmt_modified”,end);

}

wrapper.orderByDesc(“gmt_create”);

//wrapper.

teacherService.page(pageTeacher,wrapper);

long total = pageTeacher.getTotal();

List records = pageTeacher.getRecords();

return R.Ok().data(“total”,total).data(“rows”,records);

}

//添加讲师接口的方法

@PostMapping(“addTeacher”)

public R addTeacher(@RequestBody EduTeacher eduTeacher){

boolean save = teacherService.save(eduTeacher);

if(save){

return R.Ok();

}else {

return R.error();

}

}

@GetMapping(“getTeacher/{id}”)

public R getTeacher(@PathVariable String id){

EduTeacher byId = teacherService.getById(id);

return R.Ok().data(“teacher”,byId);

}

@PostMapping(“updateTeacher”)

public R updateTeacher(@RequestBody EduTeacher eduTeacher){

boolean flag = teacherService.updateById(eduTeacher);

if(flag){

return R.Ok();

}else {

return R.error();

}

}

}

3、前端讲师列表

<el-button type=“primary” icon=“el-icon-upload” @click=“imagecropperShow=true”>更换头像

<image-cropper

v-show=“imagecropperShow”

:width=“300”

:height=“300”

:key=“imagecropperKey”

:url=“BASE_API+‘/eduoss/fileoss’”

field=“file”

@close=“close”

@crop-upload-success=“cropSuccess”/>

<el-button :disabled=“saveBtnDisabled” type=“primary” @click=“saveOrUpdate”>保存

4、添加讲师页面

<el-date-picker

v-model=“teacherQuery.begin”

type=“datetime”

placeholder=“选择开始时间”

value-format=“yyyy-MM-dd HH:mm:ss”

default-time=“00:00:00”

/>

<el-date-picker

v-model=“teacherQuery.end”

type=“datetime”

placeholder=“选择截止时间”

value-format=“yyyy-MM-dd HH:mm:ss”

default-time=“00:00:00”

/>

<el-button type=“primary” icon=“el-icon-search” @click=“getList()”>查询

<el-button type=“default” @click=“resetData()”>清空

<el-table

:data=“list”

border

fit

highlight-current-row>

<el-table-column

label=“序号”

width=“70”

align=“center”>

{{ (page - 1) * limit + scope.$index + 1 }}

{{ scope.row.level===1?‘高级讲师’:‘首席讲师’ }}

修改

<el-button type=“danger” size=“mini” icon=“el-icon-delete” @click=“removeDataById(scope.row.id)”>删除

<el-pagination

:current-page=“page”

:page-size=“limit”

:total=“total”

style=“padding: 30px 0; text-align: center;”

layout=“total, prev, pager, next, jumper”

@current-change=“getList”

/>

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值