Administrator 4 years ago
parent
commit
acbf2dbd6e

+ 18 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/ZbFileController.java

@@ -3,6 +3,7 @@ package com.ruoyi.web.controller.common;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -214,4 +215,21 @@ public class ZbFileController extends BaseController {
         }
         return toAjax(zbFileService.removeByIds(Arrays.asList(ids)));
     }
+
+
+    /**
+     * 到存放图片的文件夹下面删除图片
+     *
+     * @param zbFile
+     * @return
+     */
+    @ApiOperation("服务器文件删除")
+    @RepeatSubmit()
+    @PostMapping("/deletePicture")
+    public boolean deletePicture(ZbFile zbFile) {
+        if (zbFile.getId() == null) {
+            return false;
+        }
+        return zbFileService.deletePicture(zbFile);
+    }
 }

+ 5 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java

@@ -122,11 +122,12 @@ public class SysUserController extends BaseController {
     public AjaxResult add(@Validated @RequestBody SysUser user) {
         if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName()))) {
             return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
-        } else if (UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
+        }
+/*        else if (UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
             return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
         } else if (UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
             return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
-        }
+        }*/
         user.setCreateBy(SecurityUtils.getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         return toAjax(userService.insertUser(user));
@@ -140,11 +141,11 @@ public class SysUserController extends BaseController {
     @PutMapping
     public AjaxResult edit(@Validated @RequestBody SysUser user) {
         userService.checkUserAllowed(user);
-        if (UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
+/*        if (UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user))) {
             return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
         } else if (UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user))) {
             return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
-        }
+        }*/
         user.setUpdateBy(SecurityUtils.getUsername());
         return toAjax(userService.updateUser(user));
     }

+ 1 - 0
ruoyi-system/src/main/java/com/ruoyi/system/dto/UploadResult.java

@@ -17,6 +17,7 @@ public class UploadResult implements Serializable {
     private static final long serialVersionUID = -4021803106776808659L;
 
     private String url;
+    private String path;
     private Integer fileId;
     private Long fileSize;
     private boolean img;

+ 7 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/IZbFileService.java

@@ -39,4 +39,11 @@ public interface IZbFileService extends IService<ZbFile> {
     int updateZbFile(ZbFile zbFile);
 
     ZbFile findByHash(String hashString);
+
+    /**
+     * 删除图片接口
+     * @param zbFile
+     * @return
+     */
+    boolean deletePicture(ZbFile zbFile);
 }

+ 19 - 10
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/FileServiceImpl.java

@@ -61,8 +61,11 @@ public class FileServiceImpl implements IFileService {
     @Override
     public List<UploadResult> upload(MultipartFile[] files, boolean parse) {
         List<UploadResult> urls = new ArrayList<>(files.length);
+        //获取的当前时间
         String timeFormat = FileUtils.getTimeFileDir();
+        //获取配置文件中图片文件预览路径
         String url = ruoYiConfig.getUrl();
+        //获取配置文件中图片文件存储路径
         String profile = RuoYiConfig.getProfile();
         for (MultipartFile file : files) {
             String fileHash = FileHashUtil.getFileHash(file);
@@ -79,12 +82,12 @@ public class FileServiceImpl implements IFileService {
                 }
                 urls.add(UploadResult.builder()
                         .url(url + hashFile.getUrl())
+                        .path(hashFile.getPath())
                         .fileId(hashFile.getId())
                         .img(hashFile.getImage() == 1)
                         .fileSize(hashFile.getSize())
                         .detail(imgDetailInfo)
                         .build());
-
                 continue;
             }
 
@@ -97,17 +100,16 @@ public class FileServiceImpl implements IFileService {
             try {
                 //组合File.separator = \
                 File saveFile = new File(profile + File.separator + pathname);
-                File saveFileThumbnail = new File(profile + File.separator + thumbnailPath);
                 //检查目录是否存在
                 FileUtils.checkOrCreateParentDir(saveFile);
                 file.transferTo(saveFile);
-
-                //生成缩略图返回缩略图地址
-                Thumbnails.of(saveFile)
-                        .size(120, 120)
-                        .toFile(saveFileThumbnail);
-                // 如果图片需要立即解析属性信息,就同步操作去执行
                 if (parse) {
+                    //生成缩略图返回缩略图地址
+                    File saveFileThumbnail = new File(profile + File.separator + thumbnailPath);
+                    Thumbnails.of(saveFile)
+                            .size(120, 120)
+                            .toFile(saveFileThumbnail);
+                    // 如果图片需要立即解析属性信息,就同步操作去执行
                     imgDetailInfo = printImageTags(saveFile);
                 }
             } catch (IOException e) {
@@ -125,8 +127,10 @@ public class FileServiceImpl implements IFileService {
             xmFile.setSize(file.getSize());
             xmFile.setUrl("?path=" + URLEncoder.createDefault().encode(pathname, Charset.defaultCharset()));
             xmFile.setDetail(JSON.toJSONString(imgDetailInfo));
-            xmFile.setThumbnailPath(thumbnailPath);
-            xmFile.setThumbnailUrl("?path=" + URLEncoder.createDefault().encode(thumbnailPath, Charset.defaultCharset()));
+            if(parse){
+                xmFile.setThumbnailPath(thumbnailPath);
+                xmFile.setThumbnailUrl("?path=" + URLEncoder.createDefault().encode(thumbnailPath, Charset.defaultCharset()));
+            }
             zbFileService.save(xmFile);
             // 如果图片需要立即解析属性信息
             if (!parse && isImg(name)) {
@@ -136,6 +140,7 @@ public class FileServiceImpl implements IFileService {
 
             urls.add(UploadResult.builder()
                     .url(url + xmFile.getUrl())
+                    .path(pathname)
                     .fileId(xmFile.getId())
                     .img(xmFile.getImage() == 1)
                     .fileSize(xmFile.getSize())
@@ -148,6 +153,8 @@ public class FileServiceImpl implements IFileService {
     @Override
     public UploadResult upload(File file) {
         String url = ruoYiConfig.getUrl();
+        //获取配置文件中图片文件存储路径
+        String profile = RuoYiConfig.getProfile();
         String fileHash = FileHashUtil.getFileHash(file);
         // 表示文件存在过了
         ZbFile hashFile = zbFileService.findByHash(fileHash);
@@ -179,6 +186,7 @@ public class FileServiceImpl implements IFileService {
         zbFileService.save(xmFile);
         return UploadResult.builder()
                 .url(url + xmFile.getUrl())
+                .path(profile + File.separator + pathname)
                 .fileId(xmFile.getId())
                 .img(xmFile.getImage() == 1)
                 .fileSize(xmFile.getSize())
@@ -186,6 +194,7 @@ public class FileServiceImpl implements IFileService {
                 .build();
     }
 
+    //监听解析图片路径
     @Override
     public ImgDetailInfo parseImgInfo(ZbFile zbFile) {
         String path = RuoYiConfig.getProfile() + File.separator + zbFile.getPath();

+ 7 - 7
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -178,12 +178,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      * @return 结果
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public int insertUser(SysUser user) {
         // 新增用户信息
         int rows = baseMapper.insertUser(user);
         // 新增用户岗位关联
-        insertUserPost(user);
+        //insertUserPost(user);
         // 新增用户与角色管理
         insertUserRole(user);
         return rows;
@@ -196,7 +196,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      * @return 结果
      */
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public int updateUser(SysUser user) {
         Long userId = user.getUserId();
         // 删除用户与角色关联
@@ -204,9 +204,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         // 新增用户与角色管理
         insertUserRole(user);
         // 删除用户与岗位关联
-        userPostService.deleteUserPostByUserId(userId);
+        //userPostService.deleteUserPostByUserId(userId);
         // 新增用户与岗位管理
-        insertUserPost(user);
+        //insertUserPost(user);
         return baseMapper.updateUser(user);
     }
 
@@ -322,7 +322,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         // 删除用户与角色关联
         userRoleService.deleteUserRoleByUserId(userId);
         // 删除用户与岗位表
-        userPostService.deleteUserPostByUserId(userId);
+        //userPostService.deleteUserPostByUserId(userId);
         return baseMapper.deleteUserById(userId);
     }
 
@@ -339,7 +339,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             // 删除用户与角色关联
             userRoleService.deleteUserRoleByUserId(userId);
             // 删除用户与岗位表
-            userPostService.deleteUserPostByUserId(userId);
+            //userPostService.deleteUserPostByUserId(userId);
         }
         return baseMapper.deleteUserByIds(userIds);
     }

+ 25 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ZbFileServiceImpl.java

@@ -3,13 +3,18 @@ package com.ruoyi.system.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.config.RuoYiConfig;
+import com.ruoyi.common.utils.file.FileUtils;
 import com.ruoyi.system.domain.ZbFile;
 import com.ruoyi.system.service.IZbFileService;
 import com.ruoyi.system.mapper.ZbFileMapper;
 import com.ruoyi.system.service.IZbGalleryCategoryService;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -18,6 +23,7 @@ import java.util.List;
  * @author ruoyi
  * @date 2020-11-19
  */
+@Slf4j
 @Service
 @RequiredArgsConstructor
 public class ZbFileServiceImpl extends ServiceImpl<ZbFileMapper, ZbFile> implements IZbFileService {
@@ -62,4 +68,23 @@ public class ZbFileServiceImpl extends ServiceImpl<ZbFileMapper, ZbFile> impleme
         queryWrapper.eq(ZbFile::getFileHash, hashString).last("limit 1");
         return this.getOne(queryWrapper);
     }
+
+    @Override
+    public boolean deletePicture(ZbFile zbFile) {
+        try {
+            Integer id = zbFile.getId();
+            zbFile = baseMapper.selectById(id);
+            File file = new File(RuoYiConfig.getProfile() + File.separator + zbFile.getPath());
+            log.info("删除原始文件: " + file);
+            FileUtils.forceDelete(file);
+            File fileThumbnail = new File(RuoYiConfig.getProfile() + File.separator + zbFile.getPath());
+            log.info("删除缩略图文件: " + fileThumbnail);
+            FileUtils.forceDelete(fileThumbnail);
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            log.info("删除文件失败");
+            e.printStackTrace();
+        }
+        return true;
+    }
 }

+ 7 - 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/ZbPicToPicServiceImpl.java

@@ -69,7 +69,7 @@ public class ZbPicToPicServiceImpl extends ServiceImpl<ZbPicToPicMapper, ZbPicTo
     @Override
     public int insertZbPicToPic(ZbPicToPic zbPicToPic) {
         zbPicToPic.setCreateTime(DateUtils.getNowDate());
-        Long qrCodeId = zbPicToPic.getQrCodeId();
+        //Long qrCodeId = zbPicToPic.getQrCodeId();
 
         return baseMapper.insert(zbPicToPic);
     }
@@ -86,6 +86,11 @@ public class ZbPicToPicServiceImpl extends ServiceImpl<ZbPicToPicMapper, ZbPicTo
         return baseMapper.updateById(zbPicToPic);
     }
 
+    /**
+     * 门户图来图往上传压缩包接口
+     * @param files
+     * @return
+     */
     @Override
     public ZbZip uploadToZip(MultipartFile[] files) {
         List<UploadResult> upload = fileService.upload(files, false);
@@ -109,7 +114,7 @@ public class ZbPicToPicServiceImpl extends ServiceImpl<ZbPicToPicMapper, ZbPicTo
         } catch (IOException e) {
             e.printStackTrace();
         }
-        UploadResult result = fileService.upload(file);
+        fileService.upload(file);
 
         ZbZip zbZip = new ZbZip();
         zbZip.setFileIds(CollectionUtil.join(upload.stream().map(UploadResult::getFileId).collect(Collectors.toList()), ","));

+ 3 - 0
ruoyi-ui/.env.development

@@ -6,3 +6,6 @@ VUE_APP_BASE_API = '/dev-api'
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
+
+#端口
+Port = 8089

+ 1 - 1
ruoyi-ui/src/settings.js

@@ -30,5 +30,5 @@ module.exports = {
   errorLog: 'production',
   apiUrl: 'http://192.168.101.11:8080'
 
-  // apiUrl: 'http://36.7.89.102:8080'
+  //apiUrl: 'http://36.7.89.102:8080'
 }

+ 2 - 2
ruoyi-ui/vue.config.js

@@ -35,8 +35,8 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        // target: `http://36.7.89.102:8080`,
-        target: `http://192.168.101.11:8080`,
+        //target: `http://36.7.89.102:8080`,
+         target: `http://192.168.101.11:8080`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API]: ''