licailing hace 4 años
padre
commit
247e8413f9

+ 5 - 2
src/main/java/com/izouma/wenlvju/dto/ProgrammeDTO.java

@@ -3,6 +3,7 @@ package com.izouma.wenlvju.dto;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelIgnore;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.metadata.BaseRowModel;
 import com.izouma.wenlvju.annotations.EnumFormat;
 import com.izouma.wenlvju.annotations.EnumFormat;
 import com.izouma.wenlvju.domain.VideoObject;
 import com.izouma.wenlvju.domain.VideoObject;
 import com.izouma.wenlvju.domain.performance.Programme;
 import com.izouma.wenlvju.domain.performance.Programme;
@@ -17,20 +18,22 @@ import lombok.NoArgsConstructor;
 
 
 import javax.persistence.EnumType;
 import javax.persistence.EnumType;
 import javax.persistence.Enumerated;
 import javax.persistence.Enumerated;
-import javax.persistence.Transient;
 
 
 @Data
 @Data
 @AllArgsConstructor
 @AllArgsConstructor
 @NoArgsConstructor
 @NoArgsConstructor
 @Builder
 @Builder
 @ApiModel(value = "节目安排")
 @ApiModel(value = "节目安排")
-public class ProgrammeDTO {
+public class ProgrammeDTO extends BaseRowModel {
     @ExcelIgnore
     @ExcelIgnore
     private Long id;
     private Long id;
 
 
     @ExcelIgnore
     @ExcelIgnore
     private Long performanceId;
     private Long performanceId;
 
 
+    @ExcelProperty(value = "活动名称")
+    private String performanceName;
+
     @ExcelProperty(value = "节目名称")
     @ExcelProperty(value = "节目名称")
     private String name;
     private String name;
 
 

+ 27 - 3
src/main/java/com/izouma/wenlvju/service/performance/ProgrammeService.java

@@ -12,6 +12,7 @@ import com.izouma.wenlvju.domain.performance.Participant;
 import com.izouma.wenlvju.domain.performance.Programme;
 import com.izouma.wenlvju.domain.performance.Programme;
 import com.izouma.wenlvju.dto.PageQuery;
 import com.izouma.wenlvju.dto.PageQuery;
 import com.izouma.wenlvju.dto.ProgrammeDTO;
 import com.izouma.wenlvju.dto.ProgrammeDTO;
+import com.izouma.wenlvju.exception.BusinessException;
 import com.izouma.wenlvju.repo.ArtTypeRepo;
 import com.izouma.wenlvju.repo.ArtTypeRepo;
 import com.izouma.wenlvju.repo.GradingOrganizationRepo;
 import com.izouma.wenlvju.repo.GradingOrganizationRepo;
 import com.izouma.wenlvju.repo.OrganizationRepo;
 import com.izouma.wenlvju.repo.OrganizationRepo;
@@ -20,11 +21,17 @@ import com.izouma.wenlvju.repo.performance.ParticipantRepo;
 import com.izouma.wenlvju.repo.performance.ProgrammeRepo;
 import com.izouma.wenlvju.repo.performance.ProgrammeRepo;
 import com.izouma.wenlvju.service.ArtTypeService;
 import com.izouma.wenlvju.service.ArtTypeService;
 import com.izouma.wenlvju.utils.JpaUtils;
 import com.izouma.wenlvju.utils.JpaUtils;
+import com.izouma.wenlvju.utils.excel.ExcelUtils;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Predicate;
+import javax.transaction.Transactional;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -122,11 +129,9 @@ public class ProgrammeService {
 
 
     public List<ProgrammeDTO> toDTOList(List<Programme> programmes) {
     public List<ProgrammeDTO> toDTOList(List<Programme> programmes) {
         List<Long> ids = new ArrayList<>();
         List<Long> ids = new ArrayList<>();
-        List<Long> settingIds = new ArrayList<>();
 
 
         programmes.forEach(programme -> {
         programmes.forEach(programme -> {
             ids.add(programme.getId());
             ids.add(programme.getId());
-            settingIds.add(programme.getLevelSettingId());
         });
         });
 
 
         Map<Long, String> organizationMap = organizationRepo.findAll()
         Map<Long, String> organizationMap = organizationRepo.findAll()
@@ -138,7 +143,7 @@ public class ProgrammeService {
         Map<Long, String> artTypeMap = artTypeRepo.findAll()
         Map<Long, String> artTypeMap = artTypeRepo.findAll()
                 .stream()
                 .stream()
                 .collect(Collectors.toMap(ArtType::getId, ArtType::getName));
                 .collect(Collectors.toMap(ArtType::getId, ArtType::getName));
-        Map<Long, String> settingMap = settingRepo.findAllById(settingIds)
+        Map<Long, String> settingMap = settingRepo.findAllByFlagIn(CollUtil.newArrayList(3, 4))
                 .stream()
                 .stream()
                 .collect(Collectors.toMap(Setting::getId, Setting::getName));
                 .collect(Collectors.toMap(Setting::getId, Setting::getName));
 
 
@@ -160,4 +165,23 @@ public class ProgrammeService {
                     settingMap.get(programme.getLevelSettingId()), 0);
                     settingMap.get(programme.getLevelSettingId()), 0);
         }).collect(Collectors.toList());
         }).collect(Collectors.toList());
     }
     }
+
+    @Transactional(rollbackOn = Exception.class)
+    public void upload(InputStream is, Long userId) throws IOException {
+        organizationRepo.findByUserId(userId).orElseThrow(new BusinessException("无记录"));
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+
+        byte[] buffer = new byte[1024];
+        int len;
+        while ((len = is.read(buffer)) > -1) {
+            baos.write(buffer, 0, len);
+        }
+        baos.flush();
+
+        InputStream indicatorStream = new ByteArrayInputStream(baos.toByteArray());
+        List<ProgrammeDTO> dtos = ExcelUtils.readExcel(indicatorStream, ProgrammeDTO.class, 1, 1);
+
+        settingRepo.findAllByFlagIn(CollUtil.newArrayList(3, 4));
+    }
 }
 }

+ 21 - 7
src/main/java/com/izouma/wenlvju/web/performance/ProgrammeController.java

@@ -1,31 +1,33 @@
 package com.izouma.wenlvju.web.performance;
 package com.izouma.wenlvju.web.performance;
 
 
-import com.izouma.wenlvju.dto.ProgrammeDTO;
-import com.izouma.wenlvju.web.BaseController;
 import com.izouma.wenlvju.domain.performance.Programme;
 import com.izouma.wenlvju.domain.performance.Programme;
-import com.izouma.wenlvju.service.performance.ProgrammeService;
 import com.izouma.wenlvju.dto.PageQuery;
 import com.izouma.wenlvju.dto.PageQuery;
+import com.izouma.wenlvju.dto.ProgrammeDTO;
 import com.izouma.wenlvju.exception.BusinessException;
 import com.izouma.wenlvju.exception.BusinessException;
 import com.izouma.wenlvju.repo.performance.ProgrammeRepo;
 import com.izouma.wenlvju.repo.performance.ProgrammeRepo;
+import com.izouma.wenlvju.service.performance.ProgrammeService;
 import com.izouma.wenlvju.utils.ObjUtils;
 import com.izouma.wenlvju.utils.ObjUtils;
+import com.izouma.wenlvju.utils.SecurityUtils;
 import com.izouma.wenlvju.utils.excel.ExcelUtils;
 import com.izouma.wenlvju.utils.excel.ExcelUtils;
-
-import io.swagger.annotations.ApiOperation;
+import com.izouma.wenlvju.web.BaseController;
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Page;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.List;
 import java.util.List;
 
 
+@Slf4j
 @RestController
 @RestController
 @RequestMapping("/programme")
 @RequestMapping("/programme")
 @AllArgsConstructor
 @AllArgsConstructor
 public class ProgrammeController extends BaseController {
 public class ProgrammeController extends BaseController {
     private ProgrammeService programmeService;
     private ProgrammeService programmeService;
-    private ProgrammeRepo programmeRepo;
+    private ProgrammeRepo    programmeRepo;
 
 
     //@PreAuthorize("hasRole('ADMIN')")
     //@PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/save")
     @PostMapping("/save")
@@ -67,5 +69,17 @@ public class ProgrammeController extends BaseController {
         ExcelUtils.export(response, data);
         ExcelUtils.export(response, data);
     }
     }
 
 
+    @PostMapping("/upload")
+    public void uploadFile(@RequestParam("file") MultipartFile file) {
+        InputStream is;
+        try {
+            is = file.getInputStream();
+            programmeService.upload(is, SecurityUtils.getAuthenticatedUser().getId());
+        } catch (IOException e) {
+            log.error("上传失败", e);
+            throw new BusinessException("上传失败", e.getMessage());
+        }
+    }
+
 }
 }