/// <summary> /// 保存支出分类 /// </summary> /// <param name="info">支出分类</param> /// <returns>主键ID</returns> public async Task <ResultInfo <int> > SaveOutCategoryAsync(OutCategoryInfo info) { //获取原有列表 var list = await BasicDAL.Inst.QueryOutCategoryAsync(this.LoginInfo.FamilyID); //判断名称是否已被使用 if (list.Exists(m => m.ID != info.ID && m.Name == info.Name)) { return(new ResultInfo <int>(false, this.Res.Bas.NameExisted, -1)); } //尝试查找原数据 var model = list.Find(m => m.ID == info.ID); //新建 if (model == null) { model = new OutCategory(); model.FamilyID = this.LoginInfo.FamilyID; } model.Name = info.Name; model.IsActive = info.IsActive; model.Remark = info.Remark; //设置创建者/更新者字段值 this.SetCreateUpdateFields(model); //保存到数据库 await BasicDAL.Inst.SaveOutCategoryAsync(model); return(new ResultInfo <int>(true, Res.Gen.OK, model.ID)); }
/// <summary> /// 保存支出分类 /// </summary> /// <param name="model">支出分类</param> /// <returns>主键ID</returns> public async Task <int> SaveOutCategoryAsync(OutCategory model) { using (IOSysContext db = new IOSysContext()) { //更新 if (model.ID > 0) { db.Entry(model).State = EntityState.Modified; } //新增 else { await db.OutCategorys.AddAsync(model); } await db.SaveChangesAsync(); } //移除缓存 var key = string.Format(SysConst.Cache.OutCategoryList_FamilyID, model.FamilyID); CacheHelper.Remove(key); return(model.ID); }
/// <summary> /// 删除支出分类 /// </summary> /// <param name="model">支出分类</param> public async Task DeleteOutCategoryAsync(OutCategory model) { using (IOSysContext db = new IOSysContext()) { db.OutCategorys.Remove(model); await db.SaveChangesAsync(); } //移除缓存 var key = string.Format(SysConst.Cache.OutCategoryList_FamilyID, model.FamilyID); CacheHelper.Remove(key); }
/// <summary> /// 查询支出明细列表 /// </summary> /// <param name="req">条件</param> /// <returns></returns> public async Task <PageAmountList <OutRecordListInfo> > QueryOutRecordAsync(OutRecordReq req) { //查询 var taskModel = ReportDAL.Inst.QueryOutRecordAsync(this.LoginInfo.FamilyID, req); //明细 var taskOutCategory = BasicDAL.Inst.QueryOutCategoryAsync(this.LoginInfo.FamilyID); //分类 var taskOutType = BasicDAL.Inst.QueryOutTypeAsync(this.LoginInfo.FamilyID); //类型 var taskAmountAccount = BasicDAL.Inst.QueryAmountAccountAsync(this.LoginInfo.FamilyID); //账户 var lstModel = await taskModel; //明细 var lstOutCategory = await taskOutCategory; //分类 var lstOutType = await taskOutType; //类型 var lstAmountAccount = await taskAmountAccount; //账户 var list = new List <OutRecordListInfo>(); var seq = req.GetSkip() + 1; foreach (var model in lstModel) { var item = new OutRecordListInfo(); list.Add(item); //类型 var outType = lstOutType.Find(m => m.ID == model.OutTypeID); //分类 OutCategory outCategory = null; if (outType != null) { outCategory = lstOutCategory.Find(m => m.ID == outType.OutCategoryID); } //账户 var amountAccount = lstAmountAccount.Find(m => m.ID == model.AmountAccountID); item.Seq = seq++; item.ID = model.ID; item.OutDate = model.OutDate; item.OutCategoryName = outCategory != null ? outCategory.Name : ""; item.OutTypeName = outType != null ? outType.Name : ""; item.AmountAccountName = amountAccount != null ? amountAccount.Name : ""; item.Amount = model.Amount; item.Remark = model.Remark; } return(new PageAmountList <OutRecordListInfo>(list, lstModel.TotalRecord, lstModel.TotalAmount)); }
/// <summary> /// 获取指定日期的支出信息 /// </summary> /// <param name="date">日期</param> /// <returns></returns> public async Task <List <OutPutListInfo> > QueryOutPutAsync(DateTime date) { //查询数据库记录 var taskModel = InOutDAL.Inst.QueryOutPutAsync(this.LoginInfo.FamilyID, date); var taskOutCategory = BasicDAL.Inst.QueryOutCategoryAsync(this.LoginInfo.FamilyID); var taskOutType = BasicDAL.Inst.QueryOutTypeAsync(this.LoginInfo.FamilyID); var taskAmountAccount = BasicDAL.Inst.QueryAmountAccountAsync(this.LoginInfo.FamilyID); var lstModel = await taskModel; var lstOutCategory = await taskOutCategory; var lstOutType = await taskOutType; var lstAmountAccount = await taskAmountAccount; //结果 var lstInfo = new List <OutPutListInfo>(); foreach (var model in lstModel) { var info = new OutPutListInfo(); lstInfo.Add(info); //支出类型 var outType = lstOutType.Find(m => m.ID == model.OutTypeID); //支出分类 OutCategory outCategory = outType != null?lstOutCategory.Find(m => m.ID == outType.OutCategoryID) : null; //账户信息 var amountAccount = lstAmountAccount.Find(m => m.ID == model.AmountAccountID); info.ID = model.ID; info.OutCategoryName = outCategory != null ? outCategory.Name : string.Empty; info.OutTypeName = outType != null ? outType.Name : string.Empty; info.AmountAccountName = amountAccount != null ? amountAccount.Name : string.Empty; info.Amount = model.Amount; } return(lstInfo); }