/*********************************************************************** * Project: baifenBinfa * ProjectName: 百分兵法管理系统 * Web: http://chuanyin.com * Author: * Email: * CreateTime: 2022/9/16 20:41:09 * Description: 暂无 ***********************************************************************/ using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; using CoreCms.Net.Caching.Manual; using CoreCms.Net.Configuration; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.ViewModels.Basics; using CoreCms.Net.IRepository; using CoreCms.Net.IRepository.UnitOfWork; using CoreCms.Net.Model.ViewModels.UI; using SqlSugar; namespace CoreCms.Net.Repository { /// /// 打印机列表 接口实现 /// public class CoreCmsPrinterRepository : BaseRepository, ICoreCmsPrinterRepository { private readonly IUnitOfWork _unitOfWork; public CoreCmsPrinterRepository(IUnitOfWork unitOfWork) : base(unitOfWork) { _unitOfWork = unitOfWork; } #region 实现重写增删改查操作========================================================== /// /// 重写异步插入方法 /// /// 实体数据 /// public async Task InsertAsync(CoreCmsPrinter entity) { var jm = new AdminUiCallBack(); entity.createTime = DateTime.Now; var bl = await DbClient.Insertable(entity).ExecuteReturnIdentityAsync() > 0; jm.code = bl ? 0 : 1; jm.msg = bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure; return jm; } /// /// 重写异步更新方法 /// /// /// public async Task UpdateAsync(CoreCmsPrinter entity) { var jm = new AdminUiCallBack(); var oldModel = await DbClient.Queryable().In(entity.id).SingleAsync(); if (oldModel == null) { jm.msg = "不存在此信息"; return jm; } //事物处理过程开始 //oldModel.id = entity.id; oldModel.name = entity.name; oldModel.code = entity.code; oldModel.clientId = entity.clientId; oldModel.clientSecret = entity.clientSecret; oldModel.machineCode = entity.machineCode; oldModel.msign = entity.msign; oldModel.printerName = entity.printerName; oldModel.phone = entity.phone; //oldModel.accessToken = entity.accessToken; //oldModel.refreshToken = entity.refreshToken; //oldModel.expiresIn = entity.expiresIn; //oldModel.expiressEndTime = entity.expiressEndTime; //oldModel.parameters = entity.parameters; //oldModel.createTime = entity.createTime; oldModel.isDefault = entity.isDefault; oldModel.isOpen = entity.isOpen; oldModel.storeId = entity.storeId; //事物处理过程结束 var bl = await DbClient.Updateable(oldModel).ExecuteCommandHasChangeAsync(); if (bl && oldModel.isDefault) { await DbClient.Updateable().SetColumns(p => p.isDefault == false).Where(p => p.id != oldModel.id).ExecuteCommandAsync(); } jm.code = bl ? 0 : 1; jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure; return jm; } /// /// 重写删除指定ID的数据 /// /// /// public async Task DeleteByIdAsync(object id) { var jm = new AdminUiCallBack(); var bl = await DbClient.Deleteable(id).ExecuteCommandHasChangeAsync(); jm.code = bl ? 0 : 1; jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure; return jm; } #endregion #region 获取缓存的所有数据========================================================== /// /// 获取缓存的所有数据 /// /// public async Task> GetCaChe() { var cache = await DbClient.Queryable().With(SqlWith.NoLock).WithCache().ToListAsync(); return cache; } #endregion #region 重写根据条件查询分页数据 /// /// 重写根据条件查询分页数据 /// /// 判断集合 /// 排序方式 /// 当前页面索引 /// 分布大小 /// /// 是否使用WITH(NOLOCK) /// public async Task> QueryPageAsync(Expression> predicate, Expression> orderByExpression, OrderByType orderByType, int pageIndex = 1, int pageSize = 20, bool blUseNoLock = false) { RefAsync totalCount = 0; List page; if (blUseNoLock) { page = await DbClient.Queryable() .OrderByIF(orderByExpression != null, orderByExpression, orderByType) .WhereIF(predicate != null, predicate).Select(p => new CoreCmsPrinter { id = p.id, name = p.name, code = p.code, clientId = p.clientId, clientSecret = p.clientSecret, machineCode = p.machineCode, msign = p.msign, printerName = p.printerName, phone = p.phone, accessToken = p.accessToken, refreshToken = p.refreshToken, expiresIn = p.expiresIn, expiressEndTime = p.expiressEndTime, parameters = p.parameters, createTime = p.createTime, isDefault = p.isDefault, isOpen = p.isOpen, storeId = p.storeId, }).With(SqlWith.NoLock).ToPageListAsync(pageIndex, pageSize, totalCount); } else { page = await DbClient.Queryable() .OrderByIF(orderByExpression != null, orderByExpression, orderByType) .WhereIF(predicate != null, predicate).Select(p => new CoreCmsPrinter { id = p.id, name = p.name, code = p.code, clientId = p.clientId, clientSecret = p.clientSecret, machineCode = p.machineCode, msign = p.msign, printerName = p.printerName, phone = p.phone, accessToken = p.accessToken, refreshToken = p.refreshToken, expiresIn = p.expiresIn, expiressEndTime = p.expiressEndTime, parameters = p.parameters, createTime = p.createTime, isDefault = p.isDefault, isOpen = p.isOpen, storeId = p.storeId, }).ToPageListAsync(pageIndex, pageSize, totalCount); } var list = new PageList(page, pageIndex, pageSize, totalCount); return list; } #endregion } }