Pārlūkot izejas kodu

测试二维码的生成和删除

yq 3 gadi atpakaļ
vecāks
revīzija
23cafa601b

+ 16 - 5
src/main/java/com/usky/dxtop/controller/web/QrCodeController.java

@@ -4,7 +4,11 @@ package com.usky.dxtop.controller.web;
 import com.usky.dxtop.common.constant.UserConstants;
 import com.usky.dxtop.common.core.domain.AjaxResult;
 import com.usky.dxtop.common.core.page.TableDataInfo;
+import com.usky.dxtop.common.exception.CustomException;
+import com.usky.dxtop.common.utils.QRCodeUtil;
 import com.usky.dxtop.common.utils.SecurityUtils;
+import com.usky.dxtop.common.utils.file.FileUtils;
+import com.usky.dxtop.common.utils.spring.GlobalUtils;
 import com.usky.dxtop.controller.BaseController;
 import com.usky.dxtop.model.QrCode;
 import com.usky.dxtop.model.TopRadio;
@@ -14,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
+import java.net.ConnectException;
 import java.util.List;
 
 /**
@@ -43,7 +48,16 @@ public class QrCodeController extends BaseController {
         {
             return AjaxResult.error("新增二维码信息'" + qrCode.getName() + "'失败,二维码信息已存在");
         }
-        qrCode.setCreateBy(SecurityUtils.getUsername());
+        try {
+            String codeName = String.format("%s-%s.jpg", qrCode.getName(), System.currentTimeMillis() + "");
+            String destPath = String.format("%s%s", GlobalUtils.getTempBaseDir(),codeName);
+            //生成二维码
+            QRCodeUtil.encode("内容暂定", null, destPath, true);
+            qrCode.setQrPath(destPath);
+            qrCode.setCreateBy(SecurityUtils.getUsername());
+        }catch (Exception e){
+            throw new CustomException("生成二维码图片失败");
+        }
         return toAjax(qrCodeService.save(qrCode));
 
     }
@@ -76,10 +90,7 @@ public class QrCodeController extends BaseController {
     @DeleteMapping("/{id}")
     public AjaxResult remove(@PathVariable("id") Long id)
     {
-        QrCode qrCode = new QrCode();
-        qrCode.setId(id);
-        qrCode.setDelFlag(true);
-        return toAjax(qrCodeService.updateById(qrCode));
+        return toAjax(qrCodeService.remove(id));
     }
 }
 

+ 3 - 0
src/main/java/com/usky/dxtop/service/QrCodeService.java

@@ -22,4 +22,7 @@ public interface QrCodeService extends IService<QrCode> {
 
     List<QrCode> list(QrCode qrCode);
 
+
+    boolean remove(Long id);
+
 }

+ 20 - 0
src/main/java/com/usky/dxtop/service/impl/QrCodeServiceImpl.java

@@ -5,12 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.usky.dxtop.common.constant.UserConstants;
+import com.usky.dxtop.common.exception.CustomException;
 import com.usky.dxtop.common.utils.StringUtils;
+import com.usky.dxtop.common.utils.file.FileUtils;
 import com.usky.dxtop.mapper.QrCodeMapper;
 import com.usky.dxtop.model.QrCode;
 import com.usky.dxtop.model.TopRadio;
 import com.usky.dxtop.service.QrCodeService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 
@@ -45,4 +48,21 @@ public class QrCodeServiceImpl extends ServiceImpl<QrCodeMapper, QrCode> impleme
                 .eq(QrCode::isDelFlag,false);
         return this.list(queryWrapper);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean remove(Long id) {
+        QrCode qrCode = new QrCode();
+        qrCode.setId(id);
+        qrCode.setDelFlag(true);
+        boolean b = this.updateById(qrCode);
+        if (b){
+            qrCode = this.getById(id);
+            b = FileUtils.deleteFile(qrCode.getQrPath());
+            if (!b){
+                throw new CustomException("删除二维码文件失败");
+            }
+        }
+        return b;
+    }
 }

+ 1 - 1
src/main/resources/application-dev.properties

@@ -3,7 +3,7 @@ spring.main.lazy-initialization=false
 spring.main.allow-bean-definition-overriding=true
 # application
 server.port=8085
-temp.basedir=C:/Users/pc/Desktop
+temp.basedir=C:/Users/pc/Desktop/
 # mybatis-plus
 mybatis-plus.mapper-locations=classpath*:mapper/*.xml
 mybatis-plus.configuration.lazy-loading-enabled=true

+ 1 - 1
src/main/resources/application-prod.properties

@@ -3,7 +3,7 @@ spring.main.lazy-initialization=false
 spring.main.allow-bean-definition-overriding=true
 # application
 server.port=8085
-temp.basedir=/usr/local/service/dxtop
+temp.basedir=/usr/local/service/dxtop/
 # mybatis-plus
 mybatis-plus.mapper-locations=classpath*:mapper/*.xml
 mybatis-plus.configuration.lazy-loading-enabled=true