using OASystem.Domain.Entities.Resource; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using AutoMapper; using OASystem.Domain.Dtos.Resource; using EyeSoft.Extensions; using OASystem.Domain; namespace OASystem.Infrastructure.Repositories.Resource { /// <summary> /// 策划部供应商资料 /// 仓储 /// </summary> public class MediaSuppliersRepository : BaseRepository<Res_MediaSuppliers, Res_MediaSuppliers> { private readonly IMapper _mapper; private readonly List<int> _portIds; public MediaSuppliersRepository(SqlSugarClient sqlSugar, IMapper mapper) : base(sqlSugar) { _mapper = mapper; _portIds = new List<int> { 1, 2, 3 }; } /// <summary> /// 初始化数据 /// </summary> /// <returns></returns> public async Task<JsonView> Init() { var result = new JsonView() { Code = 400, Msg = "操作失败" }; var typeData = await _sqlSugar.Queryable<Sys_SetData>().Where(x => x.IsDel == 0 && x.STid == 21).Select(x => new { x.Id, Text = x.Name }).ToListAsync(); result.Code = 200; result.Data = typeData; return result; } /// <summary> /// 详情 /// </summary> /// <param name="dto"></param> /// <returns></returns> public async Task<JsonView> Info(MediaSupplierInfoDto dto) { var result = new JsonView() { Code = 400, Msg = "操作失败" }; if (!_portIds.Contains(dto.PortType)) { result.Msg = MsgTips.Port; return result; } if (dto.Id < 1) { result.Msg = MsgTips.Id; return result; } var info = await _sqlSugar.Queryable<Res_MediaSuppliers>() .Where(x => x.IsDel == 0 && x.Id == dto.Id) .Select(x => new { x.Id, x.TypeId, x.Privince, x.City, x.UnitName, x.UnitAbbreviation, x.UnitAddress, x.Contact, x.Sex, x.Post, x.Fax, x.Tel, x.Email, x.WeChat, x.Remark }) .FirstAsync(); result.Code = 200; result.Data = info; result.Msg = MsgTips.Succeed; return result; } /// <summary> /// 分页查询 /// </summary> /// <param name="dto"></param> /// <returns></returns> public async Task<JsonView> PageItem(MediaSupplierPageItemDto dto) { var result = new JsonView() { Code = 400, Msg = "操作失败" }; if (!_portIds.Contains(dto.PortType)) { result.Msg = MsgTips.Port; return result; } var search = dto.Search; RefAsync<int> total = 0; var infos = await _sqlSugar.Queryable<Res_MediaSuppliers>() .LeftJoin<Sys_Users>((ms, u) => ms.CreateUserId == u.Id) .Where((ms, u) => ms.IsDel == 0) .WhereIF(!string.IsNullOrEmpty(search), (ms, u) => ms.UnitName.Contains(search) || ms.Contact.Contains(search) || ms.Tel.Contains(search)) .OrderByDescending((ms, u) => ms.CreateTime) .Select((ms, u) => new { ms.Id, ms.Privince, ms.City, ms.UnitName, ms.Contact, ms.Sex, ms.Post, ms.Tel, CreateUserName = u.CnName, ms.CreateTime }) .ToPageListAsync(dto.PageIndex, dto.PageSize, total); result.Msg = MsgTips.Succeed; result.Code = 200; result.Data = infos; result.Count = total; return result; } /// <summary> /// 操作(添加 Or 编辑) /// </summary> /// <param name="dto"></param> /// <returns></returns> public async Task<JsonView> AddOrEdit(MediaSupplierAddOrEditDto dto) { var result = new JsonView() { Code = 400, Msg = "操作失败" }; if (!_portIds.Contains(dto.PortType)) { result.Msg = MsgTips.Port; return result; } var userId = dto.CurrUserId; if (userId < 1) { result.Msg = MsgTips.UserId; return result; } var info = _mapper.Map<Res_MediaSuppliers>(dto); info.CreateUserId = userId; if (info.Id < 1) //添加 { var add = await _sqlSugar.Insertable(info).ExecuteCommandAsync(); if (add < 1) return result; } else //编辑 { var upd = await _sqlSugar.Updateable(info).IgnoreColumns(x => new { x.CreateUserId, x.CreateTime }).ExecuteCommandAsync(); if (upd < 1) return result; } result.Code = 200; result.Msg = $"操作成功!"; return result; } /// <summary> /// 软删除 /// </summary> /// <param name="dto"></param> /// <returns></returns> public async Task<JsonView> SoftDel(MediaSupplierSoftDelDto dto) { var result = new JsonView() { Code = 400, Msg = "操作失败" }; int userId = dto.CurrUserId, id = dto.Id; if (!_portIds.Contains(dto.PortType)) { result.Msg = MsgTips.Port; return result; } if (userId < 1) { result.Msg = MsgTips.UserId; return result; } if (id < 1) { result.Msg = MsgTips.Id; return result; } var status = await _sqlSugar.Updateable<Res_MediaSuppliers>() .SetColumns(x => new Res_MediaSuppliers() { IsDel = 1, DeleteUserId = userId, DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") }) .Where(x => x.Id == id) .ExecuteCommandAsync(); if (status > 0) { result.Code = 200; result.Msg = $"操作成功!"; } return result; } } }