参赛用户大赛任务调整

sale
tianea 3 years ago
parent 193e64ada1
commit 53fd3bf6b9

@ -0,0 +1,9 @@
package com.tz.platform.common.core.bo;
import lombok.Data;
@Data
public class CompetitionNews {
private String img;
private String content;
}

@ -14,4 +14,5 @@ public class Stage {
private Date signUpStartTime;
private Date singUpEndTime;
private boolean enableSignUp;
private boolean isDemo;
}

@ -0,0 +1,11 @@
package com.tz.platform.common.core.bo;
import lombok.Data;
import java.util.List;
@Data
public class TaskQuestion {
private Integer groupId;
private List<Long> questionIds;
}

@ -74,11 +74,8 @@ public class ExcelUtil {
public ExcelUtil(String template,String out,int sheetIndex) throws Exception{
this.templatePath = template;
is = new FileInputStream(templatePath);
excel = new XSSFWorkbook(is);
//获取第一个sheet
sheet0 = excel.getSheetAt(sheetIndex);
outPath = out;
@ -323,6 +320,7 @@ public class ExcelUtil {
if(cell == null) {return "";}
if(cell.getCellType() == Cell.CELL_TYPE_STRING){
return cell.getStringCellValue();

@ -31,4 +31,5 @@ public class StrUtil {
public static String get32UUID() {
return IdUtil.simpleUUID();
}
}

@ -74,35 +74,35 @@
</root>
</springProfile>
<!-- 开发、测试环境 -->
<springProfile name="!local">
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${PATTERN}</pattern>
</encoder>
</appender>
<appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 文件路径 -->
<file>${FILE_PATH}/info</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 文件名称 -->
<fileNamePattern>${FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 文件最大保存历史数量 -->
<MaxHistory>7</MaxHistory>
</rollingPolicy>
<!-- &lt;!&ndash; 开发、测试环境 &ndash;&gt;-->
<!-- <springProfile name="!local">-->
<!-- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">-->
<!-- <encoder>-->
<!-- <pattern>${PATTERN}</pattern>-->
<!-- </encoder>-->
<!-- </appender>-->
<!-- <appender name="TEST-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!-- &lt;!&ndash; 文件路径 &ndash;&gt;-->
<!-- <file>${FILE_PATH}/info</file>-->
<!-- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
<!-- &lt;!&ndash; 文件名称 &ndash;&gt;-->
<!-- <fileNamePattern>${FILE_PATH}/info.%d{yyyy-MM-dd}.log</fileNamePattern>-->
<!-- &lt;!&ndash; 文件最大保存历史数量 &ndash;&gt;-->
<!-- <MaxHistory>7</MaxHistory>-->
<!-- </rollingPolicy>-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>${PATTERN}</pattern>
</layout>
</appender>
<!-- <layout class="ch.qos.logback.classic.PatternLayout">-->
<!-- <pattern>${PATTERN}</pattern>-->
<!-- </layout>-->
<!-- </appender>-->
<logger name="com.tz" level="debug"/>
<logger name="org.springframework.cloud.netflix.zuul" level="debug"/>
<logger name="org.springframework.jdbc.core.JdbcTemplate" level="debug"/>
<!-- <logger name="com.tz" level="debug"/>-->
<!-- <logger name="org.springframework.cloud.netflix.zuul" level="debug"/>-->
<!-- <logger name="org.springframework.jdbc.core.JdbcTemplate" level="debug"/>-->
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="TEST-FILE"/>
</root>
</springProfile>
<!-- <root level="info">-->
<!-- <appender-ref ref="CONSOLE"/>-->
<!-- <appender-ref ref="TEST-FILE"/>-->
<!-- </root>-->
<!-- </springProfile>-->
</configuration>

@ -0,0 +1,39 @@
package com.tz.platform.competitiion.pc;
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.TaskVO;
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;
@RestController
@RequestMapping(value = "/pc/competition/task")
public class CompetitionTaskController {
@Autowired
private PCTaskBiz biz;
@PostMapping(value = "add")
public Result<Integer> add(TaskVO vo){
return biz.save(vo);
}
@PostMapping(value = "update")
public Result<Integer> update(TaskVO vo){
return biz.save(vo);
}
@PostMapping(value = "list")
public Result<ListTaskDTO> list(TaskVO vo){
return biz.list(vo);
}
@PostMapping(value = "get")
public Result<TaskDTO> get(TaskVO vo){
return biz.get(vo);
}
}

@ -14,7 +14,9 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Component
public class PCGroupBiz {
@ -26,14 +28,20 @@ public class PCGroupBiz {
ListGroupDTO dto = new ListGroupDTO();
List<CompetitionGroup> list = new ArrayList<>();
Long competitionId = vo.getList().stream().findFirst().orElse(null).getCompetitionId();
Stream<GroupVO> groupVOStream = vo.getList().stream().filter(gp -> gp.getId()!=null&& gp.getId() > 0);
if(groupVOStream!=null){
List<Integer> ids = groupVOStream.map(GroupVO::getId).collect(Collectors.toList());
groupDao.deleteAllByCompetitionIdAndIdNotIn(competitionId,ids);
}
vo.getList().forEach(vo1 -> {
CompetitionGroup groupCat = new CompetitionGroup();
BeanUtils.copyProperties(vo1,groupCat);
groupCat = groupDao.save(groupCat);
list.add(groupCat);
});
List<Integer> ids = vo.getList().stream().filter(gp -> gp.getId() > 0).map(GroupVO::getId).collect(Collectors.toList());
groupDao.deleteAllByCompetitionIdAndIdNotIn(competitionId,ids);
dto.setList(list);
return Result.success(dto);
}

@ -0,0 +1,46 @@
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.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 java.util.List;
@Component
public class PCTaskBiz {
@Autowired
private CompetitionTaskDao taskDao;
public Result<Integer> save(TaskVO vo){
if(vo.getCompetitionId()==null|| vo.getCompetitionId() <=0){
return Result.error("没有大赛信息");
}
if(vo.getStageId()==null||vo.getStageId() <=0){
return Result.error("没有指定赛段");
}
CompetitionTask task = new CompetitionTask();
BeanUtils.copyProperties(vo,task);
task = taskDao.save(task);
return Result.success(task.getId());
}
public Result<TaskDTO> get(TaskVO vo){
CompetitionTask task = taskDao.getById(vo.getId());
TaskDTO dto = new TaskDTO();
BeanUtils.copyProperties(task,dto);
return Result.success(dto);
}
public Result<ListTaskDTO> list(TaskVO vo){
List<CompetitionTask> taskList = taskDao.findAllByCompetitionId(vo.getCompetitionId());
ListTaskDTO dto = new ListTaskDTO();
dto.setList(taskList);
return Result.success(dto);
}
}

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

@ -0,0 +1,24 @@
package com.tz.platform.competitiion.pc.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class TaskDTO implements Serializable {
private Integer id;
private Long competitionId;
private Integer stageId;
private Long financePower;
private Long examPower;
private Date operationStartTime;
private Date operationEndTime;
private Date examStartTime;
private Date examEndTime;
private Integer tradeType;
private Long initCapital;
private String operationLogo;
private Long financeBasePower;
private Long financeProfitPower;
}

@ -0,0 +1,27 @@
package com.tz.platform.competitiion.pc.vo;
import com.tz.platform.common.core.bo.TaskQuestion;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class TaskVO implements Serializable {
private Integer id;
private Long competitionId;
private Integer stageId;
private Long financePower;
private Long examPower;
private Date operationStartTime;
private Date operationEndTime;
private Date examStartTime;
private Date examEndTime;
private Integer tradeType;
private Long initCapital;
private String operationLogo;
private Long financeBasePower;
private Long financeProfitPower;
private List<TaskQuestion> questionList;
}

@ -1,5 +1,6 @@
package com.tz.platform.entity;
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 com.vladmihalcea.hibernate.type.json.JsonStringType;
@ -48,6 +49,10 @@ public class Competition {
private String rule;
@Column(columnDefinition = "text")
private String prize;
@Column(columnDefinition = "text")
private String news;
@Type(type = "json")
@Column(columnDefinition = "json")
private List<CompetitionNews> news;
@Type(type = "json")
@Column(columnDefinition = "json")
private List<CompetitionNews> schoolNews;
}

@ -21,4 +21,5 @@ public class CompetitionGroup {
@Type(type = "json")
@Column(columnDefinition = "json")
private List<GroupCat> catList;
}

@ -1,13 +1,19 @@
package com.tz.platform.entity;
import com.tz.platform.common.core.bo.TaskQuestion;
import com.vladmihalcea.hibernate.type.json.JsonStringType;
import lombok.Data;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import javax.persistence.*;
import java.util.Date;
import java.util.List;
@Data
@Entity
@Table(indexes = {@Index(columnList = "competitionId")})
@TypeDef(name = "json", typeClass = JsonStringType.class)
public class CompetitionTask {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@ -18,9 +24,15 @@ public class CompetitionTask {
private Long examPower;
private Date operationStartTime;
private Date operationEndTime;
private Date examStartTime;
private Date examEndTime;
private Integer tradeType;
private Long initCapital;
private String operationLogo;
private Long financeBasePower;
private Long financeProfitPower;
@Type(type = "json")
@Column(columnDefinition = "json")
private List<TaskQuestion> questionList;
}

@ -0,0 +1,20 @@
package com.tz.platform.entity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Data
@Entity
public class CompetitionTeam {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private Long competitionId;
private Integer stageId;
private String teamName;
private String teacherName;
}

@ -0,0 +1,42 @@
package com.tz.platform.entity;
import com.tz.platform.common.core.bo.Answer;
import com.tz.platform.common.core.bo.SubQuestionVO;
import com.vladmihalcea.hibernate.type.json.JsonStringType;
import lombok.Data;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import javax.persistence.*;
import java.util.List;
@Data
@Entity
@TypeDef(name = "json", typeClass = JsonStringType.class)
public class ExamQuestion {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private Long competitionId;
private Integer stageId;
private Integer groupId;
private Long questionType;
private Long score;
private Integer type;
@Column(columnDefinition = "text")
private String stem;
@Column(columnDefinition = "text")
private String content;
private String stemImg;
@Type(type = "json")
@Column(columnDefinition = "json" )
List<Answer> answerList;
@Column( columnDefinition = "text")
private String analysis;
@Type(type = "json")
@Column(columnDefinition = "json")
private List<Integer> answerId;
@Type(type = "json")
@Column(columnDefinition = "json")
private List<SubQuestionVO> children;
}

@ -4,6 +4,10 @@ import com.tz.platform.entity.CompetitionTask;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface CompetitionTaskDao extends JpaRepository<CompetitionTask,Integer> {
CompetitionTask getById(Integer id);
List<CompetitionTask> findAllByCompetitionId(Long competitionId);
}

@ -13,7 +13,7 @@ import java.util.Date;
import java.util.List;
@Entity
@Table(name = "question",indexes = {@Index(columnList = "title,type")})
@Table(name = "question",indexes = {@Index(columnList = "type"),@Index(columnList = "courseId,questionType,levelId"),@Index(columnList = "userNo")})
@Data
@TypeDef(name = "json", typeClass = JsonStringType.class)
public class Question {
@ -46,7 +46,6 @@ public class Question {
@Type(type = "json")
@Column(columnDefinition = "json")
private List<Integer> answerId;
@Type(type = "json")
@Column(columnDefinition = "json")
private List<SubQuestionVO> children;

@ -5,7 +5,11 @@ import lombok.Data;
@Data
public class PageQuestionVO {
private Integer pageNo;
private Integer pageSize;
private Long courseId;
private String stem;
private Integer type;
private Integer questionType;
private Integer levelId;
private Long score;
}

@ -32,6 +32,10 @@ public interface QuestionDao extends JpaRepository<Question,Long> {
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);
@Transactional
@Modifying

@ -70,6 +70,8 @@ public class TzGlobalFilter implements GlobalFilter , Ordered {
// 解析token
Long userNo = getUserNoByToken(request);
if (uri.contains("/pc") && !uri.contains("/system/pc/menu/user/list") && !uri.contains("/system/pc/menu/user/button/list")) {
// 管理后台鉴权
// if (!stringRedisTemplate.hasKey(RedisPreEnum.ADMINI_MENU.getCode().concat(userNo.toString()))) {
@ -150,6 +152,8 @@ public class TzGlobalFilter implements GlobalFilter , Ordered {
return ip;
}
private Mono<String> modifiedBody(ServerWebExchange serverWebExchange){
String device = getDevice(serverWebExchange.getRequest());
String ip = getRemoteIp(serverWebExchange.getRequest());
@ -178,6 +182,8 @@ public class TzGlobalFilter implements GlobalFilter , Ordered {
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<String, Object> bodyMap = decodeBody(body);

@ -7,6 +7,7 @@ import com.tz.platform.user.pc.bo.UserPageBO;
import com.tz.platform.user.pc.dto.UserPageDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@RestController
@RequestMapping(path = "/pc/user")
@ -19,4 +20,8 @@ public class PcUserInfoController extends BaseController {
public Result<UserPageDTO> listUser(@RequestBody UserPageBO bo){
return pcUserInfoBiz.listPage(bo.getPageNo());
}
public Result<String> importUser(MultipartFile file){
return Result.success("success");
}
}

Loading…
Cancel
Save