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; } } }