Utils工具类
1.BeanCopyUtil
package com.blog.utils;
import java.util.ArrayList;
import java.util.List;
public class BeanCopyUtil {
public static <T> T copyObject(Object source, Class<T> target) {
T temp = null;
try {
temp = target.newInstance();
if (null != source) {
org.springframework.beans.BeanUtils
.copyProperties(source, temp);
}
} catch (Exception e) {
e.printStackTrace();
}
return temp;
}
public static <T, S> List<T> copyList(List<S> source, Class<T> target) {
List<T> list = new ArrayList<>();
if (null != source && source.size() > 0) {
for (Object obj : source) {
list.add(BeanCopyUtil.copyObject(obj, target));
}
}
return list;
}
}
2.CommonUtil(检查邮箱是否合法)
package com.blog.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class CommonUtil {
public static boolean checkEmail(String username) {
String rule = "^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$";
Pattern p = Pattern.compile(rule);
Matcher m = p.matcher(username);
return m.matches();
}
}
3.日期工具类
package com.blog.utils;
import com.google.common.base.Strings;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class DateUtil {
public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
public static final String YYYY_MM_DD_HH = "yyyy-MM-dd HH";
public static final String YYYY_MM_DD = "yyyy-MM-dd";
public static Date getSomeDay(Date date, int day) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.DATE, day);
return calendar.getTime();
}
public static Date strToDate(String strDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
try {
return formatter.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
public static String date2Str(Date date, String pattern) {
return !Objects.isNull(date) && !Strings.isNullOrEmpty(pattern) ? Optional.of((new SimpleDateFormat(pattern)).format(date)).get() : (String) Optional.empty().get();
}
public static int getDayOfWeek(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(Calendar.DAY_OF_WEEK) - 1;
}
public static int getDayOfMonth(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(Calendar.DAY_OF_MONTH);
}
public static int getDayOfYear(Date date) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
return cal.get(Calendar.YEAR);
}
public static String getMinTime(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return getMinTime(calendar);
}
private static String getMinTime(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return date2Str(calendar.getTime(), YYYY_MM_DD_HH_MM_SS);
}
public static String getMaxTime(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return getMaxTime(calendar);
}
private static String getMaxTime(Calendar calendar) {
calendar.set(Calendar.HOUR_OF_DAY, calendar.getActualMaximum(Calendar.HOUR_OF_DAY));
calendar.set(Calendar.MINUTE, calendar.getActualMaximum(Calendar.MINUTE));
calendar.set(Calendar.SECOND, calendar.getActualMaximum(Calendar.SECOND));
calendar.set(Calendar.MILLISECOND, calendar.getActualMaximum(Calendar.MILLISECOND));
return date2Str(calendar.getTime(), YYYY_MM_DD_HH_MM_SS);
}
public static String getBeforeHourTime(int hour) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, calendar.get(Calendar.HOUR_OF_DAY) - hour);
return date2Str(calendar.getTime(), YYYY_MM_DD_HH_MM_SS);
}
}
4.IpUtil
package com.blog.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.client.RestTemplate;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.List;
import java.util.Map;
@SuppressWarnings("all")
public class IpUtil {
public static String getIpAddr(HttpServletRequest request) {
String ipAddress = null;
try {
ipAddress = request.getHeader("x-forwarded-for");
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
if ("127.0.0.1".equals(ipAddress)) {
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress = inet.getHostAddress();
}
}
if (ipAddress != null && ipAddress.length() > 15) {
if (ipAddress.indexOf(",") > 0) {
ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
}
}
} catch (Exception e) {
ipAddress = "";
}
return ipAddress;
}
public static String getIpSource(String ipAddress) {
try {
URL url = new URL("http://opendata.baidu.com/api.php?query=" + ipAddress + "&co=&resource_id=6006&oe=utf8");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream(), "utf-8"));
String line = null;
StringBuffer result = new StringBuffer();
while ((line = reader.readLine()) != null) {
result.append(line);
}
reader.close();
Map map = JSON.parseObject(result.toString(), Map.class);
List<Map<String, String>> data = (List) map.get("data");
return data.get(0).get("location");
} catch (Exception e) {
return "";
}
}
}
5.OSS工具类
package com.blog.utils;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.LinkedList;
import java.util.Objects;
@Component
public class OSSUtil {
private static String url;
private static String endpoint;
private static String accessKeyId;
private static String accessKeySecret;
private static String bucketName;
@Value("${aliyun.url}")
public void setUrl(String url) {
OSSUtil.url = url;
}
@Value("${aliyun.endpoint}")
public void setEndpoint(String endpoint) {
OSSUtil.endpoint = endpoint;
}
@Value("${aliyun.accessKeyId}")
public void setAccessKeyId(String accessKeyId) {
OSSUtil.accessKeyId = accessKeyId;
}
@Value("${aliyun.accessKeySecret}")
public void setAccessKeySecret(String accessKeySecret) {
OSSUtil.accessKeySecret = accessKeySecret;
}
@Value("${aliyun.bucketName}")
public void setBucketName(String bucketName) {
OSSUtil.bucketName = bucketName;
}
public static String upload(MultipartFile file, String targetAddr) {
String fileName = String.valueOf(IdWorker.getId());
String extension = getFileExtension(Objects.requireNonNull(file.getOriginalFilename()));
String relativeAddr = targetAddr + fileName + extension;
try {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(bucketName, relativeAddr, file.getInputStream());
ossClient.shutdown();
} catch (IOException e) {
e.printStackTrace();
}
return url + relativeAddr;
}
private static String getFileExtension(String fileName) {
return fileName.substring(fileName.lastIndexOf("."));
}
}