考试功能
parent
9eeaf605d7
commit
4a94887b91
@ -0,0 +1,34 @@
|
||||
package com.tz.platform.competitiion.api;
|
||||
|
||||
import com.tz.platform.common.core.base.BaseController;
|
||||
import com.tz.platform.common.core.base.Result;
|
||||
import com.tz.platform.competitiion.api.biz.CompetitionMemberBiz;
|
||||
import com.tz.platform.competitiion.api.dto.CompetitionMemberDTO;
|
||||
import com.tz.platform.competitiion.api.dto.ExamPaperDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping(value = "/auth/competition/member")
|
||||
public class ApiCompetitionMemberController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private CompetitionMemberBiz memberBiz;
|
||||
|
||||
|
||||
@GetMapping(value = "paper")
|
||||
public Result<ExamPaperDTO> getPaper(@RequestParam("compId")Long compId, @RequestParam("stageId") Integer stageId){
|
||||
return memberBiz.getExamPaper(compId,stageId,getUserNo());
|
||||
}
|
||||
|
||||
|
||||
@GetMapping(value = "get")
|
||||
public Result<CompetitionMemberDTO> get(@RequestParam("compId") Long compId,@RequestParam("stageId") Integer stageId){
|
||||
return memberBiz.get(compId,stageId,getUserNo());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.tz.platform.competitiion.api;
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping(value = "/api/competition/ranking")
|
||||
public class ApiCompetitionRankingController {
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.tz.platform.competitiion.api;
|
||||
|
||||
import com.tz.platform.common.core.base.Result;
|
||||
import com.tz.platform.competitiion.api.biz.CompetitionTaskBiz;
|
||||
import com.tz.platform.competitiion.api.dto.CompetitionTaskDTO;
|
||||
import com.tz.platform.competitiion.api.dto.ListCompetitionTaskDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value = "auth/competition/task")
|
||||
public class ApiCompetitionTaskController {
|
||||
|
||||
@Autowired
|
||||
private CompetitionTaskBiz taskBiz;
|
||||
|
||||
@RequestMapping(value = "list")
|
||||
public Result<ListCompetitionTaskDTO> list(@RequestParam("compId") Long compId){
|
||||
return taskBiz.list(compId);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "get")
|
||||
public Result<CompetitionTaskDTO> get(@RequestParam("compId") Long compId, @RequestParam("stageId") Integer stageId){
|
||||
return taskBiz.get(compId,stageId);
|
||||
}
|
||||
}
|
@ -0,0 +1,108 @@
|
||||
package com.tz.platform.competitiion.api.biz;
|
||||
|
||||
import com.tz.platform.common.core.base.Result;
|
||||
import com.tz.platform.common.core.tools.BeanUtils;
|
||||
import com.tz.platform.competitiion.api.dto.CompetitionMemberDTO;
|
||||
import com.tz.platform.competitiion.api.dto.ExamPaperDTO;
|
||||
import com.tz.platform.entity.CompetitionMember;
|
||||
import com.tz.platform.entity.CompetitionTask;
|
||||
import com.tz.platform.entity.ExamPaper;
|
||||
import com.tz.platform.entity.JueJinToken;
|
||||
import com.tz.platform.juejin.JueJinApi;
|
||||
import com.tz.platform.juejin.bo.AccountInfo;
|
||||
import com.tz.platform.repository.CompetitionMemberDao;
|
||||
import com.tz.platform.repository.CompetitionTaskDao;
|
||||
import com.tz.platform.repository.ExamPaperDao;
|
||||
import com.tz.platform.repository.JueJinTokenDao;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Component
|
||||
public class CompetitionMemberBiz {
|
||||
|
||||
@Autowired
|
||||
private CompetitionMemberDao memberDao;
|
||||
|
||||
@Autowired
|
||||
private CompetitionTaskDao competitionTaskDao;
|
||||
|
||||
@Autowired
|
||||
private JueJinTokenDao jueJinTokenDao;
|
||||
|
||||
@Autowired
|
||||
private ExamPaperDao examPaperDao;
|
||||
|
||||
@Autowired
|
||||
private RedisTemplate<String,Object> template;
|
||||
|
||||
|
||||
public Result<ExamPaperDTO> getExamPaper(Long compId, Integer stageId,Long userNo){
|
||||
ExamPaper paper = examPaperDao.getByUserNoAndCompIdAndStageId(userNo,compId,stageId);
|
||||
if(paper!= null){
|
||||
return Result.success(BeanUtils.copyProperties(paper,ExamPaperDTO.class));
|
||||
}
|
||||
return Result.error("failed");
|
||||
}
|
||||
|
||||
public Result<CompetitionMemberDTO> get(Long compId,Integer stageId,Long userNo){
|
||||
CompetitionMember member = memberDao.getByCompetitionIdAndStageIdAndUserId(compId,stageId,userNo);
|
||||
if(member == null){
|
||||
return Result.error("未参赛");
|
||||
}
|
||||
if(StringUtils.isEmpty(member.getAccountId())){
|
||||
return initSystem(compId,stageId,userNo);
|
||||
}
|
||||
CompetitionMemberDTO dto= BeanUtils.copyProperties(member,CompetitionMemberDTO.class);
|
||||
return Result.success(dto);
|
||||
}
|
||||
|
||||
private Result<CompetitionMemberDTO> initSystem(Long compId,Integer stageId,Long userNo){
|
||||
CompetitionMember member = memberDao.getByCompetitionIdAndStageIdAndUserId(compId,stageId,userNo);
|
||||
if(member == null){
|
||||
return Result.error("未报名参赛");
|
||||
}
|
||||
if(StringUtils.hasText(member.getAccountId())){
|
||||
return Result.success(BeanUtils.copyProperties(member,CompetitionMemberDTO.class));
|
||||
}
|
||||
|
||||
String competitionTaskKey = "competition_task_"+compId+"_"+stageId;
|
||||
Object taskObj = template.opsForValue().get(competitionTaskKey);
|
||||
CompetitionTask competitionTask = null;
|
||||
if(taskObj == null){
|
||||
competitionTask = competitionTaskDao.getByCompetitionIdAndStageId(compId,stageId);
|
||||
template.opsForValue().set(competitionTaskKey,competitionTask,5, TimeUnit.MINUTES);
|
||||
}else{
|
||||
competitionTask = (CompetitionTask) taskObj;
|
||||
}
|
||||
|
||||
//未开赛后不生成交易系统权限
|
||||
if(competitionTask.getOperationStartTime().getTime()> System.currentTimeMillis()){
|
||||
return Result.success(BeanUtils.copyProperties(member,CompetitionMemberDTO.class));
|
||||
}
|
||||
|
||||
String juejinTokenKey = "juejin_token";
|
||||
JueJinToken jueJinToken = null;
|
||||
Object jtObj = template.opsForValue().get(juejinTokenKey);
|
||||
if(jtObj == null){
|
||||
jueJinToken =jueJinTokenDao.getById(1);
|
||||
template.opsForValue().set(juejinTokenKey,jueJinToken,1, TimeUnit.DAYS);
|
||||
}else{
|
||||
jueJinToken = (JueJinToken) jtObj;
|
||||
}
|
||||
|
||||
JueJinApi jueJinApi = new JueJinApi(jueJinToken.getToken());
|
||||
Integer tradeType = 1;
|
||||
if(competitionTask.getTradeType() != 1){
|
||||
tradeType =4;
|
||||
}
|
||||
AccountInfo accountInfo = jueJinApi.createAccount(member.getName(),competitionTask.getInitCapital(),tradeType);
|
||||
member.setAccountId(accountInfo.getAccount_id());
|
||||
member.setAccountPwd(jueJinToken.getToken());
|
||||
memberDao.save(member);
|
||||
return Result.success( BeanUtils.copyProperties(member,CompetitionMemberDTO.class));
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package com.tz.platform.competitiion.api.biz;
|
||||
|
||||
import com.tz.platform.common.core.base.Result;
|
||||
import com.tz.platform.common.core.tools.BeanUtils;
|
||||
import com.tz.platform.competitiion.api.dto.CompetitionTaskDTO;
|
||||
import com.tz.platform.competitiion.api.dto.ListCompetitionTaskDTO;
|
||||
import com.tz.platform.entity.CompetitionTask;
|
||||
import com.tz.platform.repository.CompetitionTaskDao;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class CompetitionTaskBiz {
|
||||
@Autowired
|
||||
private CompetitionTaskDao taskDao;
|
||||
|
||||
public Result<ListCompetitionTaskDTO> list(Long compId){
|
||||
List<CompetitionTask> taskList = taskDao.findAllByCompetitionId(compId);
|
||||
if(taskList == null || taskList.size() == 0){
|
||||
return Result.error("无赛段数据");
|
||||
}
|
||||
List<CompetitionTaskDTO> rs =BeanUtils.copyProperties(taskList, CompetitionTaskDTO.class);
|
||||
ListCompetitionTaskDTO dto = new ListCompetitionTaskDTO();
|
||||
dto.setList(rs);
|
||||
return Result.success(dto);
|
||||
}
|
||||
|
||||
public Result<CompetitionTaskDTO> get(Long compId,Integer stageId){
|
||||
CompetitionTask tak = taskDao.getByCompetitionIdAndStageId(compId,stageId);
|
||||
if(tak==null){
|
||||
return Result.error("赛段数据获取失败");
|
||||
}
|
||||
return Result.success(BeanUtils.copyProperties(tak,CompetitionTaskDTO.class));
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package com.tz.platform.competitiion.api.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class CompetitionMemberDTO implements Serializable {
|
||||
private Integer id;
|
||||
private Long competitionId;
|
||||
private Long userId;
|
||||
private Integer stageId;
|
||||
private String studentNo;
|
||||
private String name;
|
||||
private String school;
|
||||
private Integer teamId;
|
||||
private String teamName;
|
||||
private String accountId;
|
||||
private String accountPwd;
|
||||
private String teacher;
|
||||
private Double examScore;
|
||||
private Double financeScore;
|
||||
private Double combineScore;
|
||||
private Integer personalRank;
|
||||
private Integer teamRank;
|
||||
private Date examStartTime;
|
||||
private Date examEndTime;
|
||||
private Double examCostTime;
|
||||
private Integer levelId;
|
||||
private Double initFounds;
|
||||
private Double totalFounds;
|
||||
private Double availableFounds;
|
||||
private Double marketValue;
|
||||
private Double currentRatio;
|
||||
private Double highestRatio;
|
||||
private Double overRatio;
|
||||
private Double commission;
|
||||
private Double totalRatio;
|
||||
private Double baseRatio;
|
||||
private Double yearRatio;
|
||||
private Double maxDrawDown;
|
||||
private String kammaRatio;
|
||||
private String sharpRatio;
|
||||
private Integer openCount;
|
||||
private Integer closeCount;
|
||||
private Double winRatio;
|
||||
private Integer reportId;
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.tz.platform.competitiion.api.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class CompetitionTaskDTO implements Serializable {
|
||||
private Integer id;
|
||||
private Long competitionId;
|
||||
private Integer stageId;
|
||||
private Date operationStartTime;
|
||||
private Date operationEndTime;
|
||||
private Date examStartTime;
|
||||
private Date examEndTime;
|
||||
private Integer tradeType;
|
||||
private Long initCapital;
|
||||
private String operationLogo;
|
||||
private String examLogo;
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package com.tz.platform.competitiion.api.dto;
|
||||
|
||||
import com.tz.platform.competitiion.api.vo.SubmitQuestionVO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ExamPaperDTO implements Serializable {
|
||||
private String id;
|
||||
private Long userNo;
|
||||
private Long compId;
|
||||
private Integer stageId;
|
||||
private List<SubmitQuestionVO> qList;
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.tz.platform.competitiion.api.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ListCompetitionTaskDTO implements Serializable {
|
||||
private List<CompetitionTaskDTO> list;
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.tz.platform.competitiion.api.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ListGroupDTO implements Serializable {
|
||||
List<GroupDTO> list;
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.tz.platform.competitiion.api.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ListRankingDTO implements Serializable {
|
||||
List<RankingDTO> list;
|
||||
Integer total;
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
package com.tz.platform.competitiion.api.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RankingDTO {
|
||||
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.tz.platform.user.auth.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class EditUserVO {
|
||||
private Long userNo;
|
||||
private String mobile;
|
||||
private String email;
|
||||
private String password;
|
||||
}
|
Loading…
Reference in New Issue