From a6e13da602456254f06a2ef3694e0c0077a612e3 Mon Sep 17 00:00:00 2001
From: e7c_corp <527455294@qq.com>
Date: Mon, 26 Feb 2024 15:00:50 +0000
Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9=E6=9C=89=E4=BA=9B?=
 =?UTF-8?q?21jdk=20getFirst=20=E4=BC=9A=E6=89=BE=E4=B8=8D=E5=88=B0?=
 =?UTF-8?q?=E7=AC=A6=E5=90=88=E7=9A=84=E9=94=99=E8=AF=AF=20=E5=85=BC?=
 =?UTF-8?q?=E5=AE=B9=E6=9C=89=E4=BA=9B21jdk=20getFirst=20=E4=BC=9A?=
 =?UTF-8?q?=E6=89=BE=E4=B8=8D=E5=88=B0=E7=AC=A6=E5=90=88=E7=9A=84=E9=94=99?=
 =?UTF-8?q?=E8=AF=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../module/crm/service/permission/CrmPermissionServiceImpl.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionServiceImpl.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionServiceImpl.java
index 7191df880..6fa90746b 100644
--- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionServiceImpl.java
+++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/service/permission/CrmPermissionServiceImpl.java
@@ -170,7 +170,7 @@ public class CrmPermissionServiceImpl implements CrmPermissionService {
             throw exception(CRM_PERMISSION_DELETE_FAIL);
         }
         // 校验操作人是否为负责人
-        CrmPermissionDO permission = permissionMapper.selectByBizIdAndUserId(permissions.getFirst().getBizId(), userId);
+        CrmPermissionDO permission = permissionMapper.selectByBizIdAndUserId(permissions.get(0).getBizId(), userId);
         if (permission == null) {
             throw exception(CRM_PERMISSION_DELETE_DENIED);
         }

From d134bfc4a6133c4f5d0af89d808dbe617511d9ff Mon Sep 17 00:00:00 2001
From: YunaiV <zhijiantianya@gmail.com>
Date: Tue, 27 Feb 2024 17:15:55 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E2=9C=A8=20=E8=BF=9B=E4=B8=80=E6=AD=A5?=
 =?UTF-8?q?=E5=90=8C=E6=AD=A5=20boot=20=E5=92=8C=20cloud=20=E4=BB=A3?=
 =?UTF-8?q?=E7=A0=81=EF=BC=8C=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99=E6=97=A0?=
 =?UTF-8?q?=E7=94=A8=E7=9A=84=E7=B1=BB?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../cn/iocoder/yudao/framework/ip/core/utils/AreaUtils.java   | 4 ++--
 .../cn/iocoder/yudao/framework/ip/core/utils/IPUtils.java     | 4 ++--
 .../iocoder/yudao/framework/ip/core/utils/AreaUtilsTest.java  | 2 +-
 .../crm/controller/admin/customer/CrmCustomerController.java  | 2 +-
 .../erp/controller/admin/stock/ErpWarehouseController.java    | 2 +-
 .../admin/stock/vo/warehouse/ErpWarehouseSaveReqVO.java       | 2 +-
 .../yudao/module/erp/service/stock/ErpWarehouseService.java   | 2 +-
 .../module/erp/service/stock/ErpWarehouseServiceImpl.java     | 3 +--
 .../module/system/controller/admin/ip/AreaController.java     | 2 +-
 .../module/system/controller/app/ip/AppAreaController.java    | 2 +-
 10 files changed, 12 insertions(+), 13 deletions(-)

diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtils.java b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtils.java
index 99a1ac994..8e27a31ac 100644
--- a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtils.java
+++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtils.java
@@ -71,7 +71,7 @@ public class AreaUtils {
      * @param id 区域编号
      * @return 区域
      */
-    public static Area parseArea(Integer id) {
+    public static Area getArea(Integer id) {
         return areas.get(id);
     }
 
@@ -193,7 +193,7 @@ public class AreaUtils {
      */
     public static Integer getParentIdByType(Integer id, @NonNull AreaTypeEnum type) {
         for (int i = 0; i < Byte.MAX_VALUE; i++) {
-            Area area = AreaUtils.parseArea(id);
+            Area area = AreaUtils.getArea(id);
             if (area == null) {
                 return null;
             }
diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/IPUtils.java b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/IPUtils.java
index 4701168cd..f74f84864 100644
--- a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/IPUtils.java
+++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/main/java/cn/iocoder/yudao/framework/ip/core/utils/IPUtils.java
@@ -72,7 +72,7 @@ public class IPUtils {
      * @return 地区
      */
     public static Area getArea(String ip) {
-        return AreaUtils.parseArea(getAreaId(ip));
+        return AreaUtils.getArea(getAreaId(ip));
     }
 
     /**
@@ -82,6 +82,6 @@ public class IPUtils {
      * @return 地区
      */
     public static Area getArea(long ip) {
-        return AreaUtils.parseArea(getAreaId(ip));
+        return AreaUtils.getArea(getAreaId(ip));
     }
 }
diff --git a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/test/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtilsTest.java b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/test/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtilsTest.java
index 704d4415d..8f5646b33 100644
--- a/yudao-framework/yudao-spring-boot-starter-biz-ip/src/test/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtilsTest.java
+++ b/yudao-framework/yudao-spring-boot-starter-biz-ip/src/test/java/cn/iocoder/yudao/framework/ip/core/utils/AreaUtilsTest.java
@@ -17,7 +17,7 @@ public class AreaUtilsTest {
     @Test
     public void testGetArea() {
         // 调用:北京
-        Area area = AreaUtils.parseArea(110100);
+        Area area = AreaUtils.getArea(110100);
         // 断言
         assertEquals(area.getId(), 110100);
         assertEquals(area.getName(), "北京市");
diff --git a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java
index 142607421..36b3ee813 100644
--- a/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java
+++ b/yudao-module-crm/yudao-module-crm-biz/src/main/java/cn/iocoder/yudao/module/crm/controller/admin/customer/CrmCustomerController.java
@@ -272,7 +272,7 @@ public class CrmCustomerController {
         List<KeyValue<ExcelColumn, List<String>>> selectMap = new ArrayList<>();
         // 获取地区下拉数据
         // TODO @puhui999:嘿嘿,这里改成省份、城市、区域,三个选项,难度大么?
-        Area area = AreaUtils.parseArea(Area.ID_CHINA);
+        Area area = AreaUtils.getArea(Area.ID_CHINA);
         selectMap.add(new KeyValue<>(ExcelColumn.G, AreaUtils.getAreaNodePathList(area.getChildren())));
         // 获取客户所属行业
         List<String> customerIndustries = dictDataApi.getDictDataLabelList(CRM_CUSTOMER_INDUSTRY);
diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpWarehouseController.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpWarehouseController.java
index 744f439f5..6b970bcb9 100644
--- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpWarehouseController.java
+++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/ErpWarehouseController.java
@@ -7,7 +7,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
-import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.ErpWarehouseSaveReqVO;
+import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.warehouse.ErpWarehouseSaveReqVO;
 import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.warehouse.ErpWarehousePageReqVO;
 import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.warehouse.ErpWarehouseRespVO;
 import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpWarehouseDO;
diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/warehouse/ErpWarehouseSaveReqVO.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/warehouse/ErpWarehouseSaveReqVO.java
index 8a6f1ce78..7bc956d6f 100644
--- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/warehouse/ErpWarehouseSaveReqVO.java
+++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/stock/vo/warehouse/ErpWarehouseSaveReqVO.java
@@ -1,4 +1,4 @@
-package cn.iocoder.yudao.module.erp.controller.admin.stock.vo;
+package cn.iocoder.yudao.module.erp.controller.admin.stock.vo.warehouse;
 
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.validation.InEnum;
diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpWarehouseService.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpWarehouseService.java
index 872a698de..76f5ca23e 100644
--- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpWarehouseService.java
+++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpWarehouseService.java
@@ -1,7 +1,7 @@
 package cn.iocoder.yudao.module.erp.service.stock;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.ErpWarehouseSaveReqVO;
+import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.warehouse.ErpWarehouseSaveReqVO;
 import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.warehouse.ErpWarehousePageReqVO;
 import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpWarehouseDO;
 import jakarta.validation.Valid;
diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpWarehouseServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpWarehouseServiceImpl.java
index fb4829146..e06221c52 100644
--- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpWarehouseServiceImpl.java
+++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/stock/ErpWarehouseServiceImpl.java
@@ -4,9 +4,8 @@ import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.ErpWarehouseSaveReqVO;
+import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.warehouse.ErpWarehouseSaveReqVO;
 import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.warehouse.ErpWarehousePageReqVO;
-import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO;
 import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpWarehouseDO;
 import cn.iocoder.yudao.module.erp.dal.mysql.stock.ErpWarehouseMapper;
 import jakarta.annotation.Resource;
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.java
index b39e0a06d..b2f95d69f 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/ip/AreaController.java
@@ -29,7 +29,7 @@ public class AreaController {
     @GetMapping("/tree")
     @Operation(summary = "获得地区树")
     public CommonResult<List<AreaNodeRespVO>> getAreaTree() {
-        Area area = AreaUtils.parseArea(Area.ID_CHINA);
+        Area area = AreaUtils.getArea(Area.ID_CHINA);
         Assert.notNull(area, "获取不到中国");
         return success(BeanUtils.toBean(area.getChildren(), AreaNodeRespVO.class));
     }
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/AppAreaController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/AppAreaController.java
index 759b72c72..54b0e87db 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/AppAreaController.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/ip/AppAreaController.java
@@ -26,7 +26,7 @@ public class AppAreaController {
     @GetMapping("/tree")
     @Operation(summary = "获得地区树")
     public CommonResult<List<AppAreaNodeRespVO>> getAreaTree() {
-        Area area = AreaUtils.parseArea(Area.ID_CHINA);
+        Area area = AreaUtils.getArea(Area.ID_CHINA);
         Assert.notNull(area, "获取不到中国");
         return success(BeanUtils.toBean(area.getChildren(), AppAreaNodeRespVO.class));
     }

From 067ff6cc4dd8ce680cc38ba9da811ed93c289c48 Mon Sep 17 00:00:00 2001
From: YunaiV <zhijiantianya@gmail.com>
Date: Tue, 27 Feb 2024 21:01:02 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E2=9C=A8=20bugfix=20master=20=E7=9A=84?=
 =?UTF-8?q?=E4=B8=80=E4=BA=9B=20pr?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../product/dal/mysql/comment/ProductCommentMapper.java  | 9 ++++-----
 .../controller/admin/permission/MenuController.java      | 2 +-
 .../controller/admin/permission/vo/role/RoleRespVO.java  | 1 +
 .../yudao/module/system/dal/redis/RedisKeyConstants.java | 4 ++--
 4 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/comment/ProductCommentMapper.java b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/comment/ProductCommentMapper.java
index ca04c507c..47421d315 100644
--- a/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/comment/ProductCommentMapper.java
+++ b/yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/dal/mysql/comment/ProductCommentMapper.java
@@ -25,19 +25,18 @@ public interface ProductCommentMapper extends BaseMapperX<ProductCommentDO> {
     }
 
     static void appendTabQuery(LambdaQueryWrapperX<ProductCommentDO> queryWrapper, Integer type) {
-        LambdaQueryWrapperX<ProductCommentDO> queryWrapperX = new LambdaQueryWrapperX<>();
         // 构建好评查询语句:好评计算 总评 >= 4
         if (ObjectUtil.equal(type, AppCommentPageReqVO.GOOD_COMMENT)) {
-            queryWrapperX.ge(ProductCommentDO::getScores, 4);
+            queryWrapper.ge(ProductCommentDO::getScores, 4);
         }
         // 构建中评查询语句:中评计算 总评 >= 3 且 总评 < 4
         if (ObjectUtil.equal(type, AppCommentPageReqVO.MEDIOCRE_COMMENT)) {
-            queryWrapperX.ge(ProductCommentDO::getScores, 3);
-            queryWrapperX.lt(ProductCommentDO::getScores, 4);
+            queryWrapper.ge(ProductCommentDO::getScores, 3);
+            queryWrapper.lt(ProductCommentDO::getScores, 4);
         }
         // 构建差评查询语句:差评计算 总评 < 3
         if (ObjectUtil.equal(type, AppCommentPageReqVO.NEGATIVE_COMMENT)) {
-            queryWrapperX.lt(ProductCommentDO::getScores, 3);
+            queryWrapper.lt(ProductCommentDO::getScores, 3);
         }
     }
 
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.java
index d3668661c..104141751 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/MenuController.java
@@ -50,7 +50,7 @@ public class MenuController {
 
     @DeleteMapping("/delete")
     @Operation(summary = "删除菜单")
-    @Parameter(name = "id", description = "角色编号", required= true, example = "1024")
+    @Parameter(name = "id", description = "菜单编号", required= true, example = "1024")
     @PreAuthorize("@ss.hasPermission('system:menu:delete')")
     public CommonResult<Boolean> deleteMenu(@RequestParam("id") Long id) {
         menuService.deleteMenu(id);
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java
index 05be5f3ed..f249406fa 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/permission/vo/role/RoleRespVO.java
@@ -25,6 +25,7 @@ public class RoleRespVO {
     @ExcelProperty("角色名称")
     private String name;
 
+    @Schema(description = "角色标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "admin")
     @NotBlank(message = "角色标志不能为空")
     @ExcelProperty("角色标志")
     private String code;
diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java
index cda6dab4b..4964a2be2 100644
--- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java
+++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/redis/RedisKeyConstants.java
@@ -52,7 +52,7 @@ public interface RedisKeyConstants {
     /**
      * OAuth2 客户端的缓存
      * <p>
-     * KEY 格式:user:{id}
+     * KEY 格式:oauth_client:{id}
      * VALUE 数据类型:String 客户端信息
      */
     String OAUTH_CLIENT = "oauth_client";
@@ -78,7 +78,7 @@ public interface RedisKeyConstants {
     /**
      * 邮件账号的缓存
      * <p>
-     * KEY 格式:sms_template:{id}
+     * KEY 格式:mail_account:{id}
      * VALUE 数据格式:String 账号信息
      */
     String MAIL_ACCOUNT = "mail_account";