From 80f449183685c634fc981c446a90b9500241e9b4 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 30 May 2025 10:31:21 +0800 Subject: [PATCH] Java21 --- .../java/com/ycwl/basic/biz/BrokerBiz.java | 10 +- .../java/com/ycwl/basic/biz/OrderBiz.java | 16 +-- .../com/ycwl/basic/biz/TaskStatusBiz.java | 2 +- .../java/com/ycwl/basic/biz/TemplateBiz.java | 2 +- .../basic/constant/BaseContextHandler.java | 20 ++-- .../extern/LyCompatibleController.java | 8 +- .../com/ycwl/basic/controller/extern/R.java | 2 + .../mobile/AppWxNotifyController.java | 4 +- .../basic/controller/viid/ViidController.java | 4 +- .../operator/VptPassiveStorageOperator.java | 1 + .../operator/WvpPassiveStorageOperator.java | 1 + .../ycwl/basic/exception/AppException.java | 2 + .../ycwl/basic/exception/BizException.java | 2 + .../ycwl/basic/facebody/FaceBodyFactory.java | 13 +-- .../facebody/adapter/AliFaceBodyAdapter.java | 72 +++++------- .../facebody/adapter/BceFaceBodyAdapter.java | 41 ++++--- .../watermark/ImageWatermarkFactory.java | 16 +-- .../operator/LeicaWatermarkOperator.java | 6 +- .../basic/interceptor/AuthInterceptor.java | 4 +- .../com/ycwl/basic/model/jwt/JwtInfo.java | 2 + .../model/mobile/order/OrderAppPageReq.java | 2 + .../pc/adminUser/req/AdminUserListReqVO.java | 2 + .../pc/adminUser/req/UpdatePasswordReqVO.java | 2 +- .../pc/broker/req/BrokerRecordReqQuery.java | 2 + .../model/pc/broker/req/BrokerReqQuery.java | 2 + .../model/pc/device/req/DeviceReqQuery.java | 2 + .../pc/device/req/DeviceSortRequest.java | 2 +- .../basic/model/pc/face/req/FaceReqQuery.java | 2 + .../pc/faceSample/req/FaceSampleReqQuery.java | 2 + .../model/pc/member/req/MemberReqQuery.java | 2 + .../model/pc/order/req/OrderReqQuery.java | 2 + .../permission/entity/PermissionEntity.java | 2 + .../req/RenderWorkerReqQuery.java | 2 + .../model/pc/role/req/RoleListReqVO.java | 2 + .../pc/template/req/TemplateSortRequest.java | 2 +- .../ycwl/basic/model/snowFlake/UniqueId.java | 2 + .../basic/model/wx/WechatAccessTokenVO.java | 24 ---- ...ta.java => WechatCallbackSuccessData.java} | 11 +- .../com/ycwl/basic/model/wx/WxPayRespVO.java | 2 + .../com/ycwl/basic/notify/NotifyFactory.java | 13 +-- .../java/com/ycwl/basic/pay/PayFactory.java | 9 +- .../basic/pay/adapter/WxMpPayAdapter.java | 8 +- .../ycwl/basic/pay/enums/PayAdapterType.java | 12 +- .../printer/ticket/FeiETicketPrinter.java | 2 +- .../profitsharing/biz/ProfitSharingBiz.java | 26 ++--- .../dto/ProfitSharingConfigVO.java | 2 +- .../impl/ProfitSharingRecordServiceImpl.java | 2 +- .../basic/service/mobile/WxPayService.java | 5 +- .../service/mobile/impl/GoodsServiceImpl.java | 29 ++--- .../service/mobile/impl/WxPayServiceImpl.java | 4 +- .../service/pc/impl/DeviceServiceImpl.java | 4 +- .../pc/impl/DeviceStatsServiceImpl.java | 12 +- .../service/pc/impl/FaceServiceImpl.java | 16 +-- .../service/pc/impl/OrderServiceImpl.java | 26 ++--- .../service/pc/impl/RoleServiceImpl.java | 6 +- .../service/pc/impl/TemplateServiceImpl.java | 2 +- .../printer/impl/PrinterServiceImpl.java | 5 +- .../task/impl/TaskFaceServiceImpl.java | 6 +- .../task/impl/TaskTaskServiceImpl.java | 45 ++++---- .../ycwl/basic/storage/StorageFactory.java | 16 +-- .../basic/storage/adapters/AliOssAdapter.java | 19 ++-- .../basic/storage/adapters/AwsOssAdapter.java | 48 +++----- .../ycwl/basic/storage/enums/StorageAcl.java | 6 +- .../ycwl/basic/task/DynamicTaskGenerator.java | 2 +- .../com/ycwl/basic/task/VideoPieceGetter.java | 12 +- .../ycwl/basic/task/VideoTaskGenerator.java | 2 +- .../java/com/ycwl/basic/utils/ApiConst.java | 6 +- .../com/ycwl/basic/utils/ApiResponse.java | 14 ++- .../java/com/ycwl/basic/utils/ImageUtils.java | 10 +- .../java/com/ycwl/basic/utils/IpUtils.java | 104 +----------------- .../com/ycwl/basic/utils/JwtAnalysisUtil.java | 8 +- .../java/com/ycwl/basic/utils/RsaKeyUtil.java | 16 +-- .../com/ycwl/basic/utils/SnowFlakeUtil.java | 1 - 73 files changed, 310 insertions(+), 485 deletions(-) delete mode 100644 src/main/java/com/ycwl/basic/model/wx/WechatAccessTokenVO.java rename src/main/java/com/ycwl/basic/model/wx/{WxchatCallbackSuccessData.java => WechatCallbackSuccessData.java} (75%) diff --git a/src/main/java/com/ycwl/basic/biz/BrokerBiz.java b/src/main/java/com/ycwl/basic/biz/BrokerBiz.java index c582ddb..83fc94f 100644 --- a/src/main/java/com/ycwl/basic/biz/BrokerBiz.java +++ b/src/main/java/com/ycwl/basic/biz/BrokerBiz.java @@ -53,7 +53,7 @@ public class BrokerBiz { expireDay = scenicConfig.getSampleStoreDay(); } List brokerIdList = statisticsMapper.getBrokerIdListForUser(order.getMemberId(), DateUtil.offsetDay(DateUtil.beginOfDay(order.getCreateAt()), -expireDay), order.getCreateAt()); - Long directBrokerId = brokerIdList.get(0); + Long directBrokerId = brokerIdList.getFirst(); List brokerInfoList = brokerIdList.stream().map(brokerId -> { BrokerRespVO broker = brokerMapper.getById(brokerId); if (broker == null) { @@ -77,7 +77,7 @@ public class BrokerBiz { if (brokerInfoList.size() == 1) { // 直接算佣金 String reason = "单人提成:"; - BrokerRespVO broker = brokerInfoList.get(0); + BrokerRespVO broker = brokerInfoList.getFirst(); BrokerRecord brokerRecord = new BrokerRecord(); brokerRecord.setBrokerId(broker.getId()); brokerRecord.setOrderId(orderId); @@ -95,7 +95,7 @@ public class BrokerBiz { brokerRecord.setReason(reason); brokerRecordList.add(brokerRecord); } else { - BrokerRespVO broker = brokerInfoList.get(0); + BrokerRespVO broker = brokerInfoList.getFirst(); BigDecimal realRate = broker.getBrokerRate(); BigDecimal brokerPrice = order.getPayPrice().multiply(realRate).divide(BigDecimal.valueOf(100), 2, RoundingMode.DOWN); // todo 需要计算实际提成比例 @@ -141,9 +141,7 @@ public class BrokerBiz { brokerRecordList.add(brokerRecord); } revokeOrder(orderId); - brokerRecordList.forEach(brokerRecord -> { - brokerRecordMapper.add(brokerRecord); - }); + brokerRecordList.forEach(brokerRecordMapper::add); } public void revokeOrder(Long orderId) { diff --git a/src/main/java/com/ycwl/basic/biz/OrderBiz.java b/src/main/java/com/ycwl/basic/biz/OrderBiz.java index 0683ff8..2fc611f 100644 --- a/src/main/java/com/ycwl/basic/biz/OrderBiz.java +++ b/src/main/java/com/ycwl/basic/biz/OrderBiz.java @@ -166,15 +166,11 @@ public class OrderBiz { } // 免费送逻辑,之前已经赠送了的 if (!isBuy) { - switch (goodsType) { - case 0: - isBuy = videoRepository.getUserIsBuy(userId, goodsId); - break; - case 1: - case 2: - isBuy = sourceRepository.getUserIsBuy(userId, goodsType, goodsId); - break; - } + isBuy = switch (goodsType) { + case 0 -> videoRepository.getUserIsBuy(userId, goodsId); + case 1, 2 -> sourceRepository.getUserIsBuy(userId, goodsType, goodsId); + default -> false; + }; } else { OrderEntity orderEntity = orderRepository.getUserBuyItem(userId, goodsType, goodsId); if (orderEntity != null) { @@ -257,7 +253,7 @@ public class OrderBiz { //商品创建时间 Date goodsCreateTime = new Date(); if (!orderDetail.getOrderItemList().isEmpty()) { - OrderItemVO orderItemVO = orderDetail.getOrderItemList().get(0); + OrderItemVO orderItemVO = orderDetail.getOrderItemList().getFirst(); switch (orderItemVO.getGoodsType()) { case 0: VideoEntity video = videoRepository.getVideo(orderItemVO.getGoodsId()); diff --git a/src/main/java/com/ycwl/basic/biz/TaskStatusBiz.java b/src/main/java/com/ycwl/basic/biz/TaskStatusBiz.java index 451d8ee..9abd7e0 100644 --- a/src/main/java/com/ycwl/basic/biz/TaskStatusBiz.java +++ b/src/main/java/com/ycwl/basic/biz/TaskStatusBiz.java @@ -112,7 +112,7 @@ public class TaskStatusBiz { int faceCutStatus = getFaceCutStatus(faceId); if (faceCutStatus != 1) { // 正在切片 - if (templateBiz.determineTemplateCanGenerate(templateList.get(0).getId(), faceId, false)) { + if (templateBiz.determineTemplateCanGenerate(templateList.getFirst().getId(), faceId, false)) { response.setStatus(2); } else { response.setStatus(0); diff --git a/src/main/java/com/ycwl/basic/biz/TemplateBiz.java b/src/main/java/com/ycwl/basic/biz/TemplateBiz.java index 993a8e4..bb645ce 100644 --- a/src/main/java/com/ycwl/basic/biz/TemplateBiz.java +++ b/src/main/java/com/ycwl/basic/biz/TemplateBiz.java @@ -107,7 +107,7 @@ public class TemplateBiz { List sourceEntities = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId); count = sourceEntities.stream() .map(SourceEntity::getDeviceId) - .filter(deviceId -> deviceId != null) // 添加对 null 的检查 + .filter(Objects::nonNull) // 添加对 null 的检查 .distinct() .filter(deviceId -> placeholderList.contains(deviceId.toString())) .count(); diff --git a/src/main/java/com/ycwl/basic/constant/BaseContextHandler.java b/src/main/java/com/ycwl/basic/constant/BaseContextHandler.java index ff76984..d8886ac 100644 --- a/src/main/java/com/ycwl/basic/constant/BaseContextHandler.java +++ b/src/main/java/com/ycwl/basic/constant/BaseContextHandler.java @@ -16,23 +16,23 @@ public class BaseContextHandler { } public static void set(String key, Object value) { - Object map; - if ((map = (Map) threadLocal.get()) == null) { - map = new HashMap(); - threadLocal.set((Map) map); + Map map; + if ((map = threadLocal.get()) == null) { + map = new HashMap<>(); + threadLocal.set(map); } - ((Map) map).put(key, value); + map.put(key, value); } public static Object get(String key) { - Object map; - if ((map = (Map) threadLocal.get()) == null) { - map = new HashMap(); - threadLocal.set((Map) map); + Map map; + if ((map = threadLocal.get()) == null) { + map = new HashMap<>(); + threadLocal.set(map); } - return ((Map) map).get(key); + return (map).get(key); } public static void setToken(String token) { diff --git a/src/main/java/com/ycwl/basic/controller/extern/LyCompatibleController.java b/src/main/java/com/ycwl/basic/controller/extern/LyCompatibleController.java index 82fdaba..4806b4d 100644 --- a/src/main/java/com/ycwl/basic/controller/extern/LyCompatibleController.java +++ b/src/main/java/com/ycwl/basic/controller/extern/LyCompatibleController.java @@ -66,7 +66,7 @@ public class LyCompatibleController { @PostMapping("sendPhoto") @IgnoreToken public R sendPhoto(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request) { - Map headersMap = new HashMap(); + Map headersMap = new HashMap<>(); Enumeration headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String key = (String) headerNames.nextElement(); @@ -123,7 +123,7 @@ public class LyCompatibleController { @RequestMapping("getIsVideo") @IgnoreToken public R getIsVideo(HttpServletRequest request) { - Map headersMap = new HashMap(); + Map headersMap = new HashMap<>(); Enumeration headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String key = (String) headerNames.nextElement(); @@ -165,7 +165,7 @@ public class LyCompatibleController { @RequestMapping("getNewVideo") @IgnoreToken public R getNewVideo(HttpServletRequest request) { - Map headersMap = new HashMap(); + Map headersMap = new HashMap<>(); Enumeration headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String key = (String) headerNames.nextElement(); @@ -204,7 +204,7 @@ public class LyCompatibleController { } List> videoList = collect.get(0).stream().collect(Collectors.groupingBy(ContentPageVO::getTemplateId)) .values().stream().map(contentPageVOs -> { - ContentPageVO contentPageVO = contentPageVOs.get(0); + ContentPageVO contentPageVO = contentPageVOs.getFirst(); Map map = new HashMap<>(); VideoEntity videoRespVO = videoRepository.getVideo(contentPageVO.getContentId()); map.put("id", videoRespVO.getId().toString()); diff --git a/src/main/java/com/ycwl/basic/controller/extern/R.java b/src/main/java/com/ycwl/basic/controller/extern/R.java index 19b3e3c..4691a2f 100644 --- a/src/main/java/com/ycwl/basic/controller/extern/R.java +++ b/src/main/java/com/ycwl/basic/controller/extern/R.java @@ -1,5 +1,6 @@ package com.ycwl.basic.controller.extern; +import java.io.Serial; import java.util.HashMap; import java.util.Map; @@ -11,6 +12,7 @@ import java.util.Map; * @date 2016年10月27日 下午9:59:27 */ public class R extends HashMap { + @Serial private static final long serialVersionUID = 1L; public R() { diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppWxNotifyController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppWxNotifyController.java index 9c6abb2..f591ac7 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppWxNotifyController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppWxNotifyController.java @@ -39,7 +39,7 @@ public class AppWxNotifyController { @GetMapping({"/getIds", "/"}) @IgnoreToken public ApiResponse> getIds() { - return ApiResponse.success(new ArrayList() {{ + return ApiResponse.success(new ArrayList<>() {{ add("5b8vTm7kvwYubqDxb3dxBs0BqxMsgVgGw573aahTEd8"); add("vPIzbkA0x4mMj-vdbWx6_45e8juWXzs3FGYnDsIPv3A"); add("HB1vp-0BXc2WyYeoYN3a3GuZV9HtPLXUTT7blCBq9eY"); @@ -49,7 +49,7 @@ public class AppWxNotifyController { @GetMapping("/{scenicId}") @IgnoreToken public ApiResponse> getIds(@PathVariable("scenicId") Long scenicId) { - return ApiResponse.success(new ArrayList() {{ + return ApiResponse.success(new ArrayList<>() {{ String videoGeneratedTemplateId = scenicRepository.getVideoGeneratedTemplateId(scenicId); if (StringUtils.isNotBlank(videoGeneratedTemplateId)) { add(videoGeneratedTemplateId); diff --git a/src/main/java/com/ycwl/basic/controller/viid/ViidController.java b/src/main/java/com/ycwl/basic/controller/viid/ViidController.java index 13538f4..6447712 100644 --- a/src/main/java/com/ycwl/basic/controller/viid/ViidController.java +++ b/src/main/java/com/ycwl/basic/controller/viid/ViidController.java @@ -267,7 +267,7 @@ public class ViidController { } if (shotTime == null) { shotTime = new Date(); - } else if (Math.abs(shotTime.getTime() - System.currentTimeMillis()) > + 24 * 60 * 60 * 1000) { + } else if (Math.abs(shotTime.getTime() - System.currentTimeMillis()) > 24 * 60 * 60 * 1000) { shotTime = new Date(); } Long scenicId = device.getScenicId(); @@ -380,7 +380,7 @@ public class ViidController { faceSampleMapper.update(faceSample); } } - if (deviceConfig != null && Integer.valueOf(1).equals(deviceConfig.getEnablePreBook())) { + if (Integer.valueOf(1).equals(deviceConfig.getEnablePreBook())) { DynamicTaskGenerator.addTask(faceSample.getId()); } }); diff --git a/src/main/java/com/ycwl/basic/device/operator/VptPassiveStorageOperator.java b/src/main/java/com/ycwl/basic/device/operator/VptPassiveStorageOperator.java index 77eab0d..af69c23 100644 --- a/src/main/java/com/ycwl/basic/device/operator/VptPassiveStorageOperator.java +++ b/src/main/java/com/ycwl/basic/device/operator/VptPassiveStorageOperator.java @@ -117,6 +117,7 @@ public class VptPassiveStorageOperator extends ADeviceStorageOperator { } } else { try { + //noinspection BusyWait 得等待 Thread.sleep(1000L); } catch (InterruptedException e) { return Collections.emptyList(); diff --git a/src/main/java/com/ycwl/basic/device/operator/WvpPassiveStorageOperator.java b/src/main/java/com/ycwl/basic/device/operator/WvpPassiveStorageOperator.java index af91b85..11acdbc 100644 --- a/src/main/java/com/ycwl/basic/device/operator/WvpPassiveStorageOperator.java +++ b/src/main/java/com/ycwl/basic/device/operator/WvpPassiveStorageOperator.java @@ -113,6 +113,7 @@ public class WvpPassiveStorageOperator extends ADeviceStorageOperator { } } else { try { + //noinspection BusyWait 得等待 Thread.sleep(1000L); } catch (InterruptedException e) { return Collections.emptyList(); diff --git a/src/main/java/com/ycwl/basic/exception/AppException.java b/src/main/java/com/ycwl/basic/exception/AppException.java index f3cfb39..f1ac3db 100644 --- a/src/main/java/com/ycwl/basic/exception/AppException.java +++ b/src/main/java/com/ycwl/basic/exception/AppException.java @@ -2,11 +2,13 @@ package com.ycwl.basic.exception; import com.ycwl.basic.enums.BizCodeEnum; import lombok.Data; +import lombok.EqualsAndHashCode; /** * @author songminsgong * @since 2022-11-23 */ +@EqualsAndHashCode(callSuper = true) @Data public class AppException extends RuntimeException { diff --git a/src/main/java/com/ycwl/basic/exception/BizException.java b/src/main/java/com/ycwl/basic/exception/BizException.java index 0292a1e..13b79a4 100644 --- a/src/main/java/com/ycwl/basic/exception/BizException.java +++ b/src/main/java/com/ycwl/basic/exception/BizException.java @@ -2,11 +2,13 @@ package com.ycwl.basic.exception; import com.ycwl.basic.enums.BizCodeEnum; import lombok.Data; +import lombok.EqualsAndHashCode; /** * @author wenshijia * @date 2021年05月25日 22:41 */ +@EqualsAndHashCode(callSuper = true) @Data public class BizException extends RuntimeException { diff --git a/src/main/java/com/ycwl/basic/facebody/FaceBodyFactory.java b/src/main/java/com/ycwl/basic/facebody/FaceBodyFactory.java index cbed1d9..af74876 100644 --- a/src/main/java/com/ycwl/basic/facebody/FaceBodyFactory.java +++ b/src/main/java/com/ycwl/basic/facebody/FaceBodyFactory.java @@ -23,14 +23,11 @@ public class FaceBodyFactory { } public static IFaceBodyAdapter getAdapter(FaceBodyAdapterType type) { - switch (type) { - case ALI: - return new AliFaceBodyAdapter(); - case BCE: - return new BceFaceBodyAdapter(); - default: - throw new FaceBodyUnsupportedException("不支持的Adapter类型"); - } + return switch (type) { + case ALI -> new AliFaceBodyAdapter(); + case BCE -> new BceFaceBodyAdapter(); + default -> throw new FaceBodyUnsupportedException("不支持的Adapter类型"); + }; } diff --git a/src/main/java/com/ycwl/basic/facebody/adapter/AliFaceBodyAdapter.java b/src/main/java/com/ycwl/basic/facebody/adapter/AliFaceBodyAdapter.java index c902545..6a3403a 100644 --- a/src/main/java/com/ycwl/basic/facebody/adapter/AliFaceBodyAdapter.java +++ b/src/main/java/com/ycwl/basic/facebody/adapter/AliFaceBodyAdapter.java @@ -29,6 +29,7 @@ import org.apache.commons.lang3.StringUtils; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -62,33 +63,31 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { } private IRateLimiter getLimiter(LOCK_TYPE type) { - switch (type) { - case ADD_DB: - return addDbLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS)); - case ADD_ENTITY: - return addEntityLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS)); - case ADD_FACE: - return addFaceLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS)); - case LIST_DB: - return listDbLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(500, TimeUnit.MILLISECONDS)); - case LIST_FACE: - return listFaceLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(2)); - case SEARCH_FACE: - return searchFaceLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(200, TimeUnit.MILLISECONDS)); - case DELETE_DB: - return deleteDbLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS)); - case DELETE_ENTITY: - return deleteEntityLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS)); - default: - return new FixedRateLimiter(600, TimeUnit.MILLISECONDS); - } + return switch (type) { + case ADD_DB -> + addDbLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS)); + case ADD_ENTITY -> + addEntityLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS)); + case ADD_FACE -> + addFaceLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS)); + case LIST_DB -> + listDbLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(500, TimeUnit.MILLISECONDS)); + case LIST_FACE -> listFaceLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(2)); + case SEARCH_FACE -> + searchFaceLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(200, TimeUnit.MILLISECONDS)); + case DELETE_DB -> + deleteDbLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS)); + case DELETE_ENTITY -> + deleteEntityLimiters.computeIfAbsent(config.getAccessKeyId(), k -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS)); + default -> new FixedRateLimiter(600, TimeUnit.MILLISECONDS); + }; } @Override public boolean addFaceDb(String dbName) { IRateLimiter addDbLimiter = getLimiter(LOCK_TYPE.ADD_DB); try (ClientWrapper clientWrapper = getClient()) { - IAcsClient client = clientWrapper.getClient(); + IAcsClient client = clientWrapper.client(); CreateFaceDbRequest request = new CreateFaceDbRequest(); request.setName(dbName); try { @@ -112,7 +111,7 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { request.setOrder("asc"); request.setLimit(200); try (ClientWrapper clientWrapper = getClient()) { - IAcsClient client = clientWrapper.getClient(); + IAcsClient client = clientWrapper.client(); while (true) { ListFaceEntitiesResponse response = client.getAcsResponse(request); if (response.getData().getTotalCount() == 0) { @@ -151,7 +150,7 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { public List listFaceDb() { ListFaceDbsRequest request = new ListFaceDbsRequest(); try (ClientWrapper clientWrapper = getClient()) { - IAcsClient client = clientWrapper.getClient(); + IAcsClient client = clientWrapper.client(); ListFaceDbsResponse response = client.getAcsResponse(request); return response.getData().getDbList().stream().map(ListFaceDbsResponse.Data.DbListItem::getName).collect(Collectors.toList()); } catch (ClientException e) { @@ -168,7 +167,7 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { request.setDbName(dbName); request.setEntityId(entityId); try (ClientWrapper clientWrapper = getClient()) { - IAcsClient client = clientWrapper.getClient(); + IAcsClient client = clientWrapper.client(); try { addEntityLimiter.acquire(); } catch (InterruptedException ignored) { @@ -207,7 +206,7 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { request.setDbName(dbName); request.setEntityId(entityId); try (ClientWrapper clientWrapper = getClient()) { - IAcsClient client = clientWrapper.getClient(); + IAcsClient client = clientWrapper.client(); try { deleteEntityLimiter.acquire(); } catch (InterruptedException ignored) { @@ -231,16 +230,12 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { if (offset != null) { listFaceEntitiesRequest.setOffset(offset); } - if (size != null) { - listFaceEntitiesRequest.setLimit(size); - } else { - listFaceEntitiesRequest.setLimit(200); - } + listFaceEntitiesRequest.setLimit(Objects.requireNonNullElse(size, 200)); if (StringUtils.isNotEmpty(prefix)) { listFaceEntitiesRequest.setEntityIdPrefix(prefix); } try (ClientWrapper clientWrapper = getClient()) { - IAcsClient client = clientWrapper.getClient(); + IAcsClient client = clientWrapper.client(); try { listFaceLimiter.acquire(); } catch (InterruptedException ignored) { @@ -260,7 +255,7 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { SearchFaceResp resp = new SearchFaceResp(); IRateLimiter searchFaceLimiter = getLimiter(LOCK_TYPE.SEARCH_FACE); try (ClientWrapper clientWrapper = getClient()) { - IAcsClient client = clientWrapper.getClient(); + IAcsClient client = clientWrapper.client(); SearchFaceRequest request = new SearchFaceRequest(); request.setDbName(dbName); request.setImageUrl(faceUrl); @@ -276,7 +271,7 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { resp.setOriginalFaceScore(0f); return resp; } - SearchFaceResponse.Data.MatchListItem matchItem = matchList.get(0); + SearchFaceResponse.Data.MatchListItem matchItem = matchList.getFirst(); resp.setOriginalFaceScore(matchItem.getQualitieScore()); resp.setResult(matchItem.getFaceItems().stream().map(item -> { SearchFaceResultItem resultItem = new SearchFaceResultItem(); @@ -287,7 +282,7 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { return resultItem; }).collect(Collectors.toList())); if (!resp.getResult().isEmpty()) { - resp.setFirstMatchRate(resp.getResult().get(0).getScore()); + resp.setFirstMatchRate(resp.getResult().getFirst().getScore()); } return resp; } catch (ClientException e) { @@ -304,13 +299,7 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { return new ClientWrapper(client); } - @Getter - public static class ClientWrapper implements AutoCloseable { - private final IAcsClient client; - - public ClientWrapper(IAcsClient client) { - this.client = client; - } + public record ClientWrapper(IAcsClient client) implements AutoCloseable { @Override public void close() { @@ -319,7 +308,6 @@ public class AliFaceBodyAdapter implements IFaceBodyAdapter { } client.shutdown(); } - } protected enum LOCK_TYPE { ADD_DB, diff --git a/src/main/java/com/ycwl/basic/facebody/adapter/BceFaceBodyAdapter.java b/src/main/java/com/ycwl/basic/facebody/adapter/BceFaceBodyAdapter.java index 614c15f..875ae05 100644 --- a/src/main/java/com/ycwl/basic/facebody/adapter/BceFaceBodyAdapter.java +++ b/src/main/java/com/ycwl/basic/facebody/adapter/BceFaceBodyAdapter.java @@ -304,7 +304,7 @@ public class BceFaceBodyAdapter implements IFaceBodyAdapter { } resp.setResult(result); if (!result.isEmpty()) { - resp.setFirstMatchRate(result.get(0).getScore()); + resp.setFirstMatchRate(result.getFirst().getScore()); } return resp; } else { @@ -334,26 +334,25 @@ public class BceFaceBodyAdapter implements IFaceBodyAdapter { } private IRateLimiter getLimiter(LOCK_TYPE type) { - switch (type) { - case ADD_DB: - return addDbLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); - case ADD_FACE: - return addFaceLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(config.getAddQps())); - case LIST_DB: - return listDbLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); - case LIST_FACE: - return listFaceLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); - case SEARCH_FACE: - return searchFaceLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(config.getSearchQps())); - case DELETE_DB: - return deleteDbLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); - case DELETE_ENTITY: - return deleteEntityLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); - case DELETE_FACE: - return deleteFaceLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); - default: - return new FixedRateLimiter(500, TimeUnit.MILLISECONDS); - } + return switch (type) { + case ADD_DB -> + addDbLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); + case ADD_FACE -> + addFaceLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(config.getAddQps())); + case LIST_DB -> + listDbLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); + case LIST_FACE -> + listFaceLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); + case SEARCH_FACE -> + searchFaceLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(config.getSearchQps())); + case DELETE_DB -> + deleteDbLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); + case DELETE_ENTITY -> + deleteEntityLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); + case DELETE_FACE -> + deleteFaceLimiters.computeIfAbsent(config.getAppId(), k -> new FixedRateLimiter(105, TimeUnit.MILLISECONDS)); + default -> new FixedRateLimiter(500, TimeUnit.MILLISECONDS); + }; } protected enum LOCK_TYPE { diff --git a/src/main/java/com/ycwl/basic/image/watermark/ImageWatermarkFactory.java b/src/main/java/com/ycwl/basic/image/watermark/ImageWatermarkFactory.java index cf48d4e..c9b1eac 100644 --- a/src/main/java/com/ycwl/basic/image/watermark/ImageWatermarkFactory.java +++ b/src/main/java/com/ycwl/basic/image/watermark/ImageWatermarkFactory.java @@ -16,15 +16,11 @@ public class ImageWatermarkFactory { return get(type); } public static IOperator get(ImageWatermarkOperatorEnum type) { - switch (type) { - case WATERMARK: - return new DefaultImageWatermarkOperator(); - case NORMAL: - return new NormalWatermarkOperator(); - case LEICA: - return new LeicaWatermarkOperator(); - default: - throw new ImageWatermarkUnsupportedException("不支持的类型"+type.name()); - } + return switch (type) { + case WATERMARK -> new DefaultImageWatermarkOperator(); + case NORMAL -> new NormalWatermarkOperator(); + case LEICA -> new LeicaWatermarkOperator(); + default -> throw new ImageWatermarkUnsupportedException("不支持的类型" + type.name()); + }; } } diff --git a/src/main/java/com/ycwl/basic/image/watermark/operator/LeicaWatermarkOperator.java b/src/main/java/com/ycwl/basic/image/watermark/operator/LeicaWatermarkOperator.java index 3857bed..6aea078 100644 --- a/src/main/java/com/ycwl/basic/image/watermark/operator/LeicaWatermarkOperator.java +++ b/src/main/java/com/ycwl/basic/image/watermark/operator/LeicaWatermarkOperator.java @@ -106,13 +106,13 @@ public class LeicaWatermarkOperator implements IOperator { int dtLineHeight = datetimeFontMetrics.getHeight(); int scenicLineWidth = scenicFontMetrics.stringWidth(info.getScenicLine()); int datetimeLineWidth = scenicFontMetrics.stringWidth(info.getDatetimeLine()); - g2d.drawImage(qrcodeImage, newImage.getWidth() + EXTRA_BORDER_PX - OFFSET_X - newQrcodeWidth - QRCODE_OFFSET_X - Math.max(scenicLineWidth, datetimeLineWidth), EXTRA_BORDER_PX + baseImage.getHeight() + + OFFSET_Y, newQrcodeWidth, newQrcodeHeight, null); + g2d.drawImage(qrcodeImage, newImage.getWidth() + EXTRA_BORDER_PX - OFFSET_X - newQrcodeWidth - QRCODE_OFFSET_X - Math.max(scenicLineWidth, datetimeLineWidth), EXTRA_BORDER_PX + baseImage.getHeight() + OFFSET_Y, newQrcodeWidth, newQrcodeHeight, null); g2d.setFont(scenicFont); g2d.setColor(scenicColor); - g2d.drawString(info.getScenicLine(), newImage.getWidth() + EXTRA_BORDER_PX - OFFSET_X - Math.max(scenicLineWidth, datetimeLineWidth), EXTRA_BORDER_PX + baseImage.getHeight() + + OFFSET_Y + scenicLineHeight + scenicLineHeight * FONT_GLOBAL_OFFSET_PERCENT); + g2d.drawString(info.getScenicLine(), newImage.getWidth() + EXTRA_BORDER_PX - OFFSET_X - Math.max(scenicLineWidth, datetimeLineWidth), EXTRA_BORDER_PX + baseImage.getHeight() + OFFSET_Y + scenicLineHeight + scenicLineHeight * FONT_GLOBAL_OFFSET_PERCENT); g2d.setFont(datetimeFont); g2d.setColor(datetimeColor); - g2d.drawString(info.getDatetimeLine(), newImage.getWidth() + EXTRA_BORDER_PX - OFFSET_X - Math.max(scenicLineWidth, datetimeLineWidth), EXTRA_BORDER_PX + baseImage.getHeight() + + OFFSET_Y + scenicLineHeight + dtLineHeight + dtLineHeight * FONT_GLOBAL_OFFSET_PERCENT); + g2d.drawString(info.getDatetimeLine(), newImage.getWidth() + EXTRA_BORDER_PX - OFFSET_X - Math.max(scenicLineWidth, datetimeLineWidth), EXTRA_BORDER_PX + baseImage.getHeight() + OFFSET_Y + scenicLineHeight + dtLineHeight + dtLineHeight * FONT_GLOBAL_OFFSET_PERCENT); String fileName = info.getWatermarkedFile().getName(); String formatName = "jpg"; // 默认格式为 jpg if (fileName.endsWith(".png")) { diff --git a/src/main/java/com/ycwl/basic/interceptor/AuthInterceptor.java b/src/main/java/com/ycwl/basic/interceptor/AuthInterceptor.java index 7460cc8..fb90beb 100644 --- a/src/main/java/com/ycwl/basic/interceptor/AuthInterceptor.java +++ b/src/main/java/com/ycwl/basic/interceptor/AuthInterceptor.java @@ -7,6 +7,7 @@ import com.ycwl.basic.constant.PermissionConstant; import com.ycwl.basic.constant.RequestConstant; import com.ycwl.basic.exception.CheckTokenException; import com.ycwl.basic.exception.MissTokenException; +import com.ycwl.basic.exception.PermissionException; import com.ycwl.basic.model.jwt.JwtInfo; import com.ycwl.basic.utils.JwtTokenUtil; import lombok.extern.slf4j.Slf4j; @@ -33,12 +34,11 @@ public class AuthInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - if (!(handler instanceof HandlerMethod)) { + if (!(handler instanceof HandlerMethod handlerMethod)) { return true; } String requestURI = request.getRequestURI(); - HandlerMethod handlerMethod = (HandlerMethod) handler; // 获取类上面的注解 IgnoreToken ignoreClassToken = handlerMethod.getBeanType().getAnnotation(IgnoreToken.class); // 获取方法上的注解 diff --git a/src/main/java/com/ycwl/basic/model/jwt/JwtInfo.java b/src/main/java/com/ycwl/basic/model/jwt/JwtInfo.java index 7178b52..c1335e3 100644 --- a/src/main/java/com/ycwl/basic/model/jwt/JwtInfo.java +++ b/src/main/java/com/ycwl/basic/model/jwt/JwtInfo.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; +import java.io.Serial; import java.io.Serializable; import java.time.LocalDateTime; @@ -18,6 +19,7 @@ import java.time.LocalDateTime; @ToString public class JwtInfo implements Serializable { + @Serial private static final long serialVersionUID = 5452605590172369563L; /** diff --git a/src/main/java/com/ycwl/basic/model/mobile/order/OrderAppPageReq.java b/src/main/java/com/ycwl/basic/model/mobile/order/OrderAppPageReq.java index 1a8ad88..a651f50 100644 --- a/src/main/java/com/ycwl/basic/model/mobile/order/OrderAppPageReq.java +++ b/src/main/java/com/ycwl/basic/model/mobile/order/OrderAppPageReq.java @@ -4,6 +4,7 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.Date; @@ -12,6 +13,7 @@ import java.util.Date; * @Author:longbinbin * @Date:2024/11/29 16:33 */ +@EqualsAndHashCode(callSuper = true) @Data @ApiModel(value = "移动端订单查询对象") public class OrderAppPageReq extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/adminUser/req/AdminUserListReqVO.java b/src/main/java/com/ycwl/basic/model/pc/adminUser/req/AdminUserListReqVO.java index 8c33105..ec90495 100644 --- a/src/main/java/com/ycwl/basic/model/pc/adminUser/req/AdminUserListReqVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/adminUser/req/AdminUserListReqVO.java @@ -4,7 +4,9 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; +@EqualsAndHashCode(callSuper = true) @Data @ApiModel(value = "后台管理人员请求VO") public class AdminUserListReqVO extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/adminUser/req/UpdatePasswordReqVO.java b/src/main/java/com/ycwl/basic/model/pc/adminUser/req/UpdatePasswordReqVO.java index 6c85894..2e036d4 100644 --- a/src/main/java/com/ycwl/basic/model/pc/adminUser/req/UpdatePasswordReqVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/adminUser/req/UpdatePasswordReqVO.java @@ -5,7 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data -@ApiModel(value = "") +@ApiModel() public class UpdatePasswordReqVO { @ApiModelProperty(value = "id",hidden = true) private String id; diff --git a/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerRecordReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerRecordReqQuery.java index ce77fda..8ba26c7 100644 --- a/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerRecordReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerRecordReqQuery.java @@ -6,6 +6,7 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import java.util.Date; @@ -13,6 +14,7 @@ import java.util.Date; * @Author:longbinbin * @Date:2024/12/12 10:00 */ +@EqualsAndHashCode(callSuper = true) @Data @ApiModel("查询推客记录请求参数") public class BrokerRecordReqQuery extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java index 6478845..d571cb8 100644 --- a/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/broker/req/BrokerReqQuery.java @@ -5,6 +5,7 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import java.util.Date; @@ -12,6 +13,7 @@ import java.util.Date; * @Author:longbinbin * @Date:2024/11/29 14:29 */ +@EqualsAndHashCode(callSuper = true) @Data @ApiModel("查询推客列表请求参数") public class BrokerReqQuery extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/device/req/DeviceReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/device/req/DeviceReqQuery.java index 5495431..3adfd92 100644 --- a/src/main/java/com/ycwl/basic/model/pc/device/req/DeviceReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/device/req/DeviceReqQuery.java @@ -5,6 +5,7 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import java.util.Date; @@ -12,6 +13,7 @@ import java.util.Date; * @Author:longbinbin * @Date:2024/11/29 14:53 */ +@EqualsAndHashCode(callSuper = true) @Data @ApiModel("设备查询参数") public class DeviceReqQuery extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/device/req/DeviceSortRequest.java b/src/main/java/com/ycwl/basic/model/pc/device/req/DeviceSortRequest.java index 4ac25e7..8e1e5bb 100644 --- a/src/main/java/com/ycwl/basic/model/pc/device/req/DeviceSortRequest.java +++ b/src/main/java/com/ycwl/basic/model/pc/device/req/DeviceSortRequest.java @@ -8,6 +8,6 @@ public class DeviceSortRequest { @ApiModelProperty(value = "被操作模板的ID", required = true) private Long deviceId; - @ApiModelProperty(value = "排在其后的模板ID", required = false) + @ApiModelProperty(value = "排在其后的模板ID") private Long afterDeviceId; } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/model/pc/face/req/FaceReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/face/req/FaceReqQuery.java index 82c9482..cb891d6 100644 --- a/src/main/java/com/ycwl/basic/model/pc/face/req/FaceReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/face/req/FaceReqQuery.java @@ -5,6 +5,7 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.Date; @@ -13,6 +14,7 @@ import java.util.Date; * @Author:longbinbin * @Date:2024/11/29 15:16 */ +@EqualsAndHashCode(callSuper = true) @Data @ApiModel("人脸查询参数") public class FaceReqQuery extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/faceSample/req/FaceSampleReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/faceSample/req/FaceSampleReqQuery.java index 154375e..136f970 100644 --- a/src/main/java/com/ycwl/basic/model/pc/faceSample/req/FaceSampleReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/faceSample/req/FaceSampleReqQuery.java @@ -7,6 +7,7 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import java.util.Date; @@ -14,6 +15,7 @@ import java.util.Date; * @Author:longbinbin * @Date:2024/11/29 15:40 */ +@EqualsAndHashCode(callSuper = true) @Data @ApiModel("人脸样本查询参数") public class FaceSampleReqQuery extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/member/req/MemberReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/member/req/MemberReqQuery.java index ff632ce..7e04db4 100644 --- a/src/main/java/com/ycwl/basic/model/pc/member/req/MemberReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/member/req/MemberReqQuery.java @@ -6,6 +6,7 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import java.util.Date; @@ -13,6 +14,7 @@ import java.util.Date; * @Author:longbinbin * @Date:2024/11/29 15:59 */ +@EqualsAndHashCode(callSuper = true) @Data @ApiModel("查询用户列表请求参数") public class MemberReqQuery extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java index 3ab1e1d..ab86990 100644 --- a/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/order/req/OrderReqQuery.java @@ -7,6 +7,7 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.Date; @@ -15,6 +16,7 @@ import java.util.Date; * @Author:longbinbin * @Date:2024/11/29 16:33 */ +@EqualsAndHashCode(callSuper = true) @Data @ApiModel(value = "订单查询对象") public class OrderReqQuery extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/permission/entity/PermissionEntity.java b/src/main/java/com/ycwl/basic/model/pc/permission/entity/PermissionEntity.java index a0c2202..08be766 100644 --- a/src/main/java/com/ycwl/basic/model/pc/permission/entity/PermissionEntity.java +++ b/src/main/java/com/ycwl/basic/model/pc/permission/entity/PermissionEntity.java @@ -6,12 +6,14 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import java.io.Serial; import java.io.Serializable; import java.util.Date; @Data @TableName("permission") public class PermissionEntity implements Serializable { + @Serial private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) diff --git a/src/main/java/com/ycwl/basic/model/pc/renderWorker/req/RenderWorkerReqQuery.java b/src/main/java/com/ycwl/basic/model/pc/renderWorker/req/RenderWorkerReqQuery.java index 26d1102..0f10144 100644 --- a/src/main/java/com/ycwl/basic/model/pc/renderWorker/req/RenderWorkerReqQuery.java +++ b/src/main/java/com/ycwl/basic/model/pc/renderWorker/req/RenderWorkerReqQuery.java @@ -6,6 +6,7 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; import java.math.BigDecimal; import java.util.Date; @@ -15,6 +16,7 @@ import java.util.Date; * @Date:2024/11/29 17:24 * 渲染机管理表 */ +@EqualsAndHashCode(callSuper = true) @Data @ApiModel("渲染机列表查询参数") public class RenderWorkerReqQuery extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/role/req/RoleListReqVO.java b/src/main/java/com/ycwl/basic/model/pc/role/req/RoleListReqVO.java index 97342d6..dd33d22 100644 --- a/src/main/java/com/ycwl/basic/model/pc/role/req/RoleListReqVO.java +++ b/src/main/java/com/ycwl/basic/model/pc/role/req/RoleListReqVO.java @@ -4,7 +4,9 @@ import com.ycwl.basic.model.common.BaseQueryParameterReq; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import lombok.EqualsAndHashCode; +@EqualsAndHashCode(callSuper = true) @Data @ApiModel(value = "角色请求列表VO") public class RoleListReqVO extends BaseQueryParameterReq { diff --git a/src/main/java/com/ycwl/basic/model/pc/template/req/TemplateSortRequest.java b/src/main/java/com/ycwl/basic/model/pc/template/req/TemplateSortRequest.java index f369e89..e7208e0 100644 --- a/src/main/java/com/ycwl/basic/model/pc/template/req/TemplateSortRequest.java +++ b/src/main/java/com/ycwl/basic/model/pc/template/req/TemplateSortRequest.java @@ -8,6 +8,6 @@ public class TemplateSortRequest { @ApiModelProperty(value = "被操作模板的ID", required = true) private Long templateId; - @ApiModelProperty(value = "排在其后的模板ID", required = false) + @ApiModelProperty(value = "排在其后的模板ID") private Long afterTemplateId; } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/model/snowFlake/UniqueId.java b/src/main/java/com/ycwl/basic/model/snowFlake/UniqueId.java index c11c43f..dbda6a4 100644 --- a/src/main/java/com/ycwl/basic/model/snowFlake/UniqueId.java +++ b/src/main/java/com/ycwl/basic/model/snowFlake/UniqueId.java @@ -4,6 +4,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.io.Serial; import java.io.Serializable; /** @@ -20,6 +21,7 @@ public class UniqueId implements Serializable { * 固定 + 时间戳 + 工作机器ID + 数据中心ID + 序列号 */ + @Serial private static final long serialVersionUID = 8632670752020316524L; /** diff --git a/src/main/java/com/ycwl/basic/model/wx/WechatAccessTokenVO.java b/src/main/java/com/ycwl/basic/model/wx/WechatAccessTokenVO.java deleted file mode 100644 index b9eb392..0000000 --- a/src/main/java/com/ycwl/basic/model/wx/WechatAccessTokenVO.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.ycwl.basic.model.wx; - -import lombok.Data; - -/** - * 微信获取token对象 - * @author: chenxi - * @date: 2021/8/5 20:50 - */ -@Data -public class WechatAccessTokenVO extends WechatBaseVO{ - - /** - * 微信access_token,由于微信接口返回数据,此处无法保证驼峰命名 - */ - private String access_token; - - /** - * 过期时间,单位秒 - */ - private Integer expires_in; - - -} diff --git a/src/main/java/com/ycwl/basic/model/wx/WxchatCallbackSuccessData.java b/src/main/java/com/ycwl/basic/model/wx/WechatCallbackSuccessData.java similarity index 75% rename from src/main/java/com/ycwl/basic/model/wx/WxchatCallbackSuccessData.java rename to src/main/java/com/ycwl/basic/model/wx/WechatCallbackSuccessData.java index e9f152a..5c85c0e 100644 --- a/src/main/java/com/ycwl/basic/model/wx/WxchatCallbackSuccessData.java +++ b/src/main/java/com/ycwl/basic/model/wx/WechatCallbackSuccessData.java @@ -1,7 +1,6 @@ package com.ycwl.basic.model.wx; -import cn.hutool.core.date.DateUtil; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -16,7 +15,7 @@ import java.util.Date; */ @Data @Slf4j -public class WxchatCallbackSuccessData { +public class WechatCallbackSuccessData { /** * 商户订单号 @@ -58,12 +57,4 @@ public class WxchatCallbackSuccessData { private BigDecimal totalMoney; - public Date getSuccessTime() { - return successTime; - } - - public void setSuccessTime(String successTime) { - // Hutool工具包的方法,自动识别一些常用格式的日期字符串 - this.successTime = DateUtil.parse(successTime); - } } diff --git a/src/main/java/com/ycwl/basic/model/wx/WxPayRespVO.java b/src/main/java/com/ycwl/basic/model/wx/WxPayRespVO.java index 94b6ea3..9d9e3fe 100644 --- a/src/main/java/com/ycwl/basic/model/wx/WxPayRespVO.java +++ b/src/main/java/com/ycwl/basic/model/wx/WxPayRespVO.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.experimental.Accessors; +import java.io.Serial; import java.io.Serializable; /** @@ -17,6 +18,7 @@ import java.io.Serializable; @Accessors(chain = true) public class WxPayRespVO implements Serializable { + @Serial private static final long serialVersionUID = 1L; private boolean needPay = true; /** diff --git a/src/main/java/com/ycwl/basic/notify/NotifyFactory.java b/src/main/java/com/ycwl/basic/notify/NotifyFactory.java index c115066..e7a6a84 100644 --- a/src/main/java/com/ycwl/basic/notify/NotifyFactory.java +++ b/src/main/java/com/ycwl/basic/notify/NotifyFactory.java @@ -10,14 +10,11 @@ import java.util.Map; public class NotifyFactory { public static INotifyAdapter get(NotifyType type) { - switch (type) { - case SERVER_CHAN: - return new ServerChanNotifyAdapter(); - case WX_MP_SRV: - return new WxMpSrvNotifyAdapter(); - default: - throw new RuntimeException("不支持的通知类型"); - } + return switch (type) { + case SERVER_CHAN -> new ServerChanNotifyAdapter(); + case WX_MP_SRV -> new WxMpSrvNotifyAdapter(); + default -> throw new RuntimeException("不支持的通知类型"); + }; } public static INotifyAdapter get(NotifyType type, Map config) { diff --git a/src/main/java/com/ycwl/basic/pay/PayFactory.java b/src/main/java/com/ycwl/basic/pay/PayFactory.java index 404af4e..f48f5fb 100644 --- a/src/main/java/com/ycwl/basic/pay/PayFactory.java +++ b/src/main/java/com/ycwl/basic/pay/PayFactory.java @@ -8,6 +8,7 @@ import com.ycwl.basic.pay.exceptions.PayUnsupportedException; import java.util.HashMap; import java.util.Map; +import java.util.Objects; public class PayFactory { @@ -22,12 +23,10 @@ public class PayFactory { } public static IPayAdapter getAdapter(PayAdapterType type) { - switch (type) { - case WX_MP_PAY: - return new WxMpPayAdapter(); - default: - throw new PayUnsupportedException("不支持的Adapter类型"); + if (Objects.requireNonNull(type) == PayAdapterType.WX_MP_PAY) { + return new WxMpPayAdapter(); } + throw new PayUnsupportedException("不支持的Adapter类型"); } protected static Map namedAdapter = new HashMap<>(); diff --git a/src/main/java/com/ycwl/basic/pay/adapter/WxMpPayAdapter.java b/src/main/java/com/ycwl/basic/pay/adapter/WxMpPayAdapter.java index a84beb7..c58e0a1 100644 --- a/src/main/java/com/ycwl/basic/pay/adapter/WxMpPayAdapter.java +++ b/src/main/java/com/ycwl/basic/pay/adapter/WxMpPayAdapter.java @@ -1,5 +1,6 @@ package com.ycwl.basic.pay.adapter; +import cn.hutool.core.codec.Base64; import com.wechat.pay.java.core.Config; import com.wechat.pay.java.core.RSAAutoCertificateConfig; import com.wechat.pay.java.core.RSAPublicKeyConfig; @@ -32,7 +33,6 @@ import com.ycwl.basic.pay.entity.RefundOrderResponse; import com.ycwl.basic.pay.entity.WxMpPayConfig; import com.ycwl.basic.pay.exceptions.PayWrongConfigException; import org.apache.commons.lang3.StringUtils; -import org.springframework.util.Base64Utils; import jakarta.servlet.ServletInputStream; import jakarta.servlet.http.HttpServletRequest; @@ -161,7 +161,7 @@ public class WxMpPayAdapter implements IPayAdapter { @Override public PayResponse handleCallback(HttpServletRequest request) throws IOException { ServletInputStream inputStream = request.getInputStream(); - StringBuffer body = new StringBuffer(); + StringBuilder body = new StringBuilder(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String s; // 读取回调请求体 @@ -277,7 +277,7 @@ public class WxMpPayAdapter implements IPayAdapter { @Override public RefundResponse handleRefundCallback(HttpServletRequest request) throws IOException { ServletInputStream inputStream = request.getInputStream(); - StringBuffer body = new StringBuffer(); + StringBuilder body = new StringBuilder(); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String s; // 读取回调请求体 @@ -363,6 +363,6 @@ public class WxMpPayAdapter implements IPayAdapter { Signature sign = Signature.getInstance("SHA256withRSA"); sign.initSign(merchantPrivateKey); sign.update(signatureStr.getBytes(StandardCharsets.UTF_8)); - return Base64Utils.encodeToString(sign.sign()); + return Base64.encode(sign.sign()); } } diff --git a/src/main/java/com/ycwl/basic/pay/enums/PayAdapterType.java b/src/main/java/com/ycwl/basic/pay/enums/PayAdapterType.java index dacbb8f..932988d 100644 --- a/src/main/java/com/ycwl/basic/pay/enums/PayAdapterType.java +++ b/src/main/java/com/ycwl/basic/pay/enums/PayAdapterType.java @@ -1,20 +1,16 @@ package com.ycwl.basic.pay.enums; +import lombok.Getter; + +@Getter public enum PayAdapterType { WX_MP_PAY("WX_MP_PAY"), ; - private String type; + private final String type; PayAdapterType(String type) { this.type = type; } - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } } diff --git a/src/main/java/com/ycwl/basic/printer/ticket/FeiETicketPrinter.java b/src/main/java/com/ycwl/basic/printer/ticket/FeiETicketPrinter.java index 3c0b68a..b01dcec 100644 --- a/src/main/java/com/ycwl/basic/printer/ticket/FeiETicketPrinter.java +++ b/src/main/java/com/ycwl/basic/printer/ticket/FeiETicketPrinter.java @@ -18,7 +18,7 @@ public class FeiETicketPrinter { HttpRequest post = HttpUtil.createPost(URL); post.header("Content-Type", "application/x-www-form-urlencoded"); - Map body = new HashMap(); + Map body = new HashMap<>(); body.put("user",USER); String STIME = String.valueOf(System.currentTimeMillis()/1000); body.put("stime",STIME); diff --git a/src/main/java/com/ycwl/basic/profitsharing/biz/ProfitSharingBiz.java b/src/main/java/com/ycwl/basic/profitsharing/biz/ProfitSharingBiz.java index ae131e0..599fbc9 100644 --- a/src/main/java/com/ycwl/basic/profitsharing/biz/ProfitSharingBiz.java +++ b/src/main/java/com/ycwl/basic/profitsharing/biz/ProfitSharingBiz.java @@ -45,12 +45,10 @@ public class ProfitSharingBiz { userAmount = amount.multiply(user.getRealRate()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN); wxAmount = amount.multiply(user.getWxRate()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN); manualAmount = userAmount.subtract(wxAmount); - } else if (user.getRateMode() == 3) { // 固定抽成 + } else { // 固定抽成 userAmount = user.getRealRate(); wxAmount = user.getWxRate(); manualAmount = userAmount.subtract(wxAmount); - } else { - return; } ProfitSharingRecord record = new ProfitSharingRecord(); record.setScenicId(scenicId); @@ -77,13 +75,10 @@ public class ProfitSharingBiz { BigDecimal userAmount; BigDecimal wxAmount; BigDecimal manualAmount; - if (user.getRateMode() == 2) { // 扣除固定抽成后的动态比例 - userAmount = mode2RemainAmount.multiply(user.getRealRate()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN); - wxAmount = mode2RemainAmount.multiply(user.getWxRate()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN); - manualAmount = userAmount.subtract(wxAmount); - } else { - return; - } + // 扣除固定抽成后的动态比例 + userAmount = mode2RemainAmount.multiply(user.getRealRate()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN); + wxAmount = mode2RemainAmount.multiply(user.getWxRate()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN); + manualAmount = userAmount.subtract(wxAmount); ProfitSharingRecord record = new ProfitSharingRecord(); record.setScenicId(scenicId); record.setOrderId(orderId); @@ -109,13 +104,10 @@ public class ProfitSharingBiz { BigDecimal userAmount; BigDecimal wxAmount; BigDecimal manualAmount; - if (user.getRateMode() == 4) { // 扣除其他所有类型抽成后的动态比例 - userAmount = mode4RemainAmount.multiply(user.getRealRate()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN); - wxAmount = mode4RemainAmount.multiply(user.getWxRate()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN); - manualAmount = userAmount.subtract(wxAmount); - } else { - return; - } + // 扣除其他所有类型抽成后的动态比例 + userAmount = mode4RemainAmount.multiply(user.getRealRate()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN); + wxAmount = mode4RemainAmount.multiply(user.getWxRate()).divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_DOWN); + manualAmount = userAmount.subtract(wxAmount); ProfitSharingRecord record = new ProfitSharingRecord(); record.setScenicId(scenicId); record.setOrderId(orderId); diff --git a/src/main/java/com/ycwl/basic/profitsharing/dto/ProfitSharingConfigVO.java b/src/main/java/com/ycwl/basic/profitsharing/dto/ProfitSharingConfigVO.java index 14bb01e..7caaeec 100644 --- a/src/main/java/com/ycwl/basic/profitsharing/dto/ProfitSharingConfigVO.java +++ b/src/main/java/com/ycwl/basic/profitsharing/dto/ProfitSharingConfigVO.java @@ -5,7 +5,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; @Data -@EqualsAndHashCode +@EqualsAndHashCode(callSuper = true) public class ProfitSharingConfigVO extends ProfitSharingConfig { private String scenicName; } diff --git a/src/main/java/com/ycwl/basic/profitsharing/service/impl/ProfitSharingRecordServiceImpl.java b/src/main/java/com/ycwl/basic/profitsharing/service/impl/ProfitSharingRecordServiceImpl.java index 3d65b3c..466fc6c 100644 --- a/src/main/java/com/ycwl/basic/profitsharing/service/impl/ProfitSharingRecordServiceImpl.java +++ b/src/main/java/com/ycwl/basic/profitsharing/service/impl/ProfitSharingRecordServiceImpl.java @@ -66,7 +66,7 @@ public class ProfitSharingRecordServiceImpl implements ProfitSharingRecordServic map.put(item.getUserName(), item); }); ProfitSharingTableRecordVO vo = new ProfitSharingTableRecordVO(); - ProfitSharingRecordRespVO recordRespVO = value.get(0); + ProfitSharingRecordRespVO recordRespVO = value.getFirst(); vo.setOrderId(recordRespVO.getOrderId()); vo.setScenicId(recordRespVO.getScenicId()); vo.setScenicName(recordRespVO.getScenicName()); diff --git a/src/main/java/com/ycwl/basic/service/mobile/WxPayService.java b/src/main/java/com/ycwl/basic/service/mobile/WxPayService.java index ffab9e0..46fd70c 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/WxPayService.java +++ b/src/main/java/com/ycwl/basic/service/mobile/WxPayService.java @@ -1,11 +1,10 @@ package com.ycwl.basic.service.mobile; import com.ycwl.basic.model.wx.WXPayOrderReqVO; -import com.ycwl.basic.model.wx.WxchatCallbackSuccessData; +import com.ycwl.basic.model.wx.WechatCallbackSuccessData; import jakarta.servlet.http.HttpServletRequest; import java.io.IOException; -import java.security.GeneralSecurityException; import java.util.Map; public interface WxPayService { @@ -26,7 +25,7 @@ public interface WxPayService { /** * 微信支付结果查询 */ - WxchatCallbackSuccessData queryPay(Long orderId); + WechatCallbackSuccessData queryPay(Long orderId); /** * 订单退款 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 a804fd9..b7fc74f 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 @@ -53,6 +53,7 @@ import org.springframework.stereotype.Service; import java.io.File; import java.net.MalformedURLException; +import java.net.URI; import java.net.URL; import java.util.ArrayList; import java.util.Collections; @@ -143,7 +144,7 @@ public class GoodsServiceImpl implements GoodsService { return true; }).map(type -> { GoodsPageVO goodsPageVO = new GoodsPageVO(); - goodsPageVO.setTemplateCoverUrl(goods.get(0).getUrl()); + goodsPageVO.setTemplateCoverUrl(goods.getFirst().getUrl()); goodsPageVO.setFaceId(faceId); if (type == 1) { goodsPageVO.setGoodsName("录像集"); @@ -182,7 +183,7 @@ public class GoodsServiceImpl implements GoodsService { List list = sourceMapper.listUser(sourceReqQuery); List goodsDetailVOList = new ArrayList<>(); - String goodsNamePrefix = ""; + String goodsNamePrefix; if (sourceType == 1) { goodsNamePrefix = "录像"; } else if (sourceType == 2) { @@ -209,14 +210,14 @@ public class GoodsServiceImpl implements GoodsService { goodsDetailVO.setIsBuy(sourceRespVO.getIsBuy()); if (sourceRespVO.getVideoUrl() != null) { try { - URL url = new URL(sourceRespVO.getVideoUrl()); + URI url = URI.create(sourceRespVO.getVideoUrl()); if (StringUtils.startsWith(url.getHost(), "100.64.")) { // 内网地址,需要代理 goodsDetailVO.setVideoUrl("https://zhentuai.com/proxy?url=" + sourceRespVO.getVideoUrl()); } else { goodsDetailVO.setVideoUrl(sourceRespVO.getVideoUrl()); } - } catch (MalformedURLException e) { + } catch (IllegalArgumentException e) { log.warn("url地址解析异常:{}", sourceRespVO.getVideoUrl(), e); goodsDetailVO.setVideoUrl(sourceRespVO.getVideoUrl()); } @@ -361,14 +362,14 @@ public class GoodsServiceImpl implements GoodsService { .count(); response.setCount(finishedTask); if (!notFinishedTasks.isEmpty()) { - response.setTemplateId(notFinishedTasks.get(0).getTemplateId()); - response.setTaskId(notFinishedTasks.get(0).getTaskId()); + response.setTemplateId(notFinishedTasks.getFirst().getTemplateId()); + response.setTaskId(notFinishedTasks.getFirst().getTaskId()); response.setStatus(2); return response; } // 重查一下 taskList = videoMapper.listRelationByFace(userId, faceId); - MemberVideoEntity lastVideo = taskList.get(taskList.size() - 1); + MemberVideoEntity lastVideo = taskList.getLast(); if (null == lastVideo.getVideoId()) { response.setTemplateId(lastVideo.getTemplateId()); response.setTaskId(lastVideo.getTaskId()); @@ -398,7 +399,7 @@ public class GoodsServiceImpl implements GoodsService { response.setStatus(0); return response; } - response.setScenicId(taskList.get(0).getScenicId()); + response.setScenicId(taskList.getFirst().getScenicId()); response.setMaxCount(templateRepository.getTemplateListByScenicId(response.getScenicId()).size()); List notFinishedTasks = taskList.stream() .filter(task -> { @@ -420,18 +421,18 @@ public class GoodsServiceImpl implements GoodsService { int faceCutStatus = taskStatusBiz.getFaceCutStatus(faceId); if (Integer.valueOf(0).equals(faceCutStatus)) { if (!notFinishedTasks.isEmpty()) { - response.setTemplateId(notFinishedTasks.get(0).getTemplateId()); + response.setTemplateId(notFinishedTasks.getFirst().getTemplateId()); } response.setStatus(2); return response; } if (!notFinishedTasks.isEmpty()) { - response.setTemplateId(notFinishedTasks.get(0).getTemplateId()); - response.setTaskId(notFinishedTasks.get(0).getTaskId()); + response.setTemplateId(notFinishedTasks.getFirst().getTemplateId()); + response.setTaskId(notFinishedTasks.getFirst().getTaskId()); response.setStatus(2); return response; } - MemberVideoEntity lastVideo = taskList.get(taskList.size() - 1); + MemberVideoEntity lastVideo = taskList.getLast(); response.setTaskId(lastVideo.getTaskId()); response.setTemplateId(lastVideo.getTemplateId()); response.setVideoId(lastVideo.getVideoId()); @@ -483,7 +484,7 @@ public class GoodsServiceImpl implements GoodsService { goodsDetailVO.setGoodsId(sourceRespVO.getId()); if (sourceRespVO.getVideoUrl() != null) { try { - URL url = new URL(sourceRespVO.getVideoUrl()); + URL url = URI.create(sourceRespVO.getVideoUrl()).toURL(); if (StringUtils.startsWith(url.getHost(), "100.64.")) { // 内网地址,需要代理 goodsDetailVO.setVideoUrl("https://zhentuai.com/proxy?url=" + sourceRespVO.getVideoUrl()); @@ -650,7 +651,7 @@ public class GoodsServiceImpl implements GoodsService { ImageWatermarkOperatorEnum type = ImageWatermarkOperatorEnum.getByCode(scenicConfig.getWatermarkType()); if (type != null) { IStorageAdapter adapter; - if (scenicConfig != null && scenicConfig.getStoreType() != null) { + if (scenicConfig.getStoreType() != null) { adapter = StorageFactory.get(scenicConfig.getStoreType()); adapter.loadConfig(JSONObject.parseObject(scenicConfig.getStoreConfigJson(), Map.class)); } else { diff --git a/src/main/java/com/ycwl/basic/service/mobile/impl/WxPayServiceImpl.java b/src/main/java/com/ycwl/basic/service/mobile/impl/WxPayServiceImpl.java index 3dd91da..c60e3cf 100644 --- a/src/main/java/com/ycwl/basic/service/mobile/impl/WxPayServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/mobile/impl/WxPayServiceImpl.java @@ -15,7 +15,7 @@ import com.ycwl.basic.model.pc.order.entity.OrderEntity; import com.ycwl.basic.model.pc.order.req.OrderUpdateReq; import com.ycwl.basic.model.pc.payment.entity.PaymentEntity; import com.ycwl.basic.model.wx.WXPayOrderReqVO; -import com.ycwl.basic.model.wx.WxchatCallbackSuccessData; +import com.ycwl.basic.model.wx.WechatCallbackSuccessData; import com.ycwl.basic.pay.adapter.IPayAdapter; import com.ycwl.basic.pay.entity.CancelOrderRequest; import com.ycwl.basic.pay.entity.CreateOrderRequest; @@ -116,7 +116,7 @@ public class WxPayServiceImpl implements WxPayService { } @Override - public WxchatCallbackSuccessData queryPay(Long orderId) { + public WechatCallbackSuccessData queryPay(Long orderId) { return null; } diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/DeviceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/DeviceServiceImpl.java index f47a8a9..1a42ea2 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/DeviceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/DeviceServiceImpl.java @@ -144,10 +144,10 @@ public class DeviceServiceImpl implements DeviceService { item.setSort(sortNum.addAndGet(1)); } Optional templateOptional = scenicDeviceList.stream().filter(item -> item.getId().equals(deviceId)).findAny(); - Optional afterTemplateOptional = scenicDeviceList.stream().filter(item -> item.getId().equals(afterDeviceId)).findAny(); - if (!templateOptional.isPresent()) { + if (templateOptional.isEmpty()) { return ApiResponse.fail("设备不存在"); } + Optional afterTemplateOptional = scenicDeviceList.stream().filter(item -> item.getId().equals(afterDeviceId)).findAny(); if (afterTemplateOptional.isPresent()) { DeviceEntity afterTemplate = afterTemplateOptional.get(); Integer newSort = afterTemplate.getSort(); diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/DeviceStatsServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/DeviceStatsServiceImpl.java index 9a0617b..f647f7f 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/DeviceStatsServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/DeviceStatsServiceImpl.java @@ -36,11 +36,13 @@ public class DeviceStatsServiceImpl implements DeviceStatsService { List data = mapper.countCachedStatsByScenicId(scenicId, start, end); resp.setData(data); } - resp.getData().stream().mapToInt(ScenicDeviceStatsResp::getCount).max().ifPresent((max) -> { - resp.getData().forEach(item -> { - item.setRate(BigDecimal.valueOf(item.getCount()).divide(BigDecimal.valueOf(max), 6, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100))); - }); - }); + resp.getData().stream() + .mapToInt(ScenicDeviceStatsResp::getCount).max() + .ifPresent((max) -> resp.getData() + .forEach(item -> item.setRate( + BigDecimal.valueOf(item.getCount()).divide(BigDecimal.valueOf(max), 6, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100))) + ) + ); return resp; } } 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 cbfebf4..28fa7ab 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 @@ -153,7 +153,7 @@ public class FaceServiceImpl implements FaceService { String filePath = StorageUtil.joinPath(USER_FACE, DateUtil.format(new Date(),"yyyy-MM-dd")); String originalFilename = file.getOriginalFilename(); String suffix = originalFilename.split("\\.", 2)[1]; - String fileName = UUID.randomUUID().toString() + "." + suffix; + String fileName = UUID.randomUUID() + "." + suffix; String faceUrl = adapter.uploadFile(file, filePath, fileName); Long newFaceId = SnowFlakeUtil.getLongId(); Long oldFaceId = null; @@ -248,7 +248,7 @@ public class FaceServiceImpl implements FaceService { if (scenicConfig != null && scenicConfig.getFaceDetectHelperThreshold() != null && scenicConfig.getFaceDetectHelperThreshold() > 0) { if (scenicDbSearchResult.getSampleListIds().size() < scenicConfig.getFaceDetectHelperThreshold()) { // 补救逻辑 - Long resultItem = scenicDbSearchResult.getSampleListIds().get(0); + Long resultItem = scenicDbSearchResult.getSampleListIds().getFirst(); FaceSampleEntity faceSample = faceRepository.getFaceSample(resultItem); if (faceSample != null) { // 以这个结果为人脸库的匹配结果 @@ -327,24 +327,24 @@ public class FaceServiceImpl implements FaceService { @Override public List faceContentList(Long faceId) { FaceRespVO faceRespVO = faceMapper.getById(faceId); - Long userId = faceRespVO.getMemberId(); if (faceRespVO == null) { return Collections.emptyList(); } + Long userId = faceRespVO.getMemberId(); List contentList = templateMapper.listFor(faceRespVO.getScenicId()); contentList.forEach(contentPageVO -> { List memberVideoEntityList = videoMapper.userFaceTemplateVideo(userId, faceId, contentPageVO.getTemplateId()); contentPageVO.setGoodsType(0); contentPageVO.setContentType(1); if (!memberVideoEntityList.isEmpty()) { - contentPageVO.setIsBuy(memberVideoEntityList.get(0).getIsBuy()); - contentPageVO.setContentId(memberVideoEntityList.get(0).getVideoId()); + contentPageVO.setIsBuy(memberVideoEntityList.getFirst().getIsBuy()); + contentPageVO.setContentId(memberVideoEntityList.getFirst().getVideoId()); VideoEntity video = videoRepository.getVideo(contentPageVO.getContentId()); if (video != null) { contentPageVO.setDuration(video.getDuration()); contentPageVO.setLockType(-1); } else { - TaskEntity taskById = videoTaskRepository.getTaskById(memberVideoEntityList.get(0).getTaskId()); + TaskEntity taskById = videoTaskRepository.getTaskById(memberVideoEntityList.getFirst().getTaskId()); if (taskById == null) { contentPageVO.setLockType(0); } else if (taskById.getStatus() == 3) { @@ -422,11 +422,11 @@ public class FaceServiceImpl implements FaceService { if (type == 1) { sourceVideoContent.setSourceType(1); sourceVideoContent.setLockType(-1); - sourceVideoContent.setTemplateCoverUrl(list.get(0).getUrl()); + sourceVideoContent.setTemplateCoverUrl(list.getFirst().getUrl()); } else { sourceImageContent.setSourceType(2); sourceImageContent.setLockType(-1); - sourceImageContent.setTemplateCoverUrl(list.get(0).getUrl()); + sourceImageContent.setTemplateCoverUrl(list.getFirst().getUrl()); } }); 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 3bf5b25..2b65cc0 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 @@ -118,15 +118,15 @@ public class OrderServiceImpl implements OrderService { OrderAppRespVO orderAppRespVO = orderMapper.appDetail(item.getId()); List orderItemList = orderAppRespVO.getOrderItemList(); if (!orderItemList.isEmpty()) { - if (Integer.valueOf(1).equals(orderItemList.get(0).getGoodsType())) { + if (Integer.valueOf(1).equals(orderItemList.getFirst().getGoodsType())) { item.setGoodsName("录像集"); item.setOrderType("录像集"); - } else if (Integer.valueOf(2).equals(orderItemList.get(0).getGoodsType())) { + } else if (Integer.valueOf(2).equals(orderItemList.getFirst().getGoodsType())) { item.setGoodsName("照片集"); item.setOrderType("照片集"); - } else if (Integer.valueOf(0).equals(orderItemList.get(0).getGoodsType())) { + } else if (Integer.valueOf(0).equals(orderItemList.getFirst().getGoodsType())) { item.setOrderType("旅行Vlog"); - item.setGoodsName(orderItemList.get(0).getGoodsName()); + item.setGoodsName(orderItemList.getFirst().getGoodsName()); } else { item.setGoodsName("未知商品"); item.setOrderType("未知商品"); @@ -182,7 +182,7 @@ public class OrderServiceImpl implements OrderService { goods.setCreateTime(sourceEntity.getCreateTime()); goodsList.add(goods); } - item.setShootingTime(memberVideoEntityList.get(0).getCreateTime()); + item.setShootingTime(memberVideoEntityList.getFirst().getCreateTime()); } } } else if (Integer.valueOf(2).equals(item.getGoodsType())) { // 照片 goodsId就是人脸ID @@ -204,7 +204,7 @@ public class OrderServiceImpl implements OrderService { goods.setCreateTime(sourceEntity.getCreateTime()); goodsList.add(goods); } - item.setShootingTime(memberVideoEntityList.get(0).getCreateTime()); + item.setShootingTime(memberVideoEntityList.getFirst().getCreateTime()); } } } else if (Integer.valueOf(3).equals(item.getGoodsType())) { // 打印照片 goodsId就是memberPrintId @@ -275,7 +275,7 @@ public class OrderServiceImpl implements OrderService { if (orderItems.size() > 1) { goodsName = "多项景区Vlog商品"; } else { - int type = orderItems.get(0).getGoodsType(); + int type = orderItems.getFirst().getGoodsType(); if (type == 0) { goodsName = "景区Vlog视频"; } else if (type == 1) { @@ -357,13 +357,13 @@ public class OrderServiceImpl implements OrderService { List memberVideoEntityList = sourceMapper.listVideoByFaceRelation(orderReqQuery.getMemberId(), item.getFaceId()); item.setCoverList(memberVideoEntityList.stream().map(SourceEntity::getUrl).collect(Collectors.toList())); if (!memberVideoEntityList.isEmpty()) { - item.setShootingTime(memberVideoEntityList.get(0).getCreateTime()); + item.setShootingTime(memberVideoEntityList.getFirst().getCreateTime()); } } else if (Integer.valueOf(2).equals(item.getGoodsType())) { List memberVideoEntityList = sourceMapper.listImageByFaceRelation(orderReqQuery.getMemberId(), item.getFaceId()); item.setCoverList(memberVideoEntityList.stream().map(SourceEntity::getUrl).collect(Collectors.toList())); if (!memberVideoEntityList.isEmpty()) { - item.setShootingTime(memberVideoEntityList.get(0).getCreateTime()); + item.setShootingTime(memberVideoEntityList.getFirst().getCreateTime()); } } else if (Integer.valueOf(0).equals(item.getGoodsType())) { item.setCoverList(Collections.singletonList(item.getCoverUrl())); @@ -434,15 +434,15 @@ public class OrderServiceImpl implements OrderService { OrderAppRespVO orderAppRespVO = orderMapper.appDetail(item.getId()); List orderItemList = orderAppRespVO.getOrderItemList(); if (!orderItemList.isEmpty()) { - if (Integer.valueOf(1).equals(orderItemList.get(0).getGoodsType())) { + if (Integer.valueOf(1).equals(orderItemList.getFirst().getGoodsType())) { item.setGoodsName("录像集"); item.setOrderType("录像集"); - } else if (Integer.valueOf(2).equals(orderItemList.get(0).getGoodsType())) { + } else if (Integer.valueOf(2).equals(orderItemList.getFirst().getGoodsType())) { item.setGoodsName("照片集"); item.setOrderType("照片集"); - } else if (Integer.valueOf(0).equals(orderItemList.get(0).getGoodsType())) { + } else if (Integer.valueOf(0).equals(orderItemList.getFirst().getGoodsType())) { item.setOrderType("旅行Vlog"); - item.setGoodsName(orderItemList.get(0).getGoodsName()); + item.setGoodsName(orderItemList.getFirst().getGoodsName()); } else { item.setGoodsName("未知商品"); item.setOrderType("未知商品"); diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/RoleServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/RoleServiceImpl.java index 7ad47e7..f73c309 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/RoleServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/RoleServiceImpl.java @@ -61,7 +61,7 @@ public class RoleServiceImpl implements RoleService { String roleId = SnowFlakeUtil.getId(); addOrUpdateRoleReqVO.setId(roleId); if(roleMapper.add(addOrUpdateRoleReqVO)>0){ - if(addOrUpdateRoleReqVO.getMenuIdList()!=null&addOrUpdateRoleReqVO.getMenuIdList().size()>0) { + if (addOrUpdateRoleReqVO.getMenuIdList() != null && !addOrUpdateRoleReqVO.getMenuIdList().isEmpty()) { menuMapper.addRoleMenu(roleId, addOrUpdateRoleReqVO.getMenuIdList()); } return ApiResponse.success(null); @@ -69,8 +69,8 @@ public class RoleServiceImpl implements RoleService { }else { if(roleMapper.update(addOrUpdateRoleReqVO)>0){ menuMapper.deleteRoleMenuByRoleId(addOrUpdateRoleReqVO.getId()); - if(addOrUpdateRoleReqVO.getMenuIdList()!=null&addOrUpdateRoleReqVO.getMenuIdList().size()>0){ - menuMapper.addRoleMenu(addOrUpdateRoleReqVO.getId(),addOrUpdateRoleReqVO.getMenuIdList()); + if (addOrUpdateRoleReqVO.getMenuIdList() != null && !addOrUpdateRoleReqVO.getMenuIdList().isEmpty()) { + menuMapper.addRoleMenu(addOrUpdateRoleReqVO.getId(), addOrUpdateRoleReqVO.getMenuIdList()); } return ApiResponse.success(null); } diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/TemplateServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/TemplateServiceImpl.java index 87d104d..9e052a2 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/TemplateServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/TemplateServiceImpl.java @@ -139,7 +139,7 @@ public class TemplateServiceImpl implements TemplateService { } Optional templateOptional = scenicTemplateList.stream().filter(item -> item.getId().equals(templateId)).findAny(); Optional afterTemplateOptional = scenicTemplateList.stream().filter(item -> item.getId().equals(afterTemplateId)).findAny(); - if (!templateOptional.isPresent()) { + if (templateOptional.isEmpty()) { return ApiResponse.fail("模版不存在"); } if (afterTemplateOptional.isPresent()) { diff --git a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java index bb80f25..734c98a 100644 --- a/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/printer/impl/PrinterServiceImpl.java @@ -235,7 +235,7 @@ public class PrinterServiceImpl implements PrinterService { if (printerList.size() != 1) { throw new BaseException("请选择打印机"); } else { - printerId = printerList.get(0).getId(); + printerId = printerList.getFirst().getId(); } } else { PrinterEntity printer = printerMapper.getById(printerId); @@ -293,7 +293,6 @@ public class PrinterServiceImpl implements PrinterService { if (order.getPayPrice().equals(BigDecimal.ZERO)) { orderBiz.paidOrder(order.getId()); data.put("needPay", false); - return data; } else { WXPayOrderReqVO wxPayOrderReqVO = new WXPayOrderReqVO(); wxPayOrderReqVO.setOpenId(order.getOpenId()) @@ -308,8 +307,8 @@ public class PrinterServiceImpl implements PrinterService { throw new BaseException(e); } data.put("orderId", orderId); - return data; } + return data; } @Override 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 f5e79fc..84bd861 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 @@ -41,9 +41,7 @@ import org.springframework.context.annotation.Lazy; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import com.aliyuncs.IAcsClient; -import org.springframework.web.multipart.MultipartFile; -import java.io.IOException; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collections; @@ -84,7 +82,7 @@ public class TaskFaceServiceImpl implements TaskFaceService { private IAcsClient getClient() { AliFaceBodyAdapter use = (AliFaceBodyAdapter) FaceBodyFactory.use(); - return use.getClient().getClient(); + return use.getClient().client(); } @Override @@ -222,7 +220,7 @@ public class TaskFaceServiceImpl implements TaskFaceService { if (StringUtils.isNumeric(dbName)) { // 景区 allFaceSampleList = faceSampleMapper.listByIds(allFaceSampleIds); if (!acceptFaceSampleIds.isEmpty()) { - Long firstFaceSampleId = acceptFaceSampleIds.get(0); + Long firstFaceSampleId = acceptFaceSampleIds.getFirst(); Optional firstFaceSample = allFaceSampleList.stream().filter(faceSample -> faceSample.getId().equals(firstFaceSampleId)).findAny(); if (firstFaceSample.isPresent()) { if (tourMinutes > 0) { diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java index f957b71..21a3196 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java @@ -130,8 +130,7 @@ public class TaskTaskServiceImpl implements TaskService { if (accessKey == null) { return null; } - RenderWorkerEntity worker = renderWorkerMapper.findByAccessKey(accessKey); - return worker; + return renderWorkerMapper.findByAccessKey(accessKey); } @Override @@ -209,9 +208,6 @@ public class TaskTaskServiceImpl implements TaskService { @Override public TemplateRespVO workerGetTemplate(@NonNull Long templateId, @NonNull WorkerAuthReqVo req) { - if (templateId == null) { - return null; - } RenderWorkerEntity worker = getWorker(req); if (worker == null) { return null; @@ -274,7 +270,7 @@ public class TaskTaskServiceImpl implements TaskService { if (templatePlaceholder.stream().distinct().count() == templatePlaceholder.size()) { sourcesMap.forEach((key, value) -> { // 每个value只保留第一个 - value.removeIf(item -> !value.get(0).equals(item)); + value.removeIf(item -> !value.getFirst().equals(item)); }); } else { log.info("task callback: 模板占位符有重复,templateId: {}", templateId); @@ -300,7 +296,7 @@ public class TaskTaskServiceImpl implements TaskService { taskReqQuery.setTemplateId(templateId); List templateTaskList = taskMapper.listEntity(taskReqQuery); if (!templateTaskList.isEmpty()) { - taskEntity = templateTaskList.get(0); + taskEntity = templateTaskList.getFirst(); log.info("已有旧生成的视频:{}", taskEntity); MemberVideoEntity taskVideoRelation = videoMapper.queryRelationByMemberTask(face.getMemberId(), taskEntity.getId()); if (taskVideoRelation != null) { @@ -326,10 +322,10 @@ public class TaskTaskServiceImpl implements TaskService { memberVideoEntity.setTaskId(taskEntity.getId()); } else { log.info("重复task! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap); - memberVideoEntity.setTaskId(list.get(0).getId()); - VideoEntity video = videoMapper.findByTaskId(list.get(0).getId()); + memberVideoEntity.setTaskId(list.getFirst().getId()); + VideoEntity video = videoMapper.findByTaskId(list.getFirst().getId()); if (video != null) { - IsBuyRespVO isBuy = orderBiz.isBuy(face.getMemberId(), list.get(0).getScenicId(), 0, video.getId()); + IsBuyRespVO isBuy = orderBiz.isBuy(face.getMemberId(), list.getFirst().getScenicId(), 0, video.getId()); if (isBuy.isBuy()) { memberVideoEntity.setIsBuy(1); memberVideoEntity.setOrderId(isBuy.getOrderId()); @@ -376,11 +372,9 @@ public class TaskTaskServiceImpl implements TaskService { } if (Integer.valueOf(3).equals(scenicConfig.getBookRoutine()) || Integer.valueOf(4).equals(scenicConfig.getBookRoutine())) { // 生成全部视频的逻辑 - templateList.forEach(template -> { - createTaskByFaceIdAndTempalteId(faceId, template.getId(), 1); - }); + templateList.forEach(template -> createTaskByFaceIdAndTempalteId(faceId, template.getId(), 1)); } else { - createTaskByFaceIdAndTempalteId(faceId, templateList.get(0).getId(), 1); + createTaskByFaceIdAndTempalteId(faceId, templateList.getFirst().getId(), 1); } } @Override @@ -433,7 +427,7 @@ public class TaskTaskServiceImpl implements TaskService { // } // videoMapper.addRelation(memberVideo); // new Thread(() -> { -// sendVideoGeneratedServiceNotification(list.get(0).getId(), faceRespVO.getMemberId()); +// sendVideoGeneratedServiceNotification(list.getFirst().getId(), faceRespVO.getMemberId()); // }).start(); // } // }); @@ -474,7 +468,7 @@ public class TaskTaskServiceImpl implements TaskService { if (templatePlaceholder.stream().distinct().count() == templatePlaceholder.size()) { sourcesMap.forEach((key, value) -> { // 每个value只保留第一个 - value.removeIf(item -> !value.get(0).equals(item)); + value.removeIf(item -> !value.getFirst().equals(item)); }); } else { log.info("task callback: 模板占位符有重复,templateId: {}", templateId); @@ -500,7 +494,7 @@ public class TaskTaskServiceImpl implements TaskService { taskReqQuery.setTemplateId(templateId); List templateTaskList = taskMapper.listEntity(taskReqQuery); if (!templateTaskList.isEmpty()) { - taskEntity = templateTaskList.get(0); + taskEntity = templateTaskList.getFirst(); log.info("已有旧生成的视频:{}", taskEntity); MemberVideoEntity taskVideoRelation = videoMapper.queryRelationByMemberTask(face.getMemberId(), taskEntity.getId()); if (taskVideoRelation != null) { @@ -526,10 +520,10 @@ public class TaskTaskServiceImpl implements TaskService { memberVideoEntity.setTaskId(taskEntity.getId()); } else { log.info("重复task! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap); - memberVideoEntity.setTaskId(list.get(0).getId()); - VideoEntity video = videoMapper.findByTaskId(list.get(0).getId()); + memberVideoEntity.setTaskId(list.getFirst().getId()); + VideoEntity video = videoMapper.findByTaskId(list.getFirst().getId()); if (video != null) { - IsBuyRespVO isBuy = orderBiz.isBuy(face.getMemberId(), list.get(0).getScenicId(), 0, video.getId()); + IsBuyRespVO isBuy = orderBiz.isBuy(face.getMemberId(), list.getFirst().getScenicId(), 0, video.getId()); if (isBuy.isBuy()) { memberVideoEntity.setIsBuy(1); memberVideoEntity.setOrderId(isBuy.getOrderId()); @@ -626,9 +620,7 @@ public class TaskTaskServiceImpl implements TaskService { } } videoMapper.updateRelationWhenTaskSuccess(taskId, video.getId(), isBuy); - new Thread(() -> { - sendVideoGeneratedServiceNotification(taskId); - }).start(); + new Thread(() -> sendVideoGeneratedServiceNotification(taskId)).start(); } @Override @@ -657,6 +649,9 @@ public class TaskTaskServiceImpl implements TaskService { return null; } RenderWorkerEntity worker = getWorker(req); + if (worker == null) { + return null; + } IStorageAdapter adapter; try { adapter = StorageFactory.get(worker.getStoreType()); @@ -677,9 +672,7 @@ public class TaskTaskServiceImpl implements TaskService { public void sendVideoGeneratedServiceNotification(Long taskId) { List memberVideo = videoMapper.listRelationByTask(taskId); - memberVideo.forEach(item -> { - sendVideoGeneratedServiceNotification(taskId, item.getMemberId()); - }); + memberVideo.forEach(item -> sendVideoGeneratedServiceNotification(taskId, item.getMemberId())); } @Override diff --git a/src/main/java/com/ycwl/basic/storage/StorageFactory.java b/src/main/java/com/ycwl/basic/storage/StorageFactory.java index 5ece8d6..ad0d2c4 100644 --- a/src/main/java/com/ycwl/basic/storage/StorageFactory.java +++ b/src/main/java/com/ycwl/basic/storage/StorageFactory.java @@ -21,16 +21,12 @@ public class StorageFactory { } public static IStorageAdapter get(StorageType storageType) { - switch (storageType) { - case LOCAL: - return new LocalStorageAdapter(); - case AWS_OSS: - return new AwsOssAdapter(); - case ALI_OSS: - return new AliOssAdapter(); - default: - throw new StorageUnsupportedException(storageType.getType()); - } + return switch (storageType) { + case LOCAL -> new LocalStorageAdapter(); + case AWS_OSS -> new AwsOssAdapter(); + case ALI_OSS -> new AliOssAdapter(); + default -> throw new StorageUnsupportedException(storageType.getType()); + }; } public static IStorageAdapter get(String type) { diff --git a/src/main/java/com/ycwl/basic/storage/adapters/AliOssAdapter.java b/src/main/java/com/ycwl/basic/storage/adapters/AliOssAdapter.java index 247251f..8b7dd2c 100644 --- a/src/main/java/com/ycwl/basic/storage/adapters/AliOssAdapter.java +++ b/src/main/java/com/ycwl/basic/storage/adapters/AliOssAdapter.java @@ -190,18 +190,13 @@ final public class AliOssAdapter extends AStorageAdapter { } private CannedAccessControlList convertAcl(StorageAcl acl) { - switch (acl) { - case PUBLIC_READ: - return CannedAccessControlList.PublicRead; - case PUBLIC_READ_WRITE: - return CannedAccessControlList.PublicReadWrite; - case PRIVATE: - return CannedAccessControlList.Private; - case AUTHENTICATED_READ: - return CannedAccessControlList.AuthenticatedRead; - default: - return CannedAccessControlList.Default; - } + return switch (acl) { + case PUBLIC_READ -> CannedAccessControlList.PublicRead; + case PUBLIC_READ_WRITE -> CannedAccessControlList.PublicReadWrite; + case PRIVATE -> CannedAccessControlList.Private; + case AUTHENTICATED_READ -> CannedAccessControlList.AuthenticatedRead; + default -> CannedAccessControlList.Default; + }; } @Override diff --git a/src/main/java/com/ycwl/basic/storage/adapters/AwsOssAdapter.java b/src/main/java/com/ycwl/basic/storage/adapters/AwsOssAdapter.java index 9622919..2104ab5 100644 --- a/src/main/java/com/ycwl/basic/storage/adapters/AwsOssAdapter.java +++ b/src/main/java/com/ycwl/basic/storage/adapters/AwsOssAdapter.java @@ -61,7 +61,7 @@ public class AwsOssAdapter extends AStorageAdapter { } String fullPath = buildPath(path); try (S3Wrapper wrapper = getS3Client()) { - AmazonS3Client s3Client = wrapper.getS3Client(); + AmazonS3Client s3Client = wrapper.s3Client(); ObjectMetadata metadata = new ObjectMetadata(); metadata.setContentLength(inputStream.available()); if (StringUtils.isNotBlank(contentType)) { @@ -79,7 +79,7 @@ public class AwsOssAdapter extends AStorageAdapter { @Override public boolean deleteFile(String... path) { try (S3Wrapper wrapper = getS3Client()) { - AmazonS3Client s3Client = wrapper.getS3Client(); + AmazonS3Client s3Client = wrapper.s3Client(); s3Client.deleteObject(config.getBucketName(), buildPath(path)); return true; } catch (Exception e) { @@ -95,7 +95,7 @@ public class AwsOssAdapter extends AStorageAdapter { @Override public String getUrlForDownload(Date expireDate, String... path) { try (S3Wrapper wrapper = getS3Client()) { - AmazonS3Client s3Client = wrapper.getS3Client(); + AmazonS3Client s3Client = wrapper.s3Client(); URL url = s3Client.generatePresignedUrl(config.getBucketName(), buildPath(path), expireDate); return url.toString(); } @@ -104,7 +104,7 @@ public class AwsOssAdapter extends AStorageAdapter { @Override public String getUrlForUpload(Date expireDate, String contentType, String... path) { try (S3Wrapper wrapper = getS3Client()) { - AmazonS3Client s3Client = wrapper.getS3Client(); + AmazonS3Client s3Client = wrapper.s3Client(); GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(config.getBucketName(), buildPath(path)); request.setMethod(HttpMethod.PUT); if (StringUtils.isNotBlank(contentType)) { @@ -126,7 +126,7 @@ public class AwsOssAdapter extends AStorageAdapter { String continuationToken = null; List objectList = new ArrayList<>(); try (S3Wrapper wrapper = getS3Client()) { - AmazonS3Client s3Client = wrapper.getS3Client(); + AmazonS3Client s3Client = wrapper.s3Client(); while (isTruncated) { if (continuationToken != null) { listObjectsV2Request.setContinuationToken(continuationToken); @@ -160,7 +160,7 @@ public class AwsOssAdapter extends AStorageAdapter { return true; } try (S3Wrapper wrapper = getS3Client()) { - AmazonS3Client s3Client = wrapper.getS3Client(); + AmazonS3Client s3Client = wrapper.s3Client(); int idx = 0; int batchSize = 999; while (objectList.size() > idx) { @@ -184,24 +184,19 @@ public class AwsOssAdapter extends AStorageAdapter { } private CannedAccessControlList convertAcl(StorageAcl acl) { - switch (acl) { - case PUBLIC_READ: - return CannedAccessControlList.PublicRead; - case PUBLIC_READ_WRITE: - return CannedAccessControlList.PublicReadWrite; - case PRIVATE: - return CannedAccessControlList.Private; - case AUTHENTICATED_READ: - return CannedAccessControlList.AuthenticatedRead; - default: - return CannedAccessControlList.PublicRead; - } + return switch (acl) { + case PUBLIC_READ -> CannedAccessControlList.PublicRead; + case PUBLIC_READ_WRITE -> CannedAccessControlList.PublicReadWrite; + case PRIVATE -> CannedAccessControlList.Private; + case AUTHENTICATED_READ -> CannedAccessControlList.AuthenticatedRead; + default -> CannedAccessControlList.PublicRead; + }; } @Override public boolean setAcl(StorageAcl acl, String... path) { try (S3Wrapper wrapper = getS3Client()) { - AmazonS3Client s3Client = wrapper.getS3Client(); + AmazonS3Client s3Client = wrapper.s3Client(); s3Client.setObjectAcl(config.getBucketName(), buildPath(path), convertAcl(acl)); return true; } catch (Exception e) { @@ -212,7 +207,7 @@ public class AwsOssAdapter extends AStorageAdapter { @Override public boolean isExists(String... path) { try (S3Wrapper wrapper = getS3Client()) { - AmazonS3Client s3Client = wrapper.getS3Client(); + AmazonS3Client s3Client = wrapper.s3Client(); return s3Client.doesObjectExist(config.getBucketName(), buildPath(path)); } catch (Exception e) { return false; @@ -242,18 +237,7 @@ public class AwsOssAdapter extends AStorageAdapter { return StorageUtil.getRelativePath(path, config.getPrefix()); } - public static class S3Wrapper implements AutoCloseable { - private final AmazonS3Client s3Client; - - public S3Wrapper(AmazonS3Client s3Client) { - this.s3Client = s3Client; - } - - // 提供对原始对象的方法访问 - public AmazonS3Client getS3Client() { - return s3Client; - } - + public record S3Wrapper(AmazonS3Client s3Client) implements AutoCloseable { @Override public void close() { s3Client.shutdown(); diff --git a/src/main/java/com/ycwl/basic/storage/enums/StorageAcl.java b/src/main/java/com/ycwl/basic/storage/enums/StorageAcl.java index 64c23ba..50b869f 100644 --- a/src/main/java/com/ycwl/basic/storage/enums/StorageAcl.java +++ b/src/main/java/com/ycwl/basic/storage/enums/StorageAcl.java @@ -1,5 +1,8 @@ package com.ycwl.basic.storage.enums; +import lombok.Getter; + +@Getter public enum StorageAcl { PUBLIC_READ("public-read"), PRIVATE("private"), @@ -12,7 +15,4 @@ public enum StorageAcl { this.value = value; } - public String getValue() { - return value; - } } diff --git a/src/main/java/com/ycwl/basic/task/DynamicTaskGenerator.java b/src/main/java/com/ycwl/basic/task/DynamicTaskGenerator.java index 29458a0..9857672 100644 --- a/src/main/java/com/ycwl/basic/task/DynamicTaskGenerator.java +++ b/src/main/java/com/ycwl/basic/task/DynamicTaskGenerator.java @@ -114,7 +114,7 @@ public class DynamicTaskGenerator { } log.info("开始执行任务:{}", task); IFaceBodyAdapter faceBodyAdapter; - if (scenicConfig != null && scenicConfig.getFaceType() != null) { + if (scenicConfig.getFaceType() != null) { faceBodyAdapter = FaceBodyFactory.getAdapter(scenicConfig.getFaceType()); faceBodyAdapter.loadConfig(JSONObject.parseObject(scenicConfig.getFaceConfigJson(), Map.class)); } else { diff --git a/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java b/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java index cb637a6..70756be 100644 --- a/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java +++ b/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java @@ -77,7 +77,7 @@ public class VideoPieceGetter { public Long templateId; public boolean force; - public static interface Callback { + public interface Callback { void onInvoke(); } } @@ -134,7 +134,7 @@ public class VideoPieceGetter { List list = faceSampleMapper.listByIds(task.getFaceSampleIds()); Map pairDeviceMap = new ConcurrentHashMap<>(); if (!list.isEmpty()) { - Long scenicId = list.get(0).getScenicId(); + Long scenicId = list.getFirst().getScenicId(); List allDeviceByScenicId = deviceRepository.getAllDeviceByScenicId(scenicId); allDeviceByScenicId.forEach(device -> { Long deviceId = device.getId(); @@ -258,10 +258,10 @@ public class VideoPieceGetter { log.info("查询到可用的文件: {}", listByDtRange); // 如果完全一致,就不需要裁切 String url; - if (listByDtRange.size() == 1 && listByDtRange.get(0).isExact()) { - url = listByDtRange.get(0).getUrl(); + if (listByDtRange.size() == 1 && listByDtRange.getFirst().isExact()) { + url = listByDtRange.getFirst().getUrl(); } else { - long offset = baseTime.getTime() - cutPre.multiply(BigDecimal.valueOf(1000)).longValue() - listByDtRange.get(0).getCreateTime().getTime(); + long offset = baseTime.getTime() - cutPre.multiply(BigDecimal.valueOf(1000)).longValue() - listByDtRange.getFirst().getCreateTime().getTime(); FfmpegTask ffmpegTask = new FfmpegTask(); ffmpegTask.setFileList(listByDtRange); ffmpegTask.setDuration(duration); @@ -422,7 +422,7 @@ public class VideoPieceGetter { private boolean runFfmpegForSingleFile(FfmpegTask task) { try { - return quickVideoCut(task.getFileList().get(0).getUrl(), task.getOffsetStart(), task.getDuration(), task.getOutputFile()); + return quickVideoCut(task.getFileList().getFirst().getUrl(), task.getOffsetStart(), task.getDuration(), task.getOutputFile()); } catch (IOException e) { return false; } diff --git a/src/main/java/com/ycwl/basic/task/VideoTaskGenerator.java b/src/main/java/com/ycwl/basic/task/VideoTaskGenerator.java index aac8cb8..faada4a 100644 --- a/src/main/java/com/ycwl/basic/task/VideoTaskGenerator.java +++ b/src/main/java/com/ycwl/basic/task/VideoTaskGenerator.java @@ -99,7 +99,7 @@ public class VideoTaskGenerator { } }); } else { - Long templateId = contentList.get(0).getTemplateId(); + Long templateId = contentList.getFirst().getTemplateId(); boolean canAutoGenerate = templateBiz.determineTemplateCanAutoGenerate(templateId, face.getId(), false); if (canAutoGenerate) { log.info("task callback: 自动生成"); diff --git a/src/main/java/com/ycwl/basic/utils/ApiConst.java b/src/main/java/com/ycwl/basic/utils/ApiConst.java index 2957969..6093b17 100644 --- a/src/main/java/com/ycwl/basic/utils/ApiConst.java +++ b/src/main/java/com/ycwl/basic/utils/ApiConst.java @@ -12,7 +12,7 @@ public class ApiConst { * * @version 1.0.0 */ - public static enum Code { + public enum Code { /** * 成功返回码 @@ -94,11 +94,11 @@ public class ApiConst { */ CODE_MISS_TOKEN_ERROR(5006); - private Code(int intCode) { + Code(int intCode) { this.intCode = intCode; } - private int intCode; + private final int intCode; public int code() { return intCode; diff --git a/src/main/java/com/ycwl/basic/utils/ApiResponse.java b/src/main/java/com/ycwl/basic/utils/ApiResponse.java index bfb0fb7..82aaff1 100644 --- a/src/main/java/com/ycwl/basic/utils/ApiResponse.java +++ b/src/main/java/com/ycwl/basic/utils/ApiResponse.java @@ -6,6 +6,7 @@ import com.ycwl.basic.enums.BizCodeEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serial; import java.io.Serializable; /** @@ -17,6 +18,7 @@ import java.io.Serializable; @ApiModel(value = "通用返回数据对象") public class ApiResponse implements Serializable { + @Serial private static final long serialVersionUID = 1L; /** @@ -48,7 +50,7 @@ public class ApiResponse implements Serializable { * @return */ public static ApiResponse success(T data) { - ApiResponse response = new ApiResponse(); + ApiResponse response = new ApiResponse<>(); response.setCode(ApiConst.Code.CODE_SUCCESS.code()); response.setData(data); return response; @@ -60,7 +62,7 @@ public class ApiResponse implements Serializable { * @return */ public static ApiResponse buildEmptyResponse() { - ApiResponse response = new ApiResponse(); + ApiResponse response = new ApiResponse<>(); response.setCode(ApiConst.Code.CODE_CONTENT_EMPTY.code()); return response; } @@ -84,7 +86,7 @@ public class ApiResponse implements Serializable { * @return */ public static ApiResponse buildResponse(int code, T data, String msg) { - ApiResponse response = new ApiResponse(); + ApiResponse response = new ApiResponse<>(); response.setCode(code); response.setData(data); response.setMsg(msg); @@ -99,7 +101,7 @@ public class ApiResponse implements Serializable { * @return */ public static ApiResponse buildFlagResponse(boolean flag, T data) { - ApiResponse response = new ApiResponse(); + ApiResponse response = new ApiResponse<>(); if (flag) { response.setCode(ApiConst.Code.CODE_SUCCESS.code()); response.setData(data); @@ -120,7 +122,7 @@ public class ApiResponse implements Serializable { * @return */ public static ApiResponse buildResponse(ApiConst.Code code, String msg) { - ApiResponse response = new ApiResponse(); + ApiResponse response = new ApiResponse<>(); response.setCode(code.code()); response.setMsg(msg); return response; @@ -134,7 +136,7 @@ public class ApiResponse implements Serializable { * @return */ public static ApiResponse buildResponse(int code, String msg) { - ApiResponse response = new ApiResponse(); + ApiResponse response = new ApiResponse<>(); response.setCode(code); response.setMsg(msg); return response; diff --git a/src/main/java/com/ycwl/basic/utils/ImageUtils.java b/src/main/java/com/ycwl/basic/utils/ImageUtils.java index 64ee649..e41c74d 100644 --- a/src/main/java/com/ycwl/basic/utils/ImageUtils.java +++ b/src/main/java/com/ycwl/basic/utils/ImageUtils.java @@ -1,5 +1,6 @@ package com.ycwl.basic.utils; +import cn.hutool.core.codec.Base64; import org.springframework.web.multipart.MultipartFile; import java.io.ByteArrayInputStream; @@ -7,16 +8,15 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.util.Base64; public class ImageUtils { public static MultipartFile base64ToMultipartFile(String base64) { String[] baseStrs = base64.split(","); byte[] b; - b = Base64.getDecoder().decode(baseStrs[0]); + b = Base64.decode(baseStrs[0]); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) { - b[i] += 256; + b[i] += (byte) 256; } } return new Base64DecodedMultipartFile(b, baseStrs[0]); @@ -33,14 +33,12 @@ public class ImageUtils { @Override public String getName() { - // TODO - implementation depends on your requirements return System.currentTimeMillis() + Math.random() + "." + header.split("/")[1]; } @Override public String getOriginalFilename() { - // TODO - implementation depends on your requirements - return System.currentTimeMillis() + (int) Math.random() * 10000 + "." + header.split("/")[1]; + return System.currentTimeMillis() + "." + header.split("/")[1]; } @Override diff --git a/src/main/java/com/ycwl/basic/utils/IpUtils.java b/src/main/java/com/ycwl/basic/utils/IpUtils.java index 6be8a4a..14e7dc7 100644 --- a/src/main/java/com/ycwl/basic/utils/IpUtils.java +++ b/src/main/java/com/ycwl/basic/utils/IpUtils.java @@ -3,8 +3,6 @@ package com.ycwl.basic.utils; import org.apache.commons.lang3.StringUtils; import jakarta.servlet.http.HttpServletRequest; -import java.net.InetAddress; -import java.net.UnknownHostException; /** * 获取IP方法 @@ -43,106 +41,6 @@ public class IpUtils { return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : getMultistageReverseProxyIp(ip); } - /** - * 将IPv4地址转换成字节 - * - * @param text IPv4地址 - * @return byte 字节 - */ - public static byte[] textToNumericFormatV4(String text) { - if (text.length() == 0) { - return null; - } - - byte[] bytes = new byte[4]; - String[] elements = text.split("\\." , -1); - try { - long l; - int i; - switch (elements.length) { - case 1: - l = Long.parseLong(elements[0]); - if ((l < 0L) || (l > 4294967295L)) { - return null; - } - bytes[0] = (byte) (int) (l >> 24 & 0xFF); - bytes[1] = (byte) (int) ((l & 0xFFFFFF) >> 16 & 0xFF); - bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); - bytes[3] = (byte) (int) (l & 0xFF); - break; - case 2: - l = Integer.parseInt(elements[0]); - if ((l < 0L) || (l > 255L)) { - return null; - } - bytes[0] = (byte) (int) (l & 0xFF); - l = Integer.parseInt(elements[1]); - if ((l < 0L) || (l > 16777215L)) { - return null; - } - bytes[1] = (byte) (int) (l >> 16 & 0xFF); - bytes[2] = (byte) (int) ((l & 0xFFFF) >> 8 & 0xFF); - bytes[3] = (byte) (int) (l & 0xFF); - break; - case 3: - for (i = 0; i < 2; ++i) { - l = Integer.parseInt(elements[i]); - if ((l < 0L) || (l > 255L)) { - return null; - } - bytes[i] = (byte) (int) (l & 0xFF); - } - l = Integer.parseInt(elements[2]); - if ((l < 0L) || (l > 65535L)) { - return null; - } - bytes[2] = (byte) (int) (l >> 8 & 0xFF); - bytes[3] = (byte) (int) (l & 0xFF); - break; - case 4: - for (i = 0; i < 4; ++i) { - l = Integer.parseInt(elements[i]); - if ((l < 0L) || (l > 255L)) { - return null; - } - bytes[i] = (byte) (int) (l & 0xFF); - } - break; - default: - return null; - } - } catch (NumberFormatException e) { - return null; - } - return bytes; - } - - /** - * 获取IP地址 - * - * @return 本地IP地址 - */ - public static String getHostIp() { - try { - return InetAddress.getLocalHost().getHostAddress(); - } catch (UnknownHostException e) { - } - return "127.0.0.1"; - } - - /** - * 获取主机名 - * - * @return 本地主机名 - */ - public static String getHostName() { - try { - return InetAddress.getLocalHost().getHostName(); - } catch (UnknownHostException e) { - } - return "未知"; - } - /** * 从多级反向代理中获得第一个非unknown IP地址 * @@ -154,7 +52,7 @@ public class IpUtils { if (ip != null && ip.indexOf(",") > 0) { final String[] ips = ip.trim().split(","); for (String subIp : ips) { - if (false == isUnknown(subIp)) { + if (!isUnknown(subIp)) { ip = subIp; break; } diff --git a/src/main/java/com/ycwl/basic/utils/JwtAnalysisUtil.java b/src/main/java/com/ycwl/basic/utils/JwtAnalysisUtil.java index 9dcc59d..c612e45 100644 --- a/src/main/java/com/ycwl/basic/utils/JwtAnalysisUtil.java +++ b/src/main/java/com/ycwl/basic/utils/JwtAnalysisUtil.java @@ -10,7 +10,6 @@ import io.jsonwebtoken.SignatureAlgorithm; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; -import java.util.Iterator; import java.util.Map; /** @@ -48,9 +47,8 @@ public class JwtAnalysisUtil { */ public static JwtInfo getInfoFromToken(String token, byte[] pubKey) throws Exception { Claims body = (Claims) RsaKeyUtil.parserToken(token, pubKey).getBody(); - Iterator var3 = body.entrySet().iterator(); - while (var3.hasNext()) { - Map.Entry entry = (Map.Entry) var3.next(); + for (Map.Entry stringObjectEntry : body.entrySet()) { + Map.Entry entry = stringObjectEntry; if (!"sub".equals(entry.getKey()) && !"userId".equals(entry.getKey()) && !"phone".equals(entry.getKey()) @@ -59,7 +57,7 @@ public class JwtAnalysisUtil { && !"name".equals(entry.getKey()) && !"roleName".equals(entry.getKey()) && !"scenicId".equals(entry.getKey()) - && !"expire".equals(entry.getKey())); + && !"expire".equals(entry.getKey())) ; } // convert diff --git a/src/main/java/com/ycwl/basic/utils/RsaKeyUtil.java b/src/main/java/com/ycwl/basic/utils/RsaKeyUtil.java index bdfa4ef..199e66f 100644 --- a/src/main/java/com/ycwl/basic/utils/RsaKeyUtil.java +++ b/src/main/java/com/ycwl/basic/utils/RsaKeyUtil.java @@ -1,5 +1,6 @@ package com.ycwl.basic.utils; +import cn.hutool.core.codec.Base64; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jws; import io.jsonwebtoken.Jwts; @@ -8,14 +9,13 @@ import java.io.IOException; import java.security.*; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; -import java.util.Base64; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; /** * @author yangchen */ -@SuppressWarnings("ALL") public class RsaKeyUtil { public RsaKeyUtil() { @@ -38,18 +38,18 @@ public class RsaKeyUtil { KeyPair keyPair; byte[] publicKeyBytes = (keyPair = keyPairGenerator.genKeyPair()).getPublic().getEncoded(); byte[] privateKeyBytes = keyPair.getPrivate().getEncoded(); - HashMap map; - (map = new HashMap()).put("pub", publicKeyBytes); + HashMap map = new HashMap<>(); + map.put("pub", publicKeyBytes); map.put("pri", privateKeyBytes); return map; } public static String toHexString(byte[] b) { - return Base64.getEncoder().encodeToString(b); + return Base64.encode(b); } - public static final byte[] toBytes(String s) throws IOException { - return Base64.getDecoder().decode(s); + public static byte[] toBytes(String s) throws IOException { + return Base64.decode(s); } public static Jws parserToken(String token, byte[] pubKey) throws Exception { @@ -67,7 +67,7 @@ public class RsaKeyUtil { SecureRandom secureRandom = new SecureRandom("123".getBytes()); keyPairGenerator.initialize(1024, secureRandom); KeyPair keyPair = keyPairGenerator.genKeyPair(); - System.out.println(keyPair.getPublic().getEncoded()); + System.out.println(Arrays.toString(keyPair.getPublic().getEncoded())); System.out.println("===="); diff --git a/src/main/java/com/ycwl/basic/utils/SnowFlakeUtil.java b/src/main/java/com/ycwl/basic/utils/SnowFlakeUtil.java index c0f907b..70c06b9 100644 --- a/src/main/java/com/ycwl/basic/utils/SnowFlakeUtil.java +++ b/src/main/java/com/ycwl/basic/utils/SnowFlakeUtil.java @@ -99,7 +99,6 @@ public class SnowFlakeUtil { public static long convert(UniqueId uniqueId) { long result = 0; try { - result = 0L; result |= uniqueId.getSequence();