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
{
///
/// 获取返利配置模板
///
///
[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 IdList = new List();
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().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
});
}
}
///
/// 新增返利设置模板
///
///
[HttpPost, ErrorFilter]
public WebResult AddRebateConfig()
{
var Name = GetString("Name", true);
var JsonContent = GetString("JsonContent", true);
var configData = Db.Queryable().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("添加失败,已存在该模板");
}
}
///
/// 编辑返利设置模板
///
///
[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().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;
}
///
/// 获取返利设置模板名称
///
/// 返利设置模板名称
[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();
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().Where(exp.ToExpression())
.Select(m => new RebateConfigShow
{
Id = m.Id,
Name = m.Name,
}).ToPageList(PageIndex, PageSize, ref tNumber);
var res = new PageResult(DataList, tNumber, PageSize, PageIndex);
return PutData(res);
}
///
/// 删除返利设置模板
///
///
[HttpPost, ErrorFilter]
public WebResult DelRebateConfig()
{
var Id = GetInt("Id", true);
var config = Db.Queryable().Single(f => f.Id == Id);
if (config != null)
{
var res = Db.Delete(config);
var Robots = Db.Queryable().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("删除失败,此模板不存在");
}
///
/// 查询返利模式
///
///
[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();
if (!string.IsNullOrEmpty(KeyWord))
{
exp.And(f => f.Name.Contains(KeyWord));
}
var DataList = Db.Queryable().Where(exp.ToExpression())
.ToPageList(pageIndex, pageSize, ref tNumber);
var res = new PageResult(DataList, tNumber, pageSize, pageIndex);
return PutData(res);
}
///
/// 返回用户组ID和Name
///
///
[HttpPost, ErrorFilter]
public WebResult GetUserGrouInfo()
{
var Keyword = GetString("Keyword");
var exp = Expressionable.Create();
if (!string.IsNullOrEmpty(Keyword))
{
exp.And(f => f.Name.Contains(Keyword));
}
var usergroup = Db.Queryable().Where(exp.ToExpression())
.Select(a => new UserGroupInfo
{
Id = a.Id,
Name = a.Name,
}).ToList();
return PutData(usergroup);
}
///
/// 新增返利模板
///
///
[HttpPost, ErrorFilter]
public WebResult AddRebate()
{
//CommissionSetting commissionSetting = new CommissionSetting();
var Name = GetString("Name");
var CommissionInfoStr = GetString("CommissionInfoStr", true);
var rebate = Db.Queryable().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>(CommissionInfoStr)
};
Db.Save(rebate);
return PutSuccess;
}
///
/// 编辑返利模板
///
///
[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>(CommissionInfoStr);
model.UpdateTime = DateTime.Now;
model.Name = Name;
Db.Save(model);
return PutSuccess;
}
}
///
/// 删除返利模板
///
///
[HttpPost, ErrorFilter]
public WebResult DelRebate()
{
int Id = GetInt("Id", true);
var rebate = Db.Deleteable().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; }
}
}