宋悦 8 роки тому
батько
коміт
8f904f8c2b
58 змінених файлів з 2563 додано та 0 видалено
  1. 23 0
      cqb-base/pom.xml
  2. 11 0
      cqb-base/src/main/java/com/qmth/cqb/base/dao/CourseRepo.java
  3. 11 0
      cqb-base/src/main/java/com/qmth/cqb/base/dao/QuesTypeRepo.java
  4. 12 0
      cqb-base/src/main/java/com/qmth/cqb/base/dao/RoleRepo.java
  5. 13 0
      cqb-base/src/main/java/com/qmth/cqb/base/dao/UserRepo.java
  6. 42 0
      cqb-base/src/main/java/com/qmth/cqb/base/model/Book.java
  7. 91 0
      cqb-base/src/main/java/com/qmth/cqb/base/model/Course.java
  8. 81 0
      cqb-base/src/main/java/com/qmth/cqb/base/model/QuesType.java
  9. 72 0
      cqb-base/src/main/java/com/qmth/cqb/base/model/Role.java
  10. 104 0
      cqb-base/src/main/java/com/qmth/cqb/base/model/User.java
  11. 11 0
      cqb-base/src/main/java/com/qmth/cqb/base/service/CourseService.java
  12. 10 0
      cqb-base/src/main/java/com/qmth/cqb/base/service/QuesTypeService.java
  13. 34 0
      cqb-base/src/main/java/com/qmth/cqb/base/service/RoleService.java
  14. 35 0
      cqb-base/src/main/java/com/qmth/cqb/base/service/UserService.java
  15. 10 0
      cqb-base/src/main/java/com/qmth/cqb/base/web/CourseController.java
  16. 10 0
      cqb-base/src/main/java/com/qmth/cqb/base/web/QuesTypeController.java
  17. 79 0
      cqb-base/src/main/java/com/qmth/cqb/base/web/RoleController.java
  18. 80 0
      cqb-base/src/main/java/com/qmth/cqb/base/web/UserController.java
  19. 43 0
      cqb-comm-utils/pom.xml
  20. 8 0
      cqb-comm-utils/src/main/java/com/qmth/cqb/utils/CommonUtils.java
  21. 34 0
      cqb-comm-utils/src/main/java/com/qmth/cqb/utils/modal/NormalResponse.java
  22. 63 0
      cqb-comm-utils/src/main/java/com/qmth/cqb/utils/modal/PagingAndSortingResponse.java
  23. 38 0
      cqb-comm-utils/src/test/java/com/qmth/cqb/AppTest.java
  24. 35 0
      cqb-flow-college/pom.xml
  25. 27 0
      cqb-flow-core/pom.xml
  26. 38 0
      cqb-flow-core/src/test/java/com/qmth/cqb/AppTest.java
  27. 35 0
      cqb-flow-zk/pom.xml
  28. 31 0
      cqb-gen-paper/pom.xml
  29. 11 0
      cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/dao/GenPaperRepo.java
  30. 128 0
      cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/model/GenPaper.java
  31. 73 0
      cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/model/GenPaperDetail.java
  32. 79 0
      cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/model/GenPaperResource.java
  33. 52 0
      cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/model/GenPaperRule.java
  34. 14 0
      cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/service/GenPaperService.java
  35. 18 0
      cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/web/GenPaperController.java
  36. 26 0
      cqb-paper/pom.xml
  37. 27 0
      cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java
  38. 26 0
      cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java
  39. 25 0
      cqb-question/pom.xml
  40. 11 0
      cqb-question/src/main/java/com/qmth/cqb/question/dao/ImportPaperRepo.java
  41. 11 0
      cqb-question/src/main/java/com/qmth/cqb/question/dao/QuesRepo.java
  42. 11 0
      cqb-question/src/main/java/com/qmth/cqb/question/dao/QuesStructTypeRepo.java
  43. 105 0
      cqb-question/src/main/java/com/qmth/cqb/question/model/ImportPaper.java
  44. 47 0
      cqb-question/src/main/java/com/qmth/cqb/question/model/QuesOption.java
  45. 69 0
      cqb-question/src/main/java/com/qmth/cqb/question/model/QuesResource.java
  46. 62 0
      cqb-question/src/main/java/com/qmth/cqb/question/model/QuesStructType.java
  47. 163 0
      cqb-question/src/main/java/com/qmth/cqb/question/model/Question.java
  48. 92 0
      cqb-question/src/main/java/com/qmth/cqb/question/service/ImportPaperService.java
  49. 78 0
      cqb-question/src/main/java/com/qmth/cqb/question/service/QuesService.java
  50. 80 0
      cqb-question/src/main/java/com/qmth/cqb/question/service/QuesStructTypeService.java
  51. 10 0
      cqb-question/src/main/java/com/qmth/cqb/question/web/ImportPaperController.java
  52. 18 0
      cqb-question/src/main/java/com/qmth/cqb/question/web/QuesController.java
  53. 10 0
      cqb-question/src/main/java/com/qmth/cqb/question/web/QuesStructTypeController.java
  54. 95 0
      cqb-starter/pom.xml
  55. 16 0
      cqb-starter/src/main/java/com/qmth/cqb/App.java
  56. 3 0
      cqb-starter/src/main/resources/application.properties
  57. 65 0
      cqb-starter/src/test/java/com/qmth/cqb/AppTest.java
  58. 57 0
      pom.xml

+ 23 - 0
cqb-base/pom.xml

@@ -0,0 +1,23 @@
+<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>comm-ques-bank</artifactId>
+        <groupId>com.qmth.cqb</groupId>
+        <version>0.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cqb-base</artifactId>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-comm-utils</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+    </dependencies>
+</project>

+ 11 - 0
cqb-base/src/main/java/com/qmth/cqb/base/dao/CourseRepo.java

@@ -0,0 +1,11 @@
+package com.qmth.cqb.base.dao;
+
+import com.qmth.cqb.base.model.Course;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+public interface CourseRepo extends MongoRepository<Course, String>,QueryByExampleExecutor<Course> {
+}

+ 11 - 0
cqb-base/src/main/java/com/qmth/cqb/base/dao/QuesTypeRepo.java

@@ -0,0 +1,11 @@
+package com.qmth.cqb.base.dao;
+
+import com.qmth.cqb.base.model.QuesType;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+public interface QuesTypeRepo extends MongoRepository<QuesType,String>,QueryByExampleExecutor<QuesType> {
+}

+ 12 - 0
cqb-base/src/main/java/com/qmth/cqb/base/dao/RoleRepo.java

@@ -0,0 +1,12 @@
+package com.qmth.cqb.base.dao;
+
+import com.qmth.cqb.base.model.Role;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+public interface RoleRepo extends MongoRepository<Role,String>,QueryByExampleExecutor<Role> {
+    Role findById(String id);
+}

+ 13 - 0
cqb-base/src/main/java/com/qmth/cqb/base/dao/UserRepo.java

@@ -0,0 +1,13 @@
+package com.qmth.cqb.base.dao;
+
+import com.qmth.cqb.base.model.User;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+public interface UserRepo extends MongoRepository<User, String>,QueryByExampleExecutor<User> {
+    User findByLoginName(String loginName);
+    User findById(String id);
+}

+ 42 - 0
cqb-base/src/main/java/com/qmth/cqb/base/model/Book.java

@@ -0,0 +1,42 @@
+package com.qmth.cqb.base.model;
+
+import java.io.Serializable;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+public class Book implements Serializable{
+    private static final long serialVersionUID = 6831533644114592861L;
+    private String bookNo;
+
+    private String bookName;
+
+    private String status;
+
+    public String getBookNo() {
+        return bookNo;
+    }
+
+    public void setBookNo(String bookNo) {
+        this.bookNo = bookNo;
+    }
+
+    public String getBookName() {
+        return bookName;
+    }
+
+    public void setBookName(String bookName) {
+        this.bookName = bookName;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public Book() {
+    }
+}

+ 91 - 0
cqb-base/src/main/java/com/qmth/cqb/base/model/Course.java

@@ -0,0 +1,91 @@
+package com.qmth.cqb.base.model;
+
+import org.springframework.data.annotation.Id;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+public class Course implements Serializable{
+    private static final long serialVersionUID = 7794074467488869343L;
+    @Id
+    private String id;
+
+    private String courseNo;
+
+    private String courseName;
+
+    private List<Book> book;
+
+    private String createTime;//创建时间
+
+    private String updateTime;//更新时间
+
+    private Map params;
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getCourseNo() {
+        return courseNo;
+    }
+
+    public void setCourseNo(String courseNo) {
+        this.courseNo = courseNo;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public List<Book> getBook() {
+        return book;
+    }
+
+    public void setBook(List<Book> book) {
+        this.book = book;
+    }
+
+    public Map getParams() {
+        return params;
+    }
+
+    public void setParams(Map params) {
+        this.params = params;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Course() {
+    }
+}

+ 81 - 0
cqb-base/src/main/java/com/qmth/cqb/base/model/QuesType.java

@@ -0,0 +1,81 @@
+package com.qmth.cqb.base.model;
+
+import org.springframework.data.annotation.Id;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+public class QuesType implements Serializable {
+    private static final long serialVersionUID = 1270577782388822573L;
+
+    @Id
+    private String id;
+
+    private String typeName;//类型名称
+
+    private String typeTitle;//类型标题
+
+    private String createTime;//创建时间
+
+    private String updateTime;//更新时间
+
+    private Map params;//类型参数
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getTypeName() {
+        return typeName;
+    }
+
+    public void setTypeName(String typeName) {
+        this.typeName = typeName;
+    }
+
+    public Map getParams() {
+        return params;
+    }
+
+    public void setParams(Map params) {
+        this.params = params;
+    }
+
+    public String getTypeTitle() {
+        return typeTitle;
+    }
+
+    public void setTypeTitle(String typeTitle) {
+        this.typeTitle = typeTitle;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public QuesType() {
+    }
+}

+ 72 - 0
cqb-base/src/main/java/com/qmth/cqb/base/model/Role.java

@@ -0,0 +1,72 @@
+package com.qmth.cqb.base.model;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+public class Role implements Serializable{
+    private static final long serialVersionUID = -312105867212825491L;
+
+    @Id
+    private String id;
+
+    private String roleName;
+
+    private String createTime;//创建时间
+
+    private String updateTime;//更新时间
+
+    private Map params;//额外参数,可动态添加
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+
+    public Map getParams() {
+        return params;
+    }
+
+    public void setParams(Map params) {
+        this.params = params;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public Role() {
+    }
+}

+ 104 - 0
cqb-base/src/main/java/com/qmth/cqb/base/model/User.java

@@ -0,0 +1,104 @@
+package com.qmth.cqb.base.model;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.DBRef;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+public class User implements Serializable {
+
+    private static final long serialVersionUID = -2813076450724009433L;
+
+    @Id
+    private String id;//user id
+
+    private String loginName;//登录名
+
+    private String userName;//用户名
+
+    private String passWord;//密码
+
+    @DBRef
+    private Role role;//角色
+
+    private String createTime;//创建时间
+
+    private String updateTime;//更新时间
+
+    private Map params;//额外参数,可动态添加
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getLoginName() {
+        return loginName;
+    }
+
+    public void setLoginName(String loginName) {
+        this.loginName = loginName;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getPassWord() {
+        return passWord;
+    }
+
+    public void setPassWord(String passWord) {
+        this.passWord = passWord;
+    }
+
+    public Role getRole() {
+        return role;
+    }
+
+    public void setRole(Role role) {
+        this.role = role;
+    }
+
+    public Map getParams() {
+        return params;
+    }
+
+    public void setParams(Map params) {
+        this.params = params;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public User() {
+    }
+}

+ 11 - 0
cqb-base/src/main/java/com/qmth/cqb/base/service/CourseService.java

@@ -0,0 +1,11 @@
+package com.qmth.cqb.base.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+@Service
+public class CourseService {
+
+}

+ 10 - 0
cqb-base/src/main/java/com/qmth/cqb/base/service/QuesTypeService.java

@@ -0,0 +1,10 @@
+package com.qmth.cqb.base.service;
+
+import org.springframework.stereotype.Service;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+@Service
+public class QuesTypeService {
+}

+ 34 - 0
cqb-base/src/main/java/com/qmth/cqb/base/service/RoleService.java

@@ -0,0 +1,34 @@
+package com.qmth.cqb.base.service;
+
+import com.qmth.cqb.base.dao.RoleRepo;
+import com.qmth.cqb.base.model.Role;
+import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.ExampleMatcher;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.stereotype.Service;
+
+import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+@Service
+public class RoleService {
+    @Autowired
+    RoleRepo roleRepo;
+
+    @Autowired
+    MongoTemplate mongoTemplate;
+
+    public PagingAndSortingResponse<Role> findAll(Role searchCondition, PageRequest pageRequest){
+        ExampleMatcher matcher = ExampleMatcher.matching()
+                .withMatcher("roleName", startsWith());
+        Page<Role> roleList = roleRepo.findAll(Example.of(searchCondition,matcher),pageRequest);
+        return new PagingAndSortingResponse<Role>(roleList.getNumber(),roleList.getSize(),
+                roleList.getTotalPages(),roleList.getTotalElements(),roleList.getContent());
+    }
+}

+ 35 - 0
cqb-base/src/main/java/com/qmth/cqb/base/service/UserService.java

@@ -0,0 +1,35 @@
+package com.qmth.cqb.base.service;
+
+import com.qmth.cqb.base.dao.UserRepo;
+import com.qmth.cqb.base.model.User;
+import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.ExampleMatcher;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.stereotype.Service;
+
+import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.startsWith;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+@Service
+public class UserService {
+    @Autowired
+    UserRepo userRepo;
+
+    @Autowired
+    MongoTemplate mongoTemplate;
+
+    public PagingAndSortingResponse<User> findAll(User searchCondition, PageRequest pageRequest){
+        ExampleMatcher matcher = ExampleMatcher.matching()
+                .withMatcher("loginName", startsWith())
+                .withMatcher("userName", startsWith());
+        Page<User> userList = userRepo.findAll(Example.of(searchCondition,matcher),pageRequest);
+        return new PagingAndSortingResponse<User>(userList.getNumber(),userList.getSize(),
+                userList.getTotalPages(),userList.getTotalElements(),userList.getContent());
+    }
+}

+ 10 - 0
cqb-base/src/main/java/com/qmth/cqb/base/web/CourseController.java

@@ -0,0 +1,10 @@
+package com.qmth.cqb.base.web;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+@Controller
+public class CourseController {
+}

+ 10 - 0
cqb-base/src/main/java/com/qmth/cqb/base/web/QuesTypeController.java

@@ -0,0 +1,10 @@
+package com.qmth.cqb.base.web;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+@Controller
+public class QuesTypeController {
+}

+ 79 - 0
cqb-base/src/main/java/com/qmth/cqb/base/web/RoleController.java

@@ -0,0 +1,79 @@
+package com.qmth.cqb.base.web;
+
+import com.google.gson.Gson;
+import com.qmth.cqb.base.dao.RoleRepo;
+import com.qmth.cqb.base.model.Role;
+import com.qmth.cqb.base.service.RoleService;
+import com.qmth.cqb.utils.modal.NormalResponse;
+import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+@RestController
+@RequestMapping("/")
+public class RoleController {
+    @Autowired
+    Gson gson;
+
+    @Autowired
+    RoleRepo roleRepo;
+
+    @Autowired
+    RoleService roleService;
+
+    /**
+     * 获取角色
+     * @param role_id
+     * @return
+     */
+    @GetMapping(value = "/role/{role_id}")
+    public Role getRoleById(@PathVariable String role_id){
+        return roleRepo.findById(role_id);
+    }
+
+    /**
+     * 获取全部角色
+     * @return
+     */
+    @GetMapping(value = "/role/all/{curPage}/{pageSize}")
+    public PagingAndSortingResponse<Role> getAllRole(@ModelAttribute Role searchCondition,@PathVariable int curPage,@PathVariable int pageSize){
+        return roleService.findAll(searchCondition,new PageRequest(curPage - 1,pageSize));
+    }
+
+    /**
+     * 更新角色
+     * @param role
+     * @return
+     */
+    @PutMapping(value = "/role")
+    public NormalResponse updateRole(@ModelAttribute Role role){
+        roleRepo.save(role);
+        return new NormalResponse(HttpStatus.OK.toString(),"success");
+    }
+
+    /**
+     * 新增角色
+     * @param role
+     * @return
+     */
+    @PostMapping(value = "/role")
+    public NormalResponse addRole(@ModelAttribute Role role){
+        roleRepo.save(role);
+        return new NormalResponse(HttpStatus.OK.toString(),"success");
+    }
+
+    /**
+     * 删除角色
+     * @param role_id
+     * @return
+     */
+    @DeleteMapping(value = "/role/{role_id}")
+    public NormalResponse removeRole(@PathVariable String role_id){
+        roleRepo.delete(role_id);
+        return new NormalResponse(HttpStatus.OK.toString(),"success");
+    }}

+ 80 - 0
cqb-base/src/main/java/com/qmth/cqb/base/web/UserController.java

@@ -0,0 +1,80 @@
+package com.qmth.cqb.base.web;
+
+import com.google.gson.Gson;
+import com.qmth.cqb.base.dao.UserRepo;
+import com.qmth.cqb.base.model.User;
+import com.qmth.cqb.base.service.UserService;
+import com.qmth.cqb.utils.modal.NormalResponse;
+import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * Created by songyue on 16/12/26.
+ */
+@RestController
+@RequestMapping("/")
+public class UserController {
+    @Autowired
+    Gson gson;
+
+    @Autowired
+    UserRepo userRepo;
+
+    @Autowired
+    UserService userService;
+
+    /**
+     * 获取用户
+     * @param user_id
+     * @return
+     */
+    @GetMapping(value = "/user/{user_id}")
+    public User getUserById(@PathVariable String user_id){
+        return userRepo.findById(user_id);
+    }
+
+    /**
+     * 获取全部用户
+     * @return
+     */
+    @GetMapping(value = "/user/all/{curPage}/{paseSize}")
+    public PagingAndSortingResponse<User> getAllUser(@ModelAttribute User searchCondition, @PathVariable int curPage, @PathVariable int pageSize){
+        return userService.findAll(searchCondition,new PageRequest(curPage - 1,pageSize));
+    }
+
+    /**
+     * 更新用户
+     * @param user
+     * @return
+     */
+    @PutMapping(value = "/user")
+    public NormalResponse updateUser(@ModelAttribute User user){
+        userRepo.save(user);
+        return new NormalResponse(HttpStatus.OK.toString(),"success");
+    }
+
+    /**
+     * 新增用户
+     * @param user
+     * @return
+     */
+    @PostMapping(value = "/user")
+    public NormalResponse addUser(@ModelAttribute User user){
+        userRepo.save(user);
+        return new NormalResponse(HttpStatus.OK.toString(),"success");
+    }
+
+    /**
+     * 删除用户
+     * @param user_id
+     * @return
+     */
+    @DeleteMapping(value = "/user/{user_id}")
+    public NormalResponse removeUser(@PathVariable String user_id){
+        userRepo.delete(user_id);
+        return new NormalResponse(HttpStatus.OK.toString(),"success");
+    }
+}

+ 43 - 0
cqb-comm-utils/pom.xml

@@ -0,0 +1,43 @@
+<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>comm-ques-bank</artifactId>
+        <groupId>com.qmth.cqb</groupId>
+        <version>0.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cqb-comm-utils</artifactId>
+    <packaging>jar</packaging>
+
+    <name>cqb-comm-utils</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+            <version>2.7</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-mongodb</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>3.8.1</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>

+ 8 - 0
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/CommonUtils.java

@@ -0,0 +1,8 @@
+package com.qmth.cqb.utils;
+
+/**
+ * Created by songyue on 16/12/27.
+ */
+public class CommonUtils {
+
+}

+ 34 - 0
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/modal/NormalResponse.java

@@ -0,0 +1,34 @@
+package com.qmth.cqb.utils.modal;
+
+/**
+ * 普通操作响应类
+ * Created by songyue on 16/12/27.
+ */
+public class NormalResponse {
+    private String httpStatus;//http状态字
+    private String Message;//返回信息
+
+    public String getHttpStatus() {
+        return httpStatus;
+    }
+
+    public void setHttpStatus(String httpStatus) {
+        this.httpStatus = httpStatus;
+    }
+
+    public String getMessage() {
+        return Message;
+    }
+
+    public void setMessage(String message) {
+        Message = message;
+    }
+
+    public NormalResponse(String httpStatus, String message) {
+        this.httpStatus = httpStatus;
+        Message = message;
+    }
+
+    public NormalResponse() {
+    }
+}

+ 63 - 0
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/modal/PagingAndSortingResponse.java

@@ -0,0 +1,63 @@
+package com.qmth.cqb.utils.modal;
+
+import java.util.List;
+
+/**
+ * 查询分页相应类
+ * Created by songyue on 16/12/27.
+ */
+public class PagingAndSortingResponse<T>{
+    private int curPage;//当前页数
+    private int pageSize;//每页数据量
+    private int totalPages;//总页数
+    private long totalElements;//总数据量
+    private List<T> dataList;//实际数据
+
+    public PagingAndSortingResponse(int curPage, int pageSize, int totalPages, long totalElements, List<T> dataList) {
+        this.curPage = curPage;
+        this.pageSize = pageSize;
+        this.totalPages = totalPages;
+        this.totalElements = totalElements;
+        this.dataList = dataList;
+    }
+
+    public int getCurPage() {
+        return curPage;
+    }
+
+    public void setCurPage(int curPage) {
+        this.curPage = curPage;
+    }
+
+    public int getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(int pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public int getTotalPages() {
+        return totalPages;
+    }
+
+    public void setTotalPages(int totalPages) {
+        this.totalPages = totalPages;
+    }
+
+    public long getTotalElements() {
+        return totalElements;
+    }
+
+    public void setTotalElements(long totalElements) {
+        this.totalElements = totalElements;
+    }
+
+    public List<T> getDataList() {
+        return dataList;
+    }
+
+    public void setDataList(List<T> dataList) {
+        this.dataList = dataList;
+    }
+}

+ 38 - 0
cqb-comm-utils/src/test/java/com/qmth/cqb/AppTest.java

@@ -0,0 +1,38 @@
+package com.qmth.cqb;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest 
+    extends TestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( AppTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertTrue( true );
+    }
+}

+ 35 - 0
cqb-flow-college/pom.xml

@@ -0,0 +1,35 @@
+<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>comm-ques-bank</artifactId>
+        <groupId>com.qmth.cqb</groupId>
+        <version>0.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cqb-flow-college</artifactId>
+
+    <name>cqb-flow-college</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-base</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-flow-core</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-gen-paper</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+    </dependencies>
+</project>

+ 27 - 0
cqb-flow-core/pom.xml

@@ -0,0 +1,27 @@
+<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>comm-ques-bank</artifactId>
+        <groupId>com.qmth.cqb</groupId>
+        <version>0.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cqb-flow-core</artifactId>
+    <packaging>jar</packaging>
+
+    <name>cqb-flow-core</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>3.8.1</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>

+ 38 - 0
cqb-flow-core/src/test/java/com/qmth/cqb/AppTest.java

@@ -0,0 +1,38 @@
+package com.qmth.cqb;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest 
+    extends TestCase
+{
+    /**
+     * Create the test case
+     *
+     * @param testName name of the test case
+     */
+    public AppTest( String testName )
+    {
+        super( testName );
+    }
+
+    /**
+     * @return the suite of tests being tested
+     */
+    public static Test suite()
+    {
+        return new TestSuite( AppTest.class );
+    }
+
+    /**
+     * Rigourous Test :-)
+     */
+    public void testApp()
+    {
+        assertTrue( true );
+    }
+}

+ 35 - 0
cqb-flow-zk/pom.xml

@@ -0,0 +1,35 @@
+<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>comm-ques-bank</artifactId>
+        <groupId>com.qmth.cqb</groupId>
+        <version>0.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cqb-flow-zk</artifactId>
+
+    <name>cqb-flow-zk</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-base</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-flow-core</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-gen-paper</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+    </dependencies>
+</project>

+ 31 - 0
cqb-gen-paper/pom.xml

@@ -0,0 +1,31 @@
+<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>comm-ques-bank</artifactId>
+        <groupId>com.qmth.cqb</groupId>
+        <version>0.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cqb-gen-paper</artifactId>
+
+    <name>cqb-gen-paper</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-question</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-base</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+    </dependencies>
+</project>

+ 11 - 0
cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/dao/GenPaperRepo.java

@@ -0,0 +1,11 @@
+package com.qmth.cqb.genpaper.dao;
+
+import com.qmth.cqb.genpaper.model.GenPaper;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+public interface GenPaperRepo extends MongoRepository<GenPaper,String>,QueryByExampleExecutor<GenPaper>{
+}

+ 128 - 0
cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/model/GenPaper.java

@@ -0,0 +1,128 @@
+package com.qmth.cqb.genpaper.model;
+
+import com.qmth.cqb.base.model.Course;
+import com.qmth.cqb.base.model.User;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.DBRef;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 生成试卷实体类
+ * Created by songyue on 16/12/27.
+ */
+public class GenPaper implements Serializable{
+    private static final long serialVersionUID = 423546337699869114L;
+
+    @Id
+    private String id;
+
+    private String paperNo;//试卷编号
+
+    private String paperName;//试卷名称
+
+    private String createTime;//创建时间
+
+    private String updateTime;//更新时间
+
+    private GenPaperRule genPaperRule;//组卷规则
+
+    private List<GenPaperResource> genPaperResource;//试卷资源库(试卷、答案、网评卷)
+
+    @DBRef
+    private List<GenPaperDetail> genPaperDetails;//试卷明细
+
+    @DBRef
+    private Course course;//课程信息
+
+    @DBRef
+    private User user;//用户信息
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getPaperNo() {
+        return paperNo;
+    }
+
+    public void setPaperNo(String paperNo) {
+        this.paperNo = paperNo;
+    }
+
+    public String getPaperName() {
+        return paperName;
+    }
+
+    public void setPaperName(String paperName) {
+        this.paperName = paperName;
+    }
+
+    public GenPaperRule getGenPaperRule() {
+        return genPaperRule;
+    }
+
+    public void setGenPaperRule(GenPaperRule genPaperRule) {
+        this.genPaperRule = genPaperRule;
+    }
+
+    public List<GenPaperDetail> getGenPaperDetails() {
+        return genPaperDetails;
+    }
+
+    public void setGenPaperDetails(List<GenPaperDetail> genPaperDetails) {
+        this.genPaperDetails = genPaperDetails;
+    }
+
+    public Course getCourse() {
+        return course;
+    }
+
+    public void setCourse(Course course) {
+        this.course = course;
+    }
+
+    public User getUser() {
+        return user;
+    }
+
+    public void setUser(User user) {
+        this.user = user;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public List<GenPaperResource> getGenPaperResource() {
+        return genPaperResource;
+    }
+
+    public void setGenPaperResource(List<GenPaperResource> genPaperResource) {
+        this.genPaperResource = genPaperResource;
+    }
+
+    public GenPaper() {
+    }
+}

+ 73 - 0
cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/model/GenPaperDetail.java

@@ -0,0 +1,73 @@
+package com.qmth.cqb.genpaper.model;
+
+import com.qmth.cqb.question.model.Question;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.DBRef;
+
+import java.io.Serializable;
+
+/**
+ * 试卷明细类,记录试题的题组信息
+ * Created by songyue on 16/12/27.
+ */
+public class GenPaperDetail implements Serializable{
+    private static final long serialVersionUID = -8132174228626243138L;
+    @Id
+    private String id;
+
+    private String mainNo;//大题号
+
+    private String subNo;//小题号
+
+    private int sort;//排序
+
+    @DBRef
+    private Question question;//关联试题
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getMainNo() {
+        return mainNo;
+    }
+
+    public void setMainNo(String mainNo) {
+        this.mainNo = mainNo;
+    }
+
+    public String getSubNo() {
+        return subNo;
+    }
+
+    public void setSubNo(String subNo) {
+        this.subNo = subNo;
+    }
+
+    public int getSort() {
+        return sort;
+    }
+
+    public void setSort(int sort) {
+        this.sort = sort;
+    }
+
+    public Question getQuestion() {
+        return question;
+    }
+
+    public void setQuestion(Question question) {
+        this.question = question;
+    }
+
+    public GenPaperDetail() {
+    }
+}

+ 79 - 0
cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/model/GenPaperResource.java

@@ -0,0 +1,79 @@
+package com.qmth.cqb.genpaper.model;
+
+import org.bson.types.ObjectId;
+
+import java.io.Serializable;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+public class GenPaperResource implements Serializable{
+    private static final long serialVersionUID = -8009449548977861957L;
+
+    private String resourceNo;//资源编号
+
+    private String resourceType;//资源类型(试卷、答案、网评卷等)
+
+    private String fileType;//文件类型(word、html)
+
+    private int sort;//排序
+
+    private ObjectId fileId;//GridFs中存储地址
+
+    private byte[] resourseData;
+
+    public String getResourceNo() {
+        return resourceNo;
+    }
+
+    public void setResourceNo(String resourceNo) {
+        this.resourceNo = resourceNo;
+    }
+
+    public String getResourceType() {
+        return resourceType;
+    }
+
+    public void setResourceType(String resourceType) {
+        this.resourceType = resourceType;
+    }
+
+    public String getFileType() {
+        return fileType;
+    }
+
+    public void setFileType(String fileType) {
+        this.fileType = fileType;
+    }
+
+    public int getSort() {
+        return sort;
+    }
+
+    public void setSort(int sort) {
+        this.sort = sort;
+    }
+
+    public ObjectId getFileId() {
+        return fileId;
+    }
+
+    public void setFileId(ObjectId fileId) {
+        this.fileId = fileId;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public byte[] getResourseData() {
+        return resourseData;
+    }
+
+    public void setResourseData(byte[] resourseData) {
+        this.resourseData = resourseData;
+    }
+
+    public GenPaperResource() {
+    }
+}

+ 52 - 0
cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/model/GenPaperRule.java

@@ -0,0 +1,52 @@
+package com.qmth.cqb.genpaper.model;
+
+import com.qmth.cqb.question.model.Question;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 组卷规则类
+ * Created by songyue on 16/12/27.
+ */
+public class GenPaperRule implements Serializable{
+    private static final long serialVersionUID = 6015250738786576931L;
+
+    private String ruleName;//规则名称
+
+    private List<Question> choseQuestions;//选择试题集合
+
+    private Map params;//组卷动态规则
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getRuleName() {
+        return ruleName;
+    }
+
+    public void setRuleName(String ruleName) {
+        this.ruleName = ruleName;
+    }
+
+    public List<Question> getChoseQuestions() {
+        return choseQuestions;
+    }
+
+    public void setChoseQuestions(List<Question> choseQuestions) {
+        this.choseQuestions = choseQuestions;
+    }
+
+    public Map getParams() {
+        return params;
+    }
+
+    public void setParams(Map params) {
+        this.params = params;
+    }
+
+    public GenPaperRule() {
+    }
+}

+ 14 - 0
cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/service/GenPaperService.java

@@ -0,0 +1,14 @@
+package com.qmth.cqb.genpaper.service;
+
+import com.qmth.cqb.genpaper.dao.GenPaperRepo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+@Service
+public class GenPaperService {
+    @Autowired
+    GenPaperRepo genPaperRepo;
+}

+ 18 - 0
cqb-gen-paper/src/main/java/com/qmth/cqb/genpaper/web/GenPaperController.java

@@ -0,0 +1,18 @@
+package com.qmth.cqb.genpaper.web;
+
+import com.qmth.cqb.genpaper.dao.GenPaperRepo;
+import com.qmth.cqb.genpaper.service.GenPaperService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+@Controller
+public class GenPaperController {
+    @Autowired
+    GenPaperService genPaperService;
+
+    @Autowired
+    GenPaperRepo genPaperRepo;
+}

+ 26 - 0
cqb-paper/pom.xml

@@ -0,0 +1,26 @@
+<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>comm-ques-bank</artifactId>
+        <groupId>com.qmth.cqb</groupId>
+        <version>0.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cqb-paper</artifactId>
+    <packaging>jar</packaging>
+
+    <name>cqb-paper</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-gen-paper</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+    </dependencies>
+</project>

+ 27 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperService.java

@@ -0,0 +1,27 @@
+package com.qmth.cqb.paper.service;
+
+import com.qmth.cqb.genpaper.dao.GenPaperRepo;
+import com.qmth.cqb.genpaper.service.GenPaperService;
+import com.qmth.cqb.question.dao.ImportPaperRepo;
+import com.qmth.cqb.question.model.ImportPaper;
+import com.qmth.cqb.question.service.ImportPaperService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+@Service
+public class PaperService {
+    @Autowired
+    GenPaperService genPaperService;
+
+    @Autowired
+    GenPaperRepo genPaperRepo;
+
+    @Autowired
+    ImportPaperRepo importPaperRepo;
+
+    @Autowired
+    ImportPaperService importPaperService;
+}

+ 26 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/web/PaperController.java

@@ -0,0 +1,26 @@
+package com.qmth.cqb.paper.web;
+
+import com.qmth.cqb.genpaper.dao.GenPaperRepo;
+import com.qmth.cqb.genpaper.service.GenPaperService;
+import com.qmth.cqb.question.dao.ImportPaperRepo;
+import com.qmth.cqb.question.service.ImportPaperService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+@Controller
+public class PaperController {
+    @Autowired
+    GenPaperService genPaperService;
+
+    @Autowired
+    GenPaperRepo genPaperRepo;
+
+    @Autowired
+    ImportPaperRepo importPaperRepo;
+
+    @Autowired
+    ImportPaperService importPaperService;
+}

+ 25 - 0
cqb-question/pom.xml

@@ -0,0 +1,25 @@
+<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>comm-ques-bank</artifactId>
+        <groupId>com.qmth.cqb</groupId>
+        <version>0.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cqb-question</artifactId>
+
+    <name>cqb-question</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-comm-utils</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+    </dependencies>
+</project>

+ 11 - 0
cqb-question/src/main/java/com/qmth/cqb/question/dao/ImportPaperRepo.java

@@ -0,0 +1,11 @@
+package com.qmth.cqb.question.dao;
+
+import com.qmth.cqb.question.model.ImportPaper;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+public interface ImportPaperRepo extends MongoRepository<ImportPaper,String>,QueryByExampleExecutor<ImportPaper>{
+}

+ 11 - 0
cqb-question/src/main/java/com/qmth/cqb/question/dao/QuesRepo.java

@@ -0,0 +1,11 @@
+package com.qmth.cqb.question.dao;
+
+import com.qmth.cqb.question.model.Question;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+public interface QuesRepo extends MongoRepository<Question,String>,QueryByExampleExecutor<Question>{
+}

+ 11 - 0
cqb-question/src/main/java/com/qmth/cqb/question/dao/QuesStructTypeRepo.java

@@ -0,0 +1,11 @@
+package com.qmth.cqb.question.dao;
+
+import com.qmth.cqb.question.model.QuesStructType;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.repository.query.QueryByExampleExecutor;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+public interface QuesStructTypeRepo extends MongoRepository<QuesStructType,String>,QueryByExampleExecutor<QuesStructType>{
+}

+ 105 - 0
cqb-question/src/main/java/com/qmth/cqb/question/model/ImportPaper.java

@@ -0,0 +1,105 @@
+package com.qmth.cqb.question.model;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.index.Indexed;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 导入试卷实体类
+ * Created by songyue on 16/12/28.
+ */
+public class ImportPaper implements Serializable{
+    private static final long serialVersionUID = -323432549247192327L;
+
+    @Id
+    private String id;
+
+    @Indexed(unique = true)
+    private String paperName;//试卷名称
+
+    private String createTime;//创建时间
+
+    private String updateTime;//更新时间
+
+    private byte[] paperWord;//原始试卷word
+
+    private byte[] paperHtml;//原始试卷html
+
+    private List<Question> questionList;//试卷中的所有试题,按顺序排列
+
+    private Map<String,String> quesParams;//导入试卷属性
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getPaperName() {
+        return paperName;
+    }
+
+    public void setPaperName(String paperName) {
+        this.paperName = paperName;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public byte[] getPaperWord() {
+        return paperWord;
+    }
+
+    public void setPaperWord(byte[] paperWord) {
+        this.paperWord = paperWord;
+    }
+
+    public byte[] getPaperHtml() {
+        return paperHtml;
+    }
+
+    public void setPaperHtml(byte[] paperHtml) {
+        this.paperHtml = paperHtml;
+    }
+
+    public List<Question> getQuestionList() {
+        return questionList;
+    }
+
+    public void setQuestionList(List<Question> questionList) {
+        this.questionList = questionList;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public Map<String, String> getQuesParams() {
+        return quesParams;
+    }
+
+    public void setQuesParams(Map<String, String> quesParams) {
+        this.quesParams = quesParams;
+    }
+
+    public ImportPaper() {
+    }
+}

+ 47 - 0
cqb-question/src/main/java/com/qmth/cqb/question/model/QuesOption.java

@@ -0,0 +1,47 @@
+package com.qmth.cqb.question.model;
+
+import java.io.Serializable;
+
+/**
+ * Created by songyue on 16/12/27.
+ */
+public class QuesOption implements Serializable{
+    private static final long serialVersionUID = 6187112681135912330L;
+
+    private String optionNo;//选项编号
+
+    private String optionBody;//选项内容
+
+    private byte[] optionBodyWord;//选项word
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getOptionNo() {
+        return optionNo;
+    }
+
+    public void setOptionNo(String optionNo) {
+        this.optionNo = optionNo;
+    }
+
+    public String getOptionBody() {
+        return optionBody;
+    }
+
+    public void setOptionBody(String optionBody) {
+        this.optionBody = optionBody;
+    }
+
+    public byte[] getOptionBodyWord() {
+        return optionBodyWord;
+    }
+
+    public void setOptionBodyWord(byte[] optionBodyWord) {
+        this.optionBodyWord = optionBodyWord;
+    }
+
+    public QuesOption() {
+    }
+}

+ 69 - 0
cqb-question/src/main/java/com/qmth/cqb/question/model/QuesResource.java

@@ -0,0 +1,69 @@
+package com.qmth.cqb.question.model;
+
+import org.bson.types.ObjectId;
+
+import java.io.Serializable;
+
+/**
+ * Created by songyue on 16/12/27.
+ */
+public class QuesResource implements Serializable{
+    private static final long serialVersionUID = -6446084924081997140L;
+
+    private String resourceNo;//资源编号
+
+    private String resourceType;//资源类型(题干、答案等)
+
+    private String fileType;//文件类型(png、gif)
+
+    private int sort;//排序
+
+    private ObjectId fileId;//GridFs中存储地址
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getResourceNo() {
+        return resourceNo;
+    }
+
+    public void setResourceNo(String resourceNo) {
+        this.resourceNo = resourceNo;
+    }
+
+    public String getResourceType() {
+        return resourceType;
+    }
+
+    public void setResourceType(String resourceType) {
+        this.resourceType = resourceType;
+    }
+
+    public int getSort() {
+        return sort;
+    }
+
+    public void setSort(int sort) {
+        this.sort = sort;
+    }
+
+    public String getFileType() {
+        return fileType;
+    }
+
+    public void setFileType(String fileType) {
+        this.fileType = fileType;
+    }
+
+    public ObjectId getFileId() {
+        return fileId;
+    }
+
+    public void setFileId(ObjectId fileId) {
+        this.fileId = fileId;
+    }
+
+    public QuesResource() {
+    }
+}

+ 62 - 0
cqb-question/src/main/java/com/qmth/cqb/question/model/QuesStructType.java

@@ -0,0 +1,62 @@
+package com.qmth.cqb.question.model;
+
+import org.springframework.data.annotation.Id;
+
+import java.io.Serializable;
+import java.util.Map;
+
+/**
+ * 试题结构类型(单选、多选、判断等)
+ * Created by songyue on 16/12/28.
+ */
+public class QuesStructType implements Serializable{
+    private static final long serialVersionUID = -4183850561167604080L;
+
+    @Id
+    private String id;
+
+    private String typeName;//类型名称
+
+    private String typeTitle;//类型标题
+
+    private Map params;//类型参数
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getTypeName() {
+        return typeName;
+    }
+
+    public void setTypeName(String typeName) {
+        this.typeName = typeName;
+    }
+
+    public String getTypeTitle() {
+        return typeTitle;
+    }
+
+    public void setTypeTitle(String typeTitle) {
+        this.typeTitle = typeTitle;
+    }
+
+    public Map getParams() {
+        return params;
+    }
+
+    public void setParams(Map params) {
+        this.params = params;
+    }
+
+    public QuesStructType() {
+    }
+}

+ 163 - 0
cqb-question/src/main/java/com/qmth/cqb/question/model/Question.java

@@ -0,0 +1,163 @@
+package com.qmth.cqb.question.model;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.index.Indexed;
+import org.springframework.data.mongodb.core.mapping.DBRef;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by songyue on 16/12/27.
+ */
+public class Question implements Serializable{
+    private static final long serialVersionUID = -493414992043982866L;
+    @Id
+    private String id;
+
+    @Indexed(unique = true)
+
+    private String quesBody;//题干,默认为html
+
+    private byte[] quesBodyWord;//题干word
+
+    private String quesAnswer;//答案,默认为html
+
+    private byte[] quesAnswerWord;//答案word
+
+    private String quesAnswerAnalysis;//答案解析,默认为html
+
+    private byte[] quesAnswerAnalysisWord;//答案word解析
+
+    private List<QuesOption> quesOptions;//试题选项
+
+    private List<QuesResource> quesResource;//试题resource(试题资源库集合,适用于多媒体介质试题)
+
+    @DBRef
+    private QuesStructType quesStructType;//试题结构类型
+
+    private String createTime;//创建时间
+
+    private String updateTime;//更新时间
+
+    private List<Question> subQuestion;//子题目,用于套题
+
+    private Map<String,String> quesParams;//试题属性
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getQuesBody() {
+        return quesBody;
+    }
+
+    public void setQuesBody(String quesBody) {
+        this.quesBody = quesBody;
+    }
+
+    public byte[] getQuesBodyWord() {
+        return quesBodyWord;
+    }
+
+    public void setQuesBodyWord(byte[] quesBodyWord) {
+        this.quesBodyWord = quesBodyWord;
+    }
+
+    public String getQuesAnswer() {
+        return quesAnswer;
+    }
+
+    public void setQuesAnswer(String quesAnswer) {
+        this.quesAnswer = quesAnswer;
+    }
+
+    public byte[] getQuesAnswerWord() {
+        return quesAnswerWord;
+    }
+
+    public void setQuesAnswerWord(byte[] quesAnswerWord) {
+        this.quesAnswerWord = quesAnswerWord;
+    }
+
+    public List<QuesOption> getQuesOptions() {
+        return quesOptions;
+    }
+
+    public void setQuesOptions(List<QuesOption> quesOptions) {
+        this.quesOptions = quesOptions;
+    }
+
+    public List<QuesResource> getQuesResource() {
+        return quesResource;
+    }
+
+    public void setQuesResource(List<QuesResource> quesResource) {
+        this.quesResource = quesResource;
+    }
+
+    public List<Question> getSubQuestion() {
+        return subQuestion;
+    }
+
+    public void setSubQuestion(List<Question> subQuestion) {
+        this.subQuestion = subQuestion;
+    }
+
+    public Map<String, String> getQuesParams() {
+        return quesParams;
+    }
+
+    public void setQuesParams(Map<String, String> quesParams) {
+        this.quesParams = quesParams;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getQuesAnswerAnalysis() {
+        return quesAnswerAnalysis;
+    }
+
+    public void setQuesAnswerAnalysis(String quesAnswerAnalysis) {
+        this.quesAnswerAnalysis = quesAnswerAnalysis;
+    }
+
+    public byte[] getQuesAnswerAnalysisWord() {
+        return quesAnswerAnalysisWord;
+    }
+
+    public void setQuesAnswerAnalysisWord(byte[] quesAnswerAnalysisWord) {
+        this.quesAnswerAnalysisWord = quesAnswerAnalysisWord;
+    }
+
+    public QuesStructType getQuesStructType() {
+        return quesStructType;
+    }
+
+    public void setQuesStructType(QuesStructType quesStructType) {
+        this.quesStructType = quesStructType;
+    }
+}

+ 92 - 0
cqb-question/src/main/java/com/qmth/cqb/question/service/ImportPaperService.java

@@ -0,0 +1,92 @@
+package com.qmth.cqb.question.service;
+
+import com.qmth.cqb.question.dao.ImportPaperRepo;
+import com.qmth.cqb.question.model.ImportPaper;
+import com.qmth.cqb.utils.modal.NormalResponse;
+import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
+
+/**
+ * 导入试卷服务类
+ * Created by songyue on 16/12/28.
+ */
+@Service
+public class ImportPaperService {
+
+    /**
+     * 一般返回类型统一为NormalResponse对象
+     * NormalResponse(String httpStatus, String Message)
+     * 分页集合返回类型为PagingAndSortingResponse
+     * PagingAndSortingResponse(int curPage, int pageSize, int totalPages, long totalElements, List dataList)
+     * 一般集合返回类型为List
+     */
+
+    @Autowired
+    ImportPaperRepo importPaperRepo;
+
+    /**
+     * 导入试卷
+     * @param importPaper
+     * @return
+     */
+    public NormalResponse importPaper(ImportPaper importPaper){
+        ImportPaper tempPaper = importPaperRepo.save(importPaper);
+        if(tempPaper != null){
+            return new NormalResponse(HttpStatus.OK.toString(),"success");
+        }else{
+            return new NormalResponse(HttpStatus.INTERNAL_SERVER_ERROR.toString(),"导入失败");
+        }
+    }
+
+    /**
+     * 查询所有已导入试卷
+     * @param searchCondition
+     * @param curPage
+     * @param pageSize
+     * @return
+     */
+    public PagingAndSortingResponse<ImportPaper> findAll(ImportPaper searchCondition,int curPage,int pageSize){
+        Page<ImportPaper> importPaperList = importPaperRepo.findAll(Example.of(searchCondition),new PageRequest(curPage-1,pageSize));
+        return new PagingAndSortingResponse<ImportPaper>(importPaperList.getNumber(),importPaperList.getSize(),
+                importPaperList.getTotalPages(),importPaperList.getTotalElements(),importPaperList.getContent());
+    }
+
+    /**
+     * 按ID查询导入试卷
+     * @param paperId
+     * @return
+     */
+    public ImportPaper findById(String paperId){
+        return importPaperRepo.findOne(paperId);
+    }
+
+    /**
+     * 保存试卷
+     * @param importPaper
+     * @return
+     */
+    public NormalResponse saveImportPaper(ImportPaper importPaper){
+        ImportPaper tempPaper = importPaperRepo.save(importPaper);
+        if(tempPaper != null){
+            return new NormalResponse(HttpStatus.OK.toString(),"success");
+        }else{
+            return new NormalResponse(HttpStatus.INTERNAL_SERVER_ERROR.toString(),"保存失败");
+        }
+    }
+
+    /**
+     * 删除导入试卷
+     * @param paperId
+     * @return
+     */
+    public NormalResponse deleteImportPaper(String paperId){
+        importPaperRepo.delete(paperId);
+        return new NormalResponse(HttpStatus.OK.toString(),"success");
+    }
+
+}

+ 78 - 0
cqb-question/src/main/java/com/qmth/cqb/question/service/QuesService.java

@@ -0,0 +1,78 @@
+package com.qmth.cqb.question.service;
+
+import com.qmth.cqb.question.dao.QuesRepo;
+import com.qmth.cqb.question.model.Question;
+import com.qmth.cqb.utils.modal.NormalResponse;
+import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+@Service
+public class QuesService {
+
+    /**
+     * 一般返回类型统一为NormalResponse对象
+     * NormalResponse(String httpStatus, String Message)
+     * 分页集合返回类型为PagingAndSortingResponse
+     * PagingAndSortingResponse(int curPage, int pageSize, int totalPages, long totalElements, List dataList)
+     * 一般集合返回类型为List
+     */
+
+    @Autowired
+    QuesRepo quesRepo;
+
+    /**
+     * 查询所有试题
+     * @param searchCondition
+     * @param curPage
+     * @param pageSize
+     * @return
+     */
+    public PagingAndSortingResponse<Question> findAll(Question searchCondition, int curPage, int pageSize){
+        Page<Question> quesList = quesRepo.findAll(Example.of(searchCondition),new PageRequest(curPage-1,pageSize));
+        return new PagingAndSortingResponse<Question>(quesList.getNumber(),quesList.getSize(),
+                quesList.getTotalPages(),quesList.getTotalElements(),quesList.getContent());
+    }
+
+    /**
+     * 按ID查询试题
+     * @param typeId
+     * @return
+     */
+    public Question findById(String typeId){
+        return quesRepo.findOne(typeId);
+    }
+
+    /**
+     * 保存试题
+     * @param question
+     * @return
+     */
+    public NormalResponse saveQuestion(Question question){
+        Question tempPaper = quesRepo.save(question);
+        if(tempPaper != null){
+            return new NormalResponse(HttpStatus.OK.toString(),"success");
+        }else{
+            return new NormalResponse(HttpStatus.INTERNAL_SERVER_ERROR.toString(),"保存失败");
+        }
+    }
+
+    /**
+     * 删除试题
+     * @param typeId
+     * @return
+     */
+    public NormalResponse deleteQuestion(String typeId){
+        quesRepo.delete(typeId);
+        return new NormalResponse(HttpStatus.OK.toString(),"success");
+    }
+
+
+}

+ 80 - 0
cqb-question/src/main/java/com/qmth/cqb/question/service/QuesStructTypeService.java

@@ -0,0 +1,80 @@
+package com.qmth.cqb.question.service;
+
+import com.qmth.cqb.question.dao.QuesStructTypeRepo;
+import com.qmth.cqb.question.model.QuesStructType;
+import com.qmth.cqb.utils.modal.NormalResponse;
+import com.qmth.cqb.utils.modal.PagingAndSortingResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Service;
+
+/**
+ * 试题结构类型服务类
+ * Created by songyue on 16/12/28.
+ */
+@Service
+public class QuesStructTypeService {
+
+    /**
+     * 一般返回类型统一为NormalResponse对象
+     * NormalResponse(String httpStatus, String Message)
+     * 分页集合返回类型为PagingAndSortingResponse
+     * PagingAndSortingResponse(int curPage, int pageSize, int totalPages, long totalElements, List dataList)
+     * 一般集合返回类型为List
+     */
+
+    @Autowired
+    QuesStructTypeRepo quesStructTypeRepo;
+
+
+    /**
+     * 查询所有结构题型
+     * @param searchCondition
+     * @param curPage
+     * @param pageSize
+     * @return
+     */
+    public PagingAndSortingResponse<QuesStructType> findAll(QuesStructType searchCondition, int curPage, int pageSize){
+        Page<QuesStructType> quesStructTypeList = quesStructTypeRepo.findAll(Example.of(searchCondition),new PageRequest(curPage-1,pageSize));
+        return new PagingAndSortingResponse<QuesStructType>(quesStructTypeList.getNumber(),quesStructTypeList.getSize(),
+                quesStructTypeList.getTotalPages(),quesStructTypeList.getTotalElements(),quesStructTypeList.getContent());
+    }
+
+    /**
+     * 按ID查询结构题型
+     * @param typeId
+     * @return
+     */
+    public QuesStructType findById(String typeId){
+        return quesStructTypeRepo.findOne(typeId);
+    }
+
+    /**
+     * 保存结构题型
+     * @param quesStructType
+     * @return
+     */
+    public NormalResponse saveQuesStructType(QuesStructType quesStructType){
+        QuesStructType tempPaper = quesStructTypeRepo.save(quesStructType);
+        if(tempPaper != null){
+            return new NormalResponse(HttpStatus.OK.toString(),"success");
+        }else{
+            return new NormalResponse(HttpStatus.INTERNAL_SERVER_ERROR.toString(),"保存失败");
+        }
+    }
+
+    /**
+     * 删除结构题型
+     * @param typeId
+     * @return
+     */
+    public NormalResponse deleteQuesStructType(String typeId){
+        quesStructTypeRepo.delete(typeId);
+        return new NormalResponse(HttpStatus.OK.toString(),"success");
+    }
+
+
+}

+ 10 - 0
cqb-question/src/main/java/com/qmth/cqb/question/web/ImportPaperController.java

@@ -0,0 +1,10 @@
+package com.qmth.cqb.question.web;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * Created by songyue on 16/12/29.
+ */
+@Controller
+public class ImportPaperController {
+}

+ 18 - 0
cqb-question/src/main/java/com/qmth/cqb/question/web/QuesController.java

@@ -0,0 +1,18 @@
+package com.qmth.cqb.question.web;
+
+import com.qmth.cqb.question.dao.QuesRepo;
+import com.qmth.cqb.question.service.QuesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+
+/**
+ * Created by songyue on 16/12/28.
+ */
+@Controller
+public class QuesController {
+    @Autowired
+    QuesService quesService;
+
+    @Autowired
+    QuesRepo quesRepo;
+}

+ 10 - 0
cqb-question/src/main/java/com/qmth/cqb/question/web/QuesStructTypeController.java

@@ -0,0 +1,10 @@
+package com.qmth.cqb.question.web;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * Created by songyue on 16/12/29.
+ */
+@Controller
+public class QuesStructTypeController {
+}

+ 95 - 0
cqb-starter/pom.xml

@@ -0,0 +1,95 @@
+<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>comm-ques-bank</artifactId>
+        <groupId>com.qmth.cqb</groupId>
+        <version>0.1.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cqb-starter</artifactId>
+    <packaging>jar</packaging>
+
+    <name>cqb-starter</name>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-base</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-comm-utils</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-flow-core</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-flow-college</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-flow-zk</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-question</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-gen-paper</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.qmth.cqb</groupId>
+            <artifactId>cqb-paper</artifactId>
+            <version>0.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+    </dependencies>
+    <build>
+        <!-- 为jar包取名 -->
+        <finalName>comm-ques-bank</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring.boot.version}</version>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>

+ 16 - 0
cqb-starter/src/main/java/com/qmth/cqb/App.java

@@ -0,0 +1,16 @@
+package com.qmth.cqb;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * 项目入口主程序
+ *
+ */
+@SpringBootApplication
+public class App 
+{
+    public static void main(String[] args){
+        SpringApplication.run(App.class, args);
+    }
+}

+ 3 - 0
cqb-starter/src/main/resources/application.properties

@@ -0,0 +1,3 @@
+spring.data.mongodb.uri=mongodb://localhost:27017/comm-ques-bank
+spring.data.mongodb.grid-fs-database=comm-ques-bank
+server.port=8888

+ 65 - 0
cqb-starter/src/test/java/com/qmth/cqb/AppTest.java

@@ -0,0 +1,65 @@
+package com.qmth.cqb;
+
+import com.qmth.cqb.base.dao.UserRepo;
+import com.qmth.cqb.base.model.User;
+import com.qmth.cqb.base.service.UserService;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+/**
+ * Unit test for simple App.
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class AppTest {
+    @Autowired
+    UserRepo userRepo;
+
+    @Autowired
+    UserService userService;
+    @Test
+    public void testUser(){
+        userRepo.deleteAll();
+        User user1 = new User();
+        user1.setLoginName("songyue");
+        user1.setPassWord("123456");
+        user1.setUserName("宋悦");
+        user1.setCreateTime("20161226");
+
+        User user2 = new User();
+        user2.setLoginName("gaoxing");
+        user2.setPassWord("123456");
+        user2.setUserName("高兴");
+        user2.setCreateTime("20161226");
+
+        User user3 = new User();
+        user3.setLoginName("liming");
+        user3.setPassWord("123456");
+        user3.setUserName("李明");
+        user3.setCreateTime("20161226");
+
+        userRepo.save(user1);
+        userRepo.save(user2);
+        userRepo.save(user3);
+
+        long size = userRepo.count();
+
+        Assert.assertEquals(size,3);
+
+        System.out.println(userRepo.findAll());
+    }
+
+    @Test
+    public void testfindAllUser(){
+        User user = new User();
+        user.setLoginName("song");
+        userService.findAll(user,new PageRequest(0,10)).getDataList().forEach(o -> {
+            System.out.println(o.getLoginName());
+        });
+    }
+}

+ 57 - 0
pom.xml

@@ -0,0 +1,57 @@
+<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">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>com.qmth.cqb</groupId>
+  <artifactId>comm-ques-bank</artifactId>
+  <version>0.1.0</version>
+  <parent>
+    <groupId>org.springframework.boot</groupId>
+    <artifactId>spring-boot-starter-parent</artifactId>
+    <version>1.4.3.RELEASE</version>
+  </parent>
+  <modules>
+    <module>cqb-starter</module>
+    <module>cqb-question</module>
+    <module>cqb-base</module>
+    <module>cqb-gen-paper</module>
+    <module>cqb-flow-core</module>
+    <module>cqb-flow-college</module>
+    <module>cqb-flow-zk</module>
+    <module>cqb-comm-utils</module>
+    <module>cqb-paper</module>
+  </modules>
+  <packaging>pom</packaging>
+
+  <name>comm-ques-bank</name>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <spring.boot.version>1.4.3.RELEASE</spring.boot.version>
+    <project.version>0.1.0</project.version>
+  </properties>
+
+  <dependencies>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-maven-plugin</artifactId>
+        <version>${spring.boot.version}</version>
+        <configuration><!-- 指定该Main Class为全局的唯一入口 -->
+          <mainClass>com.qmth.cqb.cqb-starter.App</mainClass>
+          <layout>ZIP</layout>
+        </configuration>
+        <executions>
+          <execution>
+            <goals>
+              <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>