From 44fdd9ba137aae68c83af3929fcddc0704e8e2ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=B2=85?= <907037276@qq.com> Date: Thu, 6 Jul 2023 17:13:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=99=E5=B8=88=E7=AB=AF=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E6=95=99=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TrainingLessonPlanController.java | 65 ++++++++++++++- .../dto/TrainingLessonPlanBO.java | 17 ++++ .../mappers/TrainingLessonPlanMapper.java | 3 + .../service/TrainingLessonPlanService.java | 83 +++++++++++++++++++ 4 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/sztzjy/forex/trading_trading/dto/TrainingLessonPlanBO.java create mode 100644 src/main/java/com/sztzjy/forex/trading_trading/service/TrainingLessonPlanService.java diff --git a/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingLessonPlanController.java b/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingLessonPlanController.java index 7398d6e..6cbfa6c 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingLessonPlanController.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/controller/TrainingLessonPlanController.java @@ -1,10 +1,26 @@ package com.sztzjy.forex.trading_trading.controller; +import com.github.pagehelper.PageInfo; +import com.sztzjy.forex.trading_trading.annotation.Permission; +import com.sztzjy.forex.trading_trading.annotation.aspect.PermissionType; +import com.sztzjy.forex.trading_trading.config.security.JwtUser; +import com.sztzjy.forex.trading_trading.config.security.TokenProvider; +import com.sztzjy.forex.trading_trading.entity.TrainingLessonPlan; +import com.sztzjy.forex.trading_trading.service.TrainingLessonPlanService; +import com.sztzjy.forex.trading_trading.util.ResultEntity; +import com.sztzjy.forex.trading_trading.util.file.IFileUtil; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.apache.http.util.Asserts; +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; @Api(tags = "实训教案管理") @RestController @@ -12,5 +28,50 @@ import org.springframework.web.bind.annotation.RestController; @RequiredArgsConstructor public class TrainingLessonPlanController { + private final TrainingLessonPlanService trainingLessonPlanService; + private final HttpServletRequest request; + + private final IFileUtil fileUtil; + + @Permission(codes = PermissionType.TRAINING_PLAN_MANAGEMENT_ADD) + @ApiOperation("教师端----新增一条实训教案记录") + @PostMapping("create") + public ResultEntity create(@ApiParam("教案名称") @RequestParam String name, + @RequestPart("file") MultipartFile file) { + JwtUser currentUser = TokenProvider.getJWTUser(request); + Asserts.notNull(name, "教案名称不能为空"); + Asserts.notNull(file, "请上传文件"); + trainingLessonPlanService.create(name, file, currentUser); + return new ResultEntity(HttpStatus.OK); + } + + @Permission(codes = PermissionType.TRAINING_PLAN_MANAGEMENT_DEL) + @ApiOperation("教师端----删除一条实训教案记录") + @DeleteMapping("delete") + public ResultEntity delete(@ApiParam("教案id") @RequestParam String id) { + Asserts.notNull(id, "教案id不能为空"); + trainingLessonPlanService.deleteById(id); + return new ResultEntity(HttpStatus.OK); + } + + @Permission(codes = PermissionType.TRAINING_PLAN_MANAGEMENT_SEARCH) + @ApiOperation("文件下载") + @GetMapping("download") + public void download(String id, HttpServletResponse response) { + TrainingLessonPlan trainingLessonPlan = trainingLessonPlanService.findById(id); + Asserts.notNull(trainingLessonPlan, "教案不存在"); + fileUtil.download(response, trainingLessonPlan.getFilePath()); + } + + @Permission(codes = PermissionType.TRAINING_PLAN_MANAGEMENT_SEARCH) + @ApiOperation("根据教案名字查询教案") + @GetMapping("findByName") + public ResultEntity> findByName(@ApiParam("教案名称") @RequestParam String name, + @ApiParam("分页索引:{0}为第一页") @RequestParam(required = false) Integer index, + @ApiParam("页量") @RequestParam(required = false) Integer size) { + JwtUser currentUser = TokenProvider.getJWTUser(request); + Asserts.notNull(name, "教案名称不能为空"); + return new ResultEntity(HttpStatus.OK, trainingLessonPlanService.findByConditions(name,currentUser,index,size)); + } } diff --git a/src/main/java/com/sztzjy/forex/trading_trading/dto/TrainingLessonPlanBO.java b/src/main/java/com/sztzjy/forex/trading_trading/dto/TrainingLessonPlanBO.java new file mode 100644 index 0000000..21cac07 --- /dev/null +++ b/src/main/java/com/sztzjy/forex/trading_trading/dto/TrainingLessonPlanBO.java @@ -0,0 +1,17 @@ +package com.sztzjy.forex.trading_trading.dto; + +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.Getter; +import lombok.Setter; +import org.springframework.web.multipart.MultipartFile; + +@ApiModel("新增实训教案入参") +@Getter +@Setter +@Data +public class TrainingLessonPlanBO { + + + +} diff --git a/src/main/java/com/sztzjy/forex/trading_trading/mappers/TrainingLessonPlanMapper.java b/src/main/java/com/sztzjy/forex/trading_trading/mappers/TrainingLessonPlanMapper.java index 4e40955..dea0de8 100644 --- a/src/main/java/com/sztzjy/forex/trading_trading/mappers/TrainingLessonPlanMapper.java +++ b/src/main/java/com/sztzjy/forex/trading_trading/mappers/TrainingLessonPlanMapper.java @@ -3,8 +3,11 @@ package com.sztzjy.forex.trading_trading.mappers; import com.sztzjy.forex.trading_trading.entity.TrainingLessonPlan; import com.sztzjy.forex.trading_trading.entity.TrainingLessonPlanExample; import java.util.List; + +import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +@Mapper public interface TrainingLessonPlanMapper { /** * This method was generated by MyBatis Generator. diff --git a/src/main/java/com/sztzjy/forex/trading_trading/service/TrainingLessonPlanService.java b/src/main/java/com/sztzjy/forex/trading_trading/service/TrainingLessonPlanService.java new file mode 100644 index 0000000..afcf872 --- /dev/null +++ b/src/main/java/com/sztzjy/forex/trading_trading/service/TrainingLessonPlanService.java @@ -0,0 +1,83 @@ +package com.sztzjy.forex.trading_trading.service; + + +import cn.hutool.core.util.IdUtil; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.sztzjy.forex.trading_trading.config.security.JwtUser; +import com.sztzjy.forex.trading_trading.entity.TrainingLessonPlan; +import com.sztzjy.forex.trading_trading.entity.TrainingLessonPlanExample; +import com.sztzjy.forex.trading_trading.mappers.TrainingLessonPlanMapper; +import com.sztzjy.forex.trading_trading.util.file.IFileUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; + +import java.util.Date; +import java.util.List; + +@Service +public class TrainingLessonPlanService { + + + @Autowired + TrainingLessonPlanMapper trainingLessonPlanMapper; + @Autowired + IFileUtil fileUtil; + + + public void create(String name, MultipartFile file, JwtUser currentUser) { + Assert.isTrue(findByName(name) == null, "教案名称已存在"); + String filePath = fileUtil.upload(file); + + TrainingLessonPlan trainingLessonPlan = new TrainingLessonPlan(); + trainingLessonPlan.setName(name); + trainingLessonPlan.setFilePath(filePath); + trainingLessonPlan.setId(IdUtil.simpleUUID()); + trainingLessonPlan.setCreateTime(new Date()); + trainingLessonPlan.setCreatorId(Integer.valueOf(currentUser.getUserId())); + trainingLessonPlan.setCreatorName(currentUser.getName()); + trainingLessonPlan.setSchoolId(currentUser.getSchoolId()); + trainingLessonPlanMapper.insert(trainingLessonPlan); + } + + + public TrainingLessonPlan findByName(String name) { + TrainingLessonPlanExample example = new TrainingLessonPlanExample(); + TrainingLessonPlanExample.Criteria criteria = example.createCriteria(); + criteria.andNameEqualTo(name); + List trainingLessonPlans = trainingLessonPlanMapper.selectByExample(example); + if (trainingLessonPlans == null || trainingLessonPlans.size() == 0) { + return null; + } + return trainingLessonPlans.get(0); + } + + public PageInfo findByConditions(String name,JwtUser currentUser, Integer pageNum, Integer pageSize) { + TrainingLessonPlanExample example = new TrainingLessonPlanExample(); + TrainingLessonPlanExample.Criteria criteria = example.createCriteria(); + PageHelper.startPage(pageNum, pageSize); + if (StringUtils.hasText(name)) { + criteria.andNameLike('%' + name + '%'); + } + criteria.andSchoolIdEqualTo(currentUser.getSchoolId()); + + return new PageInfo<>(trainingLessonPlanMapper.selectByExample(example)); + + } + + + public void deleteById(String id) { + TrainingLessonPlan trainingLessonPlan = findById(id); + Assert.notNull(trainingLessonPlan, "教案不存在"); + fileUtil.remove(trainingLessonPlan.getFilePath()); + trainingLessonPlanMapper.deleteByPrimaryKey(id); + } + + + public TrainingLessonPlan findById(String id) { + return trainingLessonPlanMapper.selectByPrimaryKey(id); + } +}