Prechádzať zdrojové kódy

mongodb数据转换

wangliang 5 rokov pred
rodič
commit
344b4a5f02

+ 36 - 12
themis-backend/src/main/java/com/qmth/themis/backend/api/TBUserController.java

@@ -35,6 +35,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -268,7 +269,7 @@ public class TBUserController {
         teExamCourse.setId(Constants.idGen.next());
         teExamCourse.setExamId(teExam.getId());
         teExamCourse.setExamActivityId(teExamActivity.getId());
-        teExamCourse.setCourseCode("T0001");
+        teExamCourse.setCourseCode(RandomStringUtils.randomAlphanumeric(5));
         teExamCourse.setCourseName("测试科目1");
         teExamCourse.setObjectiveShuffle(1);
         teExamCourse.setOptionShuffle(1);
@@ -305,17 +306,17 @@ public class TBUserController {
         MTEExamCourseEntity mteExamCourseEntity = gson.fromJson(gson.toJson(teExamCourse), MTEExamCourseEntity.class);
         MTEExamStudentEntity mteExamStudentEntity = gson.fromJson(gson.toJson(teExamStudent), MTEExamStudentEntity.class);
 
-        List list = Arrays.asList(mteExamPaperEntity);
-        mteExamCourseEntity.setMteExamPaperEntityList(list);
+//        List list = Arrays.asList(mteExamPaperEntity);
+//        mteExamCourseEntity.setMteExamPaperEntityList(list);
 
-        list = Arrays.asList(mteExamActivityEntity);
-        mteExamEntity.setMteExamActivityEntityList(list);
+//        list = Arrays.asList(mteExamActivityEntity);
+//        mteExamEntity.setMteExamActivityEntityList(list);
 
-        list = Arrays.asList(mteExamCourseEntity);
-        mteExamStudentEntity.setMteExamEntity(mteExamEntity);
-        mteExamStudentEntity.setMteExamActivityEntity(mteExamActivityEntity);
-        mteExamStudentEntity.setMteStudentEntity(mteStudentEntity);
-        mteExamStudentEntity.setMteExamCourseEntityList(list);
+//        list = Arrays.asList(mteExamCourseEntity);
+//        mteExamStudentEntity.setMteExamEntity(mteExamEntity);
+//        mteExamStudentEntity.setMteExamActivityEntity(mteExamActivityEntity);
+//        mteExamStudentEntity.setMteStudentEntity(mteStudentEntity);
+//        mteExamStudentEntity.setMteExamCourseEntityList(list);
 
         mongoTemplate.save(mteStudentEntity);
         mongoTemplate.save(mteExamEntity);
@@ -324,17 +325,29 @@ public class TBUserController {
         mongoTemplate.save(mteExamCourseEntity);
         mongoTemplate.save(mteExamStudentEntity);
 
-        IPage<Map> map = teExamActivityService.selectListPage(new Page<>(0, 10), tableName);
+        IPage<TEExamActivity> map = teExamActivityService.selectListPage(new Page<>(0, 10), tableName);
         log.info("mysql map:{}", JacksonUtil.parseJson(map));
 
-        List<MTEStudentEntity> mteStudentEntityList = mongoTemplate.findAll(MTEStudentEntity.class);
+        Query query = new Query();
+//        query.addCriteria(Criteria.where("questionId").in(setQuestionId).andOperator(Criteria.where("examRecordDataId").is(examSessionInfo.getExamRecordDataId())));
+        query.skip((1 - 1) * 10).limit(10);//设置起始数和查询条数
+        List<MTEStudentEntity> mteStudentEntityList = mongoTemplate.find(query, MTEStudentEntity.class);
         log.info("mongodb mteStudentEntityList:{}", JacksonUtil.parseJson(mteStudentEntityList));
+//        List<MTEStudentEntity> mteStudentEntityList = mongoTemplate.findAll(MTEStudentEntity.class);
+//        log.info("mongodb mteStudentEntityList:{}", JacksonUtil.parseJson(mteStudentEntityList));
 
         List<MTEExamEntity> mteExamEntityList = mongoTemplate.findAll(MTEExamEntity.class);
         log.info("mongodb mteExamEntityList:{}", JacksonUtil.parseJson(mteExamEntityList));
 
         List<MTEExamActivityEntity> mteExamActivityEntityList = mongoTemplate.findAll(MTEExamActivityEntity.class);
         log.info("mongodb mteExamActivityEntityList:{}", JacksonUtil.parseJson(mteExamActivityEntityList));
+//        List<TEExamActivity> ps = new ArrayList<>();
+//        mteExamActivityEntityList.forEach(s -> {
+//            TEExamActivity t = gson.fromJson(gson.toJson(s), TEExamActivity.class);
+//            ps.add(t);
+//        });
+////      List<TEExamActivity> ps = gson.fromJson(JacksonUtil.parseJson(mteExamActivityEntityList), new TypeToken<List<TEExamActivity>>(){}.getType());
+//        map.setRecords(ps);
 
         List<MTEExamPaperEntity> mteExamPaperEntityList = mongoTemplate.findAll(MTEExamPaperEntity.class);
         log.info("mongodb mteExamPaperEntityList:{}", JacksonUtil.parseJson(mteExamPaperEntityList));
@@ -344,6 +357,17 @@ public class TBUserController {
 
         List<MTEExamStudentEntity> mteExamStudentEntityList = mongoTemplate.findAll(MTEExamStudentEntity.class);
         log.info("mongodb mteExamStudentEntityList:{}", JacksonUtil.parseJson(mteExamStudentEntityList));
+        List<TEExamStudent> ps = new ArrayList<>();
+        mteExamStudentEntityList.forEach(s -> {
+            TEExamStudent t = gson.fromJson(gson.toJson(s), TEExamStudent.class);
+            ps.add(t);
+        });
+        List<MTEExamStudentEntity> ps1 = new ArrayList<>();
+        List<TEExamStudent> list1 = teExamStudentService.list();
+        list1.forEach(s -> {
+            MTEExamStudentEntity t = gson.fromJson(gson.toJson(s), MTEExamStudentEntity.class);
+            ps1.add(t);
+        });
 //        teExamActivityService.dropTable(tableName);
         return ResultUtil.ok(SystemConstant.SUCCESS);
     }

+ 10 - 10
themis-backend/src/main/java/com/qmth/themis/backend/mongodb/entity/MTEExamCourseEntity.java

@@ -48,16 +48,16 @@ public class MTEExamCourseEntity implements Serializable {
     @ApiModelProperty(value = "所有绑定的考试试卷")
     private String paperIds;
 
-    @DBRef
-    private List<MTEExamPaperEntity> mteExamPaperEntityList;
-
-    public List<MTEExamPaperEntity> getMteExamPaperEntityList() {
-        return mteExamPaperEntityList;
-    }
-
-    public void setMteExamPaperEntityList(List<MTEExamPaperEntity> mteExamPaperEntityList) {
-        this.mteExamPaperEntityList = mteExamPaperEntityList;
-    }
+//    @DBRef
+//    private List<MTEExamPaperEntity> mteExamPaperEntityList;
+//
+//    public List<MTEExamPaperEntity> getMteExamPaperEntityList() {
+//        return mteExamPaperEntityList;
+//    }
+//
+//    public void setMteExamPaperEntityList(List<MTEExamPaperEntity> mteExamPaperEntityList) {
+//        this.mteExamPaperEntityList = mteExamPaperEntityList;
+//    }
 
     public static long getSerialVersionUID() {
         return serialVersionUID;

+ 10 - 10
themis-backend/src/main/java/com/qmth/themis/backend/mongodb/entity/MTEExamEntity.java

@@ -133,16 +133,16 @@ public class MTEExamEntity implements Serializable {
     @ApiModelProperty(value = "更新时间")
     private Date updateTime;
 
-    @DBRef
-    private List<MTEExamActivityEntity> mteExamActivityEntityList;
-
-    public List<MTEExamActivityEntity> getMteExamActivityEntityList() {
-        return mteExamActivityEntityList;
-    }
-
-    public void setMteExamActivityEntityList(List<MTEExamActivityEntity> mteExamActivityEntityList) {
-        this.mteExamActivityEntityList = mteExamActivityEntityList;
-    }
+//    @DBRef
+//    private List<MTEExamActivityEntity> mteExamActivityEntityList;
+//
+//    public List<MTEExamActivityEntity> getMteExamActivityEntityList() {
+//        return mteExamActivityEntityList;
+//    }
+//
+//    public void setMteExamActivityEntityList(List<MTEExamActivityEntity> mteExamActivityEntityList) {
+//        this.mteExamActivityEntityList = mteExamActivityEntityList;
+//    }
 
     public static long getSerialVersionUID() {
         return serialVersionUID;

+ 43 - 43
themis-backend/src/main/java/com/qmth/themis/backend/mongodb/entity/MTEExamStudentEntity.java

@@ -56,49 +56,49 @@ public class MTEExamStudentEntity implements Serializable {
     @ApiModelProperty(value = "最终生效的记录ID")
     private Long selectRecordId;
 
-    @DBRef
-    private MTEStudentEntity mteStudentEntity;
-
-    @DBRef
-    private MTEExamEntity mteExamEntity;
-
-    @DBRef
-    private MTEExamActivityEntity mteExamActivityEntity;
-
-    @DBRef
-    private List<MTEExamCourseEntity> mteExamCourseEntityList;
-
-    public MTEExamEntity getMteExamEntity() {
-        return mteExamEntity;
-    }
-
-    public void setMteExamEntity(MTEExamEntity mteExamEntity) {
-        this.mteExamEntity = mteExamEntity;
-    }
-
-    public MTEExamActivityEntity getMteExamActivityEntity() {
-        return mteExamActivityEntity;
-    }
-
-    public void setMteExamActivityEntity(MTEExamActivityEntity mteExamActivityEntity) {
-        this.mteExamActivityEntity = mteExamActivityEntity;
-    }
-
-    public List<MTEExamCourseEntity> getMteExamCourseEntityList() {
-        return mteExamCourseEntityList;
-    }
-
-    public void setMteExamCourseEntityList(List<MTEExamCourseEntity> mteExamCourseEntityList) {
-        this.mteExamCourseEntityList = mteExamCourseEntityList;
-    }
-
-    public MTEStudentEntity getMteStudentEntity() {
-        return mteStudentEntity;
-    }
-
-    public void setMteStudentEntity(MTEStudentEntity mteStudentEntity) {
-        this.mteStudentEntity = mteStudentEntity;
-    }
+//    @DBRef
+//    private MTEStudentEntity mteStudentEntity;
+//
+//    @DBRef
+//    private MTEExamEntity mteExamEntity;
+//
+//    @DBRef
+//    private MTEExamActivityEntity mteExamActivityEntity;
+//
+//    @DBRef
+//    private List<MTEExamCourseEntity> mteExamCourseEntityList;
+
+//    public MTEExamEntity getMteExamEntity() {
+//        return mteExamEntity;
+//    }
+//
+//    public void setMteExamEntity(MTEExamEntity mteExamEntity) {
+//        this.mteExamEntity = mteExamEntity;
+//    }
+//
+//    public MTEExamActivityEntity getMteExamActivityEntity() {
+//        return mteExamActivityEntity;
+//    }
+//
+//    public void setMteExamActivityEntity(MTEExamActivityEntity mteExamActivityEntity) {
+//        this.mteExamActivityEntity = mteExamActivityEntity;
+//    }
+//
+//    public List<MTEExamCourseEntity> getMteExamCourseEntityList() {
+//        return mteExamCourseEntityList;
+//    }
+//
+//    public void setMteExamCourseEntityList(List<MTEExamCourseEntity> mteExamCourseEntityList) {
+//        this.mteExamCourseEntityList = mteExamCourseEntityList;
+//    }
+//
+//    public MTEStudentEntity getMteStudentEntity() {
+//        return mteStudentEntity;
+//    }
+//
+//    public void setMteStudentEntity(MTEStudentEntity mteStudentEntity) {
+//        this.mteStudentEntity = mteStudentEntity;
+//    }
 
     public static long getSerialVersionUID() {
         return serialVersionUID;

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/dao/TEExamActivityMapper.java

@@ -56,5 +56,5 @@ public interface TEExamActivityMapper extends BaseMapper<TEExamActivity> {
      * @param tableName
      * @return
      */
-    public IPage<Map> selectListPage(IPage<Map> iPage, @Param("tableName") String tableName);
+    public IPage<TEExamActivity> selectListPage(IPage<Map> iPage, @Param("tableName") String tableName);
 }

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/service/TEExamActivityService.java

@@ -53,5 +53,5 @@ public interface TEExamActivityService extends IService<TEExamActivity> {
      * @param tableName
      * @return
      */
-    public IPage<Map> selectListPage(IPage<Map> iPage, String tableName);
+    public IPage<TEExamActivity> selectListPage(IPage<Map> iPage, String tableName);
 }

+ 1 - 1
themis-business/src/main/java/com/qmth/themis/business/service/impl/TEExamActivityServiceImpl.java

@@ -74,7 +74,7 @@ public class TEExamActivityServiceImpl extends ServiceImpl<TEExamActivityMapper,
      * @return
      */
     @Override
-    public IPage<Map> selectListPage(IPage<Map> iPage, String tableName) {
+    public IPage<TEExamActivity> selectListPage(IPage<Map> iPage, String tableName) {
         return teExamActivityMapper.selectListPage(iPage, tableName);
     }
 }

+ 6 - 6
themis-business/src/main/java/com/qmth/themis/business/util/JacksonUtil.java

@@ -52,14 +52,14 @@ public class JacksonUtil {
     }
 
     /**
-     * 创建json
+     * 读取json
      *
      * @param o
      * @param valueType
      * @param <T>
      * @return
      */
-    public static <T> T createJson(String o, Class<T> valueType) {
+    public static <T> T readJson(String o, Class<T> valueType) {
         try {
             return objectMapper.readValue(o, valueType);
         } catch (JsonProcessingException e) {
@@ -69,14 +69,14 @@ public class JacksonUtil {
     }
 
     /**
-     * 创建json list
+     * 读取json list
      *
      * @param o
      * @param cla
      * @param <T>
      * @return
      */
-    public static <T> T createJsonList(String o, Class<T> cla) {
+    public static <T> T readJsonList(String o, Class<T> cla) {
         try {
             JavaType javaType = objectMapper.getTypeFactory().constructCollectionType(List.class, cla);
             return objectMapper.readValue(o, javaType);
@@ -87,14 +87,14 @@ public class JacksonUtil {
     }
 
     /**
-     * 创建json set
+     * 读取json set
      *
      * @param o
      * @param cla
      * @param <T>
      * @return
      */
-    public static <T> T createJsonSet(String o, Class<T> cla) {
+    public static <T> T readJsonSet(String o, Class<T> cla) {
         try {
             JavaType javaType = objectMapper.getTypeFactory().constructCollectionType(Set.class, cla);
             return objectMapper.readValue(o, javaType);

+ 1 - 1
themis-business/src/main/resources/mapper/TEExamActivityMapper.xml

@@ -75,7 +75,7 @@
             #{TEExamActivity.wxappPhotoUpload});
     </insert>
 
-    <select id="selectListPage" resultType="java.util.Map">
+    <select id="selectListPage" resultType="com.qmth.themis.business.entity.TEExamActivity">
         select * from ${tableName}
     </select>
 </mapper>

+ 2 - 2
themis-mq/src/main/java/com/qmth/themis/mq/listener/RocketSessionConsumer.java

@@ -61,12 +61,12 @@ public class RocketSessionConsumer implements
             String threadName = Thread.currentThread().getName();
             for (MessageExt messageExt : msgs) {
                 log.info(":{}-:{} sessionConsumer 重试次数:{}", threadId, threadName, messageExt.getReconsumeTimes());
-                MqDto mqDto = JacksonUtil.createJson(new String(messageExt.getBody(), Constants.CHARSET), MqDto.class);
+                MqDto mqDto = JacksonUtil.readJson(new String(messageExt.getBody(), Constants.CHARSET), MqDto.class);
                 log.info(":{}-:{} sessionConsumer 接受到的消息:{}", threadId, threadName, JacksonUtil.parseJson(mqDto));
                 log.info(":{}-:{} sessionConsumer mqDto sequence:{},tag:{}", threadId, threadName, mqDto.getSequence(), mqDto.getTag());
                 if (Objects.nonNull(mqDto.getAck()) && mqDto.getAck().intValue() != SystemConstant.STANDARD_ACK_TYPE) {
                     log.info(":{}-:{} 更新db", threadId, threadName);
-                    tbSessionService.saveSessionInfo(JacksonUtil.createJson(JacksonUtil.parseJson(mqDto.getBody()), TBSession.class), mqDto.getTimestamp());
+                    tbSessionService.saveSessionInfo(JacksonUtil.readJson(JacksonUtil.parseJson(mqDto.getBody()), TBSession.class), mqDto.getTimestamp());
                     redisUtil.deleteSessionTopicList(SystemConstant.SESSION_TOPIC_BUFFER_LIST, mqDto.getId());
                     return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
                 } else {

+ 1 - 1
themis-mq/src/main/java/com/qmth/themis/mq/listener/RocketUserLogConsumer.java

@@ -52,7 +52,7 @@ public class RocketUserLogConsumer implements MessageListenerConcurrently {
             for (MessageExt messageExt : msgs) {
                 log.info(":{}-:{} userLogConsumer重试次数:{}", threadId, threadName, messageExt.getReconsumeTimes());
 //                MqDto mqDto = (MqDto) toJavaObject(parseObject(new String(messageExt.getBody(), Constants.CHARSET)), MqDto.class);
-                MqDto mqDto = JacksonUtil.createJson(new String(messageExt.getBody(), Constants.CHARSET), MqDto.class);
+                MqDto mqDto = JacksonUtil.readJson(new String(messageExt.getBody(), Constants.CHARSET), MqDto.class);
                 log.info(":{}-:{} userLogConsumer接受到的消息:{}", threadId, threadName, JacksonUtil.parseJson(mqDto));
                 log.info(":{}-:{} userLogConsumer mqDto sequence:{},tag:{}", threadId, threadName, mqDto.getSequence(), mqDto.getTag());
                 if (Objects.nonNull(mqDto.getAck()) && mqDto.getAck().intValue() != SystemConstant.STANDARD_ACK_TYPE) {