Esempio n. 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="req"></param>
        /// <returns></returns>
        public async Task <ScpChainRsp> ScpChain(ScpChainReq req)
        {
            #region 参数验证
            req.NotNull("贷款申请请求参数");
            req.ScpChainLoanApp.NotNull("贷款信息");
            req.ScpChainReqPersonInfo.NotNull("个人信息");
            if (req.ScpChainReqPersonInfo.UserSubjectType == SubjectType.企业)
            {
                req.ScpChainReqCompanyInfo.NotNull("企业信息");
            }
            req.ScpChainReqBankAccountInfo.NotNull("银行信息");
            req.AdditionalInfo.NotNull("补充信息");
            req.ExtendTradeId.NotNull("外部交易id");

            #region loanApp
            var loanApp = req.ScpChainLoanApp;
            loanApp.LoanMaturityDaily.RegexValid("(^[1-9]$)|(^[1-2]\\d$)|(^30$)", "贷款期限天");
            #endregion
            #region PersonInfo
            var personInfo = req.ScpChainReqPersonInfo;
            personInfo.UserSubjectType.EnumValueValid("用户主体类型");
            personInfo.BankAccountNo.NotNull("银行卡号");
            if (req.ScpChainReqPersonInfo.UserSubjectType == SubjectType.个人)
            {
                personInfo.UserRealName.NotNull("真实姓名");
                personInfo.UserCardNum.RegexValid("(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)", "身份证号码");
                personInfo.PersonAnnualIncome.RegexValid("^([1-9]\\d{0,9}|10{10}|0)(\\.\\d{1,4})?$", "年收入");
                personInfo.PersonMobilePhone.RegexValid("^1[34578][0-9]{9}$", "手机号码");
                personInfo.PersonResidenceAddr.NotNull("居住地址");
                var redisenceAddr = personInfo.PersonResidenceAddr;
                redisenceAddr.Province.NotNull("省");
                redisenceAddr.City.NotNull("市");
                redisenceAddr.District.NotNull("区");
                redisenceAddr.DetailedAddress.NotNull("街道");

                personInfo.PersonMaritalStatus.EnumValueValid("婚姻状况");

                //写个默认值,以后改掉
                req.ComplianceInfo = new ComplianceInfo()
                {
                    PersonComplianceInfo = new PersonComplianceDetail()
                    {
                        UserBorrowProperty = "自然人",
                        PersonAnnualIncome = "100000",
                        FinanceAllDeptAmt  = "0.00",
                    }
                };
            }
            else if (req.ScpChainReqPersonInfo.UserSubjectType == SubjectType.企业)
            {
                personInfo.TrusteeName.NotNull("受托人姓名");
                personInfo.TrusteeCardNum.RegexValid("(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)", "受托人身份证号码");
                var trusteeAddr = personInfo.TrusteeResidenceAddr;
                trusteeAddr.NotNull("省");
                trusteeAddr.NotNull("市");
                trusteeAddr.NotNull("区");
                trusteeAddr.NotNull("街道");

                personInfo.TrusteeIsRep.EnumValueValid("是否为法人");
                personInfo.TrusteeMobile.RegexValid("^1[34578][0-9]{9}$", "受托人手机号码");
                personInfo.TrusteeJobTitle.NotNull("受托人现任职位");

                req.ComplianceInfo = new ComplianceInfo()
                {
                    CompanyComplianceDetail = new CompanyComplianceDetail()
                    {
                        CompanyTotalIncome = "1000000",
                        FinanceAllDeptAmt  = "0",
                        UserBorrowProperty = "法人或其他组织"
                    }
                };
            }
            #endregion
            #region CompanyInfo
            if (req.ScpChainReqPersonInfo.UserSubjectType == SubjectType.企业)
            {
                var companyInfo = req.ScpChainReqCompanyInfo;
                companyInfo.CompanyBusinessLicenseNum.RegexValid("^[A-Za-z0-9]{0,32}$", "工商注册号码");
                companyInfo.CompanyRegisteredCapital.RegexValid("^([1-9]\\d{0,9}|10{10}|0)(\\.\\d{1,2})?$", "注册资本");
                companyInfo.CompanyLegalRepresentativeCardNumber.RegexValid("(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)", "法人身份证号");

                //写个默认值,以后改掉
                req.ComplianceInfo = new ComplianceInfo()
                {
                    CompanyComplianceDetail = new CompanyComplianceDetail()
                    {
                        UserBorrowProperty = "法人或其他组织",
                        CompanyTotalIncome = "1000000",
                        FinanceAllDeptAmt  = "0.00"
                    }
                };
            }
            #endregion
            #region BankAccountInfo
            foreach (var bankInfo in req.ScpChainReqBankAccountInfo)
            {
                bankInfo.BankType.EnumValueValid("收款账户类型");
                bankInfo.BankBank.EnumValueValid("开户行");
                bankInfo.BankOwnerType.EnumValueValid("账户持有人类型");
            }

            #endregion
            #region 合规信息

            #endregion
            #endregion


            var reqModel = DianrongHelper.BuildReqModel(req, configModel.ChannelId);
            var rst      = await DianrongHelper.GetDianrongRsp <ScpChainRsp>(configModel.ScpChainUrl, reqModel);

            return(rst);
        }
Esempio n. 2
0
        public async Task <IActionResult> ScpChain([FromBody] ScpChainReq req)
        {
            var rst = await dianrongService.ScpChain(req);

            return(Ok(rst));
        }