using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Data.Common; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using YiSha.Data; using YiSha.Data.Repository; using YiSha.Entity.ZxOrTkMenuManagerModels; using YiSha.Enum.ZX; using YiSha.Model.Param.TK; using YiSha.Model.Result.TK; using YiSha.Util.Extension; using YiSha.Web.Code; namespace YiSha.Service.TK { /// /// 创 建:cmzx /// 日 期:2021-04-21 09:30 /// 描 述:图库菜单管理服务实现类(部分类) /// public partial class MenuManagerModelsService { private IRepositoryFactory _baseRepository; public MenuManagerModelsService(IRepositoryFactory baseRepository) { _baseRepository = baseRepository; } /// /// 获取资讯彩种类型菜单树 /// /// public async Task> GetZxMenuManagerTreeList(MenuManagerModelsListParam param) { var expression = ListFilterPartial(param); //var s = await _baseRepository.BaseRepository(dbConnectType).FindList(expression); try { var zxMenuManagerList = await _baseRepository.BaseRepository(dbConnectType).FindList(expression); var result = zxMenuManagerList.ToList().ConvertAll(item => { return new MenuManagerModelsTreeListModel { Id = item.Id, ParentId = item.parentId, MenuName = item.menuName, ParentName = item.parentName, SortNo = item.sortNo, Type = item.type }; }); return result; } catch (Exception ex) { throw; } } /// /// 保存数据(由于之前数据库设计不规范,无法实现在新增、修改时保存正确的操作用户信息,每张表的创建时间和创建人id、创建人姓名都不一样,且这些字段是必填项) /// /// 实体参数 /// public async Task SaveFormPartial(MenuManagerModelsCommonEntity 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); } } /// /// 删除数据(由于之前数据库设计不规范,无法实现统一的删除功能,这里需要手动更改) /// /// 主键集合 /// public async Task DeleteFormByIdPartial(string ids) { ids = $"{string.Join(",", ids.Split(","))}"; var where = $" id in ({ids}) "; var setField = " isdelete = @IsDelete "; var parameters = new List(); parameters.Add(DbParameterExtension.CreateDbParameter("@IsDelete", TkIsDeleteEnum.已删除.ParseToInt(), dbConnectType)); string tableName = typeof(MenuManagerModelsCommonEntity).GetAttributeValue((TableAttribute ta) => ta.Name); string updateSql = $"update {tableName} set {setField} where {where}"; return await _baseRepository.BaseRepository(dbConnectType).ExecuteBySql(updateSql, DbParameterExtension.ToDbParameter(parameters.ToArray())); } #region 私有方法 /// /// 列表条件过滤 /// 建议该方法放在Partial部分类中,因为代码生成时当前类会被覆盖(该方法在生成时将会被注释) /// /// /// private Expression> ListFilterPartial(MenuManagerModelsListParam param) { var expression = LinqExtensions.True(); expression = expression.And(d => d.isDelete == false); if (param != null) { if (param.Type != null) expression = expression.And(d => d.type == param.Type.ParseToInt()); if (!string.IsNullOrEmpty(param.MenuName)) expression = expression.And(d => d.menuName.Contains(param.MenuName)); } return expression; } #endregion } }