using Common.Models.Enums;
using Common.Models.UnqTables;
using Server.MyClass.Views;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
namespace Server.Controllers.MemberManagement
{
public class ReminderController : DefaultController
{
///
/// 获取机器人信息
///
///
[HttpPost, ErrorFilter]
public WebResult GetRobotInfo()
{
var Keyword = GetString("Keyword");
var exp = Expressionable.Create();
if (!string.IsNullOrEmpty(Keyword))
{
exp.And(f => f.Nickname.Contains(Keyword));
}
var robotInfos = Db.Queryable().Where(exp.ToExpression())
.Select(m => new RobotInfo { RobotId = m.Id, RobotName = m.Nickname }).Take(20).ToList();
return PutData(robotInfos);
}
///
/// 查询催单记录
///
///
[HttpPost, ErrorFilter]
public WebResult GetReminder()
{
var Keyword = GetString("Keyword");
var PageIndex = GetInt("PageIndex", true);
var PageSize = GetInt("PageSize", true);
if (PageSize > 100) PageSize = 100;
var tNumber = 0;
var RobotId = GetInt("RobotId");//机器人Id
var ReminderStatus = GetEnum("ReminderStatus");//催单状态分组ID 1:未催单 2:催单中 3:已催单 4:已下单
var KeywordType = GetInt("KeywordType");//昵称搜索方式ID :1.用户昵称, 2.用户名 3.用户ID
var exp = Expressionable.Create();
if (RobotId > 0)
exp.And((a, u, r) => r.Id == RobotId);
if (ReminderStatus != 0)
exp.And((a, u, r) => a.RemindStatus == ReminderStatus);
if (!string.IsNullOrEmpty(Keyword))
{
/*
昵称搜索方式:1.用户昵称, 2.用户名 3.用户ID
*/
if (KeywordType == 1)
exp.And((a, u, r) => u.NickName.Contains(Keyword));
else if (KeywordType == 2)
{
exp.And((a, u, r) => u.Username.Contains(Keyword));
}
else if (KeywordType == 3)
{
exp.And((a, u, r) => a.UserId == Convert.ToInt32(Keyword));
}
}
var DataList = Db.Queryable()
.LeftJoin((a, u) => a.UserId == u.Id)
.LeftJoin((a, u, r) => a.RobotId == r.Id)
.Where(exp.ToExpression())
.Select((a, u, r) => new ReminderShow
{
Id = a.Id,
UserId = a.UserId,
Username = u.Username,
Nickname = u.NickName,
RobotId = r.Id,
RobotName = r.Nickname,
ReminderType = a.ReminderType,
FirstRemind = a.FirstRemind,
SecRemind = a.SecRemind,
THirRemind = a.THirRemind,
RemindStatus = a.RemindStatus,
})
.ToPageList(PageIndex, PageSize, ref tNumber);
var res = new PageResult(DataList, tNumber, PageSize, PageIndex);
return PutData(res);
}
///
/// 删除催单记录
///
///
[HttpPost, ErrorFilter]
public WebResult DelReminder()
{
var Id = GetInt("Id", true);
var reminder = Db.Queryable().Single(r => r.Id == Id);
if (reminder == null)
return PutData("删除失败,没有此催单记录");
Db.Deleteable(reminder).ExecuteCommand();
return PutSuccess;
}
}
}