Răsfoiți Sursa

新增班级管理后端实现

mcbaiyun 5 luni în urmă
părinte
comite
de6ef8089f

+ 61 - 0
src/main/java/com/smart/reader/controller/ClassInfoController.java

@@ -0,0 +1,61 @@
+package com.smart.reader.controller;
+
+import com.smart.reader.common.Page;
+import com.smart.reader.exception.CustomException;
+import com.smart.reader.model.bo.ClassInfoAddBo;
+import com.smart.reader.model.bo.ClassInfoUpdateBo;
+import com.smart.reader.model.vo.ClassInfoVo;
+import com.smart.reader.service.ClassInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@RestController
+@RequestMapping("/api/v1/system/classInfo")
+@Validated
+@Api(tags = "班级信息管理")
+public class ClassInfoController {
+
+    @Resource
+    private ClassInfoService classInfoService;
+
+    @GetMapping("/list")
+    @ApiOperation("分页查询班级信息")
+    public Page<ClassInfoVo> queryInfo(int pageNum, int pageSize) throws CustomException {
+        return classInfoService.queryInfo(pageNum, pageSize);
+    }
+
+    @PostMapping("/add")
+    @ApiOperation("新增班级信息")
+    public Boolean add(@RequestBody ClassInfoAddBo classInfo) throws CustomException {
+        return classInfoService.add(classInfo);
+    }
+
+    @DeleteMapping("/delete/{id}")
+    @ApiOperation("删除班级信息")
+    public Boolean delete(@PathVariable Long id) throws CustomException {
+        return classInfoService.delete(id);
+    }
+
+    @PutMapping("/edit")
+    @ApiOperation("修改班级信息")
+    public Boolean edit(@RequestBody ClassInfoUpdateBo classInfo) throws CustomException {
+        return classInfoService.edit(classInfo);
+    }
+
+    @GetMapping("/{id}")
+    @ApiOperation("查询班级详情")
+    public ClassInfoVo detail(@PathVariable Long id) throws CustomException {
+        return classInfoService.detail(id);
+    }
+
+    @DeleteMapping("/batchDelete")
+    @ApiOperation("批量删除班级信息")
+    public Boolean batchDelete(@RequestBody List<Long> ids) throws CustomException {
+        return classInfoService.batchDelete(ids);
+    }
+}

+ 14 - 0
src/main/java/com/smart/reader/dao/ClassInfoMapper.java

@@ -0,0 +1,14 @@
+package com.smart.reader.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.smart.reader.model.po.ClassInfo;
+import com.smart.reader.model.vo.ClassInfoVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+@Mapper
+public interface ClassInfoMapper extends BaseMapper<ClassInfo> {
+    List<ClassInfoVo> queryInfo();
+    ClassInfoVo detail(@Param("id") Long id);
+}

+ 13 - 0
src/main/java/com/smart/reader/model/bo/ClassInfoAddBo.java

@@ -0,0 +1,13 @@
+package com.smart.reader.model.bo;
+
+import com.smart.reader.model.po.BaseEntity;
+import com.smart.reader.model.po.ClassInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "班级信息新增参数")
+public class ClassInfoAddBo extends ClassInfo {
+
+}

+ 13 - 0
src/main/java/com/smart/reader/model/bo/ClassInfoUpdateBo.java

@@ -0,0 +1,13 @@
+package com.smart.reader.model.bo;
+
+import com.smart.reader.model.po.BaseEntity;
+import com.smart.reader.model.po.ClassInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "班级信息更新参数")
+public class ClassInfoUpdateBo extends ClassInfo {
+
+}

+ 15 - 0
src/main/java/com/smart/reader/model/vo/ClassInfoVo.java

@@ -0,0 +1,15 @@
+package com.smart.reader.model.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.smart.reader.model.po.BaseEntity;
+import com.smart.reader.model.po.ClassInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "班级信息表")
+@TableName("class_info")
+public class ClassInfoVo extends ClassInfo {
+
+}

+ 19 - 0
src/main/java/com/smart/reader/service/ClassInfoService.java

@@ -0,0 +1,19 @@
+package com.smart.reader.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.smart.reader.common.Page;
+import com.smart.reader.exception.CustomException;
+import com.smart.reader.model.bo.ClassInfoAddBo;
+import com.smart.reader.model.bo.ClassInfoUpdateBo;
+import com.smart.reader.model.po.ClassInfo;
+import com.smart.reader.model.vo.ClassInfoVo;
+import java.util.List;
+
+public interface ClassInfoService extends IService<ClassInfo> {
+    Page<ClassInfoVo> queryInfo(int pageNum, int pageSize) throws CustomException;
+    Boolean add(ClassInfoAddBo classInfo) throws CustomException;
+    Boolean delete(Long id) throws CustomException;
+    Boolean edit(ClassInfoUpdateBo classInfo) throws CustomException;
+    ClassInfoVo detail(Long id) throws CustomException;
+    Boolean batchDelete(List<Long> ids) throws CustomException;
+}

+ 88 - 0
src/main/java/com/smart/reader/service/impl/ClassInfoServiceImpl.java

@@ -0,0 +1,88 @@
+package com.smart.reader.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.pagehelper.PageHelper;
+import com.smart.reader.common.Page;
+import com.smart.reader.dao.ClassInfoMapper;
+import com.smart.reader.exception.CustomException;
+import com.smart.reader.model.bo.ClassInfoAddBo;
+import com.smart.reader.model.bo.ClassInfoUpdateBo;
+import com.smart.reader.model.po.ClassInfo;
+import com.smart.reader.model.vo.ClassInfoVo;
+import com.smart.reader.service.ClassInfoService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Service
+public class ClassInfoServiceImpl extends ServiceImpl<ClassInfoMapper, ClassInfo> implements ClassInfoService {
+
+    @Override
+    public Page<ClassInfoVo> queryInfo(int pageNum, int pageSize) throws CustomException {
+        try {
+            PageHelper.startPage(pageNum, pageSize);
+            List<ClassInfoVo> tableInfoVos = this.baseMapper.queryInfo();
+            return new Page<>(pageNum, pageSize, tableInfoVos);
+        } catch (Exception e) {
+            throw new CustomException("班级信息查询失败");
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean add(ClassInfoAddBo classInfo) throws CustomException {
+        ClassInfo info = BeanUtil.copyProperties(classInfo, ClassInfo.class);
+        boolean save = this.save(info);
+        if (!save) {
+            throw new CustomException("班级数据添加失败");
+        }
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean delete(Long id) throws CustomException {
+        boolean remove = this.removeById(id);
+        if (!remove) {
+            throw new CustomException("班级数据删除失败");
+        }
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean edit(ClassInfoUpdateBo classInfo) throws CustomException {
+        ClassInfo info = this.getById(classInfo.getId());
+        if (ObjectUtil.isEmpty(info)) {
+            throw new CustomException("班级数据不存在");
+        }
+        BeanUtil.copyProperties(classInfo, info);
+        boolean update = this.updateById(info);
+        if (!update) {
+            throw new CustomException("班级数据修改失败");
+        }
+        return true;
+    }
+
+    @Override
+    public ClassInfoVo detail(Long id) throws CustomException {
+        ClassInfoVo vo = this.baseMapper.detail(id);
+        if (ObjectUtil.isEmpty(vo)) {
+            throw new CustomException("班级详情获取失败");
+        }
+        return vo;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean batchDelete(List<Long> ids) throws CustomException {
+        boolean result = this.removeByIds(ids);
+        if (!result) {
+            throw new CustomException("批量删除失败");
+        }
+        return true;
+    }
+}

+ 12 - 0
src/main/resources/mapper/ClassInfoMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.smart.reader.dao.ClassInfoMapper">
+
+  <select id="queryInfo" resultType="com.smart.reader.model.vo.ClassInfoVo">
+    SELECT ci.* from `class_info` ci
+  </select>
+
+  <select id="detail" resultType="com.smart.reader.model.vo.ClassInfoVo">
+    select ci.* from `class_info` ci where ci.id=#{id}
+  </select>
+</mapper>