/*********************************************************************** * Project: baifenBinfa * ProjectName: 百分兵法管理系统 * Web: http://chuanyin.com * Author: * Email: * CreateTime: 202403/02 * Description: 暂无 ***********************************************************************/ using System; using System.Collections.Generic; using System.Linq; 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.IRepository; using CoreCms.Net.IRepository.UnitOfWork; using CoreCms.Net.Model.ViewModels.Basics; using CoreCms.Net.Model.ViewModels.UI; using SqlSugar; namespace CoreCms.Net.Repository { /// /// 商品评价表 接口实现 /// public class CoreCmsGoodsCommentRepository : BaseRepository, ICoreCmsGoodsCommentRepository { public CoreCmsGoodsCommentRepository(IUnitOfWork unitOfWork) : base(unitOfWork) { } #region 实现重写增删改查操作========================================================== /// /// 重写异步更新方法 /// /// /// public async Task UpdateAsync(CoreCmsGoodsComment 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.commentId = entity.commentId; oldModel.score = entity.score; oldModel.userId = entity.userId; oldModel.goodsId = entity.goodsId; oldModel.orderId = entity.orderId; oldModel.addon = entity.addon; oldModel.images = entity.images; oldModel.contentBody = entity.contentBody; oldModel.sellerContent = entity.sellerContent; oldModel.isDisplay = entity.isDisplay; oldModel.createTime = entity.createTime; //事物处理过程结束 var bl = await DbClient.Updateable(oldModel).ExecuteCommandHasChangeAsync(); 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 /// /// 商家回复评价 /// /// 序列 /// 回复内容 /// public async Task Reply(int id, string sellerContent) { var jm = new AdminUiCallBack(); var oldModel = await DbClient.Queryable().In(id).SingleAsync(); if (oldModel == null) { jm.msg = "不存在此信息"; return jm; } //事物处理过程开始 oldModel.sellerContent = sellerContent; //事物处理过程结束 var bl = await DbClient.Updateable(oldModel).ExecuteCommandHasChangeAsync(); jm.code = bl ? 0 : 1; jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure; return jm; } /// /// 获取单个详情数据 /// /// 判断集合 /// 排序方式 /// /// public async Task DetailsByIdAsync(Expression> predicate, Expression> orderByExpression, OrderByType orderByType) { var model = await DbClient.Queryable((p, cUser, cGood) => new JoinQueryInfos( JoinType.Left, p.userId == cUser.id, JoinType.Left, p.goodsId == cGood.id )) .Select((p, cUser, cGood) => new CoreCmsGoodsComment { id = p.id, commentId = p.commentId, score = p.score, userId = p.userId, goodsId = p.goodsId, orderId = p.orderId, addon = p.addon, images = p.images, contentBody = p.contentBody, sellerContent = p.sellerContent, isDisplay = p.isDisplay, createTime = p.createTime, avatarImage = cUser.avatarImage, nickName = cUser.nickName, mobile = cUser.mobile, goodName = cGood.name, }) .MergeTable() .OrderByIF(orderByExpression != null, orderByExpression, orderByType) .Where(predicate) .FirstAsync(); if (model != null) { model.imagesArr = !string.IsNullOrEmpty(model.images) ? model.images.Split(",") : new String[0]; } return model; } #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 = await DbClient.Queryable((p, cUser, cGood) => new JoinQueryInfos( JoinType.Left, p.userId == cUser.id, JoinType.Left, p.goodsId == cGood.id )) .Select((p, cUser, cGood) => new CoreCmsGoodsComment { id = p.id, commentId = p.commentId, score = p.score, userId = p.userId, goodsId = p.goodsId, orderId = p.orderId, addon = p.addon, images = p.images, contentBody = p.contentBody, sellerContent = p.sellerContent, isDisplay = p.isDisplay, createTime = p.createTime, avatarImage = cUser.avatarImage, nickName = cUser.nickName, mobile = cUser.mobile, goodName = cGood.name, }) .MergeTable()//将上面的操作变成一个表 mergetable .OrderByIF(orderByExpression != null, orderByExpression, orderByType) .Where(predicate) .ToPageListAsync(pageIndex, pageSize, totalCount); if (page.Any()) { foreach (var item in page) { item.imagesArr = !string.IsNullOrEmpty(item.images) ? item.images.Split(",") : new String[0]; } } var list = new PageList(page, pageIndex, pageSize, totalCount); return list; } #endregion } }