角色模板
This commit is contained in:
@@ -1,10 +1,7 @@
|
|||||||
package com.czg.controller.admin;
|
package com.czg.controller.admin;
|
||||||
|
|
||||||
import com.czg.account.dto.PageDTO;
|
import com.czg.account.dto.PageDTO;
|
||||||
import com.czg.account.dto.role.RoleAddDTO;
|
import com.czg.account.dto.role.*;
|
||||||
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.entity.SysRole;
|
||||||
import com.czg.account.service.SysRoleService;
|
import com.czg.account.service.SysRoleService;
|
||||||
import com.czg.annotation.SaAdminCheckPermission;
|
import com.czg.annotation.SaAdminCheckPermission;
|
||||||
@@ -102,4 +99,13 @@ public class RoleController {
|
|||||||
}
|
}
|
||||||
return CzgResult.success(roleService.removeById(roleRemoveDTO.id()));
|
return CzgResult.success(roleService.removeById(roleRemoveDTO.id()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据模板保存角色
|
||||||
|
*/
|
||||||
|
@PostMapping("/saveByTemplate")
|
||||||
|
public CzgResult<Boolean> saveByTemplate(@Validated @RequestBody RoleSaveTemplateDTO dto) {
|
||||||
|
return CzgResult.success(roleService.saveByTemplate(StpKit.USER.getShopId(), dto));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<Boolean> save(@RequestBody @Validated RoleTemplateDTO dto) {
|
||||||
|
return CzgResult.success(roleTemplateService.saveInfo(dto));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*/
|
||||||
|
@DeleteMapping
|
||||||
|
public CzgResult<Boolean> delete(@RequestParam Long id) {
|
||||||
|
return CzgResult.success(roleTemplateService.removeById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
*/
|
||||||
|
@PutMapping
|
||||||
|
public CzgResult<Boolean> edit(@RequestBody @Validated RoleTemplateDTO dto) {
|
||||||
|
return CzgResult.success(roleTemplateService.editInfo(dto));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list")
|
||||||
|
public CzgResult<List<SysRoleTemplate>> list() {
|
||||||
|
return CzgResult.success(roleTemplateService.listInfo());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.czg.account.dto.role;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public record RoleSaveTemplateDTO(
|
||||||
|
/* 角色名称 */
|
||||||
|
@NotBlank
|
||||||
|
List<Integer> roleTemplateIdList
|
||||||
|
) {
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ import com.czg.account.dto.PageDTO;
|
|||||||
import com.czg.account.dto.role.RoleAddDTO;
|
import com.czg.account.dto.role.RoleAddDTO;
|
||||||
import com.czg.account.dto.role.RoleEditDTO;
|
import com.czg.account.dto.role.RoleEditDTO;
|
||||||
import com.czg.account.dto.role.RolePermissionDTO;
|
import com.czg.account.dto.role.RolePermissionDTO;
|
||||||
|
import com.czg.account.dto.role.RoleSaveTemplateDTO;
|
||||||
import com.czg.account.entity.SysRole;
|
import com.czg.account.entity.SysRole;
|
||||||
import com.mybatisflex.core.paginate.Page;
|
import com.mybatisflex.core.paginate.Page;
|
||||||
import com.mybatisflex.core.service.IService;
|
import com.mybatisflex.core.service.IService;
|
||||||
@@ -29,4 +30,7 @@ public interface SysRoleService extends IService<SysRole> {
|
|||||||
List<Long> getRoleMenu(long loginIdAsLong, Integer id, Integer type);
|
List<Long> getRoleMenu(long loginIdAsLong, Integer id, Integer type);
|
||||||
|
|
||||||
Boolean editPermission(long userId, RolePermissionDTO rolePermissionDTO);
|
Boolean editPermission(long userId, RolePermissionDTO rolePermissionDTO);
|
||||||
|
|
||||||
|
Boolean saveByTemplate(long shopId, RoleSaveTemplateDTO dto);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<SysRoleTemplate> {
|
||||||
|
|
||||||
|
Boolean saveInfo(RoleTemplateDTO dto);
|
||||||
|
|
||||||
|
List<SysRoleTemplate> listInfo();
|
||||||
|
|
||||||
|
Boolean editInfo(RoleTemplateDTO dto);
|
||||||
|
}
|
||||||
@@ -9,18 +9,22 @@ import com.czg.account.dto.menu.MenuApiInfoItemDTO;
|
|||||||
import com.czg.account.dto.role.RoleAddDTO;
|
import com.czg.account.dto.role.RoleAddDTO;
|
||||||
import com.czg.account.dto.role.RoleEditDTO;
|
import com.czg.account.dto.role.RoleEditDTO;
|
||||||
import com.czg.account.dto.role.RolePermissionDTO;
|
import com.czg.account.dto.role.RolePermissionDTO;
|
||||||
|
import com.czg.account.dto.role.RoleSaveTemplateDTO;
|
||||||
import com.czg.account.entity.*;
|
import com.czg.account.entity.*;
|
||||||
import com.czg.account.service.CashMenuService;
|
import com.czg.account.service.CashMenuService;
|
||||||
import com.czg.account.service.SysMenuService;
|
import com.czg.account.service.SysMenuService;
|
||||||
import com.czg.account.service.SysRoleService;
|
import com.czg.account.service.SysRoleService;
|
||||||
import com.czg.account.service.SysRolesMenusService;
|
import com.czg.account.service.SysRolesMenusService;
|
||||||
import com.czg.exception.CzgException;
|
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.sa.StpKit;
|
||||||
import com.czg.service.account.mapper.SysRoleMapper;
|
import com.czg.service.account.mapper.SysRoleMapper;
|
||||||
import com.mybatisflex.core.paginate.Page;
|
import com.mybatisflex.core.paginate.Page;
|
||||||
import com.mybatisflex.core.query.QueryWrapper;
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
import com.mybatisflex.spring.service.impl.ServiceImpl;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -43,6 +47,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||||||
private SysRolesMenusService sysRolesMenusService;
|
private SysRolesMenusService sysRolesMenusService;
|
||||||
@Resource
|
@Resource
|
||||||
private CashMenuService cashMenuService;
|
private CashMenuService cashMenuService;
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private SysRoleTemplateService roleTemplateService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SysRole> getByUserId(Long id) {
|
public List<SysRole> getByUserId(Long id) {
|
||||||
@@ -237,6 +244,18 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||||||
throw new CzgException("保存失败");
|
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
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean edit(RoleEditDTO roleEditDTO) {
|
public Boolean edit(RoleEditDTO roleEditDTO) {
|
||||||
|
|||||||
@@ -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<SysRoleTemplate> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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<SysRoleTemplateMapper, SysRoleTemplate> 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<SysRoleTemplate> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.czg.service.market.mapper.SysRoleTemplateMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user