yz_server/Server/Controllers/OpenManagement/ComController.cs

241 lines
8.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}
}