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
package com.tanpu.community.util;
import com.tanpu.biz.common.enums.RelTypeEnum;
import com.tanpu.community.api.beans.qo.ThemeContentQo;
import com.tanpu.community.api.beans.qo.ThemeQo;
import org.apache.commons.codec.binary.Base64;
import java.util.ArrayList;
import java.util.List;
public class BizUtils {
public static <T> List<T> subList(List<T> list, int start, int size) {
if (list.isEmpty() || start >= list.size() || start < 0) {
return new ArrayList<>();
}
int realEnd = Math.min(start + size, list.size());
return list.subList(start, realEnd);
}
public static String getThemeContent(String[] keywords, ThemeQo theme) {
for (ThemeContentQo paragraph : theme.content) {
if (paragraph.getType().equals(RelTypeEnum.TEXT.type)) {
for (String keyword : keywords) {
int idx = paragraph.getValue().indexOf(keyword);
if (idx == -1) {
continue;
} else if (idx < 30) {
// 如果关键词在段落偏头部的部分,则全部返回给前端,前端自由展示
return paragraph.getValue();
} else {
// 否则,保留关键词 向前20个字符
return "..." + paragraph.getValue().substring(idx - 20);
}
}
}
}
return "";
}
public static String formatCountNumber(Integer number) {
if (number < 10000) {
return number.toString();
} else {
double d = number * 1.0 / 10000;
return String.format("%.1f",d)+"w";
}
}
public static void main(String[] args) {
String sk = "59V9ke9txaIFzWxHFKTb1eoOOpmKpJ";
String policy = "{\"expiration\":\"2021-07-30T12:00:00.000Z\",\"conditions\":[[\"content-length-range\",0,1024*1024*1024]]}";
System.out.println(policy);
String encodePolicy = new String(Base64.encodeBase64(policy.getBytes()));
String sign = com.aliyun.oss.common.auth.ServiceSignature.create().computeSignature(sk, encodePolicy);
System.out.println(encodePolicy);
System.out.println(sign);
}
}