Browse Source

修复图片模糊bug,以及权限问题

song 9 months ago
parent
commit
963076c556

+ 3 - 3
dbscripts/V1.0.0/init_strucure_1.0.7.sql

@@ -12,12 +12,12 @@ ALTER TABLE `t_account_daily_settle`
     ADD COLUMN `consumer_interest_day` decimal(15, 2) NULL DEFAULT 0 COMMENT '消费收益-今日' AFTER `proxy_gratitude_day`;
 -- 插入消费收益今日  月结算表
 ALTER TABLE `t_account_month_settle`
-    ADD COLUMN `consumer_interest_day` decimal(15, 2) NULL DEFAULT 0 COMMENT '消费收益-今日' AFTER `proxy_gratitude_day`
+    ADD COLUMN `consumer_interest_day` decimal(15, 2) NULL DEFAULT 0 COMMENT '消费收益-今日' AFTER `proxy_gratitude_day`;
 --     提现审核管理
-INSERT INTO `t_mgr_menu_info` (`id`, `parent_id`, `name`, `address`) VALUES (96, 93, '提现审核管理', '/auditManage/withdrawalManagement')
+INSERT INTO `t_mgr_menu_info` (`id`, `parent_id`, `name`, `address`) VALUES (96, 93, '提现审核管理', '/auditManage/withdrawalManagement');
 --     提现失败原因
 ALTER TABLE `t_examine_withdrawal`
-    ADD COLUMN `reason` varchar(255) NULL COMMENT '提现失败原因' AFTER `create_time`
+    ADD COLUMN `reason` varchar(255) NULL COMMENT '提现失败原因' AFTER `create_time`;
 -- 后台菜单排序
 UPDATE `t_mgr_menu_info` SET `sort` = 20 WHERE `id` = 22;
 UPDATE `t_mgr_menu_info` SET `sort` = 19 WHERE `id` = 98;

+ 9 - 0
dbscripts/V1.0.0/init_strucure_1.0.9.sql

@@ -0,0 +1,9 @@
+-- 权限表插入条形功能数据
+INSERT INTO `t_mgr_menu_info` (`id`, `parent_id`, `name`,`type`, `address`) VALUES (100, 20, '全网收益报表-条形报表', 'F' ,'/cms_api/settle/bar_chart');
+
+-- 菜单表中添加流水相关功能
+INSERT INTO `t_mgr_menu_info` (`id`, `parent_id`, `name`,`type`, `address`) VALUES (101, 20, '全网流水明细-流水明细列表','F', '/cms_api/finance_bill/list');
+INSERT INTO `t_mgr_menu_info` (`id`, `parent_id`, `name`, `type`, `address`) VALUES (102, 20, '全网流水明细-流水类型列表', 'F', '/cms_api/enum/finance_type_enum');
+INSERT INTO `t_mgr_menu_info` (`id`, `parent_id`, `name`, `type`, `address`) VALUES (103, 20, '购物券1明细-购物券1列表', 'F', '/cms_api/finance_bill/agile_interest_list');
+INSERT INTO `t_mgr_menu_info` (`id`, `parent_id`, `name`, `type`, `address`) VALUES (104, 98, '财务管理总计列表', 'F', '/cms_api/account/total_list');
+INSERT INTO `t_mgr_menu_info` (`id`, `parent_id`, `name`, `type`, `address`) VALUES (105, 96, '总代理明细-列表', 'F', '/cms_api/settle/general_proxy_list');

+ 21 - 1
sanling-finance-biz/src/main/java/org/spring/finance/biz/utils/H5QrCodeUtils.java

@@ -23,6 +23,9 @@ public class H5QrCodeUtils {
     public static byte[] getH5QrCode(String scene, String url, Integer width) throws WriterException, IOException {
         //设置二维码参数
         String qrData = url + "?scene=" + scene;
+        if (width == null || width <= 0) {
+            width = 85;
+        }
         int height = width;
         String imageFormat = "png";
         //设置编码格式和二维码纠错度
@@ -31,9 +34,26 @@ public class H5QrCodeUtils {
         hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
         //生成二维码
         BitMatrix matrix = new MultiFormatWriter().encode(qrData, BarcodeFormat.QR_CODE, width, height, hints);
-        BufferedImage image = MatrixToImageWriter.toBufferedImage(matrix);
+        BitMatrix trimMatrix = removeWhiteBorder(matrix);
+        BufferedImage image = MatrixToImageWriter.toBufferedImage(trimMatrix);
         ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
         ImageIO.write(image, imageFormat, byteArrayOutputStream);
         return byteArrayOutputStream.toByteArray();
     }
+
+    //移除白边的方法
+    private static BitMatrix removeWhiteBorder (BitMatrix matrix) {
+        int[] rectangle = matrix.getEnclosingRectangle();
+        int resWidth = rectangle[2];
+        int resHeight = rectangle[3];
+        BitMatrix newMatrix = new BitMatrix(resWidth, resHeight);
+        for ( int i = 0; i < resWidth; i++ ) {
+            for ( int j = 0; j < resHeight; j++ ) {
+                if ( matrix.get(i + rectangle[0], j + rectangle[1]) ) {
+                    newMatrix.set(i, j);
+                }
+            }
+        }
+        return newMatrix;
+    }
 }

+ 11 - 3
sanling-finance-cms/src/main/java/org/spring/finance/cms/controller/account/AccountController.java

@@ -165,16 +165,24 @@ public class AccountController {
 
     @ApiOperation(value = "总计列表")
     @PostMapping(value = "total_list")
-    public Result<AccountFinanceVo> totalList(@RequestBody @Valid BaseSimpleReq<IdReq> req) {
+    public Result<AccountFinanceVo> totalList() {
         AccountFinanceVo accountFinanceVo = new AccountFinanceVo();
         //充值和转入总金额
         LambdaQueryWrapper<FinanceBill> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.in(FinanceBill::getType, FinanceTypeEnum.RECHARGE.getCode(),  FinanceTypeEnum.TRANSFER_IN.getCode());
-        accountFinanceVo.setTotalIncome(financeBillService.selectTotalIncome(queryWrapper));
+        BigDecimal totalIncome = financeBillService.selectTotalIncome(queryWrapper);
+        if (totalIncome == null) {
+            totalIncome = BigDecimal.ZERO;
+        }
+        accountFinanceVo.setTotalIncome(totalIncome);
         //查询转出和提现的总金额
         LambdaQueryWrapper<FinanceBill> queryWrapper1 = Wrappers.lambdaQuery();
         queryWrapper1.in(FinanceBill::getType, FinanceTypeEnum.TRANSFER_OUT.getCode(), FinanceTypeEnum.WITHDRAWAL_COMPLETE.getCode());
-        accountFinanceVo.setTotalOutIncome(financeBillService.selectTotalIncome(queryWrapper1));
+        BigDecimal totalOutcome = financeBillService.selectTotalIncome(queryWrapper1);
+        if (totalOutcome == null) {
+            totalOutcome = BigDecimal.ZERO;
+        }
+        accountFinanceVo.setTotalOutIncome(totalOutcome);
         //查询账户某些字段金额总额和
         accountFinanceVo.setTotalBalance(accountFinanceService.getAccountAmount("agile_amount"));
         accountFinanceVo.setTotalConsumption(accountFinanceService.getAccountAmount("consumer_interest"));

+ 8 - 5
sanling-finance-cms/src/main/java/org/spring/finance/cms/controller/common/FileController.java

@@ -20,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.imageio.ImageIO;
+import java.awt.image.BufferedImage;
 import java.io.File;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -71,13 +72,15 @@ public class FileController {
                 File file = VideoCompressionUtils.compressionVideo(oldFile, originalFilename);
                 fileUrl = fileUploadUtils.uploadFile(FileUtil.readBytes(file), suffix);
             } else {
+                //获取原图片的宽和高
+                fileUrl = fileUploadUtils.uploadFile(FileUtil.readBytes(oldFile), suffix);
                 //获取原图片的宽
-                int width = ImageIO.read(oldFile).getWidth();
-                float scale = new BigDecimal(800).divide(new BigDecimal(width), 2, RoundingMode.DOWN).floatValue();
-                File file = FileUtil.createTempFile(suffix, true);
+//                int width = ImageIO.read(oldFile).getWidth();
+//                float scale = new BigDecimal(800).divide(new BigDecimal(width), 2, RoundingMode.DOWN).floatValue();
+//                File file = FileUtil.createTempFile(suffix, true);
                 //图片压缩
-                ImgUtil.scale(oldFile, file, scale);
-                fileUrl = fileUploadUtils.uploadFile(FileUtil.readBytes(file), suffix);
+//                ImgUtil.scale(oldFile, file, scale);
+//                fileUrl = fileUploadUtils.uploadFile(FileUtil.readBytes(file), suffix);
             }
         } catch (Exception e) {
             log.error("-----------------文件流获取失败", e);

+ 2 - 2
sanling-finance-cms/src/main/resources/application-dev.yml

@@ -80,8 +80,8 @@ sanling:
     type: STANDALONE
     database: 1
   file:
-    access_address: http://42.194.187.203:30029/
-    upload_url: D:\image\
+    access_address: https://api.s.yxwyxw.com/image/
+    upload_url: /data/file/
   huawei:
     send_url: https://smsapi.cn-south-1.myhuaweicloud.com:443/sms/batchSendSms/v1
     app_key: Q56m40pPijc9lRF1Lf7HfxHIYFRv

+ 5 - 5
sanling-finance-server/src/main/java/org/spring/finance/server/controller/FileController.java

@@ -67,11 +67,11 @@ public class FileController {
             imgFile.transferTo(oldFile);
             oldFile.deleteOnExit();
             //图片压缩
-            int width = ImageIO.read(oldFile).getWidth();
-            float scale = new BigDecimal(800).divide(new BigDecimal(width), 2, RoundingMode.DOWN).floatValue();
-            File file = FileUtil.createTempFile(suffix, true);
-            ImgUtil.scale(oldFile, file, scale);
-            fileUrl = fileUploadUtils.uploadFile(FileUtil.readBytes(file), suffix);
+//            int width = ImageIO.read(oldFile).getWidth();
+//            float scale = new BigDecimal(800).divide(new BigDecimal(width), 2, RoundingMode.DOWN).floatValue();
+//            File file = FileUtil.createTempFile(suffix, true);
+//            ImgUtil.scale(oldFile, file, scale);
+            fileUrl = fileUploadUtils.uploadFile(FileUtil.readBytes(oldFile), suffix);
         } catch (Exception e) {
             log.error("-----------------文件流获取失败", e);
             throw new BusinessException(ErrorCodeEnum.FAIL.getCode(), "上传文件失败,请重试");

+ 1 - 1
sanling-finance-server/src/main/resources/application-dev.yml

@@ -2,7 +2,7 @@
 spring:
   datasource:
     type: com.alibaba.druid.pool.DruidDataSource
-    url: jdbc:mysql://192.168.101.188:3306/finance_center?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true
+    url: jdbc:mysql://192.168.101.188:3306/new_finannce_center?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowMultiQueries=true
     username: slb_ucenter_dev
     password: WnRwRExGnmHPJYEw
     #druid 数据源专有配置