数据接口测试 新建账号
parent
ad7ea497c4
commit
068c615add
@ -1,3 +1,3 @@
|
||||
pic_path=/Volumes/Lexar/www/pic/
|
||||
pic_recourse_url=http://localhost:8899/pic/
|
||||
pic_recourse_url=/pic/
|
||||
initPwd=tz2022
|
@ -0,0 +1,19 @@
|
||||
package com.tz.platform.competitiion.api;
|
||||
|
||||
import com.tz.platform.common.core.base.Result;
|
||||
import com.tz.platform.competitiion.api.biz.CompetitionIndexBiz;
|
||||
import com.tz.platform.competitiion.api.dto.IndexListCompetitionDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@RestController
|
||||
@RequestMapping(value = "/api/competition")
|
||||
public class CompetitionIndexControll {
|
||||
|
||||
@Autowired
|
||||
private CompetitionIndexBiz competitionIndexBiz;
|
||||
@GetMapping(value = "list/{pageNo}")
|
||||
public Result<IndexListCompetitionDTO> list(@PathVariable("pageNo") Integer pageNo){
|
||||
return competitionIndexBiz.list(pageNo);
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.tz.platform.competitiion.api.biz;
|
||||
|
||||
import com.tz.platform.common.core.base.Result;
|
||||
import com.tz.platform.competitiion.api.dto.IndexListCompetitionDTO;
|
||||
import com.tz.platform.repository.CompetitionDao;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component
|
||||
public class CompetitionIndexBiz {
|
||||
@Autowired
|
||||
private CompetitionDao competitionDao;
|
||||
|
||||
public Result<IndexListCompetitionDTO> list(int pageNo){
|
||||
return Result.error("");
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.tz.platform.competitiion.api.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class IndexCompetitionDTO implements Serializable {
|
||||
private Integer id;
|
||||
private String name;
|
||||
private String sponsor;
|
||||
private Date startTime;
|
||||
private Date endTime;
|
||||
private Date sinUpStartTime;
|
||||
private Date sinUpEndTime;
|
||||
}
|
@ -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 IndexListCompetitionDTO implements Serializable {
|
||||
private List<IndexCompetitionDTO> list;
|
||||
private Integer total;
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package com.tz.platform.competitiion.job;
|
||||
|
||||
import com.tz.platform.competitiion.job.biz.CompetitionJobBiz;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
@Component
|
||||
@Slf4j
|
||||
public class CompetitionJob {
|
||||
|
||||
|
||||
// @Autowired
|
||||
// private RedisTemplate<String,Boolean> redisTemplate;
|
||||
|
||||
@Autowired
|
||||
private CompetitionJobBiz jobBiz;
|
||||
|
||||
@Scheduled(cron = "*/60 * * * * ?")
|
||||
public void processCompetition(){
|
||||
// String jobName = "competitionJob";
|
||||
// Boolean isWorking = redisTemplate.opsForValue().get(jobName);
|
||||
// if(isWorking == null ||isWorking == false){
|
||||
// redisTemplate.opsForValue().set(jobName,true,10*60, TimeUnit.SECONDS);
|
||||
// System.out.println("competition Job");
|
||||
// try {
|
||||
// jobBiz.updateCompetitionStatus();
|
||||
// }catch (Exception ex) {
|
||||
// log.error(jobName,ex.getMessage());
|
||||
// }finally {
|
||||
// redisTemplate.opsForValue().set(jobName,false,10*60, TimeUnit.SECONDS);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package com.tz.platform.competitiion.job.biz;
|
||||
|
||||
import com.tz.platform.entity.Competition;
|
||||
import com.tz.platform.repository.CompetitionDao;
|
||||
import com.tz.platform.repository.CompetitionMemberDao;
|
||||
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 CompetitionJobBiz {
|
||||
|
||||
@Autowired
|
||||
private CompetitionDao competitionDao;
|
||||
|
||||
@Autowired
|
||||
private CompetitionTaskDao taskDao;
|
||||
|
||||
@Autowired
|
||||
private CompetitionMemberDao memberDao;
|
||||
|
||||
/**
|
||||
* 大赛开始状态检测
|
||||
*/
|
||||
public void updateCompetitionStatus(){
|
||||
List<Competition> competitionList = competitionDao.findAllByStatus(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* 大赛数据预热
|
||||
*/
|
||||
public void preHeat(){
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 大赛结束处理
|
||||
*/
|
||||
public void overCompetition(){
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.tz.platform.competitiion.pc;
|
||||
|
||||
import com.tz.platform.common.core.base.Result;
|
||||
import com.tz.platform.competitiion.pc.biz.MemberInfoBiz;
|
||||
import com.tz.platform.competitiion.pc.vo.AddMemberVO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping(value = "/pc/competition/member")
|
||||
public class PCCompetitionMemberContoller {
|
||||
|
||||
@Autowired
|
||||
private MemberInfoBiz memberInfoBiz;
|
||||
|
||||
@PostMapping(value = "add")
|
||||
public Result<String> addMember(@RequestBody AddMemberVO vo){
|
||||
return memberInfoBiz.addMember(vo);
|
||||
}
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
package com.tz.platform.competitiion.pc.biz;
|
||||
|
||||
import com.tz.platform.common.core.base.Result;
|
||||
import com.tz.platform.common.core.bo.MemberInfo;
|
||||
import com.tz.platform.competitiion.pc.vo.AddMemberVO;
|
||||
import com.tz.platform.competitiion.pc.vo.MemberInfoVO;
|
||||
import com.tz.platform.entity.CompetitionMember;
|
||||
import com.tz.platform.entity.CompetitionTeam;
|
||||
import com.tz.platform.feign.user.IFeignUser;
|
||||
import com.tz.platform.repository.CompetitionMemberDao;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Component
|
||||
public class MemberInfoBiz {
|
||||
|
||||
@Autowired
|
||||
private CompetitionMemberDao memberDao;
|
||||
|
||||
|
||||
@Autowired
|
||||
private IFeignUser feignUser;
|
||||
|
||||
public Result<String> delete(MemberInfoVO vo){
|
||||
memberDao.deleteById(vo.getId());
|
||||
return Result.success("success");
|
||||
}
|
||||
|
||||
public Result<String> addMember(AddMemberVO vo){
|
||||
|
||||
if(vo.getIds() == null||vo.getIds().size() == 0){
|
||||
return Result.error("请选择团队成员");
|
||||
}
|
||||
if(vo.getCompetitionId() == null ||vo.getCompetitionId()<=0){
|
||||
return Result.error("大赛信息不能为空");
|
||||
}
|
||||
if(vo.getStageId() == null||vo.getStageId()<=0){
|
||||
return Result.error("阶段信息不能为空");
|
||||
}
|
||||
CompetitionTeam team = new CompetitionTeam();
|
||||
team.setTeamName("无");
|
||||
team.setTeacherName(vo.getTeacher());
|
||||
team.setCompetitionId(vo.getCompetitionId());
|
||||
team.setStageId(vo.getStageId());
|
||||
|
||||
List<MemberInfo> memberInfoList = feignUser.listByIds(vo.getIds());
|
||||
|
||||
List<CompetitionMember> memberList = new ArrayList<>();
|
||||
|
||||
memberInfoList.forEach(m->{
|
||||
CompetitionMember member = new CompetitionMember();
|
||||
member.setCompetitionId(vo.getCompetitionId());
|
||||
member.setName(m.getName());
|
||||
member.setSchool(m.getSchool());
|
||||
team.setSchool(m.getSchool());
|
||||
member.setStudentNo(m.getStudentNo());
|
||||
member.setUserId(m.getId());
|
||||
member.setStageId(vo.getStageId());
|
||||
member.setTeacher(vo.getTeacher());
|
||||
member.setTeamId(0);
|
||||
member.setTeamName("个人赛");
|
||||
memberList.add(member);
|
||||
});
|
||||
|
||||
memberDao.saveAll(memberList);
|
||||
return Result.success("success");
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.tz.platform.competitiion.pc.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AddMemberVO {
|
||||
private Long competitionId;
|
||||
private Integer stageId;
|
||||
private List<Long> ids;
|
||||
private String teacher;
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package com.tz.platform.competitiion.pc.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class MemberInfoVO {
|
||||
private Integer id;
|
||||
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package com.tz.platform.juejing.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class Info {
|
||||
private List<String> appid;
|
||||
private Date create_at;
|
||||
private Date updated_at;
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.tz.platform.juejing.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ListCashInfo {
|
||||
private List<CashInfo> data;
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package com.tz.platform.pc;
|
||||
|
||||
import com.tz.platform.common.core.base.BaseController;
|
||||
import com.tz.platform.common.core.base.Result;
|
||||
import com.tz.platform.pc.biz.QuestionImportBiz;
|
||||
import com.tz.platform.pc.dto.ListQuestionImportDTO;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
@RestController
|
||||
@RequestMapping(value = "/api/question/")
|
||||
public class PCQuestionImportController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private QuestionImportBiz importBiz;
|
||||
|
||||
@PostMapping(value = "importExcel")
|
||||
public Result<ListQuestionImportDTO> importExcell(MultipartFile file){
|
||||
return importBiz.importExcel(file,getUserNo());
|
||||
}
|
||||
}
|
@ -0,0 +1,172 @@
|
||||
package com.tz.platform.pc.biz;
|
||||
|
||||
import com.tz.platform.common.core.base.Result;
|
||||
import com.tz.platform.common.core.bo.Answer;
|
||||
import com.tz.platform.common.core.enmus.QuestionTypeEnum;
|
||||
import com.tz.platform.common.core.enmus.UserTypeEnum;
|
||||
import com.tz.platform.common.core.tools.ExcelUtil;
|
||||
import com.tz.platform.entity.Course;
|
||||
import com.tz.platform.entity.Question;
|
||||
import com.tz.platform.feign.IFeignStudentLevel;
|
||||
import com.tz.platform.feign.user.IFeignUser;
|
||||
import com.tz.platform.feign.user.vo.UserVo;
|
||||
import com.tz.platform.feign.vo.StudentLevelVo;
|
||||
import com.tz.platform.pc.dto.ListQuestionImportDTO;
|
||||
import com.tz.platform.pc.dto.QuestionImportDTO;
|
||||
import com.tz.platform.repository.CourseDao;
|
||||
import com.tz.platform.repository.QuestionDao;
|
||||
import org.apache.catalina.User;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
public class QuestionImportBiz {
|
||||
@Autowired
|
||||
private QuestionDao questionDao;
|
||||
|
||||
@Autowired
|
||||
private CourseDao courseDao;
|
||||
|
||||
@Autowired
|
||||
private IFeignUser feignUser;
|
||||
|
||||
@Autowired
|
||||
private IFeignStudentLevel feignStudentLevel;
|
||||
|
||||
public Result<ListQuestionImportDTO> importExcel(MultipartFile file,Long userNo){
|
||||
if(userNo == null ||userNo<=0){
|
||||
return Result.error("无权操作");
|
||||
}
|
||||
UserVo user = feignUser.getByUserNo(userNo);
|
||||
if(user==null||user.getUserType()< UserTypeEnum.TEACHER.getCode()){
|
||||
return Result.error("无权操作");
|
||||
}
|
||||
ListQuestionImportDTO dto = new ListQuestionImportDTO();
|
||||
List<Course> courseList = courseDao.findAll();
|
||||
List<StudentLevelVo> studentLevelList = feignStudentLevel.list();
|
||||
try {
|
||||
ExcelUtil util = new ExcelUtil(file.getInputStream());
|
||||
int lastRowNum = util.getLastRowNum();
|
||||
List<QuestionImportDTO> list = new ArrayList<>();
|
||||
for(int rowNo = 1;rowNo<=lastRowNum;){
|
||||
int lineCount = util.getMergedRegionLineCount(rowNo,1);
|
||||
if(lineCount <=0){
|
||||
return Result.error("格式错误");
|
||||
}
|
||||
QuestionImportDTO subDto = new QuestionImportDTO();
|
||||
String stem = util.getMergedRegionValue(rowNo,0);
|
||||
String questType = util.getMergedRegionValue(rowNo,1);
|
||||
String levelNamme = util.getMergedRegionValue(rowNo,2);
|
||||
String courseName = util.getMergedRegionValue(rowNo,3);
|
||||
String score = util.getMergedRegionValue(rowNo,4);
|
||||
String analysis = util.getMergedRegionValue(rowNo,5);
|
||||
|
||||
subDto.setStem(stem);
|
||||
subDto.setQuestionType(questType);
|
||||
subDto.setCourseName(courseName);
|
||||
try {
|
||||
Course course = courseList.stream().filter(c -> c.getName().contains(courseName)).findFirst().orElse(null);
|
||||
if (course == null) {
|
||||
subDto.setStatus("课程不存在");
|
||||
}
|
||||
subDto.setCourseName(courseName);
|
||||
|
||||
if (StringUtils.isEmpty(stem)) {
|
||||
subDto.setStatus("题干为空");
|
||||
}else{
|
||||
Question temp = questionDao.getByStem(stem);
|
||||
if (temp != null) {
|
||||
subDto.setStatus("题干已存在");
|
||||
}
|
||||
if (course != null && temp == null && StringUtils.hasText(stem)) {
|
||||
Question question = new Question();
|
||||
StudentLevelVo levelVo = studentLevelList.stream().filter(l -> l.getName().contains(levelNamme)).findFirst().orElse(null);
|
||||
|
||||
if (levelVo == null) {
|
||||
question.setLevelId(0);
|
||||
question.setLevelName("通用");
|
||||
} else {
|
||||
question.setLevelId(levelVo.getId());
|
||||
question.setLevelName(levelNamme);
|
||||
}
|
||||
|
||||
question.setStem(stem);
|
||||
question.setUserNo(userNo);
|
||||
question.setCreateTime(new Date());
|
||||
question.setStatus(0);
|
||||
question.setScore(Long.parseLong(score));
|
||||
question.setCreatorId(userNo);
|
||||
question.setCreator(user.getName());
|
||||
question.setLevelName(levelNamme);
|
||||
question.setType(0);
|
||||
question.setAnalysis(analysis);
|
||||
question.setCourseId(course.getId());
|
||||
QuestionTypeEnum qt = null;
|
||||
if(questType.equals(QuestionTypeEnum.SINGLE.getDesc())){
|
||||
qt = QuestionTypeEnum.SINGLE;
|
||||
}else if(questType.equals(QuestionTypeEnum.MULTY.getDesc())){
|
||||
qt = QuestionTypeEnum.MULTY;
|
||||
}else if(questType.equals(QuestionTypeEnum.JUDGE.getDesc())) {
|
||||
qt= QuestionTypeEnum.JUDGE;
|
||||
}
|
||||
if(qt == null){
|
||||
subDto.setStatus("题型未匹配");
|
||||
}else{
|
||||
List<Answer> answerList = new ArrayList<>();
|
||||
List<Integer> answerIds = new ArrayList<>();
|
||||
for(int i = 0 ;i<lineCount;i++){
|
||||
Row row = util.getRow(rowNo +i);
|
||||
String itemStem = util.getCellValue(row.getCell(6));
|
||||
String isAnwser = util.getCellValue(row.getCell(7));
|
||||
if(StringUtils.isEmpty(itemStem)){
|
||||
continue;
|
||||
}
|
||||
Answer answer = new Answer();
|
||||
answer.setId(i+1);
|
||||
answer.setTitle(itemStem);
|
||||
if(isAnwser.contains("是")){
|
||||
answerIds.add(i+1);
|
||||
}
|
||||
answerList.add(answer);
|
||||
}
|
||||
if(answerIds.size() == 0){
|
||||
subDto.setStatus("无答案");
|
||||
}
|
||||
if(answerList.size()==0){
|
||||
subDto.setStatus("无选项");
|
||||
}
|
||||
|
||||
if(answerIds.size()>0&&answerList.size()>0&&qt!=null){
|
||||
question.setQuestionType(qt.getCode());
|
||||
question.setAnswerList(answerList);
|
||||
question.setAnswerId(answerIds);
|
||||
question = questionDao.save(question);
|
||||
subDto.setId(question.getId());
|
||||
subDto.setStatus("成功");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}catch (Exception ex){
|
||||
subDto.setStatus("数据异常");
|
||||
}
|
||||
list.add(subDto);
|
||||
rowNo+=lineCount;
|
||||
}
|
||||
dto.setList(list);
|
||||
} catch (Exception e) {
|
||||
return Result.error("解析失败");
|
||||
}
|
||||
|
||||
return Result.success(dto);
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.tz.platform.pc.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class ListQuestionImportDTO implements Serializable {
|
||||
List<QuestionImportDTO> list;
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.tz.platform.pc.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class QuestionImportDTO {
|
||||
private String stem;
|
||||
private String questionType;
|
||||
private Long id;
|
||||
private String courseName;
|
||||
private String status;
|
||||
}
|
Loading…
Reference in New Issue