From 396995c0dadd42145ea81b9a534610cc14f6b7f4 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, 8 Dec 2025 14:17:37 +0800 Subject: [PATCH 01/15] =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/service/impl/ConsStockFlowServiceImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java index ddcd690fe..25028f713 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java @@ -121,7 +121,9 @@ consInfo.setStockNumber(consStockFlow.getAfterNumber()); updateStockList.add(consInfo); } - mapper.insertBatchSelective(insertList, 50); + if (!insertList.isEmpty()) { + mapper.insertBatchSelective(insertList, 50); + } for (ConsInfo consInfo : updateStockList) { consInfoMapper.update(consInfo); } From 68e91412eab692251818ff01b067a7e7fd512f02 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, 8 Dec 2025 17:05:48 +0800 Subject: [PATCH 02/15] =?UTF-8?q?=E5=85=A5=E5=BA=93=E4=BE=9B=E5=BA=94?= =?UTF-8?q?=E5=95=86=E6=9C=AA=E4=BF=9D=E5=AD=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/product/service/impl/ConsStockFlowServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java index 25028f713..b9a41b4ae 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ConsStockFlowServiceImpl.java @@ -95,6 +95,7 @@ consStockFlow.setInOutItem(InOutItemEnum.MANUAL_IN.value()); consStockFlow.setCreateUserId(createUserId); consStockFlow.setCreateUserName(createUserName); + consStockFlow.setVendorId(param.getVendorId()); String conId = entity.getConId(); ConsInfo consInfo; if (StrUtil.isBlank(entity.getConId())) { From 8a696ff9e252196dac499cf82e9c30cb71129715 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, 8 Dec 2025 17:13:06 +0800 Subject: [PATCH 03/15] =?UTF-8?q?=E6=99=BA=E6=85=A7=E5=85=85=E5=80=BC?= =?UTF-8?q?=E5=88=B8=E4=B8=8D=E5=AD=98=E5=9C=A8=E4=B8=8D=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../market/service/impl/MkShopRechargeServiceImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopRechargeServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopRechargeServiceImpl.java index 1172116dc..2eafa327e 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopRechargeServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/MkShopRechargeServiceImpl.java @@ -106,9 +106,11 @@ public class MkShopRechargeServiceImpl extends ServiceImpl couponMap = shopCouponService.list(new QueryWrapper().in(ShopCoupon::getId, couponIdList)).stream().collect(Collectors.toMap(ShopCoupon::getId, v -> v)); couponInfoDTOS.forEach(item -> { ShopCoupon shopCoupon = couponMap.get(item.getId()); - if (shopCoupon != null) { - shopCoupon.setInfo(); + + if (shopCoupon == null) { + return; } + shopCoupon.setInfo(); couponInfoVOS.add(new CouponInfoVO().setCoupon(shopCoupon).setNum(item.getNum())); }); } From 03482e745d13a4ec45f407c2cba64a035ad16230 Mon Sep 17 00:00:00 2001 From: gong <1157756119@qq.com> Date: Mon, 8 Dec 2025 17:43:27 +0800 Subject: [PATCH 04/15] =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=81=94=E7=B3=BB?= =?UTF-8?q?=E4=BA=BA=E5=88=A4=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../account/service/impl/BkContactListServiceImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/BkContactListServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/BkContactListServiceImpl.java index dc42b26a8..16a3a3468 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/BkContactListServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/BkContactListServiceImpl.java @@ -10,6 +10,7 @@ import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -27,6 +28,10 @@ public class BkContactListServiceImpl extends ServiceImpl getUserList(Long shopId, Set phones) { + if (phones == null || phones.isEmpty()) { + return new ArrayList<>(); + } + remove(QueryWrapper.create().eq(BkContactList::getShopId, shopId)); List collect = phones.stream() .filter(StrUtil::isNotEmpty) From 73f529c5bd47ae5aa308eb1f1994513c4f8327fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 09:17:34 +0800 Subject: [PATCH 05/15] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/controller/admin/RoleController.java | 14 +++- .../admin/RoleTemplateController.java | 53 +++++++++++++ .../com/czg/account/dto/RoleTemplateDTO.java | 40 ++++++++++ .../account/dto/role/RoleSaveTemplateDTO.java | 12 +++ .../czg/account/service/SysRoleService.java | 4 + .../czg/market/dto/SysRoleTemplateDTO.java | 67 ++++++++++++++++ .../czg/market/entity/SysRoleTemplate.java | 79 +++++++++++++++++++ .../service/SysRoleTemplateService.java | 22 ++++++ .../service/impl/SysRoleServiceImpl.java | 19 +++++ .../market/mapper/SysRoleTemplateMapper.java | 14 ++++ .../impl/SysRoleTemplateServiceImpl.java | 47 +++++++++++ .../mapper/SysRoleTemplateMapper.xml | 7 ++ 12 files changed, 374 insertions(+), 4 deletions(-) create mode 100644 cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java create mode 100644 cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml 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 c09767af7..f67b62856 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 @@ -1,10 +1,7 @@ package com.czg.controller.admin; import com.czg.account.dto.PageDTO; -import com.czg.account.dto.role.RoleAddDTO; -import com.czg.account.dto.role.RoleEditDTO; -import com.czg.account.dto.role.RolePermissionDTO; -import com.czg.account.dto.role.RoleRemoveDTO; +import com.czg.account.dto.role.*; import com.czg.account.entity.SysRole; import com.czg.account.service.SysRoleService; import com.czg.annotation.SaAdminCheckPermission; @@ -102,4 +99,13 @@ public class RoleController { } return CzgResult.success(roleService.removeById(roleRemoveDTO.id())); } + + /** + * 根据模板保存角色 + */ + @PostMapping("/saveByTemplate") + public CzgResult saveByTemplate(@Validated @RequestBody RoleSaveTemplateDTO dto) { + return CzgResult.success(roleService.saveByTemplate(StpKit.USER.getShopId(), dto)); + } + } diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java new file mode 100644 index 000000000..3d9d52051 --- /dev/null +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java @@ -0,0 +1,53 @@ +package com.czg.controller.admin; + +import com.czg.account.dto.RoleTemplateDTO; +import com.czg.market.entity.SysRoleTemplate; +import com.czg.market.service.SysRoleTemplateService; +import com.czg.resp.CzgResult; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 角色模板 + */ +@RestController +@RequestMapping("/admin/roleTemplate") +public class RoleTemplateController { + @Resource + private SysRoleTemplateService roleTemplateService; + + /** + * 添加 + */ + @PostMapping + public CzgResult save(@RequestBody @Validated RoleTemplateDTO dto) { + return CzgResult.success(roleTemplateService.saveInfo(dto)); + } + + /** + * 删除 + */ + @DeleteMapping + public CzgResult delete(@RequestParam Long id) { + return CzgResult.success(roleTemplateService.removeById(id)); + } + + /** + * 编辑 + */ + @PutMapping + public CzgResult edit(@RequestBody @Validated RoleTemplateDTO dto) { + return CzgResult.success(roleTemplateService.editInfo(dto)); + } + + /** + * 列表 + */ + @GetMapping("/list") + public CzgResult> list() { + return CzgResult.success(roleTemplateService.listInfo()); + } +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java new file mode 100644 index 000000000..5c3ddf070 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java @@ -0,0 +1,40 @@ +package com.czg.account.dto; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class RoleTemplateDTO { + private Integer id; + + /** + * 模板名称 + */ + @NotBlank(message = "模板名称不能为空") + private String name; + + /** + * 是否启用 + */ + private Integer isEnable; + + /** + * 排序 + */ + private Integer sort; + + /** + * 角色id列表 + */ + private Integer roleId; + /** + * 上级id + */ + private Integer pid; +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java new file mode 100644 index 000000000..26635fa4e --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java @@ -0,0 +1,12 @@ +package com.czg.account.dto.role; + +import jakarta.validation.constraints.NotBlank; + +import java.util.List; + +public record RoleSaveTemplateDTO( + /* 角色名称 */ + @NotBlank + List roleTemplateIdList +) { +} 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 ac486b313..15e94ea69 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 @@ -4,6 +4,7 @@ import com.czg.account.dto.PageDTO; import com.czg.account.dto.role.RoleAddDTO; import com.czg.account.dto.role.RoleEditDTO; import com.czg.account.dto.role.RolePermissionDTO; +import com.czg.account.dto.role.RoleSaveTemplateDTO; import com.czg.account.entity.SysRole; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; @@ -29,4 +30,7 @@ public interface SysRoleService extends IService { List getRoleMenu(long loginIdAsLong, Integer id, Integer type); Boolean editPermission(long userId, RolePermissionDTO rolePermissionDTO); + + Boolean saveByTemplate(long shopId, RoleSaveTemplateDTO dto); + } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java new file mode 100644 index 000000000..d21e32140 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java @@ -0,0 +1,67 @@ + +package com.czg.market.dto; + +import java.io.Serializable; +import java.time.LocalDateTime; +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.experimental.Accessors; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 角色模板 实体类。 + * + * @author zs + * @since 2025-12-08 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +public class SysRoleTemplateDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Integer id; + + /** + * 模板名称 + */ + private String name; + + /** + * 是否启用 + */ + private Integer isEnable; + + /** + * 排序 + */ + private Integer sort; + + /** + * 操作人 + */ + private String opUser; + + /** + * 创建人 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + /** + * 角色id列表 + */ + private String roleIdList; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java new file mode 100644 index 000000000..44fc947b4 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java @@ -0,0 +1,79 @@ +package com.czg.market.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 角色模板 实体类。 + * + * @author zs + * @since 2025-12-08 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("sys_role_template") +public class SysRoleTemplate implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Integer id; + + /** + * 模板名称 + */ + private String name; + + /** + * 是否启用 + */ + private Integer isEnable; + + /** + * 排序 + */ + private Integer sort; + + /** + * 操作人 + */ + private String opUser; + private Long opSysUserId; + + /** + * 创建人 + */ + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + + /** + * 角色id列表 + */ + private String roleId; + + /** + * 上级id + */ + private Integer pid; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java new file mode 100644 index 000000000..901d03938 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java @@ -0,0 +1,22 @@ +package com.czg.market.service; + +import com.czg.account.dto.RoleTemplateDTO; +import com.mybatisflex.core.service.IService; +import com.czg.market.entity.SysRoleTemplate; + +import java.util.List; + +/** + * 角色模板 服务层。 + * + * @author zs + * @since 2025-12-08 + */ +public interface SysRoleTemplateService extends IService { + + Boolean saveInfo(RoleTemplateDTO dto); + + List listInfo(); + + Boolean editInfo(RoleTemplateDTO dto); +} 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 2154d1439..8ab1e5cbe 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 @@ -9,18 +9,22 @@ import com.czg.account.dto.menu.MenuApiInfoItemDTO; import com.czg.account.dto.role.RoleAddDTO; import com.czg.account.dto.role.RoleEditDTO; import com.czg.account.dto.role.RolePermissionDTO; +import com.czg.account.dto.role.RoleSaveTemplateDTO; import com.czg.account.entity.*; import com.czg.account.service.CashMenuService; import com.czg.account.service.SysMenuService; import com.czg.account.service.SysRoleService; import com.czg.account.service.SysRolesMenusService; import com.czg.exception.CzgException; +import com.czg.market.entity.SysRoleTemplate; +import com.czg.market.service.SysRoleTemplateService; import com.czg.sa.StpKit; import com.czg.service.account.mapper.SysRoleMapper; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -43,6 +47,9 @@ public class SysRoleServiceImpl extends ServiceImpl impl private SysRolesMenusService sysRolesMenusService; @Resource private CashMenuService cashMenuService; + @Resource + @Lazy + private SysRoleTemplateService roleTemplateService; @Override public List getByUserId(Long id) { @@ -237,6 +244,18 @@ public class SysRoleServiceImpl extends ServiceImpl impl throw new CzgException("保存失败"); } + @Override + public Boolean saveByTemplate(long shopId, RoleSaveTemplateDTO dto) { + roleTemplateService.list(new QueryWrapper().in(SysRoleTemplate::getId, dto.roleTemplateIdList())).forEach(item -> { + SysRole role = getById(item.getRoleId()); + role.setShopId(shopId); + role.setCreateTime(null); + role.setId(null); + save(role); + }); + return true; + } + @Override @Transactional(rollbackFor = Exception.class) public Boolean edit(RoleEditDTO roleEditDTO) { diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java new file mode 100644 index 000000000..6b954b139 --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.market.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.market.entity.SysRoleTemplate; + +/** + * 角色模板 映射层。 + * + * @author zs + * @since 2025-12-08 + */ +public interface SysRoleTemplateMapper extends BaseMapper { + +} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java new file mode 100644 index 000000000..b1340152f --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java @@ -0,0 +1,47 @@ +package com.czg.service.market.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.czg.account.dto.RoleTemplateDTO; +import com.czg.account.service.SysRoleService; +import com.czg.sa.StpKit; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.market.entity.SysRoleTemplate; +import com.czg.market.service.SysRoleTemplateService; +import com.czg.service.market.mapper.SysRoleTemplateMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 角色模板 服务层实现。 + * + * @author zs + * @since 2025-12-08 + */ +@Service +public class SysRoleTemplateServiceImpl extends ServiceImpl implements SysRoleTemplateService{ + @Resource + private SysRoleService roleService; + + @Override + public Boolean saveInfo(RoleTemplateDTO dto) { + SysRoleTemplate roleTemplate = BeanUtil.copyProperties(dto, SysRoleTemplate.class, "roleIdList"); + roleTemplate.setOpUser(StpKit.USER.getAccount()); + roleTemplate.setOpSysUserId(StpKit.USER.getLoginIdAsLong()); + return save(roleTemplate); + } + + @Override + public List listInfo() { + return list(); + } + + @Override + public Boolean editInfo(RoleTemplateDTO dto) { + SysRoleTemplate roleTemplate = BeanUtil.copyProperties(dto, SysRoleTemplate.class); + roleTemplate.setOpUser(StpKit.USER.getAccount()); + roleTemplate.setOpSysUserId(StpKit.USER.getLoginIdAsLong()); + return updateById(roleTemplate); + } +} diff --git a/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml new file mode 100644 index 000000000..9f76411e3 --- /dev/null +++ b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml @@ -0,0 +1,7 @@ + + + + + From 9bf14be1a9b75d6f510a9a3652edca44009bca37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 09:20:11 +0800 Subject: [PATCH 06/15] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/service/account}/mapper/SysRoleTemplateMapper.java | 2 +- .../account}/service/impl/SysRoleTemplateServiceImpl.java | 4 ++-- .../src/main/resources/mapper/SysRoleTemplateMapper.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename cash-service/{market-service/src/main/java/com/czg/service/market => account-service/src/main/java/com/czg/service/account}/mapper/SysRoleTemplateMapper.java (85%) rename cash-service/{market-service/src/main/java/com/czg/service/market => account-service/src/main/java/com/czg/service/account}/service/impl/SysRoleTemplateServiceImpl.java (93%) diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysRoleTemplateMapper.java similarity index 85% rename from cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java rename to cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysRoleTemplateMapper.java index 6b954b139..1f46f8ccf 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysRoleTemplateMapper.java @@ -1,4 +1,4 @@ -package com.czg.service.market.mapper; +package com.czg.service.account.mapper; import com.mybatisflex.core.BaseMapper; import com.czg.market.entity.SysRoleTemplate; diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java similarity index 93% rename from cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java rename to cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java index b1340152f..59d8e010a 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java @@ -1,13 +1,13 @@ -package com.czg.service.market.service.impl; +package com.czg.service.account.service.impl; import cn.hutool.core.bean.BeanUtil; import com.czg.account.dto.RoleTemplateDTO; import com.czg.account.service.SysRoleService; import com.czg.sa.StpKit; +import com.czg.service.account.mapper.SysRoleTemplateMapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import com.czg.market.entity.SysRoleTemplate; import com.czg.market.service.SysRoleTemplateService; -import com.czg.service.market.mapper.SysRoleTemplateMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; diff --git a/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml index 9f76411e3..5001bcc52 100644 --- a/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml +++ b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml @@ -2,6 +2,6 @@ - + From b3c1804686c32425bc99a798552391bfefae4d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 09:21:41 +0800 Subject: [PATCH 07/15] =?UTF-8?q?Revert=20"=E8=A7=92=E8=89=B2=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 9bf14be1a9b75d6f510a9a3652edca44009bca37. --- .../com/czg/service/market}/mapper/SysRoleTemplateMapper.java | 2 +- .../market}/service/impl/SysRoleTemplateServiceImpl.java | 4 ++-- .../src/main/resources/mapper/SysRoleTemplateMapper.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename cash-service/{account-service/src/main/java/com/czg/service/account => market-service/src/main/java/com/czg/service/market}/mapper/SysRoleTemplateMapper.java (85%) rename cash-service/{account-service/src/main/java/com/czg/service/account => market-service/src/main/java/com/czg/service/market}/service/impl/SysRoleTemplateServiceImpl.java (93%) diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysRoleTemplateMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java similarity index 85% rename from cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysRoleTemplateMapper.java rename to cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java index 1f46f8ccf..6b954b139 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysRoleTemplateMapper.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java @@ -1,4 +1,4 @@ -package com.czg.service.account.mapper; +package com.czg.service.market.mapper; import com.mybatisflex.core.BaseMapper; import com.czg.market.entity.SysRoleTemplate; diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java similarity index 93% rename from cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java rename to cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java index 59d8e010a..b1340152f 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java @@ -1,13 +1,13 @@ -package com.czg.service.account.service.impl; +package com.czg.service.market.service.impl; import cn.hutool.core.bean.BeanUtil; import com.czg.account.dto.RoleTemplateDTO; import com.czg.account.service.SysRoleService; import com.czg.sa.StpKit; -import com.czg.service.account.mapper.SysRoleTemplateMapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import com.czg.market.entity.SysRoleTemplate; import com.czg.market.service.SysRoleTemplateService; +import com.czg.service.market.mapper.SysRoleTemplateMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; diff --git a/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml index 5001bcc52..9f76411e3 100644 --- a/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml +++ b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml @@ -2,6 +2,6 @@ - + From 80c9aabb90360188147b4edfd931df3c0afa4e35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 09:21:42 +0800 Subject: [PATCH 08/15] =?UTF-8?q?Revert=20"=E8=A7=92=E8=89=B2=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 73f529c5bd47ae5aa308eb1f1994513c4f8327fc. --- .../czg/controller/admin/RoleController.java | 14 +--- .../admin/RoleTemplateController.java | 53 ------------- .../com/czg/account/dto/RoleTemplateDTO.java | 40 ---------- .../account/dto/role/RoleSaveTemplateDTO.java | 12 --- .../czg/account/service/SysRoleService.java | 4 - .../czg/market/dto/SysRoleTemplateDTO.java | 67 ---------------- .../czg/market/entity/SysRoleTemplate.java | 79 ------------------- .../service/SysRoleTemplateService.java | 22 ------ .../service/impl/SysRoleServiceImpl.java | 19 ----- .../market/mapper/SysRoleTemplateMapper.java | 14 ---- .../impl/SysRoleTemplateServiceImpl.java | 47 ----------- .../mapper/SysRoleTemplateMapper.xml | 7 -- 12 files changed, 4 insertions(+), 374 deletions(-) delete mode 100644 cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java delete mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java delete mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java delete mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java delete mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java delete mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java delete mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java delete mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java delete mode 100644 cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml 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 f67b62856..c09767af7 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 @@ -1,7 +1,10 @@ package com.czg.controller.admin; import com.czg.account.dto.PageDTO; -import com.czg.account.dto.role.*; +import com.czg.account.dto.role.RoleAddDTO; +import com.czg.account.dto.role.RoleEditDTO; +import com.czg.account.dto.role.RolePermissionDTO; +import com.czg.account.dto.role.RoleRemoveDTO; import com.czg.account.entity.SysRole; import com.czg.account.service.SysRoleService; import com.czg.annotation.SaAdminCheckPermission; @@ -99,13 +102,4 @@ public class RoleController { } return CzgResult.success(roleService.removeById(roleRemoveDTO.id())); } - - /** - * 根据模板保存角色 - */ - @PostMapping("/saveByTemplate") - public CzgResult saveByTemplate(@Validated @RequestBody RoleSaveTemplateDTO dto) { - return CzgResult.success(roleService.saveByTemplate(StpKit.USER.getShopId(), dto)); - } - } diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java deleted file mode 100644 index 3d9d52051..000000000 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.czg.controller.admin; - -import com.czg.account.dto.RoleTemplateDTO; -import com.czg.market.entity.SysRoleTemplate; -import com.czg.market.service.SysRoleTemplateService; -import com.czg.resp.CzgResult; -import jakarta.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -/** - * 角色模板 - */ -@RestController -@RequestMapping("/admin/roleTemplate") -public class RoleTemplateController { - @Resource - private SysRoleTemplateService roleTemplateService; - - /** - * 添加 - */ - @PostMapping - public CzgResult save(@RequestBody @Validated RoleTemplateDTO dto) { - return CzgResult.success(roleTemplateService.saveInfo(dto)); - } - - /** - * 删除 - */ - @DeleteMapping - public CzgResult delete(@RequestParam Long id) { - return CzgResult.success(roleTemplateService.removeById(id)); - } - - /** - * 编辑 - */ - @PutMapping - public CzgResult edit(@RequestBody @Validated RoleTemplateDTO dto) { - return CzgResult.success(roleTemplateService.editInfo(dto)); - } - - /** - * 列表 - */ - @GetMapping("/list") - public CzgResult> list() { - return CzgResult.success(roleTemplateService.listInfo()); - } -} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java deleted file mode 100644 index 5c3ddf070..000000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.czg.account.dto; - -import com.mybatisflex.annotation.Column; -import com.mybatisflex.annotation.Id; -import com.mybatisflex.annotation.KeyType; -import jakarta.validation.constraints.NotBlank; -import lombok.Data; - -import java.time.LocalDateTime; -import java.util.List; - -@Data -public class RoleTemplateDTO { - private Integer id; - - /** - * 模板名称 - */ - @NotBlank(message = "模板名称不能为空") - private String name; - - /** - * 是否启用 - */ - private Integer isEnable; - - /** - * 排序 - */ - private Integer sort; - - /** - * 角色id列表 - */ - private Integer roleId; - /** - * 上级id - */ - private Integer pid; -} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java deleted file mode 100644 index 26635fa4e..000000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.czg.account.dto.role; - -import jakarta.validation.constraints.NotBlank; - -import java.util.List; - -public record RoleSaveTemplateDTO( - /* 角色名称 */ - @NotBlank - List roleTemplateIdList -) { -} 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 15e94ea69..ac486b313 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 @@ -4,7 +4,6 @@ import com.czg.account.dto.PageDTO; import com.czg.account.dto.role.RoleAddDTO; import com.czg.account.dto.role.RoleEditDTO; import com.czg.account.dto.role.RolePermissionDTO; -import com.czg.account.dto.role.RoleSaveTemplateDTO; import com.czg.account.entity.SysRole; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; @@ -30,7 +29,4 @@ public interface SysRoleService extends IService { List getRoleMenu(long loginIdAsLong, Integer id, Integer type); Boolean editPermission(long userId, RolePermissionDTO rolePermissionDTO); - - Boolean saveByTemplate(long shopId, RoleSaveTemplateDTO dto); - } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java deleted file mode 100644 index d21e32140..000000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java +++ /dev/null @@ -1,67 +0,0 @@ - -package com.czg.market.dto; - -import java.io.Serializable; -import java.time.LocalDateTime; -import com.alibaba.fastjson2.annotation.JSONField; -import lombok.experimental.Accessors; -import java.io.Serial; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * 角色模板 实体类。 - * - * @author zs - * @since 2025-12-08 - */ -@Data -@NoArgsConstructor -@AllArgsConstructor -@Accessors(chain = true) -public class SysRoleTemplateDTO implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - private Integer id; - - /** - * 模板名称 - */ - private String name; - - /** - * 是否启用 - */ - private Integer isEnable; - - /** - * 排序 - */ - private Integer sort; - - /** - * 操作人 - */ - private String opUser; - - /** - * 创建人 - */ - @JSONField(format = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; - - /** - * 修改时间 - */ - @JSONField(format = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; - - /** - * 角色id列表 - */ - private String roleIdList; - -} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java deleted file mode 100644 index 44fc947b4..000000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java +++ /dev/null @@ -1,79 +0,0 @@ -package com.czg.market.entity; - -import com.mybatisflex.annotation.Column; -import com.mybatisflex.annotation.Id; -import com.mybatisflex.annotation.KeyType; -import com.mybatisflex.annotation.Table; -import java.io.Serializable; -import java.time.LocalDateTime; - -import java.io.Serial; - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -/** - * 角色模板 实体类。 - * - * @author zs - * @since 2025-12-08 - */ -@Data -@Builder -@NoArgsConstructor -@AllArgsConstructor -@Table("sys_role_template") -public class SysRoleTemplate implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - @Id(keyType = KeyType.Auto) - private Integer id; - - /** - * 模板名称 - */ - private String name; - - /** - * 是否启用 - */ - private Integer isEnable; - - /** - * 排序 - */ - private Integer sort; - - /** - * 操作人 - */ - private String opUser; - private Long opSysUserId; - - /** - * 创建人 - */ - @Column(onInsertValue = "now()") - private LocalDateTime createTime; - - /** - * 修改时间 - */ - @Column(onInsertValue = "now()", onUpdateValue = "now()") - private LocalDateTime updateTime; - - /** - * 角色id列表 - */ - private String roleId; - - /** - * 上级id - */ - private Integer pid; - -} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java deleted file mode 100644 index 901d03938..000000000 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.czg.market.service; - -import com.czg.account.dto.RoleTemplateDTO; -import com.mybatisflex.core.service.IService; -import com.czg.market.entity.SysRoleTemplate; - -import java.util.List; - -/** - * 角色模板 服务层。 - * - * @author zs - * @since 2025-12-08 - */ -public interface SysRoleTemplateService extends IService { - - Boolean saveInfo(RoleTemplateDTO dto); - - List listInfo(); - - Boolean editInfo(RoleTemplateDTO dto); -} 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 8ab1e5cbe..2154d1439 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 @@ -9,22 +9,18 @@ import com.czg.account.dto.menu.MenuApiInfoItemDTO; import com.czg.account.dto.role.RoleAddDTO; import com.czg.account.dto.role.RoleEditDTO; import com.czg.account.dto.role.RolePermissionDTO; -import com.czg.account.dto.role.RoleSaveTemplateDTO; import com.czg.account.entity.*; import com.czg.account.service.CashMenuService; import com.czg.account.service.SysMenuService; import com.czg.account.service.SysRoleService; import com.czg.account.service.SysRolesMenusService; import com.czg.exception.CzgException; -import com.czg.market.entity.SysRoleTemplate; -import com.czg.market.service.SysRoleTemplateService; import com.czg.sa.StpKit; import com.czg.service.account.mapper.SysRoleMapper; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; -import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -47,9 +43,6 @@ public class SysRoleServiceImpl extends ServiceImpl impl private SysRolesMenusService sysRolesMenusService; @Resource private CashMenuService cashMenuService; - @Resource - @Lazy - private SysRoleTemplateService roleTemplateService; @Override public List getByUserId(Long id) { @@ -244,18 +237,6 @@ public class SysRoleServiceImpl extends ServiceImpl impl throw new CzgException("保存失败"); } - @Override - public Boolean saveByTemplate(long shopId, RoleSaveTemplateDTO dto) { - roleTemplateService.list(new QueryWrapper().in(SysRoleTemplate::getId, dto.roleTemplateIdList())).forEach(item -> { - SysRole role = getById(item.getRoleId()); - role.setShopId(shopId); - role.setCreateTime(null); - role.setId(null); - save(role); - }); - return true; - } - @Override @Transactional(rollbackFor = Exception.class) public Boolean edit(RoleEditDTO roleEditDTO) { diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java deleted file mode 100644 index 6b954b139..000000000 --- a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.czg.service.market.mapper; - -import com.mybatisflex.core.BaseMapper; -import com.czg.market.entity.SysRoleTemplate; - -/** - * 角色模板 映射层。 - * - * @author zs - * @since 2025-12-08 - */ -public interface SysRoleTemplateMapper extends BaseMapper { - -} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java deleted file mode 100644 index b1340152f..000000000 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.czg.service.market.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import com.czg.account.dto.RoleTemplateDTO; -import com.czg.account.service.SysRoleService; -import com.czg.sa.StpKit; -import com.mybatisflex.spring.service.impl.ServiceImpl; -import com.czg.market.entity.SysRoleTemplate; -import com.czg.market.service.SysRoleTemplateService; -import com.czg.service.market.mapper.SysRoleTemplateMapper; -import jakarta.annotation.Resource; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * 角色模板 服务层实现。 - * - * @author zs - * @since 2025-12-08 - */ -@Service -public class SysRoleTemplateServiceImpl extends ServiceImpl implements SysRoleTemplateService{ - @Resource - private SysRoleService roleService; - - @Override - public Boolean saveInfo(RoleTemplateDTO dto) { - SysRoleTemplate roleTemplate = BeanUtil.copyProperties(dto, SysRoleTemplate.class, "roleIdList"); - roleTemplate.setOpUser(StpKit.USER.getAccount()); - roleTemplate.setOpSysUserId(StpKit.USER.getLoginIdAsLong()); - return save(roleTemplate); - } - - @Override - public List listInfo() { - return list(); - } - - @Override - public Boolean editInfo(RoleTemplateDTO dto) { - SysRoleTemplate roleTemplate = BeanUtil.copyProperties(dto, SysRoleTemplate.class); - roleTemplate.setOpUser(StpKit.USER.getAccount()); - roleTemplate.setOpSysUserId(StpKit.USER.getLoginIdAsLong()); - return updateById(roleTemplate); - } -} diff --git a/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml deleted file mode 100644 index 9f76411e3..000000000 --- a/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - From 7dcd9d471a16790dd4f45f4ef98ceac91da41bd6 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Mon, 8 Dec 2025 11:48:08 +0800 Subject: [PATCH 09/15] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../annotation/SaAdminCheckPermission.java | 5 ++++ .../src/main/java/com/czg/LoadingRole.java | 26 +++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/annotation/SaAdminCheckPermission.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/annotation/SaAdminCheckPermission.java index f4687e5e4..ede0e2c2c 100644 --- a/cash-common/cash-common-sa-token/src/main/java/com/czg/annotation/SaAdminCheckPermission.java +++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/annotation/SaAdminCheckPermission.java @@ -28,6 +28,11 @@ public @interface SaAdminCheckPermission { String name() default ""; + /** + * 上级菜单名称 + */ + String parentName() default ""; + /** * 验证模式:AND | OR,默认AND * @return 验证模式 diff --git a/cash-common/cash-common-tools/src/main/java/com/czg/LoadingRole.java b/cash-common/cash-common-tools/src/main/java/com/czg/LoadingRole.java index b878d4118..e97378b81 100644 --- a/cash-common/cash-common-tools/src/main/java/com/czg/LoadingRole.java +++ b/cash-common/cash-common-tools/src/main/java/com/czg/LoadingRole.java @@ -85,6 +85,28 @@ public class LoadingRole implements CommandLineRunner { Method nameMethod = annotationClass.getMethod("name"); String permissionName = (String) nameMethod.invoke(annotation); + Method parentNameMethod = annotationClass.getMethod("parentName"); + String parentName = (String) parentNameMethod.invoke(annotation); + + String parentId; + if (StrUtil.isNotBlank(parentName)) { + String menuSql = "select * from sys_menu where title=?"; // 查询菜单是否存在 + Row menu1 = Db.selectOneBySql(menuSql, parentName); + if (menu1 == null) { + throw new RuntimeException(StrUtil.format("上级菜单不存在, 方法名{}, 方法路径:{}", method.getName(), fullPath)); + } + parentId = menu1.getString("menu_id"); + }else { + String menuSql = "select * from sys_menu where title=?"; // 查询菜单是否存在 + Row menu1 = Db.selectOneBySql(menuSql, "默认接口目录"); + if (menu1 == null) { + menuSql = "INSERT INTO `sys_menu` (`type`, `title`) VALUES (?, ?);"; + Db.insertBySql(menuSql, 0, "默认接口目录"); + } + menu1 = Db.selectOneBySql(menuSql, "默认接口目录"); + parentId = menu1.getString("menu_id"); + + } for (String s : permissions) { String sql = "select * from sys_menu where permission=?"; Row menu1 = Db.selectOneBySql(sql, s); @@ -98,9 +120,9 @@ public class LoadingRole implements CommandLineRunner { List count1 = Db.selectListBySql(listSql, menuId, 1L); if (count1.isEmpty()) { - sql = "INSERT INTO `sys_roles_menus` (`menu_id`, `role_id`) VALUES (?, ?);"; + sql = "INSERT INTO `sys_roles_menus` (`menu_id`, `role_id`, `pid`) VALUES (?, ?, ?);"; Db.insertBySql(sql, menuId, 1L); - log.info("接口菜单添加成功, 菜单名称: {}, 菜单权限: {}", title, permission); + log.info("接口菜单添加成功, 菜单名称: {}, 菜单权限: {}", title, permission, parentId); } if (!title.equals(permissionName) || !fullPath.equals(url) || !httpMethod.equals(method1)) { From 998bf2e0525f5a10cddc581dadedf7030a9741ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 09:17:34 +0800 Subject: [PATCH 10/15] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/controller/admin/RoleController.java | 14 +++- .../admin/RoleTemplateController.java | 53 +++++++++++++ .../com/czg/account/dto/RoleTemplateDTO.java | 40 ++++++++++ .../account/dto/role/RoleSaveTemplateDTO.java | 12 +++ .../czg/account/service/SysRoleService.java | 4 + .../czg/market/dto/SysRoleTemplateDTO.java | 67 ++++++++++++++++ .../czg/market/entity/SysRoleTemplate.java | 79 +++++++++++++++++++ .../service/SysRoleTemplateService.java | 22 ++++++ .../service/impl/SysRoleServiceImpl.java | 19 +++++ .../market/mapper/SysRoleTemplateMapper.java | 14 ++++ .../impl/SysRoleTemplateServiceImpl.java | 47 +++++++++++ .../mapper/SysRoleTemplateMapper.xml | 7 ++ 12 files changed, 374 insertions(+), 4 deletions(-) create mode 100644 cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java create mode 100644 cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java create mode 100644 cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java create mode 100644 cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml 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 c09767af7..f67b62856 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 @@ -1,10 +1,7 @@ package com.czg.controller.admin; import com.czg.account.dto.PageDTO; -import com.czg.account.dto.role.RoleAddDTO; -import com.czg.account.dto.role.RoleEditDTO; -import com.czg.account.dto.role.RolePermissionDTO; -import com.czg.account.dto.role.RoleRemoveDTO; +import com.czg.account.dto.role.*; import com.czg.account.entity.SysRole; import com.czg.account.service.SysRoleService; import com.czg.annotation.SaAdminCheckPermission; @@ -102,4 +99,13 @@ public class RoleController { } return CzgResult.success(roleService.removeById(roleRemoveDTO.id())); } + + /** + * 根据模板保存角色 + */ + @PostMapping("/saveByTemplate") + public CzgResult saveByTemplate(@Validated @RequestBody RoleSaveTemplateDTO dto) { + return CzgResult.success(roleService.saveByTemplate(StpKit.USER.getShopId(), dto)); + } + } diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java new file mode 100644 index 000000000..3d9d52051 --- /dev/null +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java @@ -0,0 +1,53 @@ +package com.czg.controller.admin; + +import com.czg.account.dto.RoleTemplateDTO; +import com.czg.market.entity.SysRoleTemplate; +import com.czg.market.service.SysRoleTemplateService; +import com.czg.resp.CzgResult; +import jakarta.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 角色模板 + */ +@RestController +@RequestMapping("/admin/roleTemplate") +public class RoleTemplateController { + @Resource + private SysRoleTemplateService roleTemplateService; + + /** + * 添加 + */ + @PostMapping + public CzgResult save(@RequestBody @Validated RoleTemplateDTO dto) { + return CzgResult.success(roleTemplateService.saveInfo(dto)); + } + + /** + * 删除 + */ + @DeleteMapping + public CzgResult delete(@RequestParam Long id) { + return CzgResult.success(roleTemplateService.removeById(id)); + } + + /** + * 编辑 + */ + @PutMapping + public CzgResult edit(@RequestBody @Validated RoleTemplateDTO dto) { + return CzgResult.success(roleTemplateService.editInfo(dto)); + } + + /** + * 列表 + */ + @GetMapping("/list") + public CzgResult> list() { + return CzgResult.success(roleTemplateService.listInfo()); + } +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java new file mode 100644 index 000000000..5c3ddf070 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/RoleTemplateDTO.java @@ -0,0 +1,40 @@ +package com.czg.account.dto; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +@Data +public class RoleTemplateDTO { + private Integer id; + + /** + * 模板名称 + */ + @NotBlank(message = "模板名称不能为空") + private String name; + + /** + * 是否启用 + */ + private Integer isEnable; + + /** + * 排序 + */ + private Integer sort; + + /** + * 角色id列表 + */ + private Integer roleId; + /** + * 上级id + */ + private Integer pid; +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java new file mode 100644 index 000000000..26635fa4e --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/role/RoleSaveTemplateDTO.java @@ -0,0 +1,12 @@ +package com.czg.account.dto.role; + +import jakarta.validation.constraints.NotBlank; + +import java.util.List; + +public record RoleSaveTemplateDTO( + /* 角色名称 */ + @NotBlank + List roleTemplateIdList +) { +} 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 ac486b313..15e94ea69 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 @@ -4,6 +4,7 @@ import com.czg.account.dto.PageDTO; import com.czg.account.dto.role.RoleAddDTO; import com.czg.account.dto.role.RoleEditDTO; import com.czg.account.dto.role.RolePermissionDTO; +import com.czg.account.dto.role.RoleSaveTemplateDTO; import com.czg.account.entity.SysRole; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.service.IService; @@ -29,4 +30,7 @@ public interface SysRoleService extends IService { List getRoleMenu(long loginIdAsLong, Integer id, Integer type); Boolean editPermission(long userId, RolePermissionDTO rolePermissionDTO); + + Boolean saveByTemplate(long shopId, RoleSaveTemplateDTO dto); + } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java new file mode 100644 index 000000000..d21e32140 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/dto/SysRoleTemplateDTO.java @@ -0,0 +1,67 @@ + +package com.czg.market.dto; + +import java.io.Serializable; +import java.time.LocalDateTime; +import com.alibaba.fastjson2.annotation.JSONField; +import lombok.experimental.Accessors; +import java.io.Serial; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 角色模板 实体类。 + * + * @author zs + * @since 2025-12-08 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Accessors(chain = true) +public class SysRoleTemplateDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Integer id; + + /** + * 模板名称 + */ + private String name; + + /** + * 是否启用 + */ + private Integer isEnable; + + /** + * 排序 + */ + private Integer sort; + + /** + * 操作人 + */ + private String opUser; + + /** + * 创建人 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @JSONField(format = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime updateTime; + + /** + * 角色id列表 + */ + private String roleIdList; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java new file mode 100644 index 000000000..44fc947b4 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java @@ -0,0 +1,79 @@ +package com.czg.market.entity; + +import com.mybatisflex.annotation.Column; +import com.mybatisflex.annotation.Id; +import com.mybatisflex.annotation.KeyType; +import com.mybatisflex.annotation.Table; +import java.io.Serializable; +import java.time.LocalDateTime; + +import java.io.Serial; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 角色模板 实体类。 + * + * @author zs + * @since 2025-12-08 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Table("sys_role_template") +public class SysRoleTemplate implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @Id(keyType = KeyType.Auto) + private Integer id; + + /** + * 模板名称 + */ + private String name; + + /** + * 是否启用 + */ + private Integer isEnable; + + /** + * 排序 + */ + private Integer sort; + + /** + * 操作人 + */ + private String opUser; + private Long opSysUserId; + + /** + * 创建人 + */ + @Column(onInsertValue = "now()") + private LocalDateTime createTime; + + /** + * 修改时间 + */ + @Column(onInsertValue = "now()", onUpdateValue = "now()") + private LocalDateTime updateTime; + + /** + * 角色id列表 + */ + private String roleId; + + /** + * 上级id + */ + private Integer pid; + +} diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java new file mode 100644 index 000000000..901d03938 --- /dev/null +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java @@ -0,0 +1,22 @@ +package com.czg.market.service; + +import com.czg.account.dto.RoleTemplateDTO; +import com.mybatisflex.core.service.IService; +import com.czg.market.entity.SysRoleTemplate; + +import java.util.List; + +/** + * 角色模板 服务层。 + * + * @author zs + * @since 2025-12-08 + */ +public interface SysRoleTemplateService extends IService { + + Boolean saveInfo(RoleTemplateDTO dto); + + List listInfo(); + + Boolean editInfo(RoleTemplateDTO dto); +} 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 2154d1439..8ab1e5cbe 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 @@ -9,18 +9,22 @@ import com.czg.account.dto.menu.MenuApiInfoItemDTO; import com.czg.account.dto.role.RoleAddDTO; import com.czg.account.dto.role.RoleEditDTO; import com.czg.account.dto.role.RolePermissionDTO; +import com.czg.account.dto.role.RoleSaveTemplateDTO; import com.czg.account.entity.*; import com.czg.account.service.CashMenuService; import com.czg.account.service.SysMenuService; import com.czg.account.service.SysRoleService; import com.czg.account.service.SysRolesMenusService; import com.czg.exception.CzgException; +import com.czg.market.entity.SysRoleTemplate; +import com.czg.market.service.SysRoleTemplateService; import com.czg.sa.StpKit; import com.czg.service.account.mapper.SysRoleMapper; import com.mybatisflex.core.paginate.Page; import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import jakarta.annotation.Resource; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -43,6 +47,9 @@ public class SysRoleServiceImpl extends ServiceImpl impl private SysRolesMenusService sysRolesMenusService; @Resource private CashMenuService cashMenuService; + @Resource + @Lazy + private SysRoleTemplateService roleTemplateService; @Override public List getByUserId(Long id) { @@ -237,6 +244,18 @@ public class SysRoleServiceImpl extends ServiceImpl impl throw new CzgException("保存失败"); } + @Override + public Boolean saveByTemplate(long shopId, RoleSaveTemplateDTO dto) { + roleTemplateService.list(new QueryWrapper().in(SysRoleTemplate::getId, dto.roleTemplateIdList())).forEach(item -> { + SysRole role = getById(item.getRoleId()); + role.setShopId(shopId); + role.setCreateTime(null); + role.setId(null); + save(role); + }); + return true; + } + @Override @Transactional(rollbackFor = Exception.class) public Boolean edit(RoleEditDTO roleEditDTO) { diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java new file mode 100644 index 000000000..6b954b139 --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java @@ -0,0 +1,14 @@ +package com.czg.service.market.mapper; + +import com.mybatisflex.core.BaseMapper; +import com.czg.market.entity.SysRoleTemplate; + +/** + * 角色模板 映射层。 + * + * @author zs + * @since 2025-12-08 + */ +public interface SysRoleTemplateMapper extends BaseMapper { + +} diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java new file mode 100644 index 000000000..b1340152f --- /dev/null +++ b/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java @@ -0,0 +1,47 @@ +package com.czg.service.market.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.czg.account.dto.RoleTemplateDTO; +import com.czg.account.service.SysRoleService; +import com.czg.sa.StpKit; +import com.mybatisflex.spring.service.impl.ServiceImpl; +import com.czg.market.entity.SysRoleTemplate; +import com.czg.market.service.SysRoleTemplateService; +import com.czg.service.market.mapper.SysRoleTemplateMapper; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 角色模板 服务层实现。 + * + * @author zs + * @since 2025-12-08 + */ +@Service +public class SysRoleTemplateServiceImpl extends ServiceImpl implements SysRoleTemplateService{ + @Resource + private SysRoleService roleService; + + @Override + public Boolean saveInfo(RoleTemplateDTO dto) { + SysRoleTemplate roleTemplate = BeanUtil.copyProperties(dto, SysRoleTemplate.class, "roleIdList"); + roleTemplate.setOpUser(StpKit.USER.getAccount()); + roleTemplate.setOpSysUserId(StpKit.USER.getLoginIdAsLong()); + return save(roleTemplate); + } + + @Override + public List listInfo() { + return list(); + } + + @Override + public Boolean editInfo(RoleTemplateDTO dto) { + SysRoleTemplate roleTemplate = BeanUtil.copyProperties(dto, SysRoleTemplate.class); + roleTemplate.setOpUser(StpKit.USER.getAccount()); + roleTemplate.setOpSysUserId(StpKit.USER.getLoginIdAsLong()); + return updateById(roleTemplate); + } +} diff --git a/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml new file mode 100644 index 000000000..9f76411e3 --- /dev/null +++ b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml @@ -0,0 +1,7 @@ + + + + + From f6d384eef48db00e0dea049acc8ac22b4f8e41dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 09:20:11 +0800 Subject: [PATCH 11/15] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/service/account}/mapper/SysRoleTemplateMapper.java | 2 +- .../account}/service/impl/SysRoleTemplateServiceImpl.java | 4 ++-- .../src/main/resources/mapper/SysRoleTemplateMapper.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) rename cash-service/{market-service/src/main/java/com/czg/service/market => account-service/src/main/java/com/czg/service/account}/mapper/SysRoleTemplateMapper.java (85%) rename cash-service/{market-service/src/main/java/com/czg/service/market => account-service/src/main/java/com/czg/service/account}/service/impl/SysRoleTemplateServiceImpl.java (93%) diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysRoleTemplateMapper.java similarity index 85% rename from cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java rename to cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysRoleTemplateMapper.java index 6b954b139..1f46f8ccf 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/mapper/SysRoleTemplateMapper.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/mapper/SysRoleTemplateMapper.java @@ -1,4 +1,4 @@ -package com.czg.service.market.mapper; +package com.czg.service.account.mapper; import com.mybatisflex.core.BaseMapper; import com.czg.market.entity.SysRoleTemplate; diff --git a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java similarity index 93% rename from cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java rename to cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java index b1340152f..59d8e010a 100644 --- a/cash-service/market-service/src/main/java/com/czg/service/market/service/impl/SysRoleTemplateServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java @@ -1,13 +1,13 @@ -package com.czg.service.market.service.impl; +package com.czg.service.account.service.impl; import cn.hutool.core.bean.BeanUtil; import com.czg.account.dto.RoleTemplateDTO; import com.czg.account.service.SysRoleService; import com.czg.sa.StpKit; +import com.czg.service.account.mapper.SysRoleTemplateMapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import com.czg.market.entity.SysRoleTemplate; import com.czg.market.service.SysRoleTemplateService; -import com.czg.service.market.mapper.SysRoleTemplateMapper; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; diff --git a/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml index 9f76411e3..5001bcc52 100644 --- a/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml +++ b/cash-service/market-service/src/main/resources/mapper/SysRoleTemplateMapper.xml @@ -2,6 +2,6 @@ - + From 70baf291b6c3cc3d31d1730c12560263b569b8f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 09:58:34 +0800 Subject: [PATCH 12/15] =?UTF-8?q?=E8=BD=BD=E5=85=A5=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/RoleTemplateController.java | 3 ++ .../controller/user/UShopUserController.java | 1 + .../src/main/java/com/czg/LoadingRole.java | 39 ++++++++++--------- 3 files changed, 24 insertions(+), 19 deletions(-) diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java index 3d9d52051..5716ed854 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java @@ -1,6 +1,7 @@ package com.czg.controller.admin; import com.czg.account.dto.RoleTemplateDTO; +import com.czg.annotation.SaAdminCheckPermission; import com.czg.market.entity.SysRoleTemplate; import com.czg.market.service.SysRoleTemplateService; import com.czg.resp.CzgResult; @@ -22,6 +23,7 @@ public class RoleTemplateController { /** * 添加 */ + @SaAdminCheckPermission(value = "roleTemplate:add", name = "角色模板添加") @PostMapping public CzgResult save(@RequestBody @Validated RoleTemplateDTO dto) { return CzgResult.success(roleTemplateService.saveInfo(dto)); @@ -30,6 +32,7 @@ public class RoleTemplateController { /** * 删除 */ + @SaAdminCheckPermission(value = "roleTemplate:delete", name = "角色模板删除") @DeleteMapping public CzgResult delete(@RequestParam Long id) { return CzgResult.success(roleTemplateService.removeById(id)); diff --git a/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java b/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java index f171892a7..92e579b09 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/user/UShopUserController.java @@ -14,6 +14,7 @@ import com.czg.account.vo.MemberPointsLogVO; import com.czg.account.vo.PointsShopListVO; import com.czg.account.vo.ShopUserFlowInfoVO; import com.czg.annotation.Debounce; +import com.czg.annotation.SaAdminCheckPermission; import com.czg.resp.CzgResult; import com.czg.sa.StpKit; import com.czg.utils.MyQueryWrapper; diff --git a/cash-common/cash-common-tools/src/main/java/com/czg/LoadingRole.java b/cash-common/cash-common-tools/src/main/java/com/czg/LoadingRole.java index e97378b81..5c71ea845 100644 --- a/cash-common/cash-common-tools/src/main/java/com/czg/LoadingRole.java +++ b/cash-common/cash-common-tools/src/main/java/com/czg/LoadingRole.java @@ -88,27 +88,26 @@ public class LoadingRole implements CommandLineRunner { Method parentNameMethod = annotationClass.getMethod("parentName"); String parentName = (String) parentNameMethod.invoke(annotation); + String parentId; + String parentMenuSql = "select * from sys_menu where title=?"; // 查询菜单是否存在 + Row parentMenu; if (StrUtil.isNotBlank(parentName)) { - String menuSql = "select * from sys_menu where title=?"; // 查询菜单是否存在 - Row menu1 = Db.selectOneBySql(menuSql, parentName); - if (menu1 == null) { + parentMenu = Db.selectOneBySql(parentMenuSql, parentName); + if (parentMenu == null) { throw new RuntimeException(StrUtil.format("上级菜单不存在, 方法名{}, 方法路径:{}", method.getName(), fullPath)); } - parentId = menu1.getString("menu_id"); }else { - String menuSql = "select * from sys_menu where title=?"; // 查询菜单是否存在 - Row menu1 = Db.selectOneBySql(menuSql, "默认接口目录"); - if (menu1 == null) { - menuSql = "INSERT INTO `sys_menu` (`type`, `title`) VALUES (?, ?);"; - Db.insertBySql(menuSql, 0, "默认接口目录"); + parentMenu = Db.selectOneBySql(parentMenuSql, "默认接口目录"); + if (parentMenu == null) { + Db.insertBySql("INSERT INTO `sys_menu` (`type`, `title`) VALUES (?, ?);", 0, "默认接口目录"); } - menu1 = Db.selectOneBySql(menuSql, "默认接口目录"); - parentId = menu1.getString("menu_id"); - + parentMenu = Db.selectOneBySql(parentMenuSql, "默认接口目录"); } + parentId = parentMenu.getString("menu_id"); for (String s : permissions) { String sql = "select * from sys_menu where permission=?"; + Row menu1 = Db.selectOneBySql(sql, s); if (menu1 != null) { Long menuId = menu1.getLong("menu_id"); @@ -119,23 +118,25 @@ public class LoadingRole implements CommandLineRunner { String listSql = "select * from sys_roles_menus where menu_id=? and role_id=?"; List count1 = Db.selectListBySql(listSql, menuId, 1L); + + if (count1.isEmpty()) { - sql = "INSERT INTO `sys_roles_menus` (`menu_id`, `role_id`, `pid`) VALUES (?, ?, ?);"; + sql = "INSERT INTO `sys_roles_menus` (`menu_id`, `role_id`) VALUES (?, ?);"; Db.insertBySql(sql, menuId, 1L); - log.info("接口菜单添加成功, 菜单名称: {}, 菜单权限: {}", title, permission, parentId); + log.info("接口菜单添加成功, 菜单名称: {}, 菜单权限: {}", title, permission); } if (!title.equals(permissionName) || !fullPath.equals(url) || !httpMethod.equals(method1)) { - sql = "update sys_menu set title=?, url=?, method=? where menu_id=?"; - Db.updateBySql(sql, permissionName, fullPath, httpMethod, menuId); + sql = "update sys_menu set title=?, url=?, method=?, pid=? where menu_id=?"; + Db.updateBySql(sql, permissionName, fullPath, httpMethod, parentId, menuId); log.info("接口菜单修改成功, 旧名称: {}, 新菜单名称: {}", title, permissionName); } continue; } - sql = "INSERT INTO `czg_cashier`.`sys_menu` ( `sub_count`, `type`, `title`, `name`, `component`, `menu_sort`, `icon`, `path`, `i_frame`, `cache`, `hidden`, `permission`, `create_by`, `update_by`, `create_time`, `update_time`, `active_menu`, `is_shop`, `url`, `method`) VALUES " + - "(0, 2, ?, NULL, '', 2, '', '', b'0', b'0', b'0', ?, NULL, NULL, ?, NULL, NULL, 0, ?, ?);"; - Db.insertBySql(sql, StrUtil.isNotBlank(permissionName) ? permissionName : s, s, DateUtil.date(), fullPath, httpMethod); + sql = "INSERT INTO `czg_cashier`.`sys_menu` ( `sub_count`, `type`, `title`, `name`, `component`, `menu_sort`, `icon`, `path`, `i_frame`, `cache`, `hidden`, `permission`, `create_by`, `update_by`, `create_time`, `update_time`, `active_menu`, `is_shop`, `url`, `method`, `pid`) VALUES " + + "(0, 2, ?, NULL, '', 2, '', '', b'0', b'0', b'0', ?, NULL, NULL, ?, NULL, NULL, 0, ?, ?, ?);"; + Db.insertBySql(sql, StrUtil.isNotBlank(permissionName) ? permissionName : s, s, DateUtil.date(), fullPath, httpMethod, parentId); sql = "select * from sys_menu where permission=?"; Row info = Db.selectOneBySql(sql, s); Long menuId = info.getLong("menu_id"); From 668157a75c8843df6022efd8fd542738ab581720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 10:17:13 +0800 Subject: [PATCH 13/15] =?UTF-8?q?=E8=BD=BD=E5=85=A5=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/czg/controller/admin/RoleTemplateController.java | 6 ++---- .../java/com/czg/market/service/SysRoleTemplateService.java | 2 +- .../account/service/impl/SysRoleTemplateServiceImpl.java | 5 +++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java index 5716ed854..8e2b71d56 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java @@ -23,7 +23,6 @@ public class RoleTemplateController { /** * 添加 */ - @SaAdminCheckPermission(value = "roleTemplate:add", name = "角色模板添加") @PostMapping public CzgResult save(@RequestBody @Validated RoleTemplateDTO dto) { return CzgResult.success(roleTemplateService.saveInfo(dto)); @@ -32,7 +31,6 @@ public class RoleTemplateController { /** * 删除 */ - @SaAdminCheckPermission(value = "roleTemplate:delete", name = "角色模板删除") @DeleteMapping public CzgResult delete(@RequestParam Long id) { return CzgResult.success(roleTemplateService.removeById(id)); @@ -50,7 +48,7 @@ public class RoleTemplateController { * 列表 */ @GetMapping("/list") - public CzgResult> list() { - return CzgResult.success(roleTemplateService.listInfo()); + public CzgResult> list(@RequestParam(required = false) Long pid) { + return CzgResult.success(roleTemplateService.listInfo(pid)); } } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java index 901d03938..6d5298c09 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/SysRoleTemplateService.java @@ -16,7 +16,7 @@ public interface SysRoleTemplateService extends IService { Boolean saveInfo(RoleTemplateDTO dto); - List listInfo(); + List listInfo(Long pid); Boolean editInfo(RoleTemplateDTO dto); } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java index 59d8e010a..98d27ef8b 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java @@ -5,6 +5,7 @@ import com.czg.account.dto.RoleTemplateDTO; import com.czg.account.service.SysRoleService; import com.czg.sa.StpKit; import com.czg.service.account.mapper.SysRoleTemplateMapper; +import com.mybatisflex.core.query.QueryWrapper; import com.mybatisflex.spring.service.impl.ServiceImpl; import com.czg.market.entity.SysRoleTemplate; import com.czg.market.service.SysRoleTemplateService; @@ -33,8 +34,8 @@ public class SysRoleTemplateServiceImpl extends ServiceImpl listInfo() { - return list(); + public List listInfo(Long pid) { + return list(new QueryWrapper().eq(SysRoleTemplate::getPid, pid)); } @Override From 034be841a456484323aa534da7093242e7de3064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 10:50:14 +0800 Subject: [PATCH 14/15] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/czg/controller/admin/RoleTemplateController.java | 1 + .../account/service/impl/SysRoleTemplateServiceImpl.java | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java index 8e2b71d56..f84bb6cb7 100644 --- a/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java +++ b/cash-api/account-server/src/main/java/com/czg/controller/admin/RoleTemplateController.java @@ -52,3 +52,4 @@ public class RoleTemplateController { return CzgResult.success(roleTemplateService.listInfo(pid)); } } + diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java index 98d27ef8b..e5bacd3c6 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java @@ -35,7 +35,11 @@ public class SysRoleTemplateServiceImpl extends ServiceImpl listInfo(Long pid) { - return list(new QueryWrapper().eq(SysRoleTemplate::getPid, pid)); + QueryWrapper queryWrapper = new QueryWrapper().eq(SysRoleTemplate::getPid, pid); + if (pid == null) { + queryWrapper.isNull(SysRoleTemplate::getPid); + } + return list(queryWrapper); } @Override From b28f2557b3b29aabc5ca3ab3d0349c2983dec387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 11:09:16 +0800 Subject: [PATCH 15/15] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/czg/account/entity/SysRole.java | 2 ++ .../main/java/com/czg/market/entity/SysRoleTemplate.java | 2 +- .../account/service/impl/SysRoleTemplateServiceImpl.java | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysRole.java b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysRole.java index da1d905e2..cbe422399 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysRole.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/entity/SysRole.java @@ -7,6 +7,7 @@ import com.mybatisflex.annotation.Table; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; import java.io.Serial; import java.io.Serializable; @@ -23,6 +24,7 @@ import java.time.LocalDateTime; @NoArgsConstructor @AllArgsConstructor @Table("sys_role") +@Accessors(chain = true) public class SysRole implements Serializable { @Serial diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java index 44fc947b4..4dcb99254 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java @@ -69,7 +69,7 @@ public class SysRoleTemplate implements Serializable { /** * 角色id列表 */ - private String roleId; + private Long roleId; /** * 上级id diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java index e5bacd3c6..3a3d50097 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java @@ -2,6 +2,7 @@ package com.czg.service.account.service.impl; import cn.hutool.core.bean.BeanUtil; import com.czg.account.dto.RoleTemplateDTO; +import com.czg.account.entity.SysRole; import com.czg.account.service.SysRoleService; import com.czg.sa.StpKit; import com.czg.service.account.mapper.SysRoleTemplateMapper; @@ -29,6 +30,11 @@ public class SysRoleTemplateServiceImpl extends ServiceImpl