Преглед на файлове

Merge branch 'test' of http://39.106.184.70:3000/ctop/adsp-boot into test

yumeng преди 5 години
родител
ревизия
a2d92f82ac

+ 5 - 6
jeecg-boot-module-system/pom.xml

@@ -169,12 +169,11 @@
             <artifactId>poi-ooxml</artifactId>
             <version>3.17</version>
         </dependency>-->
-     <!--   <dependency>
-            <groupId>com.test</groupId>
-            <artifactId>opencv</artifactId>
-            <scope>system</scope>
-            <systemPath>${basedir}/docs/opencv-420.jar</systemPath>
-        </dependency>-->
+        <dependency>
+            <groupId>cn.com.ctop</groupId>
+            <artifactId>moudule-opencv</artifactId>
+            <version>4.20.0</version>
+        </dependency>
     </dependencies>
 
     <dependencyManagement>

+ 8 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/AdvertiserController.java

@@ -21,9 +21,11 @@ import org.jeecg.modules.ctop.mapper.ProjectMemberMapper;
 import org.jeecg.modules.ctop.service.IAdvertiserService;
 import org.jeecg.modules.ctop.service.IProjectService;
 import org.jeecg.modules.system.entity.SysCategory;
+import org.jeecg.modules.system.entity.SysUser;
 import org.jeecg.modules.system.entity.UserCompany;
 import org.jeecg.modules.system.mapper.UserCompanyMapper;
 import org.jeecg.modules.system.service.ISysCategoryService;
+import org.jeecg.modules.system.service.ISysUserService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -142,6 +144,10 @@ public class AdvertiserController {
                 if (sysCategory != null) {
                     advertiserRecord.setIndustryId(sysCategory.getName());
                 }
+                SysUser user = sysUserService.getById(advertiser.getSaleId());
+                if (null != user) {
+                    advertiserRecord.setSaleName(user.getRealname());
+                }
                 list.add(advertiserRecord);
             }
             pageList.setRecords(list);
@@ -151,6 +157,8 @@ public class AdvertiserController {
         return result;
     }
 
+    @Autowired
+    private ISysUserService sysUserService;
     /**
      * 添加
      *

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/entity/Advertiser.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.ctop.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -114,5 +115,8 @@ public class Advertiser {
 
     private String companyId;
 
+    @TableField(exist = false)
+    private String saleName;
+
 
 }

+ 141 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/opencv/FFmpegUtils.java

@@ -0,0 +1,141 @@
+//package org.jeecg.modules.demo.opencv;
+//
+//import java.io.BufferedReader;
+//import java.io.IOException;
+//import java.io.InputStream;
+//import java.io.InputStreamReader;
+//import java.text.SimpleDateFormat;
+//import java.util.ArrayList;
+//import java.util.Date;
+//import java.util.List;
+//import java.util.UUID;
+//
+//public class FFmpegUtils {
+//    public static void videoToPcm(String vedioUrl,String m4aUrl,String ffmpegUrl) throws InterruptedException, IOException {
+//        List<String> commend = new ArrayList<String>();
+//        commend.add(ffmpegUrl);
+//        commend.add("-i");
+//        commend.add(vedioUrl);
+//        commend.add("-vn");
+//        commend.add("y");
+//        commend.add("-acodec");
+//        commend.add("copy");
+//        commend.add(m4aUrl);
+//        ProcessBuilder builder = new ProcessBuilder();
+//        builder.command(commend);
+//        builder.redirectErrorStream(true);
+//        Process process = builder.start();
+//        process.waitFor();// 等待进程执行结束
+//    }
+//
+//    public static void mergeVideodioAndPcm(String videoInputPath, String audioInputPath, String videoOutPath,String ffmpegUrl) throws InterruptedException, IOException {
+//        /**
+//         *  String command = FFMPEG_PATH + " -i " + videoInputPath + " -i " + audioInputPath
+//         *   + " -c:v copy -c:a aac -strict experimental " +
+//         *   " -map 0:v:0 -map 1:a:0 "
+//         *   + " -y " + videoOutPath;
+//         */
+//        List<String> commend = new ArrayList<String>();
+//        commend.add(ffmpegUrl);
+//        commend.add("-i");
+//        commend.add(videoInputPath);
+//        commend.add("-i");
+//        commend.add(audioInputPath);
+//        commend.add(" -c:v");
+//        commend.add("copy");
+//        commend.add("-c:a");
+//        commend.add("acc");
+//        commend.add("-strict");
+//        commend.add("experimental");
+//        commend.add(videoOutPath);
+//        ProcessBuilder builder = new ProcessBuilder();
+//        builder.command(commend);
+//        builder.redirectErrorStream(true);
+//        Process process = builder.start();
+//        process.waitFor();// 等待进程执行结束
+//    }
+//
+//    public static void main(String[] args) throws InterruptedException, IOException {
+////        videoToPcm("D:\\data\\fill.mp4","D:\\data\\fill.m4a","D:\\java\\ffmpeg\\bin\\ffmpeg.exe");
+////        mergeVideodioAndPcm("D:\\data\\merge.mp4","D:\\data\\fill.m4a","D:\\data\\fill2.mp4","D:\\java\\ffmpeg\\bin\\ffmpeg.exe");
+//        try {
+//			videoToAudio("D:\\data\\test\\fill.mp4","D:\\data\\test\\123.mp3");
+//            String videoInputPath = "D:\\data\\test\\merge.mp4";
+//            String audioInputPath = "D:\\data\\test\\123.mp3";
+//            String videoOutPath = "D:\\data\\test\\fill.mp4";
+//            convetor(videoInputPath,audioInputPath,videoOutPath);
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        System.out.println("---------获取音频文件成功!-----------");
+//    }
+//
+//    /**
+//     * @param videoInputPath 原视频的全路径
+//     * @param audioInputPath 音频的全路径
+//     * @param videoOutPath   视频与音频结合之后的视频的路径
+//     * @throws Exception
+//     */
+//    public static void convetor(String videoInputPath, String audioInputPath, String videoOutPath)
+//            throws Exception {
+//        Process process = null;
+//        try {
+//            String command =FFMPEG_PATH + " -i " + videoInputPath + " -i " + audioInputPath + " -c:v copy -c:a aac -strict experimental " +
+//                    " -map 0:v:0 -map 1:a:0 "
+//                    + " -y " + videoOutPath;
+//            System.out.println(command);
+//            process = Runtime.getRuntime().exec(command);
+//            process.waitFor();
+//        } catch (IOException e) {
+//            // TODO Auto-generated catch block
+//            e.printStackTrace();
+//        }
+//        // 使用这种方式会在瞬间大量消耗CPU和内存等系统资源,所以这里我们需要对流进行处理
+//        InputStream errorStream = process.getErrorStream();
+//        InputStreamReader inputStreamReader = new InputStreamReader(errorStream);
+//        BufferedReader br = new BufferedReader(inputStreamReader);
+//
+//        String line = "";
+//        while ((line = br.readLine()) != null) {
+//        }
+//        if (br != null) {
+//            br.close();
+//        }
+//        if (inputStreamReader != null) {
+//            inputStreamReader.close();
+//        }
+//        if (errorStream != null) {
+//            errorStream.close();
+//        }
+//
+//    }
+//
+//    /**
+//     * 从视频中提取音频信息
+//     * @param videoUrl
+//     * @return
+//     */
+//    public static String videoToAudio(String videoUrl,String accFile){
+//        String aacFile = "";
+//        try {
+//            aacFile = TMP_PATH + "/" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())
+//                    + UUID.randomUUID().toString().replaceAll("-", "") + ".mp3";
+//            String command =   FFMPEG_PATH + " -i "+ videoUrl + " -vn -acodec copy "+ aacFile;
+//            System.out.println("video to audio command : " + command);
+//            Process process = Runtime.getRuntime().exec(command);
+//            process.waitFor();
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//        return "";
+//    }
+//
+//    /**
+//     * FFmpeg全路径
+//     */
+//    private static final String FFMPEG_PATH = "D:\\java\\ffmpeg\\bin\\ffmpeg.exe";
+//    /**
+//     * 音频保存路径
+//     */
+//    private static final String TMP_PATH = "D:\\data\\test";
+//}

+ 72 - 17
jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/opencv/Test.java

@@ -1,17 +1,72 @@
-/*
-package org.jeecg.modules.demo.opencv;
-
-public class Test {
-    public static void main(String[] args) {
-        String srcPath = "D://data//images/";
-        String targetPath = "D://data//video/";
-        for (int i = 163; i <= 235; i++) {
-            String backImg = srcPath + (i) + ".jpg";
-            String phoneImg = srcPath + (i - 163) + ".jpg";
-            String targetImg = targetPath + i + ".jpg";
-            Perspective.perpectiveImg(backImg, phoneImg, targetImg);
-        }
-    }
-
-}
-*/
+//package org.jeecg.modules.demo.opencv;
+//
+//import org.opencv.core.Core;
+//import org.opencv.core.Mat;
+//import org.opencv.core.Size;
+//import org.opencv.imgcodecs.Imgcodecs;
+//import org.opencv.imgproc.Imgproc;
+//
+//public class Test {
+//    public static void initVideo(){
+//        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
+//        String srcPath = "D:\\data\\images\\";
+//        String fillPath = "D:\\data\\fill\\";
+//        String targetPath = "D:\\data\\video\\";
+//        //1:切分视频
+////        VideoProcessing.grabberVideoFramer("D://data//video.mp4",srcPath);
+////        VideoProcessing.grabberVideoFramer("D://data//fill.mp4",fillPath);
+//        //2:合并图片
+//        int srcPhoneFrameNumFrom = 163;
+//        int changeSenceFrameNumFrom = 234;
+//        //2.1 复制原始视频无变化图片
+////        for(int i=1;i<srcPhoneFrameNumFrom;i++){
+////            Mat srcNoChangeImage = Imgcodecs.imread(srcPath+i+".jpg");
+////            Imgcodecs.imwrite(targetPath+i+".jpg",srcNoChangeImage);
+////        }
+//        String getImageName = "";
+//        //2.2 填充手机内部图片画面
+//        for (int i = 163; i < changeSenceFrameNumFrom; i++) {
+//            String backImg = srcPath + (i) + ".jpg";
+//            String phoneImg = fillPath + (i - 162) + ".jpg";
+//            String targetImg = targetPath + i + ".jpg";
+//            Perspective.perpectiveImg(backImg, phoneImg, targetImg);
+//            getImageName = targetImg;
+//        }
+//        //2.3 转场动画
+//        Mat image = Imgcodecs.imread(getImageName, Imgcodecs.IMREAD_COLOR);
+//        //(1)径向模糊图片
+//        Mat radialBlur = ImageUtils.radialBlur(image);
+//        Imgcodecs.imwrite(targetPath + changeSenceFrameNumFrom + ".jpg", radialBlur);
+//        changeSenceFrameNumFrom++;
+//        //(2)放大后径向模糊图片
+//        Mat bigImamge = new Mat();
+//        Imgproc.resize(image, bigImamge, new Size(image.cols() * 1.25, image.rows() * 1.25));
+//        Mat destBigImamge = ImageUtils.cutFromCenter(bigImamge, image.width(), image.height());
+//        Mat radialBlurDestBigImamge = ImageUtils.radialBlur(destBigImamge);
+//        Imgcodecs.imwrite(targetPath + changeSenceFrameNumFrom + ".jpg", radialBlurDestBigImamge);
+//        changeSenceFrameNumFrom++;
+//        //(3)缩小之后重复平铺加径向模糊
+//        Mat smallImage = new Mat();
+//        Mat halfImage = new Mat();
+//        Mat wholeImage = new Mat();
+//        Imgproc.resize(image, smallImage, new Size(image.cols() / 2, image.rows() / 2));
+//        ImageUtils.hconcat(smallImage, smallImage, halfImage);
+//        ImageUtils.vconcat(halfImage, halfImage, wholeImage);
+//        wholeImage = ImageUtils.radialBlur(wholeImage);
+//        Imgcodecs.imwrite(targetPath + changeSenceFrameNumFrom + ".jpg", wholeImage);
+//        changeSenceFrameNumFrom++;
+//        //复制填充视频无变化图片
+////        for(int i=changeSenceFrameNumFrom;i<100000;i++){
+////            int checkNum = i-3-srcPhoneFrameNumFrom+1;
+////            String fillImagePath = fillPath+checkNum+".jpg";
+////            File file = new File(fillImagePath);
+////            if(file.exists()){
+////                Mat srcMat = Imgcodecs.imread(fillImagePath);
+////                Imgcodecs.imwrite(targetPath+i+".jpg",srcMat);
+////            }else{
+////                break;
+////            }
+////        }
+//    }
+//
+//}