Helius
2021-07-14 182248f071a545649f2ce60ee1aa21b653a97c84
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package com.xzx.gc.user.controller;
 
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ZipUtil;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import com.xzx.gc.common.Result;
import com.xzx.gc.common.exception.RestException;
import com.xzx.gc.common.utils.DateUtils;
import com.xzx.gc.entity.ResourceInfo;
import com.xzx.gc.entity.UserInfo;
import com.xzx.gc.user.service.UserService;
import com.xzx.gc.user.service.PosterService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
 
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutionException;
 
 
@RestController
@RequestMapping("/poster")
@Validated
@Slf4j
@Api(tags = "海报管理")
public class ImageController {
 
 
    @Autowired
    private PosterService posterService;
 
    @Autowired
    private UserService userService;
 
//    @ApiOperation("生成海报图")
//    @PostMapping(value = "/create")
//    @ResponseBody
//    public Result<List<ResourceInfo>> upload(HttpServletRequest request,@ApiParam("上传文件") @RequestParam(name = "file") MultipartFile file,@ApiParam(value = "生成路径目录",defaultValue = "c:") @RequestParam(name = "path") String path,@ApiParam(value = "生成压缩包名称,X代表用文件名") @RequestParam(name = "zipRealName",required = false) String zipRealName) throws IOException, ExecutionException, InterruptedException {
//        Result result=new Result();
//        if(!FileUtil.exist(path)||!FileUtil.isDirectory(path)){
//            return Result.error(-1,"目录不存在或者不是一个目录");
//        }
//        ExcelReader reader = ExcelUtil.getReader(file.getInputStream());
//        List<Map<String, Object>> maps = reader.readAll();
//
//        if(CollUtil.isNotEmpty(maps)){
//            List<File> list=new ArrayList<>();
//            CountDownLatch countDownLatch = ThreadUtil.newCountDownLatch(maps.size());
//
//            for (Map<String, Object> map : maps) {
//                String next = map.keySet().iterator().next();
//                Long mobile = (Long) map.get(next);
//                if(mobile!=null){
//                    UserInfo byMobile = userService.findByMobileTest(mobile.toString());
//                    if(byMobile!=null){
//                        Runnable callable=()->{
//                            Map<String, String> generate = posterService.generateByUi(byMobile);
//                            list.add(new File(generate.get("uploadUrl")));
//                            countDownLatch.countDown();
//                        };
//                        ThreadUtil.execAsync(callable,true);
//                    }else {
//                        throw new RestException(-1,"用户:"+mobile+"未注册");
//                    }
//                }
//            }
//
//            countDownLatch.await();
//
//            if(CollUtil.isNotEmpty(list)){
//                String zipName=DateUtil.format(new Date(),DateUtils.DATE_FORMAT_YMDHMS_LINE);
//                if(StrUtil.isNotBlank(zipRealName)){
//                    if("X".equals(zipRealName)){
//                        zipName=  StrUtil.subBefore(file.getOriginalFilename(),".",false);
//                    }else {
//                        zipName = StrUtil.removeSuffix(zipRealName, ".zip");
//                    }
//                }
//                String s = path + "/" + zipName + ".zip";
//
//
//                ZipUtil.zip(FileUtil.file(s), false,ArrayUtil.toArray(list,File.class));
//                result.setMsg("生成海报成功,压缩包路径:"+s);
//                result.setCode(0);
//                return result;
//            }
//
//        }
//        return Result.error(-1,"上传文件是空的");
//    }
 
}