Explorar el Código

1、修改保存风控配置接口
2、增加风控配置模版详情接口
3、全局去掉import *

marxjaw hace 5 meses
padre
commit
08e3c255fb
Se han modificado 20 ficheros con 397 adiciones y 35 borrados
  1. 2 1
      yt-agent/agent-service/src/main/java/com/ytpm/controller/AppController.java
  2. 34 4
      yt-agent/agent-service/src/main/java/com/ytpm/controller/RiskController.java
  3. 2 1
      yt-agent/agent-service/src/main/java/com/ytpm/controller/UserController.java
  4. 5 1
      yt-agent/agent-service/src/main/java/com/ytpm/controller/YtAppUserController.java
  5. 5 5
      yt-agent/agent-service/src/main/java/com/ytpm/service/impl/YtAppUserServiceImpl.java
  6. 3 2
      yt-common/src/main/java/com/ytpm/app/view/YtAppUserListView.java
  7. 3 0
      yt-common/src/main/java/com/ytpm/general/RepMessage.java
  8. 26 0
      yt-common/src/main/java/com/ytpm/risk/model/YtRiskTemplate.java
  9. 10 0
      yt-common/src/main/java/com/ytpm/risk/param/RiskConfigParam.java
  10. 41 0
      yt-common/src/main/java/com/ytpm/risk/view/RiskTemplateView.java
  11. 5 1
      yt-oauth/oauth-service/src/main/java/com/ytpm/controller/OauthController.java
  12. 13 2
      yt-risk/risk-feign/src/main/java/com/ytpm/feign/RiskFeign.java
  13. 7 2
      yt-risk/risk-feign/src/main/java/com/ytpm/feign/fallback/RiskFeignFallBack.java
  14. 6 1
      yt-risk/risk-manage/src/main/java/com/ytpm/config/CustomUserAuthenticationConverter.java
  15. 31 3
      yt-risk/risk-manage/src/main/java/com/ytpm/controller/RiskConfigController.java
  16. 17 7
      yt-risk/risk-manage/src/main/java/com/ytpm/controller/RiskManageController.java
  17. 21 0
      yt-risk/risk-manage/src/main/java/com/ytpm/dao/RiskConfigMapper.java
  18. 15 1
      yt-risk/risk-manage/src/main/java/com/ytpm/service/RiskService.java
  19. 56 4
      yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java
  20. 95 0
      yt-risk/risk-manage/src/main/resources/mapper/RiskConfigMapper.xml

+ 2 - 1
yt-agent/agent-service/src/main/java/com/ytpm/controller/AppController.java

@@ -10,6 +10,7 @@ import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.annotation.Resource;
 
@@ -26,7 +27,7 @@ public class AppController {
      */
     @ApiOperation("查询渠道启用的应用列表")
     @GetMapping("/getEnabledList")
-    public ResultTable<AgentEnableAppView> getEnabledList(@AuthenticationPrincipal AgentUserInfo userInfo) {
+    public ResultTable<AgentEnableAppView> getEnabledList(@ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo) {
         return agentAppService.getEnabledList(userInfo.getUserId());
     }
 

+ 34 - 4
yt-agent/agent-service/src/main/java/com/ytpm/controller/RiskController.java

@@ -1,18 +1,28 @@
 package com.ytpm.controller;
 
-import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.feign.RiskFeign;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
-import com.ytpm.risk.param.*;
+import com.ytpm.risk.param.RiskBannedListParam;
+import com.ytpm.risk.param.RiskBannedParam;
+import com.ytpm.risk.param.RiskConfigParam;
+import com.ytpm.risk.param.RiskDeblockingListParam;
+import com.ytpm.risk.param.RiskRelativeAppParam;
+import com.ytpm.risk.param.RiskUserStatusParam;
 import com.ytpm.risk.view.RiskBannedListView;
 import com.ytpm.risk.view.RiskConfigListView;
 import com.ytpm.risk.view.RiskConfigView;
 import com.ytpm.risk.view.RiskDeblockingListView;
+import com.ytpm.risk.view.RiskTemplateView;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.security.core.annotation.AuthenticationPrincipal;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 
@@ -105,4 +115,24 @@ public class RiskController {
     public ResultTable<RiskConfigView> getRiskConfig() {
         return riskFeign.getRiskConfig();
     }
+
+    /**
+     * 启用或关闭风控配置
+     */
+    @ApiOperation("启用或关闭风控配置")
+    @ApiImplicitParam(name = "templateId", value = "配置模板ID", required = true)
+    @GetMapping("/enabledConfig")
+    public Result<?> isEnabledConfig(@RequestParam("templateId")String templateId){
+        return riskFeign.isEnabledConfig(templateId);
+    }
+
+    /**
+     * 风控配置模板详情
+     */
+    @ApiOperation("风控配置模板详情")
+    @ApiImplicitParam(name = "templateId", value = "配置模板ID", required = true)
+    @GetMapping("/templateView")
+    public Result<RiskTemplateView> templateView(@RequestParam("templateId")String templateId){
+        return riskFeign.templateView(templateId);
+    }
 }

+ 2 - 1
yt-agent/agent-service/src/main/java/com/ytpm/controller/UserController.java

@@ -8,6 +8,7 @@ import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 @Api(tags = "用户管理模块")
 @RestController
@@ -16,7 +17,7 @@ public class UserController{
 
     @ApiOperation(value = "获取当前登录用户", notes = "无需传参")
     @GetMapping("/curUser")
-    public Result<AgentUserInfo> getCurrentUser(@AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<AgentUserInfo> getCurrentUser(@ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
         return Result.resultObjOk(userInfo);
     }
 }

+ 5 - 1
yt-agent/agent-service/src/main/java/com/ytpm/controller/YtAppUserController.java

@@ -7,7 +7,11 @@ import com.ytpm.general.ResultTable;
 import com.ytpm.service.YtAppUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+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 javax.annotation.Resource;
 

+ 5 - 5
yt-agent/agent-service/src/main/java/com/ytpm/service/impl/YtAppUserServiceImpl.java

@@ -3,15 +3,15 @@ package com.ytpm.service.impl;
 import cn.hutool.core.collection.CollUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
-import com.ytpm.agent.enums.UserStatusEnum;
-import com.ytpm.agent.model.YtAppUser;
 import com.ytpm.app.model.YtAppUserLoginRecord;
 import com.ytpm.app.param.YtAppUserListParam;
 import com.ytpm.app.view.AppUserStaticsView;
 import com.ytpm.app.view.YtAppUserListView;
-import com.ytpm.dao.*;
-import com.ytpm.general.RepMessage;
-import com.ytpm.general.Result;
+import com.ytpm.dao.AgentStaticsMapper;
+import com.ytpm.dao.AppUserLoginMapper;
+import com.ytpm.dao.AppUserMapper;
+import com.ytpm.dao.AppVideoWatchMapper;
+import com.ytpm.dao.AppWithdrawMapper;
 import com.ytpm.general.ResultTable;
 import com.ytpm.service.YtAppUserService;
 import org.springframework.stereotype.Service;

+ 3 - 2
yt-common/src/main/java/com/ytpm/app/view/YtAppUserListView.java

@@ -1,10 +1,11 @@
 package com.ytpm.app.view;
 
 import com.ytpm.custom.CustomField;
-import com.ytpm.general.PageMeta;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.math.BigDecimal;
 import java.util.Date;

+ 3 - 0
yt-common/src/main/java/com/ytpm/general/RepMessage.java

@@ -6,6 +6,8 @@ package com.ytpm.general;
  */
 public class RepMessage {
     public static final String QUERY_SUCCESS = "查询成功";
+    public static final String MODIFY_SUCCESS = "修改成功";
+    public static final String SAVE_SUCCESS = "保存成功";
     public static final String LOGOUT_SUCCESS = "已退出登录";
     public static final String NOT_LOGIN= "当前用户未登录";
     public static final String USER_NAME_EMPTY = "用户名不能为空";
@@ -23,4 +25,5 @@ public class RepMessage {
     public static final String ALREADY_RISK_USER = "用户已被风控";
     public static final String RELATIVE_APP_SUCCESS = "关联应用成功";
     public static final String SERVICE_UNAVAILABLE = "服务暂时不可用,请稍后重试";
+    public static final String OBJECT_NOT_EXIST = "查询对象不存在";
 }

+ 26 - 0
yt-common/src/main/java/com/ytpm/risk/model/YtRiskTemplate.java

@@ -0,0 +1,26 @@
+package com.ytpm.risk.model;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("风控配置模板表")
+public class YtRiskTemplate {
+    private String templateId;
+    private String templateName;
+    private String templateContent;
+    private String templateCode;
+    private String channelId;
+    private String appId;
+    private Date createTime;
+    private String createUserId;
+    private Date updateTime;
+    private String updateUserId;
+    private Integer enabled;
+}

+ 10 - 0
yt-common/src/main/java/com/ytpm/risk/param/RiskConfigParam.java

@@ -20,4 +20,14 @@ public class RiskConfigParam extends BaseParam {
     private List<RiskConfigListParam> configList;
     @ApiModelProperty(value = "关联的应用ID")
     private String appId;
+    @ApiModelProperty(value = "风控配置模板ID")
+    private String templateId;
+    @ApiModelProperty(value = "风控配置模板名称")
+    private String templateName;
+    @ApiModelProperty(value = "风控配置模板内容")
+    private String templateContent;
+    @ApiModelProperty(value = "风控配置模板编码")
+    private String templateCode;
+    @ApiModelProperty(value = "渠道ID")
+    private String channelId;
 }

+ 41 - 0
yt-common/src/main/java/com/ytpm/risk/view/RiskTemplateView.java

@@ -0,0 +1,41 @@
+package com.ytpm.risk.view;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("易推风控配置模板")
+public class RiskTemplateView {
+    @ApiModelProperty("模板ID")
+    private String templateId;
+    @ApiModelProperty("模板名称")
+    private String templateName;
+    @ApiModelProperty("模板内容")
+    private String templateContent;
+    @ApiModelProperty("模板编码")
+    private String templateCode;
+    @ApiModelProperty("渠道ID")
+    private String channelId;
+    @ApiModelProperty("应用ID")
+    private String appId;
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    @ApiModelProperty("创建人")
+    private String createUserId;
+    @ApiModelProperty("修改时间")
+    private Date updateTime;
+    @ApiModelProperty("修改人")
+    private String updateUserId;
+    @ApiModelProperty("是否启用")
+    private Integer enabled;
+    @ApiModelProperty("配置项列表")
+    private List<RiskConfigView> configList;
+}

+ 5 - 1
yt-oauth/oauth-service/src/main/java/com/ytpm/controller/OauthController.java

@@ -10,7 +10,11 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;

+ 13 - 2
yt-risk/risk-feign/src/main/java/com/ytpm/feign/RiskFeign.java

@@ -1,14 +1,19 @@
 package com.ytpm.feign;
 
-import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.feign.fallback.RiskFeignFallBack;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
-import com.ytpm.risk.param.*;
+import com.ytpm.risk.param.RiskBannedListParam;
+import com.ytpm.risk.param.RiskBannedParam;
+import com.ytpm.risk.param.RiskConfigParam;
+import com.ytpm.risk.param.RiskDeblockingListParam;
+import com.ytpm.risk.param.RiskRelativeAppParam;
+import com.ytpm.risk.param.RiskUserStatusParam;
 import com.ytpm.risk.view.RiskBannedListView;
 import com.ytpm.risk.view.RiskConfigListView;
 import com.ytpm.risk.view.RiskConfigView;
 import com.ytpm.risk.view.RiskDeblockingListView;
+import com.ytpm.risk.view.RiskTemplateView;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -44,4 +49,10 @@ public interface RiskFeign {
 
     @GetMapping("/riskConfig/options")
     ResultTable<RiskConfigView> getRiskConfig();
+
+    @GetMapping("/riskConfig/enabledConfig")
+    Result<?> isEnabledConfig(@RequestParam("templateId")String templateId);
+
+    @GetMapping("/riskConfig/templateView")
+    Result<RiskTemplateView> templateView(@RequestParam("templateId")String templateId);
 }

+ 7 - 2
yt-risk/risk-feign/src/main/java/com/ytpm/feign/fallback/RiskFeignFallBack.java

@@ -5,7 +5,12 @@ import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.general.StatusCode;
-import com.ytpm.risk.param.*;
+import com.ytpm.risk.param.RiskBannedListParam;
+import com.ytpm.risk.param.RiskBannedParam;
+import com.ytpm.risk.param.RiskConfigParam;
+import com.ytpm.risk.param.RiskDeblockingListParam;
+import com.ytpm.risk.param.RiskRelativeAppParam;
+import com.ytpm.risk.param.RiskUserStatusParam;
 import com.ytpm.risk.view.RiskBannedListView;
 import com.ytpm.risk.view.RiskConfigListView;
 import com.ytpm.risk.view.RiskConfigView;
@@ -15,7 +20,7 @@ import org.springframework.stereotype.Component;
 import javax.xml.ws.Response;
 
 @Component
-public class RiskFeignFallBack implements RiskFeign {
+public abstract class RiskFeignFallBack implements RiskFeign {
     @Override
     public Result<?> lockUser(String userId) {
         return Result.resultErr(RepMessage.SERVICE_UNAVAILABLE);

+ 6 - 1
yt-risk/risk-manage/src/main/java/com/ytpm/config/CustomUserAuthenticationConverter.java

@@ -19,7 +19,12 @@ import org.springframework.security.oauth2.provider.token.UserAuthenticationConv
 import org.springframework.stereotype.Component;
 import org.springframework.util.StringUtils;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Objects;
+
 
 /**
  * 自定义Security上下文信息

+ 31 - 3
yt-risk/risk-manage/src/main/java/com/ytpm/controller/RiskConfigController.java

@@ -6,11 +6,19 @@ import com.ytpm.general.ResultTable;
 import com.ytpm.risk.param.RiskConfigParam;
 import com.ytpm.risk.view.RiskConfigListView;
 import com.ytpm.risk.view.RiskConfigView;
+import com.ytpm.risk.view.RiskTemplateView;
 import com.ytpm.service.RiskService;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.annotation.Resource;
 
@@ -36,7 +44,7 @@ public class RiskConfigController {
      */
     @ApiOperation("保存风控配置")
     @PostMapping("/saveConfig")
-    public Result<?> saveConfig(@RequestBody RiskConfigParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<?> saveConfig(@RequestBody RiskConfigParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
         param.setChannelId(userInfo.getUserId());
         return riskService.saveConfig(param);
     }
@@ -46,8 +54,28 @@ public class RiskConfigController {
      */
     @ApiOperation("查询风控配置列表")
     @PostMapping("/list")
-    public ResultTable<RiskConfigListView> getRiskConfigList(@RequestBody RiskConfigParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+    public ResultTable<RiskConfigListView> getRiskConfigList(@RequestBody RiskConfigParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
         param.setChannelId(userInfo.getUserId());
         return riskService.getRiskConfigList(param);
     }
+
+    /**
+     * 启用或关闭风控配置
+     */
+    @ApiOperation("启用或关闭风控配置")
+    @ApiImplicitParam(name = "templateId", value = "配置模板ID", required = true)
+    @GetMapping("/enabledConfig")
+    public Result<?> isEnabledConfig(@RequestParam("templateId")String templateId, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+        return riskService.isEnabledConfig(templateId,userInfo.getUserId());
+    }
+
+    /**
+     * 风控配置模板详情
+     */
+    @ApiOperation("风控配置模板详情")
+    @ApiImplicitParam(name = "templateId", value = "配置模板ID", required = true)
+    @GetMapping("/templateView")
+    public Result<RiskTemplateView> templateView(@RequestParam("templateId")String templateId,@ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+        return riskService.templateView(templateId,userInfo.getUserId());
+    }
 }

+ 17 - 7
yt-risk/risk-manage/src/main/java/com/ytpm/controller/RiskManageController.java

@@ -3,7 +3,11 @@ package com.ytpm.controller;
 import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
-import com.ytpm.risk.param.*;
+import com.ytpm.risk.param.RiskBannedListParam;
+import com.ytpm.risk.param.RiskBannedParam;
+import com.ytpm.risk.param.RiskDeblockingListParam;
+import com.ytpm.risk.param.RiskRelativeAppParam;
+import com.ytpm.risk.param.RiskUserStatusParam;
 import com.ytpm.risk.view.RiskBannedListView;
 import com.ytpm.risk.view.RiskDeblockingListView;
 import com.ytpm.service.RiskService;
@@ -11,7 +15,13 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import javax.annotation.Resource;
 
@@ -39,7 +49,7 @@ public class RiskManageController {
      */
     @ApiOperation("封禁用户")
     @PostMapping("/banned")
-    public Result<?> banned(@RequestBody RiskBannedParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<?> banned(@RequestBody RiskBannedParam param, @ApiIgnore  @AuthenticationPrincipal AgentUserInfo userInfo){
         param.setOperator(userInfo.getUserId());
         param.setOperatorName(userInfo.getNickName());
         return riskService.banned(param);
@@ -50,7 +60,7 @@ public class RiskManageController {
      */
     @ApiOperation("查询风控用户记录")
     @PostMapping("/bannedList")
-    public ResultTable<RiskBannedListView> bannedList(@RequestBody RiskBannedListParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+    public ResultTable<RiskBannedListView> bannedList(@RequestBody RiskBannedListParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
         param.setChannelId(userInfo.getUserId());
         return riskService.bannedList(param);
     }
@@ -60,7 +70,7 @@ public class RiskManageController {
      */
     @ApiOperation("查询解封记录")
     @PostMapping("/deblockingList")
-    public ResultTable<RiskDeblockingListView> deblockingList(@RequestBody RiskDeblockingListParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+    public ResultTable<RiskDeblockingListView> deblockingList(@RequestBody RiskDeblockingListParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
         param.setChannelId(userInfo.getUserId());
         return riskService.deblockingList(param);
     }
@@ -70,7 +80,7 @@ public class RiskManageController {
      */
     @ApiOperation("修改用户状态")
     @PostMapping("/changeUserStatus")
-    public Result<?> changeUserStatus(@RequestBody RiskUserStatusParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<?> changeUserStatus(@RequestBody RiskUserStatusParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
         param.setOperator(userInfo.getUserId());
         param.setOperatorName(userInfo.getNickName());
         return riskService.changeUserStatus(param);
@@ -81,7 +91,7 @@ public class RiskManageController {
      */
     @ApiOperation("风控配置关联应用")
     @PostMapping("/relativeApp")
-    public Result<?> relativeApp(@RequestBody RiskRelativeAppParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<?> relativeApp(@RequestBody RiskRelativeAppParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
         param.setOperator(userInfo.getUserId());
         param.setOperatorName(userInfo.getNickName());
         return riskService.relativeApp(param);

+ 21 - 0
yt-risk/risk-manage/src/main/java/com/ytpm/dao/RiskConfigMapper.java

@@ -1,10 +1,12 @@
 package com.ytpm.dao;
 
 import com.ytpm.risk.model.YtRiskConfig;
+import com.ytpm.risk.model.YtRiskTemplate;
 import com.ytpm.risk.param.RiskBannedListParam;
 import com.ytpm.risk.param.RiskConfigParam;
 import com.ytpm.risk.view.RiskBannedListView;
 import com.ytpm.risk.view.RiskConfigListView;
+import com.ytpm.risk.view.RiskTemplateView;
 import org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
 
@@ -21,4 +23,23 @@ public interface RiskConfigMapper {
      * 获取风控配置列表
      */
     List<RiskConfigListView> getRiskConfigList(RiskConfigParam param);
+
+    /**
+     * 查询风控配置模板
+     */
+    YtRiskTemplate selectOneTemplate(@Param("templateId")String templateId);
+
+    /**
+     * 修改风控模板
+     */
+    void updateByTempId(YtRiskTemplate newTemp);
+    /**
+     * 保存风控配置模板
+     */
+    void saveTemplate(YtRiskTemplate template);
+
+    /**
+     * 风控配置模板详情
+     */
+    RiskTemplateView getTemplateView(@Param("templateId") String templateId, @Param("channelId") String channelId);
 }

+ 15 - 1
yt-risk/risk-manage/src/main/java/com/ytpm/service/RiskService.java

@@ -2,11 +2,17 @@ package com.ytpm.service;
 
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
-import com.ytpm.risk.param.*;
+import com.ytpm.risk.param.RiskBannedListParam;
+import com.ytpm.risk.param.RiskBannedParam;
+import com.ytpm.risk.param.RiskConfigParam;
+import com.ytpm.risk.param.RiskDeblockingListParam;
+import com.ytpm.risk.param.RiskRelativeAppParam;
+import com.ytpm.risk.param.RiskUserStatusParam;
 import com.ytpm.risk.view.RiskBannedListView;
 import com.ytpm.risk.view.RiskConfigListView;
 import com.ytpm.risk.view.RiskConfigView;
 import com.ytpm.risk.view.RiskDeblockingListView;
+import com.ytpm.risk.view.RiskTemplateView;
 
 public interface RiskService {
     /**
@@ -48,4 +54,12 @@ public interface RiskService {
      * 风控配置关联应用
      */
     Result<?> relativeApp(RiskRelativeAppParam param);
+    /**
+     * 启用或关闭风控配置
+     */
+    Result<?> isEnabledConfig(String templateId, String userId);
+    /**
+     * 风控配置模板详情
+     */
+    Result<RiskTemplateView> templateView(String templateId, String channelId);
 }

+ 56 - 4
yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

@@ -20,11 +20,19 @@ import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.risk.model.YtRiskConfig;
-import com.ytpm.risk.param.*;
+import com.ytpm.risk.model.YtRiskTemplate;
+import com.ytpm.risk.param.RiskBannedListParam;
+import com.ytpm.risk.param.RiskBannedParam;
+import com.ytpm.risk.param.RiskConfigListParam;
+import com.ytpm.risk.param.RiskConfigParam;
+import com.ytpm.risk.param.RiskDeblockingListParam;
+import com.ytpm.risk.param.RiskRelativeAppParam;
+import com.ytpm.risk.param.RiskUserStatusParam;
 import com.ytpm.risk.view.RiskBannedListView;
 import com.ytpm.risk.view.RiskConfigListView;
 import com.ytpm.risk.view.RiskConfigView;
 import com.ytpm.risk.view.RiskDeblockingListView;
+import com.ytpm.risk.view.RiskTemplateView;
 import com.ytpm.service.RiskService;
 import com.ytpm.util.ReflectUtil;
 import io.swagger.annotations.ApiModelProperty;
@@ -34,7 +42,11 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.lang.reflect.Field;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 @Service
@@ -80,22 +92,34 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
      */
     @Override
     public Result<?> saveConfig(RiskConfigParam param) {
-        //TODO 暂时保存的配置适配所有应用
         List<RiskConfigListParam> configList = param.getConfigList();
         if(CollUtil.isEmpty(param.getConfigList())){
             return Result.resultErr(RepMessage.COLLECTION_EMPTY);
         }
+        YtRiskTemplate template = new YtRiskTemplate();
         List<YtRiskConfig> configs = new ArrayList<>();
         YtRiskConfig config;
+        StringBuilder content = new StringBuilder();
         for (RiskConfigListParam listVO : configList) {
             listVO.setConfigId(IdUtil.fastSimpleUUID());
             config = new YtRiskConfig();
             BeanUtil.copyProperties(listVO, config);
             config.setChannelId(param.getChannelId());
+            String format = String.format(config.getFieldDesc(), config.getConfigVal());
+            if(StrUtil.isNotBlank(format)){
+                content.append(format).append(",");
+            }
             configs.add(config);
         }
         configMapper.insertAll(configs);
-        return Result.resultOk();
+        BeanUtil.copyProperties(param,template);
+        template.setTemplateId(IdUtil.fastSimpleUUID());
+        template.setTemplateContent(content.toString());
+        template.setEnabled(0);
+        template.setCreateUserId(param.getChannelId());
+        template.setCreateTime(new Date());
+        configMapper.saveTemplate(template);
+        return Result.resultOk(RepMessage.SAVE_SUCCESS);
     }
 
 
@@ -192,6 +216,34 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
         return Result.resultOk(RepMessage.RELATIVE_APP_SUCCESS);
     }
 
+    /**
+     * 启用或关闭风控配置
+     */
+    @Override
+    public Result<?> isEnabledConfig(String templateId, String userId) {
+        YtRiskTemplate template = configMapper.selectOneTemplate(templateId);
+        if(Objects.isNull(template)){
+            return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
+        }
+        Integer enabled = template.getEnabled();
+
+        YtRiskTemplate newTemp = new YtRiskTemplate();
+        newTemp.setTemplateId(templateId);
+        newTemp.setUpdateUserId(userId);
+        newTemp.setUpdateTime(new Date());
+        newTemp.setEnabled(enabled == 0?1:0);
+        configMapper.updateByTempId(newTemp);
+        return Result.resultOk(RepMessage.MODIFY_SUCCESS);
+    }
+
+    /**
+     * 风控配置模板详情
+     */
+    @Override
+    public Result<RiskTemplateView> templateView(String templateId, String channelId) {
+        return Result.resultObjOk(configMapper.getTemplateView(templateId,channelId));
+    }
+
     /**
      * 修改用户信息
      */

+ 95 - 0
yt-risk/risk-manage/src/main/resources/mapper/RiskConfigMapper.xml

@@ -26,6 +26,59 @@
             )
         </foreach>
     </insert>
+    <insert id="saveTemplate">
+        insert into yt_risk_template
+            (
+             template_id,
+             template_name,
+             template_content,
+             template_code,
+             channel_id,
+             app_id,
+             create_time,
+             create_user_id,
+             enabled
+            )
+        values
+            (
+                #{templateId},
+                #{templateName},
+                #{templateContent},
+                #{templateCode},
+                #{channelId},
+                #{appId},
+                #{createTime},
+                #{createUserId},
+                #{enabled}
+            );
+    </insert>
+    <update id="updateByTempId">
+        update yt_risk_template
+        <set>
+            <if test="templateName != null">
+                template_name = #{templateName},
+            </if>
+            <if test="templateContent != null">
+                template_content = #{templateContent},
+            </if>
+            <if test="templateCode != null">
+                template_code = #{templateCode},
+            </if>
+            <if test="channelId != null">
+                channel_id = #{channelId},
+            </if>
+            <if test="appId != null">
+                app_id = #{appId},
+            </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
+            <if test="updateUserId != null">
+                update_user_id = #{updateUserId},
+            </if>
+        </set>
+        where template_id = #{templateId}
+    </update>
     <select id="getRiskConfigList" resultType="com.ytpm.risk.view.RiskConfigListView">
         SELECT
             t.app_id,
@@ -38,4 +91,46 @@
         WHERE
             t.channel_id = #{channelId}
     </select>
+    <select id="selectOneTemplate" resultType="com.ytpm.risk.model.YtRiskTemplate">
+        select
+            template_id, template_name, template_content, template_code, channel_id, app_id, create_time, create_user_id, update_time, update_user_id, enabled
+        from yt_risk_template
+        where template_id = #{templateId}
+    </select>
+    <resultMap id="RiskTemplateViewMap" type="com.ytpm.risk.view.RiskTemplateView">
+        <id column="template_id" property="templateId" />
+        <result column="template_code" property="templateCode" />
+        <result column="template_name" property="templateName" />
+        <result column="template_content" property="templateContent" />
+        <result column="enabled" property="enabled" />
+        <collection property="configList" ofType="com.ytpm.risk.view.RiskConfigView">
+            <id column="config_id" property="configId" />
+            <result column="field_name" property="fieldName" />
+            <result column="field_desc" property="fieldDesc" />
+            <result column="config_type" property="configType" />
+            <result column="config_val" property="configVal" />
+            <result column="multy" property="multy" />
+        </collection>
+    </resultMap>
+    <select id="getTemplateView" resultMap="RiskTemplateViewMap">
+        SELECT
+            rt.template_id,
+            rt.template_code,
+            rt.template_name,
+            rt.template_content,
+            rt.enabled,
+            rc.config_id,
+            rc.field_name,
+            rc.field_desc,
+            rc.config_type,
+            rc.config_val,
+            rc.multy
+        FROM
+            yt_risk_template rt
+                JOIN yt_risk_template_config rtc ON rt.template_id = rtc.template_id
+                JOIN yt_risk_config rc ON rtc.config_id = rc.config_id
+        WHERE
+            rt.template_id = #{templateId}
+          AND rt.channel_id = #{channelId}
+    </select>
 </mapper>