yz_server/Server/Controllers/OnlineTools/PyqController.cs

207 lines
6.7 KiB
C#
Raw Permalink Normal View History

2022-04-16 07:48:12 +00:00
using Common.Models.Enums;
using Common.Models.JsonModels;
using Common.Models.UnqTables;
using Newtonsoft.Json;
using Server.MyClass.Views;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web.Http;
namespace Server.Controllers.OnlineTools
{
public class PyqController : DefaultController
{
/// <summary>
/// 获取机器人信息
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult GetRobotInfo()
{
var PageIndex = GetInt("PageIndex", true);
var PageSize = GetInt("PageSize", true);
var tNumber = 0;
var Keyword = GetString("Keyword");
var exp = Expressionable.Create<Robot>();
if (!string.IsNullOrEmpty(Keyword))
{
exp.And(f => f.Nickname.Contains(Keyword));
}
var DataList = Db.Queryable<Robot>().Where(exp.ToExpression())
.Select(m => new RobotInfo { RobotId = m.Id, RobotName = m.Nickname })
.ToPageList(PageIndex, PageSize, ref tNumber);
var res = new PageResult<RobotInfo>(DataList, tNumber, PageSize, PageIndex);
return PutData(res);
}
/// <summary>
/// 上传图片
/// </summary>
/// <returns></returns>
public WebResult UploadImgUrl()
{
var Img = GetString("Img", true);
var Name = GetString("Name", true);
var fileName = Guid.NewGuid().ToString("N") + Path.GetExtension(Name);
var path = CsharpHttpHelper.HttpExtend.MapFile(fileName, "网站\\Cache\\Images");
Img = Img.Replace("data:image/jpeg;base64,", "");
byte[] bytes = Convert.FromBase64String(Img);
File.WriteAllBytes(path, bytes);
return PutData(new { url = $"http://{Client.InternetIP}/Cache/Images/{fileName}" });
}
/// <summary>
/// 删除图片
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult DeleteImage()
{
var ImgUrl = GetString("ImgUrl", true);
ImgUrl = ImgUrl.Replace('/', '\\');
var reg = Regex.Match(ImgUrl, @"(Cache[\w\W]+)");
if (reg.Success)
{
var path = CsharpHttpHelper.HttpExtend.MapPath("网站\\") + reg.Groups[1].Value;
if (File.Exists(path))
{
File.Delete(path);
return PutSuccess;
}
}
return PutData("删除失败,此文件不存在或无法识别路径");
}
/// <summary>
/// 添加到发布朋友圈
/// </summary>
/// <returns></returns>
public WebResult AddPyqPublish()
{
var Name = GetString("Name");
var ResIds = GetIntList("ResIds");
var Copywriting = GetString("Copywriting");
var Comment = GetString("Comment");
var SendTime = GetTime("SendTime");
var RobotIds = GetIntList("RobotIds");
var IsSendAll = GetBoolean("IsSendAll");
if (SendTime == DateTime.MinValue)
SendTime = DateTime.Now;
if (IsSendAll)
{
RobotIds.Clear();
RobotIds = Db.Queryable<Robot>().Select(f => f.Id).ToList();
}
else if (RobotIds.Count <= 0) return PutData("添加失败,至少需要选择一个机器人");
if (RobotIds.Count == 0)
{
return PutData("添加失败,暂未发现有任何可用的机器人");
}
foreach (var RobotId in RobotIds)
{
var publish = new PyqPublish()
{
Name = Name,
SendTime = SendTime,
Comment = Comment,
Copywriting = Copywriting,
ResIds = ResIds.ToArray(),
CreateTime = DateTime.Now,
RobotId = RobotId
};
publish.Id = Db.Insertable(publish).ExecuteReturnIdentity();
Client.SendClientMsg(RobotId, DeviceMessageType., new { Id = publish.Id });
}
return PutSuccess;
}
/// <summary>
/// 删除朋友圈任务
/// </summary>
/// <returns></returns>
public WebResult DelSendRecord()
{
var Id = GetInt("Id", true);
var pyqPublish = Db.Queryable<PyqPublish>().First(p => p.Id == Id);
if (pyqPublish != null)
{
Client.SendClientMsg(pyqPublish.RobotId, DeviceMessageType., new { Id = Id });
return Db.Deleteable(pyqPublish).ExecuteCommandHasChange() ? PutSuccess : PutError;
}
return PutError;
}
/// <summary>
/// 查询发送记录
/// </summary>
/// <returns></returns>
[HttpPost, ErrorFilter]
public WebResult GetSendRecord()
{
var RobotId = GetInt("RobotId");
var Keyword = GetString("Keyword");
var exp = Expressionable.Create<PyqPublish>();
//var pp = Db.Queryable<PyqPublish>().First();
if (RobotId > 0)
exp.And(f => f.RobotId == RobotId);
if (!string.IsNullOrEmpty(Keyword))
exp.And(f => f.Name.Contains(Keyword));
var PageIndex = GetInt("PageIndex", true);
var PageSize = GetInt("PageSize", true);
var tNumber = 0;
var DataList = Db.Queryable<PyqPublish>()
.LeftJoin<Robot>((f, r) => f.RobotId == r.Id)
.Where(exp.ToExpression())
.Select((f, r) => new PyqPublishShow
{
Id = f.Id,
Name = f.Name,
RobotId = f.RobotId,
RobotNickname = r.Nickname,
SendTime = f.SendTime,
IsSend = f.IsSend,
RobotUserName = r.Username,
UserType = r.UserType,
ResIds = f.ResIds,
Comment = f.Comment,
Copywriting = f.Copywriting
})
.ToPageList(PageIndex, PageSize, ref tNumber);
var res = new PageResult<PyqPublishShow>(DataList, tNumber, PageSize, PageIndex);
return PutData(res);
}
}
}