/// <summary> /// 模拟收入 /// </summary> /// <param name="user">用户信息</param> /// <param name="date">日期</param> /// <returns></returns> private IEnumerable <InComeInfo> SimulateInCome(LoginInfo user, DateTime date) { //限制收入生成次数 if (random.NextDouble() < 0.95) { yield break; } //条数 int num = 3; //最大金额 decimal maxAmount = 15000; //年份偏移量 var offset = (date.Year - 2019) * 2000; maxAmount += offset; //查询账户列表 var lstAmountAccount = this.QueryAmountAccount(user); //查询收入类型列表 var lstInType = this.QueryInType(user); for (int i = 0; i < num; i++) { var item = new InComeInfo(); item.InDate = date.Date; item.InTypeID = lstInType[random.Next(0, lstInType.Count)].ID; item.AmountAccountID = lstAmountAccount[random.Next(0, lstAmountAccount.Count)].ID; var amountRandom = random.NextDouble(); item.Amount = (Convert.ToDecimal(amountRandom) * maxAmount) + 1; item.Remark = "模拟收入"; yield return(item); //限制收入生成次数 if (amountRandom > 0.5) { yield break; } } }
/// <summary> /// 保存收入信息 /// </summary> /// <param name="user">用户信息</param> /// <param name="info">收入信息</param> /// <returns>主键ID</returns> private int SaveInCome(LoginInfo user, InComeInfo info) { //token var dicHeader = new Dictionary <string, string>(); dicHeader["Authorization"] = user.Token; //条件 var req = new LoginReq(); req.LoginName = AppConfig.Inst.App.IOLoginName; req.Password = AppConfig.Inst.App.IOLoginPwd; //请求接口 var client = new TdbHttpClient(AppConfig.Inst.App.IOApiUrl); var res = client.ExecPost <ResultInfo <int> >("api/InOut/SaveInCome", info, dicHeader); return(res.Result.Info); }
/// <summary> /// 保存收入信息 /// </summary> /// <param name="info">收入信息</param> /// <returns>主键ID</returns> public async Task <ResultInfo <int> > SaveInComeAsync(InComeInfo info) { //判断收入类型是否存在 var modelInType = await BasicDAL.Inst.GetInTypeAsync(this.LoginInfo.FamilyID, info.InTypeID); if (modelInType == null) { return(new ResultInfo <int>(false, this.Res.Bas.InTypeUnexist, -1)); } //判断账户是否存在 var modelAmountAccount = await BasicDAL.Inst.GetAmountAccountAsync(this.LoginInfo.FamilyID, info.AmountAccountID); if (modelAmountAccount == null) { return(new ResultInfo <int>(false, this.Res.Bas.AmountAccountUnexist, -1)); } //转成model var model = new InCome(); model.ID = info.ID; model.FamilyID = this.LoginInfo.FamilyID; model.InDate = info.InDate; model.InTypeID = info.InTypeID; model.AmountAccountID = info.AmountAccountID; model.Amount = info.Amount; model.Remark = info.Remark; //设置创建者/更新者字段值 this.SetCreateUpdateFields(model); //保存到数据库 var ret = await CacheLock.DoByLockFamilyAsync(this.LoginInfo.FamilyID, () => InOutDAL.Inst.SaveInComeAsync(model)); if (!ret.IsDone) { return(new ResultInfo <int>(false, Res.Gen.WaiteTimeOut, model.ID)); } return(new ResultInfo <int>(true, Res.Gen.OK, model.ID)); }
/// <summary> /// 获取收入信息 /// </summary> /// <param name="id">主键ID</param> /// <returns></returns> public async Task <InComeInfo> GetInComeAsync(int id) { //获取数据库信息 var model = await InOutDAL.Inst.GetInComeAsync(this.LoginInfo.FamilyID, id); if (model == null) { return(null); } //结果 var info = new InComeInfo(); info.ID = model.ID; info.InDate = model.InDate; info.InTypeID = model.InTypeID; info.AmountAccountID = model.AmountAccountID; info.Amount = model.Amount; info.Remark = model.Remark; return(info); }
public async Task <ResultInfo <int> > SaveInComeAsync([FromBody] InComeInfo info) { var result = await this.bll.SaveInComeAsync(info); return(result); }