Browse Source

Merge branch 'develop' into 'master'

feature(评测内容开发): 评测内容开发

See merge request dcuc-tjdsj/auth-back!130
黄资权 2 years ago
parent
commit
505e9b58b9

+ 203 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v4/controller/AuthV4Controller.java

@@ -0,0 +1,203 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.controller;
+
+import cn.hutool.core.util.StrUtil;
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.interfaces.DecodedJWT;
+import com.dragoninfo.dcuc.auth.auth.api.IApiDataAuthFacade;
+import com.dragoninfo.dcuc.auth.auth.dto.AppDataSensitiveLevelDTO;
+import com.dragoninfo.dcuc.auth.auth.dto.AppFunInfoDTO;
+import com.dragoninfo.dcuc.auth.auth.dto.DataItemsDto;
+import com.dragoninfo.dcuc.auth.auth.dto.RoleApiDto;
+import com.dragoninfo.dcuc.auth.auth.facade.IRoleFacade;
+import com.dragoninfo.dcuc.auth.auth.facade.IServiceAuthFlowFacade;
+import com.dragoninfo.dcuc.auth.auth.facade.IStaffAssignAuthInfoFacade;
+import com.dragoninfo.dcuc.auth.auth.vo.ServiceAuthenticationResVO;
+import com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.enums.BusinessRespEnum;
+import com.dragoninfo.dcuc.auth.sub.dto.AuthUserDTO;
+import com.dragoninfo.dcuc.auth.sub.facade.IAuthUserInfoFacade;
+import com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.vo.*;
+import com.dragoninfo.dcuc.common.utils.LangUtil;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/8/24
+ */
+@RestController
+@Api(tags = {"权限管理对外开放接口V4"})
+@RequestMapping(value = "/api/auth-service/v4/")
+public class AuthV4Controller {
+
+    @Autowired
+    private IAuthUserInfoFacade userFacade;
+
+    @Autowired
+    private IStaffAssignAuthInfoFacade staffAssignAuthInfoFacade;
+
+    @Autowired
+    private IServiceAuthFlowFacade serviceAuthFlowFacade;
+
+    @Autowired
+    private IAuthUserInfoFacade authUserInfoFacade;
+
+    @Autowired
+    private IRoleFacade roleFacade;
+
+    @Autowired
+    private IApiDataAuthFacade apiDataAuthFacade;
+
+    /**
+     * 应用级鉴权
+     *
+     * @param appAuthReqVO 应用级鉴权请求
+     * @return 应用级权限
+     */
+    @PostMapping("appAuth")
+    public ResultRespVO<String> appAuth(@RequestBody AppAuthReqVO appAuthReqVO) {
+        String appTokenId = appAuthReqVO.getAppTokenId();
+
+        if (StrUtil.isBlank(appTokenId)) {
+            return ResultRespVO.resultEnumMessage(BusinessRespEnum.TOKEN_FAIL);
+        }
+
+        DecodedJWT decode = JWT.decode(appTokenId);
+        String idcard = decode.getClaim("idCard").asString();
+
+        AuthUserDTO userInfo = userFacade.findByIdcard(idcard);
+        if (userInfo == null) {
+            return ResultRespVO.respRequestErrorMessage("用户不存在");
+        }
+        String userId = userInfo.getId();
+        List<AppDataSensitiveLevelDTO> appList = staffAssignAuthInfoFacade.getAppLitByUserId(userId);
+
+        StringBuilder appAuthBuilder = new StringBuilder();
+
+        for (AppDataSensitiveLevelDTO appDataSensitiveLevelDTO : appList) {
+            String code = appDataSensitiveLevelDTO.getCode();
+
+            appAuthBuilder.append(code).append(StrUtil.COMMA);
+        }
+
+        String appAuth = LangUtil.subLastSymbol(appAuthBuilder.toString(), StrUtil.COMMA);
+        return ResultRespVO.success(appAuth);
+    }
+
+    /**
+     * 功能级鉴权
+     *
+     * @param functionAuthReqVO 功能级鉴权求
+     * @return 功能级鉴权
+     */
+    @PostMapping("functionAuth")
+    public ResultRespVO<String> functionAuth(@RequestBody FunctionAuthReqVO functionAuthReqVO) {
+        String appTokenId = functionAuthReqVO.getAppTokenId();
+        String taskId = functionAuthReqVO.getTaskId();
+
+        if (StrUtil.isBlank(appTokenId)) {
+            return ResultRespVO.resultEnumMessage(BusinessRespEnum.TOKEN_FAIL);
+        }
+
+        DecodedJWT decode = JWT.decode(appTokenId);
+        String idcard = decode.getClaim("idCard").asString();
+        String appCode = decode.getClaim("appCode").asString();
+
+
+        AuthUserDTO userInfo = authUserInfoFacade.findByIdcard(idcard);
+        if (userInfo == null) {
+            return ResultRespVO.respRequestErrorMessage("idcard无权限,或身份证错误");
+        }
+
+        RoleApiDto roleApiDto = new RoleApiDto();
+        roleApiDto.setAppCode(appCode);
+        roleApiDto.setUserId(userInfo.getId());
+        roleApiDto.setIdcard(idcard);
+        List<AppFunInfoDTO> menus = roleFacade.getMenus(roleApiDto);
+
+        StringBuilder functionAuthBuilder = new StringBuilder();
+
+        for (AppFunInfoDTO menu : menus) {
+            String code = menu.getCode();
+            functionAuthBuilder.append(code).append(StrUtil.COMMA);
+        }
+
+        String appAuth = LangUtil.subLastSymbol(functionAuthBuilder.toString(), StrUtil.COMMA);
+        return ResultRespVO.success(appAuth);
+    }
+
+    /**
+     * 服务级鉴权
+     *
+     * @param serviceAuthReqVO 服务级鉴权请求
+     * @return 服务级鉴权
+     */
+    @PostMapping("serviceAuth")
+    public ResultRespVO<String> serviceAuth(@RequestBody ServiceAuthReqVO serviceAuthReqVO) {
+        String appTokenId = serviceAuthReqVO.getAppTokenId();
+        String taskId = serviceAuthReqVO.getTaskId();
+        if (StrUtil.isBlank(appTokenId)) {
+            return ResultRespVO.resultEnumMessage(BusinessRespEnum.TOKEN_FAIL);
+        }
+
+        DecodedJWT decode = JWT.decode(appTokenId);
+        String appCode = decode.getClaim("appCode").asString();
+        String idcard = decode.getClaim("idcard").asString();
+
+        List<ServiceAuthenticationResVO> serviceAuthenticationResVOList = serviceAuthFlowFacade.serviceAuthentication(idcard, appCode, "", "");
+
+        StringBuilder serviceAuthBuilder = new StringBuilder();
+
+        for (ServiceAuthenticationResVO serviceAuthenticationResVO : serviceAuthenticationResVOList) {
+            String serviceCode = serviceAuthenticationResVO.getServiceCode();
+            serviceAuthBuilder.append(serviceCode).append(StrUtil.COMMA);
+        }
+
+        String serviceAuth = LangUtil.subLastSymbol(serviceAuthBuilder.toString(), StrUtil.COMMA);
+        return ResultRespVO.success(serviceAuth);
+    }
+
+    /**
+     * 数据级鉴权
+     *
+     * @param dataAuthReqVO 数据级鉴权
+     * @return 数据级鉴权
+     */
+    @PostMapping("dataAuth")
+    public ResultRespVO<List<DataAuthRespVO>> dataAuth(@RequestBody DataAuthReqVO dataAuthReqVO) {
+        String resourceId = dataAuthReqVO.getResourceId();
+        String taskId = dataAuthReqVO.getTaskId();
+
+        // todo 数据级鉴权
+
+        DataAuthRespVO dataAuthRespVO = new DataAuthRespVO();
+
+        List<DataAuthRespVO> dataAuthRespVOList = new ArrayList<>();
+        dataAuthRespVOList.add(dataAuthRespVO);
+        return ResultRespVO.success(dataAuthRespVOList);
+    }
+
+    @PostMapping("userOrgDataAuth")
+    public ResultRespVO<DataAuthRespVO> userOrgDataAuth(@RequestBody UserOrgAuthReqVO userOrgAuthReqVO) {
+
+        String orgCode = userOrgAuthReqVO.getOrgCode();
+        String idcard = userOrgAuthReqVO.getIdcard();
+
+        DataItemsDto dataItemsDto = apiDataAuthFacade.userOrgDataAuth(idcard, orgCode);
+
+        DataAuthRespVO dataAuthRespVO = new DataAuthRespVO();
+        dataAuthRespVO.setResourceId(dataItemsDto.getResourceCode());
+        dataAuthRespVO.setItemIdentifier(dataItemsDto.getDataItemCode());
+        return ResultRespVO.success(dataAuthRespVO);
+    }
+}

+ 68 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v4/enums/BusinessRespEnum.java

@@ -0,0 +1,68 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.enums;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * <p>
+ * 业务通用响应码
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/8/1
+ */
+public enum BusinessRespEnum implements ICodeEnum {
+    /**
+     * 操作成功
+     */
+    SUCCESS("0000", "鉴权成功"),
+
+    /**
+     * 鉴权失败
+     */
+    AUTH_FAIL("0001", "鉴权失败"),
+
+    /**
+     * 令牌失效
+     */
+    TOKEN_FAIL("0002", "令牌失效"),
+
+    /**
+     * 权限冻结
+     */
+    PERMISSION_FREEZE("0003", "权限冻结"),
+
+    // 自行定义状态码
+    /**
+     * 请求参数异常
+     */
+    PARAM_ERROR("9001", "请求参数异常"),
+
+    /**
+     * 服务异常
+     */
+    SERVER_ERROR("9002", "服务异常"),
+    /**
+     * 未知异常
+     */
+    UNKNOWN_ERROR("9999", "未知异常");
+
+    private final String value;
+
+    private final String label;
+
+
+    BusinessRespEnum(String value, String label) {
+        this.value = value;
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return this.value;
+    }
+
+    @Override
+    public String getLabel() {
+        return this.label;
+    }
+}

+ 23 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v4/vo/AppAuthReqVO.java

@@ -0,0 +1,23 @@
+
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.vo;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 应用级鉴权请求
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/8/1
+ */
+@Data
+public class AppAuthReqVO {
+
+    /**
+     * 应用令牌标识
+     */
+    private String appTokenId;
+
+
+}

+ 33 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v4/vo/DataAuthReqVO.java

@@ -0,0 +1,33 @@
+
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.vo;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 数据鉴权请求
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/8/1
+ */
+@Data
+public class DataAuthReqVO {
+
+    /**
+     * 应用令牌标识
+     */
+    private String appTokenId;
+
+    /**
+     * 任务编码
+     */
+    private String taskId;
+
+    /**
+     * 资源标识符
+     */
+    private String resourceId;
+
+
+}

+ 27 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v4/vo/DataAuthRespVO.java

@@ -0,0 +1,27 @@
+
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.vo;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 数据鉴权返回值
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/8/1
+ */
+@Data
+public class DataAuthRespVO {
+
+    /**
+     * 资源标识符
+     */
+    private String resourceId;
+
+    /**
+     * 数据项标识符
+     */
+    private String itemIdentifier;
+
+}

+ 28 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v4/vo/FunctionAuthReqVO.java

@@ -0,0 +1,28 @@
+
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.vo;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 功能鉴权请求
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/8/1
+ */
+@Data
+public class FunctionAuthReqVO {
+
+    /**
+     * 应用令牌标识
+     */
+    private String appTokenId;
+
+    /**
+     * 任务编码
+     */
+    private String taskId;
+
+
+}

+ 107 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v4/vo/MessageRespVO.java

@@ -0,0 +1,107 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.vo;
+
+import com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.enums.BusinessRespEnum;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * <p>
+ * 用户令牌校验返回
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/8/1
+ */
+@Data
+public class MessageRespVO {
+
+    /**
+     * “0000” 表示令牌有效;
+     * 其他值表示无效或接口调用出错
+     */
+    @JsonProperty("status_code")
+    private String statusCode;
+
+    /**
+     * 状态码对应的详细描述
+     */
+    private String message;
+
+    /**
+     * 设置业务枚举
+     *
+     * @param businessRespEnum 业务枚举
+     */
+    public void setBusinessRespEnum(BusinessRespEnum businessRespEnum) {
+        setStatusCode(businessRespEnum.getValue());
+        setMessage(businessRespEnum.getLabel());
+    }
+
+
+    /**
+     * 设置业务枚举
+     *
+     * @param businessRespEnum 业务枚举
+     */
+    public static MessageRespVO messageEnumMessage(BusinessRespEnum businessRespEnum) {
+        MessageRespVO messageRespVO = new MessageRespVO();
+        messageRespVO.setBusinessRespEnum(businessRespEnum);
+        return messageRespVO;
+    }
+
+    /**
+     * 设置请求参数异常
+     *
+     * @param message 异常信息
+     */
+    public static MessageRespVO requestErrorMessage(String message) {
+        return messageEnumMessage(BusinessRespEnum.PARAM_ERROR, message);
+    }
+
+    /**
+     * 设置请求参数异常
+     *
+     * @param businessRespEnum 枚举
+     * @param message          异常信息
+     */
+    public static MessageRespVO messageEnumMessage(BusinessRespEnum businessRespEnum, String message) {
+        MessageRespVO messageRespVO = new MessageRespVO();
+        messageRespVO.setStatusCode(businessRespEnum.getValue());
+        messageRespVO.setMessage(message);
+        return messageRespVO;
+    }
+
+    /**
+     * 是否成功
+     *
+     * @return 是否成功
+     */
+    @JsonIgnore
+    public boolean isRespSuccess() {
+        return this.statusCode.equalsIgnoreCase(BusinessRespEnum.SUCCESS.getValue());
+    }
+
+    /**
+     * 是否失败
+     *
+     * @return 是否失败
+     */
+    @JsonIgnore
+    public boolean isRespFail() {
+        return !isRespSuccess();
+    }
+
+    /**
+     * 转发Result返回
+     *
+     * @param <T> 泛型
+     * @return Result返回
+     */
+    public <T> ResultRespVO<T> toResultRespVO() {
+        ResultRespVO<T> objectResultRespVO = new ResultRespVO<>();
+        objectResultRespVO.setStatusCode(statusCode);
+        objectResultRespVO.setMessage(message);
+        return objectResultRespVO;
+    }
+}

+ 54 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v4/vo/ResultRespVO.java

@@ -0,0 +1,54 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.vo;
+
+import com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.enums.BusinessRespEnum;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 用户令牌校验返回
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/8/1
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ResultRespVO<T> extends MessageRespVO {
+
+    /***
+     * 返回内容
+     */
+    private T result;
+
+    public static <T> ResultRespVO<T> success(T result) {
+        ResultRespVO<T> objectResultRespVO = new ResultRespVO<>();
+        objectResultRespVO.setBusinessRespEnum(BusinessRespEnum.SUCCESS);
+        objectResultRespVO.setResult(result);
+        return objectResultRespVO;
+    }
+
+    /**
+     * 设置枚举消息
+     *
+     * @param businessRespEnum 枚举类型
+     * @param <T>              泛型
+     * @return 消息
+     */
+    public static <T> ResultRespVO<T> resultEnumMessage(BusinessRespEnum businessRespEnum) {
+        ResultRespVO<T> objectResultRespVO = new ResultRespVO<>();
+        objectResultRespVO.setBusinessRespEnum(businessRespEnum);
+        return objectResultRespVO;
+    }
+
+    /**
+     * 设置请求参数异常
+     *
+     * @param message 异常信息
+     */
+    public static <T> ResultRespVO<T> respRequestErrorMessage(String message) {
+        ResultRespVO<T> objectResultRespVO = resultEnumMessage(BusinessRespEnum.PARAM_ERROR);
+        objectResultRespVO.setMessage(message);
+        return objectResultRespVO;
+    }
+}

+ 28 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v4/vo/ServiceAuthReqVO.java

@@ -0,0 +1,28 @@
+
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.vo;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 服务鉴权请求
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/8/1
+ */
+@Data
+public class ServiceAuthReqVO {
+
+    /**
+     * 应用令牌标识
+     */
+    private String appTokenId;
+
+    /**
+     * 任务编码
+     */
+    private String taskId;
+
+
+}

+ 33 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/api/authservice/v4/vo/UserOrgAuthReqVO.java

@@ -0,0 +1,33 @@
+
+package com.dragoninfo.dcuc.authweb.restcontroller.api.authservice.v4.vo;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 用户结构数据鉴权请求
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2022/8/1
+ */
+@Data
+public class UserOrgAuthReqVO {
+
+    /**
+     * 应用令牌标识
+     */
+    private String appTokenId;
+
+    /**
+     * 身份证号
+     */
+    private String idcard;
+
+    /**
+     * 机构编号
+     */
+    private String orgCode;
+
+
+}

+ 62 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/element/EnvElementController.java

@@ -0,0 +1,62 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.element;
+
+import com.dragoninfo.dcuc.auth.element.facade.IEnvElementFacade;
+import com.dragoninfo.dcuc.auth.element.vo.EnvElementSaveVo;
+import com.dragoninfo.dcuc.auth.element.vo.RespEnvElementVo;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author mazq
+ * @date 2022/8/25
+ */
+@RestController
+@RequestMapping("/envElement")
+public class EnvElementController {
+
+    @Autowired
+    private IEnvElementFacade envElementFacade;
+
+    @GetMapping("getById/{id}")
+    public Result<RespEnvElementVo> getById(@PathVariable("id") String id) {
+        RespEnvElementVo vo = envElementFacade.getById(id);
+        return Result.success(vo);
+    }
+
+    @PostMapping("search")
+    public Result<List<RespEnvElementVo>> pageSearch(SearchDTO searchDTO) {
+        Page<RespEnvElementVo> page = envElementFacade.pageSearch(searchDTO);
+        return Result.success(page.getTotalElements(), page.getContent());
+    }
+
+    @PostMapping("save")
+    public Result save(@RequestBody EnvElementSaveVo envElementVo) {
+       ResponseStatus responseStatus = envElementFacade.save(envElementVo);
+        return getResult(responseStatus);
+    }
+
+    @PostMapping("update")
+    public Result update(@RequestBody EnvElementSaveVo envElementVo) {
+        ResponseStatus responseStatus = envElementFacade.update(envElementVo);
+        return getResult(responseStatus);
+    }
+
+    @DeleteMapping("deleteById/{id}")
+    public Result deleteById(@PathVariable("id") String id) {
+        ResponseStatus responseStatus = envElementFacade.deleteById(id);
+        return getResult(responseStatus);
+    }
+
+    private Result getResult(ResponseStatus responseStatus) {
+        Result result = new Result();
+        result.setMsg(responseStatus.getMessage());
+        result.setResult(responseStatus.getStatusCode());
+        return result;
+    }
+}

+ 27 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/selfauth/controller/SelfAuthAppLyController.java

@@ -5,16 +5,19 @@ import com.dragoninfo.dcuc.auth.auth.dto.*;
 import com.dragoninfo.dcuc.auth.auth.enumresources.WorkFlowSourceEnum;
 import com.dragoninfo.dcuc.auth.auth.facade.IAuthApplyFacade;
 import com.dragoninfo.dcuc.auth.auth.facade.IFunAuthResultFacade;
+import com.dragoninfo.dcuc.auth.auth.vo.RedListRiskLogVo;
 import com.dragoninfo.dcuc.authweb.restcontroller.selfauth.vo.*;
 import com.dragoninfo.duceap.core.response.Result;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.core.search.enums.SearchOperator;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -114,7 +117,7 @@ public class SelfAuthAppLyController {
     })
     @GetMapping(value = "funApplyDetail")
     public Result<FunApplyDetailVo> funApplyDetail(@RequestParam("applyOrdNo") String applyOrdNo,
-                                 @RequestParam(value = "needFlowInfo", required = false) Boolean needFlowInfo) {
+                                                   @RequestParam(value = "needFlowInfo", required = false) Boolean needFlowInfo) {
         if(null == needFlowInfo) {
             needFlowInfo = false;
         }
@@ -261,4 +264,27 @@ public class SelfAuthAppLyController {
             return Result.success(vo);
         }
     }
+
+    @ApiOperation(value = "功能授权红名单风险校验")
+    @PostMapping("redListCheck")
+    public Result<Boolean> redListCheck(@RequestBody List<AppFunAuthResourceVo> resourceInfos) {
+        if (CollectionUtils.isEmpty(resourceInfos)) {
+            return Result.success(false);
+        }
+        List<AppFunAuthResourceDTO> collect = resourceInfos.stream().map(e -> {
+            AppFunAuthResourceDTO resourceDTO = new AppFunAuthResourceDTO();
+            resourceDTO.setAppId(e.getAppId());
+            resourceDTO.setFunId(e.getFunId());
+            return resourceDTO;
+        }).collect(Collectors.toList());
+        Boolean b = selfAuthApplyFacade.redListCheck(collect);
+        return Result.success(b);
+    }
+
+    @ApiOperation(value = "红名单风险日志查询")
+    @PostMapping("redListApplyLog")
+    public Result<List<RedListRiskLogVo>> redListApplyLog(SearchDTO searchDTO) {
+        Page<RedListRiskLogVo> page = selfAuthApplyFacade.redListApplyLog(searchDTO);
+        return Result.success(page.getTotalElements(), page.getContent());
+    }
 }