yz_server/Server/Controllers/FunctionSetting/RebateController.cs

351 lines
11 KiB
C#
Raw Normal View History

2022-04-16 07:48:12 +00:00
using Common.DbExtends;
using Common.DbExtends.Extends;
using Common.Models.Enums;
using Common.Models.JsonModels;
using Common.Models.UnqTables;
using Common.Utils;
using Newtonsoft.Json;
using Server.MyClass.Views;
using Server.Utils;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
namespace Server.Controllers.FunctionSetting
{
public class RebateController : DefaultController
{
/// <summary>
/// 获取返利配置模板
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult GetRebateConfig()
{
var Id = GetInt("Id", true);
var rebateConfig = Db.GetRebateConfigById(Id);
if (rebateConfig == null)
{
rebateConfig = new RebateConfig();
return PutData(new
{
Config = rebateConfig
});
}
else
{
#region ID
List<int> IdList = new List<int>();
if (!IdList.Contains(rebateConfig.TbRebateId)) IdList.Add(rebateConfig.TbRebateId);
if (!IdList.Contains(rebateConfig.SnRebateId)) IdList.Add(rebateConfig.SnRebateId);
if (!IdList.Contains(rebateConfig.PddRebateId)) IdList.Add(rebateConfig.PddRebateId);
if (!IdList.Contains(rebateConfig.JdRebateId)) IdList.Add(rebateConfig.JdRebateId);
if (!IdList.Contains(rebateConfig.DyRebateId)) IdList.Add(rebateConfig.DyRebateId);
if (!IdList.Contains(rebateConfig.WphRebateId)) IdList.Add(rebateConfig.WphRebateId);
if (!IdList.Contains(rebateConfig.MtRebateId)) IdList.Add(rebateConfig.MtRebateId);
if (!IdList.Contains(rebateConfig.PyqRebateId)) IdList.Add(rebateConfig.PyqRebateId);
if (IdList.Contains(0)) IdList.Remove(0);
var ResList = Db.Queryable<Rebate>().Where(f => IdList.Contains(f.Id))
.Select(f => new RebateIdsShow
{
Id = f.Id,
Name = f.Name,
}).ToList();
#endregion
return PutData(new
{
Config = rebateConfig,
RebateIds = ResList
});
}
}
/// <summary>
/// 新增返利设置模板
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult AddRebateConfig()
{
var Name = GetString("Name", true);
var JsonContent = GetString("JsonContent", true);
var configData = Db.Queryable<ConfigData>().Where(f => f.Name == Name && f.Type == Common.Models.Enums.ConfigType.).First();
if (configData == null)
{
configData = new ConfigData()
{
Name = Name,
Type = Common.Models.Enums.ConfigType.,
JsonContent = JsonContent
};
Db.Save(configData);
return PutSuccess;
}
else
{
return PutData("添加失败,已存在该模板");
}
}
/// <summary>
/// 编辑返利设置模板
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult UpdRebateConfig()
{
var Id = GetInt("Id", true);
var configData = Db.GetConfigData(Id);
var JsonContent = GetString("JsonContent", true);
if (configData == null)
{
return PutData("编辑失败,此模板不存在");
}
if (configData.Type != ConfigType.)
{
return PutData("编辑失败,此模板类型不匹配");
}
configData.JsonContent = JsonContent;
Db.Save(configData);
var Robots = Db.Queryable<Robot>().Where(f => f.ConfigRebateId == Id).Select(f => f.Id).ToList();
if (Robots.Count != 0)
{
foreach (var RobotId in Robots)
Client.SendClientMsg(RobotId, DeviceMessageType., new { ConfigId = Id });
}
return PutSuccess;
}
/// <summary>
/// 获取返利设置模板名称
/// </summary>
/// <returns>返利设置模板名称</returns>
[HttpPost, ErrorFilter]
public WebResult GetRebateInfos()
{
string KeyWord = GetString("KeyWord");
int PageIndex = GetInt("PageIndex", true);
int PageSize = GetInt("PageSize", true);
if (PageSize > 100) PageSize = 100;
int tNumber = 0;
var exp = Expressionable.Create<ConfigData>();
if (!string.IsNullOrEmpty(KeyWord))
{
exp.And(f => f.Name.Contains(KeyWord) && f.Type == Common.Models.Enums.ConfigType.);
}
else
exp.And(f => f.Type == Common.Models.Enums.ConfigType.);
var DataList = Db.Queryable<ConfigData>().Where(exp.ToExpression())
.Select(m => new RebateConfigShow
{
Id = m.Id,
Name = m.Name,
}).ToPageList(PageIndex, PageSize, ref tNumber);
var res = new PageResult<RebateConfigShow>(DataList, tNumber, PageSize, PageIndex);
return PutData(res);
}
/// <summary>
/// 删除返利设置模板
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult DelRebateConfig()
{
var Id = GetInt("Id", true);
var config = Db.Queryable<ConfigData>().Single(f => f.Id == Id);
if (config != null)
{
var res = Db.Delete(config);
var Robots = Db.Queryable<Robot>().Where(f => f.ConfigRebateId == Id).Select(f => f.Id).ToList();
if (Robots.Count != 0)
{
foreach (var RobotId in Robots)
Client.SendClientMsg(RobotId, DeviceMessageType., new { ConfigId = Id });
}
if (res > 0) return PutSuccess;
}
return PutData("删除失败,此模板不存在");
}
/// <summary>
/// 查询返利模式
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult GetRebate()
{
//关键词
string KeyWord = GetString("KeyWord");
int pageIndex = GetInt("PageIndex", true);
int pageSize = GetInt("PageSize", true);
int tNumber = 0;
var exp = Expressionable.Create<Rebate>();
if (!string.IsNullOrEmpty(KeyWord))
{
exp.And(f => f.Name.Contains(KeyWord));
}
var DataList = Db.Queryable<Rebate>().Where(exp.ToExpression())
.ToPageList(pageIndex, pageSize, ref tNumber);
var res = new PageResult<Rebate>(DataList, tNumber, pageSize, pageIndex);
return PutData(res);
}
/// <summary>
/// 返回用户组ID和Name
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult GetUserGrouInfo()
{
var Keyword = GetString("Keyword");
var exp = Expressionable.Create<UserGroup>();
if (!string.IsNullOrEmpty(Keyword))
{
exp.And(f => f.Name.Contains(Keyword));
}
var usergroup = Db.Queryable<UserGroup>().Where(exp.ToExpression())
.Select(a => new UserGroupInfo
{
Id = a.Id,
Name = a.Name,
}).ToList();
return PutData(usergroup);
}
/// <summary>
/// 新增返利模板
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult AddRebate()
{
//CommissionSetting commissionSetting = new CommissionSetting();
var Name = GetString("Name");
var CommissionInfoStr = GetString("CommissionInfoStr", true);
var rebate = Db.Queryable<Rebate>().Where(f => f.Name == Name).First();
if (rebate != null)
{
return PutData("此模板已经存在,请重新输入");
}
rebate = new Rebate()
{
Name = Name,
CreateTime = DateTime.Now,
UpdateTime = DateTime.Now,
CommissionInfo = JsonConvert.DeserializeObject<List<CommissionGroup>>(CommissionInfoStr)
};
Db.Save(rebate);
return PutSuccess;
}
/// <summary>
/// 编辑返利模板
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult UpdRebate()
{
int Id = GetInt("Id", true);
string Name = GetString("Name", true);
string CommissionInfoStr = GetString("CommissionInfoStr", true);
var model = Db.GetRebateById(Id);
if (model == null)
{
return PutData("修改失败,此模板不存在,可能已被删除");
}
else
{
model.CommissionInfo = JsonConvert.DeserializeObject<List<CommissionGroup>>(CommissionInfoStr);
model.UpdateTime = DateTime.Now;
model.Name = Name;
Db.Save(model);
return PutSuccess;
}
}
/// <summary>
/// 删除返利模板
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult DelRebate()
{
int Id = GetInt("Id", true);
var rebate = Db.Deleteable<Rebate>().Where(x => x.Id == Id).ExecuteCommand();
if (rebate > 0)
return PutSuccess;
return PutData("删除失败,没有此返利模板");
}
}
public class GetRebateModels
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime CreateTime { get; set; }
public DateTime EditTime { get; set; }
}
}