教师端实训操作。代码调整
parent
860680b6be
commit
1dece8a55a
@ -0,0 +1,85 @@
|
||||
package com.sztzjy.forex.trading_trading.controller;
|
||||
|
||||
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.sztzjy.forex.trading_trading.config.security.JwtUser;
|
||||
import com.sztzjy.forex.trading_trading.config.security.TokenProvider;
|
||||
import com.sztzjy.forex.trading_trading.dto.TrainingBO;
|
||||
import com.sztzjy.forex.trading_trading.entity.Training;
|
||||
import com.sztzjy.forex.trading_trading.service.TrainingService;
|
||||
import com.sztzjy.forex.trading_trading.util.ResultEntity;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiParam;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.w3c.dom.stylesheets.LinkStyle;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Api(tags = "实训管理")
|
||||
@RestController
|
||||
@RequestMapping("api/training")
|
||||
@RequiredArgsConstructor
|
||||
public class TrainingController {
|
||||
|
||||
TrainingService trainingService;
|
||||
HttpServletRequest request;
|
||||
|
||||
|
||||
@ApiOperation("教师端----新增一条实训记录")
|
||||
@PostMapping("create")
|
||||
public ResultEntity create(@RequestBody TrainingBO bo) {
|
||||
JwtUser currentUser = TokenProvider.getJWTUser(request);
|
||||
trainingService.create(bo, currentUser);
|
||||
return new ResultEntity(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("教师端----删除一条实训记录")
|
||||
@PostMapping("deleteById")
|
||||
public ResultEntity deleteById(@ApiParam("实训记录id") @RequestParam Integer trainingId) {
|
||||
trainingService.delete(trainingId);
|
||||
return new ResultEntity(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@ApiOperation("教师端----修改一条实训记录")
|
||||
@PostMapping("update")
|
||||
public ResultEntity update(@ApiParam("实训记录id") @RequestParam Integer trainingId,
|
||||
@ApiParam("实训记录名字") @RequestParam String trainingName) {
|
||||
|
||||
//TODO 暂时只修改实训名字 待后续需求
|
||||
trainingService.update(trainingId, trainingName);
|
||||
return new ResultEntity(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("教师端----根据实训记录id查询实训记录")
|
||||
@GetMapping("training/{id}")
|
||||
public ResultEntity<Training> get(@ApiParam("实训记录id")
|
||||
@PathVariable Integer id) {
|
||||
//TODO 后续还有根据实训id查看排行榜等需求待实现
|
||||
return new ResultEntity<Training>(HttpStatus.OK, trainingService.findById(id));
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("教师端----根据条件分页获取实训记录数据")
|
||||
@GetMapping("findByConditions")
|
||||
public ResultEntity<PageInfo<Training>> findByConditions(@ApiParam("页码") Integer index,
|
||||
@ApiParam("页量") Integer size) {
|
||||
//TODO 待确认需过滤参数
|
||||
return new ResultEntity<PageInfo<Training>>(HttpStatus.OK, trainingService.pagedListTraining(index, size));
|
||||
}
|
||||
|
||||
@ApiOperation("获取实训下拉框列表")
|
||||
@GetMapping("findTrainingNameList")
|
||||
public ResultEntity<List<Map<String,Object>>> findTrainingNameList() {
|
||||
JwtUser currentUser = TokenProvider.getJWTUser(request);
|
||||
return new ResultEntity<List<Map<String,Object>>>(HttpStatus.OK, trainingService.findTrainingNameList(currentUser));
|
||||
}
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package com.sztzjy.forex.trading_trading.dto;
|
||||
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.annotation.Transient;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@Getter
|
||||
@Setter
|
||||
@ApiModel("创建实训入参")
|
||||
public class TrainingBO {
|
||||
|
||||
|
||||
@ApiModelProperty("实训开始时间")
|
||||
private Date startTime;
|
||||
|
||||
@ApiModelProperty("实训结束时间")
|
||||
private Date endTime;
|
||||
|
||||
@ApiModelProperty("创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty("创建学校")
|
||||
private String createSchool;
|
||||
|
||||
@ApiModelProperty("实训名称")
|
||||
private String trainingName;
|
||||
@ApiModelProperty("参加实训人数")
|
||||
@JsonIgnore
|
||||
private Integer peopleCount;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,83 @@
|
||||
package com.sztzjy.forex.trading_trading.service;
|
||||
|
||||
import com.github.pagehelper.Page;
|
||||
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.dto.TrainingBO;
|
||||
import com.sztzjy.forex.trading_trading.entity.Training;
|
||||
import com.sztzjy.forex.trading_trading.entity.TrainingExample;
|
||||
import com.sztzjy.forex.trading_trading.mappers.TrainingMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Service
|
||||
public class TrainingService {
|
||||
|
||||
@Autowired
|
||||
private TrainingMapper trainingMapper;
|
||||
|
||||
|
||||
public void create(TrainingBO bo, JwtUser currentUser) {
|
||||
//TODO 待完成通过学校id或者班级id到智云平台获取学生信息并将参与实训学生信息添加到member表中
|
||||
if (checkTrainingName(bo.getTrainingName(), null)) {
|
||||
throw new RuntimeException("实训名称已存在");
|
||||
}
|
||||
Training training = Training.buildTraining(bo, currentUser);
|
||||
trainingMapper.insertSelective(training);
|
||||
}
|
||||
|
||||
|
||||
public Training findById(Integer id) {
|
||||
return trainingMapper.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
public void delete(Integer id) {
|
||||
//TODO 删除实训还要删除member表中的trainingId相关数据
|
||||
trainingMapper.deleteByPrimaryKey(id);
|
||||
}
|
||||
|
||||
public Training update(Integer id, String name) {
|
||||
Training training = findById(id);
|
||||
Assert.isTrue(StringUtils.hasText(name), "实训名称不能为空");
|
||||
Assert.notNull(training, "该实训不存在");
|
||||
Assert.isTrue(!training.getTrainingName().equals(name), "实训名称未发生变化");
|
||||
if (checkTrainingName(name, id)) {
|
||||
throw new RuntimeException("实训名称已存在");
|
||||
}
|
||||
training.setTrainingName(name);
|
||||
trainingMapper.updateByPrimaryKeySelective(training);
|
||||
return training;
|
||||
}
|
||||
|
||||
|
||||
private Boolean checkTrainingName(String name, Integer id) {
|
||||
TrainingExample example = new TrainingExample();
|
||||
example.createCriteria().andTrainingNameEqualTo(name);
|
||||
if (id != null) {
|
||||
example.createCriteria().andTrainingIdNotEqualTo(id);
|
||||
}
|
||||
List<Training> training = trainingMapper.selectByExample(example);
|
||||
return training.size() > 0;
|
||||
}
|
||||
|
||||
|
||||
public PageInfo<Training> pagedListTraining(int pageNo, int pageSize) {
|
||||
//TODO 待确定过滤参数
|
||||
TrainingExample example = new TrainingExample();
|
||||
PageHelper.startPage(pageNo, pageSize);
|
||||
return new PageInfo<>(trainingMapper.selectByExample(example));
|
||||
}
|
||||
|
||||
|
||||
public List<Map<String, Object>> findTrainingNameList(JwtUser user) {
|
||||
return trainingMapper.selectTrainingNameList(user.getSchoolId());
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue