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 6f3f5ba3189528e885047078d4999eb1faeb236b..413a34f27ae8520897b87e583d23bf0c168fd8fa 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,18 +3,15 @@ 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; 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.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.util.List; @@ -26,7 +23,7 @@ import java.util.List; */ @Slf4j @RestController -@RequestMapping("/seller/list") +@RequestMapping("/seller") //@Tag(name = "商家管理", description = "商家相关操作接口") public class SellerController { @@ -44,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); @@ -60,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 32ec20cab62509dbd18410e1f3f7a5cbe7fa8eb9..f05c5f967192ef53552e7b8e3f1ce25ba35bfe91 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,50 @@ 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(); + } + } + + /** + * 商家账号组删除 + * @param groupId + * @return + */ + @PostMapping("del") + public Result delJson(@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-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 d9695cffc5a7d3676d69b0900ec2b66d00b127b2..e78380dfffe93593c85cd96f3503f9d8c179c204 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 6e7d4ba2152e5f1635a5e6aabb445c35e9396959..43f28d9abb4358b8d2c90391ea657cad2f084879 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 c1430e4f5d293d8e7e181c0662c8a58e0ca80b67..8edada52b981660d8b828768b5bd21ae07e86540 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 820a12ee541d9c7b0f621ff2badb697157d64b88..f8dcb8d750453d24cc75a4df53ad8300d55068bc 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 6774d994c222cb92904b2e48e6bcabe49587f7be..2e9b4d276dee8d48703c1c000b73f81287f4e5bb 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/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 0000000000000000000000000000000000000000..f51b190a26b6f400f0e5d3ae47f32b08a3dd3a36 --- /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/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 2433f3d11e3b2dc9ae8234775eaa4c0b450c3a0d..cc5e3569d8026ef906d38338dd548e6c2cc44b99 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/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 0000000000000000000000000000000000000000..0fed0eb4160a9a36bcc6d77e9251f16699ba7bb6 --- /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 0000000000000000000000000000000000000000..3c1d61d2f054e59a9b71fe8aa6a6c05c1fbe5ef5 --- /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 0000000000000000000000000000000000000000..e741d0e34acb567c9b2e50541df62ce3f2ce3e9a --- /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 a5110ff0d866acf32a6e20c2c70a52aea5796814..dcf8e807cb6183599fabb82ffc9d08fdf6ac6f9d 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,32 @@ 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)); + } + + /** + * 删除账号组 + * @param sellerGroup + */ + @Override + public void del(SellerGroup sellerGroup) { + sellerGroupMapper.deleteById(sellerGroup.getGroupId()); + } } 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 674c167f5eff36174c1bae0311c632c0281940fe..1fc042b92275cc09f9ddc1e1a0d922ad00d0b7f5 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 ceadfb20a51cd04bf83d058b88e408786d90ec3c..e8dd600196b63ffdf970f3b163e26462985388f0 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; @@ -47,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/GetSellerGroupService.java b/mall-user-application/src/main/java/com/wuyunbin/mall/user/application/service/GetSellerGroupService.java index 3f860633babe43dbd0b0d34acefdecd7bfd13aa1..94ea6299f6df9c165baa5c6cfc458c6e985f869b 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,68 @@ 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); + } + } + + /** + * 删除商家组 + * @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-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 52b7832a9641c27d149982df5088f8c0b9d24694..afee54dea92f13f932f965729156bb4adce40ea5 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 715f53ef347bef3a54fa0ed647d9c7728eea2869..3a7b0a474e66d6020c5b54e8616935cf01189585 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.domain.model.Seller; +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 0000000000000000000000000000000000000000..13842ae990b3b35f92975890397c210b839bc873 --- /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-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 0000000000000000000000000000000000000000..2c7aff0b50808a36ade9e30962c4799a114acee8 --- /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.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 af4d4b32706b494530174e7a59719a793bfd8baa..814c56dff1efa8dc363521d39f2e30fc055529aa 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 4aaa5653acf5d77ec3de805a240f72c6a6ffec8b..f3976dd50b449062634f6afeffce129c9282e768 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/seller/SellerGroupMenu.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/model/seller/SellerGroupMenu.java new file mode 100644 index 0000000000000000000000000000000000000000..a8c24b292ff8f86b71f677b325669a04b8005b50 --- /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/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 efed170e018b7ec9da93a224cdb9da6b4e6583ad..55074019a37b97fc45110ea8c4cc3515a27e7e7b 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; 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 a3524ab1e9b97dc348af5ab1d02c0f8072550162..9503f102a86602ad5089b10796f51cbecde95d84 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,19 @@ 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); + + /** + * 删除商家组 + * @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/in/GetSellerMenuUseCase.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/in/GetSellerMenuUseCase.java index 0edb5e7b10ba07756042028d65b29b06d666ebaf..4c9d9d4f8b649519b2aceb0358b497aae1a4bfc4 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 4c1ee66ccb72e263ff98c57c6061bf23514c306f..c78136278489f33b69211c426bae1914903376de 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; @@ -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/GetSellerGroupMenuPort.java b/mall-user-domain/src/main/java/com/wuyunbin/mall/user/domain/port/out/GetSellerGroupMenuPort.java new file mode 100644 index 0000000000000000000000000000000000000000..da70ec32ebcee1cf0739424d85b474fcf790113f --- /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 9390865246c4925a5148a55556d4e3c5fef42e75..36e40f805e1ba14be31b31d3cddf06b2c0b5cd01 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,22 @@ public interface GetSellerGroupPort { * @return */ SellerGroup findById(int groupId); + + /** + * 更新账号组的权限组名称 + * @param sellerGroup + */ + void update(SellerGroup sellerGroup); + + /** + * 添加账号组 + * @param sellerGroup + */ + int save(SellerGroup sellerGroup); + + /** + * 删除账号组 + * @param sellerGroup + */ + void del(SellerGroup sellerGroup); } 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 20e5077a088c15cdf58f73a8b87eca02532dfe7e..d6320bfcafa9e0267bbd59213e36e0bb3458dfc4 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 6cfc99c6ba9408a6c7386112b7aca4ff64511abc..3a6d73596535540750a14578b12ea6a0381f417f 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; @@ -17,4 +17,10 @@ public interface GetSellersPort { * @return */ List findSellerListByStoreId(int storeId); + + /** + * 添加商家子账号 + * @param seller + */ + void save(Seller seller); }