Explorar o código

联调bug修改

xiaof %!s(int64=2) %!d(string=hai) anos
pai
achega
280cc67be4
Modificáronse 20 ficheiros con 116 adicións e 334 borrados
  1. 1 1
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperLibraryService.java
  2. 0 5
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperLibraryCommonServiceImpl.java
  3. 33 9
      paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperLibraryServiceImpl.java
  4. 4 0
      paper-library-common/pom.xml
  5. 1 0
      paper-library-common/src/main/java/com/qmth/paper/library/common/contant/SystemConstant.java
  6. 1 27
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/SysUserService.java
  7. 9 236
      paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/SysUserServiceImpl.java
  8. 27 9
      paper-library-common/src/main/java/com/qmth/paper/library/common/util/ImageUtil.java
  9. 0 1
      paper-library/src/main/java/com/qmth/paper/library/api/BasicStudentController.java
  10. 0 1
      paper-library/src/main/java/com/qmth/paper/library/api/ClientController.java
  11. 0 4
      paper-library/src/main/java/com/qmth/paper/library/api/ConditionController.java
  12. 0 1
      paper-library/src/main/java/com/qmth/paper/library/api/MenuCustomController.java
  13. 0 3
      paper-library/src/main/java/com/qmth/paper/library/api/PaperArchivesController.java
  14. 0 3
      paper-library/src/main/java/com/qmth/paper/library/api/PaperArchivesTypeController.java
  15. 3 5
      paper-library/src/main/java/com/qmth/paper/library/api/PaperLibraryController.java
  16. 8 9
      paper-library/src/main/java/com/qmth/paper/library/api/SysSettingController.java
  17. 6 4
      paper-library/src/main/java/com/qmth/paper/library/api/SysUserController.java
  18. 12 12
      paper-library/src/main/resources/application-test.properties
  19. 6 0
      pom.xml
  20. 5 4
      sql/paper-library-1.0.0.sql

+ 1 - 1
paper-library-business/src/main/java/com/qmth/paper/library/business/service/PaperLibraryService.java

@@ -35,5 +35,5 @@ public interface PaperLibraryService extends IService<PaperLibrary> {
 
     IPage<TaskStudentResult> pageStudent(Long paperScanTaskId, String param, Integer pageNumber, Integer pageSize);
 
-    List<String> ocr(Long paperLibraryId, Integer index, Integer x, Integer y, Integer width, Integer height);
+    List<String> ocr(Long paperLibraryId, Integer index, Integer x, Integer y, Integer width, Integer height, Integer rotate);
 }

+ 0 - 5
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperLibraryCommonServiceImpl.java

@@ -1,6 +1,5 @@
 package com.qmth.paper.library.business.service.impl;
 
-import cn.hutool.core.io.IoUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -26,7 +25,6 @@ import com.qmth.paper.library.common.util.ResultUtil;
 import com.qmth.paper.library.common.util.ServletUtil;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -37,8 +35,6 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
@@ -386,7 +382,6 @@ public class PaperLibraryCommonServiceImpl implements PaperLibraryCommonService
             try {
                 if (!localFile.exists()) {
                     localFile.getParentFile().mkdirs(); //目标文件目录不存在的话需要创建目录
-                    localFile.createNewFile();
                 }
                 FileUtils.copyFile(file, localFile);
                 return localFile;

+ 33 - 9
paper-library-business/src/main/java/com/qmth/paper/library/business/service/impl/PaperLibraryServiceImpl.java

@@ -25,6 +25,7 @@ import com.qmth.paper.library.common.lock.LockType;
 import com.qmth.paper.library.common.util.ImageUtil;
 import com.qmth.paper.library.common.util.OcrUtil;
 import com.qmth.paper.library.common.util.ServletUtil;
+import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.json.JSONArray;
 import org.json.JSONException;
@@ -35,11 +36,11 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import java.io.File;
 import java.io.FileNotFoundException;
+import java.io.IOException;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.StringJoiner;
-import java.util.regex.Pattern;
 
 /**
  * <p>
@@ -213,7 +214,7 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
     }
 
     @Override
-    public List<String> ocr(Long paperLibraryId, Integer index, Integer x, Integer y, Integer width, Integer height) {
+    public List<String> ocr(Long paperLibraryId, Integer index, Integer x, Integer y, Integer width, Integer height, Integer rotate) {
         QueryWrapper<PaperLibrary> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(PaperLibrary::getId, paperLibraryId);
         PaperLibrary paperLibrary = this.getOne(queryWrapper);
@@ -233,15 +234,36 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
         } catch (FileNotFoundException e) {
             throw ExceptionResultEnum.ERROR.exception("下载图片失败:" + e.getMessage());
         }
+        // 裁剪
         File outFile = new File(rootPath, "sub" + file.getName());
         File subFile = ImageUtil.subImg(file, x, y, width, height, outFile);
         if (subFile == null) {
             throw ExceptionResultEnum.ERROR.exception("识别区域图片生成失败");
         }
 
+        // 旋转
+        File rotateOutFile = new File(rootPath, "rotate" + file.getName());
+        File rotateFile = ImageUtil.rotate(subFile, rotate, rotateOutFile);
+
         List<String> stringList = new ArrayList<>();
         try {
-            org.json.JSONObject callHandwriting = ocrUtil.callHandwriting(subFile.getPath());
+            org.json.JSONObject callHandwriting;
+            if (rotateFile.exists()) {
+                callHandwriting = ocrUtil.callHandwriting(rotateFile.getPath());
+            } else {
+                callHandwriting = ocrUtil.callHandwriting(subFile.getPath());
+            }
+
+            // 未联网提示
+            if (!callHandwriting.has(SystemConstant.OCR_WORDS_RESULT)) {
+                // ocr错误提示
+                if (callHandwriting.has(SystemConstant.OCR_ERROR_MSG)) {
+                    throw ExceptionResultEnum.ERROR.exception(callHandwriting.getString(SystemConstant.OCR_ERROR_MSG));
+                } else {
+                    throw ExceptionResultEnum.ERROR.exception("OCR识别异常,请检查网络是否连接或者关闭OCR识别");
+                }
+            }
+
             JSONArray jsonArray = callHandwriting.getJSONArray(SystemConstant.OCR_WORDS_RESULT);
             if (jsonArray.length() == 0) {
                 throw ExceptionResultEnum.ERROR.exception("未正确识别出内容");
@@ -251,21 +273,23 @@ public class PaperLibraryServiceImpl extends ServiceImpl<PaperLibraryMapper, Pap
                 updateWrapper.lambda().set(PaperLibrary::getWordsResult, jsonArray.toString()).eq(PaperLibrary::getId, paperLibraryId);
                 this.updateById(paperLibrary);
 
-                // 过滤掉非学号类型的数据
                 jsonArray.forEach(m -> {
                     org.json.JSONObject object = (org.json.JSONObject) m;
                     if (object.has(SystemConstant.OCR_WORDS)) {
-                        String string = object.getString(SystemConstant.OCR_WORDS);
-//                        if (Pattern.matches(SystemConstant.REGULAR_EXPRESSION_OF_NUMBER_LETTER, string))
-                            stringList.add(string);
+                        stringList.add(object.getString(SystemConstant.OCR_WORDS));
                     }
                 });
             }
         } catch (JSONException e) {
             throw ExceptionResultEnum.ERROR.exception(e.getMessage());
         } finally {
-            file.delete();
-            subFile.delete();
+            try {
+                FileUtils.forceDelete(file);
+                FileUtils.forceDelete(subFile);
+                FileUtils.forceDelete(rotateFile);
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
         }
         return stringList;
     }

+ 4 - 0
paper-library-common/pom.xml

@@ -163,5 +163,9 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>net.coobird</groupId>
+            <artifactId>thumbnailator</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 1 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/contant/SystemConstant.java

@@ -60,6 +60,7 @@ public class SystemConstant {
     public static final String DEFAULT_PASSWORD = "MTIzNDU2";
     public static final String UPDATE_TIME = "updateTime";
     public static final String OCR_WORDS_RESULT = "words_result";
+    public static final String OCR_ERROR_MSG = "error_msg";
     public static final String OCR_WORDS = "words";
     public static final String PATH = "path";
     public static final String PDF_PATH = "pdfPath";

+ 1 - 27
paper-library-common/src/main/java/com/qmth/paper/library/common/service/SysUserService.java

@@ -9,7 +9,6 @@ import com.qmth.paper.library.common.bean.result.LoginResult;
 import com.qmth.paper.library.common.bean.result.SysUserResult;
 import com.qmth.paper.library.common.bean.result.UserRoleNameResult;
 import com.qmth.paper.library.common.entity.SysUser;
-import com.qmth.paper.library.common.enums.RoleTypeEnum;
 
 import java.security.NoSuchAlgorithmException;
 import java.util.List;
@@ -65,14 +64,6 @@ public interface SysUserService extends IService<SysUser> {
 
     List<SysUser> listByOrgId(Long id);
 
-    /**
-     * 临时-不鉴权保存用户 (默认创建用户角色为该学校管理员)
-     *
-     * @param userSaveParams 用户参数
-     * @return 结果
-     */
-    boolean saveUserNoAuth(UserSaveParams userSaveParams);
-
     /**
      * 根据id获取
      *
@@ -81,14 +72,6 @@ public interface SysUserService extends IService<SysUser> {
      */
     public List<ApproveUserResult> findById(Long id);
 
-    /**
-     * 根据id集合获取
-     *
-     * @param ids
-     * @return
-     */
-    public ApproveUserResult findByIds(List<Long> ids);
-
     /**
      * 校验短信验证码
      *
@@ -146,14 +129,5 @@ public interface SysUserService extends IService<SysUser> {
      */
     public List<ApproveUserResult> findByRoldIdAndMemberName(Long roleId, String name);
 
-    /**
-     * 查询某用户是否包含系统特定角色
-     *
-     * @param userId      用户id
-     * @param defaultRole 系统默认角色
-     * @return true:包含 || false:不包含
-     */
-    boolean includeSysRole(Long userId, RoleTypeEnum defaultRole);
-
-    boolean delete(Long id);
+    boolean delete(List<Long> ids);
 }

+ 9 - 236
paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/SysUserServiceImpl.java

@@ -12,7 +12,10 @@ import com.qmth.paper.library.common.bean.dto.UserDto;
 import com.qmth.paper.library.common.bean.dto.VerifyCodeCheckDto;
 import com.qmth.paper.library.common.bean.params.ApproveUserResult;
 import com.qmth.paper.library.common.bean.params.UserSaveParams;
-import com.qmth.paper.library.common.bean.result.*;
+import com.qmth.paper.library.common.bean.result.LoginResult;
+import com.qmth.paper.library.common.bean.result.RoleResult;
+import com.qmth.paper.library.common.bean.result.SysUserResult;
+import com.qmth.paper.library.common.bean.result.UserRoleNameResult;
 import com.qmth.paper.library.common.config.DictionaryConfig;
 import com.qmth.paper.library.common.contant.SpringContextHolder;
 import com.qmth.paper.library.common.contant.SystemConstant;
@@ -69,9 +72,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Resource
     SysUserMapper sysUserMapper;
 
-    @Resource
-    SysOrgService sysOrgService;
-
     @Resource
     SysUserService sysUserService;
 
@@ -400,100 +400,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return resultUserId;
     }
 
-    /**
-     * 临时保存用户不鉴权
-     *
-     * @param userSaveParams 用户参数
-     * @return 结果
-     */
-    @Override
-    public boolean saveUserNoAuth(UserSaveParams userSaveParams) {
-        SysUserService sysUserService = SpringContextHolder.getBean(SysUserService.class);
-        boolean isSuccess = true;
-        try {
-            Long schoolId = Objects.nonNull(ServletUtil.getRequestHeaderSchoolIdByNotVaild()) ? Long.valueOf(ServletUtil.getRequestHeaderSchoolIdByNotVaild().toString()) : null;
-            if (schoolId == null) {
-                schoolId = userSaveParams.getSchoolId();
-            }
-            List<SysUser> requestUserList = this.list(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId, schoolId).like(SysUser::getLoginName, "admin"));
-            if (requestUserList.size() == 0) {
-                throw ExceptionResultEnum.ERROR.exception("该学校没有内置的学校管理员");
-            }
-            SysUser requestUser = requestUserList.get(0);
-            Gson gson = new Gson();
-            userSaveParams.setSchoolId(schoolId);
-            SysUser sysUser = gson.fromJson(gson.toJson(userSaveParams), SysUser.class);
-            if (Objects.isNull(sysUser.getId())) {//新增用户
-                // 登录名是否唯一
-                QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
-                if (Objects.isNull(schoolId)) {
-                    queryWrapper.lambda().isNull(SysUser::getSchoolId);
-                } else {
-                    queryWrapper.lambda().eq(SysUser::getSchoolId, schoolId);
-                }
-                queryWrapper.lambda().eq(SysUser::getLoginName, sysUser.getLoginName());
-                SysUser user = sysUserService.getOne(queryWrapper);
-                if (user != null) {
-                    throw ExceptionResultEnum.ERROR.exception("用户名已存在");
-                }
-
-                sysUser.insertInfo(requestUser.getId());
-                sysUserService.save(sysUser);
-                for (Long roleId : userSaveParams.getRoleIds()) {
-                    commonService.addUserRolePrivilege(sysUser, roleId);
-                }
-            } else {//修改用户
-                List<SysUserRole> sysUserRoleList = commonCacheService.userRolePrivilegeCache(sysUser.getId());
-                List<Long> userRolesList = Arrays.asList(userSaveParams.getRoleIds());
-                Set<Long> dbUserRolesList = sysUserRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toSet());
-                int count = (int) dbUserRolesList.stream().filter(userRolesList::contains).count();
-                SysUser dbUser = sysUserService.getById(sysUser.getId());
-                sysUser.updateInfo(requestUser.getId());
-                sysUserService.updateById(sysUser);
-                List<SysRole> list = sysUserRoleService.listRoleByUserId(sysUser.getId());
-                boolean containsQuestionTeacher = list.stream().anyMatch(m -> RoleTypeEnum.SCHOOL_ADMIN.equals(m.getType()));
-                if (containsQuestionTeacher || count == 0 || dbUserRolesList.size() != userRolesList.size()) {
-                    QueryWrapper<SysUserRole> sysUserRoleQueryWrapper = new QueryWrapper<>();
-                    sysUserRoleQueryWrapper.lambda().eq(SysUserRole::getUserId, sysUser.getId());
-                    sysUserRoleService.remove(sysUserRoleQueryWrapper);
-
-                    commonCacheService.removeUserRolePrivilegeCache(sysUser.getId());
-                    for (Long roleId : userSaveParams.getRoleIds()) {
-                        commonService.addUserRolePrivilege(sysUser, roleId);
-                    }
-                }
-                //如果修改了角色,需要重新登录
-                if (count == 0 || dbUserRolesList.size() != userRolesList.size()) {
-                    commonService.removeUserInfo(sysUser.getId(), true);
-                }
-                //如果修改了机构或手机号,需更新用户缓存
-                if (Objects.nonNull(dbUser.getOrgId())) {
-                    if (containsQuestionTeacher || dbUser.getOrgId().longValue() != sysUser.getOrgId().longValue()
-                            || !Objects.equals(dbUser.getMobileNumber(), sysUser.getMobileNumber())) {
-                        if (Objects.isNull(commonCacheService.updateUserCache(sysUser.getId()))) {
-                            commonCacheService.removeUserCache(sysUser.getId());
-                        }
-                        if (Objects.isNull(commonCacheService.updateUserAuthCache(sysUser.getId()))) {
-                            commonCacheService.removeUserAuthCache(sysUser.getId());
-                        }
-                    }
-                }
-            }
-        } catch (Exception e) {
-            log.error(SystemConstant.LOG_ERROR, e);
-            isSuccess = false;
-            if (e instanceof DuplicateKeyException) {
-                String errorColumn = e.getCause().toString();
-                String columnStr = errorColumn.substring(errorColumn.lastIndexOf("key") + 3, errorColumn.length()).replaceAll("'", "");
-                throw ExceptionResultEnum.SQL_ERROR.exception("[" + FieldUniqueEnum.convertToTitle(columnStr) + "]数据不允许重复插入");
-            } else if (e instanceof ApiException) {
-                ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                ResultUtil.error(e.getMessage());
-            }
-        }
-        return isSuccess;
-    }
 
     /**
      * 根据id获取
@@ -506,16 +412,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return sysUserMapper.findById(id);
     }
 
-    /**
-     * 根据id集合获取
-     *
-     * @param ids
-     * @return
-     */
-    @Override
-    public ApproveUserResult findByIds(List<Long> ids) {
-        return sysUserMapper.findByIds(ids);
-    }
 
     @Override
     public void checkSmsCode(Long userId, String mobileNumber, String code) {
@@ -627,136 +523,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return sysUserMapper.findByRoldIdAndMemberName(roleId, name, sysUser.getSchoolId());
     }
 
-    @Override
-    public boolean includeSysRole(Long userId, RoleTypeEnum defaultRole) {
-        SysRole sysRole = sysRoleService.getOne(new QueryWrapper<SysRole>().lambda().eq(SysRole::getType, defaultRole));
-        if (Objects.nonNull(sysRole)) {
-            SysUserRole sysUserRole = sysUserRoleService.getOne(new QueryWrapper<SysUserRole>()
-                    .lambda()
-                    .eq(SysUserRole::getUserId, userId)
-                    .eq(SysUserRole::getRoleId, sysRole.getId()));
-            return Objects.nonNull(sysUserRole);
-        }
-        return false;
-    }
-
     @Transactional
     @Override
-    public boolean delete(Long id) {
-        this.removeById(id);
-        sysUserRoleService.removeByUserId(id);
-        return true;
-    }
-
-    /**
-     * 批量处理用户信息帮助类
-     *
-     * @param userSaveParamsList 用户信息集合
-     * @param master             创建人信息
-     * @return 处理后的结果
-     */
-    @Deprecated
-    private UserBatchDisposeResult disposeUserInfoHelp(List<UserSaveParams> userSaveParamsList, SysUser master) throws NoSuchAlgorithmException {
-        Long schoolId = master.getSchoolId();
-        List<SysUser> userList = new ArrayList<>();
-        List<SysUserRole> sysUserRoleList = new ArrayList<>();
-        // 用户角色更新 - 对用户角色权限的各种清除操作
-        Set<Long> willRemoveUserPri = new HashSet<>();
-        // 用户基础信息更新 - 对用户权限缓存的更新
-        Set<Long> willUpdateUserPri = new HashSet<>();
-        for (UserSaveParams userSaveParams : userSaveParamsList) {
-            String mobileNumber = userSaveParams.getMobileNumber();
-            // 手机号检验
-            if (SystemConstant.strNotNull(mobileNumber)) {
-                SysUser checkMobileNumber = this.getOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getSchoolId, schoolId).eq(SysUser::getEnable, true).eq(SysUser::getMobileNumber, mobileNumber));
-                if (Objects.nonNull(checkMobileNumber)) {
-                    if (!checkMobileNumber.getId().equals(userSaveParams.getId())) {
-                        throw ExceptionResultEnum.ERROR.exception("用户手机号【" + mobileNumber + "】重复");
-                    }
-                }
-            }
-
-            Gson gson = new Gson();
-            userSaveParams.setSchoolId(schoolId);
-            SysUser userCell = gson.fromJson(gson.toJson(userSaveParams), SysUser.class);
-            if (Objects.isNull(userCell.getId())) {//新增用户
-                userCell.insertInfo(master.getId());
-                userList.add(userCell);
-                List<SysUserRole> sysUserRoleCell = commonService.disposeUserPrivilege(userCell, userSaveParams.getRoleIds());
-                sysUserRoleList.addAll(sysUserRoleCell);
-            } else {//修改用户
-                List<SysUserRole> oldRoleList = commonCacheService.userRolePrivilegeCache(userCell.getId());
-                List<Long> newRoleList = Arrays.asList(userSaveParams.getRoleIds());
-                Set<Long> dbUserRolesList = oldRoleList.stream().map(SysUserRole::getRoleId).collect(Collectors.toSet());
-                int count = (int) dbUserRolesList.stream().filter(newRoleList::contains).count();
-                SysUser dbUser = this.getById(userCell.getId());
-                userCell.updateInfo(master.getId());
-                userList.add(userCell);
-                //如果修改了角色,需要重新登录
-                if (count == 0 || dbUserRolesList.size() != newRoleList.size()) {
-                    List<SysUserRole> sysUserRoleCell = commonService.disposeUserPrivilege(userCell, userSaveParams.getRoleIds());
-                    sysUserRoleList.addAll(sysUserRoleCell);
-                    willRemoveUserPri.add(userCell.getId());
-                } else if (!dbUser.getOrgId().equals(userCell.getOrgId())) {
-                    commonService.removeUserInfo(userCell.getId(), true);
-                }
-                //如果修改了机构或手机号,需更新用户缓存
-                if (Objects.nonNull(dbUser.getOrgId())) {
-                    if (dbUser.getOrgId().longValue() != userCell.getOrgId().longValue()
-                            || !Objects.equals(dbUser.getMobileNumber(), userCell.getMobileNumber())) {
-                        willUpdateUserPri.add(userCell.getId());
-                    }
-                }
-            }
+    public boolean delete(List<Long> ids) {
+        this.removeByIds(ids);
+        for (Long id : ids) {
+            sysUserRoleService.removeByUserId(id);
         }
-        UserBatchDisposeResult userBatchDisposeResult = new UserBatchDisposeResult();
-        userBatchDisposeResult.setUserList(userList);
-        userBatchDisposeResult.setUserRoleList(sysUserRoleList);
-        userBatchDisposeResult.setRemoveIdSet(willRemoveUserPri);
-        userBatchDisposeResult.setUpdateIdSet(willUpdateUserPri);
-
-        return userBatchDisposeResult;
-    }
-
-    /**
-     * 解析机构名称
-     *
-     * @param schoolId 学校id
-     * @param orgName  结构名称
-     * @return 机构id
-     */
-    private Long analyzeOrgName(Long schoolId, String orgName) {
-        SysOrg sysOrg = sysOrgService.getOne(new QueryWrapper<SysOrg>().lambda().eq(SysOrg::getEnable, true).eq(SysOrg::getSchoolId, schoolId).eq(SysOrg::getName, orgName));
-        if (Objects.isNull(sysOrg)) {
-            throw ExceptionResultEnum.ERROR.exception("系统中不存在excel导入的机构【" + orgName + "】");
-        }
-        return sysOrg.getId();
-    }
-
-    /**
-     * 根据角色名称获取角色id集合
-     *
-     * @param schoolId 学校id
-     * @param roleName 角色名称组
-     * @return 角色集合
-     */
-    private LinkedHashSet<Long> analyzeRoleName(Long schoolId, String roleName) {
-        LinkedHashSet<Long> roleIdList = new LinkedHashSet<>();
-        String[] arr = roleName.split(SystemConstant.COMMA);
-        for (String cell : arr) {
-            QueryWrapper<SysRole> sysRoleQueryWrapper = new QueryWrapper<>();
-            sysRoleQueryWrapper.lambda().eq(SysRole::getEnable, true)
-                    .eq(SysRole::getName, cell);
-            if (Objects.isNull(RoleTypeEnum.convertDescToEnum(cell))) {
-                // 自定义角色带学校id查
-                sysRoleQueryWrapper.lambda().eq(SysRole::getSchoolId, schoolId);
-            }
-            SysRole sysRole = sysRoleService.getOne(sysRoleQueryWrapper);
-            if (Objects.isNull(sysRole)) {
-                throw ExceptionResultEnum.ERROR.exception("系统中不存在excel导入的角色【" + cell + "】");
-            }
-            roleIdList.add(sysRole.getId());
-        }
-        return roleIdList;
+        return true;
     }
 }

+ 27 - 9
paper-library-common/src/main/java/com/qmth/paper/library/common/util/ImageUtil.java

@@ -1,7 +1,7 @@
 package com.qmth.paper.library.common.util;
 
 
-import org.json.JSONObject;
+import net.coobird.thumbnailator.Thumbnails;
 
 import javax.imageio.ImageIO;
 import javax.imageio.ImageReadParam;
@@ -28,13 +28,14 @@ public class ImageUtil {
      * @param height     调试
      * @param outFile    输出文件
      */
-    public static File subImg(File sourceFile, int x, int y, int width, int height, File outFile) {//图片路径,截取位置坐标,输出新突破路径
+    public static File subImg(File sourceFile, int x, int y, int width, int height, File outFile) {
+        ImageInputStream iis = null;
         try {
             if (outFile.exists()) {
                 outFile.delete();
             }
             //图片输入流
-            ImageInputStream iis = ImageIO.createImageInputStream(sourceFile);
+            iis = ImageIO.createImageInputStream(sourceFile);
             //图片读取器
             Iterator<ImageReader> it = ImageIO.getImageReaders(iis);
 
@@ -56,16 +57,33 @@ public class ImageUtil {
             return outFile;
         } catch (IOException e) {
             e.printStackTrace();
+        } finally {
+            try {
+                iis.close();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
         }
         return null;
     }
 
-    public static void main(String[] args) throws IOException {
-        File file = subImg(new File("D://1.png"), 50, 20, 200, 70, new File("D://3.png"));
-        OcrUtil ocrUtil = new OcrUtil();
-        JSONObject jsonObject = ocrUtil.callHandwriting(file.getPath());
-        System.out.println(jsonObject.toString());
+    /**
+     * 图片旋转
+     *
+     * @param sourceFile 原始图片
+     * @param rotate     旋转角度
+     * @param outFile    输出图片
+     */
+    public static File rotate(File sourceFile, int rotate, File outFile) {
+        try {
+            // rotate为0,不旋转
+            if (rotate != 0) {
+                Thumbnails.of(sourceFile).scale(0.8).rotate(rotate).toFile(outFile);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return outFile;
     }
 
-
 }

+ 0 - 1
paper-library/src/main/java/com/qmth/paper/library/api/BasicStudentController.java

@@ -40,7 +40,6 @@ import java.util.stream.Collectors;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.basic}/student")
 @Validated
-//@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class BasicStudentController {
     @Resource
     private BasicStudentService basicStudentService;

+ 0 - 1
paper-library/src/main/java/com/qmth/paper/library/api/ClientController.java

@@ -40,7 +40,6 @@ import java.util.Objects;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.client}")
 @Validated
-@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class ClientController {
 
     @Resource

+ 0 - 4
paper-library/src/main/java/com/qmth/paper/library/api/ConditionController.java

@@ -2,8 +2,6 @@ package com.qmth.paper.library.api;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.paper.library.business.bean.result.DictionaryResult;
 import com.qmth.paper.library.business.bean.result.EditResult;
@@ -18,7 +16,6 @@ import com.qmth.paper.library.common.entity.BasicStudent;
 import com.qmth.paper.library.common.service.BasicSemesterService;
 import com.qmth.paper.library.common.service.BasicStudentService;
 import com.qmth.paper.library.common.service.SysOrgService;
-import com.qmth.paper.library.common.service.SysUserService;
 import com.qmth.paper.library.common.util.Result;
 import com.qmth.paper.library.common.util.ResultUtil;
 import com.qmth.paper.library.common.util.ServletUtil;
@@ -41,7 +38,6 @@ import java.util.stream.Stream;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.common}")
 @Validated
-@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class ConditionController {
 
     @Resource

+ 0 - 1
paper-library/src/main/java/com/qmth/paper/library/api/MenuCustomController.java

@@ -38,7 +38,6 @@ import java.util.stream.Collectors;
 @Api(tags = "菜单权限修改Controller")
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.menu}")
-//@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 public class MenuCustomController {
 
     @Resource

+ 0 - 3
paper-library/src/main/java/com/qmth/paper/library/api/PaperArchivesController.java

@@ -1,8 +1,6 @@
 package com.qmth.paper.library.api;
 
 
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.paper.library.business.bean.result.EditResult;
 import com.qmth.paper.library.business.entity.PaperArchives;
@@ -29,7 +27,6 @@ import javax.validation.constraints.Min;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.paper}/archives")
 @Validated
-@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class PaperArchivesController {
     @Resource
     private PaperArchivesService paperArchivesService;

+ 0 - 3
paper-library/src/main/java/com/qmth/paper/library/api/PaperArchivesTypeController.java

@@ -1,8 +1,6 @@
 package com.qmth.paper.library.api;
 
 
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.paper.library.business.bean.result.EditResult;
 import com.qmth.paper.library.business.entity.PaperArchivesType;
@@ -29,7 +27,6 @@ import javax.validation.constraints.Min;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.paper}/archives_type")
 @Validated
-@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class PaperArchivesTypeController {
     @Resource
     private PaperArchivesTypeService paperArchivesTypeService;

+ 3 - 5
paper-library/src/main/java/com/qmth/paper/library/api/PaperLibraryController.java

@@ -1,8 +1,6 @@
 package com.qmth.paper.library.api;
 
 
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.paper.library.business.bean.result.EditResult;
 import com.qmth.paper.library.business.service.PaperLibraryService;
@@ -29,7 +27,6 @@ import javax.validation.constraints.Min;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.paper}/library")
 @Validated
-@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class PaperLibraryController {
     @Resource
     private PaperLibraryService paperLibraryService;
@@ -115,7 +112,8 @@ public class PaperLibraryController {
                       @ApiParam(value = "x") @RequestParam Integer x,
                       @ApiParam(value = "y") @RequestParam Integer y,
                       @ApiParam(value = "width") @RequestParam Integer width,
-                      @ApiParam(value = "height") @RequestParam Integer height) {
-        return ResultUtil.ok(paperLibraryService.ocr(paperLibraryId, index, x, y, width, height), null);
+                      @ApiParam(value = "height") @RequestParam Integer height,
+                      @ApiParam(value = "旋转角度") @RequestParam(defaultValue = "0") Integer rotate) {
+        return ResultUtil.ok(paperLibraryService.ocr(paperLibraryId, index, x, y, width, height, rotate), null);
     }
 }

+ 8 - 9
paper-library/src/main/java/com/qmth/paper/library/api/SysSettingController.java

@@ -1,25 +1,25 @@
 package com.qmth.paper.library.api;
 
 
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.paper.library.business.bean.result.EditResult;
-import com.qmth.paper.library.business.entity.PaperArchivesType;
-import com.qmth.paper.library.common.contant.SystemConstant;
 import com.qmth.paper.library.common.entity.SysSetting;
 import com.qmth.paper.library.common.service.SysSettingService;
 import com.qmth.paper.library.common.util.Result;
 import com.qmth.paper.library.common.util.ResultUtil;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.validation.Valid;
-import javax.validation.constraints.Max;
-import javax.validation.constraints.Min;
 
 /**
  * <p>
@@ -30,7 +30,6 @@ import javax.validation.constraints.Min;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/setting")
 @Validated
-@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class SysSettingController {
 
     @Resource

+ 6 - 4
paper-library/src/main/java/com/qmth/paper/library/api/SysUserController.java

@@ -1,5 +1,7 @@
 package com.qmth.paper.library.api;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.annotation.BOOL;
 import com.qmth.boot.api.constant.ApiConstant;
@@ -36,7 +38,6 @@ import java.security.NoSuchAlgorithmException;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.sys}/user")
 @Validated
-//@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class SysUserController {
     private final static Logger log = LoggerFactory.getLogger(SysUserController.class);
 
@@ -114,9 +115,10 @@ public class SysUserController {
      * 修改密码
      */
     @ApiOperation(value = "删除")
-    @PostMapping("/delete")
-    public Result delete(@RequestParam(value = "id", required = false) Long id) {
-        return ResultUtil.ok(sysUserService.delete(id));
+    @PostMapping("/remove")
+    public Result remove(@RequestBody String data) {
+        JSONObject object = JSON.parseObject(data, JSONObject.class);
+        return ResultUtil.ok(sysUserService.delete(JSON.parseArray(object.getString("ids"), Long.class)));
     }
 
     /**

+ 12 - 12
paper-library/src/main/resources/application-test.properties

@@ -7,20 +7,20 @@ server.tomcat.max-connections=2500
 server.tomcat.uri-encoding=UTF-8
 
 #\u9879\u76EE\u540D\u79F0
-spring.application.name=paper-library
+spring.application.name=paper-library-tesst
 
 #\u6570\u636E\u6E90\u914D\u7F6E
-db.host=localhost
-db.port=3306
-db.name=paper-library-v1.0.0
-db.username=root
-db.password=123456789
+db.host=192.168.10.136
+db.port=3307
+db.name=paper-library
+db.username=paper
+db.password=paper
 
 #redis\u6570\u636E\u6E90\u914D\u7F6E
 com.qmth.redis.host=${db.host}
 com.qmth.redis.port=6379
 com.qmth.redis.db=2
-#com.qmth.redis.password=
+com.qmth.redis.password=123456
 
 #mysql\u914D\u7F6E
 com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
@@ -45,10 +45,10 @@ com.qmth.fss.public.config=oss://key:secret@teachcloud-print-dev-public.oss-api.
 com.qmth.fss.public.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-public
 com.qmth.fss.private.config=oss://key:secret@teachcloud-print-dev-private.oss-api.qmth.com.cn
 com.qmth.fss.private.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-private
-com.qmth.fss.localfile.config=/Users/king/Downloads/file-temp
-com.qmth.fss.localfile.server=http://127.0.0.1:7001
-com.qmth.fss.localpdf.config=/Users/king/Downloads/pdf-temp
-com.qmth.fss.localpdf.server=http://127.0.0.1:7001
+com.qmth.fss.localfile.config=/file-temp
+com.qmth.fss.localfile.server=http://192.168.10.136:8111
+com.qmth.fss.localpdf.config=/pdf-temp
+com.qmth.fss.localpdf.server=http://192.168.10.136:8111
 
 #com.qmth.api.uri-prefix=/aaa
 #\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
@@ -95,4 +95,4 @@ sms.config.aliyunSMSKey=LTAI4Fi8jVRYT49QBXU9x5QX
 sms.config.aliyunSMSSecret=97aBLBfkQR5mzCiQa82yWLAH57eUd8
 sms.config.aliyunSMSSignName=\u9038\u6559\u4E91
 sms.config.aliyunSMSTplCode=SMS_147416565
-sms.config.aliyunSMSAuditPassCode=SMS_216425141
+sms.config.aliyunSMSAuditPassCode=SMS_216425141

+ 6 - 0
pom.xml

@@ -49,6 +49,7 @@
         <junit.version>4.13</junit.version>
         <zip4j.version>1.3.3</zip4j.version>
         <baidu.ocr.version>4.16.11</baidu.ocr.version>
+        <thumbnailator.version>0.4.8</thumbnailator.version>
     </properties>
 
     <dependencyManagement>
@@ -281,6 +282,11 @@
                 <artifactId>java-sdk</artifactId>
                 <version>${baidu.ocr.version}</version>
             </dependency>
+            <dependency>
+                <groupId>net.coobird</groupId>
+                <artifactId>thumbnailator</artifactId>
+                <version>${thumbnailator.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 

+ 5 - 4
sql/paper-library-1.0.0.sql

@@ -395,6 +395,7 @@ INSERT INTO `sys_privilege` VALUES (32, '查询', 'Select', 'BUTTON', 9, 1, 'AUT
 INSERT INTO `sys_privilege` VALUES (33, '查询', 'Select', 'BUTTON', 20, 1, 'AUTH', '23,24,25,26', 1, 0, 1);
 INSERT INTO `sys_privilege` VALUES (34, '根据扫描任务ID查询学生', '/api/admin/paper/library/page_student', 'URL', 20, 7, 'AUTH', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` VALUES (35, 'ocr识别', '/api/admin/paper/library/ocr', 'URL', 20, 8, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` VALUES (49, '查询条件-档案管理员', '/api/admin/common/manager_user/query', 'URL', 149, 10, 'SYS', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` VALUES (50, '查询条件-学期', '/api/admin/common/semester/query', 'URL', 149, 8, 'SYS', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` VALUES (51, '查询条件-档案', '/api/admin/common/archives/query', 'URL', 149, 8, 'SYS', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` VALUES (52, '查询条件-档案管理部门', '/api/admin/common/manager_org/query', 'URL', 149, 10, 'SYS', NULL, 1, 1, 1);
@@ -452,7 +453,7 @@ INSERT INTO `sys_privilege` VALUES (182, '查询客服', '/api/admin/sys/user/li
 INSERT INTO `sys_privilege` VALUES (183, '新增客服', '/api/admin/sys/user/save_customer', 'URL', 181, 2, 'SYS', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` VALUES (184, '查询用户可绑定角色', '/api/admin/sys/role/list_to_user', 'URL', 5, 7, 'AUTH', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` VALUES (185, '删除', 'Delete', 'LINK', 5, 6, 'AUTH', '186', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (186, '删除', '/api/admin/sys/user/delete', 'URL', 5, 8, 'AUTH', NULL, 1, 1, 1);
+INSERT INTO `sys_privilege` VALUES (186, '删除', '/api/admin/sys/user/remove', 'URL', 5, 8, 'AUTH', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` VALUES (195, '获取服务器时间', '/api/admin/common/get_system_time', 'URL', 129, 2, 'NO_AUTH', NULL, 1, 1, 1);
 INSERT INTO `sys_privilege` VALUES (200, '扫描端', 'client', 'MENU', NULL, 1, NULL, '202,203,204', 1, 0, 0);
 INSERT INTO `sys_privilege` VALUES (201, '客户端登录', '/api/admin/client/user/login', 'URL', NULL, 1, 'NO_AUTH', NULL, 1, 1, 1);
@@ -494,8 +495,7 @@ INSERT INTO `sys_privilege` VALUES (256, '删除', 'Delete', 'LINK', 244, 3, 'AU
 INSERT INTO `sys_privilege` VALUES (257, '查看详情', 'ScanTaskDetail', 'LINK', 244, 4, 'AUTH', '249', 1, 0, 1);
 INSERT INTO `sys_privilege` VALUES (258, '清除数据', 'ClearScanData', 'LINK', 244, 5, 'AUTH', '250', 1, 0, 1);
 INSERT INTO `sys_privilege` VALUES (259, '解绑扫描员', 'UnbindScanner', 'LINK', 244, 6, 'AUTH', '251', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (260, '绑定进度详情', 'ProgressDetail', 'LINK', 244, 7, 'AUTH', '252', 1, 0, 1);
-INSERT INTO `sys_privilege` VALUES (261, '释放绑定中任务', 'ReleaseBindingTask', 'LINK', 260, 8, 'AUTH', '253', 1, 0, 1);
+INSERT INTO `sys_privilege` VALUES (260, '绑定进度详情', 'ProgressDetail', 'LINK', 244, 7, 'AUTH', '252,253', 1, 0, 1);
 INSERT INTO `sys_privilege` VALUES (262, '批量删除', 'DeleteBatch', 'BUTTON', 244, 9, 'AUTH', '247', 1, 0, 1);
 INSERT INTO `sys_privilege` VALUES (263, '导入扫描任务', 'Import', 'BUTTON', 244, 10, 'AUTH', '248', 1, 0, 1);
 INSERT INTO `sys_privilege` VALUES (264, '查询条件', 'Condition', 'CONDITION', 244, 11, 'AUTH', '246', 1, 0, 1);
@@ -645,6 +645,8 @@ INSERT INTO `sys_role_privilege` VALUES (1580105479082274823, 4, 27, 1);
 INSERT INTO `sys_role_privilege` VALUES (1580105479082274824, 4, 28, 1);
 INSERT INTO `sys_role_privilege` VALUES (1580105479082274825, 4, 29, 1);
 INSERT INTO `sys_role_privilege` VALUES (1580105479082274826, 4, 31, 1);
+INSERT INTO `sys_role_privilege` VALUES (1580105479082274827, 4, 33, 1);
+INSERT INTO `sys_role_privilege` VALUES (1580105479082274828, 4, 35, 1);
 INSERT INTO `sys_role_privilege` VALUES (1580105549148123137, 2, 1, 1);
 INSERT INTO `sys_role_privilege` VALUES (1580105549148123138, 2, 8, 1);
 INSERT INTO `sys_role_privilege` VALUES (1580105549148123139, 2, 9, 1);
@@ -797,7 +799,6 @@ INSERT INTO `sys_role_privilege` VALUES (1580107007574732821, 299491950845755392
 INSERT INTO `sys_role_privilege` VALUES (1580107007574732822, 299491950845755392, 255, 1);
 INSERT INTO `sys_role_privilege` VALUES (1580107007574732823, 299491950845755392, 511, 1);
 INSERT INTO `sys_role_privilege` VALUES (1580105549206843403, 2, 32, 1);
-INSERT INTO `sys_role_privilege` VALUES (1580105479082274827, 4, 33, 1);