public ActionResult <string> GetUserDebitAttention(int userId) { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; try { ///逻辑 DataProviderResultModel result = DebitProvider.GetUserDebitAttention(userId); if (result.result == Result.SUCCESS) { ret.data = result.data; } else { ret.result = result.result; ret.message = result.message; } } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = Convert.ToString(MainErrorModels.LOGIC_ERROR); Log.WriteErrorLog("MainController::GetUserDebitAttention", "异常:{0}", ex.Message); } return(JsonConvert.SerializeObject(ret)); }
/// <summary> /// 获取某条贷款记录 /// </summary> /// <param name="debitId"></param> /// <returns></returns> public ActionResult <string> GetUserExtendInfo(int debitId) { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; try { ///逻辑 DataProviderResultModel result = DebitProvider.GetUserExtendRecord(debitId); if (result.result == Result.SUCCESS) { ret.data = result.data; } else { ret.result = result.result; ret.message = result.message; } } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = "The program logic error from the DebitController::GetUserDebitRecord function."; Log.WriteErrorLog("DebitController::GetUserDebitRecord", "异常:{0}", ex.Message); } return(JsonConvert.SerializeObject(ret)); }
public ActionResult <string> GetUserDebitRecordDetail() { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; string content = HelperProvider.GetRequestContent(HttpContext); if (String.IsNullOrEmpty(content)) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.PARAMETER_ERROR; ret.message = "The request body is empty."; Log.WriteErrorLog("v2:DebitController::SubmitDebitRequest", "请求参数为空。{0}", HelperProvider.GetHeader(HttpContext)); return(JsonConvert.SerializeObject(ret)); } try { var requestBody = JsonConvert.DeserializeObject <DebitInfoRequestBody>(content); DebitRecordLogResponse response = new DebitRecordLogResponse(); DataProviderResultModel result = DebitProvider.GetUserDebitRecord(requestBody.debitId); if (result.result == Result.SUCCESS) { response.debitInfo = result.data as DebitInfoModel; result = DebitProvider.GetUserDebitRecordLogs(requestBody.debitId); if (result.result == Result.SUCCESS) { response.logs = result.data as List <DebitRecordLogModel>; ret.data = response; ret.result = Result.SUCCESS; } else { ret.result = result.result; ret.message = result.message; } } else { ret.result = result.result; ret.message = result.message; } } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = "The program logic error from the DebitController::GetUserDebitRecordDetail function."; Log.WriteErrorLog("v2::DebitController::GetUserDebitRecordDetail", "异常:{0}", ex.Message); } return(JsonConvert.SerializeObject(ret)); }
/// <summary> /// 获取用户的贷款记录 /// </summary> /// <param name="userId"></param> /// <returns></returns> public ActionResult <string> GetUserDebitRecords() { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; string content = HelperProvider.GetRequestContent(HttpContext); if (String.IsNullOrEmpty(content)) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.PARAMETER_ERROR; ret.message = "The request body is empty."; Log.WriteErrorLog("v2:DebitController::SubmitDebitRequest", "请求参数为空。{0}", HelperProvider.GetHeader(HttpContext)); return(JsonConvert.SerializeObject(ret)); } try { var requestBody = JsonConvert.DeserializeObject <DebitRecordsRequestBody>(content); ///逻辑 DataProviderResultModel result = DebitProvider.GetUserDebitRecords(requestBody); if (result.result == Result.SUCCESS) { ret.data = result.data; } else { ret.result = result.result; ret.message = result.message; } } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = "The program logic error from the DebitController::GetUserDebitRecords function."; Log.WriteErrorLog("v2::DebitController::GetUserDebitRecords", "UserId:{0},异常:{1}", content, ex.Message); } return(JsonConvert.SerializeObject(ret)); }
public ActionResult <string> GetUserDebitAttention() { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; try { string content = HelperProvider.GetRequestContent(HttpContext); if (String.IsNullOrEmpty(content)) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.PARAMETER_ERROR; ret.message = "The request body is empty."; Log.WriteErrorLog("v2:MainController::GetUserDebitAttention", "请求参数为空。{0}", HelperProvider.GetHeader(HttpContext)); return(JsonConvert.SerializeObject(ret)); } var requestBody = JsonConvert.DeserializeObject <UserInfoRequestBody>(content); int iUserId = 0; int.TryParse(requestBody.userId, out iUserId); ///逻辑 DataProviderResultModel result = DebitProvider.GetUserDebitAttention(iUserId); if (result.result == Result.SUCCESS) { ret.data = result.data; } else { ret.result = result.result; ret.message = result.message; } } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = Convert.ToString(MainErrorModels.LOGIC_ERROR); Log.WriteErrorLog("v2::MainController::GetUserDebitAttention", "异常:{0}", ex.Message); } return(JsonConvert.SerializeObject(ret)); }
/// <summary> /// /// </summary> /// <param name="userId"></param> /// <param name="debitId"></param> /// <param name="payBackDebitMoney"></param> /// <param name="certificateUrl"></param> /// <returns></returns> public ActionResult <string> SubmitExtendDebitRequest(int userId, int debitId, float payBackDebitMoney, string certificateUrl = "") { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; Redis redis = HelperProvider.GetRedis(); try { string lockKey = "submitExtend"; if (redis.LockTake(lockKey, userId)) { ///逻辑 DataProviderResultModel result = DebitProvider.ExtendDebitRequest(userId, debitId, payBackDebitMoney, certificateUrl); ret.result = result.result; if (result.result != Result.SUCCESS) { ret.result = Result.ERROR; ret.errorCode = result.result; ret.message = result.message; } redis.LockRelease(lockKey, userId); } else { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.ALREADY_SUBMIT_REQUEST; ret.message = "already submit request."; } } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = Convert.ToString(MainErrorModels.LOGIC_ERROR); Log.WriteErrorLog("DebitController::SubmitExtendDebitRequest", "异常:{0}", ex.Message); } return(JsonConvert.SerializeObject(ret)); }
/// <summary> /// 计算利率 2 /// </summary> /// <param name="debitMoney"></param> /// <param name="debitPeroid"></param> /// <returns></returns> public ActionResult <string> CalcInterestRate(float debitMoney, int debitPeriod) { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; try { ///逻辑 DebitInfo info = new DebitInfo(); info.debitMoney = debitMoney; info.debitPeriod = debitPeriod; info.description = String.Format("no interest rate fees\r\nonly pay back {0} after {1} days", debitMoney.ToString("#,##0.00 "), debitPeriod); DataProviderResultModel result = DebitProvider.GetInterestRateByDebitStyle(debitMoney, debitPeriod); if (result.result == Result.SUCCESS) { float rate = 0f; float overdueRate = 0f; if (null != result.data) { List <float> rates = result.data as List <float>; rate = rates[0]; overdueRate = rates[1]; //贷多少,还多少 info.payBackMoney = debitMoney; //手续费,一次性 if (rate >= 1) { info.debitFee = rate; //日息 info.dailyInterest = rate / debitPeriod; } else { info.debitFee = debitMoney * rate; //日息 info.dailyInterest = debitMoney * rate / debitPeriod; } //实际到帐,减去手续费 info.actualMoney = debitMoney - info.debitFee; //日息 info.dailyInterest = debitMoney * rate / debitPeriod; //逾期日息 info.overdueDayInterest = debitMoney * overdueRate; ret.data = info; } else { ret.result = MainErrorModels.LOGIC_ERROR; ret.message = "logic error,The rate calc result is 0."; } } else { ret.result = Result.ERROR; ret.errorCode = result.result; ret.message = result.message; } } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = Convert.ToString(MainErrorModels.LOGIC_ERROR); Log.WriteErrorLog("DebitController::CalcInterestRate", "异常:{0}", ex.Message); } return(JsonConvert.SerializeObject(ret)); }
/// <summary> /// /// </summary> /// <param name="userId"></param> /// <param name="debitMoney"></param> /// <param name="debitPeroid"></param> /// <param name="bankId"></param> /// <param name="description"></param> /// <returns></returns> public ActionResult <string> SubmitDebitRequest(int userId, float debitMoney, string description, int bankId = 0, int debitPeriod = 0, int debitPeroid = 0, string deviceId = "") { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; Redis redis = HelperProvider.GetRedis(); try { string pkgName = HttpContext.Request.Headers["pkgName"]; if (String.IsNullOrEmpty(pkgName) && String.IsNullOrEmpty(redis.StringGet(String.Format("attention_{0}", userId)))) { Log.WriteDebugLog("DebitController::SubmitDebitRequest", "[{0}] 用的是老版本,发短信通知他去下载最新版", userId); WaveCellSMSSingleSender.Authorization = ConfigSettings.WaveCellSMSAuthorization; WaveCellSMSSingleSender.SubAccountName = ConfigSettings.WaveCellSMSAccountName; WaveCellSMSSingleSender waveCellSMSSender = new WaveCellSMSSingleSender(); string key = String.Format("UserAllInfoV5_{0}", userId); string info = redis.StringGet(key); if (!String.IsNullOrEmpty(info)) { UserAllInfoModel userInfo = JsonConvert.DeserializeObject <UserAllInfoModel>(info); string phone = "+62" + userInfo.userPersonalInfo.userName; string msg = "Anda masih menggunakan aplikasi versi lama, silahkan klik https://play.google.com/store/apps/details?id=com.danapinjam.vip untuk mengunduh versi terbaru."; WaveCellSMSResponseModels sendRet = waveCellSMSSender.Send(phone, msg); } redis.StringSet(String.Format("attention_{0}", userId), "1"); } if (userId > 146724 && String.IsNullOrEmpty(pkgName)) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.PARAMETER_ERROR; ret.message = "Anda masih menggunakan aplikasi versi lama, silahkan klik https://play.google.com/store/apps/details?id=com.danapinjam.vip untuk mengunduh versi terbaru."; Log.WriteWarning("DebitController::SubmitDebitRequest", "新用户,老版本将不允许借款。{0}", HelperProvider.GetHeader(HttpContext)); return(JsonConvert.SerializeObject(ret)); } string lockKey = "submitdebit"; if (redis.LockTake(lockKey, userId)) { debitPeriod = debitPeriod == 0 ? debitPeroid : debitPeriod; if (String.IsNullOrEmpty(deviceId)) { deviceId = HttpContext.Request.Headers["deviceNo"]; } if (bankId == 0) { DataProviderResultModel bankInfoResult = DebitProvider.GetUserBankId(userId); if (bankInfoResult.result == Result.SUCCESS) { int.TryParse(Convert.ToString(bankInfoResult.data), out bankId); } else { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.PARAMETER_ERROR; ret.message = bankInfoResult.message; redis.LockRelease(lockKey, userId); return(JsonConvert.SerializeObject(ret)); } Log.WriteWarning("DebitController::SubmitDebitRequest", "警告:用户【{0}】提交时BankId为空,可能是老版本。", userId); } ///逻辑 DataProviderResultModel result = DebitProvider.SubmitDebitReuqest(userId, debitMoney, debitPeriod, bankId, description, deviceId); ret.result = result.result; if (result.result == Result.SUCCESS) { ret.data = result.data; } else { ret.result = Result.ERROR; ret.errorCode = result.result; ret.message = result.message; } redis.LockRelease(lockKey, userId); } else { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.ALREADY_SUBMIT_REQUEST; ret.message = "already submit request."; Log.WriteDebugLog("DebitController::SubmitDebitRequest", "[{0}] 重复请求。", userId); } } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = Convert.ToString(MainErrorModels.LOGIC_ERROR); Log.WriteErrorLog("DebitController::SubmitDebitRequest", "异常:{0}", ex.Message); } finally { Log.WriteDebugLog("UserController::SubmitDebitRequest", "{0}", HelperProvider.GetHeader(HttpContext)); } return(JsonConvert.SerializeObject(ret)); }
/// <summary> /// 获取贷款种类 /// </summary> /// <returns></returns> public ActionResult <string> GetInitDebitStyle() { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; Redis redis = HelperProvider.GetRedis(); try { string userId = HttpContext.Request.Headers["userId"]; var iUserId = 0; var userLevel = 0; int.TryParse(userId, out iUserId); if (iUserId > 0) { string key = String.Format("UserAllInfoV5_{0}", userId); string info = redis.StringGet(key); if (!String.IsNullOrEmpty(info)) { UserAllInfoModel userInfo = JsonConvert.DeserializeObject <UserAllInfoModel>(info); userLevel = userInfo.userLevel; Log.WriteDebugLog("v2::MainController::GetInitDebitStyle", "用户的等级是:{0}", userLevel); } else { DataProviderResultModel dataProviderResult = UserProvider.GetUserAllInfo(userId); if (dataProviderResult.result == Result.SUCCESS) { UserAllInfoModel userInfo = dataProviderResult.data as UserAllInfoModel; userLevel = userInfo.userLevel; redis.StringSet(key, JsonConvert.SerializeObject(userInfo)); } else { Log.WriteDebugLog("v2::MainController::GetInitDebitStyle", "获取缓存与数据库为空:{0}", userId); } } } else { Log.WriteDebugLog("v2::MainController::GetInitDebitStyle", "用户ID没有传入"); userLevel = 0; } var debitStyle = new List <float> { 1500000.00f, 2100000.00f, 2700000.00f }; var debitDesc = new SortedList <float, string>(); debitDesc.Add(1500000.00f, "ISI LENGKAP DATA PRIBADI ANDA DENGAN BENAR MAKA SYSTEM CREDIT KITA AKAN MELAKUKAN PENGECEKAN DAN PINJAMAN AKAN DIBERIKAN SECARA AUTOMATIS BILA LOLOS VERIFIKASI. TERIMA KASIH"); debitDesc.Add(2100000.00f, "PEMINJAMAN DENGAN NOMINAL INI HANYA BISA DIPINJAMKAN KALAU SUDAH PERNAH MELAKUKAN PEMBAYARAN TEPAT WAKTU ATAU PERPANJANGAN PRODUCT A DENGAN NOMINAL RP 1.500.000 SEBANYAK 2 KALI PEMINJAMAN"); debitDesc.Add(2700000.00f, "PEMINJAMAN DENGAN NOMINAL INI HANYA BISA DIPINJAMKAN KALAU SUDAH PERNAH MELAKUKAN PEMBAYARAN TEPAT WAKTU ATAU PERPANJANGAN PRODUCT B DENGAN NOMINAL RP 2.100.000 SEBANYAK 2 KALI PEMINJAMAN"); var debitPeriod = new List <int> { 7 }; //List<object> retList = new List<object>(); List <DebitInfo> list = new List <DebitInfo>(); foreach (var style in debitStyle) { foreach (var period in debitPeriod) { DebitInfo info = new DebitInfo(); info.debitMoney = style; info.debitPeriod = period; info.description = "Ketika Anda melakukan pinjam\r\nBiaya admin harus dibayar diawal"; DataProviderResultModel result = DebitProvider.GetInterestRateByDebitStyle(style, period); if (result.result == Result.SUCCESS) { float rate = 0f; float overdueRate = 0f; if (null != result.data) { List <float> rates = result.data as List <float>; rate = rates[0]; overdueRate = rates[1]; //贷多少,还多少 info.payBackMoney = style; //手续费,一次性 if (rate >= 1) { info.debitFee = rate; //日息 info.dailyInterest = rate / period; } else { info.debitFee = style * rate; //日息 info.dailyInterest = style * rate / period; } info.adminFee = String.Format("Biaya Admin Rp {0}", info.debitFee); //实际到帐,减去手续费 info.actualMoney = style - info.debitFee; //逾期日息 info.overdueDayInterest = info.actualMoney * overdueRate; //描述 info.description = debitDesc[style]; info.displayStyle = 1; if (userLevel == 0) { if (style > 1500000) { info.displayStyle = 0; } } if (userLevel == 1) { if (style > 2100000) { info.displayStyle = 0; } } list.Add(info); } } } } ret.data = list; } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = Convert.ToString(MainErrorModels.LOGIC_ERROR); Log.WriteErrorLog("v2::MainController::GetInitDebitStyle", "异常:{0}", ex.Message); } return(JsonConvert.SerializeObject(ret)); }
public ActionResult GetDuitkuVAInfo(int userId, int debitId, int type) { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; try { ///3为还款,4为延期 if (type != 3 && type != 4) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.PARAMETER_ERROR; ret.message = "type is Incorrect."; } else { ///这里验证debitId 与 用户 string prefix = ConfigSettings.prefixNo;//HelperProvider.PrefixOfDuitku(); DataProviderResultModel result = null; result = type == 3 ? DebitProvider.GetUserExtendRecord(debitId) : DebitProvider.GetUserDebitRecord(debitId); if (result.result == Result.SUCCESS) { int dataUserId = 0; if (type == 3) { DebitExtendModel model = result.data as DebitExtendModel; dataUserId = model.userId; prefix = getPrefixNo(model.target); ViewData["money"] = (model.extendFee + model.overdueMoney - model.partMoney).ToString("N0").Replace(",", "."); } else { DebitInfoModel model = result.data as DebitInfoModel; dataUserId = model.userId; prefix = getPrefixNo(model.target); ViewData["money"] = (model.payBackMoney).ToString("N0").Replace(",", "."); } ViewData["prefix"] = prefix; if (userId == dataUserId) { DataProviderResultModel bankInfoResult = UserProvider.GetUserBankInfo(Convert.ToString(userId)); if (bankInfoResult.result == Result.SUCCESS) { UserBankInfoModel bankInfo = bankInfoResult.data as UserBankInfoModel; string vaNo = String.Format("{0}{1}{2}", prefix, type, debitId.ToString().PadLeft(15 - prefix.Length, '0')); ViewData["title"] = type == 3 ? "Anda dapat melakukan pembayaran dengan menggunakan" : "Anda dapat melakukan pembayaran dengan menggunakan"; ViewData["vaNo"] = vaNo; ViewData["userName"] = bankInfo.contactName; } else { ret.result = Result.ERROR; ret.message = "bank info inquiry is incorrect."; } } else { ret.result = Result.ERROR; ret.message = String.Format("params is incorrect.({0}:{1})", userId, dataUserId); } } else { ret.result = result.result; ret.message = result.message; } } } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = "The program logic error from the UserController::InquiryRequest function."; Log.WriteErrorLog("UserController::GetDuitkuVAInfo", "异常:{0}", ex.Message); } if (ret.result == Result.SUCCESS) { return(View()); } else { ViewData["refresh"] = HttpContext.Request.Path + HttpContext.Request.QueryString; ViewData["message"] = ret.message; return(View("Error")); } }
/// <summary> /// 编辑用户联系信息接口 /// </summary> /// <returns></returns> public ActionResult <string> InquiryRequest([FromForm] DuitkuInquriyRequestModel request) { Redis redis = new Redis(); string key = String.Format("InquiryRequest_{0}", request.vaNo); DuitkuInquriyResponseModel response = new DuitkuInquriyResponseModel(); try { if (redis.LockTake(key, 1, 10)) { Log.WriteDebugLog("DuitkuController::InquiryRequest", "param is {0}", JsonConvert.SerializeObject(request)); string signature = String.Empty; string duitkuKey = getDuitkuKey(request.merchantCode); signature = request.merchantCode + request.action + request.vaNo + request.session + duitkuKey; signature = HelperProvider.MD532(signature); if (signature != request.signature) { response.statusCode = "01"; response.statusMessage = "signature is incorrect."; Log.WriteDebugLog("DuitkuController::InquiryRequest", "签名验证没有通过:{0} - 传入为:{1}", signature, request.signature); } else { response.statusCode = "01"; response.statusMessage = "Request is incorrect."; if (request.IsEmpty()) { response.statusCode = "01"; response.statusMessage = "Request content is empty."; Log.WriteDebugLog("DuitkuController::InquiryRequest", "参数异常,缺少必要的参数:{0}", JsonConvert.SerializeObject(request)); } else { /// 868005 = A,868007 = B if (request.bin == "868005" || request.bin == "868007" || request.bin == "119905" || request.bin == "119906") { string vaNo = request.vaNo.Replace(request.bin, ""); if (vaNo.Length == (16 - request.bin.Length)) { string type = vaNo.Substring(0, 1); string debitId = vaNo.Substring(1); int iDebitId = -1; request.merchantCode = String.Format("{0}{1}", request.bin, request.merchantCode); int.TryParse(debitId, out iDebitId); ///3 - 延期;4 - 还款 if (type == "3") { var ret = DebitProvider.GetUserExtendRecord(iDebitId); if (ret.result == Result.SUCCESS) { var model = ret.data as DebitExtendModel; //状态为未还款,还款失败,逾期才能进行延期 if (model.status == 1 || model.status == -2 || model.status == 4) { var result = DuitkuProvider.CreatePayBack(model.userId, iDebitId, type, request.merchantCode); if (result.result == Result.SUCCESS) { response.statusCode = "00"; response.statusMessage = "success"; response.merchantOrderId = Convert.ToString(result.data); response.vaNo = request.vaNo; response.amount = "0";//Convert.ToString(model.extendFee + model.overdueMoney); response.name = "DanaPinjam"; } else { response.statusCode = "01"; response.statusMessage = "Create extend record incorrect."; Log.WriteErrorLog("DuitkuController::InquiryRequest", "Create extend record incorrect:{0} - {1}", iDebitId, result.message); } } else { response.statusCode = "01"; response.statusMessage = "Only within loan, overdue, payback failed , can request extend"; Log.WriteErrorLog("DuitkuController::InquiryRequest", "记录的状态为:{0},不能申请延期 - {1}", model.status, iDebitId); } } else { response.statusCode = "01"; response.statusMessage = ret.message; Log.WriteErrorLog("DuitkuController::InquiryRequest", "Get extend record incorrect:{0} - {1}", iDebitId, ret.message); } } else if (type == "4") { var ret = DebitProvider.GetUserDebitRecord(iDebitId); if (ret.result == Result.SUCCESS) { var model = ret.data as DebitInfoModel; if (model.status == -2 || model.status == 1 || model.status == 4) { var result = DuitkuProvider.CreatePayBack(model.userId, iDebitId, type, request.merchantCode); if (result.result == Result.SUCCESS) { response.statusCode = "00"; response.statusMessage = "success"; response.merchantOrderId = Convert.ToString(result.data); response.vaNo = request.vaNo; response.amount = "0";//Convert.ToString(model.payBackMoney + model.overdueMoney); response.name = "DanaPinjam"; } else { response.statusCode = "01"; response.statusMessage = "Create payback record incorrect."; Log.WriteErrorLog("DuitkuController::InquiryRequest", "Create payback record incorrect:{0} - {1}", iDebitId, result.message); } } else { response.statusCode = "01"; response.statusMessage = "Only within loan, overdue, payback failed , can request payback."; Log.WriteErrorLog("DuitkuController::InquiryRequest", "记录的状态为:{0},不能申请延期 - {1}", model.status, iDebitId); } } else { response.statusCode = "01"; response.statusMessage = ret.message; Log.WriteErrorLog("DuitkuController::InquiryRequest", "get debit record incorrect.{0} message = {1}", iDebitId, ret.message); } } else { response.statusCode = "01"; Log.WriteErrorLog("DuitkuController::InquiryRequest", "param is incorrect. request.type:{0} debitId = {1}", type, iDebitId); } } else { response.statusCode = "01"; response.statusMessage = "va is incorrect."; Log.WriteErrorLog("DuitkuController::InquiryRequest", "va is incorrect. request.type:{0}", vaNo); } } else { response.statusCode = "01"; Log.WriteErrorLog("DuitkuController::InquiryRequest", "param is incorrect. request:{0}", JsonConvert.SerializeObject(request)); } } } redis.LockRelease(key, 1); } else { Log.WriteErrorLog("DuitkuController::InquiryRequest", "get lock fail.{0}", JsonConvert.SerializeObject(request)); } } catch (Exception ex) { response.statusCode = "01"; response.statusMessage = ex.Message; Log.WriteErrorLog("DuitkuController::InquiryRequest", "异常:{0}", ex.Message); } return(JsonConvert.SerializeObject(response)); }
/// <summary> /// /// </summary> /// <param name="userId"></param> /// <param name="debitMoney"></param> /// <param name="debitPeroid"></param> /// <param name="bankId"></param> /// <param name="description"></param> /// <returns></returns> public ActionResult <string> SubmitDebitRequest() { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; Redis redis = HelperProvider.GetRedis(); try { //需要增加银行信息的记录,为后期历史记录做准备。 string content = HelperProvider.GetRequestContent(HttpContext); if (String.IsNullOrEmpty(content)) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.PARAMETER_ERROR; ret.message = "The request body is empty."; Log.WriteErrorLog("v2:DebitController::SubmitDebitRequest", "请求参数为空。{0}", HelperProvider.GetHeader(HttpContext)); return(JsonConvert.SerializeObject(ret)); } var requestBody = JsonConvert.DeserializeObject <SubmitDebitRequestBody>(content); string pkgName = HttpContext.Request.Headers["pkgName"]; string lockKey = "submitdebit"; if (redis.LockTake(lockKey, requestBody.userId)) { if (String.IsNullOrEmpty(requestBody.deviceId)) { requestBody.deviceId = HttpContext.Request.Headers["deviceNo"]; } if (requestBody.bankId < 1) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.PARAMETER_ERROR; ret.message = "The bankId is empty."; redis.LockRelease(lockKey, requestBody.userId); Log.WriteWarning("v2::DebitController::SubmitDebitRequest", "警告:用户【{0}】提交时BankId为空。", requestBody.userId); return(JsonConvert.SerializeObject(ret)); } ///逻辑 DataProviderResultModel result = DebitProvider.SubmitDebitReuqestV2(requestBody.userId, requestBody.debitMoney, requestBody.debitPeriod, requestBody.bankId, requestBody.description, requestBody.deviceId); ret.result = result.result; if (result.result == Result.SUCCESS) { ret.data = result.data; } else { ret.result = Result.ERROR; ret.errorCode = result.result; ret.message = result.message; } redis.LockRelease(lockKey, requestBody.userId); } else { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.ALREADY_SUBMIT_REQUEST; ret.message = "already submit request."; Log.WriteDebugLog("v2::DebitController::SubmitDebitRequest", "[{0}] 重复请求。", requestBody.userId); } } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = Convert.ToString(MainErrorModels.LOGIC_ERROR); Log.WriteErrorLog("v2::DebitController::SubmitDebitRequest", "异常:{0}", ex.Message); } finally { Log.WriteDebugLog("v2::DebitController::SubmitDebitRequest", "{0}", HelperProvider.GetHeader(HttpContext)); } return(JsonConvert.SerializeObject(ret)); }
/// <summary> /// 获取贷款种类 /// </summary> /// <returns></returns> public ActionResult <string> GetInitDebitStyleV2() { HttpResultModel ret = new HttpResultModel(); ret.result = Result.SUCCESS; try { var debitStyle = new List <float> { 1500000.00f }; var debitPeriod = new List <int> { 7 }; List <object> retList = new List <object>(); foreach (var style in debitStyle) { List <DebitInfo> list = new List <DebitInfo>(); foreach (var period in debitPeriod) { DebitInfo info = new DebitInfo(); info.debitMoney = style; info.debitPeriod = period; info.description = "Ketika Anda melakukan pinjam\r\nBiaya admin harus dibayar diawal"; DataProviderResultModel result = DebitProvider.GetInterestRateByDebitStyle(style, period); if (result.result == Result.SUCCESS) { float rate = 0f; float overdueRate = 0f; if (null != result.data) { List <float> rates = result.data as List <float>; rate = rates[0]; overdueRate = rates[1]; //贷多少,还多少 info.payBackMoney = style; //手续费,一次性 if (rate >= 1) { info.debitFee = rate; //日息 info.dailyInterest = rate / period; } else { info.debitFee = style * rate; //日息 info.dailyInterest = style * rate / period; } info.adminFee = String.Format("Biaya Admin Rp {0}", info.debitFee); //实际到帐,减去手续费 info.actualMoney = style - info.debitFee; //逾期日息 info.overdueDayInterest = style * overdueRate; list.Add(info); } } } retList.Add(new { debitMoney = style, debitCombination = list }); } ret.data = retList; } catch (Exception ex) { ret.result = Result.ERROR; ret.errorCode = MainErrorModels.LOGIC_ERROR; ret.message = Convert.ToString(MainErrorModels.LOGIC_ERROR); Log.WriteErrorLog("MainController::GetInitDebitStyle", "异常:{0}", ex.Message); } return(JsonConvert.SerializeObject(ret)); }