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