瀏覽代碼

应刷项目设置接口

deason 6 年之前
父節點
當前提交
92d2340da5

+ 3 - 3
examcloud-core-print-service/src/main/java/cn/com/qmth/examcloud/core/print/service/ProjectBackupSettingService.java

@@ -16,12 +16,12 @@ import cn.com.qmth.examcloud.core.print.entity.ProjectBackupSetting;
 public interface ProjectBackupSettingService {
 
     /**
-     * 获取项目的备份设置信息
+     * 获取某个项目的备份设置信息
      */
-    ProjectBackupSetting getProjectBackupSettingById(Long id);
+    ProjectBackupSetting getProjectBackupSettingById(Long projectId);
 
     /**
-     * 保存项目的备份设置信息
+     * 保存或更新某个项目的备份设置信息
      */
     void saveProjectBackupSetting(ProjectBackupSetting info);
 

+ 3 - 3
examcloud-core-print-service/src/main/java/cn/com/qmth/examcloud/core/print/service/ProjectOtherSettingService.java

@@ -23,17 +23,17 @@ public interface ProjectOtherSettingService {
     List<ProjectOtherSetting> getProjectOtherSettingList(Long projectId);
 
     /**
-     * 获取其它事项设置的信息
+     * 获取某个其它事项设置的信息
      */
     ProjectOtherSetting getProjectOtherSettingById(Long id);
 
     /**
-     * 保存其它事项设置信息
+     * 保存或更新某个其它事项设置信息
      */
     void saveProjectOtherSetting(ProjectOtherSetting info);
 
     /**
-     * 删除其它事项设置信息
+     * 删除某个其它事项设置信息
      */
     void deleteProjectOtherSettingById(Long id);
 

+ 3 - 0
examcloud-core-print-service/src/main/java/cn/com/qmth/examcloud/core/print/service/impl/PrintingProjectServiceImpl.java

@@ -19,6 +19,8 @@ import cn.com.qmth.examcloud.core.print.service.bean.OrgExamInfo;
 import cn.com.qmth.examcloud.core.print.service.bean.PrintingProjectConvert;
 import cn.com.qmth.examcloud.core.print.service.bean.PrintingProjectInfo;
 import cn.com.qmth.examcloud.core.print.service.bean.PrintingProjectQuery;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -43,6 +45,7 @@ import static cn.com.qmth.examcloud.core.print.common.Constants.PRT_CODE_500;
  */
 @Service
 public class PrintingProjectServiceImpl implements PrintingProjectService {
+    private static final Logger log = LoggerFactory.getLogger(PrintingProjectServiceImpl.class);
     @Autowired
     private PrintingProjectRepository printingProjectRepository;
     @Autowired

+ 37 - 4
examcloud-core-print-service/src/main/java/cn/com/qmth/examcloud/core/print/service/impl/ProjectBackupSettingServiceImpl.java

@@ -7,30 +7,63 @@
 
 package cn.com.qmth.examcloud.core.print.service.impl;
 
+import cn.com.qmth.examcloud.commons.base.exception.StatusException;
+import cn.com.qmth.examcloud.core.print.common.jpa.SearchBuilder;
+import cn.com.qmth.examcloud.core.print.common.utils.Check;
 import cn.com.qmth.examcloud.core.print.entity.ProjectBackupSetting;
 import cn.com.qmth.examcloud.core.print.repository.ProjectBackupSettingRepository;
 import cn.com.qmth.examcloud.core.print.service.ProjectBackupSettingService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+
+import static cn.com.qmth.examcloud.core.print.common.Constants.PRT_CODE_500;
+
 /**
  * @author: fengdesheng
  * @since: 2018/10/17
  */
 @Service
 public class ProjectBackupSettingServiceImpl implements ProjectBackupSettingService {
+    private static final Logger log = LoggerFactory.getLogger(ProjectBackupSettingServiceImpl.class);
     @Autowired
     private ProjectBackupSettingRepository projectBackupSettingRepository;
 
     @Override
-    public ProjectBackupSetting getProjectBackupSettingById(Long id) {
-        //todo
-        return null;
+    public ProjectBackupSetting getProjectBackupSettingById(Long projectId) {
+        Check.isNull(projectId, "项目ID不能为空!");
+        Specification<ProjectBackupSetting> spec = SearchBuilder.EQ("projectId", projectId);
+        ProjectBackupSetting setting = projectBackupSettingRepository.findOne(spec);
+        if (setting == null) {
+            throw new StatusException(PRT_CODE_500, "当前项目的备份设置信息不存在!");
+        }
+        return setting;
     }
 
     @Override
     public void saveProjectBackupSetting(ProjectBackupSetting info) {
-        //todo
+        Check.isNull(info, "备份设置的信息不能为空!");
+        Check.isNull(info.getProjectId(), "备份设置的项目ID不能为空!");
+        Check.isNull(info.getPkgPercent(), "每袋备份比例不能为空!");
+        Check.isNull(info.getPkgMax(), "每袋备份最大值不能为空!");
+        Check.isNull(info.getPkgMin(), "每袋备份最小值不能为空!");
+        Check.isNull(info.getGroupType(), "单独备份归集类型不能为空!");
+        Check.isNull(info.getPkgSinglePercent(), "单独备份比例不能为空!");
+        Check.isNull(info.getPkgSingleMax(), "单独备份最大值不能为空!");
+        Check.isNull(info.getPkgSingleMin(), "单独备份最小值不能为空!");
+        Specification<ProjectBackupSetting> spec = SearchBuilder.EQ("projectId", info.getProjectId());
+        ProjectBackupSetting setting = projectBackupSettingRepository.findOne(spec);
+        if (setting != null) {
+            //存在记录时,则修改
+            info.setId(setting.getId());
+            info.setCreationTime(setting.getCreationTime());
+            info.setUpdateTime(new Date());
+        }
+        projectBackupSettingRepository.save(info);
     }
 
 }

+ 28 - 6
examcloud-core-print-service/src/main/java/cn/com/qmth/examcloud/core/print/service/impl/ProjectOtherSettingServiceImpl.java

@@ -7,43 +7,65 @@
 
 package cn.com.qmth.examcloud.core.print.service.impl;
 
+import cn.com.qmth.examcloud.commons.base.exception.StatusException;
+import cn.com.qmth.examcloud.core.print.common.jpa.SearchBuilder;
+import cn.com.qmth.examcloud.core.print.common.utils.Check;
 import cn.com.qmth.examcloud.core.print.entity.ProjectOtherSetting;
 import cn.com.qmth.examcloud.core.print.repository.ProjectOtherSettingRepository;
 import cn.com.qmth.examcloud.core.print.service.ProjectOtherSettingService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.dao.EmptyResultDataAccessException;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
 
+import static cn.com.qmth.examcloud.core.print.common.Constants.PRT_CODE_500;
+
 /**
  * @author: fengdesheng
  * @since: 2018/10/17
  */
 @Service
 public class ProjectOtherSettingServiceImpl implements ProjectOtherSettingService {
+    private static final Logger log = LoggerFactory.getLogger(ProjectOtherSettingServiceImpl.class);
     @Autowired
     private ProjectOtherSettingRepository projectOtherSettingRepository;
 
     @Override
     public List<ProjectOtherSetting> getProjectOtherSettingList(Long projectId) {
-        //todo
-        return null;
+        Check.isNull(projectId, "项目ID不能为空!");
+        Specification<ProjectOtherSetting> spec = SearchBuilder.EQ("projectId", projectId);
+        return projectOtherSettingRepository.findAll(spec);
     }
 
     @Override
     public ProjectOtherSetting getProjectOtherSettingById(Long id) {
-        //todo
-        return null;
+        ProjectOtherSetting setting = projectOtherSettingRepository.findOne(id);
+        if (setting == null) {
+            throw new StatusException(PRT_CODE_500, "当前事项设置的信息不存在!");
+        }
+        return setting;
     }
 
     @Override
     public void saveProjectOtherSetting(ProjectOtherSetting info) {
-        //todo
+        Check.isNull(info, "事项设置信息不能为空!");
+        Check.isNull(info.getProjectId(), "事项设置的项目ID不能为空!");
+        Check.isBlank(info.getRemark(), "事项设置的内容不能为空!");
+        projectOtherSettingRepository.save(info);
     }
 
     @Override
     public void deleteProjectOtherSettingById(Long id) {
-        //todo
+        try {
+            projectOtherSettingRepository.delete(id);
+        } catch (EmptyResultDataAccessException e) {
+            //ignore: record not exist
+            log.warn(e.getMessage());
+        }
     }
 
 }

+ 77 - 0
examcloud-core-print-starter/src/test/java/cn/com/qmth/examcloud/core/print/test/ProjectSettingServiceTest.java

@@ -0,0 +1,77 @@
+/*
+ * *************************************************
+ * Copyright (c) 2018 QMTH. All Rights Reserved.
+ * Created by Deason on 2018-10-29 14:38:16.
+ * *************************************************
+ */
+
+package cn.com.qmth.examcloud.core.print.test;
+
+import cn.com.qmth.examcloud.core.print.PrintApplication;
+import cn.com.qmth.examcloud.core.print.common.utils.JsonMapper;
+import cn.com.qmth.examcloud.core.print.entity.ProjectBackupSetting;
+import cn.com.qmth.examcloud.core.print.entity.ProjectOtherSetting;
+import cn.com.qmth.examcloud.core.print.enums.BackupGroupType;
+import cn.com.qmth.examcloud.core.print.service.ProjectBackupSettingService;
+import cn.com.qmth.examcloud.core.print.service.ProjectOtherSettingService;
+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.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+/**
+ * @author: fengdesheng
+ * @since: 2018/10/17
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = PrintApplication.class)
+public class ProjectSettingServiceTest {
+    @Autowired
+    private ProjectBackupSettingService projectBackupSettingService;
+    @Autowired
+    private ProjectOtherSettingService projectOtherSettingService;
+    private final Long projectId = 1L;
+
+    @Test
+    public void saveProjectBackupSettingTest() throws Exception {
+        ProjectBackupSetting setting = new ProjectBackupSetting();
+        setting.setProjectId(projectId);
+        setting.setPkgPercent(0.5D);
+        setting.setPkgMax(0.5D);
+        setting.setPkgMin(0.5D);
+        setting.setGroupType(BackupGroupType.EXAM_SITE);
+        setting.setPkgSinglePercent(0.5D);
+        setting.setPkgSingleMax(0.5D);
+        setting.setPkgSingleMin(0.5D);
+        projectBackupSettingService.saveProjectBackupSetting(setting);
+    }
+
+    @Test
+    public void getProjectBackupSettingTest() throws Exception {
+        ProjectBackupSetting setting = projectBackupSettingService.getProjectBackupSettingById(projectId);
+        System.out.println(new JsonMapper().toJson(setting));
+    }
+
+    @Test
+    public void saveProjectOtherSettingTest() throws Exception {
+        ProjectOtherSetting setting = new ProjectOtherSetting();
+        setting.setId(1L);
+        setting.setProjectId(projectId);
+        setting.setRemark("test");
+        projectOtherSettingService.saveProjectOtherSetting(setting);
+        //projectOtherSettingService.deleteProjectOtherSettingById(1L);
+    }
+
+    @Test
+    public void getProjectOtherSettingTest() throws Exception {
+        List<ProjectOtherSetting> settings = projectOtherSettingService.getProjectOtherSettingList(projectId);
+        System.out.println(new JsonMapper().toJson(settings));
+
+        ProjectOtherSetting setting = projectOtherSettingService.getProjectOtherSettingById(1L);
+        System.out.println(new JsonMapper().toJson(setting));
+    }
+
+}