yz_server/Server/Controllers/OpenManagement/ComController.cs

241 lines
8.9 KiB
C#
Raw Normal View History

2022-04-16 07:48:12 +00:00
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.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using System.Web.Http;
namespace Server.Controllers.OpenManagement
{
public class ComController:DefaultController
{
private const int DefaultMaxNumber = 20;
/// <summary>
/// 搜索机器人
/// </summary>
[HttpPost, ErrorFilter]
public WebResult SerchRobots()
{
var Keyword = GetString("Keyword");
var exp = Expressionable.Create<Robot>();
if (!string.IsNullOrEmpty(Keyword))
{
exp.And(f => f.Nickname.Contains(Keyword) || f.Username.Contains(Keyword));
}
var RobotType = GetInt("RobotType");
if (RobotType != 0)
{
exp.And(f => f.UserType == (UserType)RobotType);
}
var DataList = Db.Queryable<Robot>()
.Where(exp.ToExpression())
.OrderBy(f=>f.Id, OrderByType.Desc)
.Select(m => new { Id = m.Id, Nickname = m.Nickname, Username = m.Username })
.Take(DefaultMaxNumber)
.ToList();
return PutData(DataList);
}
/// <summary>
/// 搜索配置模板
/// </summary>
[HttpPost, ErrorFilter]
public WebResult SerchConfigs()
{
var Keyword = GetString("Keyword");
var exp = Expressionable.Create<ConfigData>();
if (!string.IsNullOrEmpty(Keyword))
{
exp.And(f => f.Name.Contains(Keyword) );
}
var RobotType = GetInt("ConfigType",true);
if (RobotType != 0)
{
exp.And(f => f.Type == (ConfigType)RobotType);
}
var DataList = Db.Queryable<ConfigData>()
.Where(exp.ToExpression())
.OrderBy(f => f.Id, OrderByType.Desc)
.Select(m => new { Id = m.Id, Name = m.Name})
.Take(DefaultMaxNumber)
.ToList();
return PutData(DataList);
}
#region
///// <summary>
///// 上传资源
///// </summary>
///// <returns></returns>
//[HttpPost, ErrorFilter]
//public WebResult Upload()
//{
// //Tabale 填充这个数据Resources
// ResourcesType fileType = ResourcesType.未知;
// ResourcesUse fileUse = ResourcesUse.未知;
// var remark = GetString("Remark", false);
// var id = GetLong("Id", false);
// var provider = new MultipartMemoryStreamProvider();
// //读取文件数据
// var r = Request.Content.ReadAsMultipartAsync(provider).Result;
// System.Net.Http.StreamContent item = null;
// foreach (var content in r.Contents)
// {
// switch (content.Headers.ContentDisposition.Name.Replace("\"", ""))
// {
// case "FileType":
// fileType = (ResourcesType)Enum.Parse(typeof(ResourcesType), content.ReadAsStringAsync().Result);
// break;
// case "FileUse":
// fileUse = (ResourcesUse)Enum.Parse(typeof(ResourcesUse), content.ReadAsStringAsync().Result);
// break;
// case "Remark":
// remark = content.ReadAsStringAsync().Result;
// break;
// case "File":
// item = content as System.Net.Http.StreamContent;
// break;
// }
// }
// //var item = provider.Contents[0];
// if (string.IsNullOrWhiteSpace(item.Headers.ContentDisposition.FileName))
// {
// return PutData("文件名不存在");
// }
// string upfileName = item.Headers.ContentDisposition.FileName.Replace("\"", "");
// var resources = this.Db.Queryable<Resources>().Where(w => w.Id == id).First();
// if (id == 0)
// {
// resources = new Resources();
// resources.Remark = remark;
// resources.CreateTime = DateTime.Now;
// resources.FileType = fileType;
// resources.FileUse = fileUse;
// resources.Filename = upfileName;
// resources.UpdateTime = DateTime.Now;
// resources.FileId = Guid.NewGuid().ToString("N");
// }
// else
// {
// if (resources == null)
// {
// return PutData("更新失败,数据不存在。");
// }
// resources.Remark = remark;
// resources.FileType = fileType;
// resources.FileUse = fileUse;
// resources.Filename = upfileName;
// resources.UpdateTime = DateTime.Now;
// resources.FileId = Guid.NewGuid().ToString("N");
// }
// using (var ms = item.ReadAsStreamAsync().Result)
// {
// if (ms.Length <= 0)
// {
// return PutData("文件长度为空");
// }
// if (resources.Id == 0)
// {
// this.Db.Insertable(resources).ExecuteReturnEntity();
// }
// else
// {
// this.Db.Updateable(resources).ExecuteCommand();
// //删除老文件
// //var oldfileName = resources.FileId + Path.GetExtension(resources.Filename);
// var oldfileName = resources.Filename;
// var oldpath = CsharpHttpHelper.HttpExtend.MapFile(oldfileName, "网站\\resources");
// if (File.Exists(oldpath))
// {
// File.Delete(oldpath);
// }
// }
// //var fileName = resources.FileId + Path.GetExtension(upfileName);
// var fileName = resources.Filename;
// var path = CsharpHttpHelper.HttpExtend.MapFile(fileName, "网站\\resources");
// using (var filems = File.OpenWrite(path))
// {
// ms.CopyTo(filems);
// }
// return new WebResult()
// {
// Ok = true,
// Data = resources
// };
// }
//}
#endregion
private const string defaultResourcesPath = "网站\\resources";
[HttpPost, ErrorFilter]
public WebResult UploadFile()
{
Resources resources = new Resources();
//读取文件数据
var provider = new MultipartMemoryStreamProvider();
var r = Request.Content.ReadAsMultipartAsync(provider).Result;
System.Net.Http.StreamContent item = null;
foreach (var content in r.Contents)
{
switch (content.Headers.ContentDisposition.Name.Replace("\"", ""))
{
case "FileType":
resources.FileType = (ResourcesType)Enum.Parse(typeof(ResourcesType), content.ReadAsStringAsync().Result);
break;
case "FileUse":
resources.FileUse = (ResourcesUse)Enum.Parse(typeof(ResourcesUse), content.ReadAsStringAsync().Result);
break;
case "File":
item = content as System.Net.Http.StreamContent;
break;
}
}
using (var ms = item.ReadAsStreamAsync().Result)
{
resources.FileId = Guid.NewGuid().ToString("N");
resources.UpdateTime = DateTime.Now;
resources.CreateTime = DateTime.Now;
resources.Filename = item.Headers.ContentDisposition.FileName.Replace("\"", "");
//以随机数为文件名,防止同名文件被覆盖
var fileName = Util.MapFile(resources.FileId, defaultResourcesPath);
try
{
using (var filems = File.OpenWrite(fileName))
{
ms.CopyTo(filems);
}
}
catch (Exception ex)
{
//写入失败,删除无效文件
Util.DeleteFile(fileName);
return PutData(ex);
}
resources.Id = Db.Insertable(resources).ExecuteReturnIdentity();
}
return PutData(resources);
}
}
}