参赛团队批量导入

sale
tianea 3 years ago
parent 53fd3bf6b9
commit 62f146515a

@ -101,6 +101,12 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <artifactId>spring-boot-starter-web</artifactId>
</dependency> </dependency>
<dependency>
<groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId>
<version>2.2.3</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>

@ -1,16 +1,23 @@
package com.tz.platform.common.core.base; package com.tz.platform.common.core.base;
import com.auth0.jwt.interfaces.DecodedJWT;
import com.tz.platform.common.core.tools.JSUtil; import com.tz.platform.common.core.tools.JSUtil;
import com.tz.platform.common.core.tools.JWTUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.ModelMap; import org.springframework.ui.ModelMap;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.ModelAttribute;
import javax.persistence.MappedSuperclass;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
@MappedSuperclass
public class BaseController extends Base { public class BaseController extends Base {
public static final String TEXT_UTF8 = "text/html;charset=UTF-8"; public static final String TEXT_UTF8 = "text/html;charset=UTF-8";
public static final String JSON_UTF8 = "application/json;charset=UTF-8"; public static final String JSON_UTF8 = "application/json;charset=UTF-8";
@ -22,6 +29,9 @@ public class BaseController extends Base {
public static final boolean CLOSE = true; public static final boolean CLOSE = true;
public static final boolean OPEN = false; public static final boolean OPEN = false;
@Autowired
private HttpServletRequest request;
@ModelAttribute @ModelAttribute
public void enums(ModelMap modelMap) { public void enums(ModelMap modelMap) {
@ -38,6 +48,20 @@ public class BaseController extends Base {
return new StringBuffer("redirect:").append(MessageFormat.format(format, arguments)).toString(); return new StringBuffer("redirect:").append(MessageFormat.format(format, arguments)).toString();
} }
public Long getUserNo(){
String token = request.getHeader("Tz-Token");
if(StringUtils.isEmpty(token)){
throw new BaseException("没有权限");
}
try {
DecodedJWT d = JWTUtil.verify(token);
return JWTUtil.getUserNo(d);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
throw new BaseException("权限认证失败");
}
}
public static String getString(HttpServletRequest request) { public static String getString(HttpServletRequest request) {
DataInputStream in = null; DataInputStream in = null;
try { try {

@ -0,0 +1,11 @@
package com.tz.platform.common.core.bo;
import lombok.Data;
@Data
public class MemberImport {
private Long createId;
private String studentNo;
private String name;
private String school;
}

@ -12,6 +12,7 @@ import java.awt.Color;
import java.io.*; import java.io.*;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
@ -22,9 +23,10 @@ import java.util.regex.Pattern;
public class ExcelUtil { public class ExcelUtil {
private String templatePath ; private String templatePath ;
private String outPath; private String outPath;
Pattern pattern = Pattern.compile("([A-Z]+)(\\d+)");
private FileInputStream is; private FileInputStream is;
private XSSFWorkbook excel ; private XSSFWorkbook excel;
//获取第一个sheet //获取第一个sheet
private XSSFSheet sheet0 ; private XSSFSheet sheet0 ;
@ -174,7 +176,7 @@ public class ExcelUtil {
} }
public Cell get(String location){ public Cell get(String location){
Pattern pattern = Pattern.compile("([A-Z]+)(\\d+)");
Matcher matcher = pattern.matcher(location.toUpperCase()); Matcher matcher = pattern.matcher(location.toUpperCase());
if(matcher.matches()){ if(matcher.matches()){
String y = matcher.group(1); String y = matcher.group(1);
@ -183,7 +185,6 @@ public class ExcelUtil {
int colNum = covertToYIndex(y); int colNum = covertToYIndex(y);
Row row = getRow(rowNum); Row row = getRow(rowNum);
return getCell(row,colNum); return getCell(row,colNum);
} }
return null; return null;
} }
@ -321,25 +322,21 @@ public class ExcelUtil {
if(cell == null) {return "";} if(cell == null) {return "";}
if(cell.getCellType() == Cell.CELL_TYPE_STRING){ if(cell.getCellTypeEnum() == CellType.STRING){
return cell.getStringCellValue(); return cell.getStringCellValue();
}else if(cell.getCellTypeEnum() ==CellType.BOOLEAN){
}else if(cell.getCellType() == Cell.CELL_TYPE_BOOLEAN){
return String.valueOf(cell.getBooleanCellValue()); return String.valueOf(cell.getBooleanCellValue());
}else if(cell.getCellTypeEnum() ==CellType.FORMULA){
}else if(cell.getCellType() == Cell.CELL_TYPE_FORMULA){
return cell.getCellFormula() ; return cell.getCellFormula() ;
}else if(cell.getCellTypeEnum() == CellType.NUMERIC){
}else if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){ if("General".equals(cell.getCellStyle().getDataFormatString())){
BigDecimal bigDecimal = new BigDecimal(cell.getNumericCellValue());
return bigDecimal.toString();
}else{
String dateTime = getDateTime(cell); String dateTime = getDateTime(cell);
if(StringUtils.isEmpty(dateTime)){
return String.valueOf(cell.getNumericCellValue());
}
return dateTime; return dateTime;
} }
}
return ""; return "";
} }
@ -428,10 +425,8 @@ public class ExcelUtil {
if(pv!=null&&pv.length>0){ if(pv!=null&&pv.length>0){
this.parserValue = pv[0]; this.parserValue = pv[0];
} }
} }
/** /**
* *
* @return * @return
@ -473,4 +468,29 @@ public class ExcelUtil {
public interface ParserValue{ public interface ParserValue{
String parser(Object object); String parser(Object object);
} }
public static void main(String[] args) {
File file = new File("/Users/tianchengjun/Desktop/teamTemplate.xlsx");
try {
ExcelUtil util =new ExcelUtil(new FileInputStream(file));
int rowNum = util.getLastRowNum();
for(int r = 2;r <=rowNum;r++){
Row row = util.getRow(r);
int start = row.getFirstCellNum();
int end = row.getLastCellNum();
for(int i = start;i<end;i++){
Cell cell = row.getCell(i);
System.out.println(cell.getCellTypeEnum().name());
String v = util.getCellValue(cell);
System.out.println(v);
if(cell.getCellTypeEnum() == CellType.NUMERIC){
System.out.println(cell.getCellStyle().getDataFormatString());
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
} }

@ -0,0 +1,26 @@
package com.tz.platform.competitiion.pc;
import com.tz.platform.common.core.base.BaseController;
import com.tz.platform.common.core.base.Result;
import com.tz.platform.competitiion.pc.biz.TeamTemplateImportBiz;
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/competition/upload")
public class CompetitionMemberController extends BaseController {
@Autowired
private TeamTemplateImportBiz biz;
@PostMapping("excel")
public Result<String> uploadExcel(MultipartFile file,Long competitionId,Integer stageId){
long userNo = getUserNo();
System.out.println(userNo);
System.out.println(file.getOriginalFilename());
return biz.excelImport(file,userNo,competitionId,stageId);
}
}

@ -4,9 +4,11 @@ import com.tz.platform.common.core.base.Result;
import com.tz.platform.competitiion.pc.biz.PCTaskBiz; import com.tz.platform.competitiion.pc.biz.PCTaskBiz;
import com.tz.platform.competitiion.pc.dto.ListTaskDTO; import com.tz.platform.competitiion.pc.dto.ListTaskDTO;
import com.tz.platform.competitiion.pc.dto.TaskDTO; import com.tz.platform.competitiion.pc.dto.TaskDTO;
import com.tz.platform.competitiion.pc.vo.ListTaskVO;
import com.tz.platform.competitiion.pc.vo.TaskVO; import com.tz.platform.competitiion.pc.vo.TaskVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -18,22 +20,18 @@ public class CompetitionTaskController {
private PCTaskBiz biz; private PCTaskBiz biz;
@PostMapping(value = "add") @PostMapping(value = "add")
public Result<Integer> add(TaskVO vo){ public Result<ListTaskDTO> add(@RequestBody ListTaskVO vo){
return biz.save(vo); return biz.save(vo);
} }
@PostMapping(value = "update")
public Result<Integer> update(TaskVO vo){
return biz.save(vo);
}
@PostMapping(value = "list") @PostMapping(value = "list")
public Result<ListTaskDTO> list(TaskVO vo){ public Result<ListTaskDTO> list(@RequestBody TaskVO vo){
return biz.list(vo); return biz.list(vo);
} }
@PostMapping(value = "get") @PostMapping(value = "get")
public Result<TaskDTO> get(TaskVO vo){ public Result<TaskDTO> get(@RequestBody TaskVO vo){
return biz.get(vo); return biz.get(vo);
} }
} }

@ -3,13 +3,16 @@ package com.tz.platform.competitiion.pc.biz;
import com.tz.platform.common.core.base.Result; import com.tz.platform.common.core.base.Result;
import com.tz.platform.competitiion.pc.dto.ListTaskDTO; import com.tz.platform.competitiion.pc.dto.ListTaskDTO;
import com.tz.platform.competitiion.pc.dto.TaskDTO; import com.tz.platform.competitiion.pc.dto.TaskDTO;
import com.tz.platform.competitiion.pc.vo.ListTaskVO;
import com.tz.platform.competitiion.pc.vo.TaskVO; import com.tz.platform.competitiion.pc.vo.TaskVO;
import com.tz.platform.entity.CompetitionTask; import com.tz.platform.entity.CompetitionTask;
import com.tz.platform.repository.CompetitionTaskDao; import com.tz.platform.repository.CompetitionTaskDao;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List; import java.util.List;
@Component @Component
@ -17,7 +20,12 @@ public class PCTaskBiz {
@Autowired @Autowired
private CompetitionTaskDao taskDao; private CompetitionTaskDao taskDao;
public Result<Integer> save(TaskVO vo){ @Transactional
public Result<ListTaskDTO> save(ListTaskVO listTaskVO){
ListTaskDTO dto = new ListTaskDTO();
List<CompetitionTask> taskList =new ArrayList<>();
for(int i=0;i<listTaskVO.getList().size();i++){
TaskVO vo = listTaskVO.getList().get(i);
if(vo.getCompetitionId()==null|| vo.getCompetitionId() <=0){ if(vo.getCompetitionId()==null|| vo.getCompetitionId() <=0){
return Result.error("没有大赛信息"); return Result.error("没有大赛信息");
} }
@ -28,7 +36,10 @@ public class PCTaskBiz {
CompetitionTask task = new CompetitionTask(); CompetitionTask task = new CompetitionTask();
BeanUtils.copyProperties(vo,task); BeanUtils.copyProperties(vo,task);
task = taskDao.save(task); task = taskDao.save(task);
return Result.success(task.getId()); taskList.add(task);
}
dto.setList(taskList);
return Result.success(dto);
} }
public Result<TaskDTO> get(TaskVO vo){ public Result<TaskDTO> get(TaskVO vo){

@ -0,0 +1,16 @@
package com.tz.platform.competitiion.pc.bo;
import com.tz.platform.common.core.bo.MemberImport;
import lombok.Data;
import java.util.List;
@Data
public class TeamInfo {
private String teamName;
private String teacher;
private String school;
private String level;
private String province;
private List<MemberImport> memberList;
}

@ -1,5 +1,6 @@
package com.tz.platform.competitiion.pc.dto; package com.tz.platform.competitiion.pc.dto;
import com.tz.platform.common.core.bo.CompetitionNews;
import com.tz.platform.common.core.bo.Rotation; import com.tz.platform.common.core.bo.Rotation;
import com.tz.platform.common.core.bo.Stage; import com.tz.platform.common.core.bo.Stage;
import lombok.Data; import lombok.Data;
@ -24,5 +25,6 @@ public class CompetitionDTO implements Serializable {
private String summary; private String summary;
private String rule; private String rule;
private String prize; private String prize;
private String news; private List<CompetitionNews> news;
private List<CompetitionNews> schoolNews;
} }

@ -1,5 +1,6 @@
package com.tz.platform.competitiion.pc.vo; package com.tz.platform.competitiion.pc.vo;
import com.tz.platform.common.core.bo.CompetitionNews;
import com.tz.platform.common.core.bo.Rotation; import com.tz.platform.common.core.bo.Rotation;
import com.tz.platform.common.core.bo.Stage; import com.tz.platform.common.core.bo.Stage;
import lombok.Data; import lombok.Data;
@ -23,5 +24,6 @@ public class CompetitionVO implements Serializable {
private String summary; private String summary;
private String rule; private String rule;
private String prize; private String prize;
private String news; private List<CompetitionNews> news;
private List<CompetitionNews> schoolNews;
} }

@ -0,0 +1,10 @@
package com.tz.platform.competitiion.pc.vo;
import lombok.Data;
import java.util.List;
@Data
public class ListTaskVO {
List<TaskVO> list;
}

@ -0,0 +1,27 @@
package com.tz.platform.entity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
@Data
public class CompetitionMember {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private Long competitionId;
private Long userId;
private Integer stageId;
private String studentNo;
private String name;
private String school;
private Integer teamId;
}

@ -34,5 +34,4 @@ public class CompetitionTask {
@Type(type = "json") @Type(type = "json")
@Column(columnDefinition = "json") @Column(columnDefinition = "json")
private List<TaskQuestion> questionList; private List<TaskQuestion> questionList;
} }

@ -0,0 +1,10 @@
package com.tz.platform.repository;
import com.tz.platform.entity.CompetitionMember;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface CompetitionMemberDao extends JpaRepository<CompetitionMember,Integer> {
}

@ -0,0 +1,9 @@
package com.tz.platform.repository;
import com.tz.platform.entity.CompetitionTeam;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface CompetitionTeamDao extends JpaRepository<CompetitionTeam,Integer> {
}

@ -22,9 +22,9 @@ public class Question {
private Long id; private Long id;
private Long courseId; private Long courseId;
private String courseName; private String courseName;
private Long levelId; private Integer levelId;
private String levelName; private String levelName;
private Long questionType; private Integer questionType;
private String title; private String title;
private Long score; private Long score;
private Integer type; private Integer type;

@ -2,12 +2,10 @@ package com.tz.platform.pc;
import com.tz.platform.common.core.base.Result; import com.tz.platform.common.core.base.Result;
import com.tz.platform.pc.biz.PCQuestionBiz; import com.tz.platform.pc.biz.PCQuestionBiz;
import com.tz.platform.pc.dto.ListQuestionDTO;
import com.tz.platform.pc.dto.PageQuestionDTO; import com.tz.platform.pc.dto.PageQuestionDTO;
import com.tz.platform.pc.dto.QuestionDTO; import com.tz.platform.pc.dto.QuestionDTO;
import com.tz.platform.pc.vo.BatchQuestionVO; import com.tz.platform.pc.vo.*;
import com.tz.platform.pc.vo.PageQuestionVO;
import com.tz.platform.pc.vo.QuestionUpdateVO;
import com.tz.platform.pc.vo.QuestionVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
@ -50,4 +48,9 @@ public class PCQuestionController {
public Result<String> batchUpate(@RequestBody BatchQuestionVO vo){ public Result<String> batchUpate(@RequestBody BatchQuestionVO vo){
return questionBiz.batch(vo); return questionBiz.batch(vo);
} }
@PostMapping(value = "listByIds")
public Result<ListQuestionDTO> listByIds(@RequestBody ListQuestionVO vo){
return questionBiz.listByIds(vo);
}
} }

@ -4,22 +4,20 @@ import com.tz.platform.common.core.base.Result;
import com.tz.platform.entity.Question; import com.tz.platform.entity.Question;
import com.tz.platform.feign.user.IFeignUser; import com.tz.platform.feign.user.IFeignUser;
import com.tz.platform.feign.user.vo.UserVo; import com.tz.platform.feign.user.vo.UserVo;
import com.tz.platform.pc.dto.ListQuestionDTO;
import com.tz.platform.pc.dto.PageQuestionDTO; import com.tz.platform.pc.dto.PageQuestionDTO;
import com.tz.platform.pc.dto.QuestionDTO; import com.tz.platform.pc.dto.QuestionDTO;
import com.tz.platform.pc.vo.BatchQuestionVO; import com.tz.platform.pc.vo.*;
import com.tz.platform.pc.vo.PageQuestionVO;
import com.tz.platform.pc.vo.QuestionUpdateVO;
import com.tz.platform.pc.vo.QuestionVO;
import com.tz.platform.repository.QuestionDao; import com.tz.platform.repository.QuestionDao;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.*;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
@Component @Component
public class PCQuestionBiz { public class PCQuestionBiz {
@ -32,17 +30,34 @@ public class PCQuestionBiz {
public Result<PageQuestionDTO> list(PageQuestionVO questionVO){ public Result<PageQuestionDTO> list(PageQuestionVO questionVO){
PageQuestionDTO questionDTO = new PageQuestionDTO(); PageQuestionDTO questionDTO = new PageQuestionDTO();
Pageable pageable = PageRequest.of(questionVO.getPageNo(),20); Integer pageNo = questionVO.getPageNo()-1;
if(pageNo< 0){
pageNo = 0;
}
if(questionVO.getPageSize()==null){
questionVO.setPageSize(20);
}
Pageable pageable = PageRequest.of(pageNo,questionVO.getPageSize());
Page<Question> questions =null; Page<Question> questions =null;
if((questionVO.getCourseId() == null|| questionVO.getCourseId() == 0) && StringUtils.isEmpty(questionVO.getStem())){ Long questionId = 0L;
questions = questionDao.findAllByType(questionVO.getType(),pageable); if(StringUtils.hasText(questionVO.getStem())){
}else if(questionVO.getCourseId()>0&&StringUtils.hasText(questionVO.getStem())){ String regex = "\\d+";
questions = questionDao.findAllByCourseIdAndStemAndType(questionVO.getCourseId(),questionVO.getStem(),questionVO.getType(),pageable); if(questionVO.getStem().matches(regex)){
}else if(questionVO.getCourseId()>0){ questionId = Long.parseLong(questionVO.getStem());
questions = questionDao.findAllByCourseIdAndType(questionVO.getCourseId(),questionVO.getType(),pageable); List<Long> ids = new ArrayList<>();
}else { ids.add(questionId);
questions = questionDao.findAllByStemAndType(questionVO.getStem(), questionVO.getType(),pageable); questions = questionDao.findAllByIdIn(ids,pageable);
return Result.success(questionDTO.setPage(questions));
} }
}
Question question = new Question();
BeanUtils.copyProperties(questionVO,question);
ExampleMatcher exampleMatcher = ExampleMatcher.matching().withIgnoreNullValues();
if(StringUtils.isEmpty(questionVO.getStem())){
exampleMatcher = exampleMatcher.withIgnorePaths("stem");
}
Example example = Example.of(question,exampleMatcher);
questions = questionDao.findAll( example ,pageable);
return Result.success(questionDTO.setPage(questions)); return Result.success(questionDTO.setPage(questions));
} }
@ -135,4 +150,11 @@ public class PCQuestionBiz {
questionDao.batchUpdate(vo.getStatus(),vo.getIds()); questionDao.batchUpdate(vo.getStatus(),vo.getIds());
return Result.success("success"); return Result.success("success");
} }
public Result<ListQuestionDTO> listByIds(ListQuestionVO vo){
List<Question> list = questionDao.findAllByIdIn(vo.getQuestionIds());
ListQuestionDTO dto = new ListQuestionDTO();
dto.setList(list);
return Result.success(dto);
}
} }

@ -0,0 +1,12 @@
package com.tz.platform.pc.dto;
import com.tz.platform.entity.Question;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class ListQuestionDTO implements Serializable {
List<Question> list;
}

@ -0,0 +1,10 @@
package com.tz.platform.pc.vo;
import lombok.Data;
import java.util.List;
@Data
public class ListQuestionVO {
List<Long> questionIds;
}

@ -1,6 +1,7 @@
package com.tz.platform.repository; package com.tz.platform.repository;
import com.tz.platform.entity.Question; import com.tz.platform.entity.Question;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
@ -18,12 +19,6 @@ public interface QuestionDao extends JpaRepository<Question,Long> {
Question getById(Long id); Question getById(Long id);
Page<Question> findAll(Pageable pageable); Page<Question> findAll(Pageable pageable);
Page<Question> findAllByCourseId(Long courseId,Pageable pageable);
Page<Question> findAllByStem(String stem,Pageable pageable);
Page<Question> findAllByCourseIdAndStem(Long courseId,String stem,Pageable pageable);
Page<Question> findAllByStemAndType(String stem,Integer type,Pageable pageable); Page<Question> findAllByStemAndType(String stem,Integer type,Pageable pageable);
Page<Question> findAllByCourseIdAndType(Long courseId,Integer type,Pageable pageable); Page<Question> findAllByCourseIdAndType(Long courseId,Integer type,Pageable pageable);
@ -32,10 +27,12 @@ public interface QuestionDao extends JpaRepository<Question,Long> {
Page<Question> findAllByCourseIdAndStemAndType(Long courseId,String stem,Integer type ,Pageable pageable); Page<Question> findAllByCourseIdAndStemAndType(Long courseId,String stem,Integer type ,Pageable pageable);
Page<Question> findAllByCourseIdAndTypeAndQuestionTypeAndStemLike(Long courseId,Integer type,Integer questType,String stem,Pageable pageable);
Page<Question> findAllByIdIn(List<Long> id,Pageable pageable); Page<Question> findAllByIdIn(List<Long> id,Pageable pageable);
Page<Question> findAll(Example example,Pageable pageable);
List<Question> findAllByIdIn(List<Long> ids);
@Transactional @Transactional
@Modifying @Modifying

@ -26,10 +26,10 @@ public class QuestionDaoTest {
public void questionSaveTest(){ public void questionSaveTest(){
Question question = new Question(); Question question = new Question();
question.setAnalysis("ffefadsf"); question.setAnalysis("ffefadsf");
question.setLevelId(1L); question.setLevelId(1);
question.setTitle("测试题"); question.setTitle("测试题");
question.setLevelName("本科"); question.setLevelName("本科");
question.setQuestionType(1L); question.setQuestionType(1);
question.setScore(3L); question.setScore(3L);
question.setStem("天是什么颜色"); question.setStem("天是什么颜色");
List<Answer> answerList = new ArrayList<>(); List<Answer> answerList = new ArrayList<>();

@ -21,6 +21,8 @@ import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.client.MultipartBodyBuilder;
import org.springframework.http.codec.multipart.Part;
import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpRequestDecorator; import org.springframework.http.server.reactive.ServerHttpRequestDecorator;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -63,6 +65,7 @@ public class TzGlobalFilter implements GlobalFilter , Ordered {
return request(exchange, chain, modifiedBody(exchange)); return request(exchange, chain, modifiedBody(exchange));
} }
if (uri.contains("/api")) { if (uri.contains("/api")) {
// 路径存在关键词:/api不鉴权 // 路径存在关键词:/api不鉴权
return chain.filter(exchange); return chain.filter(exchange);
@ -180,10 +183,7 @@ public class TzGlobalFilter implements GlobalFilter , Ordered {
private Mono<String> modifiedBody(ServerWebExchange serverWebExchange,String name, Object value) { private Mono<String> modifiedBody(ServerWebExchange serverWebExchange,String name, Object value) {
MediaType mediaType = serverWebExchange.getRequest().getHeaders().getContentType(); MediaType mediaType = serverWebExchange.getRequest().getHeaders().getContentType();
ServerRequest serverRequest = ServerRequest.create(serverWebExchange, HandlerStrategies.withDefaults().messageReaders()); ServerRequest serverRequest = ServerRequest.create(serverWebExchange, HandlerStrategies.withDefaults().messageReaders());
return serverRequest.bodyToMono(String.class).flatMap(body -> { return serverRequest.bodyToMono(String.class).flatMap(body -> {
logger.info(body);
JSONObject bodyJson; JSONObject bodyJson;
if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType)) { if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType)) {
Map<String, Object> bodyMap = decodeBody(body); Map<String, Object> bodyMap = decodeBody(body);

@ -4,15 +4,13 @@ import com.tz.platform.common.core.base.BaseController;
import com.tz.platform.common.core.base.Result; import com.tz.platform.common.core.base.Result;
import com.tz.platform.image.pc.biz.PCImageBiz; import com.tz.platform.image.pc.biz.PCImageBiz;
import com.tz.platform.image.pc.dto.ImageDTO; import com.tz.platform.image.pc.dto.ImageDTO;
import com.tz.platform.image.pc.vo.ImageVo;
import org.springframework.beans.MutablePropertyValues;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; 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.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@RestController @RestController
@RequestMapping(value = "/api/upload/image") @RequestMapping(value = "/api/upload/image")
public class PcImageController extends BaseController { public class PcImageController extends BaseController {
@ -20,8 +18,9 @@ public class PcImageController extends BaseController {
@Autowired @Autowired
private PCImageBiz pcImageBiz; private PCImageBiz pcImageBiz;
@PostMapping(value = "upload") @PostMapping(value = "upload")
public Result<ImageDTO> upload(MultipartFile file,Integer w,Integer h){ public Result<ImageDTO> upload(MultipartFile file,Integer w,Integer h){
return pcImageBiz.uploadImg(file,w,h); return pcImageBiz.uploadImg(file,w,h,getUserNo());
} }
} }

@ -2,6 +2,7 @@ package com.tz.platform.image.pc.biz;
import com.tz.platform.common.core.base.Result; import com.tz.platform.common.core.base.Result;
import com.tz.platform.common.core.config.SystemUtil; import com.tz.platform.common.core.config.SystemUtil;
import com.tz.platform.common.core.tools.JWTUtil;
import com.tz.platform.entity.Image; import com.tz.platform.entity.Image;
import com.tz.platform.image.pc.dto.ImageDTO; import com.tz.platform.image.pc.dto.ImageDTO;
import com.tz.platform.repository.ImageDao; import com.tz.platform.repository.ImageDao;
@ -20,9 +21,10 @@ public class PCImageBiz {
@Autowired @Autowired
private ImageDao imageDao; private ImageDao imageDao;
public Result<ImageDTO> uploadImg(MultipartFile multipartFile,int w,int h){ public Result<ImageDTO> uploadImg(MultipartFile multipartFile,int w,int h,Long UserNo){
ImageDTO imageDTO = new ImageDTO(); ImageDTO imageDTO = new ImageDTO();
Image image = new Image(); Image image = new Image();
System.out.println(UserNo);
String fileName = System.currentTimeMillis()+""; String fileName = System.currentTimeMillis()+"";
try { try {
Thumbnails.of(multipartFile.getResource().getInputStream()).size(w,h).outputFormat("png").toFile(SystemUtil.PIC_PATH+fileName); Thumbnails.of(multipartFile.getResource().getInputStream()).size(w,h).outputFormat("png").toFile(SystemUtil.PIC_PATH+fileName);

@ -4,8 +4,12 @@ import com.tz.platform.entity.User;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
@Repository @Repository
public interface UserDao extends JpaRepository<User,Long> { public interface UserDao extends JpaRepository<User,Long> {
/** /**
@ -31,4 +35,8 @@ public interface UserDao extends JpaRepository<User,Long> {
* @return * @return
*/ */
Page<User> findAll(Pageable pageable); Page<User> findAll(Pageable pageable);
Page<User> findAllByUserType(Integer type,Pageable pageable);
List<User> findAllByStudentNoIn(List<String> studentNoList);
} }

@ -1,6 +1,7 @@
package com.tz.platform.user.pc.biz; package com.tz.platform.user.pc.biz;
import com.tz.platform.common.core.base.Result; import com.tz.platform.common.core.base.Result;
import com.tz.platform.common.core.enmus.UserTypeEnum;
import com.tz.platform.entity.User; import com.tz.platform.entity.User;
import com.tz.platform.repository.UserDao; import com.tz.platform.repository.UserDao;
import com.tz.platform.user.pc.dto.UserPageDTO; import com.tz.platform.user.pc.dto.UserPageDTO;
@ -20,7 +21,7 @@ public class PcUserInfoBiz {
pageNo = 0; pageNo = 0;
} }
Pageable pageable = PageRequest.of(pageNo,20); Pageable pageable = PageRequest.of(pageNo,20);
Page<User> page = userDao.findAll(pageable); Page<User> page = userDao.findAllByUserType(UserTypeEnum.USER.getCode(), pageable);
UserPageDTO userPageDTO = new UserPageDTO(); UserPageDTO userPageDTO = new UserPageDTO();
userPageDTO.setUserPage(page); userPageDTO.setUserPage(page);
return Result.success(userPageDTO); return Result.success(userPageDTO);

Loading…
Cancel
Save