From 62f146515a06433409106a8d1008471c52529df1 Mon Sep 17 00:00:00 2001 From: tianea Date: Mon, 28 Feb 2022 22:25:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=82=E8=B5=9B=E5=9B=A2=E9=98=9F=E6=89=B9?= =?UTF-8?q?=E9=87=8F=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tz/common/common-core/pom.xml | 6 ++ .../common/core/base/BaseController.java | 24 ++++++++ .../platform/common/core/bo/MemberImport.java | 11 ++++ .../platform/common/core/tools/ExcelUtil.java | 58 +++++++++++++------ .../pc/CompetitionMemberController.java | 26 +++++++++ .../pc/CompetitionTaskController.java | 12 ++-- .../competitiion/pc/biz/PCTaskBiz.java | 33 +++++++---- .../platform/competitiion/pc/bo/TeamInfo.java | 16 +++++ .../competitiion/pc/dto/CompetitionDTO.java | 4 +- .../competitiion/pc/vo/CompetitionVO.java | 4 +- .../competitiion/pc/vo/ListTaskVO.java | 10 ++++ .../tz/platform/entity/CompetitionMember.java | 27 +++++++++ .../tz/platform/entity/CompetitionTask.java | 1 - .../repository/CompetitionMemberDao.java | 10 ++++ .../repository/CompetitionTeamDao.java | 9 +++ .../java/com/tz/platform/entity/Question.java | 4 +- .../tz/platform/pc/PCQuestionController.java | 11 ++-- .../com/tz/platform/pc/biz/PCQuestionBiz.java | 54 ++++++++++++----- .../tz/platform/pc/dto/ListQuestionDTO.java | 12 ++++ .../com/tz/platform/pc/vo/ListQuestionVO.java | 10 ++++ .../tz/platform/repository/QuestionDao.java | 13 ++--- .../platform/repository/QuestionDaoTest.java | 4 +- .../gateway/filter/TzGlobalFilter.java | 6 +- .../platform/image/pc/PcImageController.java | 7 +-- .../tz/platform/image/pc/biz/PCImageBiz.java | 4 +- .../com/tz/platform/repository/UserDao.java | 8 +++ .../platform/user/pc/biz/PcUserInfoBiz.java | 3 +- 27 files changed, 306 insertions(+), 81 deletions(-) create mode 100644 tz/common/common-core/src/main/java/com/tz/platform/common/core/bo/MemberImport.java create mode 100644 tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/CompetitionMemberController.java create mode 100644 tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/bo/TeamInfo.java create mode 100644 tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/vo/ListTaskVO.java create mode 100644 tz/competition/competition-service/src/main/java/com/tz/platform/entity/CompetitionMember.java create mode 100644 tz/competition/competition-service/src/main/java/com/tz/platform/repository/CompetitionMemberDao.java create mode 100644 tz/competition/competition-service/src/main/java/com/tz/platform/repository/CompetitionTeamDao.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/ListQuestionDTO.java create mode 100644 tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/ListQuestionVO.java diff --git a/tz/common/common-core/pom.xml b/tz/common/common-core/pom.xml index 5eee738..e68741c 100644 --- a/tz/common/common-core/pom.xml +++ b/tz/common/common-core/pom.xml @@ -101,6 +101,12 @@ org.springframework.boot spring-boot-starter-web + + jakarta.persistence + jakarta.persistence-api + 2.2.3 + compile + diff --git a/tz/common/common-core/src/main/java/com/tz/platform/common/core/base/BaseController.java b/tz/common/common-core/src/main/java/com/tz/platform/common/core/base/BaseController.java index c9b2d48..6bcd8a0 100644 --- a/tz/common/common-core/src/main/java/com/tz/platform/common/core/base/BaseController.java +++ b/tz/common/common-core/src/main/java/com/tz/platform/common/core/base/BaseController.java @@ -1,16 +1,23 @@ 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.JWTUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.ui.ModelMap; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.ModelAttribute; +import javax.persistence.MappedSuperclass; import javax.servlet.http.HttpServletRequest; import java.io.DataInputStream; import java.io.IOException; +import java.io.UnsupportedEncodingException; import java.text.MessageFormat; import java.util.Map; import java.util.TreeMap; +@MappedSuperclass public class BaseController extends Base { public static final String TEXT_UTF8 = "text/html;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 OPEN = false; + @Autowired + private HttpServletRequest request; + @ModelAttribute public void enums(ModelMap modelMap) { @@ -38,6 +48,20 @@ public class BaseController extends Base { 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) { DataInputStream in = null; try { diff --git a/tz/common/common-core/src/main/java/com/tz/platform/common/core/bo/MemberImport.java b/tz/common/common-core/src/main/java/com/tz/platform/common/core/bo/MemberImport.java new file mode 100644 index 0000000..271e06f --- /dev/null +++ b/tz/common/common-core/src/main/java/com/tz/platform/common/core/bo/MemberImport.java @@ -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; +} diff --git a/tz/common/common-core/src/main/java/com/tz/platform/common/core/tools/ExcelUtil.java b/tz/common/common-core/src/main/java/com/tz/platform/common/core/tools/ExcelUtil.java index c5c4eee..40e628b 100644 --- a/tz/common/common-core/src/main/java/com/tz/platform/common/core/tools/ExcelUtil.java +++ b/tz/common/common-core/src/main/java/com/tz/platform/common/core/tools/ExcelUtil.java @@ -12,6 +12,7 @@ import java.awt.Color; import java.io.*; import java.lang.reflect.Field; import java.math.BigDecimal; +import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; @@ -22,9 +23,10 @@ import java.util.regex.Pattern; public class ExcelUtil { private String templatePath ; private String outPath; + Pattern pattern = Pattern.compile("([A-Z]+)(\\d+)"); private FileInputStream is; - private XSSFWorkbook excel ; + private XSSFWorkbook excel; //获取第一个sheet private XSSFSheet sheet0 ; @@ -174,7 +176,7 @@ public class ExcelUtil { } public Cell get(String location){ - Pattern pattern = Pattern.compile("([A-Z]+)(\\d+)"); + Matcher matcher = pattern.matcher(location.toUpperCase()); if(matcher.matches()){ String y = matcher.group(1); @@ -183,7 +185,6 @@ public class ExcelUtil { int colNum = covertToYIndex(y); Row row = getRow(rowNum); return getCell(row,colNum); - } return null; } @@ -321,24 +322,20 @@ public class ExcelUtil { if(cell == null) {return "";} - if(cell.getCellType() == Cell.CELL_TYPE_STRING){ - + if(cell.getCellTypeEnum() == CellType.STRING){ return cell.getStringCellValue(); - - }else if(cell.getCellType() == Cell.CELL_TYPE_BOOLEAN){ - + }else if(cell.getCellTypeEnum() ==CellType.BOOLEAN){ return String.valueOf(cell.getBooleanCellValue()); - - }else if(cell.getCellType() == Cell.CELL_TYPE_FORMULA){ - + }else if(cell.getCellTypeEnum() ==CellType.FORMULA){ return cell.getCellFormula() ; - - }else if(cell.getCellType() == Cell.CELL_TYPE_NUMERIC){ - String dateTime = getDateTime(cell); - if(StringUtils.isEmpty(dateTime)){ - return String.valueOf(cell.getNumericCellValue()); + }else if(cell.getCellTypeEnum() == CellType.NUMERIC){ + if("General".equals(cell.getCellStyle().getDataFormatString())){ + BigDecimal bigDecimal = new BigDecimal(cell.getNumericCellValue()); + return bigDecimal.toString(); + }else{ + String dateTime = getDateTime(cell); + return dateTime; } - return dateTime; } return ""; } @@ -428,10 +425,8 @@ public class ExcelUtil { if(pv!=null&&pv.length>0){ this.parserValue = pv[0]; } - } - /** * 列名 * @return @@ -473,4 +468,29 @@ public class ExcelUtil { public interface ParserValue{ 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 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); + } +} diff --git a/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/CompetitionTaskController.java b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/CompetitionTaskController.java index bdcfd39..3813d5d 100644 --- a/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/CompetitionTaskController.java +++ b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/CompetitionTaskController.java @@ -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.dto.ListTaskDTO; 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 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; @@ -18,22 +20,18 @@ public class CompetitionTaskController { private PCTaskBiz biz; @PostMapping(value = "add") - public Result add(TaskVO vo){ + public Result add(@RequestBody ListTaskVO vo){ return biz.save(vo); } - @PostMapping(value = "update") - public Result update(TaskVO vo){ - return biz.save(vo); - } @PostMapping(value = "list") - public Result list(TaskVO vo){ + public Result list(@RequestBody TaskVO vo){ return biz.list(vo); } @PostMapping(value = "get") - public Result get(TaskVO vo){ + public Result get(@RequestBody TaskVO vo){ return biz.get(vo); } } diff --git a/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/biz/PCTaskBiz.java b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/biz/PCTaskBiz.java index e6f8843..83a56f6 100644 --- a/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/biz/PCTaskBiz.java +++ b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/biz/PCTaskBiz.java @@ -3,13 +3,16 @@ package com.tz.platform.competitiion.pc.biz; import com.tz.platform.common.core.base.Result; import com.tz.platform.competitiion.pc.dto.ListTaskDTO; 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.entity.CompetitionTask; import com.tz.platform.repository.CompetitionTaskDao; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; @Component @@ -17,18 +20,26 @@ public class PCTaskBiz { @Autowired private CompetitionTaskDao taskDao; - public Result save(TaskVO vo){ - if(vo.getCompetitionId()==null|| vo.getCompetitionId() <=0){ - return Result.error("没有大赛信息"); - } - if(vo.getStageId()==null||vo.getStageId() <=0){ - return Result.error("没有指定赛段"); - } + @Transactional + public Result save(ListTaskVO listTaskVO){ + ListTaskDTO dto = new ListTaskDTO(); + List taskList =new ArrayList<>(); + for(int i=0;i get(TaskVO vo){ diff --git a/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/bo/TeamInfo.java b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/bo/TeamInfo.java new file mode 100644 index 0000000..f8d7e05 --- /dev/null +++ b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/bo/TeamInfo.java @@ -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 memberList; +} diff --git a/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/dto/CompetitionDTO.java b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/dto/CompetitionDTO.java index cb383b3..b2cef9e 100644 --- a/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/dto/CompetitionDTO.java +++ b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/dto/CompetitionDTO.java @@ -1,5 +1,6 @@ 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.Stage; import lombok.Data; @@ -24,5 +25,6 @@ public class CompetitionDTO implements Serializable { private String summary; private String rule; private String prize; - private String news; + private List news; + private List schoolNews; } diff --git a/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/vo/CompetitionVO.java b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/vo/CompetitionVO.java index 135cf06..8b642a1 100644 --- a/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/vo/CompetitionVO.java +++ b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/vo/CompetitionVO.java @@ -1,5 +1,6 @@ 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.Stage; import lombok.Data; @@ -23,5 +24,6 @@ public class CompetitionVO implements Serializable { private String summary; private String rule; private String prize; - private String news; + private List news; + private List schoolNews; } diff --git a/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/vo/ListTaskVO.java b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/vo/ListTaskVO.java new file mode 100644 index 0000000..94b8fe2 --- /dev/null +++ b/tz/competition/competition-service/src/main/java/com/tz/platform/competitiion/pc/vo/ListTaskVO.java @@ -0,0 +1,10 @@ +package com.tz.platform.competitiion.pc.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class ListTaskVO { + List list; +} diff --git a/tz/competition/competition-service/src/main/java/com/tz/platform/entity/CompetitionMember.java b/tz/competition/competition-service/src/main/java/com/tz/platform/entity/CompetitionMember.java new file mode 100644 index 0000000..92c0518 --- /dev/null +++ b/tz/competition/competition-service/src/main/java/com/tz/platform/entity/CompetitionMember.java @@ -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; + + + +} diff --git a/tz/competition/competition-service/src/main/java/com/tz/platform/entity/CompetitionTask.java b/tz/competition/competition-service/src/main/java/com/tz/platform/entity/CompetitionTask.java index 4763e7a..89d6e1d 100644 --- a/tz/competition/competition-service/src/main/java/com/tz/platform/entity/CompetitionTask.java +++ b/tz/competition/competition-service/src/main/java/com/tz/platform/entity/CompetitionTask.java @@ -34,5 +34,4 @@ public class CompetitionTask { @Type(type = "json") @Column(columnDefinition = "json") private List questionList; - } diff --git a/tz/competition/competition-service/src/main/java/com/tz/platform/repository/CompetitionMemberDao.java b/tz/competition/competition-service/src/main/java/com/tz/platform/repository/CompetitionMemberDao.java new file mode 100644 index 0000000..ae1ed37 --- /dev/null +++ b/tz/competition/competition-service/src/main/java/com/tz/platform/repository/CompetitionMemberDao.java @@ -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 { + +} diff --git a/tz/competition/competition-service/src/main/java/com/tz/platform/repository/CompetitionTeamDao.java b/tz/competition/competition-service/src/main/java/com/tz/platform/repository/CompetitionTeamDao.java new file mode 100644 index 0000000..21f91cf --- /dev/null +++ b/tz/competition/competition-service/src/main/java/com/tz/platform/repository/CompetitionTeamDao.java @@ -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 { +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/entity/Question.java b/tz/exam/exam-service/src/main/java/com/tz/platform/entity/Question.java index 13791c0..9bcd987 100644 --- a/tz/exam/exam-service/src/main/java/com/tz/platform/entity/Question.java +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/entity/Question.java @@ -22,9 +22,9 @@ public class Question { private Long id; private Long courseId; private String courseName; - private Long levelId; + private Integer levelId; private String levelName; - private Long questionType; + private Integer questionType; private String title; private Long score; private Integer type; diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/PCQuestionController.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/PCQuestionController.java index c3e90da..172eed0 100644 --- a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/PCQuestionController.java +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/PCQuestionController.java @@ -2,12 +2,10 @@ package com.tz.platform.pc; import com.tz.platform.common.core.base.Result; 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.QuestionDTO; -import com.tz.platform.pc.vo.BatchQuestionVO; -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.pc.vo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -50,4 +48,9 @@ public class PCQuestionController { public Result batchUpate(@RequestBody BatchQuestionVO vo){ return questionBiz.batch(vo); } + + @PostMapping(value = "listByIds") + public Result listByIds(@RequestBody ListQuestionVO vo){ + return questionBiz.listByIds(vo); + } } diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCQuestionBiz.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCQuestionBiz.java index 5f5e7db..0db233b 100644 --- a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCQuestionBiz.java +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/biz/PCQuestionBiz.java @@ -4,22 +4,20 @@ import com.tz.platform.common.core.base.Result; import com.tz.platform.entity.Question; import com.tz.platform.feign.user.IFeignUser; 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.QuestionDTO; -import com.tz.platform.pc.vo.BatchQuestionVO; -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.pc.vo.*; import com.tz.platform.repository.QuestionDao; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.*; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; +import java.util.ArrayList; import java.util.Date; +import java.util.List; @Component public class PCQuestionBiz { @@ -32,17 +30,34 @@ public class PCQuestionBiz { public Result list(PageQuestionVO questionVO){ 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 questions =null; - if((questionVO.getCourseId() == null|| questionVO.getCourseId() == 0) && StringUtils.isEmpty(questionVO.getStem())){ - questions = questionDao.findAllByType(questionVO.getType(),pageable); - }else if(questionVO.getCourseId()>0&&StringUtils.hasText(questionVO.getStem())){ - questions = questionDao.findAllByCourseIdAndStemAndType(questionVO.getCourseId(),questionVO.getStem(),questionVO.getType(),pageable); - }else if(questionVO.getCourseId()>0){ - questions = questionDao.findAllByCourseIdAndType(questionVO.getCourseId(),questionVO.getType(),pageable); - }else { - questions = questionDao.findAllByStemAndType(questionVO.getStem(), questionVO.getType(),pageable); + Long questionId = 0L; + if(StringUtils.hasText(questionVO.getStem())){ + String regex = "\\d+"; + if(questionVO.getStem().matches(regex)){ + questionId = Long.parseLong(questionVO.getStem()); + List ids = new ArrayList<>(); + ids.add(questionId); + 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)); } @@ -135,4 +150,11 @@ public class PCQuestionBiz { questionDao.batchUpdate(vo.getStatus(),vo.getIds()); return Result.success("success"); } + + public Result listByIds(ListQuestionVO vo){ + List list = questionDao.findAllByIdIn(vo.getQuestionIds()); + ListQuestionDTO dto = new ListQuestionDTO(); + dto.setList(list); + return Result.success(dto); + } } diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/ListQuestionDTO.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/ListQuestionDTO.java new file mode 100644 index 0000000..a88411e --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/dto/ListQuestionDTO.java @@ -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 list; +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/ListQuestionVO.java b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/ListQuestionVO.java new file mode 100644 index 0000000..835272f --- /dev/null +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/pc/vo/ListQuestionVO.java @@ -0,0 +1,10 @@ +package com.tz.platform.pc.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class ListQuestionVO { + List questionIds; +} diff --git a/tz/exam/exam-service/src/main/java/com/tz/platform/repository/QuestionDao.java b/tz/exam/exam-service/src/main/java/com/tz/platform/repository/QuestionDao.java index 3c713f7..1d081d5 100644 --- a/tz/exam/exam-service/src/main/java/com/tz/platform/repository/QuestionDao.java +++ b/tz/exam/exam-service/src/main/java/com/tz/platform/repository/QuestionDao.java @@ -1,6 +1,7 @@ package com.tz.platform.repository; import com.tz.platform.entity.Question; +import org.springframework.data.domain.Example; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; @@ -18,12 +19,6 @@ public interface QuestionDao extends JpaRepository { Question getById(Long id); Page findAll(Pageable pageable); - Page findAllByCourseId(Long courseId,Pageable pageable); - - Page findAllByStem(String stem,Pageable pageable); - - Page findAllByCourseIdAndStem(Long courseId,String stem,Pageable pageable); - Page findAllByStemAndType(String stem,Integer type,Pageable pageable); Page findAllByCourseIdAndType(Long courseId,Integer type,Pageable pageable); @@ -32,10 +27,12 @@ public interface QuestionDao extends JpaRepository { Page findAllByCourseIdAndStemAndType(Long courseId,String stem,Integer type ,Pageable pageable); - Page findAllByCourseIdAndTypeAndQuestionTypeAndStemLike(Long courseId,Integer type,Integer questType,String stem,Pageable pageable); - Page findAllByIdIn(List id,Pageable pageable); + Page findAll(Example example,Pageable pageable); + + List findAllByIdIn(List ids); + @Transactional @Modifying diff --git a/tz/exam/exam-service/src/test/java/com/tz/platform/repository/QuestionDaoTest.java b/tz/exam/exam-service/src/test/java/com/tz/platform/repository/QuestionDaoTest.java index f38bf36..f42614e 100644 --- a/tz/exam/exam-service/src/test/java/com/tz/platform/repository/QuestionDaoTest.java +++ b/tz/exam/exam-service/src/test/java/com/tz/platform/repository/QuestionDaoTest.java @@ -26,10 +26,10 @@ public class QuestionDaoTest { public void questionSaveTest(){ Question question = new Question(); question.setAnalysis("ffefadsf"); - question.setLevelId(1L); + question.setLevelId(1); question.setTitle("测试题"); question.setLevelName("本科"); - question.setQuestionType(1L); + question.setQuestionType(1); question.setScore(3L); question.setStem("天是什么颜色"); List answerList = new ArrayList<>(); diff --git a/tz/gateway/src/main/java/com/tz/platform/gateway/filter/TzGlobalFilter.java b/tz/gateway/src/main/java/com/tz/platform/gateway/filter/TzGlobalFilter.java index 32a9759..5626274 100644 --- a/tz/gateway/src/main/java/com/tz/platform/gateway/filter/TzGlobalFilter.java +++ b/tz/gateway/src/main/java/com/tz/platform/gateway/filter/TzGlobalFilter.java @@ -21,6 +21,8 @@ import org.springframework.core.io.buffer.DataBuffer; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.http.HttpHeaders; 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.ServerHttpRequestDecorator; import org.springframework.stereotype.Component; @@ -63,6 +65,7 @@ public class TzGlobalFilter implements GlobalFilter , Ordered { return request(exchange, chain, modifiedBody(exchange)); } + if (uri.contains("/api")) { // 路径存在关键词:/api,不鉴权 return chain.filter(exchange); @@ -180,10 +183,7 @@ public class TzGlobalFilter implements GlobalFilter , Ordered { private Mono modifiedBody(ServerWebExchange serverWebExchange,String name, Object value) { MediaType mediaType = serverWebExchange.getRequest().getHeaders().getContentType(); ServerRequest serverRequest = ServerRequest.create(serverWebExchange, HandlerStrategies.withDefaults().messageReaders()); - return serverRequest.bodyToMono(String.class).flatMap(body -> { - - logger.info(body); JSONObject bodyJson; if (MediaType.APPLICATION_FORM_URLENCODED.isCompatibleWith(mediaType)) { Map bodyMap = decodeBody(body); diff --git a/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/PcImageController.java b/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/PcImageController.java index 88af0f6..729eb38 100644 --- a/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/PcImageController.java +++ b/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/PcImageController.java @@ -4,15 +4,13 @@ import com.tz.platform.common.core.base.BaseController; import com.tz.platform.common.core.base.Result; import com.tz.platform.image.pc.biz.PCImageBiz; 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.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; import org.springframework.web.multipart.MultipartFile; + @RestController @RequestMapping(value = "/api/upload/image") public class PcImageController extends BaseController { @@ -20,8 +18,9 @@ public class PcImageController extends BaseController { @Autowired private PCImageBiz pcImageBiz; + @PostMapping(value = "upload") public Result upload(MultipartFile file,Integer w,Integer h){ - return pcImageBiz.uploadImg(file,w,h); + return pcImageBiz.uploadImg(file,w,h,getUserNo()); } } diff --git a/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/biz/PCImageBiz.java b/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/biz/PCImageBiz.java index 8afc637..b96e2ee 100644 --- a/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/biz/PCImageBiz.java +++ b/tz/upload/upload-service/src/main/java/com/tz/platform/image/pc/biz/PCImageBiz.java @@ -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.config.SystemUtil; +import com.tz.platform.common.core.tools.JWTUtil; import com.tz.platform.entity.Image; import com.tz.platform.image.pc.dto.ImageDTO; import com.tz.platform.repository.ImageDao; @@ -20,9 +21,10 @@ public class PCImageBiz { @Autowired private ImageDao imageDao; - public Result uploadImg(MultipartFile multipartFile,int w,int h){ + public Result uploadImg(MultipartFile multipartFile,int w,int h,Long UserNo){ ImageDTO imageDTO = new ImageDTO(); Image image = new Image(); + System.out.println(UserNo); String fileName = System.currentTimeMillis()+""; try { Thumbnails.of(multipartFile.getResource().getInputStream()).size(w,h).outputFormat("png").toFile(SystemUtil.PIC_PATH+fileName); diff --git a/tz/user/user-service/src/main/java/com/tz/platform/repository/UserDao.java b/tz/user/user-service/src/main/java/com/tz/platform/repository/UserDao.java index dc067c7..57f20e3 100644 --- a/tz/user/user-service/src/main/java/com/tz/platform/repository/UserDao.java +++ b/tz/user/user-service/src/main/java/com/tz/platform/repository/UserDao.java @@ -4,8 +4,12 @@ import com.tz.platform.entity.User; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; 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 java.util.List; + @Repository public interface UserDao extends JpaRepository { /** @@ -31,4 +35,8 @@ public interface UserDao extends JpaRepository { * @return 一页用户 */ Page findAll(Pageable pageable); + + Page findAllByUserType(Integer type,Pageable pageable); + + List findAllByStudentNoIn(List studentNoList); } diff --git a/tz/user/user-service/src/main/java/com/tz/platform/user/pc/biz/PcUserInfoBiz.java b/tz/user/user-service/src/main/java/com/tz/platform/user/pc/biz/PcUserInfoBiz.java index d5d2725..51a38f1 100644 --- a/tz/user/user-service/src/main/java/com/tz/platform/user/pc/biz/PcUserInfoBiz.java +++ b/tz/user/user-service/src/main/java/com/tz/platform/user/pc/biz/PcUserInfoBiz.java @@ -1,6 +1,7 @@ package com.tz.platform.user.pc.biz; 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.repository.UserDao; import com.tz.platform.user.pc.dto.UserPageDTO; @@ -20,7 +21,7 @@ public class PcUserInfoBiz { pageNo = 0; } Pageable pageable = PageRequest.of(pageNo,20); - Page page = userDao.findAll(pageable); + Page page = userDao.findAllByUserType(UserTypeEnum.USER.getCode(), pageable); UserPageDTO userPageDTO = new UserPageDTO(); userPageDTO.setUserPage(page); return Result.success(userPageDTO);