Bläddra i källkod

会议小程序

孙永军 1 år sedan
förälder
incheckning
186be2265d

+ 16 - 0
src/main/java/com/smcic/api/conference/controller/ConferenceController.java

@@ -4,8 +4,11 @@ package com.smcic.api.conference.controller;
 import com.smcic.api.conference.entity.Conference;
 import com.smcic.api.conference.service.impl.ConferenceServiceImpl;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -39,4 +42,17 @@ public class ConferenceController {
         return conferenceService.getById(id);
     }
 
+
+    @PostMapping("upload")
+    public List<String> upload(@RequestParam("file") MultipartFile file,
+                         @RequestParam("id") Long conferenceId){
+        return Collections.singletonList(conferenceService.upload(file, conferenceId));
+    }
+
+    @PostMapping("multi-upload")
+    public List<String> MultiUpload(@RequestParam("files") MultipartFile[] files,
+                         @RequestParam("id") Long conferenceId){
+        return conferenceService.multiUpload(files, conferenceId);
+    }
+
 }

+ 2 - 0
src/main/java/com/smcic/api/conference/entity/ConferenceLive.java

@@ -28,6 +28,8 @@ public class ConferenceLive implements Serializable {
 
     private Long conferenceId;
 
+    private Long agendaId;
+
     private String liveTitle;
 
     private String liveDesc;

+ 25 - 0
src/main/java/com/smcic/api/conference/service/impl/ConferenceServiceImpl.java

@@ -1,10 +1,18 @@
 package com.smcic.api.conference.service.impl;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.lang.UUID;
 import com.smcic.api.conference.entity.Conference;
 import com.smcic.api.conference.mapper.ConferenceMapper;
 import com.smcic.api.conference.service.IConferenceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.smcic.api.operate.service.OSSService;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +25,21 @@ import org.springframework.stereotype.Service;
 @Service
 public class ConferenceServiceImpl extends ServiceImpl<ConferenceMapper, Conference> implements IConferenceService {
 
+    @Resource
+    private OSSService ossService;
+
+    public String upload(MultipartFile file, Long cid){
+        String path = "operate/cenference/" + cid + "/" + (new DateTime().toString("yyyyMMdd")) + "/"+ UUID.randomUUID() + file.getOriginalFilename();
+        ossService.put("smcic-index", path, file);
+
+        return  "https://cxzx.smcic.net/" + path;
+    }
+
+    public List<String> multiUpload(MultipartFile[] files, Long cid){
+        List<String> urls = new ArrayList<>();
+        for(MultipartFile file : files){
+            urls.add(upload(file, cid));
+        }
+        return urls;
+    }
 }

+ 90 - 0
src/test/java/conference.http

@@ -113,3 +113,93 @@ Content-Type: application/json
 
 ### 嘉宾查询,根据会议id和类型
 GET {{ip}}/conference/guest/list/1066?type=1
+
+
+### 合作伙伴
+### 合作伙伴创建
+POST {{ip}}/conference/partner/create
+Content-Type: application/json
+
+{
+  "conferenceId": 1066,
+  "partnerName": "人民网",
+  "logo": "http://logo",
+  "partnerType": "战略合作媒体",
+  "website": "http://官网",
+  "sortNo": 100
+}
+
+### 合作伙伴查询
+GET {{ip}}/conference/partner/list/1066
+
+
+### 单文件上传
+POST {{ip}}/conference/conference/upload
+Content-Type: multipart/form-data; boundary=WebAppBoundary
+
+--WebAppBoundary
+Content-Disposition: form-data; name="file"; filename="v2.jpg"
+Content-Type: multipart/form-data
+
+< C:\Users\admin\Pictures\v2-a76668f37af2f88b3cf5b3a90b5dc9ce_b.jpg
+--WebAppBoundary
+Content-Disposition: form-data; name="id"
+Content-Type: text/plain
+
+1066
+--WebAppBoundary
+
+
+### 多文件上传
+POST {{ip}}/conference/conference/multi-upload
+Content-Type: multipart/form-data; boundary=WebAppBoundary
+
+--WebAppBoundary
+Content-Disposition: form-data; name="files"; filename="v2.jpg"
+Content-Type: multipart/form-data
+
+< C:\Users\admin\Pictures\v2-a76668f37af2f88b3cf5b3a90b5dc9ce_b.jpg
+--WebAppBoundary
+Content-Disposition: form-data; name="files"; filename="v3.jpg"
+Content-Type: multipart/form-data
+
+< C:\Users\admin\Pictures\v2-a76668f37af2f88b3cf5b3a90b5dc9ce_b.jpg
+--WebAppBoundary
+Content-Disposition: form-data; name="id"
+Content-Type: text/plain
+
+1066
+--WebAppBoundary
+
+### 精彩视频
+POST {{ip}}/conference/live-video/create
+Content-Type: application/json
+
+{
+"conferenceId": 1066,
+  "agendaId": 1,
+  "title": "精彩片段",
+  "cover": "封面",
+  "video": "视频",
+  "isTop": 1
+}
+
+### 精彩视频列表
+GET {{ip}}/conference/live-video/list/1066?page=1&pageSize=20
+
+### 直播图片, 批量
+POST {{ip}}/conference/live-photo/create-batch
+Content-Type: application/json
+
+{
+"conferenceId": 1066,
+  "agendaId": 1,
+  "title": "批图",
+  "photo": [
+    "https://cxzx.smcic.net/operate/cenference/1066/20240328/1d9b500f-1785-4e22-9e77-815d21df2820v2.jpg",
+    "https://cxzx.smcic.net/operate/cenference/1066/20240328/6b387a7c-f0f5-405a-acb1-87a93f7d6403v3.jpg"
+  ]
+}
+
+### 直播图片获取/conference/live-photo/list/{{id}}
+GET {{ip}}/conference/live-photo/list/1066?page=1&pageSize=20