diff --git a/src/main/java/com/ycwl/basic/constant/BaseContextHandler.java b/src/main/java/com/ycwl/basic/constant/BaseContextHandler.java index 57470d2..ff76984 100644 --- a/src/main/java/com/ycwl/basic/constant/BaseContextHandler.java +++ b/src/main/java/com/ycwl/basic/constant/BaseContextHandler.java @@ -1,7 +1,7 @@ package com.ycwl.basic.constant; -import com.ycwl.basic.utils.StringUtil; import lombok.Data; +import org.apache.commons.lang3.StringUtils; import java.time.LocalDateTime; import java.util.HashMap; @@ -40,7 +40,13 @@ public class BaseContextHandler { } public static String getToken() { - return StringUtil.a(get("currentUserToken")); + if (get("currentUserToken") == null) { + return ""; + } + if (StringUtils.isEmpty(get("currentUserToken").toString())) { + return ""; + } + return get("currentUserToken").toString(); } public static String getAccount() { diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java index b87dccb..1dd981a 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/AppStatisticsServiceImpl.java @@ -1,5 +1,7 @@ package com.ycwl.basic.service.mobile.impl; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateUtil; import com.ycwl.basic.enums.StatisticEnum; import com.ycwl.basic.mapper.StatisticsMapper; import com.ycwl.basic.model.jwt.JwtInfo; @@ -11,7 +13,6 @@ import com.ycwl.basic.model.mobile.statistic.resp.AppSta3VO; import com.ycwl.basic.model.mobile.statistic.resp.AppStatisticsFunnelVO; import com.ycwl.basic.service.mobile.AppStatisticsService; import com.ycwl.basic.utils.ApiResponse; -import com.ycwl.basic.utils.DateUtils; import com.ycwl.basic.utils.JwtTokenUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -395,26 +396,25 @@ public class AppStatisticsServiceImpl implements AppStatisticsService { */ private void standardToNewSpecificTime(CommonQueryReq query) { Integer standard = query.getStandard(); - Date newDate = new Date(); + Date newDate = DateUtil.beginOfDay(new Date()); Date startDate = new Date(); Date endDate = new Date(); switch (standard) { case 4://年 - startDate = DateUtils.addDateYears(newDate, -1); + startDate = DateUtil.offset(newDate, DateField.YEAR, -1); break; case 3://月 - startDate = DateUtils.addDateMonths(newDate, -1); + startDate = DateUtil.offset(newDate, DateField.MONTH, -1); break; case 2://周 - startDate = DateUtils.addDateWeeks(newDate, -1); + startDate = DateUtil.offsetWeek(newDate, -1); break; case 1://昨天 - Date yesterday = DateUtils.addDateDays(newDate, -1); - startDate = DateUtils.getStartOfDay(yesterday); - endDate = DateUtils.getEndOfDay(yesterday); + startDate = DateUtil.offsetDay(newDate, -1); + endDate = DateUtil.endOfDay(startDate); break; case 0://今天 - startDate = DateUtils.getStartOfDay(newDate); + startDate = DateUtil.beginOfDay(newDate); break; case 9://历史累计 startDate = null; @@ -433,31 +433,29 @@ public class AppStatisticsServiceImpl implements AppStatisticsService { */ private void standardToPreviousSpecificTime(CommonQueryReq query) { Integer standard = query.getStandard(); - Date newDate = new Date(); + Date newDate = DateUtil.beginOfDay(new Date()); Date startDate = new Date(); Date endDate = new Date(); switch (standard) { case 4://年,近一年的前一年 - startDate = DateUtils.addDateYears(newDate, -2); - endDate = DateUtils.addDateYears(newDate, -1); + startDate = DateUtil.offset(newDate, DateField.YEAR, -2); + endDate = DateUtil.offset(newDate, DateField.YEAR, -1); break; case 3://月,近一月的前一个月 - startDate = DateUtils.addDateMonths(newDate, -2); - endDate = DateUtils.addDateMonths(newDate, -1); + startDate = DateUtil.offset(newDate, DateField.MONTH, -2); + endDate = DateUtil.offset(newDate, DateField.MONTH, -1); break; case 2://周,近一周的前一周 - startDate = DateUtils.addDateWeeks(newDate, -2); - endDate = DateUtils.addDateWeeks(newDate, -1); + startDate = DateUtil.offsetWeek(newDate, -2); + endDate = DateUtil.offsetWeek(newDate, -1); break; case 1://昨天,昨天的前一天 - Date theDayBeforeYesterday = DateUtils.addDateDays(newDate, -2); - startDate = DateUtils.getStartOfDay(theDayBeforeYesterday); - endDate = DateUtils.getEndOfDay(theDayBeforeYesterday); + startDate = DateUtil.offsetDay(newDate, -2); + endDate = DateUtil.offsetDay(newDate, -1); break; case 0://今天,今天的前一天 - Date yesterday = DateUtils.addDateDays(newDate, -1); - startDate = DateUtils.getStartOfDay(yesterday); - endDate = DateUtils.getEndOfDay(yesterday); + startDate = DateUtil.offsetDay(newDate, -1); + endDate = DateUtil.endOfDay(startDate); break; case 9://历史累计 startDate = null; diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java index 4238c70..9002e14 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/GoodsServiceImpl.java @@ -1,5 +1,6 @@ package com.ycwl.basic.service.mobile.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; @@ -40,14 +41,11 @@ import com.ycwl.basic.storage.StorageFactory; import com.ycwl.basic.storage.adapters.IStorageAdapter; import com.ycwl.basic.storage.enums.StorageAcl; import com.ycwl.basic.utils.ApiResponse; -import com.ycwl.basic.utils.DateUtils; import com.ycwl.basic.utils.WxMpUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.springframework.web.context.request.RequestContextHolder; -import org.springframework.web.context.request.ServletRequestAttributes; import java.io.File; import java.net.MalformedURLException; @@ -190,7 +188,7 @@ public class GoodsServiceImpl implements GoodsService { for (SourceRespVO sourceRespVO : list) { GoodsDetailVO goodsDetailVO = new GoodsDetailVO(); goodsDetailVO.setGoodsId(sourceRespVO.getId()); - String shootingTime = DateUtils.format(sourceRespVO.getCreateTime(), "yyyy.MM.dd HH:mm:ss"); + String shootingTime = DateUtil.format(sourceRespVO.getCreateTime(), "yyyy.MM.dd HH:mm:ss"); if (i < 10) { goodsDetailVO.setGoodsName(goodsNamePrefix + "0" + i + " " + shootingTime); } else { diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java index abaf43c..bf915c4 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java @@ -1,6 +1,6 @@ package com.ycwl.basic.service.pc.impl; -import com.alibaba.fastjson.JSONObject; +import cn.hutool.core.date.DateUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ycwl.basic.biz.OrderBiz; @@ -129,7 +129,7 @@ public class FaceServiceImpl implements FaceService { public FaceRecognizeResp faceUpload(MultipartFile file, Long scenicId, Long userId) { //1、上传人脸照片 IStorageAdapter adapter = StorageFactory.use("faces"); - String filePath = StorageUtil.joinPath("user-faces", DateUtils.format(new Date(),"yyyy-MM-dd")); + String filePath = StorageUtil.joinPath("user-faces", DateUtil.format(new Date(),"yyyy-MM-dd")); String originalFilename = file.getOriginalFilename(); String suffix = originalFilename.split("\\.", 2)[1]; String fileName = UUID.randomUUID().toString() + "." + suffix; diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java index 267fd6a..343c5c6 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/OrderServiceImpl.java @@ -46,7 +46,6 @@ import com.ycwl.basic.service.mobile.WxPayService; import com.ycwl.basic.service.pc.OrderService; import com.ycwl.basic.service.task.impl.TaskTaskServiceImpl; import com.ycwl.basic.utils.ApiResponse; -import com.ycwl.basic.utils.BigDecimalUtil; import com.ycwl.basic.utils.SnowFlakeUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -55,6 +54,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.Collections; import java.util.Date; @@ -258,7 +258,7 @@ public class OrderServiceImpl implements OrderService { wxPayOrderReqVO.setOpenId(order.getOpenId()) .setMemberId(order.getMemberId()) .setOrderSn(order.getId()) - .setTotalPrice(BigDecimalUtil.convertToCents(order.getPayPrice())) + .setTotalPrice(order.getPayPrice().setScale(2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)).intValueExact()) .setGoodsName(goodsName) .setDescription(goodsName); diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java index 04b1236..eb6af1e 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskFaceServiceImpl.java @@ -33,11 +33,7 @@ import com.ycwl.basic.repository.FaceRepository; import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.service.pc.ScenicService; import com.ycwl.basic.service.task.TaskFaceService; -import com.ycwl.basic.storage.StorageFactory; -import com.ycwl.basic.storage.adapters.IStorageAdapter; -import com.ycwl.basic.storage.utils.StorageUtil; import com.ycwl.basic.task.VideoPieceGetter; -import com.ycwl.basic.utils.DateUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/main/java/com/ycwl/basic/utils/BigDecimalUtil.java b/src/main/java/com/ycwl/basic/utils/BigDecimalUtil.java deleted file mode 100644 index c79b5be..0000000 --- a/src/main/java/com/ycwl/basic/utils/BigDecimalUtil.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.ycwl.basic.utils; - - -import java.math.BigDecimal; -import java.math.RoundingMode; - -/** - * @Author: songmingsong - * @CreateTime: 2024-12-06 - * @Description: 小数转换 - * @Version: 1.0 - */ -public class BigDecimalUtil { - public static int convertToCents(BigDecimal price) { - if (price == null) { - throw new IllegalArgumentException("Price cannot be null"); - } - return price - .setScale(2, RoundingMode.HALF_UP) // 保留两位小数 - .multiply(new BigDecimal(100)) // 转换为分 - .intValue(); - } - -} diff --git a/src/main/java/com/ycwl/basic/utils/CommonUtil.java b/src/main/java/com/ycwl/basic/utils/CommonUtil.java deleted file mode 100644 index 2c5287e..0000000 --- a/src/main/java/com/ycwl/basic/utils/CommonUtil.java +++ /dev/null @@ -1,186 +0,0 @@ -package com.ycwl.basic.utils; - -import com.fasterxml.jackson.databind.ObjectMapper; -import lombok.extern.slf4j.Slf4j; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.PrintWriter; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.nio.charset.StandardCharsets; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; -import java.security.SecureRandom; -import java.util.UUID; -import java.util.concurrent.ThreadLocalRandom; - -/** - * @author wenshijia - * @date 2021年05月26日 23:02 - */ -@Slf4j -public class CommonUtil { - /** - * 生成指定长度随机字母和数字 - */ - private static final String ALL_CHAR_NUM = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - - private static SecureRandom random; - - static { - try { - random = SecureRandom.getInstance("SHA1PRNG"); - } catch (NoSuchAlgorithmException e) { - e.printStackTrace(); - } - } - - - /** - * 获取ip - * - * @param request - * @return - */ - 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)) { - // 根据网卡取本机配置的IP - InetAddress inet = null; - try { - inet = InetAddress.getLocalHost(); - } catch (UnknownHostException e) { - e.printStackTrace(); - } - ipAddress = inet.getHostAddress(); - } - } - // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 - if (ipAddress != null && ipAddress.length() > 15) { - // "***.***.***.***".length() - // = 15 - if (ipAddress.indexOf(",") > 0) { - ipAddress = ipAddress.substring(0, ipAddress.indexOf(",")); - } - } - } catch (Exception e) { - ipAddress = ""; - } - return ipAddress; - } - - /** - * md5加密 - * - * @param data 需要加密的字符串 - * @return java.lang.String - * @author wenshijia - * @date 2021/5/26 23:02 - */ - public static String MD5(String data) { - try { - MessageDigest md = MessageDigest.getInstance("MD5"); - byte[] array = md.digest(data.getBytes(StandardCharsets.UTF_8)); - StringBuilder sb = new StringBuilder(); - for (byte item : array) { - sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3)); - } - - return sb.toString().toUpperCase(); - } catch (Exception exception) { - - } - return null; - - } - - /** - * 生成随机数 - * - * @param length 生成的随机数的长度 - * @return java.lang.String - * @author wenshijia - * @date 2021/5/27 16:38 - */ - public static String getRandomCode(int length) { - StringBuilder stringBuilder = new StringBuilder(); - for (int i = 0; i < length; i++) { - stringBuilder.append(random.nextInt(10)); - } - - return stringBuilder.toString(); - } - - /** - * 获取当前时间的时间戳 - * - * @return long - * @author wenshijia - * @date 2021/5/27 22:02 - */ - public static long getCurrentTimestamp() { - return System.currentTimeMillis(); - } - - /** - * UUID生成 - * - * @return java.lang.String - * @author wenshijia - * @date 2021/5/30 21:16 - */ - public static String generateUUID() { - return UUID.randomUUID().toString().replace("-", ""); - } - - /** - * 生成指定长度随机字母和数字 - * - * @param length 需要生成的字符串长度 - * @return java.lang.String - * @author wenshijia - * @date 2021/5/31 16:43 - */ - public static String getStringNumRandom(int length) { - ThreadLocalRandom random = ThreadLocalRandom.current(); - //生成随机数字和字母, - StringBuilder saltString = new StringBuilder(length); - for (int i = 1; i <= length; ++i) { - saltString.append(ALL_CHAR_NUM.charAt(random.nextInt(ALL_CHAR_NUM.length()))); - } - return saltString.toString(); - } - - /** - * @param response 返回response - * @param obj 返回的数据 - * @author wenshijia - * @date 2021/6/2 21:11 - */ - public static void sendJsonMessage(HttpServletResponse response, Object obj) { - - ObjectMapper objectMapper = new ObjectMapper(); - response.setContentType("application/json; charset=utf-8"); - - try (PrintWriter writer = response.getWriter()) { - writer.print(objectMapper.writeValueAsString(obj)); - - response.flushBuffer(); - } catch (IOException e) { - log.warn("响应json数据给前端异常 -> {}", e.getMessage(), e); - } - - } -} diff --git a/src/main/java/com/ycwl/basic/utils/DateUtils.java b/src/main/java/com/ycwl/basic/utils/DateUtils.java deleted file mode 100644 index e9fa83c..0000000 --- a/src/main/java/com/ycwl/basic/utils/DateUtils.java +++ /dev/null @@ -1,511 +0,0 @@ - -package com.ycwl.basic.utils; - -import lombok.SneakyThrows; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.ZoneId; -import java.time.temporal.TemporalAdjusters; -import java.util.*; - -/** - * 日期处理 - */ -public class DateUtils { - /** - * 时间格式(yyyy-MM-dd) - */ - public final static String DATE_PATTERN = "yyyy-MM-dd"; - public final static String DATE_PATTERN_NYR = "yyyy年MM月dd日"; - public final static String DATE_NO_PATTERN = "yyyyMMdd"; - public final static String DATE_NO_TIME = "HHmmss"; - public final static String DATE_PATTERN_YYDD = "MM月dd日 HH:mm"; - public final static String YYYY_MM = "yyyyMM"; - public final static String YYYY_MM_DD_HH_MM_SS_SSS = "yyyyMMddHHmmssSSS"; - public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; - public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; - public final static String CRON_DATE_TIME_PATTERN = "ss mm HH dd MM ? yyyy"; - - /** - * 日期格式化 日期格式为:yyyy-MM-dd - * @param date 日期 - * @return 返回yyyy-MM-dd格式日期 - */ - public static String format(Date date) { - return format(date, DATE_PATTERN); - } - - /** - * 日期格式化 自定义格式 - * @param date 日期 - * @param pattern 格式,如:DateUtils.DATE_TIME_PATTERN - * @return 返回yyyy-MM-dd格式日期 - */ - public static String format(Date date, String pattern) { - if (date != null) { - SimpleDateFormat df = new SimpleDateFormat(pattern); - return df.format(date); - } - return null; - } - - - /** - * 日期解析 日期格式为:yyyy-MM-dd HH:mm:ss - * @param dataStr 日期字符串 - * @return 返回yyyy-MM-dd HH:mm:ss格式日期 - */ - public static Date parse(String dataStr) throws ParseException { - SimpleDateFormat sdf = new SimpleDateFormat(DATE_TIME_PATTERN); - return sdf.parse(dataStr); - } - - - /** - * 日期解析 自定义格式 - * @param date 日期字符串 - * @param pattern 格式,如:DateUtils.DATE_TIME_PATTERN - * @return 返回Date - */ - public static Date parse(String date, String pattern) { - try { - return new SimpleDateFormat(pattern).parse(date); - } catch (ParseException e) { - e.printStackTrace(); - } - return null; - } - - /** - * 返回0时0分0秒的date - * - * @param date 日期 - * @return - */ - @SneakyThrows - public static Date startOfDay(Date date) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - // 将时间部分设置为00:00:00.000 - calendar.set(Calendar.HOUR_OF_DAY, 0); - calendar.set(Calendar.MINUTE, 0); - calendar.set(Calendar.SECOND, 0); - calendar.set(Calendar.MILLISECOND, 0); - return calendar.getTime(); - } - - /** - * 这个月的第一天 - * @param date 日期 - * @return - */ - public static Date startOfMonth(Date date) { - Date date1 = startOfDay(date); - Calendar cal = Calendar.getInstance(); - cal.setTime(date1); - cal.set(Calendar.DAY_OF_MONTH,1); - return cal.getTime(); - } - - /** - * 获取某个月有多少天 - * - * @param yearMonth - * @return - */ - public static String getLastDayOfMonth(String yearMonth) { - int year = Integer.parseInt(yearMonth.split("-")[0]); //年 - int month = Integer.parseInt(yearMonth.split("-")[1]); //月 - Calendar cal = Calendar.getInstance(); - // 设置年份 - cal.set(Calendar.YEAR, year); - // 设置月份 - // cal.set(Calendar.MONTH, month - 1); - cal.set(Calendar.MONTH, month); //设置当前月的上一个月 - // 获取某月最大天数 - //int lastDay = cal.getActualMaximum(Calendar.DATE); - int lastDay = cal.getMinimum(Calendar.DATE); //获取月份中的最小值,即第一天 - // 设置日历中月份的最大天数 - //cal.set(Calendar.DAY_OF_MONTH, lastDay); - cal.set(Calendar.DAY_OF_MONTH, lastDay - 1); //上月的第一天减去1就是当月的最后一天 - // 格式化日期 - SimpleDateFormat sdf = new SimpleDateFormat("dd"); - return sdf.format(cal.getTime()); - } - - /** - * 获得某月最大时间 - * @param date - * @return - */ - public static Date getEndMonthOfDay(Date date) { - if (date == null) { - return null; - } - LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault()); - LocalDateTime endOfDay = localDateTime.with(TemporalAdjusters.lastDayOfMonth()); - return getEndOfDay(localDateTimeToDate(endOfDay)); - } - - /** - * 获得某天最大时间 - * @param date - * @return - */ - public static Date getStartMonthOfDay(Date date) { - if (date == null) { - return null; - } - LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault()); - LocalDateTime endOfDay = localDateTime.with(TemporalAdjusters.firstDayOfMonth()); - return getStartOfDay(localDateTimeToDate(endOfDay)); - } - - public static Date getMonthLastDay(Date date) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - calendar.set(Calendar.DAY_OF_MONTH, 0); - calendar.add(Calendar.MONTH, 1); - return calendar.getTime(); - } - - /** - * 判断当天和传入的时间是否是同一天 - * - * @param thatDay 另一个日期 - * @return - */ - public static boolean isSameDay(Date thatDay) { - return isSameDay(thatDay, new Date()); - } - - /** - * 判断两个日期是否为同一天 - * - * @param date1 一个日期 - * @param date2 另一个日期 - * @return - */ - public static boolean isSameDay(Date date1, Date date2) { - if (date1 == null || date2 == null) { - return false; - } - Calendar thisDat = Calendar.getInstance(); - thisDat.setTime(date1); - Calendar thatDay = Calendar.getInstance(); - thatDay.setTime(date2); - return ( - thatDay.get(Calendar.YEAR) == thisDat.get(Calendar.YEAR) && - thatDay.get(Calendar.MONTH) == thisDat.get(Calendar.MONTH) && - thatDay.get(Calendar.DAY_OF_MONTH) == thisDat.get(Calendar.DAY_OF_MONTH) - ); - } - - /** - * 判断两个日期相差多少天 - * - * @param endTime - * @param startTime - * @return - */ - public static int dateMinus(Date endTime, Date startTime) { - return (int) ((endTime.getTime() - startTime.getTime()) / (1000 * 60 * 60 * 24)); - } - - /** - * 时间戳转字符串 - * - * @param timeStamp - * @return - */ - //传入时间戳即可 - public static String conversionTime(String timeStamp) { - //yyyy-MM-dd HH:mm:ss 转换的时间格式 可以自定义 - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //转换 - String time = sdf.format(new Date(Long.parseLong(timeStamp))); - return time; - } - - /** - * 判断两个日期相差多少秒 - * - * @param endTime - * @param startTime - * @return - */ - public static int dateSeconds(Date endTime, Date startTime) { - return (int) ((endTime.getTime() - startTime.getTime()) / (1000)); - } - - /** - * 获得某天最小时间 - * @param date - * @return - */ - public static Date getStartOfDay(Date date) { - if (date == null) { - return null; - } - LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault()); - LocalDateTime startOfDay = localDateTime.with(LocalTime.MIN); - return localDateTimeToDate(startOfDay); - } - - /** - * 获得某天最大时间 - * @param date - * @return - */ - public static Date getEndOfDay(Date date) { - if (date == null) { - return null; - } - LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(date.getTime()), ZoneId.systemDefault()); - LocalDateTime endOfDay = localDateTime.with(LocalTime.MAX); - return localDateTimeToDate(endOfDay); - } - - /** - * localDateTime 转date - * @param localDateTime - * @return - */ - public static Date localDateTimeToDate(LocalDateTime localDateTime) { - return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant()); - } - - /** - * 将秒转为时分秒格式【01:01:01】 - * @param second 需要转化的秒数 - * @return - */ - public static String secondConvertHourMinSecond(Long second) { - String str = "00:00:00"; - if (second == null || second < 0) { - return str; - } - - // 得到小时 - long h = second / 3600; - str = h > 0 ? ((h < 10 ? ("0" + h) : h) + ":") : "00:"; - - // 得到分钟 - long m = (second % 3600) / 60; - str += (m < 10 ? ("0" + m) : m) + ":"; - - //得到剩余秒 - long s = second % 60; - str += (s < 10 ? ("0" + s) : s); - return str; - } - - /** - * - * @param date - * @return - */ - public static String getWeekOfDate(Date date) { - String[] weekDays = {"7", "1", "2", "3", "4", "5", "6"}; // "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" - Calendar cal = Calendar.getInstance(); - cal.setTime(date); - int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 将星期日转换为7 - return weekDays[w]; // 直接返回对应的星期数 - } - - /** - * 获取两个日期之间的所有年 - * @param startDate - * @param endDate - * @return - */ - public static List getAllYearsBetweenDates(Date startDate, Date endDate) { - List years = new ArrayList<>(); - Calendar startCal = Calendar.getInstance(); - startCal.setTime(startDate); - int startYear = startCal.get(Calendar.YEAR); - - Calendar endCal = Calendar.getInstance(); - endCal.setTime(endDate); - int endYear = endCal.get(Calendar.YEAR); - - for (int year = startYear; year <= endYear; year++) { - years.add(String.valueOf(year)); - } - return years; - } - - - /** - * 获取两个日期之间的所有月份 - * @param startDate - * @param endDate - * @return - */ - public static List getAllMonthsBetweenDates(Date startDate, Date endDate) { - List months = new ArrayList<>(); - //具体逻辑 - Calendar startCal = Calendar.getInstance(); - startCal.setTime(startDate); - startCal.set(Calendar.DAY_OF_MONTH, 1); // 设置为每个月的第一天 - - Calendar endCal = Calendar.getInstance(); - endCal.setTime(endDate); - endCal.set(Calendar.DAY_OF_MONTH, 1); // 设置为每个月的第一天 - - while (startCal.before(endCal) || startCal.equals(endCal)) { - int year = startCal.get(Calendar.YEAR); - int month = startCal.get(Calendar.MONTH) + 1; // Calendar中月份从0开始,所以要加1 - months.add(String.format("%d-%02d", year, month)); // 格式化年份和月份为 yyyy-MM - - startCal.add(Calendar.MONTH, 1); // 增加一个月 - } - return months; - } - - /** - * 获取两个日期间所有的日期 - * @param startDate - * @param endDate - * @return - */ - public static List getAllDaysBetweenDates(Date startDate, Date endDate){ - List days = new ArrayList<>(); - //具体实现 - Calendar startCal = Calendar.getInstance(); - startCal.setTime(startDate); - - Calendar endCal = Calendar.getInstance(); - endCal.setTime(endDate); - - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - - while (startCal.before(endCal) || startCal.equals(endCal)) { - days.add(sdf.format(startCal.getTime())); - startCal.add(Calendar.DATE, 1); - } - return days; - } - /** - * 获取两个时间点之间的所有的整点时间 - * @param startDate - * @param endDate - * @return - */ - public static List getAllTimesBetweenDates(Date startDate, Date endDate,String format){ - // 创建一个字符串列表用来存放整点时间 - List timesList = new ArrayList<>(); - // 使用日历类来处理时间 - Calendar calendar = Calendar.getInstance(); - calendar.setTime(startDate); - - // 格式化时间为 "yyyy-MM-dd HH:mm" - SimpleDateFormat sdf = new SimpleDateFormat(format); - - // 逐小时遍历 -// while (calendar.getTime().before(endDate) || calendar.getTime().equals(endDate)) { - while (calendar.getTime().before(endDate)) { - // 将当前时间格式化为字符串并加入列表 - timesList.add(sdf.format(calendar.getTime())); - // 增加一个小时 - calendar.add(Calendar.HOUR_OF_DAY, 1); - } - return timesList; - } - - /** - * 获取24小时制的时间 - * @return - */ - public static List getAllTimesBetweenDates(){ - // 创建一个字符串数组,容量为24 - String[] times24 = new String[24]; - // 设置格式化器为24小时制 - java.time.format.DateTimeFormatter formatter = java.time.format.DateTimeFormatter.ofPattern("HH"); - // 获取0点到23点的每一个小时 - for (int i = 0; i < 24; i++) { - LocalTime time = LocalTime.of(i, 0); - times24[i] = time.format(formatter); - } - return new ArrayList<>(Arrays.asList(times24)); - } - - /** - * 在指定日期上增加i年,负数为减少i年 - * @param date 指定的日期 - * @param i 增加/减少的年数 - * @return - */ - public static Date addDateYears(Date date, int i) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - calendar.add(Calendar.YEAR, i); - return calendar.getTime(); - } - - /** - * 在指定日期上增加i月,负数为减少i月 - * @param date - * @param i - * @return - */ - public static Date addDateMonths(Date date, int i) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - calendar.add(Calendar.MONTH, i); - return calendar.getTime(); - } - - /** - * 在指定日期上增加i周,负数为减少i周 - * @param date - * @param i - * @return - */ - public static Date addDateWeeks(Date date, int i) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - calendar.add(Calendar.WEEK_OF_YEAR, i); - return calendar.getTime(); - } - - /** - * 在指定日期上增加i天,负数为减少i天 - * @param date - * @param i - * @return - */ - public static Date addDateDays(Date date, int i) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - calendar.add(Calendar.DAY_OF_YEAR, i); - return calendar.getTime(); - } - /** - * 在指定日期上增加i分钟,负数为减少i分钟 - * @param date - * @param i - * @return - */ - public static Date addDateMinute(Date date, int i) { - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - calendar.add(Calendar.MINUTE, i); - return calendar.getTime(); - } - - public static void main(String[] args) { - Date date = new Date(); - Date yesterday = DateUtils.addDateMinute(date, 10); - System.out.println(format(yesterday, "yyyy-MM-dd HH:mm:ss")); -// Date startDate = DateUtils.getStartOfDay(yesterday); -// Date endDate = DateUtils.getEndOfDay(yesterday); -// System.out.println(format(startDate, "yyyy-MM-dd HH:mm:ss")); -// System.out.println(format(endDate, "yyyy-MM-dd HH:mm:ss")); - - } -} diff --git a/src/main/java/com/ycwl/basic/utils/SnowFlakeUtil.java b/src/main/java/com/ycwl/basic/utils/SnowFlakeUtil.java index 89cc9c5..c0f907b 100644 --- a/src/main/java/com/ycwl/basic/utils/SnowFlakeUtil.java +++ b/src/main/java/com/ycwl/basic/utils/SnowFlakeUtil.java @@ -3,8 +3,7 @@ package com.ycwl.basic.utils; import com.ycwl.basic.model.snowFlake.UniqueId; import com.ycwl.basic.model.snowFlake.UniqueIdMetaData; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import java.util.Date; @@ -13,10 +12,10 @@ import java.util.Date; * @author Created by liuhongguang * @Description */ +@Slf4j @Component public class SnowFlakeUtil { - private Logger log = LoggerFactory.getLogger(com.ycwl.basic.utils.SnowFlakeUtil.class); /** * 记录上一毫秒数 */ diff --git a/src/main/java/com/ycwl/basic/utils/WxMpUtil.java b/src/main/java/com/ycwl/basic/utils/WxMpUtil.java index 8b58d7f..c27d180 100644 --- a/src/main/java/com/ycwl/basic/utils/WxMpUtil.java +++ b/src/main/java/com/ycwl/basic/utils/WxMpUtil.java @@ -76,6 +76,6 @@ public class WxMpUtil { } public static void main(String[] args) throws Exception { - generateWXAQRCode("wxe7ff26af70bfc37c", "5252fbbc68513bc77b7cc0052b9f9695", "trial", "pages/home/index?scenicId=3972138108618674176", "ljh_t.jpg"); + generateWXAQRCode("wxe7ff26af70bfc37c", "5252fbbc68513bc77b7cc0052b9f9695", "trial", "pages/home/index?scenicId=3978838215909052416", "dhg_t.jpg"); } } \ No newline at end of file