241 lines
8.9 KiB
C#
241 lines
8.9 KiB
C#
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);
|
||
}
|
||
}
|
||
}
|