Browse Source

云点播

wwl 4 years ago
parent
commit
2add4511a7

+ 2 - 2
zzjs-admin/src/main/java/com/miaxis/pc/controller/teachingVideo/TeachingVideoInfoController.java

@@ -66,8 +66,8 @@ public class TeachingVideoInfoController extends BaseController {
     @Log(title = "教学视频", businessType = BusinessTypeEnum.INSERT)
     @PostMapping
     @ApiOperation("新增教学视频")
-    public Response<Integer> add(@RequestBody TeachingVideoInfo teachingVideoInfo){
-        return toResponse(teachingVideoInfoService.save(teachingVideoInfo) ? 1 : 0);
+    public Response add(@RequestBody TeachingVideoInfo teachingVideoInfo){
+        return teachingVideoInfoService.saveTeachingVideo(teachingVideoInfo);
     }
 
     /**

+ 173 - 7
zzjs-admin/src/test/java/com/miaxis/test/UpdateCarTest.java

@@ -5,31 +5,33 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.miaxis.ZzjsApplication;
 import com.miaxis.car.domain.CarBrandInfo;
+import com.miaxis.car.domain.CarParameterData;
+import com.miaxis.car.mapper.CarParameterDataMapper;
 import com.miaxis.car.service.ICarBrandInfoService;
-import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.enums.FileUploadTypeEnum;
+import com.miaxis.common.utils.TencentCloudAPIDemo;
+import com.miaxis.common.utils.TencentCloudAPITC3;
+import com.miaxis.common.utils.VodSignature;
+import com.miaxis.feign.dto.TencentCosCommonParameters;
 import com.miaxis.feign.service.ICarService;
+import com.miaxis.feign.service.ITencentCosService;
 import com.qcloud.cos.COSClient;
 import com.qcloud.cos.model.ObjectMetadata;
 import com.qcloud.cos.model.PutObjectRequest;
 import com.qcloud.cos.model.PutObjectResult;
-import io.swagger.annotations.ApiOperation;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.web.bind.annotation.GetMapping;
 
+import javax.annotation.Resource;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @author wwl
@@ -43,12 +45,18 @@ public class UpdateCarTest {
     @Autowired
     private ICarService carService;
 
+    @Autowired
+    private ITencentCosService tencentCosService;
+
     @Autowired
     private ICarBrandInfoService carBrandInfoService;
 
     @Autowired
     private COSClient cosClient;
 
+    @Resource
+    private CarParameterDataMapper carParameterDataMapper;
+
     private static String bucketName="t1-1305573081";
     private static String path="https://t1-1305573081.file.myqcloud.com";
     private static String preffix="t1";
@@ -124,5 +132,163 @@ public class UpdateCarTest {
     }
 
 
+    /**
+     * 新增二手车参数
+     * @return
+     */
+    @Test
+    public void addUsedCarData(){
+        //车型  model
+        List<String> strings1 = Arrays.asList("轿车","SUV", "MPV", "跑车","面包车", "皮卡", "微卡");
+        //价格 selling_price
+        List<String> strings2 = Arrays.asList("1万元以内","1-2万元", "2-3万元", "3-5万元","5-8万元", "8-12万元", "12-18万元", "18-24万元", "24-40万元", "40万元以上");
+        //变速箱 transmission_case
+        List<String> strings3 = Arrays.asList("手动","自动");
+        //排放标准---------
+        List<String> strings4 = Arrays.asList("国二","国三","国四","国五","国六");
+        //排量 vehicle_displacement
+        List<String> strings5 = Arrays.asList("1.0L及以下","1.1L-1.6L","1.7L-2.0L","2.1L-2.5L","2.6L-3.0L","3.1L-4.0L","4.0L以上");
+        //座位数 number_of_seats
+        List<String> strings6 = Arrays.asList("2座","4座","5座","6座","7座");
+        //燃料类型 fuel
+        List<String> strings7 = Arrays.asList("汽油","柴油","电动","油电混动");
+        //驱动 driving_mode
+        List<String> strings8 = Arrays.asList("前驱","后驱","四驱");
+        //结构 body_structure
+        List<String> strings9 = Arrays.asList("两厢","三厢", "掀背", "旅行版","硬顶敞篷车","软顶敞篷车","硬顶跑车","客车","货车");
+        //里程 mileage
+        List<String> strings10 = Arrays.asList("1万公里内","1-3万公里", "3-5万公里", "5-8万公里","8-12万公里","12-18万公里","18万公里以上");
+
+        for (int i = 0; i < strings1.size(); i++) {
+            int s = i;
+            CarParameterData carParameterData = new CarParameterData();
+            carParameterData.setParameterName(strings1.get(i));
+            carParameterData.setParameterValue(String.valueOf(s+1));
+            carParameterData.setParameterSort(s+1);
+            carParameterData.setParameterType("model");
+            carParameterDataMapper.insert(carParameterData);
+        }
+        for (int i = 0; i < strings2.size(); i++) {
+            int s = i;
+            CarParameterData carParameterData = new CarParameterData();
+            carParameterData.setParameterName(strings2.get(i));
+            carParameterData.setParameterValue(String.valueOf(s+1));
+            carParameterData.setParameterSort(s+1);
+            carParameterData.setParameterType("selling_price");
+            carParameterDataMapper.insert(carParameterData);
+        }
+        for (int i = 0; i < strings3.size(); i++) {
+            int s = i;
+            CarParameterData carParameterData = new CarParameterData();
+            carParameterData.setParameterName(strings3.get(i));
+            carParameterData.setParameterValue(String.valueOf(s+1));
+            carParameterData.setParameterSort(s+1);
+            carParameterData.setParameterType("transmission_case");
+            carParameterDataMapper.insert(carParameterData);
+        }
+        for (int i = 0; i < strings4.size(); i++) {
+            int s = i;
+            CarParameterData carParameterData = new CarParameterData();
+            carParameterData.setParameterName(strings4.get(i));
+            carParameterData.setParameterValue(String.valueOf(s+1));
+            carParameterData.setParameterSort(s+1);
+            carParameterData.setParameterType("emission_standard");
+            carParameterDataMapper.insert(carParameterData);
+        }
+        for (int i = 0; i < strings5.size(); i++) {
+            int s = i;
+            CarParameterData carParameterData = new CarParameterData();
+            carParameterData.setParameterName(strings5.get(i));
+            carParameterData.setParameterValue(String.valueOf(s+1));
+            carParameterData.setParameterSort(s+1);
+            carParameterData.setParameterType("vehicle_displacement");
+            carParameterDataMapper.insert(carParameterData);
+        }
+        for (int i = 0; i < strings6.size(); i++) {
+            int s = i;
+            CarParameterData carParameterData = new CarParameterData();
+            carParameterData.setParameterName(strings6.get(i));
+            carParameterData.setParameterValue(String.valueOf(s+1));
+            carParameterData.setParameterSort(s+1);
+            carParameterData.setParameterType("number_of_seats");
+            carParameterDataMapper.insert(carParameterData);
+        }
+        for (int i = 0; i < strings7.size(); i++) {
+            int s = i;
+            CarParameterData carParameterData = new CarParameterData();
+            carParameterData.setParameterName(strings7.get(i));
+            carParameterData.setParameterValue(String.valueOf(s+1));
+            carParameterData.setParameterSort(s+1);
+            carParameterData.setParameterType("fuel");
+            carParameterDataMapper.insert(carParameterData);
+        }
+        for (int i = 0; i < strings8.size(); i++) {
+            int s = i;
+            CarParameterData carParameterData = new CarParameterData();
+            carParameterData.setParameterName(strings8.get(i));
+            carParameterData.setParameterValue(String.valueOf(s+1));
+            carParameterData.setParameterSort(s+1);
+            carParameterData.setParameterType("driving_mode");
+            carParameterDataMapper.insert(carParameterData);
+        }
+        for (int i = 0; i < strings9.size(); i++) {
+            int s = i;
+            CarParameterData carParameterData = new CarParameterData();
+            carParameterData.setParameterName(strings9.get(i));
+            carParameterData.setParameterValue(String.valueOf(s+1));
+            carParameterData.setParameterSort(s+1);
+            carParameterData.setParameterType("body_structure");
+            carParameterDataMapper.insert(carParameterData);
+        }
+        for (int i = 0; i < strings10.size(); i++) {
+            int s = i;
+            CarParameterData carParameterData = new CarParameterData();
+            carParameterData.setParameterName(strings10.get(i));
+            carParameterData.setParameterValue(String.valueOf(s+1));
+            carParameterData.setParameterSort(s+1);
+            carParameterData.setParameterType("mileage");
+            carParameterDataMapper.insert(carParameterData);
+        }
+
+
+    }
+
+
+    /**
+     * 获取第三方汽车品牌接口
+     * @return
+     */
+    @Test
+    public void getVideoInfo() throws Exception{
+
+        //当前unix时间戳
+        String dateStr = Long.toString(System.currentTimeMillis()/1000L);
+        String random = String.valueOf(new Random().nextInt(Integer.MAX_VALUE));
+
+        TencentCosCommonParameters tencentCosCommonParameters = new TencentCosCommonParameters();
+        tencentCosCommonParameters.setAction("GetVideoInfo");
+        tencentCosCommonParameters.setRegion("sh");
+        tencentCosCommonParameters.setTimestamp(dateStr);
+        tencentCosCommonParameters.setNonce(random);
+        tencentCosCommonParameters.setSecretId("AKIDwISNOFsJXYGjy89FJI9UnzuZFgTtRgFe");
+
+        String signature = TencentCloudAPITC3.getSignature();
+        tencentCosCommonParameters.setSignature(signature);
+
+        String resultJson = tencentCosService.getVideoInfo("3701925920237204036",
+                "basicInfo",
+                "GetVideoInfo",
+                "sh",
+                dateStr,
+                random,
+                "AKIDwISNOFsJXYGjy89FJI9UnzuZFgTtRgFe",
+                "curl -H 'Host: cvm.tencentcloudapi.com' -H 'X-TC-Action: DescribeZones' -H 'X-TC-RequestClient: APIExplorer' -H 'X-TC-Timestamp: 1625550644' -H 'X-TC-Version: 2017-03-12' -H 'X-TC-Region: ap-shanghai' -H 'X-TC-Language: zh-CN' -H 'Content-Type: application/json' -H 'Authorization: TC3-HMAC-SHA256 Credential=AKIDwISNOFsJXYGjy89FJI9UnzuZFgTtRgFe/2021-07-06/cvm/tc3_request, SignedHeaders=content-type;host, Signature=a4c9101cbd62f5bc2696a435d8dc9fa51982070e41e6e258efdaa3417f1a8596' -d '{}' 'https://cvm.tencentcloudapi.com/'"
+                );
+//        String resultJson = tencentCosService.getVideoInfo2("3701925920237204036","basicInfo",tencentCosCommonParameters);
+        JSONObject jsonString = JSONObject.parseObject(resultJson);
+        System.out.println("jsonString"+jsonString);
+
+    }
+
 
 }

+ 66 - 0
zzjs-common/src/main/java/com/miaxis/common/utils/TencentCloudAPIDemo.java

@@ -0,0 +1,66 @@
+package com.miaxis.common.utils;
+
+import org.springframework.context.annotation.Configuration;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.Random;
+import java.util.TreeMap;
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import javax.xml.bind.DatatypeConverter;
+
+/**
+ * @author wwl
+ * @version 1.0
+ * @date 2021/7/6 10:44
+ */
+@Configuration
+public class TencentCloudAPIDemo {
+    private final static String CHARSET = "UTF-8";
+
+    public static String sign(String s, String key, String method) throws Exception {
+        Mac mac = Mac.getInstance(method);
+        SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes(CHARSET), mac.getAlgorithm());
+        mac.init(secretKeySpec);
+        byte[] hash = mac.doFinal(s.getBytes(CHARSET));
+        return DatatypeConverter.printBase64Binary(hash);
+    }
+
+    public static String getStringToSign(TreeMap<String, Object> params) {
+        StringBuilder s2s = new StringBuilder("GETcvm.tencentcloudapi.com/?");
+        // 签名时要求对参数进行字典排序,此处用TreeMap保证顺序
+        for (String k : params.keySet()) {
+            s2s.append(k).append("=").append(params.get(k).toString()).append("&");
+        }
+        return s2s.toString().substring(0, s2s.length() - 1);
+    }
+
+    public static String getUrl(TreeMap<String, Object> params) throws UnsupportedEncodingException {
+        StringBuilder url = new StringBuilder("https://cvm.tencentcloudapi.com/?");
+        // 实际请求的url中对参数顺序没有要求
+        for (String k : params.keySet()) {
+            // 需要对请求串进行urlencode,由于key都是英文字母,故此处仅对其value进行urlencode
+            url.append(k).append("=").append(URLEncoder.encode(params.get(k).toString(), CHARSET)).append("&");
+        }
+        return url.toString().substring(0, url.length() - 1);
+    }
+
+    public static String getSignature() throws Exception {
+        TreeMap<String, Object> params = new TreeMap<String, Object>(); // TreeMap可以自动排序
+        // 实际调用时应当使用随机数,例如:params.put("Nonce", new Random().nextInt(java.lang.Integer.MAX_VALUE));
+        params.put("Nonce", new Random().nextInt(java.lang.Integer.MAX_VALUE)); // 公共参数
+        // 实际调用时应当使用系统当前时间,例如:   params.put("Timestamp", System.currentTimeMillis() / 1000);
+        params.put("Timestamp", System.currentTimeMillis() / 1000); // 公共参数
+        params.put("SecretId", "AKIDwISNOFsJXYGjy89FJI9UnzuZFgTtRgFe"); // 公共参数
+        params.put("Action", "GetVideoInfo"); // 公共参数
+        params.put("Version", "2017-03-12"); // 公共参数
+        params.put("Region", "ap-guangzhou"); // 公共参数
+        params.put("Limit", 20); // 业务参数
+        params.put("Offset", 0); // 业务参数
+        params.put("InstanceIds.0", "ins-09dx96dg"); // 业务参数
+        params.put("Signature", sign(getStringToSign(params), "IK5af8MJzPoKbdQxDCtKWR5T5PSEkyDB", "HmacSHA1")); // 公共参数
+        System.out.println(getUrl(params));
+        return getUrl(params);
+    }
+}

+ 115 - 0
zzjs-common/src/main/java/com/miaxis/common/utils/TencentCloudAPITC3.java

@@ -0,0 +1,115 @@
+package com.miaxis.common.utils;
+
+import org.springframework.context.annotation.Configuration;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import javax.xml.bind.DatatypeConverter;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+import java.util.TreeMap;
+
+/**
+ * @author wwl
+ * @version 1.0
+ * @date 2021/7/2 15:25
+ */
+@Configuration
+public class TencentCloudAPITC3 {
+
+    private final static Charset UTF8 = StandardCharsets.UTF_8;
+    private final static String SECRET_KEY = "IK5af8MJzPoKbdQxDCtKWR5T5PSEkyDB";
+    private final static String SECRET_ID = "AKIDwISNOFsJXYGjy89FJI9UnzuZFgTtRgFe";
+    private final static String CT_JSON = "application/json; charset=utf-8";
+
+
+    public static String getSignature() throws Exception {
+        String service = "cvm";
+        String host = "vod.api.qcloud.com";
+        String region = "sh";
+        String action = "GetVideoInfo";
+        String version = "2017-03-12";
+        String algorithm = "TC3-HMAC-SHA256";
+        String timestamp = "1551113065";
+        //String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        // 注意时区,否则容易出错
+        sdf.setTimeZone(TimeZone.getTimeZone("UTC"));
+        String date = sdf.format(new Date(Long.valueOf(timestamp + "000")));
+
+        // ************* 步骤 1:拼接规范请求串 *************
+        String httpRequestMethod = "GET";
+        String canonicalUri = "/";
+        String canonicalQueryString = "";
+        String canonicalHeaders = "content-type:application/json; charset=utf-8\n" + "host:" + host + "\n";
+        String signedHeaders = "content-type;host";
+
+        String payload = "{\"Limit\": 1, \"Filters\": [{\"Values\": [\"\\u672a\\u547d\\u540d\"], \"Name\": \"instance-name\"}]}";
+        String hashedRequestPayload = sha256Hex(payload);
+        String canonicalRequest = httpRequestMethod + "\n" + canonicalUri + "\n" + canonicalQueryString + "\n"
+                + canonicalHeaders + "\n" + signedHeaders + "\n" + hashedRequestPayload;
+        System.out.println(canonicalRequest);
+
+        // ************* 步骤 2:拼接待签名字符串 *************
+        String credentialScope = date + "/" + service + "/" + "tc3_request";
+        String hashedCanonicalRequest = sha256Hex(canonicalRequest);
+        String stringToSign = algorithm + "\n" + timestamp + "\n" + credentialScope + "\n" + hashedCanonicalRequest;
+        System.out.println("待签名字符串----------"+stringToSign);
+
+        // ************* 步骤 3:计算签名 *************
+        byte[] secretDate = hmac256(("TC3" + SECRET_KEY).getBytes(UTF8), date);
+        byte[] secretService = hmac256(secretDate, service);
+        byte[] secretSigning = hmac256(secretService, "tc3_request");
+        String signature = DatatypeConverter.printHexBinary(hmac256(secretSigning, stringToSign)).toLowerCase();
+        System.out.println("签名----------"+signature);
+
+        // ************* 步骤 4:拼接 Authorization *************
+        String authorization = algorithm + " " + "Credential=" + SECRET_ID + "/" + credentialScope + ", "
+                + "SignedHeaders=" + signedHeaders + ", " + "Signature=" + signature;
+        System.out.println(authorization);
+
+        TreeMap<String, String> headers = new TreeMap<>();
+        headers.put("Authorization", authorization);
+        headers.put("Content-Type", CT_JSON);
+        headers.put("Host", host);
+        headers.put("X-TC-Action", action);
+        headers.put("X-TC-Timestamp", timestamp);
+        headers.put("X-TC-Version", version);
+        headers.put("X-TC-Region", region);
+
+        StringBuilder sb = new StringBuilder();
+        sb.append("curl -X POST https://").append(host)
+                .append(" -H \"Authorization: ").append(authorization).append("\"")
+                .append(" -H \"Content-Type: application/json; charset=utf-8\"")
+                .append(" -H \"Host: ").append(host).append("\"")
+                .append(" -H \"X-TC-Action: ").append(action).append("\"")
+                .append(" -H \"X-TC-Timestamp: ").append(timestamp).append("\"")
+                .append(" -H \"X-TC-Version: ").append(version).append("\"")
+                .append(" -H \"X-TC-Region: ").append(region).append("\"")
+                .append(" -d '").append(payload).append("'");
+        System.out.println("sb-------"+sb.toString());
+
+        return signature;
+
+    }
+
+
+    public static byte[] hmac256(byte[] key, String msg) throws Exception {
+        Mac mac = Mac.getInstance("HmacSHA256");
+        SecretKeySpec secretKeySpec = new SecretKeySpec(key, mac.getAlgorithm());
+        mac.init(secretKeySpec);
+        return mac.doFinal(msg.getBytes(UTF8));
+    }
+
+    public static String sha256Hex(String s) throws Exception {
+        MessageDigest md = MessageDigest.getInstance("SHA-256");
+        byte[] d = md.digest(s.getBytes(UTF8));
+        return DatatypeConverter.printHexBinary(d).toLowerCase();
+    }
+
+
+}

+ 18 - 0
zzjs-service/src/main/java/com/miaxis/feign/dto/TencentCosCommonParameters.java

@@ -0,0 +1,18 @@
+package com.miaxis.feign.dto;
+
+import lombok.Data;
+
+/**
+ * @author wwl
+ * @version 1.0
+ * @date 2021/7/2 15:57
+ */
+@Data
+public class TencentCosCommonParameters {
+    private String action;//接口指令的名称,例如 DescribeInstances
+    private String region;//区域参数,用来标识希望操作哪个区域的实例。可选: bj:北京 gz:广州sh:上海 hk:中国香港
+    private String timestamp;//	当前 UNIX 时间戳
+    private String nonce;//随机正整数,与 Timestamp 联合起来, 用于防止重放攻击
+    private String secretId;//由腾讯云平台上申请的标识身份的 SecretId 和 SecretKey, 其中 SecretKey 会用来生成 Signature
+    private String Signature;//请求签名,用来验证此次请求的合法性
+}

+ 40 - 0
zzjs-service/src/main/java/com/miaxis/feign/service/ITencentCosService.java

@@ -0,0 +1,40 @@
+package com.miaxis.feign.service;
+
+import com.miaxis.common.config.FeignConfig;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * 腾讯云点播接口
+ * @author wwl
+ * @version 1.0
+ * @date 2021/7/2 16:23
+ */
+@FeignClient(name="tencentCosService",
+        url = "https://vod.api.qcloud.com",
+        configuration = FeignConfig.class)
+@Component
+public interface ITencentCosService {
+
+
+    /**
+     * 获取视频信息
+     * @param fileId 要获取的视频 ID
+     * @param infoFilter 指定需要返回的信息,可同时指定多个信息,n从0开始递增。如果未填写该字段,默认返回所有信息
+
+     * @return
+     */
+    @GetMapping(value = "/v2/index.php?Action=GetVideoInfo")
+    String getVideoInfo(@RequestParam("fileId") String fileId,
+                          @RequestParam("infoFilter.0") String infoFilter,
+                          @RequestParam("action") String action,
+                          @RequestParam("Region") String region ,
+                          @RequestParam("Timestamp") String timestamp,
+                          @RequestParam("Nonce") String nonce,
+                          @RequestParam("SecretId") String secretId,
+                        @RequestParam("Signature") String signature);
+
+
+}

+ 44 - 0
zzjs-service/src/main/java/com/miaxis/teachingVideo/dto/TeachingVideoInfoDto.java

@@ -0,0 +1,44 @@
+package com.miaxis.teachingVideo.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 教学视频对象入参
+ * @author wwl
+ * @version 1.0
+ * @date 2021/7/2 14:25
+ */
+@Data
+@ApiModel(value = "TeachingVideoInfoDto", description = "教学视频对象入参")
+public class TeachingVideoInfoDto extends BaseBusinessEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "媒体播放地址")
+    private String MediaUrl;
+
+    @ApiModelProperty(value = "封面图片id")
+    private Long coverFileId;
+
+    @ApiModelProperty(value = "视频标题")
+    private String title;
+
+    @TableField("video_describe")
+    @ApiModelProperty(value = "视频描述")
+    private String videoDescribe;
+
+    @TableField("video_duration")
+    @ApiModelProperty(value = "视频时长")
+    private String videoDuration;
+
+    @TableField("teaching_video_type_id")
+    @ApiModelProperty(value = "教学视频分类id (关联teaching_video_type_info表)")
+    private Long teachingVideoTypeId;
+
+
+}

+ 7 - 0
zzjs-service/src/main/java/com/miaxis/teachingVideo/service/ITeachingVideoInfoService.java

@@ -30,6 +30,13 @@ public interface ITeachingVideoInfoService extends IService<TeachingVideoInfo> {
      */
     Response<TeachingVideoInfoVo> getTeachingVideoDetailsById(Long id);
 
+    /**
+     *  新增教学视频
+     * @param teachingVideoInfo
+     * @return
+     */
+    Response saveTeachingVideo(TeachingVideoInfo teachingVideoInfo);
+
     /**
      * 删除教学视频(伪删除)
      * @param ids

+ 21 - 0
zzjs-service/src/main/java/com/miaxis/teachingVideo/service/impl/TeachingVideoInfoServiceImpl.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.conditions.update.UpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.miaxis.common.core.domain.Response;
+import com.miaxis.feign.service.ITencentCosService;
+import com.miaxis.file.service.IFileInfoService;
 import com.miaxis.teachingVideo.domain.TeachingVideoInfo;
 import com.miaxis.teachingVideo.mapper.TeachingVideoInfoMapper;
 import com.miaxis.teachingVideo.service.ITeachingVideoInfoService;
@@ -26,6 +28,10 @@ public class TeachingVideoInfoServiceImpl extends ServiceImpl<TeachingVideoInfoM
 
     private final TeachingVideoInfoMapper teachingVideoInfoMapper;
 
+    private final ITencentCosService tencentCosService;
+
+    private final IFileInfoService fileInfoService;
+
     /**
      * 查询教学视频列表
      *
@@ -48,6 +54,21 @@ public class TeachingVideoInfoServiceImpl extends ServiceImpl<TeachingVideoInfoM
         return Response.success(info);
     }
 
+    /**
+     * 新增教学视频
+     * @param teachingVideoInfo
+     * @return
+     */
+    @Override
+    public Response saveTeachingVideo(TeachingVideoInfo teachingVideoInfo) {
+
+
+        //根据fileId获取云点播视频信息
+        //tencentCosService.getVideoInfo(teachingVideoInfo.getFileId(),"basicInfo")
+
+        return null;
+    }
+
     /**
      * 删除教学视频(伪删除)
      * @param ids