From 26a3aab8cbeece31392d8fa1d932a78e19f8c2dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 17 Feb 2025 10:53:10 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E8=8F=9C=E5=8D=95=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/czg/account/dto/menu/MenuAddDTO.java | 4 ++++ .../java/com/czg/account/dto/menu/MenuEditDTO.java | 4 ++++ .../com/czg/account/dto/shopuser/ShopUserAddDTO.java | 6 ------ .../account/service/impl/ShopUserServiceImpl.java | 11 +++++------ 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/menu/MenuAddDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/menu/MenuAddDTO.java index 5ec77a40..58c560e5 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/menu/MenuAddDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/menu/MenuAddDTO.java @@ -44,6 +44,10 @@ public class MenuAddDTO { * 组件 */ private String component; + /** + * 组件名称 + */ + private String name; /** * 菜单排序 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/menu/MenuEditDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/menu/MenuEditDTO.java index e8e91757..41c9ae0c 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/menu/MenuEditDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/menu/MenuEditDTO.java @@ -38,6 +38,10 @@ public class MenuEditDTO { * 组件 */ private String component; + /** + * 组件名称 + */ + private String name; /** * 菜单排序 */ diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopuser/ShopUserAddDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopuser/ShopUserAddDTO.java index c8533cd2..b47d9c02 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopuser/ShopUserAddDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/shopuser/ShopUserAddDTO.java @@ -39,12 +39,6 @@ public class ShopUserAddDTO { */ private Integer sex; - /** - * 用户Id - */ - @NotNull(message = "用户id不为空") - private Long userId; - /** * 账户积分 */ diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java index 67779881..5be1ed76 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/ShopUserServiceImpl.java @@ -109,12 +109,11 @@ public class ShopUserServiceImpl extends ServiceImpl i @Override public Boolean add(Long shopId, ShopUserAddDTO shopUserAddDTO) { - long userCount = userInfoService.queryChain().eq(UserInfo::getId, shopUserAddDTO.getUserId()).count(); - if (userCount == 0) { - throw new ApiNotPrintException("用户信息不存在"); - } - long count = queryChain().eq(ShopUser::getShopId, shopId).eq(ShopUser::getUserId, shopUserAddDTO.getUserId()).count(); - if (count > 0) { + UserInfo userInfo = userInfoService.queryChain().eq(UserInfo::getPhone, shopUserAddDTO.getPhone()).one(); + if (userInfo == null) { + userInfo = BeanUtil.copyProperties(shopUserAddDTO, UserInfo.class); + userInfoService.save(userInfo); + }else { throw new ApiNotPrintException("此用户已存在"); } From 919f727049627e469433ecd067905b4d13cf4a21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 17 Feb 2025 11:13:48 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E8=A7=92=E8=89=B2=E8=8F=9C=E5=8D=95id?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/czg/controller/admin/RoleController.java | 15 +++++++++++++++ .../com/czg/account/service/SysRoleService.java | 2 ++ .../account/service/impl/SysRoleServiceImpl.java | 9 +++++++++ 3 files changed, 26 insertions(+) diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleController.java index 1cb4660b..24614cb9 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleController.java @@ -8,11 +8,14 @@ import com.czg.account.entity.SysRole; import com.czg.account.service.SysRoleService; import com.czg.annotation.SaAdminCheckPermission; import com.czg.resp.CzgResult; +import com.czg.sa.StpKit; import com.mybatisflex.core.paginate.Page; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * * 角色管理 @@ -37,6 +40,18 @@ public class RoleController { return CzgResult.success(roleService.getList(pageDTO, key, startTime, endTime)); } + /** + * 获取角色对应的菜单 + * 权限标识: role:menu + * @param id 角色id + * @return 分页数据 + */ + @SaAdminCheckPermission(value = "role:menu") + @GetMapping("/menu") + public CzgResult> getRoleMenu(@RequestParam Integer id) { + return CzgResult.success(roleService.getRoleMenu(StpKit.USER.getLoginIdAsLong(), id)); + } + /** * 新增角色 * 权限标识: role:add diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysRoleService.java b/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysRoleService.java index c448183a..1de0a8e7 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysRoleService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/service/SysRoleService.java @@ -24,4 +24,6 @@ public interface SysRoleService extends IService { Boolean add(RoleAddDTO roleAddDTO); Boolean edit(RoleEditDTO roleEditDTO); + + List getRoleMenu(long loginIdAsLong, Integer id); } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java index 22348882..cb3d0be2 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleServiceImpl.java @@ -67,6 +67,15 @@ public class SysRoleServiceImpl extends ServiceImpl imp return page(new Page<>(pageDTO.page(), pageDTO.size()), queryWrapper); } + @Override + public List getRoleMenu(long userId, Integer id) { + SysRole role = queryChain().eq(SysRole::getId, id).eq(SysRole::getCreateUserId, userId).one(); + if (role == null) { + throw new ApiNotPrintException("角色不存在"); + } + return sysRolesMenusService.queryChain().eq(SysRolesMenus::getRoleId, id).list().stream().map(SysRolesMenus::getMenuId).toList(); + } + public boolean addMenu(Long roleId, List menuIds) { long count = sysMenuService.queryChain().in(SysMenu::getMenuId, menuIds).count(); if (count != menuIds.size()) { From 00f83f0e2da5891ac7683d472bc75bafd369d022 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 17 Feb 2025 14:12:34 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=98=AF=E5=90=A6=E7=94=9F=E6=88=90DTO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/czg/Main.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/cash-service/code-generator/src/main/java/com/czg/Main.java b/cash-service/code-generator/src/main/java/com/czg/Main.java index 2044b5be..eae3bab1 100644 --- a/cash-service/code-generator/src/main/java/com/czg/Main.java +++ b/cash-service/code-generator/src/main/java/com/czg/Main.java @@ -23,13 +23,15 @@ public class Main { // packageName 指定生成代码项目 // tableName 指定需要生成的表 -// String servicePackageName = "system"; -// String servicePackageName = "account"; -// String servicePackageName = "product"; +// String packageName = "system"; String packageName = "account"; +// String packageName = "product"; +// String packageName = "order"; - String tableName = "tb_shop_table"; - String author = "zs"; + String tableName = "tb_shop_coupon_product"; + String author = "ww"; + //是否生成DTO实体 默认生成 + boolean isGenerateDto = true; //配置数据源 HikariDataSource dataSource = new HikariDataSource(); @@ -53,11 +55,13 @@ public class Main { serviceGenerator.generate(); //默认生成全参数DTO - GlobalConfig dtoConfig = createDtoGlobalConfig(currentWorkingDirectory + "/cash-common/cash-common-service", - basePackage + packageName, "tb", tableName); - Generator dtoGenerator = new Generator(dataSource, dtoConfig); - dtoConfig.setAuthor(author); - dtoGenerator.generate(); + if(isGenerateDto){ + GlobalConfig dtoConfig = createDtoGlobalConfig(currentWorkingDirectory + "/cash-common/cash-common-service", + basePackage + packageName, "tb", tableName); + Generator dtoGenerator = new Generator(dataSource, dtoConfig); + dtoConfig.setAuthor(author); + dtoGenerator.generate(); + } } public static GlobalConfig createGlobalConfigUseStyle(String projectPath, String packageName, String tablePrefix, String... tableNames) { From 96a6e7ccefe6a4824578931ceaec7fc65efd6fb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 17 Feb 2025 14:30:01 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=90=AF=E5=8A=A8?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=B7=BB=E5=8A=A0=E7=9B=B8=E5=85=B3=E6=9D=83?= =?UTF-8?q?=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/czg/AccountApplication.java | 51 ++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/cash-api/account-server/src/main/java/com/czg/AccountApplication.java b/cash-api/account-server/src/main/java/com/czg/AccountApplication.java index aab4819f..53848ed1 100644 --- a/cash-api/account-server/src/main/java/com/czg/AccountApplication.java +++ b/cash-api/account-server/src/main/java/com/czg/AccountApplication.java @@ -1,11 +1,27 @@ package com.czg; +import com.czg.account.entity.SysMenu; +import com.czg.account.entity.SysRolesMenus; +import com.czg.account.service.SysMenuService; +import com.czg.account.service.SysRolesMenusService; +import com.czg.annotation.SaAdminCheckPermission; +import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.core.annotation.AnnotationUtils; import org.springframework.transaction.annotation.EnableTransactionManagement; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.mvc.method.RequestMappingInfo; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; + +import java.lang.reflect.Method; +import java.util.Map; + /** * @author ww @@ -15,9 +31,42 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @EnableTransactionManagement @MapperScan("com.czg.service.account.mapper") @EnableDubbo -public class AccountApplication { +@Slf4j +public class AccountApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(AccountApplication.class, args); } + @Autowired + private RequestMappingHandlerMapping requestMappingHandlerMapping; + @Autowired + private SysMenuService sysMenuService; + @Autowired + private SysRolesMenusService sysRolesMenusService; + + public void run(String... args) { + Map handlerMethods = this.requestMappingHandlerMapping.getHandlerMethods(); + handlerMethods.forEach((key, value) -> { + Method method = value.getMethod(); + SaAdminCheckPermission annotation = AnnotationUtils.getAnnotation(method, SaAdminCheckPermission.class); + if (annotation == null) return; + for (String s : annotation.value()) { + long count = sysMenuService.queryChain().eq(SysMenu::getPermission, s).count(); + if (count > 0) { + continue; + } + SysMenu sysMenu = new SysMenu(); + sysMenu.setPermission(s); + sysMenu.setName(s); + sysMenu.setType(2); + sysMenuService.save(sysMenu); + SysRolesMenus sysRolesMenus = new SysRolesMenus(); + sysRolesMenus.setMenuId(sysMenu.getMenuId()); + sysRolesMenus.setRoleId(1L); + sysRolesMenusService.save(sysRolesMenus); + log.info("接口菜单添加成功, 菜单名称: {}, 菜单权限: {}", sysMenu.getName(), sysMenu.getPermission()); + } + }); + + } }