File size: 2,257 Bytes
d04c26a |
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 |
package com.jetbrains.help.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.util.StrUtil;
import com.jetbrains.help.context.LicenseContextHolder;
import com.jetbrains.help.context.PluginsContextHolder;
import com.jetbrains.help.context.ProductsContextHolder;
import lombok.Data;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@RestController
public class OpenApiController {
@Data
public static class GenerateLicenseReqBody {
private String licenseName;
private String assigneeName;
private String expiryDate;
private String productCode;
}
@PostMapping("generateLicense")
public String generateLicense(@RequestBody GenerateLicenseReqBody body) {
Set<String> productCodeSet;
if (CharSequenceUtil.isBlank(body.getProductCode())) {
List<String> productCodeList = ProductsContextHolder.productCacheList()
.stream()
.map(ProductsContextHolder.ProductCache::getProductCode)
.filter(StrUtil::isNotBlank)
.map(productCode -> CharSequenceUtil.splitTrim(productCode, ","))
.flatMap(Collection::stream)
.toList();
List<String> pluginCodeList = PluginsContextHolder.pluginCacheList()
.stream()
.map(PluginsContextHolder.PluginCache::getProductCode)
.filter(StrUtil::isNotBlank)
.toList();
productCodeSet = CollUtil.newHashSet(productCodeList);
productCodeSet.addAll(pluginCodeList);
}else {
productCodeSet = CollUtil.newHashSet(CharSequenceUtil.splitTrim(body.getProductCode(), ','));
}
return LicenseContextHolder.generateLicense(
body.getLicenseName(),
body.getAssigneeName(),
body.getExpiryDate(),
productCodeSet
);
}
}
|