yz_server/Server/Controllers/MemberManagement/ReminderController.cs

127 lines
4.1 KiB
C#
Raw Normal View History

2022-04-16 07:48:12 +00:00
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
{
/// <summary>
/// 获取机器人信息
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult GetRobotInfo()
{
var Keyword = GetString("Keyword");
var exp = Expressionable.Create<Robot>();
if (!string.IsNullOrEmpty(Keyword))
{
exp.And(f => f.Nickname.Contains(Keyword));
}
var robotInfos = Db.Queryable<Robot>().Where(exp.ToExpression())
.Select(m => new RobotInfo { RobotId = m.Id, RobotName = m.Nickname }).Take(20).ToList();
return PutData(robotInfos);
}
/// <summary>
/// 查询催单记录
/// </summary>
/// <returns></returns>
[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>("ReminderStatus");//催单状态分组ID 1:未催单 2催单中 3已催单 4已下单
var KeywordType = GetInt("KeywordType");//昵称搜索方式ID 1.用户昵称, 2.用户名 3.用户ID
var exp = Expressionable.Create<Reminder, User, Robot>();
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<Reminder>()
.LeftJoin<User>((a, u) => a.UserId == u.Id)
.LeftJoin<Robot>((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<ReminderShow>(DataList, tNumber, PageSize, PageIndex);
return PutData(res);
}
/// <summary>
/// 删除催单记录
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult DelReminder()
{
var Id = GetInt("Id", true);
var reminder = Db.Queryable<Reminder>().Single(r => r.Id == Id);
if (reminder == null)
return PutData("删除失败,没有此催单记录");
Db.Deleteable(reminder).ExecuteCommand();
return PutSuccess;
}
}
}