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); } }