Browse Source

web平台角色接口增加+旧接口字段调整

hxd 3 months ago
parent
commit
2db69f79fb

+ 3 - 3
portal-service-application/src/main/java/com/hfln/portal/application/controller/admin/AdminLoginController.java

@@ -74,11 +74,11 @@ public class AdminLoginController {
         return ApiResult.success();
     }
 
-    @PostMapping("/add")
+    @PostMapping("/addAccount")
     @Operation(summary = "创建b端用户密码")
-    public ApiResult<Void> add(@Valid @RequestBody AdminAddParam param) {
+    public ApiResult<Void> addAcount(@Valid @RequestBody AdminAddParam param) {
 
-        adminGateway.add(param);
+        adminGateway.addAccount(param);
         return ApiResult.success();
     }
 }

+ 51 - 0
portal-service-application/src/main/java/com/hfln/portal/application/controller/admin/AdminRoleController.java

@@ -0,0 +1,51 @@
+package com.hfln.portal.application.controller.admin;
+
+
+import cn.hfln.framework.catchlog.CatchAndLog;
+import cn.hfln.framework.dto.ApiResult;
+import com.hfln.portal.common.dto.data.role.RoleListDTO;
+import com.hfln.portal.common.request.admin.AddRoleParam;
+import com.hfln.portal.domain.gateway.AdminGateway;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+@RestController
+@CatchAndLog
+@Tag(name = "web端角色相关")
+@Slf4j
+@RequestMapping("/admin/role")
+public class AdminRoleController {
+
+    @Autowired
+    private AdminGateway adminGateway;
+
+    @PostMapping("/addRole")
+    @Operation(summary = "新增角色")
+    public ApiResult<Void> addRole(@RequestBody @Valid AddRoleParam params){
+
+        adminGateway.addRole(params);
+        return ApiResult.success();
+    }
+
+    @PostMapping("/disable")
+    @Operation(summary = "禁用角色")
+    public ApiResult<Void> disableRole(@RequestParam String roleCode){
+
+        adminGateway.disableRole(roleCode);
+        return ApiResult.success();
+    }
+
+    @GetMapping("/roleList")
+    @Operation(summary = "获取角色列表")
+    public ApiResult<List<RoleListDTO>> roleList(){
+        List<RoleListDTO> roleList = adminGateway.roleList();
+        return ApiResult.success(roleList);
+    }
+
+}

+ 22 - 0
portal-service-common/src/main/java/com/hfln/portal/common/dto/data/role/RoleListDTO.java

@@ -0,0 +1,22 @@
+package com.hfln.portal.common.dto.data.role;
+
+import com.hfln.portal.common.vo.BaseVO;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class RoleListDTO extends BaseVO {
+
+    /**
+     * 角色编码
+     */
+    private String roleCode;
+
+
+    /**
+     * 角色名称
+     */
+    private String roleName;
+}

+ 16 - 14
portal-service-common/src/main/java/com/hfln/portal/common/dto/data/room/RegionInfo.java

@@ -18,8 +18,8 @@ public class RegionInfo {
     @Schema(description = "宽度")
     private BigDecimal width;
 
-    @Schema(description = "度")
-    private BigDecimal height;
+    @Schema(description = "度")
+    private BigDecimal length;
 
     @Schema(description = "距离顶点相对距离")
     private BigDecimal top;
@@ -27,23 +27,25 @@ public class RegionInfo {
     @Schema(description = "距离左侧边相对距离")
     private BigDecimal left;
 
-    @Schema(description = "旋转角度: 0-不旋转,1-旋转90°,2-旋转180°,3-旋转270°")
+    @Schema(description = "旋转角度: 0°,90°,180°,270°")
     private Boolean rotate;
 
     @Schema(description = "距离雷达的X距离")
-    private BigDecimal yuanX;
-
-    @Schema(description = "距离雷达的Y距离")
-    private BigDecimal yuanY;
-
-    @Schema(description = "长度")
-    private String widthToM;
-
-    @Schema(description = "宽度")
-    private String heightToM;
-
     private BigDecimal x;
 
+    @Schema(description = "距离雷达的Y距离")
     private BigDecimal y;
 
+    //    @Schema(description = "距离雷达的X距离")
+    //    private BigDecimal yuanX;
+    //
+    //    @Schema(description = "距离雷达的Y距离")
+    //    private BigDecimal yuanY;
+    //
+    //    @Schema(description = "长度")
+    //    private String widthToM;
+    //
+    //    @Schema(description = "宽度")
+    //    private String heightToM;
+
 }

+ 23 - 0
portal-service-common/src/main/java/com/hfln/portal/common/request/admin/AddRoleParam.java

@@ -0,0 +1,23 @@
+package com.hfln.portal.common.request.admin;
+
+import com.hfln.portal.common.vo.BaseVO;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+
+@Data
+public class AddRoleParam extends BaseVO {
+
+    @Schema(description = "角色编码")
+    @NotBlank(message = "角色编码不能为空!")
+    private String roleCode;
+
+    @Schema(description = "角色名称")
+    @NotBlank(message = "角色名称不能为空!")
+    private String roleName;
+
+    @Schema(description = "角色描述")
+    private String roleDesc;
+}

+ 5 - 0
portal-service-common/src/main/java/com/hfln/portal/common/request/admin/AdminAddParam.java

@@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
 
 @Data
@@ -19,4 +20,8 @@ public class AdminAddParam {
 
     @Schema(description = "电话号码")
     private String phone;
+
+    @Schema(description = "角色")
+    @NotNull(message = "角色不能为空")
+    private Long roleId;
 }

+ 9 - 0
portal-service-domain/src/main/java/com/hfln/portal/domain/exception/ErrorEnum.java

@@ -88,6 +88,15 @@ public enum ErrorEnum implements ErrorEnumInterface{
     FILE_NOT_COMPLETE("80004", "文件格式不完整!"),
     FILE_DEL_OR_NOT_EXIST("80005", "文件已删除或不存在!"),
     FILE_EXIST_MULTIPLE("80006", "存在多个文件!"),
+
+
+    /**
+     * web端角色相关
+     */
+    ROLE_ALREADY_EXISTS("90001","角色已存在"),
+    ROLE_ALREADY_DISABLED("90002","角色已禁用"),
+    ROLE_CODE_NOT_NULL("90003","角色编码不能为空"),
+    ROLE_NOT_EXIST("90004","角色不存在")
     ;
 
     private final String errorCode;

+ 22 - 5
portal-service-domain/src/main/java/com/hfln/portal/domain/gateway/AdminGateway.java

@@ -1,32 +1,49 @@
 package com.hfln.portal.domain.gateway;
 
 import com.hfln.portal.common.dto.data.device.DeviceDTO;
-import com.hfln.portal.common.request.admin.AdminAddParam;
-import com.hfln.portal.common.request.admin.AdminLoginParam;
-import com.hfln.portal.common.request.admin.AdminResetParam;
-import com.hfln.portal.common.request.admin.DeviceAddParam;
+import com.hfln.portal.common.dto.data.role.RoleListDTO;
+import com.hfln.portal.common.request.admin.*;
 import com.hfln.portal.common.request.device.DeviceListQueryReq;
 import com.hfln.portal.common.response.admin.AdminLoginRes;
 import com.hfln.portal.common.vo.PageRecord;
 import com.hfln.portal.common.vo.UploadRes;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.validation.Valid;
 import java.io.IOException;
+import java.util.List;
 
 public interface AdminGateway {
 
+    /**
+     * web设备列表相关
+     */
+
     UploadRes uploadDev(MultipartFile file) throws IOException;
 
     PageRecord<DeviceDTO> queryDevList(DeviceListQueryReq queryReq);
 
     void addOneDevice(DeviceAddParam deviceAddParam);
 
+    /**
+     * web用户登录相关
+     */
     AdminLoginRes login(AdminLoginParam param);
 
     void sendCode();
 
     void reset(AdminResetParam param);
 
-    void add(@Valid AdminAddParam param);
+    void addAccount(@Valid AdminAddParam param);;
+
+    /**
+     * web角色相关
+     */
+    void addRole(@Valid AddRoleParam param);
+
+    void disableRole(@RequestParam String roleCode);
+
+    List<RoleListDTO> roleList();
 }
+

+ 77 - 10
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/gateway/impl/AdminGatewayImpl.java

@@ -6,14 +6,13 @@ import cn.dev33.satoken.stp.parameter.SaLoginParameter;
 import cn.hfln.framework.extension.BizException;
 import cn.hfln.framework.redis.util.RedisUtil;
 import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.hfln.portal.common.constant.redis.RedisCacheConstant;
 import com.hfln.portal.common.dto.DevInfoImportDto;
 import com.hfln.portal.common.dto.data.device.DeviceDTO;
-import com.hfln.portal.common.request.admin.AdminAddParam;
-import com.hfln.portal.common.request.admin.AdminLoginParam;
-import com.hfln.portal.common.request.admin.AdminResetParam;
-import com.hfln.portal.common.request.admin.DeviceAddParam;
+import com.hfln.portal.common.dto.data.role.RoleListDTO;
+import com.hfln.portal.common.request.admin.*;
 import com.hfln.portal.common.request.device.DeviceListQueryReq;
 import com.hfln.portal.common.response.admin.AdminLoginRes;
 import com.hfln.portal.common.vo.PageRecord;
@@ -25,16 +24,17 @@ import com.hfln.portal.domain.exception.ErrorEnum;
 import com.hfln.portal.domain.gateway.AdminGateway;
 import com.hfln.portal.domain.gateway.sms.SmsGateway;
 import com.hfln.portal.infrastructure.config.UserAuthService;
-import com.hfln.portal.infrastructure.po.AdminUserInfo;
-import com.hfln.portal.infrastructure.po.BasePO;
-import com.hfln.portal.infrastructure.po.DevInfo;
+import com.hfln.portal.infrastructure.po.*;
 import com.hfln.portal.infrastructure.service.AdminUserService;
 import com.hfln.portal.infrastructure.service.DevInfoService;
+import com.hfln.portal.infrastructure.service.TblRoleService;
+import com.hfln.portal.infrastructure.service.TblUserRoleService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 import org.springframework.web.multipart.MultipartFile;
@@ -64,6 +64,12 @@ public class AdminGatewayImpl implements AdminGateway {
     @Autowired
     private UserAuthService userAuthService;
 
+    @Autowired
+    private TblUserRoleService tblUserRoleService;
+
+    @Autowired
+    private TblRoleService tblRoleService;
+
     @Value("${sa-token.admin.timeout}")
     private long adminTimeout;
 
@@ -220,15 +226,76 @@ public class AdminGatewayImpl implements AdminGateway {
     }
 
     @Override
-    public void add(AdminAddParam param) {
-
+    @Transactional
+    public void addAccount(AdminAddParam param) {
+        // 1. 检查账号是否已存在
         AdminUserInfo exist = adminUserService.queryByAccount(param.getAccount());
         if (Objects.nonNull(exist)) {
             throw new BizException(ErrorEnum.USER_ALREADY_EXISTS.getErrorCode(), ErrorEnum.USER_ALREADY_EXISTS.getErrorMessage());
         }
-
+        //2.保存新用户到 admin_user_info 表
         AdminUserInfo adminUserInfo = CopyUtils.copy(param, AdminUserInfo.class);
         adminUserInfo.setPassword(PasswordUtil.encrypt(param.getPassword()));
         adminUserService.save(adminUserInfo);
+
+        //3.保存用户角色到 tbl_user_role 表
+        TblUserRole userRole = new TblUserRole();
+        userRole.setUserId(adminUserInfo.getUserId());
+        userRole.setRoleId(param.getRoleId());
+        tblUserRoleService.save(userRole);
+    }
+
+    @Override
+    public void addRole(AddRoleParam param) {
+        //1.检查角色是否存在
+        TblRole exist = tblRoleService.queryByRoleCode(param.getRoleCode());
+        if (Objects.nonNull(exist)){
+            throw new BizException(ErrorEnum.ROLE_ALREADY_EXISTS.getErrorCode(), ErrorEnum.ROLE_ALREADY_EXISTS.getErrorMessage());
+        }
+
+        //2.保存角色信息
+        TblRole role = CopyUtils.copy(param, TblRole.class);
+        role.setIsDeleted(BasePO.DeleteFlag.NOT_DELETED);
+        tblRoleService.save(role);
+    }
+
+    @Override
+    public void disableRole(String roleCode){
+        //1.判断roleCode非空
+        if (Objects.isNull(roleCode)){
+            throw new BizException(ErrorEnum.ROLE_CODE_NOT_NULL.getErrorCode(), ErrorEnum.ROLE_CODE_NOT_NULL.getErrorMessage());
+        }
+        TblRole role = tblRoleService.queryByRoleCode(roleCode);
+        //2.判断rolecode是否存在
+        if (role == null){
+            throw new BizException(ErrorEnum.ROLE_NOT_EXIST.getErrorCode(), ErrorEnum.ROLE_NOT_EXIST.getErrorMessage());
+        }
+
+        //3.检查角色是否已经禁用
+        if (Objects.equals(role.getIsDeleted(), 1)){
+            throw new BizException(ErrorEnum.ROLE_ALREADY_DISABLED.getErrorCode(), ErrorEnum.ROLE_ALREADY_DISABLED.getErrorMessage());
+        }
+
+        //4.将对应数据is_deleted 字段置为1
+        role.setIsDeleted(BasePO.DeleteFlag.DELETED);
+        tblRoleService.updateById(role);
+    }
+
+    @Override
+    public List<RoleListDTO> roleList() {
+        // 1. 查询所有未被删除的角色
+        LambdaQueryWrapper<TblRole> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(TblRole::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
+        List<TblRole> roleList = tblRoleService.list(queryWrapper);
+
+        // 2. 将TblRole转换为RoleListDTO
+        List<RoleListDTO> dtoList = roleList.stream().map(role -> {
+            RoleListDTO dto = new RoleListDTO();
+            dto.setRoleCode(role.getRoleCode());
+            dto.setRoleName(role.getRoleName());
+            return dto;
+        }).collect(Collectors.toList());
+
+        return dtoList;
     }
 }

+ 9 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblRoleService.java

@@ -0,0 +1,9 @@
+package com.hfln.portal.infrastructure.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hfln.portal.infrastructure.po.TblRole;
+
+public interface TblRoleService extends IService<TblRole> {
+
+    TblRole queryByRoleCode(String roleCode);
+}

+ 9 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/TblUserRoleService.java

@@ -0,0 +1,9 @@
+package com.hfln.portal.infrastructure.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.hfln.portal.infrastructure.po.TblUserRole;
+
+public interface TblUserRoleService extends IService<TblUserRole> {
+    // 这里可以扩展自定义方法接口
+
+}

+ 24 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblRoleServiceImpl.java

@@ -0,0 +1,24 @@
+package com.hfln.portal.infrastructure.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hfln.portal.infrastructure.mapper.TblRoleMapper;
+import com.hfln.portal.infrastructure.po.BasePO;
+import com.hfln.portal.infrastructure.po.TblRole;
+import com.hfln.portal.infrastructure.service.TblRoleService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Service
+@Slf4j
+public class TblRoleServiceImpl extends ServiceImpl<TblRoleMapper, TblRole> implements TblRoleService {
+
+    public TblRole queryByRoleCode(String roleCode){
+        LambdaQueryWrapper<TblRole> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(TblRole::getRoleCode, roleCode);
+        queryWrapper.eq(TblRole::getIsDeleted, BasePO.DeleteFlag.NOT_DELETED);
+        TblRole tblRole = this.baseMapper.selectOne(queryWrapper);
+        return tblRole;
+    }
+}

+ 15 - 0
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/service/impl/TblUserRoleServiceImpl.java

@@ -0,0 +1,15 @@
+package com.hfln.portal.infrastructure.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.hfln.portal.infrastructure.mapper.TblUserRoleMapper;
+import com.hfln.portal.infrastructure.po.TblUserRole;
+import com.hfln.portal.infrastructure.service.TblUserRoleService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Service
+@Slf4j
+public class TblUserRoleServiceImpl extends ServiceImpl<TblUserRoleMapper, TblUserRole> implements TblUserRoleService {
+
+}