//审核通过 protected void btn_pass_Click(object sender, EventArgs e) { int id = payback.Id; if (new PayBackApplyDAO().agreePayBack(id)) { //跟新用户的债务表 UserDebt userdebt = new UserDebt(); userdebt = new UserDebtDAO().getUserDebt(payback.User_name); userdebt.Amount = userdebt.Amount - payback.Amount; new UserDebtDAO().updateUserDebt(userdebt); //向用户债务交易记录表中添加交易记录 UserDebtTrans userdebttrans = new UserDebtTrans(); userdebttrans.Amount = -payback.Amount; userdebttrans.Operation_time = DateTime.Now; userdebttrans.Operation = "还款"; userdebttrans.Note = payback.Note; userdebttrans.User_name = payback.User_name; new UserDebtTransDAO().addUserDebtTrans(userdebttrans); alert("通过申请!!"); } else { alert("系统繁忙,请稍后再提交!!"); } }
// 跟新用户的 欠款表 public bool updateUserDebt(UserDebt userdebt) { bool flag = false; string str = "select * from tb_user_debt where user_name='" + userdebt.User_name + "'"; DataTable table = new DBOperateCommon().excuteQuery(str); if (table.Rows.Count > 0) { // 该用户不是第一次借款 float old_amount = Convert.ToSingle(table.Rows[0]["amount"].ToString()); float new_amount = old_amount + userdebt.Amount; string up = "update tb_user_debt set amount=" + new_amount + " where user_name='" + userdebt.User_name + "'"; if (new DBOperateCommon().excuteNoQuery(up)) { flag = true; } } else { string sql = "insert into tb_user_debt values('" + userdebt.User_name + "'," + userdebt.Amount + ")"; if (new DBOperateCommon().excuteNoQuery(sql)) { flag = true; } } return(flag); }
public async Task ShouldGetCorrectTotalDebt() { var chargeRepositoryMock = new Mock <IRepository <Charge> >(); chargeRepositoryMock.Setup(x => x.ListAsync( It.IsAny <Expression <Func <Charge, bool> > >(), It.IsAny <SortOptions>(), It.IsAny <int?>(), It.IsAny <int?>())) .Returns((Expression <Func <Charge, bool> > predicate, SortOptions sortOptions, int?pageSize, int?pageNum) => //Return charges after applying UserDebtService's predicate Task.FromResult(GetTestCharges().Where(predicate.Compile()).ToList())); UserDebtService userDebtService = new UserDebtService(chargeRepositoryMock.Object); UserDebt debt = await userDebtService.GetUserDebt(MockData.GetTestUser().Id); Assert.Multiple(() => { var arDebt = debt.GetDebtAmountsByCurrency().FirstOrDefault(x => x.Currency == Enumerations.Currency.ARS); var usDebt = debt.GetDebtAmountsByCurrency().FirstOrDefault(x => x.Currency == Enumerations.Currency.US); Assert.AreEqual(2, debt.GetDebtAmountsByCurrency().Count, "User should have debt in 2 currencies"); Assert.IsNotNull(arDebt, "Debt in AR$ currency should not be null"); Assert.AreEqual(63.75M, arDebt.Amount, "AR$ debt should be $63.75"); Assert.IsNotNull(usDebt, "Debt in U$ currency should not be null"); Assert.AreEqual(100, usDebt.Amount, "U$ debt should be $100"); }); }
/// <summary> /// 用户信贷数据填充 /// </summary> /// <param name="table">信贷数据源</param> /// <returns></returns> public UserDebt FillDebt(DataTable table) { UserDebt debt = new UserDebt() { Xde = decimal.Parse(table.Rows[0]["xde"].ToString().Trim()), Xdq = int.Parse(table.Rows[0]["xdq"].ToString().Trim()), DebtDate = table.Rows[0]["debtdate"].ToString().Trim(), DebtDays = int.Parse(table.Rows[0]["debtdays"].ToString().Trim()), DebtMoney = decimal.Parse(table.Rows[0]["debtmoney"].ToString().Trim()) }; return(debt); }
/// <summary> /// Get the total amount of user debt grouped by currency /// </summary> /// <param name="userId"></param> /// <returns></returns> public async Task <UserDebt> GetUserDebt(long userId) { var unPaidCharges = await _chargeRepository.ListAsync(x => x.Event.User.Id == userId && (x.Payments.Sum(x => (decimal?)x.Amount) ?? 0) < x.Amount.Amount); //Nullable cast required to create query like "SELECT ISNULL(SUM([p].[Amount]),0)" var userDebt = new UserDebt(); //Store debt separated by currency in value object unPaidCharges.ForEach(c => userDebt.AddDebtAmount(c.GetUnPaidAmount())); return(userDebt); }
//用户还款的具体实现 protected void btn_user_repay_right_Click(object sender, EventArgs e) { string account = user_account.Text; string money_str = Request.Form["repay_money"]; string note = Request.Form["note_repay"]; //首先判断该用户是否欠 UserDebt user_debt = new UserDebtDAO().getUserDebt(account); if (user_debt != null) { if (user_debt.Amount >= Convert.ToSingle(money_str)) { // 跟新用户的 欠款表 UserDebt userdebt = new UserDebt(); userdebt.Amount = -Convert.ToSingle(money_str); userdebt.User_name = account; if (new UserDebtDAO().updateUserDebt(userdebt)) { //还款成功 // 记录交易信息 UserDebtTrans userdebttrans = new UserDebtTrans(); userdebttrans.Operation = "还款"; userdebttrans.Operation_time = DateTime.Now; userdebttrans.User_name = account; userdebttrans.Amount = -Convert.ToSingle(money_str); userdebttrans.Note = note; new UserDebtTransDAO().addUserDebtTrans(userdebttrans); alert("还款成功!!"); } else { alert("还款失败!!"); } } else { alert("用户欠款金额为:" + user_debt.Amount + " ;还款金额为:" + money_str + ",无法进行还款!!"); } } else { alert("该用户不欠款,请确认用户信息!!"); } }
/// <summary> /// 获取用户的欠款对象 /// </summary> /// <param name="name"></param> /// <returns></returns> public UserDebt getUserDebt(string name) { UserDebt userdebt = null; string sql = "select * from tb_user_debt where user_name='" + name + "'"; DataTable table = new DBOperateCommon().excuteQuery(sql); if (table.Rows.Count > 0) { userdebt = new UserDebt(); userdebt.Amount = Convert.ToSingle(table.Rows[0]["amount"].ToString()); userdebt.User_name = name; } return(userdebt); }
/// <summary> /// 分页获欠款用户 /// </summary> /// <param name="pageNow"></param> /// <param name="pageSize"></param> /// <returns></returns> public ArrayList getUserDebts(int pageNow, int pageSize) { ArrayList userdebts = new ArrayList(); string sql = "select top " + pageSize + " * from tb_user_debt where user_name not in(select top " + (pageNow - 1) * pageSize + " user_name from tb_user_debt order by amount desc) order by amount desc"; DataTable table = new DBOperateCommon().excuteQuery(sql); for (int i = 0; i < table.Rows.Count; i++) { UserDebt userdebt = new UserDebt(); userdebt.User_name = table.Rows[i]["user_name"].ToString(); userdebt.Amount = Convert.ToSingle(table.Rows[i]["amount"]); userdebts.Add(userdebt); } return(userdebts); }
/// <summary> /// 用户信贷 /// </summary> /// <param name="userId">用户</param> /// <param name="entId">机构</param> /// <returns></returns> public UserDebt DebtInfo(string userId, string entId) { //LogQueue.Write(LogType.Debug, "1", userId); SqlParameter[] sqls = new SqlParameter[] { new SqlParameter("@type", "UserDebt"), new SqlParameter("@userId", userId), new SqlParameter("@entId", entId) }; SqlRun sql = new SqlRun(SqlRun.sqlstr); DataTable table = sql.RunProcedureDR("Proc_UserInfo", sqls); UserDebt debt = new UserDebt(); if (table.Rows.Count > 0) { debt = FillDebt(table); } return(debt); }
/// <summary> /// 为用户充值 /// </summary> /// <param name="username">用户名</param> /// <param name="money">充值金额</param> /// <returns>充值成功返回 true,否则返回 false</returns> public bool chargeForUser(string account, float money) { bool flag = false; string sql = "select * from tb_my_account where name='" + account + "'"; DataTable table = new DBOperateCommon().excuteQuery(sql); //说明 if (table.Rows.Count > 0) { float old_balance = Convert.ToSingle(table.Rows[0]["balance"].ToString()); float new_balance = old_balance + money; string update = "update tb_my_account set balance=" + new_balance + " where name='" + account + "'"; if (new DBOperateCommon().excuteNoQuery(update)) { flag = true; //添加成功时向账户交易记录表中添加交易记录 MyAccountTrans myaccounttrans = new MyAccountTrans(); myaccounttrans.User_name = account; myaccounttrans.Amout = money; myaccounttrans.Charge_way = "ukchinesecentre-account"; myaccounttrans.Operation = "森林运输为客户预充值"; myaccounttrans.Time = DateTime.Now; new MyAccountTransDAO().addMyAccountTrans(myaccounttrans); // 跟新用户的 欠款表 UserDebt userdebt = new UserDebt(); userdebt.User_name = account; userdebt.Amount = money; new UserDebtDAO().updateUserDebt(userdebt); //添加 欠款交易信息 UserDebtTrans userdebttrans = new UserDebtTrans(); userdebttrans.Amount = money; userdebttrans.User_name = account; userdebttrans.Operation = "借款"; userdebttrans.Operation_time = DateTime.Now; new UserDebtTransDAO().addUserDebtTrans(userdebttrans); } } else { string insert = "insert into tb_my_account values('" + account + "'," + money + ",0,0,0,0,'',0,0)"; if (new DBOperateCommon().excuteNoQuery(insert)) { flag = true; //添加成功时向账户交易记录表中添加交易记录 MyAccountTrans myaccounttrans = new MyAccountTrans(); myaccounttrans.User_name = account; myaccounttrans.Amout = money; myaccounttrans.Charge_way = "ukchinesecentre-account"; myaccounttrans.Operation = "森林运输为客户预充值"; myaccounttrans.Time = DateTime.Now; new MyAccountTransDAO().addMyAccountTrans(myaccounttrans); // 跟新用户的 欠款表 UserDebt userdebt = new UserDebt(); userdebt.User_name = account; userdebt.Amount = money; new UserDebtDAO().updateUserDebt(userdebt); //添加 欠款交易信息 UserDebtTrans userdebttrans = new UserDebtTrans(); userdebttrans.Amount = money; userdebttrans.User_name = account; userdebttrans.Operation = "借款"; userdebttrans.Operation_time = DateTime.Now; new UserDebtTransDAO().addUserDebtTrans(userdebttrans); } } return(flag); }