角色模板
This commit is contained in:
@@ -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<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.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<SysRole> {
|
||||
List<Long> getRoleMenu(long loginIdAsLong, Integer id, Integer type);
|
||||
|
||||
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.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<SysRoleMapper, SysRole> impl
|
||||
private SysRolesMenusService sysRolesMenusService;
|
||||
@Resource
|
||||
private CashMenuService cashMenuService;
|
||||
@Resource
|
||||
@Lazy
|
||||
private SysRoleTemplateService roleTemplateService;
|
||||
|
||||
@Override
|
||||
public List<SysRole> getByUserId(Long id) {
|
||||
@@ -237,6 +244,18 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> 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) {
|
||||
|
||||
@@ -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