资源管理-课程配制 课程列表 新增课程 客观题管理-新增题目 指导入 接口定义

sale
tianea 3 years ago
parent f84503b07d
commit ec45764eb7

@ -0,0 +1,23 @@
package com.tz.platform.common.core.enmus;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum QuestionTypeEnum {
//单选
SINGLE(1,"单选"),
//多选
MULTY(2,"多选"),
//判断
JUDGE(3,"判断");
/**
*
*/
private Integer code;
/**
*
*/
private String desc;
}

@ -7,6 +7,7 @@ import lombok.Getter;
@AllArgsConstructor
public enum RedisPreEnum {
ADMINI_MENU("admini_menu_", "管理员菜单-admini_menu_");
private String code;
private String desc;

@ -0,0 +1,9 @@
package com.tz.platform.common.core.vo;
import lombok.Data;
@Data
public class Answer {
private Integer id;
private String title;
private String img;
}

@ -82,6 +82,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-52</artifactId>
<version>2.9.4</version>
</dependency>
<!-- devtools -->
<dependency>
<groupId>org.springframework.boot</groupId>

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>exam</artifactId>
<groupId>com.tz</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>exam-feign</artifactId>
<dependencies>
<dependency>
<groupId>com.tz</groupId>
<artifactId>common-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,43 @@
package com.tz.platform.feign.exam;
import com.tz.platform.feign.exam.vo.QuestionVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(value = "tz-exam-service")
public interface IFeignExam {
@GetMapping(value = "/feign/exam/question/{id}")
QuestionVo getQuestionById(@PathVariable(value = "id") Long id);
@GetMapping(value = "/feign/exam/question/list/{pageNo}")
List<QuestionVo> listQuestion(@PathVariable(value = "pageNo") Long pageNo);
@PostMapping(value = "/feign/exam/question/update")
int updateQuestion(@RequestBody QuestionVo questionVo);
@PostMapping(value = "/feign/exam/quest/save")
int saveQuestion(@RequestBody QuestionVo questionVo);
@GetMapping(value = "/feign/exam/question/delete/{id}")
int deleteQuestion(@PathVariable( value = "id") Long id);
@PostMapping(value = "/feign/exam/quest/batchInsert")
int batchQuestionInsert(@RequestBody List<QuestionVo> list);
@PostMapping(value = "/feign/exam/question/batchOff")
int batchQuestionOff(@RequestBody List<Integer> ids);
@PostMapping(value = "/feign/exam/question/batchUp")
int batchQuestionUp(@RequestBody List<Integer> ids);
@GetMapping(value = "/feign/exam/question/off/{id}")
int questionOff(@PathVariable(value = "id") Long id);
@GetMapping(value = "/feign/exam/question/up/{id}")
int questionUp(@PathVariable(value = "id") Long id);
}

@ -0,0 +1,24 @@
package com.tz.platform.feign.exam.qo;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.tz.platform.common.core.vo.Answer;
import java.util.List;
public class QuestionQO {
private Long id;
private Long courseId;
private String courseName;
private Long levelId;
private String levelName;
private Long questionType;
private String title;
private Long score;
private Integer type;
private String stem;
private String stemImg;
private Long creatorId;
List<Answer> answerList;
private String analysis;
private List<Integer> answerId;
}

@ -0,0 +1,23 @@
package com.tz.platform.feign.exam.vo;
import com.tz.platform.common.core.vo.Answer;
import java.util.List;
public class QuestionVo {
private Long id;
private Long courseId;
private String courseName;
private Long levelId;
private String levelName;
private Long questionType;
private String title;
private Long score;
private Integer type;
private String stem;
private String stemImg;
private Long creatorId;
List<Answer> answerList;
private String analysis;
private List<Integer> answerId;
}

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>exam</artifactId>
<groupId>com.tz</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>exam-service</artifactId>
<dependencies>
<dependency>
<groupId>com.tz</groupId>
<artifactId>common-core</artifactId>
</dependency>
<dependency>
<groupId>com.tz</groupId>
<artifactId>common-service</artifactId>
</dependency>
<dependency>
<groupId>com.tz</groupId>
<artifactId>exam-feign</artifactId>
</dependency>
<!-- test -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>

@ -0,0 +1,15 @@
package com.tz.platform;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ExamApplication {
public static void main(String[] args) {
SpringApplication.run(ExamApplication.class,args);
}
}

@ -0,0 +1,35 @@
package com.tz.platform.entity;
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.io.Serializable;
import java.util.Date;
import java.util.List;
@Entity
@Data
@Table(indexes = {@Index(columnList = "name")})
@TypeDef(name = "json", typeClass = JsonStringType.class)
public class Course implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
private String name;
private String type;
private String creator;
private Date createTime;
private Integer learningCount;
private String thumbnail;
@Column(columnDefinition = "text")
private String summary;
@Type(type = "json")
@Column(columnDefinition = "json" )
private List<CourseTag> courseTag;
@Type(type = "json")
@Column(columnDefinition = "json" )
private CouseCat couseCat;
}

@ -0,0 +1,17 @@
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 CourseTag {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
private String name;
}

@ -0,0 +1,17 @@
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 CouseCat {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
private String name;
}

@ -0,0 +1,42 @@
package com.tz.platform.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.tz.platform.common.core.vo.Answer;
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;
@Entity
@Table(name = "question",indexes = {@Index(columnList = "title,type")})
@Data
@TypeDef(name = "json", typeClass = JsonStringType.class)
public class Question {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
private Long courseId;
private String courseName;
private Long levelId;
private String levelName;
private Long questionType;
private String title;
private Long score;
private Integer type;
@Column(columnDefinition = "text")
private String stem;
private String stemImg;
private Long creatorId;
@Type(type = "json")
@Column(columnDefinition = "json" )
List<Answer> answerList;
@Column( columnDefinition = "text")
private String analysis;
@Type(type = "json")
@Column(columnDefinition = "json")
@JsonIgnore
private List<Integer> answerId;
}

@ -0,0 +1,66 @@
package com.tz.platform.exam.feign;
import com.tz.platform.common.core.base.BaseController;
import com.tz.platform.exam.feign.biz.FeignExamBiz;
import com.tz.platform.feign.exam.IFeignExam;
import com.tz.platform.feign.exam.vo.QuestionVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class FeignExamController extends BaseController implements IFeignExam {
@Autowired
private FeignExamBiz feignExamBiz;
@Override
public QuestionVo getQuestionById(Long id) {
return null;
}
@Override
public List<QuestionVo> listQuestion(Long pageNo) {
return null;
}
@Override
public int updateQuestion(QuestionVo questionVo) {
return 0;
}
@Override
public int saveQuestion(QuestionVo questionVo) {
return 0;
}
@Override
public int deleteQuestion(Long id) {
return 0;
}
@Override
public int batchQuestionInsert(List<QuestionVo> list) {
return 0;
}
@Override
public int batchQuestionOff(List<Integer> ids) {
return 0;
}
@Override
public int batchQuestionUp(List<Integer> ids) {
return 0;
}
@Override
public int questionOff(Long id) {
return 0;
}
@Override
public int questionUp(Long id) {
return 0;
}
}

@ -0,0 +1,12 @@
package com.tz.platform.exam.feign.biz;
import com.tz.platform.repository.QuestionDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class FeignExamBiz {
@Autowired
private QuestionDao questionDao;
}

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

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

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

@ -0,0 +1,10 @@
package com.tz.platform.repository;
import com.tz.platform.entity.Question;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface QuestionDao extends JpaRepository<Question,Long> {
Question getById(Long id);
}

@ -0,0 +1,17 @@
server:
port: 50013
spring:
application:
name: tz-exam-service
profiles:
active: dev
cloud:
nacos:
server-addr: 127.0.0.1:8848
username: nacos
password: nacos
config:
namespace: ${spring.profiles.active}
file-extension: yaml
discovery:
namespace: ${spring.profiles.active}

@ -0,0 +1,43 @@
package com.tz.platform.repository;
import com.tz.platform.common.core.vo.Answer;
import com.tz.platform.entity.Question;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@SpringBootTest
public class QuestionDaoTest {
@Autowired
private QuestionDao questionDao;
@Test
public void questionSaveTest(){
Question question = new Question();
question.setAnalysis("ffefadsf");
question.setLevelId(1L);
question.setTitle("测试题");
question.setLevelName("本科");
question.setQuestionType(1L);
question.setScore(3L);
question.setStem("天是什么颜色");
List<Answer> answerList = new ArrayList<>();
Answer answer = new Answer();
answer.setId(1);
answer.setTitle("黑色");
answerList.add(answer);
question.setAnswerList(answerList);
List<Integer> ids = answerList.stream().map(answer1 -> answer.getId()).collect(Collectors.toList());
question.setAnswerId(ids);
questionDao.save(question);
}
@Test
public void questionGetTest(){
Question question = questionDao.getById(1L);
System.out.println(question.getAnswerList().size());
}
}

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>platform</artifactId>
<groupId>com.tz</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>exam</artifactId>
<packaging>pom</packaging>
<modules>
<module>exam-feign</module>
<module>exam-service</module>
</modules>
</project>

@ -14,6 +14,7 @@
<module>gateway</module>
<module>competition</module>
<module>system</module>
<module>exam</module>
</modules>
<properties>
@ -66,6 +67,16 @@
<artifactId>user-feign</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.tz</groupId>
<artifactId>exam-feign</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.tz</groupId>
<artifactId>system-feign</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</dependencyManagement>

@ -24,5 +24,13 @@
<groupId>com.tz</groupId>
<artifactId>user-feign</artifactId>
</dependency>
<dependency>
<groupId>com.tz</groupId>
<artifactId>exam-feign</artifactId>
</dependency>
<dependency>
<groupId>com.tz</groupId>
<artifactId>system-feign</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,8 @@
package com.tz.platform.system.feign;
import com.tz.platform.common.core.base.BaseController;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class FeignSystemMenuController extends BaseController {
}

@ -4,6 +4,10 @@ import com.tz.platform.feign.user.vo.UserVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@FeignClient(value = "tz-user-service")
public interface IFeignUser {
@ -12,4 +16,8 @@ public interface IFeignUser {
UserVo getByUserNo(@PathVariable(value = "userNo") Long userNo);
@GetMapping(value = "/feign/user/getByMobile/{mobile}")
UserVo getByMobile(@PathVariable(value = "mobile") String mobile);
@PostMapping(value = "feign/user/batchInsert")
int batchInser(@RequestBody List<UserVo> userVoList);
}

Loading…
Cancel
Save