From 0514d3df31c6644a286e2a28f5a57e735cdc6462 Mon Sep 17 00:00:00 2001 From: qiu <1026718369@qq.com> Date: Wed, 15 Oct 2025 09:47:07 +0800 Subject: [PATCH 1/5] =?UTF-8?q?refactor(mall-user-adapter-in-web,=20mall-u?= =?UTF-8?q?ser-domain):=20=E7=A7=BB=E5=8A=A8=E7=B1=BB=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - domain层的model包中,为seller相关的聚合根创建一个包目录,并将已写好的聚合根移动进去,同步修改相关的Import BREAKING CHANGE: 无 [skip ci] --- .../user/adapter/in/web/controller/SellerController.java | 5 ++--- .../adapter/in/web/controller/SellerMenuController.java | 2 +- .../user/adapter/in/web/dto/SellerGroupResponseDto.java | 2 +- .../mall/user/adapter/in/web/dto/SellerResponseDto.java | 4 ++-- .../adapter/out/persistence/converter/SellerConverter.java | 2 +- .../out/persistence/converter/SellerGroupConverter.java | 2 +- .../out/persistence/converter/SellerMenuConverter.java | 2 +- .../persistence/repository/SellerMenuRepositoryImpl.java | 3 +-- .../out/persistence/repository/SellerRepositoryImpl.java | 7 +------ .../user/application/service/GetSellerMenuService.java | 2 +- .../mall/user/application/service/GetSellersService.java | 2 +- .../mall/user/domain/model/{ => seller}/Seller.java | 2 +- .../mall/user/domain/model/{ => seller}/SellerGroup.java | 2 +- .../mall/user/domain/model/{ => seller}/SellerMenu.java | 2 +- 14 files changed, 16 insertions(+), 23 deletions(-) rename mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/{ => seller}/Seller.java (96%) rename mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/{ => seller}/SellerGroup.java (86%) rename mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/{ => seller}/SellerMenu.java (93%) diff --git a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerController.java b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerController.java index 6f3f5ba..5be5b4e 100644 --- a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerController.java +++ b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerController.java @@ -3,8 +3,8 @@ package com.wuyunbin.mall.user.adapter.in.web.controller; import com.wuyunbin.mall.user.adapter.in.web.dto.SellerResponseDto; import com.wuyunbin.mall.user.common.util.JwtUtil; import com.wuyunbin.mall.user.common.util.SellerTokenHelper; -import com.wuyunbin.mall.user.domain.model.Seller; -import com.wuyunbin.mall.user.domain.model.SellerGroup; +import com.wuyunbin.mall.user.domain.model.seller.Seller; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroup; import com.wuyunbin.mall.user.domain.port.in.GetSellerGroupUseCase; import com.wuyunbin.mall.user.domain.port.in.GetSellersUseCase; import jakarta.annotation.Resource; @@ -13,7 +13,6 @@ import lombok.extern.slf4j.Slf4j; import com.wuyunbin.mall.user.common.Result; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.util.List; diff --git a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerMenuController.java b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerMenuController.java index d9695cf..e78380d 100644 --- a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerMenuController.java +++ b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerMenuController.java @@ -1,7 +1,7 @@ package com.wuyunbin.mall.user.adapter.in.web.controller; import com.wuyunbin.mall.user.common.Result; -import com.wuyunbin.mall.user.domain.model.SellerMenu; +import com.wuyunbin.mall.user.domain.model.seller.SellerMenu; import com.wuyunbin.mall.user.domain.port.in.GetSellerMenuUseCase; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; diff --git a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/dto/SellerGroupResponseDto.java b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/dto/SellerGroupResponseDto.java index 6e7d4ba..43f28d9 100644 --- a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/dto/SellerGroupResponseDto.java +++ b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/dto/SellerGroupResponseDto.java @@ -1,6 +1,6 @@ package com.wuyunbin.mall.user.adapter.in.web.dto; -import com.wuyunbin.mall.user.domain.model.SellerGroup; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroup; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/dto/SellerResponseDto.java b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/dto/SellerResponseDto.java index c1430e4..8edada5 100644 --- a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/dto/SellerResponseDto.java +++ b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/dto/SellerResponseDto.java @@ -1,7 +1,7 @@ package com.wuyunbin.mall.user.adapter.in.web.dto; -import com.wuyunbin.mall.user.domain.model.Seller; -import com.wuyunbin.mall.user.domain.model.SellerGroup; +import com.wuyunbin.mall.user.domain.model.seller.Seller; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroup; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerConverter.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerConverter.java index 820a12e..f8dcb8d 100644 --- a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerConverter.java +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerConverter.java @@ -1,7 +1,7 @@ package com.wuyunbin.mall.user.adapter.out.persistence.converter; import com.wuyunbin.mall.user.adapter.out.persistence.entity.SellerEntity; -import com.wuyunbin.mall.user.domain.model.Seller; +import com.wuyunbin.mall.user.domain.model.seller.Seller; /** * @author qiu diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerGroupConverter.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerGroupConverter.java index 6774d99..2e9b4d2 100644 --- a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerGroupConverter.java +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerGroupConverter.java @@ -1,7 +1,7 @@ package com.wuyunbin.mall.user.adapter.out.persistence.converter; import com.wuyunbin.mall.user.adapter.out.persistence.entity.SellerGroupEntity; -import com.wuyunbin.mall.user.domain.model.SellerGroup; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroup; /** * @author qiu diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerMenuConverter.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerMenuConverter.java index 2433f3d..cc5e356 100644 --- a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerMenuConverter.java +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerMenuConverter.java @@ -2,7 +2,7 @@ package com.wuyunbin.mall.user.adapter.out.persistence.converter; import com.wuyunbin.mall.user.adapter.out.persistence.entity.SellerMenuEntity; -import com.wuyunbin.mall.user.domain.model.SellerMenu; +import com.wuyunbin.mall.user.domain.model.seller.SellerMenu; /** * @author qiu diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerMenuRepositoryImpl.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerMenuRepositoryImpl.java index 674c167..1fc042b 100644 --- a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerMenuRepositoryImpl.java +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerMenuRepositoryImpl.java @@ -3,7 +3,7 @@ package com.wuyunbin.mall.user.adapter.out.persistence.repository; import com.wuyunbin.mall.user.adapter.out.persistence.converter.SellerMenuConverter; import com.wuyunbin.mall.user.adapter.out.persistence.entity.SellerMenuEntity; import com.wuyunbin.mall.user.adapter.out.persistence.mapper.SellerMenuMapper; -import com.wuyunbin.mall.user.domain.model.SellerMenu; +import com.wuyunbin.mall.user.domain.model.seller.SellerMenu; import com.wuyunbin.mall.user.domain.port.out.GetSellerMenuPort; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -11,7 +11,6 @@ import org.springframework.stereotype.Repository; import java.util.ArrayList; import java.util.List; -import java.util.Map; /** * @author qiu diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerRepositoryImpl.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerRepositoryImpl.java index ceadfb2..fcd44d8 100644 --- a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerRepositoryImpl.java +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerRepositoryImpl.java @@ -1,14 +1,9 @@ package com.wuyunbin.mall.user.adapter.out.persistence.repository; import com.wuyunbin.mall.user.adapter.out.persistence.converter.SellerConverter; -import com.wuyunbin.mall.user.adapter.out.persistence.converter.SellerGroupConverter; import com.wuyunbin.mall.user.adapter.out.persistence.entity.SellerEntity; -import com.wuyunbin.mall.user.adapter.out.persistence.entity.SellerGroupEntity; -import com.wuyunbin.mall.user.adapter.out.persistence.mapper.SellerGroupMapper; import com.wuyunbin.mall.user.adapter.out.persistence.mapper.SellerMapper; -import com.wuyunbin.mall.user.domain.model.Seller; -import com.wuyunbin.mall.user.domain.model.SellerGroup; -import com.wuyunbin.mall.user.domain.port.out.GetSellerGroupPort; +import com.wuyunbin.mall.user.domain.model.seller.Seller; import com.wuyunbin.mall.user.domain.port.out.GetSellersPort; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; diff --git a/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerMenuService.java b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerMenuService.java index 52b7832..afee54d 100644 --- a/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerMenuService.java +++ b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerMenuService.java @@ -1,6 +1,6 @@ package com.wuyunbin.mall.user.application.service; -import com.wuyunbin.mall.user.domain.model.SellerMenu; +import com.wuyunbin.mall.user.domain.model.seller.SellerMenu; import com.wuyunbin.mall.user.domain.port.in.GetSellerMenuUseCase; import com.wuyunbin.mall.user.domain.port.out.GetSellerMenuPort; import jakarta.annotation.Resource; diff --git a/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellersService.java b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellersService.java index 715f53e..a04f399 100644 --- a/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellersService.java +++ b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellersService.java @@ -1,6 +1,6 @@ package com.wuyunbin.mall.user.application.service; -import com.wuyunbin.mall.user.domain.model.Seller; +import com.wuyunbin.mall.user.domain.model.seller.Seller; import com.wuyunbin.mall.user.domain.port.in.GetSellersUseCase; import com.wuyunbin.mall.user.domain.port.out.GetSellersPort; import jakarta.annotation.Resource; diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/Seller.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/Seller.java similarity index 96% rename from mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/Seller.java rename to mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/Seller.java index af4d4b3..814c56d 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/Seller.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/Seller.java @@ -1,4 +1,4 @@ -package com.wuyunbin.mall.user.domain.model; +package com.wuyunbin.mall.user.domain.model.seller; import lombok.Getter; import lombok.Setter; diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/SellerGroup.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerGroup.java similarity index 86% rename from mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/SellerGroup.java rename to mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerGroup.java index 4aaa565..f3976dd 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/SellerGroup.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerGroup.java @@ -1,4 +1,4 @@ -package com.wuyunbin.mall.user.domain.model; +package com.wuyunbin.mall.user.domain.model.seller; import lombok.Getter; import lombok.Setter; diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/SellerMenu.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerMenu.java similarity index 93% rename from mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/SellerMenu.java rename to mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerMenu.java index efed170..5507401 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/SellerMenu.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerMenu.java @@ -1,4 +1,4 @@ -package com.wuyunbin.mall.user.domain.model; +package com.wuyunbin.mall.user.domain.model.seller; import lombok.Getter; import lombok.Setter; -- Gitee From 1ca9e6cd94e5114bc1894c38954e4149d0845d4d Mon Sep 17 00:00:00 2001 From: qiu <1026718369@qq.com> Date: Wed, 15 Oct 2025 10:26:15 +0800 Subject: [PATCH 2/5] =?UTF-8?q?refactor(mall-user-domain):=20=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=B1=BB=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - domain层的model包中,为seller相关的聚合根创建一个包目录,并将已写好的聚合根移动进去,同步修改相关的Import BREAKING CHANGE: 无 [skip ci] --- .../mall/user/domain/port/in/GetSellerMenuUseCase.java | 2 +- .../wuyunbin/mall/user/domain/port/in/GetSellersUseCase.java | 2 +- .../wuyunbin/mall/user/domain/port/out/GetSellerMenuPort.java | 3 +-- .../com/wuyunbin/mall/user/domain/port/out/GetSellersPort.java | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerMenuUseCase.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerMenuUseCase.java index 0edb5e7..4c9d9d4 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerMenuUseCase.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerMenuUseCase.java @@ -1,6 +1,6 @@ package com.wuyunbin.mall.user.domain.port.in; -import com.wuyunbin.mall.user.domain.model.SellerMenu; +import com.wuyunbin.mall.user.domain.model.seller.SellerMenu; import java.util.List; import java.util.Map; diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellersUseCase.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellersUseCase.java index 4c1ee66..421f04b 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellersUseCase.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellersUseCase.java @@ -1,6 +1,6 @@ package com.wuyunbin.mall.user.domain.port.in; -import com.wuyunbin.mall.user.domain.model.Seller; +import com.wuyunbin.mall.user.domain.model.seller.Seller; import java.util.List; diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerMenuPort.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerMenuPort.java index 20e5077..d6320bf 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerMenuPort.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerMenuPort.java @@ -1,9 +1,8 @@ package com.wuyunbin.mall.user.domain.port.out; -import com.wuyunbin.mall.user.domain.model.SellerMenu; +import com.wuyunbin.mall.user.domain.model.seller.SellerMenu; import java.util.List; -import java.util.Map; /** * @author qiu diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellersPort.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellersPort.java index 6cfc99c..afa109c 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellersPort.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellersPort.java @@ -1,6 +1,6 @@ package com.wuyunbin.mall.user.domain.port.out; -import com.wuyunbin.mall.user.domain.model.Seller; +import com.wuyunbin.mall.user.domain.model.seller.Seller; import java.util.List; -- Gitee From 3d7adade6c761e72f4e5546661a19f61f64b2315 Mon Sep 17 00:00:00 2001 From: qiu <1026718369@qq.com> Date: Wed, 15 Oct 2025 10:31:03 +0800 Subject: [PATCH 3/5] =?UTF-8?q?refactor(mall-user-adapter-in-web,=20mall-u?= =?UTF-8?q?ser-domain,=20mall-user-application):=20=E9=87=8D=E5=86=99/sell?= =?UTF-8?q?er=5Fgroup/save=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重写/seller_group/save接口相关所有代码 - 新增工具类JsonHelper,用于将Json字符串转化为常见数据类型类 BREAKING CHANGE: 无 [skip ci] --- .../web/controller/SellerGroupController.java | 36 +++++- .../converter/SellerGroupMenuConverter.java | 38 ++++++ .../entity/SellerGroupMenuEntity.java | 38 ++++++ .../mapper/SellerGroupMenuMapper.java | 22 ++++ .../SellerGroupMenuRepositoryImpl.java | 46 +++++++ .../repository/SellerGroupRepositoryImpl.java | 22 +++- .../service/GetSellerGroupService.java | 52 +++++++- .../mall/user/common/util/JsonHelper.java | 113 ++++++++++++++++++ .../domain/model/seller/SellerGroupMenu.java | 28 +++++ .../domain/port/in/GetSellerGroupUseCase.java | 10 +- .../port/out/GetSellerGroupMenuPort.java | 25 ++++ .../domain/port/out/GetSellerGroupPort.java | 14 ++- 12 files changed, 434 insertions(+), 10 deletions(-) create mode 100644 mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerGroupMenuConverter.java create mode 100644 mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/entity/SellerGroupMenuEntity.java create mode 100644 mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/mapper/SellerGroupMenuMapper.java create mode 100644 mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupMenuRepositoryImpl.java create mode 100644 mall-user-common/src/main/java/com/wuyunbin/mall/user/common/util/JsonHelper.java create mode 100644 mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerGroupMenu.java create mode 100644 mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupMenuPort.java diff --git a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java index 32ec20c..ea154aa 100644 --- a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java +++ b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java @@ -1,20 +1,19 @@ package com.wuyunbin.mall.user.adapter.in.web.controller; +import com.fasterxml.jackson.core.type.TypeReference; import com.wuyunbin.mall.user.adapter.in.web.dto.SellerGroupResponseDto; import com.wuyunbin.mall.user.common.enums.Resp; +import com.wuyunbin.mall.user.common.util.JsonHelper; import com.wuyunbin.mall.user.common.util.JwtUtil; import com.wuyunbin.mall.user.common.util.SellerTokenHelper; import com.wuyunbin.mall.user.common.Result; -import com.wuyunbin.mall.user.domain.model.SellerGroup; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroup; import com.wuyunbin.mall.user.domain.port.in.GetSellerGroupUseCase; import com.wuyunbin.mall.user.domain.port.in.GetSellerMenuUseCase; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Objects; @@ -81,4 +80,31 @@ public class SellerGroupController { return Result.success(sellerGroupResponseDto); } + /** + * 商家账号组保存 + * @param groupId + * @param groupName + * @param groupPermission + * @return + */ + @PostMapping("save") + public Result saveJson(@RequestParam(name = "groupId", defaultValue = "0") int groupId, + @RequestParam("groupName") String groupName, + @RequestParam("groupPermission") String groupPermission, + HttpServletRequest request){ + log.info("保存商家账号组: groupId: {}, groupName: {}, groupPermission: {}", groupId, groupName, groupPermission); + + Integer currentStoreId = SellerTokenHelper.getCurrentStoreId(request, jwtUtil); + + try { + List menuIdList = JsonHelper.toGenericObject(groupPermission, new TypeReference<>() {}); + + getSellerGroupUseCase.saveSellerGroup(groupId, groupName, currentStoreId, menuIdList); + return Result.success("url:/seller_group/save"); + } catch (Exception e) { + log.error("保存商家账号组失败: groupId: {}, groupName: {}, groupPermission: {}", groupId, groupName, groupPermission); + return Result.fail(); + } + } + } diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerGroupMenuConverter.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerGroupMenuConverter.java new file mode 100644 index 0000000..f51b190 --- /dev/null +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/converter/SellerGroupMenuConverter.java @@ -0,0 +1,38 @@ +package com.wuyunbin.mall.user.adapter.out.persistence.converter; + +import com.wuyunbin.mall.user.adapter.out.persistence.entity.SellerGroupMenuEntity; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroupMenu; + +/** + * @author qiu + * @date 2025/10/13 + * @description + */ +public class SellerGroupMenuConverter { + + /** + * 将领域模型转换为实体 + * @param sellerGroupMenu + * @return + */ + public static SellerGroupMenuEntity toEntity(SellerGroupMenu sellerGroupMenu) { + SellerGroupMenuEntity entity = new SellerGroupMenuEntity(); + entity.setId(sellerGroupMenu.getId()); + entity.setGroupId(sellerGroupMenu.getGroupId()); + entity.setMenuId(sellerGroupMenu.getMenuId()); + return entity; + } + + /** + * 将实体转换为领域模型 + * @param entity + * @return + */ + public static SellerGroupMenu toDomain(SellerGroupMenuEntity entity) { + SellerGroupMenu sellerGroupMenu = new SellerGroupMenu(); + sellerGroupMenu.setId(entity.getId()); + sellerGroupMenu.setGroupId(entity.getGroupId()); + sellerGroupMenu.setMenuId(entity.getMenuId()); + return sellerGroupMenu; + } +} diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/entity/SellerGroupMenuEntity.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/entity/SellerGroupMenuEntity.java new file mode 100644 index 0000000..0fed0eb --- /dev/null +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/entity/SellerGroupMenuEntity.java @@ -0,0 +1,38 @@ +package com.wuyunbin.mall.user.adapter.out.persistence.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author qiu + * @date 2025/10/13 + * @description + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@TableName("seller_group_menu") +public class SellerGroupMenuEntity { + /** + * 编号 + */ + @TableId(value = "id", type = IdType.AUTO) + private int id; + + /** + * 权限组编号 + */ + @TableField("group_id") + private int groupId; + + /** + * 权限编号 + */ + @TableField("menu_id") + private int menuId; +} diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/mapper/SellerGroupMenuMapper.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/mapper/SellerGroupMenuMapper.java new file mode 100644 index 0000000..3c1d61d --- /dev/null +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/mapper/SellerGroupMenuMapper.java @@ -0,0 +1,22 @@ +package com.wuyunbin.mall.user.adapter.out.persistence.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.wuyunbin.mall.user.adapter.out.persistence.entity.SellerGroupMenuEntity; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +/** + * @author qiu + * @date 2025/10/13 + * @description + */ +public interface SellerGroupMenuMapper extends BaseMapper { + + /** + * 根据账号组编号删除 + * @param groupId + */ + @Delete("delete from seller_group_menu where group_id = #{groupId}") + void delByGroupId(@Param("groupId") int groupId); +} diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupMenuRepositoryImpl.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupMenuRepositoryImpl.java new file mode 100644 index 0000000..e741d0e --- /dev/null +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupMenuRepositoryImpl.java @@ -0,0 +1,46 @@ +package com.wuyunbin.mall.user.adapter.out.persistence.repository; + +import com.wuyunbin.mall.user.adapter.out.persistence.converter.SellerGroupMenuConverter; +import com.wuyunbin.mall.user.adapter.out.persistence.entity.SellerGroupMenuEntity; +import com.wuyunbin.mall.user.adapter.out.persistence.mapper.SellerGroupMenuMapper; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroupMenu; +import com.wuyunbin.mall.user.domain.port.out.GetSellerGroupMenuPort; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * @author qiu + * @date 2025/10/13 + * @description + */ +@Slf4j +@Repository +public class SellerGroupMenuRepositoryImpl implements GetSellerGroupMenuPort { + + @Resource + private SellerGroupMenuMapper sellerGroupMenuMapper; + + /** + * 根据账号组编号删除 + * @param groupId + */ + @Override + public void delByGroupId(int groupId) { + sellerGroupMenuMapper.delByGroupId(groupId); + } + + /** + * 批量保存 + * @param sellerGroupMenuList + */ + @Override + public void saveAll(List sellerGroupMenuList) { + for(SellerGroupMenu sellerGroupMenu : sellerGroupMenuList){ + SellerGroupMenuEntity sellerGroupMenuEntity = SellerGroupMenuConverter.toEntity(sellerGroupMenu); + sellerGroupMenuMapper.insert(sellerGroupMenuEntity); + } + } +} diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupRepositoryImpl.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupRepositoryImpl.java index a5110ff..ca16aeb 100644 --- a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupRepositoryImpl.java +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupRepositoryImpl.java @@ -3,8 +3,7 @@ package com.wuyunbin.mall.user.adapter.out.persistence.repository; import com.wuyunbin.mall.user.adapter.out.persistence.converter.SellerGroupConverter; import com.wuyunbin.mall.user.adapter.out.persistence.entity.SellerGroupEntity; import com.wuyunbin.mall.user.adapter.out.persistence.mapper.SellerGroupMapper; -import com.wuyunbin.mall.user.domain.model.Seller; -import com.wuyunbin.mall.user.domain.model.SellerGroup; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroup; import com.wuyunbin.mall.user.domain.port.out.GetSellerGroupPort; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; @@ -51,4 +50,23 @@ public class SellerGroupRepositoryImpl implements GetSellerGroupPort { SellerGroupEntity sellerGroupEntity = sellerGroupMapper.selectById(groupId); return SellerGroupConverter.toDomain(sellerGroupEntity); } + + /** + * 更新账号组的权限组名称 + * @param sellerGroup + */ + @Override + public void update(SellerGroup sellerGroup) { + SellerGroupEntity sellerGroupEntity = SellerGroupConverter.toEntity(sellerGroup); + sellerGroupMapper.updateById(sellerGroupEntity); + } + + /** + * 添加账号组 + * @param sellerGroup + */ + @Override + public int save(SellerGroup sellerGroup) { + return sellerGroupMapper.insert(SellerGroupConverter.toEntity(sellerGroup)); + } } diff --git a/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerGroupService.java b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerGroupService.java index 3f86063..63aa89b 100644 --- a/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerGroupService.java +++ b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerGroupService.java @@ -1,13 +1,17 @@ package com.wuyunbin.mall.user.application.service; -import com.wuyunbin.mall.user.domain.model.SellerGroup; +import com.wuyunbin.mall.user.common.exception.BusinessException; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroup; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroupMenu; import com.wuyunbin.mall.user.domain.port.in.GetSellerGroupUseCase; +import com.wuyunbin.mall.user.domain.port.out.GetSellerGroupMenuPort; import com.wuyunbin.mall.user.domain.port.out.GetSellerGroupPort; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.List; /** @@ -22,6 +26,9 @@ public class GetSellerGroupService implements GetSellerGroupUseCase { @Resource private GetSellerGroupPort getSellerGroupPort; + @Resource + private GetSellerGroupMenuPort getSellerGroupMenuPort; + /** * 根据店铺编号查找账号组 * @param storeId @@ -61,4 +68,47 @@ public class GetSellerGroupService implements GetSellerGroupUseCase { throw new RuntimeException("根据账号组编号查找账号组失败:" + e.getMessage(),e); } } + + /** + * 添加商家组 + * @param groupId + * @param groupName + * @param storeId + * @param menuIdList + */ + @Override + public void saveSellerGroup(int groupId, String groupName, int storeId, List menuIdList) { + log.info("添加商家组, 权限组编号: {}, 权限组名称: {}, 店铺编号: {}, 菜单编号列表: {}", groupId, groupName, storeId, menuIdList); + + try { + if(groupId > 0){ + SellerGroup sellerGroup = getSellerGroupPort.findById(groupId); + if(sellerGroup.getStoreId() != storeId){ + throw new BusinessException("修改失败"); + } + sellerGroup.setGroupName(groupName); + getSellerGroupPort.update(sellerGroup); + }else { + SellerGroup sellerGroup = new SellerGroup(); + sellerGroup.setStoreId(storeId); + sellerGroup.setGroupName(groupName); + groupId = getSellerGroupPort.save(sellerGroup); + } + + getSellerGroupMenuPort.delByGroupId(groupId); + + List sellerGroupMenuList = new ArrayList<>(); + for (String menuId : menuIdList) { + SellerGroupMenu sellerGroupMenu = new SellerGroupMenu(); + sellerGroupMenu.setGroupId(groupId); + sellerGroupMenu.setMenuId(Integer.parseInt(menuId)); + sellerGroupMenuList.add(sellerGroupMenu); + } + getSellerGroupMenuPort.saveAll(sellerGroupMenuList); + + }catch (Exception e){ + log.error("更新商家组信息失败, 权限组编号: {}, 权限组名称: {}, 店铺编号: {}, 菜单编号列表: {}", groupId, groupName, storeId, menuIdList); + throw new RuntimeException("更新商家组信息失败:" + e.getMessage(),e); + } + } } diff --git a/mall-user-common/src/main/java/com/wuyunbin/mall/user/common/util/JsonHelper.java b/mall-user-common/src/main/java/com/wuyunbin/mall/user/common/util/JsonHelper.java new file mode 100644 index 0000000..2c7aff0 --- /dev/null +++ b/mall-user-common/src/main/java/com/wuyunbin/mall/user/common/util/JsonHelper.java @@ -0,0 +1,113 @@ +package com.wuyunbin.mall.user.common.util; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.TimeZone; + +/** + + * + * JSON帮助类 + * + * @author + * Created 2017/4/17 13:37 + */ +@Slf4j +public class JsonHelper { +// private static final Logger log = Logger.getLogger(JsonHelper.class); + + final static ObjectMapper objectMapper; + + static { + objectMapper = new ObjectMapper(); + objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); + objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8")); + } + + public static ObjectMapper getObjectMapper() { + return objectMapper; + } + + /** + * JSON串转换为Java泛型对象 + * + * @param + * @param jsonString JSON字符串 + * @param tr TypeReference,例如: new TypeReference< List >(){} + * @return List对象列表 + */ + public static T toGenericObject(String jsonString, TypeReference tr) { + + if (jsonString == null || "".equals(jsonString)) { + return null; + } else { + try { + return (T) objectMapper.readValue(jsonString, tr); + } catch (Exception e) { + log.warn(jsonString); + log.warn("json error:" + e.getMessage()); + } + } + return null; + } + + /** + * Json字符串转Java对象 + * + * @param jsonString + * @param c + * @return + */ + public static Object toObject(String jsonString, Class c) { + + if (jsonString == null || "".equals(jsonString)) { + return ""; + } else { + try { + return objectMapper.readValue(jsonString, c); + } catch (Exception e) { + log.warn("json error:" + e.getMessage()); + } + } + return null; + } + + /** + * Java对象转Json字符串 + * + * @param object Java对象,可以是对象,数组,List,Map等 + * @return json 字符串 + */ + public static String toJson(Object object) { + String jsonString = ""; + try { + jsonString = objectMapper.writeValueAsString(object); + } catch (Exception e) { + log.warn("json error:" + e.getMessage()); + } + return jsonString; + } + + /** + * Json字符串转JsonNode + * @param jsonString + * @return + */ + public static JsonNode toJsonNode(String jsonString) { + try { + return objectMapper.readTree(jsonString); + } catch (IOException e) { + e.printStackTrace(); + log.warn("json error:" + e.getMessage()); + } + return null; + } + +} diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerGroupMenu.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerGroupMenu.java new file mode 100644 index 0000000..a8c24b2 --- /dev/null +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerGroupMenu.java @@ -0,0 +1,28 @@ +package com.wuyunbin.mall.user.domain.model.seller; + +import lombok.Getter; +import lombok.Setter; + +/** + * @author qiu + * @date 2025/10/13 + * @description + */ +@Getter +@Setter +public class SellerGroupMenu { + /** + * 编号 + */ + private int id; + + /** + * 权限组编号 + */ + private int groupId; + + /** + * 权限编号 + */ + private int menuId; +} diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerGroupUseCase.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerGroupUseCase.java index a3524ab..3176959 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerGroupUseCase.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerGroupUseCase.java @@ -1,6 +1,6 @@ package com.wuyunbin.mall.user.domain.port.in; -import com.wuyunbin.mall.user.domain.model.SellerGroup; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroup; import java.util.List; @@ -25,4 +25,12 @@ public interface GetSellerGroupUseCase { */ SellerGroup findById(int groupId); + /** + * 添加商家组 + * @param groupId + * @param groupName + * @param storeId + * @param menuIdList + */ + void saveSellerGroup(int groupId, String groupName, int storeId, List menuIdList); } diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupMenuPort.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupMenuPort.java new file mode 100644 index 0000000..da70ec3 --- /dev/null +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupMenuPort.java @@ -0,0 +1,25 @@ +package com.wuyunbin.mall.user.domain.port.out; + +import com.wuyunbin.mall.user.domain.model.seller.SellerGroupMenu; + +import java.util.List; + +/** + * @author qiu + * @date 2025/10/13 + * @description + */ +public interface GetSellerGroupMenuPort { + + /** + * 根据账号组编号删除 + * @param groupId + */ + void delByGroupId(int groupId); + + /** + * 批量保存 + * @param sellerGroupMenuList + */ + void saveAll(List sellerGroupMenuList); +} diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupPort.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupPort.java index 9390865..ef9c29c 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupPort.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupPort.java @@ -1,6 +1,6 @@ package com.wuyunbin.mall.user.domain.port.out; -import com.wuyunbin.mall.user.domain.model.SellerGroup; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroup; import java.util.List; @@ -24,4 +24,16 @@ public interface GetSellerGroupPort { * @return */ SellerGroup findById(int groupId); + + /** + * 更新账号组的权限组名称 + * @param sellerGroup + */ + void update(SellerGroup sellerGroup); + + /** + * 添加账号组 + * @param sellerGroup + */ + int save(SellerGroup sellerGroup); } -- Gitee From 6c7024f30c1cd56cb37ef1c0d8599069ccd4a630 Mon Sep 17 00:00:00 2001 From: qiu <1026718369@qq.com> Date: Wed, 15 Oct 2025 10:44:03 +0800 Subject: [PATCH 4/5] =?UTF-8?q?feat(mall-user-adapter-in-web,=20mall-user-?= =?UTF-8?q?domain,=20mall-user-application):=20=E9=87=8D=E5=86=99/account?= =?UTF-8?q?=5Fgroup/del.json=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重写/account_group/del.json接口相关所有代码, 重新命名为/seller_group/del - 新增工具类JsonHelper,用于将Json字符串转化为常见数据类型类 BREAKING CHANGE: 无 [skip ci] --- .../web/controller/SellerGroupController.java | 19 +++++++++++++++++ .../repository/SellerGroupRepositoryImpl.java | 9 ++++++++ .../service/GetSellerGroupService.java | 21 +++++++++++++++++++ .../domain/port/in/GetSellerGroupUseCase.java | 7 +++++++ .../domain/port/out/GetSellerGroupPort.java | 6 ++++++ 5 files changed, 62 insertions(+) diff --git a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java index ea154aa..cfda5c3 100644 --- a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java +++ b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java @@ -107,4 +107,23 @@ public class SellerGroupController { } } + /** + * 商家账号组删除 + * @param groupId + * @return + */ + @PostMapping("del") + public Result del(@RequestParam("groupId") int groupId, HttpServletRequest request) { + log.info("删除商家账号组: groupId: {}", groupId); + + Integer currentStoreId = SellerTokenHelper.getCurrentStoreId(request, jwtUtil); + + try { + getSellerGroupUseCase.delSellerGroup(groupId, currentStoreId); + return Result.success("url:/seller_group/del"); + } catch (Exception e) { + log.error("删除商家账号组失败: groupId: {}", groupId); + return Result.fail(); + } + } } diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupRepositoryImpl.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupRepositoryImpl.java index ca16aeb..dcf8e80 100644 --- a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupRepositoryImpl.java +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerGroupRepositoryImpl.java @@ -69,4 +69,13 @@ public class SellerGroupRepositoryImpl implements GetSellerGroupPort { public int save(SellerGroup sellerGroup) { return sellerGroupMapper.insert(SellerGroupConverter.toEntity(sellerGroup)); } + + /** + * 删除账号组 + * @param sellerGroup + */ + @Override + public void del(SellerGroup sellerGroup) { + sellerGroupMapper.deleteById(sellerGroup.getGroupId()); + } } diff --git a/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerGroupService.java b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerGroupService.java index 63aa89b..94ea629 100644 --- a/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerGroupService.java +++ b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerGroupService.java @@ -111,4 +111,25 @@ public class GetSellerGroupService implements GetSellerGroupUseCase { throw new RuntimeException("更新商家组信息失败:" + e.getMessage(),e); } } + + /** + * 删除商家组 + * @param groupId + * @param storeId + */ + @Override + public void delSellerGroup(int groupId, int storeId) { + log.info("删除商家组, 权限组编号: {}, 店铺编号: {}", groupId, storeId); + + try { + SellerGroup sellerGroup = getSellerGroupPort.findById(groupId); + if(sellerGroup != null && sellerGroup.getStoreId() != storeId){ + getSellerGroupPort.del(sellerGroup); + } + + }catch (Exception e){ + log.error("删除商家组失败, 权限组编号: {}, 店铺编号: {}", groupId, storeId); + throw new RuntimeException("删除商家组失败:" + e.getMessage(),e); + } + } } diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerGroupUseCase.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerGroupUseCase.java index 3176959..9503f10 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerGroupUseCase.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerGroupUseCase.java @@ -33,4 +33,11 @@ public interface GetSellerGroupUseCase { * @param menuIdList */ void saveSellerGroup(int groupId, String groupName, int storeId, List menuIdList); + + /** + * 删除商家组 + * @param groupId + * @param storeId + */ + void delSellerGroup(int groupId, int storeId); } diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupPort.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupPort.java index ef9c29c..36e40f8 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupPort.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupPort.java @@ -36,4 +36,10 @@ public interface GetSellerGroupPort { * @param sellerGroup */ int save(SellerGroup sellerGroup); + + /** + * 删除账号组 + * @param sellerGroup + */ + void del(SellerGroup sellerGroup); } -- Gitee From 57f107d10ab1ada4b1c0d7f33a19403a3809c716 Mon Sep 17 00:00:00 2001 From: qiu <1026718369@qq.com> Date: Wed, 15 Oct 2025 16:40:24 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat(mall-user-adapter-in-web,=20mall-user-?= =?UTF-8?q?domain,=20mall-user-application,=20mall-user-common):=20?= =?UTF-8?q?=E9=87=8D=E5=86=99/account/save.json=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 重写/account/save.json接口相关所有代码, 重新命名为/seller/save - common新增常量类State,用于状态判断(0或1) BREAKING CHANGE: 无 [skip ci] --- .../in/web/controller/SellerController.java | 42 ++++++++++++++++--- .../web/controller/SellerGroupController.java | 2 +- .../repository/SellerRepositoryImpl.java | 6 +++ .../service/GetSellersService.java | 39 +++++++++++++++++ .../com/wuyunbin/mall/user/common/State.java | 42 +++++++++++++++++++ .../domain/port/in/GetSellersUseCase.java | 12 ++++++ .../user/domain/port/out/GetSellersPort.java | 6 +++ 7 files changed, 142 insertions(+), 7 deletions(-) create mode 100644 mall-user-common/src/main/java/com/wuyunbin/mall/user/common/State.java diff --git a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerController.java b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerController.java index 5be5b4e..413a34f 100644 --- a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerController.java +++ b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerController.java @@ -11,9 +11,7 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import com.wuyunbin.mall.user.common.Result; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -25,7 +23,7 @@ import java.util.List; */ @Slf4j @RestController -@RequestMapping("/seller/list") +@RequestMapping("/seller") //@Tag(name = "商家管理", description = "商家相关操作接口") public class SellerController { @@ -43,11 +41,11 @@ public class SellerController { * @param request * @return */ - @GetMapping + @GetMapping("/list") public Result getSellerListByStoreId(HttpServletRequest request) { log.info("根据店铺编号获取商家列表"); - Integer currentStoreId = SellerTokenHelper.getCurrentStoreId(request, jwtUtil); + int currentStoreId = SellerTokenHelper.getCurrentStoreId(request, jwtUtil); List sellerList = getSellersUseCase.findSellerListByStoreId(currentStoreId); List sellerGroupList = getSellerGroupUseCase.findByStoreId(currentStoreId); @@ -59,4 +57,36 @@ public class SellerController { return Result.success(sellerResponseDto); } + + /** + * 商家账号添加保存 + * @param sellerName + * @param password + * @param sellerEmail + * @param sellerMobile + * @param allowAppLogin + * @param groupId + * @return + */ + @PostMapping("/save") + public Result saveJson(@RequestParam("sellerName") String sellerName, + @RequestParam("password") String password, + @RequestParam("sellerEmail") String sellerEmail, + @RequestParam("sellerMobile") String sellerMobile, + @RequestParam(value = "allowAppLogin", required = false, defaultValue = "0") int allowAppLogin, + @RequestParam("groupId") int groupId, + HttpServletRequest request) { + log.info("添加商家账号"); + + int currentStoreId = SellerTokenHelper.getCurrentStoreId(request, jwtUtil); + + try { + getSellersUseCase.addSubSeller(sellerName, password, currentStoreId, "", sellerEmail, sellerMobile, allowAppLogin, groupId); + log.info("添加账号成功, 账号名: {}", sellerName); + return Result.success(); + } catch (Exception e) { + log.error("添加商家账号失败, 店铺编号: {}", currentStoreId); + return Result.fail(); + } + } } diff --git a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java index cfda5c3..f05c5f9 100644 --- a/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java +++ b/mall-user-adapter/mall-user-adapter-in/mall-user-adapter-in-web/src/main/java/com/wuyunbin/mall/user/adapter/in/web/controller/SellerGroupController.java @@ -113,7 +113,7 @@ public class SellerGroupController { * @return */ @PostMapping("del") - public Result del(@RequestParam("groupId") int groupId, HttpServletRequest request) { + public Result delJson(@RequestParam("groupId") int groupId, HttpServletRequest request) { log.info("删除商家账号组: groupId: {}", groupId); Integer currentStoreId = SellerTokenHelper.getCurrentStoreId(request, jwtUtil); diff --git a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerRepositoryImpl.java b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerRepositoryImpl.java index fcd44d8..e8dd600 100644 --- a/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerRepositoryImpl.java +++ b/mall-user-adapter/mall-user-adapter-out/mall-user-adapter-out-persistence/src/main/java/com/wuyunbin/mall/user/adapter/out/persistence/repository/SellerRepositoryImpl.java @@ -42,4 +42,10 @@ public class SellerRepositoryImpl implements GetSellersPort { return sellerList; } + @Override + public void save(Seller seller) { + SellerEntity sellerEntity = SellerConverter.toEntity(seller); + sellerMapper.insert(sellerEntity); + } + } diff --git a/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellersService.java b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellersService.java index a04f399..3a7b0a4 100644 --- a/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellersService.java +++ b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellersService.java @@ -1,12 +1,17 @@ package com.wuyunbin.mall.user.application.service; +import com.wuyunbin.mall.user.common.State; +import com.wuyunbin.mall.user.common.exception.BusinessException; import com.wuyunbin.mall.user.domain.model.seller.Seller; +import com.wuyunbin.mall.user.domain.model.seller.SellerGroup; import com.wuyunbin.mall.user.domain.port.in.GetSellersUseCase; +import com.wuyunbin.mall.user.domain.port.out.GetSellerGroupPort; import com.wuyunbin.mall.user.domain.port.out.GetSellersPort; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import java.sql.Timestamp; import java.util.List; /** @@ -21,6 +26,9 @@ public class GetSellersService implements GetSellersUseCase { @Resource private GetSellersPort getSellersPort; + @Resource + private GetSellerGroupPort getSellerGroupPort; + /** * 根据店铺编号查找商家列表 * @param storeId @@ -40,4 +48,35 @@ public class GetSellersService implements GetSellersUseCase { throw new RuntimeException("根据店铺编号获取商家列表失败:" + e.getMessage(),e); } } + + /** + * 添加商家子账号 + * @param sellerName + * @param password + * @param storeId + * @param sellerEmail + * @param sellerMobile + * @param allowAppLogin + * @param groupId + */ + @Override + public void addSubSeller(String sellerName, String password, int storeId, String storeName,String sellerEmail,String sellerMobile, int allowAppLogin, int groupId) { + SellerGroup sellerGroup = getSellerGroupPort.findById(groupId); + if(sellerGroup == null){ + throw new BusinessException("账号组不存在"); + } + Seller seller = new Seller(); + seller.setSellerName(sellerName); + seller.setSellerPassword(password); + seller.setStoreId(storeId); + seller.setStoreName(storeName); + seller.setSellerEmail(sellerEmail); + seller.setSellerMobile(sellerMobile); + seller.setAllowAppLogin(allowAppLogin == State.YES ? State.YES : State.NO); + seller.setGroupId(groupId); + seller.setGroupName(sellerGroup.getGroupName()); + seller.setJoinDate(new Timestamp(System.currentTimeMillis())); + seller.setLastLoginTime(new Timestamp(System.currentTimeMillis())); + getSellersPort.save(seller); + } } diff --git a/mall-user-common/src/main/java/com/wuyunbin/mall/user/common/State.java b/mall-user-common/src/main/java/com/wuyunbin/mall/user/common/State.java new file mode 100644 index 0000000..13842ae --- /dev/null +++ b/mall-user-common/src/main/java/com/wuyunbin/mall/user/common/State.java @@ -0,0 +1,42 @@ +package com.wuyunbin.mall.user.common; + +/** + + * + * 通用状态 + * + * + * Created 2017/4/13 15:46 + */ +public class State { + /** + * YES-是 NO-否 + */ + public static final int YES = 1; + public static final int NO = 0; + + /** + * 获取所有属性值 + * @return + */ + public Integer[] getAllValues() { + Integer[] fields = new Integer[2]; + fields[0] = NO; + fields[1] = YES; + return fields; + } + + /** + * 判断是否存在某个值 + * @param param 需要判断的值 + * @return + */ + public boolean isExistValue(Integer param){ + for(Integer v: this.getAllValues()){ + if(v.equals(param)){ + return true; + } + } + return false; + } +} diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellersUseCase.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellersUseCase.java index 421f04b..c781362 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellersUseCase.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellersUseCase.java @@ -17,4 +17,16 @@ public interface GetSellersUseCase { * @return */ List findSellerListByStoreId(int storeId); + + /** + * 添加商家账号 + * @param sellerName + * @param password + * @param storeId + * @param sellerEmail + * @param sellerMobile + * @param allowAppLogin + * @param groupId + */ + void addSubSeller(String sellerName, String password, int storeId, String storeName,String sellerEmail,String sellerMobile, int allowAppLogin, int groupId); } diff --git a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellersPort.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellersPort.java index afa109c..3a6d735 100644 --- a/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellersPort.java +++ b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellersPort.java @@ -17,4 +17,10 @@ public interface GetSellersPort { * @return */ List findSellerListByStoreId(int storeId); + + /** + * 添加商家子账号 + * @param seller + */ + void save(Seller seller); } -- Gitee