xiatian 9 mesiacov pred
rodič
commit
47afbbf5ed

+ 0 - 1
install/mysql/init/scan_central_db.sql

@@ -210,7 +210,6 @@ CREATE TABLE IF NOT EXISTS `sc_scanner`
 CREATE TABLE IF NOT EXISTS `sc_system_config`
 (
     `id`                   bigint      NOT NULL AUTO_INCREMENT,
-    `mode`                 varchar(16) NOT NULL,
     `scanner_enable_login` bit(1)      NOT NULL,
     `scanner_password`     varchar(16) NOT NULL,
     `client_version`       varchar(16)  DEFAULT NULL,

+ 5 - 1
pom.xml

@@ -25,7 +25,7 @@
         <maven.compiler.target>1.8</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <qmth-boot-version>1.0.4</qmth-boot-version>
+        <qmth-boot-version>1.0.5</qmth-boot-version>
     </properties>
 
     <repositories>
@@ -166,6 +166,10 @@
             <artifactId>core-cache</artifactId>
             <version>${qmth-boot-version}</version>
         </dependency>
+              <dependency>
+        <groupId>com.google.code.gson</groupId>
+        <artifactId>gson</artifactId>
+      </dependency>
     </dependencies>
 
     <dependencyManagement>

+ 2 - 90
src/main/java/cn/com/qmth/scancentral/config/InitData.java

@@ -2,48 +2,33 @@ package cn.com.qmth.scancentral.config;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.List;
 
-import org.apache.commons.collections4.CollectionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.CommandLineRunner;
-import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Component;
 
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.qmth.boot.mybatis.service.SqlProvider;
-import com.qmth.boot.tools.models.ByteArray;
-
 import cn.com.qmth.scancentral.entity.SystemConfigEntity;
 import cn.com.qmth.scancentral.entity.UserEntity;
 import cn.com.qmth.scancentral.enums.Role;
-import cn.com.qmth.scancentral.enums.SystemMode;
 import cn.com.qmth.scancentral.service.SystemConfigService;
 import cn.com.qmth.scancentral.service.UserService;
 
 @Component
-public class InitData implements SqlProvider, CommandLineRunner {
+public class InitData implements CommandLineRunner {
 
     private static final Logger log = LoggerFactory.getLogger(InitData.class);
 
     @Autowired
     private SysProperty sysProperty;
 
-    @Autowired
-    private JdbcTemplate jdbcTemplate;
-
     @Autowired
     private UserService userService;
 
     @Autowired
     private SystemConfigService systemConfigService;
 
-    @Value("${scancloud.mode}")
-    private String initMode;
-
     @Override
     public void run(String... args) throws IOException {
         log.info("开始系统初始化...");
@@ -62,24 +47,10 @@ public class InitData implements SqlProvider, CommandLineRunner {
             config.setId(1L);
             config.setScannerEnableLogin(true);
             config.setScannerPassword("");
-            // 根据配置项读取初始化模式
-            SystemMode mode = SystemMode.findByCode(initMode);
-            if (mode == null) {
-                throw new RuntimeException("Invalid mode property");
-            }
-            log.info("初始化系统模式:{}", mode.getName());
-            config.setMode(mode);
             systemConfigService.save(config);
             log.info("初始化sc_system_config记录");
         }
-        SystemMode.setCurrent(config.getMode());
-        // 按系统模式分别初始化
-        if (SystemMode.current() == SystemMode.STANDALONE) {
-            initByStandalone();
-        }
-        // else if (SystemMode.current() == SystemMode.MARKINGCLOUD) {
-        // initByMarkingcloud();
-        // }
+        initByStandalone();
         log.info("系统初始化完成!");
     }
 
@@ -121,63 +92,4 @@ public class InitData implements SqlProvider, CommandLineRunner {
     // log.info("表结构初始化:{},完成{}条", path, count);
     // }
 
-    @Override
-    public String get() {
-        // 初始化通用表结构
-        StringBuilder sb = new StringBuilder();
-        try {
-            sb.append(ByteArray.fromInputStream(this.getClass().getClassLoader().getResourceAsStream("script/init.sql"))
-                    .toString());
-        } catch (IOException e) {
-            throw new RuntimeException("get init.sql failed", e);
-        }
-        // 按系统模式分别初始化表结构
-        SystemMode mode = null;
-        if (isConfigTableExists()) {
-            SystemConfigEntity config = systemConfigService.find();
-            if (config == null) {
-                // 根据配置项读取初始化模式
-                mode = SystemMode.findByCode(initMode);
-                if (mode == null) {
-                    throw new RuntimeException("Invalid mode property");
-                }
-            } else {
-                mode = config.getMode();
-            }
-        } else {
-            // 根据配置项读取初始化模式
-            mode = SystemMode.findByCode(initMode);
-            if (mode == null) {
-                throw new RuntimeException("Invalid mode property");
-            }
-        }
-        if (SystemMode.STANDALONE.equals(mode)) {
-            try {
-                sb.append(ByteArray
-                        .fromInputStream(
-                                this.getClass().getClassLoader().getResourceAsStream("script/init_standalone.sql"))
-                        .toString());
-            } catch (IOException e) {
-                throw new RuntimeException("get init_standalone.sql failed", e);
-            }
-        } else if (SystemMode.MARKINGCLOUD.equals(mode)) {
-            try {
-                sb.append(ByteArray
-                        .fromInputStream(
-                                this.getClass().getClassLoader().getResourceAsStream("script/init_markingcloud.sql"))
-                        .toString());
-            } catch (IOException e) {
-                throw new RuntimeException("get init_markingcloud.sql failed", e);
-            }
-        }
-        return sb.toString();
-
-    }
-
-    private boolean isConfigTableExists() {
-        TableName[] annotationsByType = SystemConfigEntity.class.getAnnotationsByType(TableName.class);
-        String tableName = annotationsByType[0].value();
-        List<String> table = jdbcTemplate.queryForList("show tables like '" + tableName + "'", String.class);
-        return CollectionUtils.isNotEmpty(table);
-    }
 }

+ 0 - 11
src/main/java/cn/com/qmth/scancentral/entity/SystemConfigEntity.java

@@ -1,6 +1,5 @@
 package cn.com.qmth.scancentral.entity;
 
-import cn.com.qmth.scancentral.enums.SystemMode;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -12,8 +11,6 @@ public class SystemConfigEntity {
     @TableId(type = IdType.AUTO)
     protected Long id;
 
-    private SystemMode mode;
-
     private Boolean scannerEnableLogin;
 
     private String scannerPassword;
@@ -34,14 +31,6 @@ public class SystemConfigEntity {
         this.id = id;
     }
 
-    public SystemMode getMode() {
-        return mode;
-    }
-
-    public void setMode(SystemMode mode) {
-        this.mode = mode;
-    }
-
     public Boolean getScannerEnableLogin() {
         return scannerEnableLogin;
     }

+ 80 - 53
src/main/java/cn/com/qmth/scancentral/service/impl/PaperServiceImpl.java

@@ -1,15 +1,60 @@
 package cn.com.qmth.scancentral.service.impl;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.validation.constraints.NotNull;
+
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.boot.core.collection.PageResult;
+import com.qmth.boot.core.concurrent.service.ConcurrentService;
+import com.qmth.boot.core.exception.ParameterException;
+import com.qmth.boot.core.exception.StatusException;
+import com.qmth.boot.core.fss.store.FileStore;
+
 import cn.com.qmth.scancentral.bean.MismatchQueryDomain;
 import cn.com.qmth.scancentral.bean.MismatchToggleDomain;
 import cn.com.qmth.scancentral.bean.User;
 import cn.com.qmth.scancentral.bean.papermigrate.PaperMigrateDomain;
 import cn.com.qmth.scancentral.bean.papermigrate.PaperMigratePage;
 import cn.com.qmth.scancentral.dao.PaperDao;
-import cn.com.qmth.scancentral.entity.*;
+import cn.com.qmth.scancentral.entity.AnswerCardEntity;
+import cn.com.qmth.scancentral.entity.BatchPaperEntity;
+import cn.com.qmth.scancentral.entity.ExamEntity;
+import cn.com.qmth.scancentral.entity.PaperEntity;
+import cn.com.qmth.scancentral.entity.PaperPageEntity;
+import cn.com.qmth.scancentral.entity.StudentEntity;
+import cn.com.qmth.scancentral.entity.StudentPaperEntity;
+import cn.com.qmth.scancentral.entity.SubjectEntity;
 import cn.com.qmth.scancentral.enums.LockType;
 import cn.com.qmth.scancentral.enums.UploadStatus;
-import cn.com.qmth.scancentral.service.*;
+import cn.com.qmth.scancentral.service.AnswerCardService;
+import cn.com.qmth.scancentral.service.AnswerCardSubjectService;
+import cn.com.qmth.scancentral.service.BatchPaperService;
+import cn.com.qmth.scancentral.service.ExamService;
+import cn.com.qmth.scancentral.service.FilePropertyService;
+import cn.com.qmth.scancentral.service.FileService;
+import cn.com.qmth.scancentral.service.PaperPageService;
+import cn.com.qmth.scancentral.service.PaperService;
+import cn.com.qmth.scancentral.service.StudentPaperService;
+import cn.com.qmth.scancentral.service.StudentService;
+import cn.com.qmth.scancentral.service.SubjectService;
 import cn.com.qmth.scancentral.util.PageUtil;
 import cn.com.qmth.scancentral.vo.MismatchToggleVo;
 import cn.com.qmth.scancentral.vo.PaperMigrateVo;
@@ -19,30 +64,6 @@ import cn.com.qmth.scancentral.vo.mismatchquery.MismatchQueryVo;
 import cn.com.qmth.scancentral.vo.mismatchquery.PaperPageDO;
 import cn.com.qmth.scancentral.vo.paper.PaperCetVo;
 import cn.com.qmth.scancentral.vo.paper.PaperVo;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.qmth.boot.core.collection.PageResult;
-import com.qmth.boot.core.concurrent.service.ConcurrentService;
-import com.qmth.boot.core.exception.ParameterException;
-import com.qmth.boot.core.exception.StatusException;
-import com.qmth.boot.core.fss.store.FileStore;
-import org.apache.commons.collections4.CollectionUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.multipart.MultipartFile;
-
-import javax.validation.constraints.NotNull;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
 
 @Service
 public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> implements PaperService {
@@ -113,13 +134,21 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
         saveOrUpdate(paper);
         for (PaperPageEntity page : pages) {
             // 验证原图与裁切图已上传
-            if (!fileStore.exist(page.getSheetPath())) {
-                throw new ParameterException("原图不存在:" + page.getSheetPath());
+            try {
+                if (!fileStore.exist(page.getSheetPath())) {
+                    throw new ParameterException("原图不存在:" + page.getSheetPath());
+                }
+            } catch (IOException e) {
+                throw new ParameterException("图片访问失败:" + page.getSheetPath());
             }
             if (CollectionUtils.isNotEmpty(page.getSlicePath())) {
                 for (String spath : page.getSlicePath()) {
-                    if (!fileStore.exist(spath)) {
-                        throw new ParameterException("裁切图不存在:" + spath);
+                    try {
+                        if (!fileStore.exist(spath)) {
+                            throw new ParameterException("裁切图不存在:" + spath);
+                        }
+                    } catch (IOException e) {
+                        throw new ParameterException("图片访问失败:" + spath);
                     }
                 }
             }
@@ -159,8 +188,8 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
         IPage<MismatchQueryVo> iPage = baseMapper
                 .mismatchQueryPage(new Page<>(query.getPageNumber(), query.getPageSize()), query);
         for (MismatchQueryVo vo : iPage.getRecords()) {
-            List<PaperPageDO> paperPageList = baseMapper
-                    .findMismatchByBatchIdAndStudentId(vo.getBatchId(), vo.getStudentId());
+            List<PaperPageDO> paperPageList = baseMapper.findMismatchByBatchIdAndStudentId(vo.getBatchId(),
+                    vo.getStudentId());
             for (PaperPageDO paperPage : paperPageList) {
                 vo.addPaperPage(paperPage);
             }
@@ -176,7 +205,7 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
     @Transactional
     @Override
     public UriVo adminSliceUpload(Long paperId, Integer pageIndex, Integer index, MultipartFile multipartFile,
-                                  String md5) {
+            String md5) {
         PaperEntity paper = this.getById(paperId);
         if (paper == null) {
             throw new ParameterException("paper信息未找到");
@@ -193,9 +222,8 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
         }
         StudentEntity student = studentService.getById(bp.getStudentId());
         try {
-            String path = fileService
-                    .adminUploadSlice(multipartFile.getInputStream(), md5, paper.getExamId(), student.getExamNumber(),
-                            paper.getNumber(), pageIndex, index);
+            String path = fileService.adminUploadSlice(multipartFile.getInputStream(), md5, paper.getExamId(),
+                    student.getExamNumber(), paper.getNumber(), pageIndex, index);
             filePropertyService.save(paper.getExamId(), path, md5, multipartFile.getSize());
             return UriVo.create(path);
         } catch (Exception e) {
@@ -207,7 +235,7 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
     @Transactional
     @Override
     public UriVo adminSliceUpdate(Long paperId, Integer pageIndex, Integer index, MultipartFile multipartFile,
-                                  String md5) {
+            String md5) {
         PaperEntity paper = this.getById(paperId);
         if (paper == null) {
             throw new ParameterException("paper信息未找到");
@@ -219,8 +247,8 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
         if (index <= 0) {
             throw new ParameterException("page.index必须大于0");
         }
-        if (CollectionUtils.isEmpty(page.getSlicePath()) || page.getSlicePath().size() < index || StringUtils
-                .isBlank(page.getSlicePath().get(index - 1))) {
+        if (CollectionUtils.isEmpty(page.getSlicePath()) || page.getSlicePath().size() < index
+                || StringUtils.isBlank(page.getSlicePath().get(index - 1))) {
             throw new ParameterException("未找到对应的裁切图");
         }
         StudentPaperEntity sp = studentPaperService.findByPaperId(paperId);
@@ -230,9 +258,8 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
         StudentEntity student = studentService.getById(sp.getStudentId());
         concurrentService.getReadWriteLock(LockType.STUDENT + "-" + sp.getStudentId()).writeLock().lock();
         try {
-            String path = fileService
-                    .adminUploadSlice(multipartFile.getInputStream(), md5, paper.getExamId(), student.getExamNumber(),
-                            paper.getNumber(), pageIndex, index);
+            String path = fileService.adminUploadSlice(multipartFile.getInputStream(), md5, paper.getExamId(),
+                    student.getExamNumber(), paper.getNumber(), pageIndex, index);
             filePropertyService.save(paper.getExamId(), path, md5, multipartFile.getSize());
             page.getSlicePath().set(index - 1, path);
             paperPageService.updateByMultiId(page);
@@ -270,13 +297,15 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
             throw new ParameterException("卡格式信息未找到");
         }
         // 验证卡格式所属科目
-        boolean allowSubject = answerCardSubjectService.checkSubject(answerCard.getExamId(), answerCard.getNumber(), student.getSubjectCode());
+        boolean allowSubject = answerCardSubjectService.checkSubject(answerCard.getExamId(), answerCard.getNumber(),
+                student.getSubjectCode());
         if (!allowSubject) {
             throw new ParameterException("卡格式与考生科目不一致");
         }
         // cardNumber或paperNumber有变化,都需要重新识别
-        if ((!paper.getNumber().equals(domain.getPaperNumber()) || !paper.getCardNumber()
-                .equals(domain.getCardNumber())) && CollectionUtils.isEmpty(domain.getPages())) {
+        if ((!paper.getNumber().equals(domain.getPaperNumber())
+                || !paper.getCardNumber().equals(domain.getCardNumber()))
+                && CollectionUtils.isEmpty(domain.getPages())) {
             throw new ParameterException("卡格式有变化需要重新识别, pages信息不能为空");
         }
         ExamEntity exam = examService.getById(paper.getExamId());
@@ -285,8 +314,8 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
         StudentPaperEntity previousStudentPaper = studentPaperService.findByPaperId(domain.getPaperId());
         if (previousStudentPaper != null) {
             // 考生没变,张数也没变
-            if (previousStudentPaper.getStudentId().equals(student.getId()) && previousStudentPaper.getPaperNumber()
-                    .equals(domain.getPaperNumber())) {
+            if (previousStudentPaper.getStudentId().equals(student.getId())
+                    && previousStudentPaper.getPaperNumber().equals(domain.getPaperNumber())) {
                 throw new ParameterException("该题卡已绑定该考生");
             }
             // 考生ID变了才需要获取原考生
@@ -325,8 +354,8 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
             paper.setUpdateTime(System.currentTimeMillis());
             if (CollectionUtils.isNotEmpty(domain.getPages())) {
                 List<String> paperTypeBarcodeContents = exam.getPaperTypeBarcodeContent();
-                SubjectEntity subject = subjectService
-                        .findByExamIdAndCode(student.getExamId(), student.getSubjectCode());
+                SubjectEntity subject = subjectService.findByExamIdAndCode(student.getExamId(),
+                        student.getSubjectCode());
                 if (subject.getPaperTypeBarcodeContent() != null && !subject.getPaperTypeBarcodeContent().isEmpty()) {
                     paperTypeBarcodeContents = subject.getPaperTypeBarcodeContent();
                 }
@@ -405,9 +434,8 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
         StudentEntity student = studentService.getById(sp.getStudentId());
         concurrentService.getReadWriteLock(LockType.STUDENT + "-" + sp.getStudentId()).writeLock().lock();
         try {
-            String path = fileService
-                    .adminUploadSheet(multipartFile.getInputStream(), md5, paper.getExamId(), student.getExamNumber(),
-                            paper.getNumber(), pageIndex);
+            String path = fileService.adminUploadSheet(multipartFile.getInputStream(), md5, paper.getExamId(),
+                    student.getExamNumber(), paper.getNumber(), pageIndex);
             filePropertyService.save(paper.getExamId(), path, md5, multipartFile.getSize());
             page.setSheetPath(path);
             paperPageService.updateByMultiId(page);
@@ -422,7 +450,6 @@ public class PaperServiceImpl extends ServiceImpl<PaperDao, PaperEntity> impleme
         }
     }
 
-
     @Override
     public List<PaperCetVo> findByStudentIds(List<Long> studentIds) {
         return this.baseMapper.findByStudentIds(studentIds);

+ 0 - 171
src/main/java/cn/com/qmth/scancentral/util/JsonUtil.java

@@ -1,171 +0,0 @@
-package cn.com.qmth.scancentral.util;
-
-import java.lang.reflect.Type;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import com.google.common.collect.Maps;
-import com.google.gson.ExclusionStrategy;
-import com.google.gson.FieldAttributes;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-
-import cn.com.qmth.scancentral.util.DateUtil.DatePatterns;
-
-/**
- * json tool
- *
- * @author 
- * @param <T>
- * @date 2019年1月16日
- * @Copyright (c) 2018-2020 http://www.qmth.com.cn/ All Rights Reserved.
- */
-public class JsonUtil {
-
-	/**
-	 * to json
-	 *
-	 * @author 
-	 * @param obj
-	 * @return
-	 */
-	public static String toJson(Object obj) {
-		GsonBuilder builder = new GsonBuilder().disableHtmlEscaping().serializeNulls()
-				.setDateFormat(DatePatterns.CHINA_DEFAULT);
-		return builder.create().toJson(obj);
-	}
-
-	/**
-	 * 方法注释
-	 *
-	 * @author 
-	 * @param obj
-	 * @param excludeFields
-	 * @return
-	 */
-	public static String toJson(Object obj, String... excludeFields) {
-		GsonBuilder builder = new GsonBuilder().disableHtmlEscaping().serializeNulls()
-				.setDateFormat(DatePatterns.CHINA_DEFAULT);
-
-		builder.setExclusionStrategies(new ExclusionStrategy() {
-			@Override
-			public boolean shouldSkipField(FieldAttributes f) {
-				for (String field : excludeFields) {
-					if (f.getName().matches(field)) {
-						return true;
-					}
-				}
-
-				return false;
-			}
-
-			@Override
-			public boolean shouldSkipClass(Class<?> clazz) {
-				return false;
-			}
-		});
-
-		return builder.create().toJson(obj);
-	}
-
-	/**
-	 * to pretty json
-	 *
-	 * @author 
-	 * @param obj
-	 * @return
-	 */
-	public static String toPrettyJson(Object obj) {
-		GsonBuilder builder = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting()
-				.serializeNulls().setDateFormat(DatePatterns.CHINA_DEFAULT);
-		return builder.create().toJson(obj);
-	}
-
-	/**
-	 * 格式化json
-	 *
-	 * @author 
-	 * @param json
-	 * @return
-	 */
-	public static String format(String json) {
-		if (null == json) {
-			return json;
-		}
-		JsonElement jsonEl = JsonParser.parseString(json);
-		return toPrettyJson(jsonEl);
-	}
-
-	/**
-	 * json转对象
-	 *
-	 * @author 
-	 * @param json
-	 * @param c
-	 * @return
-	 */
-	public static <T> T fromJson(String json, Class<T> c) {
-		Gson gson = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting()
-				.setDateFormat(DatePatterns.CHINA_DEFAULT).create();
-		return gson.fromJson(json, c);
-	}
-
-	/**
-	 * json数组转list
-	 *
-	 * @author 
-	 * @param json
-	 * @param elementType
-	 * @return
-	 */
-	public static <T> List<T> fromJsonArray(String json, Class<T[]> elementType) {
-		Gson gson = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting()
-				.setDateFormat(DatePatterns.CHINA_DEFAULT).create();
-		T[] array = gson.fromJson(json, elementType);
-		return Arrays.asList(array);
-	}
-
-	/**
-	 * simple json to map
-	 *
-	 * @author 
-	 * @param s
-	 * @return
-	 */
-	public static Map<String, String> json2Map(String s) {
-		JsonElement jsonElement = JsonParser.parseString(s);
-		JsonObject jsonObject = jsonElement.getAsJsonObject();
-		Set<Entry<String, JsonElement>> entrySet = jsonObject.entrySet();
-
-		Map<String, String> map = Maps.newHashMap();
-		for (Entry<String, JsonElement> entry : entrySet) {
-			JsonElement e = entry.getValue();
-			if (!e.isJsonNull()) {
-				String v = e.getAsString();
-				map.put(entry.getKey(), v);
-			}
-		}
-		return map;
-	}
-
-	/**
-	 * json转对象
-	 *
-	 * @author 
-	 * @param json
-	 * @param type
-	 * @return
-	 */
-	public static <T> T fromJson(String json, Type type) {
-		Gson gson = new GsonBuilder().disableHtmlEscaping()
-				.setDateFormat(DatePatterns.CHINA_DEFAULT).create();
-		return gson.fromJson(json, type);
-	}
-
-}

+ 43 - 108
src/main/java/cn/com/qmth/scancentral/util/ServletUtil.java

@@ -1,126 +1,61 @@
 package cn.com.qmth.scancentral.util;
 
-import java.io.IOException;
-import java.io.PrintWriter;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import cn.com.qmth.scancentral.bean.User;
 
-
 /**
  * servlet 工具
  *
  */
 public class ServletUtil {
 
-	/**
-	 * 接口日志
-	 */
-	private static final Logger LOG = LoggerFactory.getLogger(ServletUtil.class);
-
-	public static User getSessionUser() {
-		ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
-				.getRequestAttributes();
-		if (requestAttributes == null) {
-			return null;
-		}
-		HttpServletRequest request = requestAttributes.getRequest();
-		if (request == null) {
-			return null;
-		}
-		User user = (User) ServletUtil.getRequest().getAttribute("accessEntity");
-		if (null == user) {
-			return null;
-		}
-		return user;
-	}
-
-	/**
-	 * 获取request对象
-	 *
-	 * @return
-	 */
-	public static HttpServletRequest getRequest() {
-		ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
-				.getRequestAttributes();
-		if (requestAttributes == null) {
-			return null;
-		}
-		HttpServletRequest request = requestAttributes.getRequest();
-		return request;
-	}
-
-	/**
-	 * 获取response对象
-	 *
-	 * @return
-	 */
-	public static HttpServletResponse getResponse() {
-		ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
-				.getRequestAttributes();
-		HttpServletResponse response = requestAttributes.getResponse();
-		return response;
-	}
-
-	/**
-	 * 输出响应流
-	 *
-	 * @param response
-	 * @author
-	 */
-	public static void returnJson(Object body, HttpServletResponse response) {
-		response.setContentType("application/json;charset=utf-8");
-		PrintWriter writer = null;
-		try {
-			writer = response.getWriter();
-			String json = "{}";
-			if (null != body) {
-				json = JsonUtil.toJson(body);
-			}
-			writer.write(json);
-
-			if (LOG.isDebugEnabled()) {
-				LOG.debug("responseMsg = " + json);
-			}
-		} catch (IOException e) {
-			LOG.error("returnJson fail... " + e.getMessage(), e);
-		} finally {
-			if (writer != null) {
-				writer.close();
-			}
-		}
-	}
-
-	/**
-	 * 输出响应流(无日志)
-	 *
-	 * @param response
-	 * @author
-	 */
-	public static void returnJsonWithoutLog(Object body, HttpServletResponse response) {
-		response.setContentType("application/json;charset=utf-8");
-		PrintWriter writer = null;
-		try {
-			writer = response.getWriter();
-			String json = "{}";
-			if (null != body) {
-				json = JsonUtil.toJson(body);
-			}
-			writer.write(json);
-		} catch (IOException e) {
-			// ignore
-		} finally {
-			if (writer != null) {
-				writer.close();
-			}
-		}
-	}
+    public static User getSessionUser() {
+        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
+                .getRequestAttributes();
+        if (requestAttributes == null) {
+            return null;
+        }
+        HttpServletRequest request = requestAttributes.getRequest();
+        if (request == null) {
+            return null;
+        }
+        User user = (User) ServletUtil.getRequest().getAttribute("accessEntity");
+        if (null == user) {
+            return null;
+        }
+        return user;
+    }
+
+    /**
+     * 获取request对象
+     *
+     * @return
+     */
+    public static HttpServletRequest getRequest() {
+        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
+                .getRequestAttributes();
+        if (requestAttributes == null) {
+            return null;
+        }
+        HttpServletRequest request = requestAttributes.getRequest();
+        return request;
+    }
+
+    /**
+     * 获取response对象
+     *
+     * @return
+     */
+    public static HttpServletResponse getResponse() {
+        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
+                .getRequestAttributes();
+        HttpServletResponse response = requestAttributes.getResponse();
+        return response;
+    }
 
 }