using System; using System.Linq; using System.Text; using System.Data.Common; using System.Linq.Expressions; using System.Collections.Generic; using System.Threading.Tasks; using YiSha.Util; using YiSha.Util.Extension; using YiSha.Util.Model; using YiSha.Data; using YiSha.Data.Repository; using YiSha.Enum; using System.ComponentModel.DataAnnotations.Schema; using YiSha.Entity.ZX; using YiSha.Model.Param.ZX; using YiSha.IService.ZX; using YiSha.Model.Result.ZX; using YiSha.Web.Code; namespace YiSha.Service.ZX { /// /// 创 建:cmzx /// 日 期:2021-04-15 09:36 /// 描 述:资讯专家标签服务实现类(部分类) /// public partial class LabelModelsService { private IRepositoryFactory _baseRepository; public LabelModelsService(IRepositoryFactory baseRepository) { _baseRepository = baseRepository; } /// /// 获取分页数据 /// /// 请求参数 /// 分页条件 /// public async Task> GetPageListPartial(LabelModelsListParam param, Pagination pagination) { var parameters = new List(); var sql = SqlPageList(param, pagination, out parameters); var list = await _baseRepository.BaseRepository(dbConnectType).FindList(sql, parameters.ToArray()); return list.ToList(); } /// /// 保存数据(由于之前数据库设计不规范,无法实现在新增、修改时保存正确的操作用户信息,每张表的创建时间和创建人id、创建人姓名都不一样,且这些字段是必填项) /// /// 实体参数 /// public async Task SaveFormPartial(LabelModelsEntity entity) { OperatorInfo user = await Operator.Instance.Current(entity.Token); if (entity.Id.IsNullOrZero()) { entity.createTime = DateTime.Now; entity.createUserId = user?.UserId; entity.createUserName = user?.UserName; return await _baseRepository.BaseRepository(dbConnectType).Insert(entity); } else { return await _baseRepository.BaseRepository(dbConnectType).Update(entity); } } #region 私有方法 /// /// 列表条件过滤 /// 建议该方法放在Partial部分类中,因为代码生成时当前类会被覆盖(该方法在生成时将会被注释) /// /// /// private Expression> ListFilterPartial(LabelModelsListParam param) { var expression = LinqExtensions.True(); if (param != null) { if (!string.IsNullOrEmpty(param.LabelName)) expression = expression.And(t => t.labelName.Equals(param.LabelName)); if (!param.MenuId.IsNullOrZero()) expression = expression.And(t => t.menuId == param.MenuId); } return expression; } /// /// 获取分页Sql语句 /// /// /// private string SqlPageList(LabelModelsListParam param, Pagination pagination, out List parameters) { parameters = new List(); var where = new StringBuilder(); where.Append(" 1 = 1 "); if (param != null) { if (!string.IsNullOrEmpty(param.LabelName)) { where.Append(" and lm.LabelName like @LabelName "); parameters.Add(DbParameterExtension.CreateDbParameter("@LabelName", $"%{param.LabelName}%", dbConnectType)); } if (!string.IsNullOrEmpty(param.MenuName)) { where.Append(" and mmm.menuName like @MenuName "); parameters.Add(DbParameterExtension.CreateDbParameter("@MenuName", $"%{param.MenuName}%", dbConnectType)); } } //获取分页数据Sql var pageSql = $@"select lm.*,mmm.menuName from LabelModels lm left join menuManagerModels mmm on lm.menuId = mmm.id where {where.ToString()}"; //统计总数据Sql var totalSql = $@"select count(1) from LabelModels lm left join menuManagerModels mmm on lm.menuId = mmm.id where {where.ToString()}"; pageSql = SqlserverHelper.GetInstance.SqlPageList(pageSql, totalSql, pagination); return pageSql; } #endregion } }