教师端新增实训教案

pull/1/head
陈沅 2 years ago
parent 379a03f7e1
commit 44fdd9ba13

@ -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<PageInfo<TrainingLessonPlan>> 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));
}
}

@ -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 {
}

@ -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.

@ -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<TrainingLessonPlan> trainingLessonPlans = trainingLessonPlanMapper.selectByExample(example);
if (trainingLessonPlans == null || trainingLessonPlans.size() == 0) {
return null;
}
return trainingLessonPlans.get(0);
}
public PageInfo<TrainingLessonPlan> 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);
}
}
Loading…
Cancel
Save