|
|
|
@ -1,26 +1,27 @@
|
|
|
|
|
package com.sztzjy.forex.trading_trading.service;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
|
|
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.Member;
|
|
|
|
|
import com.sztzjy.forex.trading_trading.entity.MemberExample;
|
|
|
|
|
import com.sztzjy.forex.trading_trading.entity.Training;
|
|
|
|
|
import com.sztzjy.forex.trading_trading.entity.TrainingExample;
|
|
|
|
|
import com.sztzjy.forex.trading_trading.mappers.MemberMapper;
|
|
|
|
|
import com.sztzjy.forex.trading_trading.mappers.TrainingMapper;
|
|
|
|
|
import com.sztzjy.forex.trading_trading.util.TzApi;
|
|
|
|
|
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.time.LocalDateTime;
|
|
|
|
|
import java.time.ZoneId;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
public class TrainingService {
|
|
|
|
@ -28,6 +29,9 @@ public class TrainingService {
|
|
|
|
|
@Autowired
|
|
|
|
|
private TrainingMapper trainingMapper;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private MemberMapper memberMapper;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Training create(TrainingBO bo, JwtUser currentUser) {
|
|
|
|
|
//TODO 待完成通过学校id或者班级id到智云平台获取学生信息并将参与实训学生信息添加到member表中
|
|
|
|
@ -57,11 +61,11 @@ public class TrainingService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Training findById(Integer id) {
|
|
|
|
|
public Training findById(String id) {
|
|
|
|
|
return trainingMapper.selectByPrimaryKey(id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void delete(Integer id) {
|
|
|
|
|
public void delete(String id) {
|
|
|
|
|
//TODO 删除实训还要删除member表中的trainingId相关数据
|
|
|
|
|
trainingMapper.deleteByPrimaryKey(id);
|
|
|
|
|
}
|
|
|
|
@ -70,7 +74,7 @@ public class TrainingService {
|
|
|
|
|
trainingMapper.updateByPrimaryKey(training);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Training update(Integer id, String name) {
|
|
|
|
|
public Training update(String id, String name) {
|
|
|
|
|
Training training = findById(id);
|
|
|
|
|
Assert.isTrue(StringUtils.hasText(name), "实训名称不能为空");
|
|
|
|
|
Assert.notNull(training, "该实训不存在");
|
|
|
|
@ -84,7 +88,7 @@ public class TrainingService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private Boolean checkTrainingName(String name, Integer id) {
|
|
|
|
|
private Boolean checkTrainingName(String name, String id) {
|
|
|
|
|
TrainingExample example = new TrainingExample();
|
|
|
|
|
example.createCriteria().andTrainingNameEqualTo(name);
|
|
|
|
|
if (id != null) {
|
|
|
|
@ -107,4 +111,43 @@ public class TrainingService {
|
|
|
|
|
return trainingMapper.selectTrainingNameList(user.getSchoolId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 我的任务列表
|
|
|
|
|
public PageInfo<Training> findTrainingList(Integer index,Integer size,Integer schoolId,String username) {
|
|
|
|
|
PageHelper.startPage(index, size);
|
|
|
|
|
MemberExample memberExample = new MemberExample();
|
|
|
|
|
MemberExample.Criteria criteria = memberExample.createCriteria();
|
|
|
|
|
if (schoolId != null) {
|
|
|
|
|
criteria.andSchoolIdEqualTo(schoolId);
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.hasText(username)) {
|
|
|
|
|
criteria.andStudentNumberEqualTo(username);
|
|
|
|
|
}
|
|
|
|
|
List<Member> members = memberMapper.selectByExample(memberExample);
|
|
|
|
|
List<Training> trainingList = new ArrayList<>();
|
|
|
|
|
if (!members.isEmpty()) {
|
|
|
|
|
for (Member member : members) {
|
|
|
|
|
String trainingId = member.getTrainingId();
|
|
|
|
|
Training training = trainingMapper.selectByPrimaryKey(trainingId);
|
|
|
|
|
// 假设startTime和endTime为提供的时间参数
|
|
|
|
|
Date startTime = training.getStartTime();
|
|
|
|
|
Date endTime = training.getEndTime();
|
|
|
|
|
// 获取当前时间
|
|
|
|
|
LocalDateTime currentTime = LocalDateTime.now();
|
|
|
|
|
// 将 Instant 对象转换为 LocalDateTime 对象(默认使用系统默认时区)
|
|
|
|
|
LocalDateTime startDateTime = LocalDateTime.ofInstant(startTime.toInstant(), ZoneId.systemDefault());
|
|
|
|
|
LocalDateTime endDateTime = LocalDateTime.ofInstant(endTime.toInstant(), ZoneId.systemDefault());
|
|
|
|
|
// 比较当前时间与startTime和endTime,设置状态字段status
|
|
|
|
|
if (currentTime.isBefore(startDateTime)) {
|
|
|
|
|
training.setStatus("0"); // 未开始
|
|
|
|
|
} else if (currentTime.isAfter(endDateTime)) {
|
|
|
|
|
training.setStatus("2"); // 已结束
|
|
|
|
|
} else {
|
|
|
|
|
training.setStatus("1");// 进行中
|
|
|
|
|
}
|
|
|
|
|
trainingList.add(training);
|
|
|
|
|
}
|
|
|
|
|
return new PageInfo<>(trainingList);
|
|
|
|
|
}
|
|
|
|
|
return new PageInfo<>();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|