using YLErp.Model.Enum; using YLErp.Modules.ClientModule; namespace YLErp.Web.Controllers { public class bankcardController : BaseController { public ActionResult bankcardEditPopInner(int? rid, bool isOnlyView = false) { var clientCount = yldb.approvalprocess.Where(x => x.processType == "OpenProcess").Count(); ViewBag.ClientApprovalProcessCount = clientCount; var client = clientDB.client.Find(rid); ViewBag.ProcessStatus = client == null ? "未提交" : client.ProcessStatus; var bankCard = new List(); var models = clientDB.bankcard.Where(b => b.ApprovalOrder < 1 && b.ClientId == rid).ToList(); if (models != null) { foreach (var m in models) { var b = new ClientBankCard { id = m.id, Bank = m.Bank, Card = System.Text.RegularExpressions.Regex.Replace(m.Card, @"(\d{4}(?!$))", "$1 "), ClientId = m.ClientId, Payment = m.Payment, ClientName = m.ClientName, ValidState = m.ValidState, OptId = m.OptId, OptName = m.OptName, OptDate = m.OptDate, State = m.State, Comments = m.Comments, ApprovalOrder = (int)ApprovalOrderEnum.无需审批 }; bankCard.Add(b); } } ViewBag.IsOnlyView = isOnlyView; return View(bankCard); } [HttpPost] public JsonResult bankcardQuery(ClientBankCardReq req) { var sList = new ClientBankCardService(CurUser).SearchList(req); return Json(sList); } public ActionResult bankcardEdit(string enid, int? rid) { var r = new ClientBankCard(); var isAdd = string.IsNullOrEmpty(enid) || enid == "0"; var clientCount = yldb.approvalprocess.Where(x => x.processType == "OpenProcess").Count(); ViewBag.ClientApprovalProcessCount = clientCount; if (isAdd) { if (rid != null) { //客户id var client = clientDB.client.Find(rid); if (client == null) { throw new ServiceException("请先保存用户基本信息"); } r.ClientId = client == null ? 0 : client.id; r.ClientName = client == null ? "" : client.Name; ViewBag.ProcessStatus = client == null ? "未提交" : client.ProcessStatus; ViewBag.IsProductType = client.ClientType == ClientTypeEnum.产品.ToString(); } else { ViewBag.ProcessStatus = "未提交"; ViewBag.IsProductType = false; } return View(r); } else { var intid = DecryptInt(enid); r = clientDB.bankcard.Find(intid); if (r != null) { var client = clientDB.client.Find(r.ClientId); ViewBag.ProcessStatus = client == null ? "未提交" : client.ProcessStatus; ViewBag.IsProductType = client.ClientType == ClientTypeEnum.产品.ToString(); } else { ViewBag.ProcessStatus = "未提交"; ViewBag.IsProductType = false; } return View(r); } } [HttpPost] public JsonResult bankcardEditJson(ClientBankCard req) { var set = Request.Form.Keys.Cast().ToHashSet(StringComparer.OrdinalIgnoreCase); var r = new ClientBankCardService(CurUser).SaveBankCard(req, out _, set); return JsonSuccess("更新成功", r); } /// /// 银行卡详情 /// public JsonResult AjaxGetBankcardDetail(string enid) { var intid = DecryptInt(enid); var dbModel = intid > 0 ? clientDB.bankcard.AsNoTracking().FirstOrDefault(n => n.id == intid) : null; if (dbModel == null) { return JsonError("没有找到银行卡信息"); } return JsonSuccessData(dbModel); } /// /// 作废银行卡 /// public JsonResult AjaxInvalidBankcard(string enid, bool isDirectSubApp = false) { var intid = DecryptInt(enid); if (intid < 1) { return JsonError("没有找到银行卡信息"); } var bankcard = new ClientBankCardService(CurUser).InvalidBankcard(intid, out var client, isDirectSubApp); return JsonSuccessData(new { bankcard, client = new { client.ProcessStatus, client.ProcessOrderId, client.ProcessOptDate } }); } /// /// 根据客户ID获取银行卡信息列表 /// public JsonResult AjaxGetBankcardList(int clientId, bool isApproval = false) { var bankcards = clientId == 0 ? new ClientBankCard[0] : clientDB.bankcard.Where(b => b.ClientId == clientId && b.ApprovalOrder != (int)ApprovalOrderEnum.审批作废).ToArray(); if (isApproval) { var notbankcards = bankcards.Where(x => x.SourceId > 0).Select(x => x.SourceId ?? 0).ToList(); notbankcards.AddRange(bankcards.Where(x => x.ApprovalOrder == (int)ApprovalOrderEnum.删除).Select(x => x.id).ToList()); bankcards = bankcards.Where(x => !notbankcards.Contains(x.id)).ToArray(); foreach (var item in bankcards) { if (item.ApprovalOrder == (int?)ApprovalOrderEnum.失效) { item.ValidState = "InValid"; } } } else { bankcards = bankcards.Where(x => x.ApprovalOrder < 1).ToArray(); } return JsonSuccessData(bankcards); } /// /// 保存银行卡信息 /// public JsonResult AjaxSaveBankCard(ClientBankCard req, bool isDirectSubApp = false) { var set = Request.Form.Keys.Cast().ToHashSet(StringComparer.OrdinalIgnoreCase); var bankcard = new ClientBankCardService(CurUser).SaveBankCard(req, out var client, set, isDirectSubApp); return JsonSuccess("更新成功", new { bankcard, client = new { client.ProcessStatus, client.ProcessOrderId, client.ProcessOptDate } }); } } }