using Library;
using MySystem.Models.Main2;
using MySystem.Service.Main2;
using System.Collections.Generic;
using MySystem.Service.KxsMain;
using System;
using System.Linq;
using LitJson;
namespace MySystem.Service.Main2
{
///
/// 银联商户修改结算卡记录表工具类
///
public class MerchantChangeSettlementCardRecordUtil
{
#region 添加或修改银联商户修改结算卡记录
///
/// 添加或修改银联商户修改结算卡记录
///
/// 商户Id
/// 商户名称
/// 操作人
/// 结算类型(0 对公结算银行卡 法人1 对私结算银行卡 2 非法人结算)
/// 开户支行地区
/// 开户支行名称
/// 商户号
/// 开户名称
/// 卡号
/// 非法人身份证号(结算类型为2时必填,默认传空字符串)
/// 非法人身份证有效开始时间(yyyy-MM-dd,结算类型为2时必填,默认传空字符串)
/// 非法人身份证有效结束时间(yyyy-MM-dd,结算类型为2时必填,默认传空字符串)
/// 银行卡正面照片(结算类型为1和2时必填,默认传空字符串)
/// 开户许可证(企业类型商户或结算类型为0时必填,默认传空字符串)
/// 企业法人对私授权书(结算类型为1且为企业商户时必填,默认传空字符串)
/// 委托结算授权书(结算类型为2时必填,默认传空字符串)
/// 被委托人身份证人像面(结算类型为2时必填,默认传空字符串)
/// 被委托人身份证国徽面(结算类型为2时必填,默认传空字符串)
/// 法人手持委托结算授权书(结算类型为2时必填,默认传空字符串)
public static string AddOrEditMerchantChangeSettlementCardRecord(int MerchantId, string MerchantName, string Operator, string AlterType, string AcctZBankAreas, string AcctZBankName, string MchtNo, string AcctName, string AccountNo, string IdCard, string AgentCardStartDate, string AgentCardEndDate, string BankCard, string OpenAccountLicenses, string PriLicAgreement, string AgentProtocol, string AgentIdCardFront, string AgentIdCardBack, string HoldAgentProtocol)
{
WebCMSEntities maindb = new WebCMSEntities();
MerchantChangeSettlementCardRecord merchantChangeSettlementCardRecord = new MerchantChangeSettlementCardRecord();
var AcctZbankCode = HaoDaAreaCodeService.Query("CityName like '%" + AcctZBankAreas + "%'").CityCode;
if (string.IsNullOrEmpty(AcctZbankCode))
{
return "未找到所选开户地区";
}
var AcctZbankkNo = OpenBankAllService.Query(" BankChild='" + AcctZBankName + "'").BankChildNo;
if (string.IsNullOrEmpty(AcctZbankkNo))
{
return "未找到所选开户支行";
}
var info = MerchantChangeSettlementCardRecordService.Query(MerchantId);
if (info.Id > 0) //修改
{
merchantChangeSettlementCardRecord = maindb.MerchantChangeSettlementCardRecord.FirstOrDefault(m => m.Id == MerchantId) ?? new MerchantChangeSettlementCardRecord();
merchantChangeSettlementCardRecord.UpdateDate = DateTime.Now;
merchantChangeSettlementCardRecord.Operator = Operator;
merchantChangeSettlementCardRecord.AlterType = int.Parse(AlterType);
merchantChangeSettlementCardRecord.AcctZbankCode = AcctZbankCode;
merchantChangeSettlementCardRecord.ZbankNo = AcctZbankkNo;
merchantChangeSettlementCardRecord.MchtNo = MchtNo;
merchantChangeSettlementCardRecord.MerchantId = MerchantId;
merchantChangeSettlementCardRecord.MerchantName = MerchantName;
merchantChangeSettlementCardRecord.AccountName = AcctName;
merchantChangeSettlementCardRecord.AccountNo = AccountNo;
merchantChangeSettlementCardRecord.IdCard = IdCard;
merchantChangeSettlementCardRecord.AgentCardStartDate = DateTime.Parse(AgentCardStartDate);
merchantChangeSettlementCardRecord.AgentCardEndDate = DateTime.Parse(AgentCardEndDate);
merchantChangeSettlementCardRecord.BankCard = BankCard;
merchantChangeSettlementCardRecord.OpenAccountLicenses = OpenAccountLicenses;
merchantChangeSettlementCardRecord.PriLicAgreement = PriLicAgreement;
merchantChangeSettlementCardRecord.AgentProtocol = AgentProtocol;
merchantChangeSettlementCardRecord.AgentIdCardFront = AgentIdCardFront;
merchantChangeSettlementCardRecord.AgentIdCardBack = AgentIdCardBack;
merchantChangeSettlementCardRecord.HoldAgentProtocol = HoldAgentProtocol;
}
else //添加
{
merchantChangeSettlementCardRecord = maindb.MerchantChangeSettlementCardRecord.Add(new MerchantChangeSettlementCardRecord()
{
Id = MerchantId,
CreateDate = DateTime.Now,
UpdateDate = DateTime.Now,
Operator = Operator,
AlterType = int.Parse(AlterType),
AcctZbankCode = AcctZbankCode,
ZbankNo = AcctZbankkNo,
MchtNo = MchtNo,
MerchantId = MerchantId,
MerchantName = MerchantName,
AccountName = AcctName,
AccountNo = AccountNo,
IdCard = IdCard,
AgentCardStartDate = DateTime.Parse(AgentCardStartDate),
AgentCardEndDate = DateTime.Parse(AgentCardEndDate),
BankCard = BankCard,
OpenAccountLicenses = OpenAccountLicenses,
PriLicAgreement = PriLicAgreement,
AgentProtocol = AgentProtocol,
AgentIdCardFront = AgentIdCardFront,
AgentIdCardBack = AgentIdCardBack,
HoldAgentProtocol = HoldAgentProtocol,
}).Entity;
}
maindb.SaveChanges();
maindb.Dispose();
//实体赋值
var request = ChangeMerchantCardSetUtil.SetValue(merchantChangeSettlementCardRecord, MerchantId);
//好哒商户修改银行卡新
JsonData Infos = JsonMapper.ToObject(HaoDaHelper.Instance.ChangeMerchantCard(request));
if (Infos["resultCode"].ToString() == "1")
{
merchantChangeSettlementCardRecord.TaskId = int.Parse(Infos["data"]["taskId"].ToString());
merchantChangeSettlementCardRecord.Status = 1;
maindb.SaveChanges();
//好哒查询修改银行卡任务审核状态
JsonData results = JsonMapper.ToObject(HaoDaHelper.Instance.QueryChangeCardStatus(merchantChangeSettlementCardRecord.MchtNo, Infos["data"]["taskId"].ToString()));
if (results["resultCode"].ToString() == "1")
{
var Status = int.Parse(results["data"]["status"].ToString());
var Remark = results["data"]["desc"].ToString();
//Status(1 待审核 3 审核拒绝 4 任务失效 5 审核通过)
merchantChangeSettlementCardRecord.Status = Status;
merchantChangeSettlementCardRecord.Remark = Remark;
maindb.SaveChanges();
}
}
return "success";
}
#endregion
#region 提交好哒商户修改结算卡申请
public static string SendHdChangeMerchantCard(MerchantChangeSettlementCardRecord merchantChangeSettlementCardRecord)
{
return "success";
}
#endregion
}
}