436 lines
21 KiB
C#
436 lines
21 KiB
C#
using Common.DbExtends.Extends;
|
|
using Common.Models.Enums;
|
|
using Common.Models.UnqTables;
|
|
using Common.Utils;
|
|
using Server.MyClass.Views;
|
|
using SqlSugar;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
namespace Server.Controllers.AccountManagement
|
|
{
|
|
public class RobotController : DefaultController
|
|
{
|
|
/// <summary>
|
|
/// 分页查询机器人
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[System.Web.Http.HttpPost, ErrorFilter]
|
|
public WebResult GetRobots()
|
|
{
|
|
var Keyword = GetString("Keyword");
|
|
var PageIndex = GetInt("PageIndex");
|
|
var PageSize = GetInt("PageSize");
|
|
if (PageSize > 100) PageSize = 100;
|
|
var TotalNumber = 0;
|
|
var exp = Expressionable.Create<Robot>();
|
|
if (!string.IsNullOrEmpty(Keyword))
|
|
{
|
|
exp.And(f => f.Nickname.Contains(Keyword) || f.Username.Contains(Keyword));
|
|
}
|
|
var DataList = Db.Queryable<Robot>().Where(exp.ToExpression()).ToPageList(PageIndex, PageSize, ref TotalNumber);
|
|
|
|
|
|
foreach (var item in DataList)
|
|
{
|
|
var data = Client.SingleClient.OnlineDevices.FirstOrDefault(f => f.Value.RobotId == item.Id).Value;
|
|
item.IsOnlineRobot = data != null;
|
|
}
|
|
return PutData(new PageResult<Robot>(DataList, TotalNumber, PageSize, PageIndex));
|
|
}
|
|
|
|
/// <summary>
|
|
/// 删除机器人
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
|
|
[System.Web.Http.HttpPost, ErrorFilter]
|
|
public WebResult DelRobot()
|
|
{
|
|
|
|
var Data = Db.GetRobot(GetInt("Id", true));
|
|
if (Data != null && Db.Delete(Data) > 0)
|
|
{
|
|
Client.SendClientMsg(Data.Id, DeviceMessageType.退出机器人, new { RobotId = Data.Id });
|
|
return PutSuccess;
|
|
}
|
|
else return PutData("删除失败,机器人信息不存在!");
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 登录机器人
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[System.Web.Http.HttpPost, ErrorFilter]
|
|
public WebResult LoginRobot()
|
|
{
|
|
|
|
var Id = GetInt("RobotId", true);
|
|
var Robot = Db.Queryable<Robot>().Single(f => f.Id == Id);
|
|
if (Robot == null) return PutData("找不到该机器人数据!");
|
|
|
|
var device = Db.Queryable<Device>().Where(f => f.RobotId == Robot.Id).OrderBy(f => f.LoginTime, OrderByType.Desc).First();
|
|
if (device == null)
|
|
return PutData("登录失败,未发现该机器人上次登录的设备信息");
|
|
|
|
var Msg = Client.SendClientMsg(device.Id, DeviceMessageType.登录机器人, new { RobotId = Id });
|
|
if (Msg == null)
|
|
return PutData("登录失败,设备离线请检查软件状态");
|
|
|
|
var Rst = Client.GetClientMsg(Msg.Msgid).Result;
|
|
if (Rst == null) return PutData("登录失败,未获取到二维码信息请检查软件状态");
|
|
|
|
return PutData(new { Type = Robot.UserType, Qrcode = Rst.Content });
|
|
}
|
|
|
|
/// <summary>
|
|
/// 退出机器人
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[System.Web.Http.HttpPost, ErrorFilter]
|
|
public WebResult LogoutRobot()
|
|
{
|
|
var Id = GetInt("RobotId",true);
|
|
var Robot = Db.Queryable<Robot>().Single(f => f.Id == Id);
|
|
if (Robot == null) return PutData("找不到该机器人数据!");
|
|
Robot.LoginTime = DateTime.MinValue;
|
|
Db.Updateable<Robot>(Robot).ExecuteCommand();
|
|
Client.SendClientMsg(Robot.Id, DeviceMessageType.退出机器人, new { RobotId = Robot.Id });
|
|
return PutSuccess;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 查询机器人详细信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[System.Web.Http.HttpPost, ErrorFilter]
|
|
public WebResult GetRobot()
|
|
{
|
|
var Id = GetInt("RobotId",true);
|
|
var Robot = Db.Queryable<Robot>().Single(f => f.Id == Id);
|
|
if (Robot == null) return PutData("找不到该机器人数据!");
|
|
|
|
return null;
|
|
}
|
|
|
|
[System.Web.Http.HttpPost, ErrorFilter]
|
|
public WebResult GetConfig()
|
|
{
|
|
var Id = GetInt("RobotId", true);
|
|
var Robot = Db.Queryable<Robot>().Single(f => f.Id == Id);
|
|
if (Robot == null) return PutData("查询失败,找不到该机器人信息!");
|
|
RobotSettingShow config = new RobotSettingShow();
|
|
|
|
var tbMedia1 = Robot.TbMediaId1 > 0 ? Db.GetTbMedia(Robot.TbMediaId1) : null;
|
|
var tbMedia2 = Robot.TbMediaId2 > 0 ? Db.GetTbMedia(Robot.TbMediaId2) : null;
|
|
var tbLianmeng1 = tbMedia1 != null ? Db.GetLianmeng(tbMedia1.LianmengId) : null;
|
|
var tbLianmeng2 = tbMedia2 != null ? Db.GetLianmeng(tbMedia2.LianmengId) : null;
|
|
config.TbLianmengId1 = tbLianmeng1 != null ? tbLianmeng1.Id : 0;
|
|
config.TbLianmengId2 = tbLianmeng2 != null ? tbLianmeng2.Id : 0;
|
|
config.TbLianmengNick1 = tbLianmeng1 != null ? tbLianmeng1.Showname : String.Empty;
|
|
config.TbLianmengNick2 = tbLianmeng2 != null ? tbLianmeng2.Showname : String.Empty;
|
|
config.TbMediaNick1 = tbMedia1 != null ? tbMedia1.AdzoneName : String.Empty;
|
|
config.TbMediaNick2 = tbMedia2!=null? tbMedia2.AdzoneName :String.Empty;
|
|
config.TbMediaId1 = tbMedia1!=null ? tbMedia1.Id : 0;
|
|
config.TbMediaId2 = tbMedia2!=null? tbMedia2.Id : 0;
|
|
|
|
|
|
var dyMedia1 = Robot.DyMediaId1 > 0 ? Db.GetDyMedia(Robot.DyMediaId1) : null;
|
|
var dyMedia2 = Robot.DyMediaId2 > 0 ? Db.GetDyMedia(Robot.DyMediaId2) : null;
|
|
var dyLianmeng1 = dyMedia1 != null ? Db.GetLianmeng(dyMedia1.LianmengId) : null;
|
|
var dyLianmeng2 = dyMedia2 != null ? Db.GetLianmeng(dyMedia2.LianmengId) : null;
|
|
config.DyLianmengId1 = dyLianmeng1 != null ? dyLianmeng1.Id : 0;
|
|
config.DyLianmengId2 = dyLianmeng2 != null ? dyLianmeng2.Id : 0;
|
|
config.DyLianmengNick1 = dyLianmeng1 != null ? dyLianmeng1.Showname : String.Empty;
|
|
config.DyLianmengNick2 = dyLianmeng2 != null ? dyLianmeng2.Showname : String.Empty;
|
|
config.DyMediaNick1 = dyMedia1 != null ? dyMedia1.AdzoneName : String.Empty;
|
|
config.DyMediaNick2 = dyMedia2 != null ? dyMedia2.AdzoneName : String.Empty;
|
|
config.DyMediaId1 = dyMedia1 != null ? dyMedia1.Id : 0;
|
|
config.DyMediaId2 = dyMedia2 != null ? dyMedia2.Id : 0;
|
|
|
|
|
|
var jdMedia1 = Robot.JdMediaId1 > 0 ? Db.GetJdMedia(Robot.JdMediaId1) : null;
|
|
var jdMedia2 = Robot.JdMediaId2 > 0 ? Db.GetJdMedia(Robot.JdMediaId2) : null;
|
|
var jdLianmeng1 = jdMedia1 != null ? Db.GetLianmeng(jdMedia1.LianmengId) : null;
|
|
var jdLianmeng2 = jdMedia2 != null ? Db.GetLianmeng(jdMedia2.LianmengId) : null;
|
|
config.JdLianmengId1 = jdLianmeng1 != null ? jdLianmeng1.Id : 0;
|
|
config.JdLianmengId2 = jdLianmeng2 != null ? jdLianmeng1.Id : 0;
|
|
config.JdLianmengNick1 = jdLianmeng1 != null ? jdLianmeng1.Showname : String.Empty;
|
|
config.JdLianmengNick2 = jdLianmeng2 != null ? jdLianmeng2.Showname : String.Empty;
|
|
config.JdMediaNick1 = jdMedia1 != null ? jdMedia1.AdzoneName : String.Empty;
|
|
config.JdMediaNick2 = jdMedia2 != null ? jdMedia2.AdzoneName : String.Empty;
|
|
config.JdMediaId1 = jdMedia1 != null ? jdMedia1.Id : 0;
|
|
config.JdMediaId2 = jdMedia2 != null ? jdMedia2.Id : 0;
|
|
|
|
|
|
var wphMedia1 = Robot.WphMediaId1 > 0 ? Db.GetWphMedia(Robot.WphMediaId1) : null;
|
|
var wphMedia2 = Robot.WphMediaId2 > 0 ? Db.GetWphMedia(Robot.WphMediaId2) : null;
|
|
var wphLianmeng1 = wphMedia1 != null ? Db.GetLianmeng(wphMedia1.LianmengId) : null;
|
|
var wphLianmeng2 = wphMedia1 != null ? Db.GetLianmeng(wphMedia2.LianmengId) : null;
|
|
config.WphLianmengId1 = wphLianmeng1 != null ? wphLianmeng1.Id : 0;
|
|
config.WphLianmengId2 = wphLianmeng2 != null ? wphLianmeng1.Id : 0;
|
|
config.WphLianmengNick1 = wphLianmeng1 != null ? wphLianmeng1.Showname : String.Empty;
|
|
config.WphLianmengNick2 = wphLianmeng2 != null ? wphLianmeng2.Showname : String.Empty;
|
|
config.WphMediaNick1 = wphMedia1 != null ? wphMedia1.AdzoneName : String.Empty;
|
|
config.WphMediaNick2 = wphMedia2 != null ? wphMedia2.AdzoneName : String.Empty;
|
|
config.WphMediaId1 = wphMedia1 != null ? wphMedia1.Id : 0;
|
|
config.WphMediaId2 = wphMedia2 != null ? wphMedia2.Id : 0;
|
|
|
|
|
|
var pddMedia1 = Robot.PddMediaId1 > 0 ? Db.GetPddMedia(Robot.PddMediaId1) : null;
|
|
var pddMedia2 = Robot.PddMediaId2 > 0 ? Db.GetPddMedia(Robot.PddMediaId2) : null;
|
|
var pddLianmeng1 = pddMedia1 != null ? Db.GetLianmeng(pddMedia1.LianmengId) : null;
|
|
var pddLianmeng2 = pddMedia2 != null ? Db.GetLianmeng(pddMedia2.LianmengId) : null;
|
|
config.PddLianmengId1 = pddLianmeng1 != null ? pddLianmeng1.Id : 0;
|
|
config.PddLianmengId2 = pddLianmeng2 != null ? pddLianmeng1.Id : 0;
|
|
config.PddLianmengNick1 = pddLianmeng1 != null ? pddLianmeng1.Showname : String.Empty;
|
|
config.PddLianmengNick2 = pddLianmeng2 != null ? pddLianmeng2.Showname : String.Empty;
|
|
config.PddMediaNick1 = pddMedia1 != null ? pddMedia1.AdzoneName : String.Empty;
|
|
config.PddMediaNick2 = pddMedia2 != null ? pddMedia2.AdzoneName : String.Empty;
|
|
config.PddMediaId1 = pddMedia1 != null ? pddMedia1.Id : 0;
|
|
config.PddMediaId2 = pddMedia2 != null ? pddMedia2.Id : 0;
|
|
|
|
|
|
var snLianmeng1 = Robot.SnLianmengId1 > 0 ? Db.GetLianmeng(Robot.SnLianmengId1) : null;
|
|
var snLianmeng2 = Robot.SnLianmengId2 > 0 ? Db.GetLianmeng(Robot.SnLianmengId2) : null;
|
|
config.SnLianmengId1 = snLianmeng1 != null ? snLianmeng1.Id : 0;
|
|
config.SnLianmengId2 = snLianmeng2 != null ? snLianmeng1.Id : 0;
|
|
config.SnLianmengNick1 = snLianmeng1 != null ? snLianmeng1.Showname : String.Empty;
|
|
config.SnLianmengNick2 = snLianmeng2 != null ? snLianmeng2.Showname : String.Empty;
|
|
|
|
|
|
|
|
var mtMedia1 = Robot.MtMediaId1 > 0 ? Db.GetMtMedia(Robot.MtMediaId1) : null;
|
|
var mtMedia2 = Robot.MtMediaId2 > 0 ? Db.GetMtMedia(Robot.MtMediaId2) : null;
|
|
var mtLianmeng1 = mtMedia1 != null ? Db.GetLianmeng(mtMedia1.LianmengId) : null;
|
|
var mtLianmeng2 = mtMedia2 != null ? Db.GetLianmeng(mtMedia2.LianmengId) : null;
|
|
config.MtLianmengId1 = mtLianmeng1 != null ? mtLianmeng1.Id : 0;
|
|
config.MtLianmengId2 = mtLianmeng2 != null ? mtLianmeng1.Id : 0;
|
|
config.MtLianmengNick1 = mtLianmeng1 != null ? mtLianmeng1.Showname : String.Empty;
|
|
config.MtLianmengNick2 = mtLianmeng2 != null ? mtLianmeng2.Showname : String.Empty;
|
|
config.MtMediaNick1 = mtMedia1 != null ? mtMedia1.AdzoneName : String.Empty;
|
|
config.MtMediaNick2 = mtMedia2 != null ? mtMedia2.AdzoneName : String.Empty;
|
|
config.MtMediaId1 = mtMedia1 != null ? mtMedia1.Id : 0;
|
|
config.MtMediaId2 = mtMedia2 != null ? mtMedia2.Id : 0;
|
|
|
|
|
|
config.ConfigRebateName = Robot.ConfigRebateId>0? Db.Queryable<ConfigData>().Where(f => f.Id == Robot.ConfigRebateId).Select(f=>f.Name).First():String.Empty;
|
|
config.ConfigReplyName = Robot.ConfigReplyId > 0 ? Db.Queryable<ConfigData>().Where(f => f.Id == Robot.ConfigReplyId).Select(f => f.Name).First() : String.Empty;
|
|
config.ConfibBaseName = Robot.ConfigBaseId > 0 ? Db.Queryable<ConfigData>().Where(f => f.Id == Robot.ConfigBaseId).Select(f => f.Name).First() : String.Empty;
|
|
config.ConfigBaseId = Robot.ConfigBaseId;
|
|
config.ConfigRebateId = Robot.ConfigRebateId;
|
|
config.ConfigReplyId = Robot.ConfigReplyId;
|
|
|
|
return PutData(config);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 保存配置
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[System.Web.Http.HttpPost, ErrorFilter]
|
|
public WebResult SetConfig()
|
|
{
|
|
var Id = GetInt("RobotId", true);
|
|
var Robot = Db.Queryable<Robot>().Single(f => f.Id == Id);
|
|
if (Robot == null) return PutData("保存失败,找不到该机器人信息!");
|
|
|
|
Robot.ConfigBaseId = GetInt("ConfigBaseId",true);
|
|
Robot.ConfigRebateId = GetInt("ConfigRebateId", true);
|
|
Robot.ConfigReplyId = GetInt("ConfigReplyId", true);
|
|
Robot.TbMediaId1 = GetInt("TbMediaId1",true);
|
|
Robot.TbMediaId2 = GetInt("TbMediaId2", true);
|
|
Robot.DyMediaId1 = GetInt("DyMediaId1", true);
|
|
Robot.DyMediaId2 = GetInt("DyMediaId2", true);
|
|
Robot.JdMediaId1 = GetInt("JdMediaId1", true);
|
|
Robot.JdMediaId1 = GetInt("JdMediaId2", true);
|
|
Robot.MtMediaId1 = GetInt("MtMediaId1", true);
|
|
Robot.MtMediaId2 = GetInt("MtMediaId2", true);
|
|
Robot.WphMediaId1 = GetInt("WphMediaId1", true);
|
|
Robot.WphMediaId2 = GetInt("WphMediaId2", true);
|
|
Robot.PddMediaId1 = GetInt("PddMediaId1", true);
|
|
Robot.PddMediaId2 = GetInt("PddMediaId2", true);
|
|
Robot.SnLianmengId1 = GetInt("SnLianmengId1", true);
|
|
Robot.SnLianmengId2 = GetInt("SnLianmengId2", true);
|
|
Db.Save(Robot);
|
|
Client.SendClientMsg(Robot.Id, DeviceMessageType.机器人配置更新, new { RobotId = Robot.Id }); return PutSuccess;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取联盟
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[System.Web.Http.HttpPost, ErrorFilter]
|
|
public WebResult GetLianmengs()
|
|
{
|
|
var Keyword = GetString("Keyword");
|
|
var LianmengType = GetEnum<LianmengType>("LianmengType",true);
|
|
var exp = Expressionable.Create<Lianmeng>();
|
|
if (!string.IsNullOrEmpty(Keyword))
|
|
{
|
|
exp.And(f => f.Nickname.Contains(Keyword) || f.Username.Contains(Keyword));
|
|
}
|
|
|
|
exp.And(f=>f.LianmengType == LianmengType);
|
|
var Lianmengs = Db.Queryable<Lianmeng>()
|
|
.Where(exp.ToExpression())
|
|
.Select(f => new NameShow { Id = f.Id, Name = f.Nickname })
|
|
.Take(20).
|
|
OrderBy(f => f.Id, OrderByType.Desc)
|
|
.ToList();
|
|
;
|
|
return PutData(Lianmengs);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取联盟
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[System.Web.Http.HttpPost, ErrorFilter]
|
|
public WebResult GetMedias()
|
|
{
|
|
var Keyword = GetString("Keyword");
|
|
var LianmengId = GetInt("LianmengId",true);
|
|
var lianmeng = Db.GetLianmeng(LianmengId);
|
|
if (lianmeng == null) return PutData("查询失败,当前联盟账号不存在!");
|
|
switch (lianmeng.LianmengType)
|
|
{
|
|
case Common.Models.Enums.LianmengType.淘宝联盟:
|
|
{
|
|
var exp = Expressionable.Create<TbMedia>();
|
|
exp.And(f => f.LianmengId == LianmengId);
|
|
if (!string.IsNullOrEmpty(Keyword))
|
|
{
|
|
exp.And(f => f.AdzoneName.Contains(Keyword) || f.Pid.Contains(Keyword));
|
|
}
|
|
exp.And(f=>f.IsRemove == false);
|
|
var Results = Db.Queryable<TbMedia>()
|
|
.Where(exp.ToExpression())
|
|
.Select(f => new NameShow { Id = f.Id, Name = f.AdzoneName })
|
|
.Take(20)
|
|
.OrderBy(f => f.Id, OrderByType.Desc)
|
|
.ToList();
|
|
return PutData(Results);
|
|
}
|
|
case Common.Models.Enums.LianmengType.京东联盟:
|
|
{
|
|
var exp = Expressionable.Create<JdMedia>();
|
|
if (!string.IsNullOrEmpty(Keyword))
|
|
{
|
|
exp.And(f => f.AdzoneName.Contains(Keyword));
|
|
}
|
|
exp.And(f => f.LianmengId == LianmengId);
|
|
var Results = Db.Queryable<JdMedia>()
|
|
.Where(exp.ToExpression())
|
|
.Select(f => new NameShow { Id = f.Id, Name = f.AdzoneName })
|
|
.Take(20)
|
|
.OrderBy(f => f.Id, OrderByType.Desc)
|
|
.ToList();
|
|
return PutData(Results);
|
|
}
|
|
|
|
case Common.Models.Enums.LianmengType.拼多多联盟:
|
|
{
|
|
var exp = Expressionable.Create<PddMedia>();
|
|
if (!string.IsNullOrEmpty(Keyword))
|
|
{
|
|
exp.And(f => f.AdzoneName.Contains(Keyword));
|
|
}
|
|
exp.And(f => f.LianmengId == LianmengId);
|
|
var Results = Db.Queryable<PddMedia>()
|
|
.Where(exp.ToExpression())
|
|
.Select(f => new NameShow { Id = f.Id, Name = f.AdzoneName })
|
|
.Take(20)
|
|
.OrderBy(f => f.Id, OrderByType.Desc)
|
|
.ToList();
|
|
return PutData(Results);
|
|
}
|
|
case Common.Models.Enums.LianmengType.唯品会联盟:
|
|
{
|
|
var exp = Expressionable.Create<WphMedia>();
|
|
if (!string.IsNullOrEmpty(Keyword))
|
|
{
|
|
exp.And(f => f.AdzoneName.Contains(Keyword));
|
|
}
|
|
exp.And(f => f.LianmengId == LianmengId);
|
|
var Results = Db.Queryable<WphMedia>()
|
|
.Where(exp.ToExpression())
|
|
.Select(f => new NameShow { Id = f.Id, Name = f.AdzoneName })
|
|
.Take(20)
|
|
.OrderBy(f => f.Id, OrderByType.Desc)
|
|
.ToList();
|
|
return PutData(Results);
|
|
}
|
|
|
|
case Common.Models.Enums.LianmengType.苏宁联盟:
|
|
return PutData("查询失败,苏宁无需设置推广位!");
|
|
|
|
case Common.Models.Enums.LianmengType.抖音联盟:
|
|
{
|
|
var exp = Expressionable.Create<DyMedia>();
|
|
if (!string.IsNullOrEmpty(Keyword))
|
|
{
|
|
exp.And(f => f.AdzoneName.Contains(Keyword));
|
|
}
|
|
exp.And(f => f.LianmengId == LianmengId);
|
|
var Results = Db.Queryable<DyMedia>()
|
|
.Where(exp.ToExpression())
|
|
.Select(f => new NameShow { Id = f.Id, Name = f.AdzoneName })
|
|
.Take(20)
|
|
.OrderBy(f => f.Id, OrderByType.Desc)
|
|
.ToList();
|
|
return PutData(Results);
|
|
}
|
|
case LianmengType.美团联盟:
|
|
{
|
|
var exp = Expressionable.Create<MtMedia>();
|
|
if (!string.IsNullOrEmpty(Keyword))
|
|
{
|
|
exp.And(f => f.AdzoneName.Contains(Keyword));
|
|
}
|
|
exp.And(f => f.LianmengId == LianmengId);
|
|
var Results = Db.Queryable<MtMedia>()
|
|
.Where(exp.ToExpression())
|
|
.Select(f => new NameShow { Id = f.Id, Name = f.AdzoneName })
|
|
.Take(20)
|
|
.OrderBy(f => f.Id, OrderByType.Desc)
|
|
.ToList();
|
|
return PutData(Results);
|
|
}
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return PutError;
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取配置表
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[System.Web.Http.HttpPost, ErrorFilter]
|
|
public WebResult GetConfigNames()
|
|
{
|
|
var Keyword = GetString("Keyword");
|
|
var ConfigType = GetEnum<ConfigType>("ConfigType", true);
|
|
var exp = Expressionable.Create<ConfigData>();
|
|
if (!string.IsNullOrEmpty(Keyword))
|
|
{
|
|
exp.And(f => f.Name.Contains(Keyword));
|
|
}
|
|
exp.And(f=>f.Type == ConfigType);
|
|
var result = Db.Queryable<ConfigData>()
|
|
.Where(exp.ToExpression())
|
|
.Select(f=>new NameShow{ Id = f.Id,Name = f.Name })
|
|
.Take(20)
|
|
.OrderBy(f=>f.Id, OrderByType.Desc)
|
|
.ToList();
|
|
return PutData(result);
|
|
}
|
|
}
|
|
}
|