351 lines
11 KiB
C#
351 lines
11 KiB
C#
|
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; }
|
|||
|
}
|
|||
|
}
|