修改保证金水平计算公式,新增侧边栏实训任务页面

pull/1/head
xiaoCJ 2 years ago
parent 2f06263dbb
commit 09b18be07b

@ -1,18 +1,21 @@
package com.sztzjy.forex.trading_trading.controller;
import com.github.pagehelper.PageInfo;
import com.sztzjy.forex.trading_trading.annotation.AnonymousAccess;
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.Member;
import com.sztzjy.forex.trading_trading.entity.Report;
import com.sztzjy.forex.trading_trading.entity.ReportDto;
import com.sztzjy.forex.trading_trading.entity.ReportWithBLOBs;
import com.sztzjy.forex.trading_trading.service.MemberService;
import com.sztzjy.forex.trading_trading.service.ReportService;
import com.sztzjy.forex.trading_trading.util.ResultEntity;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;
@ -32,19 +35,30 @@ public class ReportController {
@ApiOperation("学生端--上传实训报告")
@PostMapping("/uploadReport")
public ResultEntity uploadReport(@RequestParam("file")@RequestPart(name = "file") MultipartFile file,
public ResultEntity uploadReport(@RequestParam("file") @RequestPart(name = "file") MultipartFile file,
@RequestParam String memberId,
@RequestParam String fileName) {
Member member = memberService.selectByPrimaryKey(memberId);
reportService.uploadReport(file, fileName, member);
return new ResultEntity(HttpStatus.OK);
}
@ApiOperation("学生端--提交实训报告")
@PostMapping("/submitReport")
public ResultEntity<String> submitReport(@RequestBody ReportWithBLOBs report) {
return new ResultEntity<>(reportService.submitReport(report));
}
@ApiOperation("学生端--侧边栏实验报告列表")
@GetMapping("/getReportDtos")
public ResultEntity<PageInfo<ReportDto>> getReportDtos(@ApiParam("学号") @RequestParam String studentNumber,
@ApiParam("学校") @RequestParam Integer schoolId,
@ApiParam("查询关键字") @RequestParam (required = false)String keyWord,
@ApiParam("首页页码") @RequestParam Integer index,
@ApiParam("页面条数") @RequestParam Integer size) {
return new ResultEntity<>(reportService.gerReportDtos(studentNumber, schoolId, keyWord, index, size));
}
@ApiOperation("教师端--对实训报告评分")
@PostMapping("review")
@ -58,7 +72,7 @@ public class ReportController {
@AnonymousAccess
@ApiOperation("教师端--实训报告下载")
@GetMapping("download")
public void download(@RequestParam String id, String TOKEN,HttpServletResponse response) {
public void download(@RequestParam String id, String TOKEN, HttpServletResponse response) {
TokenProvider.getJWTUser(TOKEN);
reportService.download(id, response);
}

@ -0,0 +1,26 @@
package com.sztzjy.forex.trading_trading.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ReportDto {
@ApiModelProperty("实验报告文件名")
private String fileName;
@ApiModelProperty("报告成绩")
private Double reportScore;
@ApiModelProperty("实训名称")
private String trainingName;
@ApiModelProperty("实训开始日期")
private Date startTime;
@ApiModelProperty("实训结束日期")
private Date endTime;
// @ApiModelProperty("实验报告ID")
// private String reportID;
}

@ -1,9 +1,11 @@
package com.sztzjy.forex.trading_trading.service;
import com.sztzjy.forex.trading_trading.config.security.JwtUser;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sztzjy.forex.trading_trading.entity.*;
import com.sztzjy.forex.trading_trading.mappers.MemberMapper;
import com.sztzjy.forex.trading_trading.mappers.ReportMapper;
import com.sztzjy.forex.trading_trading.mappers.TrainingMapper;
import com.sztzjy.forex.trading_trading.util.file.IFileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -13,6 +15,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
@Service
@ -27,8 +30,8 @@ public class ReportService {
private TrainingService trainingService;
@Autowired
private IFileUtil fileUtil;
private static final String SERVER_DIRECTORY = "D:\\waihui\\";
@Autowired
private TrainingMapper trainingMapper;
//提交实训任务报告给老师端展示
public String submitReport(ReportWithBLOBs report) {
@ -91,15 +94,15 @@ public class ReportService {
ReportExample reportExample = new ReportExample();
reportExample.createCriteria().andMemberIdEqualTo(member.getMemberId());
List<ReportWithBLOBs> reports = reportsMapper.selectByExampleWithBLOBs(reportExample);
if(reports!=null&&reports.size()>0){
if (reports != null && reports.size() > 0) {
ReportWithBLOBs report = reports.get(0);
if(StringUtils.hasText(report.getFilePath())){
if (StringUtils.hasText(report.getFilePath())) {
fileUtil.remove(report.getFilePath());
}
report.setFilePath(filePath);
report.setFileName(fileName);
reportsMapper.updateByExample(report,reportExample);
}else{
reportsMapper.updateByExample(report, reportExample);
} else {
ReportWithBLOBs report = new ReportWithBLOBs();
report.setFileName(fileName);
report.setFilePath(filePath);
@ -109,6 +112,54 @@ public class ReportService {
}
}
public PageInfo<ReportDto> gerReportDtos(String studentNumber, Integer schoolId, String keyWord, Integer index, Integer size) {
PageHelper.startPage(index, size);
List<ReportDto> reportDtos = new ArrayList<>();
List<ReportDto> reportDtosByKeyWord = new ArrayList<>();
MemberExample memberExample = new MemberExample();
memberExample.createCriteria().andSchoolIdEqualTo(schoolId).andStudentNumberEqualTo(studentNumber);
List<Member> members = memberMapper.selectByExample(memberExample);
for (Member member : members) {
String trainingId = member.getTrainingId();
TrainingExample trainingExample = new TrainingExample();
TrainingExample.Criteria criteria = trainingExample.createCriteria();
criteria.andStatusEqualTo("FINISHED").andTrainingIdEqualTo(trainingId);
List<Training> trainingList1 = trainingMapper.selectByExample(trainingExample);
for (Training training : trainingList1) {
ReportExample reportExample = new ReportExample();
reportExample.createCriteria().andTrainingIdEqualTo(trainingId).andMemberIdEqualTo(member.getMemberId());
List<Report> reports = reportsMapper.selectByExample(reportExample);
ReportDto reportDto = new ReportDto();
if (reports.isEmpty()) {
reportDto.setFileName(null);
}
for (Report report : reports) {
reportDto.setFileName(report.getFileName());
}
Double reportScore = member.getReportScore();
if (keyWord != null && !keyWord.isEmpty()) {
criteria.andTrainingNameLike("%" + keyWord + "%");
List<Training> trainingList = trainingMapper.selectByExample(trainingExample);
for (Training training1 : trainingList) {
reportDto.setTrainingName(training1.getTrainingName());
reportDto.setStartTime(training1.getStartTime());
reportDto.setEndTime(training1.getEndTime());
reportDto.setReportScore(reportScore);
reportDtosByKeyWord.add(reportDto);
}
return new PageInfo<>(reportDtosByKeyWord);
}
reportDto.setTrainingName(training.getTrainingName());
reportDto.setStartTime(training.getStartTime());
reportDto.setEndTime(training.getEndTime());
reportDto.setReportScore(reportScore);
reportDtos.add(reportDto);
}
}
return new PageInfo<>(reportDtos);
}
// // 指定服务器目录
// public String uploadReport(InputStream fileInputStream, String fileName, String memberId,String trainingId) {
@ -184,4 +235,5 @@ public class ReportService {
}
return null;
}
}

@ -74,7 +74,7 @@ public class WainingService {
Double netValue = initialCapital + cumulativeProfitLoss + positionProfitLoss; //净值 = 持仓盈亏 + 累计盈亏 + 期初资金
double marginLevel;
if (marginUsed != null && marginUsed != 0) {
marginLevel = (netValue / marginUsed) * 100; //保证金水平 = 净值/已用保证金 (%)
marginLevel = netValue / marginUsed; //保证金水平 = 净值/已用保证金 (%)
} else {
marginLevel = 0.0; // 或者可以根据你的需求设置一个默认值
}
@ -114,7 +114,7 @@ public class WainingService {
Double netValue = initialCapital + cumulativeProfitLoss + positionProfitLoss; //净值 = 持仓盈亏 + 累计盈亏 + 期初资金
double marginLevel;
if (marginUsed != null && marginUsed != 0) {
marginLevel = (netValue / marginUsed) * 100; //保证金水平 = 净值/已用保证金 (%)
marginLevel = netValue / marginUsed; //保证金水平 = 净值/已用保证金 (%)
} else {
marginLevel = 0.0; // 或者可以根据你的需求设置一个默认值
}

Loading…
Cancel
Save