|
@@ -0,0 +1,74 @@
|
|
|
+using FccLite.Web.Core.database;
|
|
|
+using FccLite.Web.Domain.FccOilInfo.Input;
|
|
|
+using FccLite.Web.utils.database;
|
|
|
+using Microsoft.EntityFrameworkCore;
|
|
|
+
|
|
|
+namespace FccLite.Web.Repositories.FccOilInfo
|
|
|
+{
|
|
|
+ public class OilInfoReposity : IOilInfoReposity
|
|
|
+ {
|
|
|
+ private readonly MysqlDbContext _dbContext;
|
|
|
+ public OilInfoReposity(MysqlDbContext mysqlDbContext)
|
|
|
+ {
|
|
|
+ _dbContext = mysqlDbContext;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 通过id 删除油品信息
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="id"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<bool> DeleteByID(long id)
|
|
|
+ {
|
|
|
+ Domain.FccOilInfo.FccOilInfo? info = await _dbContext.OilInfos.FindAsync(id);
|
|
|
+ if (info == null) return false;
|
|
|
+ _dbContext.OilInfos.Remove(info);
|
|
|
+ await _dbContext.SaveChangesAsync();
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 分页获取油品信息
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="page">页码</param>
|
|
|
+ /// <param name="size">页数</param>
|
|
|
+ /// <param name="id">过滤信息——id</param>
|
|
|
+ /// <param name="name">过滤信息——油品名</param>
|
|
|
+ /// <param name="code">过滤信息——油品码</param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<IEnumerable<Domain.FccOilInfo.FccOilInfo>> GetPage(int page, int size, long? id, string? name, int? code)
|
|
|
+ {
|
|
|
+ IQueryable<Domain.FccOilInfo.FccOilInfo> query = _dbContext.OilInfos.AsQueryable();
|
|
|
+
|
|
|
+ query = query.WhereIf(id != null, info => info.Id == id);
|
|
|
+ query = query.WhereIf(!string.IsNullOrEmpty(name), info => info.Name.Contains(name));
|
|
|
+ query = query.WhereIf(code != null, info => info.Code == code);
|
|
|
+
|
|
|
+ return await query.Skip((page - 1) * size).Take(size).ToListAsync();
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 新增、更改油品信息
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="oilInfoInput"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public async Task<Domain.FccOilInfo.FccOilInfo> UploadOilInfo(OilInfoInput? oilInfoInput)
|
|
|
+ {
|
|
|
+ if (oilInfoInput == null) return null;
|
|
|
+ if(oilInfoInput.Id != null)
|
|
|
+ {
|
|
|
+ Domain.FccOilInfo.FccOilInfo? info = await _dbContext.OilInfos.FindAsync(oilInfoInput.Id);
|
|
|
+ if (info == null) return null;
|
|
|
+ info.Name = oilInfoInput.Name;
|
|
|
+ info.Code = oilInfoInput.Code;
|
|
|
+ info.Price = oilInfoInput.Price;
|
|
|
+ await _dbContext.SaveChangesAsync();
|
|
|
+ return info;
|
|
|
+ }
|
|
|
+ Domain.FccOilInfo.FccOilInfo fccOilInfo = oilInfoInput.ToComponent();
|
|
|
+ _dbContext.OilInfos.Add(fccOilInfo);
|
|
|
+ await _dbContext.SaveChangesAsync();
|
|
|
+ return fccOilInfo;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|