Files
zszq-trs/YLErpDAL/Modules/ClientModule/ClientLevelService.cs
T
2024-05-09 14:06:26 +08:00

183 lines
4.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using BaseOUDAL;
namespace YLErp.Modules.ClientModule
{
/// <summary>
/// 客户等级服务
/// </summary>
public class ClientLevelService : ClientBaseService
{
public ClientLevelService(OptUserInfo userInfo) : base(userInfo)
{
}
/// <summary>
/// 查询clientlevel
/// </summary>
public SearchListResult<ClientLevel> SearchList(ClientLevelReq req)
{
var query = DbContext.clientlevel.AsNoTracking().AsQueryable();
if (!string.IsNullOrEmpty(req.LevelName))
{
query = query.Where(d => d.LevelName.Contains(req.LevelName));
}
if (req.Ratio != null)
{
query = query.Where(d => d.Ratio == req.Ratio);
}
if (req.ValidState != null)
{
query = query.Where(d => d.ValidState.Equals(req.ValidState));
}
if (req.OptId != null)
{
query = query.Where(d => d.OptId == req.OptId);
}
if (!string.IsNullOrEmpty(req.OptName))
{
query = query.Where(d => d.OptName.Contains(req.OptName));
}
if (req.CreateDateStart != DateTime.MinValue)
{
query = query.Where(d => d.CreateDate >= req.CreateDateStart);
}
if (req.CreateDateEnd != DateTime.MinValue)
{
var CreateDateTemp = req.CreateDateEnd.AddDays(1);
query = query.Where(d => d.CreateDate < CreateDateTemp);
}
if (!string.IsNullOrEmpty(req.Desc))
{
query = query.Where(d => d.Desc.Contains(req.Desc));
}
if (string.IsNullOrEmpty(req.sidx))
{
req.sidx = "id";
req.sord = "desc";
}
return query.ToSearchList(req);
}
/// <summary>
/// 保存clientlevel
/// </summary>
public ClientLevel SaveClientLevel(ClientLevel req)
{
if (string.IsNullOrEmpty(req.LevelName))
{
throw new ServiceException("等级名称不能为空");
}
if (!req.Ratio.HasValue)
{
req.Ratio = 1;
}
else if (req.Ratio <= 0)
{
throw new ServiceException("维持预付金系数应该大于0");
}
if (!req.Ratio1.HasValue)
{
req.Ratio1 = 1.1;
}
else if (req.Ratio1 <= 0)
{
throw new ServiceException("初始预付金系数应该大于0");
}
ClientLevel dbModel;
using (var clientDB = DbContextFactory.GetClientDbContext(UserInfo))
{
if (clientDB.clientlevel.Any(x => x.id != req.id && x.LevelName == req.LevelName))
{
throw new ServiceException("客户等级名称已存在");
}
if (req.id == 0)
{
clientDB.clientlevel.Add(dbModel = req);
req.CreateDate = DateTime.Now;
}
else
{
dbModel = clientDB.clientlevel.Find(req.id);
if (dbModel == null)
{
throw new ServiceException("数据不存在");
}
req.CreateDate = dbModel.CreateDate;
}
UpdateChanges(dbModel, req);
SetDBModelOpt(dbModel);
clientDB.SaveChanges();
return dbModel;
}
}
}
/// <summary>
/// 客户等级查询请求
/// </summary>
public class ClientLevelReq : BaseSearchReq
{
/// <summary>
/// 等级名称
/// </summary>
public string LevelName { get; set; }
/// <summary>
/// 追保系数(R2
/// </summary>
public double? Ratio { get; set; }
/// <summary>
/// 预警系数 (R1)
/// </summary>
public double? Ratio1 { get; set; }
/// <summary>
/// 是否有效_validstate
/// </summary>
public string ValidState { get; set; }
/// <summary>
/// 操作人_optid
/// </summary>
public int? OptId { get; set; }
/// <summary>
/// 操作人_optname
/// </summary>
public string OptName { get; set; }
/// <summary>
/// 创建日期_createdate
/// </summary>
public DateTime? CreateDate { get; set; }
public DateTime CreateDateStart { get; set; }
public DateTime CreateDateEnd { get; set; }
/// <summary>
/// 说明
/// </summary>
public string Desc { get; set; }
}
}