Przeglądaj źródła

保存风控配置临时借口(适配所有应用)

marxjaw 5 miesięcy temu
rodzic
commit
50638887a2

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

@@ -6,93 +6,15 @@ package com.ytpm.general;
  */
 public class RepMessage {
     public static final String QUERY_SUCCESS = "查询成功";
-    public static final String QUERY_FAIL = "查询失败";
-    public static final String ADD_SUCCESS = "增加成功";
-    public static final String SAVE_SUCCESS = "保存成功";
-    public static final String SUBMIT_SUCCESS = "提交成功";
-    public static final String MODIFY_SUCCESS = "修改成功";
-    public static final String DELETE_SUCCESS = "删除成功";
     public static final String LOGOUT_SUCCESS = "已退出登录";
     public static final String NOT_LOGIN= "当前用户未登录";
-    public static final String LOGON_FAILURE= "登录已失效";
-    public static final String AUDIT_SUCCESS = "审核通过";
-    public static final String REFUSE_SUCCESS = "拒绝成功";
-    public static final String REJECT_SUCCESS = "退回成功";
-    public static final String APPOINT_SUCCESS = "预约成功";
-    public static final String VERIFICATION_CODE_SEND_SUCCESS = "验证码已发送";
-    public static final String SPOUSE_NOT_DELETE = "请先删除配偶再删除主借人";
-
-    public static final String DELETE_FAIL= "删除失败";
-    public static final String MODIFY_FAIL= "操作失败";
-    public static final String ACCESS_FAIL = "用户权限不足";
-    public static final String MENU_DEL_REMIND = "当前菜单节点有子菜单,请先删除子菜单";
-    public static final String USER_ID_EMPTY = "用户ID不能为空";
     public static final String USER_NAME_EMPTY = "用户名不能为空";
-    public static final String PASSWORD_EMPTY = "密码不能为空";
-    public static final String USER_NOT_EXIST = "手机号不存在";
-    public static final String PHONE_NOT_EXIST = "手机号不在库";
-    public static final String USER_EXIST = "用户已存在";
-    public static final String PHONE_NO_EXIST = "手机号码已存在";
-    public static final String SEND_EXPIRES = "获取验证码需间隔60秒";
-    public static final String ROLE_EXIST = "角色已存在";
-    public static final String USER_NAME_EXIST = "用户名已存在";
     public static final String USERNAME_OR_PASSWORD_ERROR = "用户名或密码错误";
-    public static final String PASSWORD_ERROR = "请输入正确的密码";
-    public static final String LOGIN_MSG_ERR = "验证码错误";
     public static final String LOGIN_NON_MSG = "请输入验证码";
-    public static final String LOGIN_MSG_NOT_EXIST = "验证码已失效,请重新获取";
-    public static final String USER_ACCOUNT_DISABLED = "当前账号不可用";
     public static final String METHOD_NOT_ARROW = "请求方式不允许";
     public static final String TOKEN_EXPIRE = "登录超时,请重新登录";
     public static final String TOKEN_INVALID = "登录已失效,请重新登录";
     public static final String LOGOUT_FAIL = "用户注销失败";
-    public static final String BUSINESS_EMPTY = "业务订单不存在";
-    public static final String MODIFY_NOT_ALLOW = "已提交不可修改";
-    public static final String RISK_BUSINESS_NOT_FOUND = "风险审核记录不存在";
-    public static final String BUSINESS_ID_EMPTY = "已保存业务单ID不能为空";
-    public static final String REAL_ESTATE_INFO_ID_EMPTY = "房产ID不能为空";
-    public static final String BUSINESS_STATUS_ERROR="当前业务状态流程不允许操作";
-    public static final String BUSINESS_BORROWING_OPERATION_STATUS_ERROR="当前该笔借款状态不允许操作";
-    public static final String BUSINESS_CERTIFICATE_TYPE_STATUS_ERROR="证件格式不正确";
-    public static final String  BUSINESS_CURRENT_OPERATE_STATUS_ERROR="流程状态已变化,当前不能操作";
-    public static final String  RESERVE_LOAN_TIME_EMPTY="预约放款时间不能为空";
-    public static final String  HOUSE_TRANSFER_DATE_EMPTY="过户日期不能为空";
-    public static final String  HOUSE_TRANSFER_TIME_EMPTY="过户时间不能为空";
-    public static final String  ESTIMATED_FORENSICS_DATE_EMPTY="预计取证日期不能为空";
-    public static final String  ESTIMATED_FORENSICS_TIME_EMPTY="预计取证时间不能为空";
-    public static final String  HOUSE_TRANSFER_IMG_EMPTY="过户凭证不能为空";
-    public static final String  ORGANIZATION_ID_EMPTY="账户没有绑定机构,请联系管理员";
-    public static final String  TASK_NOT_EXIST="任务不存在";
-
-    public static final String  PWD_NOT_SAME="两次输入密码不一致";
-    public static final String  CODE_SENDING="验证码发送中,请稍候";
-    public static final String  VERIFY_CODE_ERROR="请输入正确的验证码";
-    public static final String  VERIFY_CODE_EMPTY="请输入验证码";
-
-    public static final String PERSON_EMPTY="人员配置不能为空";
-    public static final String PERSON_CASHIER_EMPTY="人员配置出纳员不能为空";
-    public static final String PERSON_CUSTOMER_MANAGER_EMPTY="人员配置客户经理不能为空";
-    public static final String PERSON_REPAYMENT_EMPTY="人员配置还款专员不能为空";
-    public static final String PERSON_MERCHANDISER_EMPTY="人员配置跟单员不能为空";
-    public static final String PERSON_OTHER_TASK_EMPTY="人员配置其他管理不能为空";
-
-    public static  final String PARAM_ERROR="请求参数有误";
-    public static  final String WHTHIN_NO_RECORD="无记录";
-
-
-    /**   文件不存在  */
-    public static  final String FILE_NOT_EXISTS="文件不存在";
-
-
-
-
-    /************************* 移动端MSG******************************************************/
-
-    public static  final String WEB_FREE_LOGIN_FAIL_NO_PHONE_MSG="免登陆获取手机号码失败";
-
-    public static  final String WEB_FREE_LOGIN_FAIL_MSG="免登陆失败";
-
-    public static  final String WEB_LOGIN_CHECK_FAIL_MSG="校验失败,请重新获取";
-
 
+    public static final String COLLECTION_EMPTY = "列表数据为空";
 }

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

@@ -13,10 +13,6 @@ import lombok.NoArgsConstructor;
 public class YtRiskConfig {
     @ApiModelProperty("配置ID")
     private String configId;
-    @ApiModelProperty("生效目标ID")
-    private String targetId;
-    @ApiModelProperty("生效目标类型 1-渠道 2-app")
-    private String targetType;
     @ApiModelProperty("字段名称")
     private String fieldName;
     @ApiModelProperty("字段描述")

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

@@ -0,0 +1,27 @@
+package com.ytpm.risk.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+@ApiModel("易推风控配置表单")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class RiskConfigListParam{
+    @ApiModelProperty("配置ID")
+    private String configId;
+    @ApiModelProperty("字段名称")
+    private String fieldName;
+    @ApiModelProperty("字段描述")
+    private String fieldDesc;
+    @ApiModelProperty("配置类型 1-输入框 2-选择框 3-日期")
+    private Integer configType;
+    @ApiModelProperty("配置值")
+    private String configVal;
+    @ApiModelProperty("是否多个")
+    private Integer multy;
+}

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

@@ -0,0 +1,23 @@
+package com.ytpm.risk.param;
+
+import com.ytpm.general.BaseParam;
+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.List;
+
+@EqualsAndHashCode(callSuper = true)
+@ApiModel("易推风控配置表单")
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class RiskConfigParam extends BaseParam {
+    @ApiModelProperty("风控配置列表")
+    private List<RiskConfigListParam> configList;
+    @ApiModelProperty(value = "关联的应用ID")
+    private String appId;
+}

+ 0 - 4
yt-common/src/main/java/com/ytpm/risk/view/RiskConfigView.java

@@ -15,10 +15,6 @@ import java.util.List;
 public class RiskConfigView {
     @ApiModelProperty("配置ID")
     private String configId;
-    @ApiModelProperty("生效目标ID")
-    private String targetId;
-    @ApiModelProperty("生效目标类型 1-渠道 2-app")
-    private String targetType;
     @ApiModelProperty("字段名称")
     private String fieldName;
     @ApiModelProperty("字段描述")

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

@@ -1,13 +1,15 @@
 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.RiskConfigParam;
 import com.ytpm.risk.view.RiskConfigView;
 import com.ytpm.service.RiskService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
@@ -28,4 +30,14 @@ public class RiskConfigController {
         return riskService.getRiskConfig();
     }
 
+    /**
+     * 保存风控配置
+     */
+    @ApiOperation("保存风控配置")
+    @PostMapping("/saveConfig")
+    public Result<?> saveConfig(@RequestBody RiskConfigParam param, @AuthenticationPrincipal AgentUserInfo userInfo){
+        param.setDefaultParam(userInfo.getUserId());
+        return riskService.saveConfig(param);
+    }
+
 }

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

@@ -0,0 +1,15 @@
+package com.ytpm.dao;
+
+import com.ytpm.risk.model.YtRiskConfig;
+import org.apache.ibatis.annotations.Param;
+import org.mapstruct.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface RiskConfigMapper {
+    /**
+     * 批量插入
+     */
+    void insertAll(@Param("configs") List<YtRiskConfig> configs);
+}

+ 6 - 0
yt-risk/risk-manage/src/main/java/com/ytpm/service/RiskService.java

@@ -1,6 +1,8 @@
 package com.ytpm.service;
 
+import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
+import com.ytpm.risk.param.RiskConfigParam;
 import com.ytpm.risk.view.RiskConfigView;
 
 public interface RiskService {
@@ -8,4 +10,8 @@ public interface RiskService {
      * 查询配置字段选项
      */
     ResultTable<RiskConfigView> getRiskConfig();
+    /**
+     * 保存风控配置
+     */
+    Result<?> saveConfig(RiskConfigParam param);
 }

+ 34 - 0
yt-risk/risk-manage/src/main/java/com/ytpm/service/impl/RiskServiceImpl.java

@@ -1,13 +1,23 @@
 package com.ytpm.service.impl;
 
+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.PageInfo;
 import com.ytpm.app.view.YtAppUserListView;
 import com.ytpm.custom.CustomField;
 import com.ytpm.dao.DictMapper;
+import com.ytpm.dao.RiskConfigMapper;
+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.RiskConfigListParam;
+import com.ytpm.risk.param.RiskConfigParam;
 import com.ytpm.risk.view.RiskConfigView;
 import com.ytpm.service.RiskService;
+import com.ytpm.util.IDUtil;
 import com.ytpm.util.ReflectUtil;
 import io.swagger.annotations.ApiModelProperty;
 import org.springframework.stereotype.Service;
@@ -22,6 +32,8 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
 
     @Resource
     private DictMapper  dictMapper;
+    @Resource
+    private RiskConfigMapper configMapper;
 
     /**
      * 查询配置字段选项
@@ -45,4 +57,26 @@ public class RiskServiceImpl extends ReflectUtil implements RiskService {
         return ResultTable.resultTableOk(new PageInfo<RiskConfigView>(configList));
     }
 
+    /**
+     * 保存风控配置
+     */
+    @Override
+    public Result<?> saveConfig(RiskConfigParam param) {
+        //TODO 暂时保存的配置适配所有应用
+        List<RiskConfigListParam> configList = param.getConfigList();
+        if(CollUtil.isEmpty(param.getConfigList())){
+            return Result.resultErr(RepMessage.COLLECTION_EMPTY);
+        }
+        List<YtRiskConfig> configs = new ArrayList<>();
+        YtRiskConfig config;
+        for (RiskConfigListParam listVO : configList) {
+            listVO.setConfigId(IdUtil.fastSimpleUUID());
+            config = new YtRiskConfig();
+            BeanUtil.copyProperties(listVO, config);
+            configs.add(config);
+        }
+        configMapper.insertAll(configs);
+        return Result.resultOk();
+    }
+
 }

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

@@ -0,0 +1,27 @@
+<?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.RiskConfigMapper">
+
+    <insert id="insertAll">
+        insert into yt_risk_config
+            (
+             config_id,
+             field_name,
+             field_desc,
+             config_type,
+             config_val,
+             multy
+            )
+        values
+        <foreach collection="configs" separator="," item="item" index="index">
+            (
+            #{item.configId},
+            #{item.fieldName},
+            #{item.fieldDesc},
+            #{item.configType},
+            #{item.configVal},
+            #{item.multy}
+            )
+        </foreach>
+    </insert>
+</mapper>