Procházet zdrojové kódy

增加用户风控列表
增加用户解禁列表
增加用户状态修改操作

marxjaw před 5 měsíci
rodič
revize
d6eb672a95
26 změnil soubory, kde provedl 703 přidání a 21 odebrání
  1. 44 4
      yt-agent/agent-service/src/main/java/com/ytpm/controller/RiskController.java
  2. 0 2
      yt-agent/agent-service/src/main/java/com/ytpm/dao/AppUserMapper.java
  3. 3 0
      yt-agent/agent-service/src/main/resources/mapper/AppUserMapper.xml
  4. 6 0
      yt-common/src/main/java/com/ytpm/agent/model/YtAppUser.java
  5. 32 0
      yt-common/src/main/java/com/ytpm/agent/model/YtPlatformDeblocking.java
  6. 6 0
      yt-common/src/main/java/com/ytpm/app/view/YtAppUserListView.java
  7. 1 1
      yt-common/src/main/java/com/ytpm/general/BaseParam.java
  8. 1 0
      yt-common/src/main/java/com/ytpm/general/RepMessage.java
  9. 2 0
      yt-common/src/main/java/com/ytpm/risk/model/YtRiskConfig.java
  10. 33 0
      yt-common/src/main/java/com/ytpm/risk/param/RiskBannedListParam.java
  11. 2 0
      yt-common/src/main/java/com/ytpm/risk/param/RiskConfigListParam.java
  12. 35 0
      yt-common/src/main/java/com/ytpm/risk/param/RiskDeblockingListParam.java
  13. 26 0
      yt-common/src/main/java/com/ytpm/risk/param/RiskUserStatusParam.java
  14. 58 0
      yt-common/src/main/java/com/ytpm/risk/view/RiskBannedListView.java
  15. 37 0
      yt-common/src/main/java/com/ytpm/risk/view/RiskConfigListView.java
  16. 46 0
      yt-common/src/main/java/com/ytpm/risk/view/RiskDeblockingListView.java
  17. 17 1
      yt-risk/risk-feign/src/main/java/com/ytpm/feign/RiskFeign.java
  18. 12 1
      yt-risk/risk-manage/src/main/java/com/ytpm/controller/RiskConfigController.java
  19. 37 0
      yt-risk/risk-manage/src/main/java/com/ytpm/controller/RiskManageController.java
  20. 9 0
      yt-risk/risk-manage/src/main/java/com/ytpm/dao/RiskConfigMapper.java
  21. 35 0
      yt-risk/risk-manage/src/main/java/com/ytpm/dao/RiskManageMapper.java
  22. 20 2
      yt-risk/risk-manage/src/main/java/com/ytpm/service/RiskService.java
  23. 97 6
      yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java
  24. 16 2
      yt-risk/risk-manage/src/main/resources/mapper/RiskConfigMapper.xml
  25. 123 0
      yt-risk/risk-manage/src/main/resources/mapper/RiskManageMapper.xml
  26. 5 2
      yt-risk/risk-manage/src/main/resources/mapper/RiskUserMapper.xml

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

@@ -1,11 +1,17 @@
 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.RiskBannedParam;
+import com.ytpm.risk.param.*;
+import com.ytpm.risk.view.RiskBannedListView;
+import com.ytpm.risk.view.RiskConfigListView;
+import com.ytpm.risk.view.RiskDeblockingListView;
+import com.ytpm.service.YtAppUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -17,6 +23,8 @@ public class RiskController {
 
     @Resource
     private RiskFeign riskFeign;
+    @Resource
+    private YtAppUserService appUserService;
 
 
     /**
@@ -37,7 +45,39 @@ public class RiskController {
         return riskFeign.banned(param);
     }
 
-//    @PostMapping("/list")
-//    @ApiOperation("查询风控配置列表")
-//    public ResultTable<>
+    /**
+     * 查询风控配置列表
+     */
+    @PostMapping("/configList")
+    @ApiOperation("查询风控配置列表")
+    public ResultTable<RiskConfigListView> configList(@RequestBody RiskConfigParam param){
+        return riskFeign.getConfigList(param);
+    }
+
+    /**
+     * 查询风控记录
+     */
+    @ApiOperation("查询风控用户记录")
+    @PostMapping("/bannedList")
+    public ResultTable<RiskBannedListView> bannedList(@RequestBody RiskBannedListParam param){
+        return riskFeign.bannedList(param);
+    }
+
+    /**
+     * 查询解封记录
+     */
+    @ApiOperation("查询解封记录")
+    @PostMapping("/deblockingList")
+    public ResultTable<RiskDeblockingListView> deblockingList(@RequestBody RiskDeblockingListParam param){
+        return riskFeign.deblockingList(param);
+    }
+
+    /**
+     * 修改用户风控状态
+     */
+    @ApiOperation("修改用户风控状态")
+    @PostMapping("/changeUserStatus")
+    public Result<?> changeUserStatus(@RequestBody RiskUserStatusParam param){
+       return riskFeign.changeUserStatus(param);
+    }
 }

+ 0 - 2
yt-agent/agent-service/src/main/java/com/ytpm/dao/AppUserMapper.java

@@ -1,9 +1,7 @@
 package com.ytpm.dao;
 
-import com.ytpm.agent.model.YtAppUser;
 import com.ytpm.app.param.YtAppUserListParam;
 import com.ytpm.app.view.YtAppUserListView;
-import org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
 
 import java.util.List;

+ 3 - 0
yt-agent/agent-service/src/main/resources/mapper/AppUserMapper.xml

@@ -5,6 +5,9 @@
         select
             au.user_id,
             au.app_id,
+            au.channel_id,
+            au.platform_id,
+            au.wx_open_id,
             au.nick_name,
             au.registry_time,
             au.last_login_time,

+ 6 - 0
yt-common/src/main/java/com/ytpm/agent/model/YtAppUser.java

@@ -18,6 +18,10 @@ public class YtAppUser {
     private String appId;
     @ApiModelProperty("用户ID")
     private String userId;
+    @ApiModelProperty("渠道ID")
+    private String channelId;
+    @ApiModelProperty("平台ID")
+    private String platformId;
     @ApiModelProperty("昵称")
     private String nickName;
     @ApiModelProperty("注册时间")
@@ -52,4 +56,6 @@ public class YtAppUser {
     private Integer signDays;
     @ApiModelProperty("用户状态")
     private Integer userStatus ;
+    @ApiModelProperty("禁止登录原因")
+    private String lockReason ;
 }

+ 32 - 0
yt-common/src/main/java/com/ytpm/agent/model/YtPlatformDeblocking.java

@@ -0,0 +1,32 @@
+package com.ytpm.agent.model;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("用户解禁记录表")
+public class YtPlatformDeblocking {
+    @ApiModelProperty("解禁ID")
+    private String deblockingId;
+    @ApiModelProperty("封禁ID")
+    private String bannedId;
+    @ApiModelProperty("用户ID")
+    private String userId;
+    @ApiModelProperty("渠道ID")
+    private String channelId;
+    @ApiModelProperty("解禁时间")
+    private Date deblockingTime;
+    @ApiModelProperty("解禁原因")
+    private String deblockingReason;
+    @ApiModelProperty("操作人")
+    private String operator;
+    @ApiModelProperty("操作人姓名")
+    private String operatorName;
+}

+ 6 - 0
yt-common/src/main/java/com/ytpm/app/view/YtAppUserListView.java

@@ -18,6 +18,12 @@ public class YtAppUserListView {
     private String userId;
     @ApiModelProperty("应用ID")
     private String appId;
+    @ApiModelProperty("微信开放ID")
+    private String wxOpenId;
+    @ApiModelProperty("渠道商ID")
+    private String channelId;
+    @ApiModelProperty("平台ID")
+    private String platformId;
     @ApiModelProperty("应用名称")
     private String appName;
     @ApiModelProperty("应用类型")

+ 1 - 1
yt-common/src/main/java/com/ytpm/general/BaseParam.java

@@ -23,7 +23,7 @@ public class BaseParam extends PageMeta {
     /** 逻辑删除 1-是 0-否 */
     private Integer available;
     /** 机构ID */
-    private String organId;
+    private String channelId;
     /** 是否超级管理员 */
     private int superAdmin;
 

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

@@ -19,5 +19,6 @@ public class RepMessage {
 
     public static final String COLLECTION_EMPTY = "列表数据为空";
     public static final String LOCK_USER_SUCCESS = "用户锁定成功";
+    public static final String USER_STATUS_MODIFY = "用户状态已改变";
     public static final String ALREADY_RISK_USER = "用户已被风控";
 }

+ 2 - 0
yt-common/src/main/java/com/ytpm/risk/model/YtRiskConfig.java

@@ -13,6 +13,8 @@ import lombok.NoArgsConstructor;
 public class YtRiskConfig {
     @ApiModelProperty("配置ID")
     private String configId;
+    @ApiModelProperty("渠道商ID")
+    private String channelId;
     @ApiModelProperty("字段名称")
     private String fieldName;
     @ApiModelProperty("字段描述")

+ 33 - 0
yt-common/src/main/java/com/ytpm/risk/param/RiskBannedListParam.java

@@ -0,0 +1,33 @@
+package com.ytpm.risk.param;
+
+import com.ytpm.general.PageMeta;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("封禁用户列表筛选表单")
+public class RiskBannedListParam extends PageMeta {
+    @ApiModelProperty("渠道商ID")
+    private String channelId;
+    @ApiModelProperty("应用ID")
+    private String appId;
+    @ApiModelProperty("渠道类型")
+    private Integer channelType;
+    @ApiModelProperty("渠道来源")
+    private Integer channelOrigin;
+    @ApiModelProperty("封禁开始时间")
+    private Date bannedTimeBegin;
+    @ApiModelProperty("封禁结束时间")
+    private Date bannedTimeEnd;
+    @ApiModelProperty("封禁原因")
+    private String bannedReason;
+}

+ 2 - 0
yt-common/src/main/java/com/ytpm/risk/param/RiskConfigListParam.java

@@ -14,6 +14,8 @@ import lombok.NoArgsConstructor;
 public class RiskConfigListParam{
     @ApiModelProperty("配置ID")
     private String configId;
+    @ApiModelProperty("渠道商ID")
+    private String channelId;
     @ApiModelProperty("字段名称")
     private String fieldName;
     @ApiModelProperty("字段描述")

+ 35 - 0
yt-common/src/main/java/com/ytpm/risk/param/RiskDeblockingListParam.java

@@ -0,0 +1,35 @@
+package com.ytpm.risk.param;
+
+import com.ytpm.general.PageMeta;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("用户解封记录表筛选表单")
+public class RiskDeblockingListParam extends PageMeta {
+    @ApiModelProperty("登录时间开始")
+    private Date loginTimeBegin;
+    @ApiModelProperty("登录时间截止")
+    private Date loginTimeEnd;
+    @ApiModelProperty("解封时间开始")
+    private Date deblockingTimeBegin;
+    @ApiModelProperty("解封时间结束")
+    private Date deblockingTimeEnd;
+    @ApiModelProperty("解封原因")
+    private Date deblockingReason;
+    @ApiModelProperty("操作人")
+    private String operator;
+    @ApiModelProperty("应用ID")
+    private String appId;
+    @ApiModelProperty("渠道ID")
+    private String channelId;
+}

+ 26 - 0
yt-common/src/main/java/com/ytpm/risk/param/RiskUserStatusParam.java

@@ -0,0 +1,26 @@
+package com.ytpm.risk.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("风控用户状态入参")
+public class RiskUserStatusParam {
+    @ApiModelProperty("用户ID")
+    private String userId;
+    @ApiModelProperty("用户状态")
+    private Integer userStatus;
+    @ApiModelProperty("原因")
+    private String reason;
+    @ApiModelProperty("封禁类型")
+    private Integer bannedType;
+    @ApiModelProperty("操作人")
+    private String operator;
+    @ApiModelProperty("操作人名称")
+    private String operatorName;
+}

+ 58 - 0
yt-common/src/main/java/com/ytpm/risk/view/RiskBannedListView.java

@@ -0,0 +1,58 @@
+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;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("用户风控记录列表")
+public class RiskBannedListView {
+    @ApiModelProperty("平台ID")
+    private String platformId;
+    @ApiModelProperty("渠道商ID")
+    private String channelId;
+    @ApiModelProperty("应用ID")
+    private String appId;
+    @ApiModelProperty("用户ID")
+    private String userId;
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+    @ApiModelProperty("注册时间")
+    private Date registryTime;
+    @ApiModelProperty("最新登录时间")
+    private Date lastLoginTime;
+    @ApiModelProperty("最新登录IP")
+    private String lastLoginIp;
+    @ApiModelProperty("用户状态")
+    private Integer userStatus;
+    @ApiModelProperty("封禁时间")
+    private Date bannedTime;
+    @ApiModelProperty("封禁原因")
+    private String bannedReason;
+    @ApiModelProperty("手机品牌")
+    private String phoneBrand;
+    @ApiModelProperty("手机型号")
+    private String phoneModel;
+    @ApiModelProperty("IP运营商")
+    private String communicationOperator;
+    @ApiModelProperty("IP归属地")
+    private String ipAddr;
+    @ApiModelProperty("应用名称")
+    private String appName;
+    @ApiModelProperty("渠道类型")
+    private Integer channelType;
+    @ApiModelProperty("渠道来源")
+    private Integer channelOrigin;
+    @ApiModelProperty("操作人")
+    private String operatorName;
+    @ApiModelProperty("封禁类型 1-渠道 2-平台")
+    private Integer bannedType;
+    @ApiModelProperty("风控期限")
+    private Integer bannedLimit;
+}

+ 37 - 0
yt-common/src/main/java/com/ytpm/risk/view/RiskConfigListView.java

@@ -0,0 +1,37 @@
+package com.ytpm.risk.view;
+
+import com.ytpm.general.PageMeta;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("易推风控配置列表")
+public class RiskConfigListView extends PageMeta {
+    @ApiModelProperty("配置模版ID")
+    private String templateId;
+    @ApiModelProperty("配置名称")
+    private String templateName;
+    @ApiModelProperty("配置内容")
+    private String templateContent;
+    @ApiModelProperty("配置编码")
+    private String templateCode;
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+    @ApiModelProperty("创建人")
+    private String createUserId;
+    @ApiModelProperty("修改时间")
+    private Date updateTime;
+    @ApiModelProperty("修改者")
+    private String updateUserId;
+    @ApiModelProperty("是否启用")
+    private Integer enabled;
+}

+ 46 - 0
yt-common/src/main/java/com/ytpm/risk/view/RiskDeblockingListView.java

@@ -0,0 +1,46 @@
+package com.ytpm.risk.view;
+
+import com.ytpm.general.PageMeta;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("用户解封记录列表")
+public class RiskDeblockingListView extends PageMeta {
+    @ApiModelProperty("平台ID")
+    private String platformId;
+    @ApiModelProperty("渠道商ID")
+    private String channelId;
+    @ApiModelProperty("应用ID")
+    private String appId;
+    @ApiModelProperty("用户ID")
+    private String userId;
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+    @ApiModelProperty("注册时间")
+    private Date registryTime;
+    @ApiModelProperty("最新登录时间")
+    private Date lastLoginTime;
+    @ApiModelProperty("用户状态")
+    private Integer userStatus;
+    @ApiModelProperty("应用名称")
+    private String appName;
+    @ApiModelProperty("渠道来源")
+    private Integer channelOrigin;
+    @ApiModelProperty("操作人")
+    private String operatorName;
+    @ApiModelProperty("解禁时间")
+    private Date deblockingTime;
+    @ApiModelProperty("解禁原因")
+    private String deblockingReason;
+}

+ 17 - 1
yt-risk/risk-feign/src/main/java/com/ytpm/feign/RiskFeign.java

@@ -1,7 +1,11 @@
 package com.ytpm.feign;
 
 import com.ytpm.general.Result;
-import com.ytpm.risk.param.RiskBannedParam;
+import com.ytpm.general.ResultTable;
+import com.ytpm.risk.param.*;
+import com.ytpm.risk.view.RiskBannedListView;
+import com.ytpm.risk.view.RiskConfigListView;
+import com.ytpm.risk.view.RiskDeblockingListView;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -16,4 +20,16 @@ public interface RiskFeign {
 
     @PostMapping("/riskManage/banned")
     Result<?> banned(@RequestBody RiskBannedParam param);
+
+    @PostMapping("/riskConfig/list")
+    ResultTable<RiskConfigListView> getConfigList(@RequestBody RiskConfigParam param);
+
+    @PostMapping("/riskManage/bannedList")
+    ResultTable<RiskBannedListView> bannedList(@RequestBody RiskBannedListParam param);
+
+    @PostMapping("/riskManage/deblockingList")
+    ResultTable<RiskDeblockingListView> deblockingList(@RequestBody RiskDeblockingListParam param);
+
+    @PostMapping("/riskManage/changeUserStatus")
+    Result<?> changeUserStatus(@RequestBody RiskUserStatusParam param);
 }

+ 12 - 1
yt-risk/risk-manage/src/main/java/com/ytpm/controller/RiskConfigController.java

@@ -4,6 +4,7 @@ import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.general.Result;
 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.service.RiskService;
 import io.swagger.annotations.Api;
@@ -36,7 +37,17 @@ public class RiskConfigController {
     @ApiOperation("保存风控配置")
     @PostMapping("/saveConfig")
     public Result<?> saveConfig(@RequestBody RiskConfigParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
-        param.setDefaultParam(userInfo.getUserId());
+        param.setChannelId(userInfo.getUserId());
         return riskService.saveConfig(param);
     }
+
+    /**
+     * 查询风控配置列表
+     */
+    @ApiOperation("查询风控配置列表")
+    @PostMapping("/list")
+    public ResultTable<RiskConfigListView> getRiskConfigList(@RequestBody RiskConfigParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+        param.setChannelId(userInfo.getUserId());
+        return riskService.getRiskConfigList(param);
+    }
 }

+ 37 - 0
yt-risk/risk-manage/src/main/java/com/ytpm/controller/RiskManageController.java

@@ -2,7 +2,13 @@ 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.RiskBannedListParam;
 import com.ytpm.risk.param.RiskBannedParam;
+import com.ytpm.risk.param.RiskDeblockingListParam;
+import com.ytpm.risk.param.RiskUserStatusParam;
+import com.ytpm.risk.view.RiskBannedListView;
+import com.ytpm.risk.view.RiskDeblockingListView;
 import com.ytpm.service.RiskService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -41,4 +47,35 @@ public class RiskManageController {
         param.setOperatorName(userInfo.getNickName());
         return riskService.banned(param);
     }
+
+    /**
+     * 查询风控记录
+     */
+    @ApiOperation("查询风控用户记录")
+    @PostMapping("/bannedList")
+    public ResultTable<RiskBannedListView> bannedList(@RequestBody RiskBannedListParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+        param.setChannelId(userInfo.getUserId());
+        return riskService.bannedList(param);
+    }
+
+    /**
+     * 查询解封记录
+     */
+    @ApiOperation("查询解封记录")
+    @PostMapping("/deblockingList")
+    public ResultTable<RiskDeblockingListView> deblockingList(@RequestBody RiskDeblockingListParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+        param.setChannelId(userInfo.getUserId());
+        return riskService.deblockingList(param);
+    }
+
+    /**
+     * 修改用户状态
+     */
+    @ApiOperation("修改用户状态")
+    @PostMapping("/changeUserStatus")
+    public Result<?> changeUserStatus(@RequestBody RiskUserStatusParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+        param.setOperator(userInfo.getUserId());
+        param.setOperatorName(userInfo.getNickName());
+        return riskService.changeUserStatus(param);
+    }
 }

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

@@ -1,6 +1,10 @@
 package com.ytpm.dao;
 
 import com.ytpm.risk.model.YtRiskConfig;
+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 org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
 
@@ -12,4 +16,9 @@ public interface RiskConfigMapper {
      * 批量插入
      */
     void insertAll(@Param("configs") List<YtRiskConfig> configs);
+
+    /**
+     * 获取风控配置列表
+     */
+    List<RiskConfigListView> getRiskConfigList(RiskConfigParam param);
 }

+ 35 - 0
yt-risk/risk-manage/src/main/java/com/ytpm/dao/RiskManageMapper.java

@@ -0,0 +1,35 @@
+package com.ytpm.dao;
+
+import com.ytpm.agent.model.YtAppUser;
+import com.ytpm.agent.model.YtPlatformBanned;
+import com.ytpm.agent.model.YtPlatformDeblocking;
+import com.ytpm.risk.param.RiskBannedListParam;
+import com.ytpm.risk.param.RiskDeblockingListParam;
+import com.ytpm.risk.view.RiskBannedListView;
+import com.ytpm.risk.view.RiskDeblockingListView;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface RiskManageMapper {
+    /**
+     * 查询封禁用户列表
+     */
+    List<RiskBannedListView> getBannedList(RiskBannedListParam param);
+    /**
+     * 查询解封记录
+     */
+    List<RiskDeblockingListView> getDeblockingList(RiskDeblockingListParam param);
+
+    /**
+     * 查询用户最新的封禁记录
+     */
+    YtPlatformBanned getLastBanned(@Param("userId") String userId);
+
+    /**
+     * 增加风控解禁记录
+     */
+    void addDeblockingRecord(YtPlatformDeblocking deblocking);
+}

+ 20 - 2
yt-risk/risk-manage/src/main/java/com/ytpm/service/RiskService.java

@@ -2,9 +2,11 @@ package com.ytpm.service;
 
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
-import com.ytpm.risk.param.RiskBannedParam;
-import com.ytpm.risk.param.RiskConfigParam;
+import com.ytpm.risk.param.*;
+import com.ytpm.risk.view.RiskBannedListView;
+import com.ytpm.risk.view.RiskConfigListView;
 import com.ytpm.risk.view.RiskConfigView;
+import com.ytpm.risk.view.RiskDeblockingListView;
 
 public interface RiskService {
     /**
@@ -25,4 +27,20 @@ public interface RiskService {
      * 封禁用户
      */
     Result<?> banned(RiskBannedParam param);
+    /**
+     * 查询风控配置列表
+     */
+    ResultTable<RiskConfigListView> getRiskConfigList(RiskConfigParam param);
+    /**
+     * 查询风控记录
+     */
+    ResultTable<RiskBannedListView> bannedList(RiskBannedListParam param);
+    /**
+     * 查询解封记录
+     */
+    ResultTable<RiskDeblockingListView> deblockingList(RiskDeblockingListParam param);
+    /**
+     * 修改用户状态
+     */
+    Result<?> changeUserStatus(RiskUserStatusParam param);
 }

+ 97 - 6
yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

@@ -4,23 +4,27 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
+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.agent.model.YtPlatformBanned;
+import com.ytpm.agent.model.YtPlatformDeblocking;
 import com.ytpm.app.view.YtAppUserListView;
 import com.ytpm.custom.CustomField;
 import com.ytpm.dao.DictMapper;
 import com.ytpm.dao.RiskConfigMapper;
+import com.ytpm.dao.RiskManageMapper;
 import com.ytpm.dao.RiskUserMapper;
 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.RiskBannedParam;
-import com.ytpm.risk.param.RiskConfigListParam;
-import com.ytpm.risk.param.RiskConfigParam;
+import com.ytpm.risk.param.*;
+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.service.RiskService;
 import com.ytpm.util.ReflectUtil;
 import io.swagger.annotations.ApiModelProperty;
@@ -30,9 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -48,6 +50,8 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
     private RiskConfigMapper configMapper;
     @Resource
     private RiskUserMapper riskUserMapper;
+    @Resource
+    private RiskManageMapper riskManageMapper;
 
     /**
      * 查询配置字段选项
@@ -87,6 +91,7 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
             listVO.setConfigId(IdUtil.fastSimpleUUID());
             config = new YtRiskConfig();
             BeanUtil.copyProperties(listVO, config);
+            config.setChannelId(param.getChannelId());
             configs.add(config);
         }
         configMapper.insertAll(configs);
@@ -130,6 +135,92 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
         return Result.resultOk(RepMessage.ALREADY_RISK_USER);
     }
 
+    /**
+     * 查询风控配置列表
+     */
+    @Override
+    public ResultTable<RiskConfigListView> getRiskConfigList(RiskConfigParam param) {
+        PageHelper.startPage(param.getPage(),param.getLimit());
+        return ResultTable.resultTableOk(new PageInfo<RiskConfigListView>(configMapper.getRiskConfigList(param)));
+    }
+
+    /**
+     * 查询风控记录
+     */
+    @Override
+    public ResultTable<RiskBannedListView> bannedList(RiskBannedListParam param) {
+        PageHelper.startPage(param.getPage(),param.getLimit());
+        return ResultTable.resultTableOk(new PageInfo<RiskBannedListView>(riskManageMapper.getBannedList(param)));
+    }
+
+    /**
+     * 查询解封记录
+     */
+    @Override
+    public ResultTable<RiskDeblockingListView> deblockingList(RiskDeblockingListParam param) {
+        PageHelper.startPage(param.getPage(),param.getLimit());
+        return ResultTable.resultTableOk(new PageInfo<RiskDeblockingListView>(riskManageMapper.getDeblockingList(param)));
+    }
+
+    /**
+     * 修改用户状态
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result<?> changeUserStatus(RiskUserStatusParam param) {
+        YtAppUser user = riskUserMapper.selectByUserId(param.getUserId());
+        if(param.getUserStatus().equals(user.getUserStatus())){
+            return Result.resultOk(RepMessage.USER_STATUS_MODIFY);
+        }
+        //如果原账号状态正常且本次操作状态不正常
+        modifyAppUserInfo(user,param);
+        return Result.resultOk(RepMessage.USER_STATUS_MODIFY);
+    }
+
+    /**
+     * 修改用户信息
+     */
+    private void modifyAppUserInfo(YtAppUser user, RiskUserStatusParam param) {
+        YtAppUser appUser = new YtAppUser();
+        appUser.setUserId(param.getUserId());
+        appUser.setUserStatus(param.getUserStatus());
+        switch (param.getUserStatus()){
+            case 2:
+                appUser.setLockReason(param.getReason());
+                break;
+            case 3: //增加封禁记录
+                RiskBannedParam bannedParam = new RiskBannedParam();
+                BeanUtil.copyProperties(param, bannedParam);
+                bannedParam.setUserId(param.getUserId());
+                bannedParam.setBannedReason(param.getReason());
+                addBannedRecord(Collections.singletonList(user.getUserId()),bannedParam);
+                break;
+            default: //解禁
+                YtPlatformBanned banned = riskManageMapper.getLastBanned(user.getUserId());
+                if(Objects.nonNull(banned)){
+                    addDeblockingRecord(banned.getBannedId(),user.getUserId(),param.getOperator()
+                            ,param.getReason(),param.getOperatorName());
+                }
+        }
+        riskUserMapper.updateByUserId(appUser);
+    }
+
+    /**
+     * 增加解禁记录
+     */
+    private void addDeblockingRecord(String bannedId, String userId, String operator, String reason, String operatorName) {
+        YtPlatformDeblocking deblocking = new YtPlatformDeblocking();
+        deblocking.setDeblockingId(IdUtil.fastSimpleUUID());
+        deblocking.setUserId(userId);
+        deblocking.setOperator(operator);
+        deblocking.setOperatorName(operatorName);
+        deblocking.setBannedId(bannedId);
+        deblocking.setDeblockingReason(reason);
+        deblocking.setDeblockingTime(new Date());
+        deblocking.setChannelId(userId);
+        riskManageMapper.addDeblockingRecord(deblocking);
+    }
+
     /**
      * 增加封禁记录
      */

+ 16 - 2
yt-risk/risk-manage/src/main/resources/mapper/RiskConfigMapper.xml

@@ -10,7 +10,8 @@
              field_desc,
              config_type,
              config_val,
-             multy
+             multy,
+             channel_id
             )
         values
         <foreach collection="configs" separator="," item="item" index="index">
@@ -20,8 +21,21 @@
             #{item.fieldDesc},
             #{item.configType},
             #{item.configVal},
-            #{item.multy}
+            #{item.multy},
+            #{item.channelId}
             )
         </foreach>
     </insert>
+    <select id="getRiskConfigList" resultType="com.ytpm.risk.view.RiskConfigListView">
+        SELECT
+            t.app_id,
+            p.app_name,
+            t.template_code,
+            t.template_content
+        FROM
+            yt_risk_template t
+                JOIN yt_app p ON t.app_id = p.app_id
+        WHERE
+            t.channel_id = #{channelId}
+    </select>
 </mapper>

+ 123 - 0
yt-risk/risk-manage/src/main/resources/mapper/RiskManageMapper.xml

@@ -0,0 +1,123 @@
+<?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.ytpm.dao.RiskManageMapper">
+    <insert id="addDeblockingRecord">
+        insert into yt_platform_deblocking
+        (
+         deblocking_id,
+         banned_id,
+         user_id,
+         channel_id,
+         deblocking_time,
+         deblocking_reason,
+         operator,
+         operator_name
+        )
+        values
+        (
+         #{deblockingId},
+         #{bannedId},
+         #{userId},
+         #{channelId},
+         #{deblockingTime},
+         #{deblockingReason},
+         #{operator},
+         #{operatorName}
+        )
+    </insert>
+    <select id="getDeblockingList" resultType="com.ytpm.risk.view.RiskDeblockingListView">
+        SELECT
+            au.platform_id,
+            au.channel_id,
+            au.user_id,
+            au.nick_name,
+            au.registry_time,
+            au.last_login_time,
+            au.user_status,
+            pd.deblocking_time,
+            pd.deblocking_reason,
+            au.channel_type,
+            au.channel_origin,
+            pd.operator,
+            pd.operator_name
+        FROM
+            yt_platform_deblocking pd
+                JOIN yt_app_user au ON pd.user_id = au.user_id
+        WHERE
+            pd.channel_id = #{channelId}
+        <if test="appId != null and appId != ''">
+            and au.app_id = #{appId}
+        </if>
+        <if test="deblockingReason != null and deblockingReason != ''">
+            and pd.deblocking_reason like concat('%',#{deblockingReason},'%')
+        </if>
+        <if test="channelType != null">
+            and au.channel_type = #{channelType}
+        </if>
+        <if test="channelOrigin != null">
+            and au.channel_origin = #{channelOrigin}
+        </if>
+        <if test="deblockingTimeBegin != null">
+            and DATE_FORMAT(pd.deblocking_time,'%Y-%m-%d') <![CDATA[>=]]> DATE_FORMAT(#{deblockingTimeBegin}, '%Y-%m-%d')
+        </if>
+        <if test="deblockingTimeEnd != null">
+            and DATE_FORMAT(pd.deblocking_time,'%Y-%m-%d') <![CDATA[<=]]> DATE_FORMAT(#{deblockingTimeEnd}, '%Y-%m-%d')
+        </if>
+        <if test="loginTimeBegin != null">
+            and DATE_FORMAT(au.last_login_time,'%Y-%m-%d') <![CDATA[>=]]> DATE_FORMAT(#{loginTimeBegin}, '%Y-%m-%d')
+        </if>
+        <if test="loginTimeEnd != null">
+            and DATE_FORMAT(au.last_login_time,'%Y-%m-%d') <![CDATA[<=]]> DATE_FORMAT(#{loginTimeEnd}, '%Y-%m-%d')
+        </if>
+    </select>
+
+    <select id="getBannedList" resultType="com.ytpm.risk.view.RiskBannedListView">
+        SELECT
+        au.platform_id,
+        au.channel_id,
+        au.user_id,
+        au.nick_name,
+        au.registry_time,
+        au.last_login_time,
+        au.user_status,
+        pb.banned_time,
+        pb.banned_reason,
+        au.channel_type,
+        au.channel_origin,
+        pb.banned_type,
+        pb.banned_limit,
+        pb.operator,
+        pb.operator_name
+        FROM
+        yt_platform_banned pb
+        JOIN yt_app_user au ON pb.user_id = au.user_id
+        WHERE
+        pb.channel_id = #{channelId}
+        <if test="appId != null and appId != ''">
+            and au.app_id = #{appId}
+        </if>
+        <if test="bannedReason != null and bannedReason != ''">
+            and pb.banned_reason like concat('%',#{bannedReason},'%')
+        </if>
+        <if test="channelType != null">
+            and au.channel_type = #{channelType}
+        </if>
+        <if test="channelOrigin != null">
+            and au.channel_origin = #{channelOrigin}
+        </if>
+        <if test="bannedTimeBegin != null">
+            and DATE_FORMAT(pb.banned_time,'%Y-%m-%d') <![CDATA[>=]]> DATE_FORMAT(#{bannedTimeBegin}, '%Y-%m-%d')
+        </if>
+        <if test="bannedTimeEnd != null">
+            and DATE_FORMAT(pb.banned_time,'%Y-%m-%d') <![CDATA[<=]]> DATE_FORMAT(#{bannedTimeEnd}, '%Y-%m-%d')
+        </if>
+    </select>
+    <select id="getLastBanned" resultType="com.ytpm.agent.model.YtPlatformBanned">
+        select
+            banned_id, user_id, channel_id, banned_time, banned_reason, banned_type, banned_limit, operator, operator_name
+        from yt_platform_banned
+        where user_id = #{userId}
+        order by banned_time desc
+        limit 1
+    </select>
+</mapper>

+ 5 - 2
yt-risk/risk-manage/src/main/resources/mapper/RiskUserMapper.xml

@@ -84,6 +84,9 @@
             <if test="userStatus !=null">
                 user_status = #{userStatus}
             </if>
+            <if test="lockReason !=null">
+                lock_reason = #{lockReason}
+            </if>
         </set>
         where user_id = #{userId}
     </update>
@@ -104,13 +107,13 @@
 
     <select id="selectByUserId" resultType="com.ytpm.agent.model.YtAppUser">
         select
-            user_id, app_id, nick_name, registry_time, last_login_time, last_login_ip, login_days, channel_type, channel_origin, user_type, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status
+            user_id, app_id, channel_id, platform_id, nick_name,lock_reason, registry_time, last_login_time, last_login_ip, login_days, channel_type, channel_origin, user_type, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status
         from yt_app_user
         where user_id = #{userId}
     </select>
     <select id="getBannedUserList" resultType="com.ytpm.agent.model.YtAppUser">
         select
-            user_id, app_id, nick_name, registry_time, last_login_time, last_login_ip, login_days, channel_type, channel_origin, user_type, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, wx_open_id, platform_id, channel_id
+            user_id, app_id, channel_id, platform_id, nick_name, registry_time, last_login_time, last_login_ip, login_days, channel_type, channel_origin, user_type, total_video, total_income, red_packet_balance, red_packet_amount, points_balance, points_total, withdraw_total, sign_days, user_status, wx_open_id, platform_id, channel_id
         from yt_app_user
         where user_id = #{userId}
         <if test="bannedTargetId != null and bannedTargetId != ''">