207 lines
6.7 KiB
C#
207 lines
6.7 KiB
C#
|
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);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|