using AutoMapper;
using OASystem.Domain;
using OASystem.Domain.Dtos.Statistics;
using OASystem.Domain.Entities.Groups;
using OASystem.Domain.ViewModels.Groups;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OASystem.Infrastructure.Repositories.Groups
{
///
/// 客户拜访 仓储
///
public class VisitingClientsRepository : BaseRepository
{
private readonly IMapper _mapper;
private readonly JsonView _view;
public VisitingClientsRepository(SqlSugarClient sqlSugar, IMapper mapper)
: base(sqlSugar)
{
_mapper = mapper;
_view = new JsonView() { Code = StatusCodes.Status400BadRequest, Msg = BusStatusCode.Failed.GetEnumDescription() };
}
///
/// 获取客户拜访列表
///
///
///
///
///
///
///
public async Task _List(int portType,int pageIndex, int pageSize,int diId,string search)
{
if (portType ==1 || portType == 2 || portType == 3)
{
string sql = string.Format(@$"Select
ROW_NUMBER() Over(Order By BeginDt Asc) As RowNumber,
vc.Id,
vc.BeginDt,
vc.EndDt,
vc.CustomerUnit,
vc.CustomerJob,
vc.CustomerName,
vc.CustomerContact,
u.CnName As Operator,
vc.CreateTime As OperationDt
From Grp_VisitingClients vc
Left Join Sys_Users u On vc.CreateUserId = u.Id
Where vc.Isdel = 0 And vc.DiId = {diId}");
RefAsync total = 0;
var data = await _sqlSugar.SqlQueryable(sql).ToPageListAsync(pageIndex, pageSize, total);
_view.Code = StatusCodes.Status200OK;
_view.Msg = MsgTips.Succeed;
_view.Data = data;
_view.Count = total;
}
return _view;
}
///
/// 团组客户拜访 Add Or Edit
///
///
///
public async Task _AddOrEdit(MarketingSalesVCOperrateDto _dto)
{
var info = _mapper.Map(_dto);
if (_dto.PortType == 1 || _dto.PortType == 2 || _dto.PortType == 3)
{
if (info.Id > 0) //编辑
{
var update = await _sqlSugar.Updateable(info).IgnoreColumns(it => new { it.CreateTime, it.CreateUserId, it.DeleteUserId, it.DeleteTime, it.IsDel }).ExecuteCommandAsync();
if (update <= 0) return new JsonView() { Code = (int)BusStatusCode.UpdateFailed, Msg = BusStatusCode.UpdateFailed.GetEnumDescription() };
}
else //新增
{
info.CreateUserId = _dto.UserId;
var add = await _sqlSugar.Insertable(info).ExecuteCommandAsync();
if (add <= 0) return new JsonView() { Code = (int)BusStatusCode.AddFailed, Msg = BusStatusCode.AddFailed.GetEnumDescription() };
}
return new JsonView() { Code = (int)BusStatusCode.Success, Msg = BusStatusCode.Success.GetEnumDescription() };
}
else return new JsonView() { Code = (int)BusStatusCode.PortTypeError, Msg = BusStatusCode.PortTypeError.GetEnumDescription() };
}
///
/// 团组客户拜访 del
///
///
///
///
public async Task _Del(int id, int userId)
{
var info = new Grp_VisitingClients() { Id = id, IsDel = 1, DeleteUserId = userId, DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")};
var update = await _sqlSugar.Updateable(info)
.UpdateColumns(it => new { it.IsDel, it.DeleteUserId, it.DeleteTime })
.WhereColumns(it => it.Id)
.ExecuteCommandAsync();
if (update <= 0) return new JsonView() { Code = (int)BusStatusCode.DeleteFailed, Msg = BusStatusCode.DeleteFailed.GetEnumDescription() };
return new JsonView() { Code = (int)BusStatusCode.Success, Msg = BusStatusCode.Success.GetEnumDescription() };
}
}
}