Web API合并,破坏性更新MVC ControllerBase改成BaseController

This commit is contained in:
12888491 2022-10-28 11:28:07 +08:00
parent 2d1d610d31
commit 51c89ecae3
116 changed files with 2176 additions and 1749 deletions

View File

@ -21,8 +21,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "04 Web 应用程序", "04 W
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WaterCloud.CodeGenerator", "WaterCloud.CodeGenerator\WaterCloud.CodeGenerator.csproj", "{25C1E690-0B45-4994-87C0-F1997F4227A6}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WaterCloud.WebApi", "WaterCloud.WebApi\WaterCloud.WebApi.csproj", "{59375491-D3CF-4963-B36C-7598CAF8C5F9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WaterCloud.Service", "WaterCloud.Service\WaterCloud.Service.csproj", "{6CABCCC1-E43B-4A57-A767-7D74D8728E8C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WaterCloud.DingTalk", "WaterCloud.DingTalkService\WaterCloud.DingTalk.csproj", "{D3691FAA-877F-43A6-90AA-B79542E1DF80}"
@ -53,10 +51,6 @@ Global
{25C1E690-0B45-4994-87C0-F1997F4227A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{25C1E690-0B45-4994-87C0-F1997F4227A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{25C1E690-0B45-4994-87C0-F1997F4227A6}.Release|Any CPU.Build.0 = Release|Any CPU
{59375491-D3CF-4963-B36C-7598CAF8C5F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{59375491-D3CF-4963-B36C-7598CAF8C5F9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{59375491-D3CF-4963-B36C-7598CAF8C5F9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{59375491-D3CF-4963-B36C-7598CAF8C5F9}.Release|Any CPU.Build.0 = Release|Any CPU
{6CABCCC1-E43B-4A57-A767-7D74D8728E8C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6CABCCC1-E43B-4A57-A767-7D74D8728E8C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6CABCCC1-E43B-4A57-A767-7D74D8728E8C}.Release|Any CPU.ActiveCfg = Release|Any CPU
@ -75,7 +69,6 @@ Global
{586E88DF-7EFA-4281-9371-EA45B877C9A4} = {DB605620-7CB6-4064-B509-C55CDEA50025}
{40732569-0516-4E72-9475-06A217998944} = {EFA98BE7-DCF3-475E-8783-B56ECFF68DD3}
{25C1E690-0B45-4994-87C0-F1997F4227A6} = {DB605620-7CB6-4064-B509-C55CDEA50025}
{59375491-D3CF-4963-B36C-7598CAF8C5F9} = {C62E4ABA-29D7-4A0C-BDAA-D4EAB43859C1}
{6CABCCC1-E43B-4A57-A767-7D74D8728E8C} = {DB3B0F56-4245-4ACA-81C2-C67F2A28DFD3}
{D3691FAA-877F-43A6-90AA-B79542E1DF80} = {DB3B0F56-4245-4ACA-81C2-C67F2A28DFD3}
EndGlobalSection

View File

@ -18,35 +18,14 @@ namespace WaterCloud.Code.Model
/// 允许一个用户在多个电脑同时登录
/// </summary>
public bool LoginMultiple { get; set; }
public string LoginProvider { get; set; }
/// <summary>
/// 数据库超时间(秒)
/// </summary>
public int CommandTimeout { get; set; }
/// <summary>
/// Snow Flake Worker Id
/// </summary>
public int SnowFlakeWorkerId { get; set; }
/// <summary>
/// api地址
/// </summary>
public string ApiSite { get; set; }
/// <summary>
/// 允许跨域的站点
/// </summary>
public string AllowCorsSite { get; set; }
/// <summary>
/// 网站虚拟目录
/// </summary>
public string VirtualDirectory { get; set; }
public string DBProvider { get; set; }
public string DBConnectionString { get; set; }
public string DBCommandTimeout { get; set; }
/// <summary>
/// 数据库备份路径
/// </summary>
public string DBBackup { get; set; }
public string CacheProvider { get; set; }
public string HandleLogProvider { get; set; }
@ -59,13 +38,8 @@ namespace WaterCloud.Code.Model
//缓存过期时间
public int LoginExpire { get; set; }
public string HomePage { get; set; }
public string MainProgram { get; set; }
public bool? LocalLAN { get; set; }
/// <summary>
/// 雪花id配置
/// </summary>
public int WorkId { get; set; }
/// <summary>
/// 是否重置密码
/// </summary>
public bool? ReviseSysem { get; set; }

View File

@ -14,8 +14,6 @@ namespace WaterCloud.Code
{
public class OperatorProvider
{
//登录信息保存方式
private string LoginProvider = GlobalContext.SystemConfig.LoginProvider;
//是否允许一个账户在多处登录
private bool LoginMultiple = GlobalContext.SystemConfig.LoginMultiple;
//缓存过期时间
@ -45,79 +43,51 @@ namespace WaterCloud.Code
private string LoginBoardMarkKey = "watercloud_BoardMark";
public string GetProvider(string key)
{
switch (LoginProvider)
{
case Define.PROVIDER_COOKIE:
return WebHelper.GetCookie(key).ToString();
case Define.PROVIDER_SESSION:
var token = GetToken();
if (!string.IsNullOrEmpty(token))
return token;
token = WebHelper.GetCookie(key).ToString();
if (!string.IsNullOrEmpty(token))
return token;
return WebHelper.GetSession(key).ToString();
case Define.PROVIDER_WEBAPI:
return GetToken();
default:
return GetToken();
}
}
public void SetProvider(string key, string value)
{
switch (LoginProvider)
{
case Define.PROVIDER_COOKIE:
WebHelper.WriteCookie(key, value);
break;
case Define.PROVIDER_SESSION:
WebHelper.WriteSession(key, value);
break;
case Define.PROVIDER_WEBAPI:
break;
default:
break;
}
}
public string GetToken()
{
try
{
if (GlobalContext.ServiceProvider == null)
{
return null;
}
if (GlobalContext.ServiceProvider.GetService<IHttpContextAccessor>() == null)
if (GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>().HttpContext == null)
{
return null;
}
//查请求头
string token = GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>()?.HttpContext.Request.Headers[GlobalContext.SystemConfig.TokenName].ParseToString();
string token = GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>().HttpContext.Request.Headers[GlobalContext.SystemConfig.TokenName].ParseToString();
if (!String.IsNullOrEmpty(token)) return token;
//查参数
token = GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>()?.HttpContext.Request.Query[GlobalContext.SystemConfig.TokenName];
token = GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>().HttpContext.Request.Query[GlobalContext.SystemConfig.TokenName];
if (!String.IsNullOrEmpty(token)) return token;
//查cookies
string cookie = GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>()?.HttpContext.Request.Cookies[GlobalContext.SystemConfig.TokenName];
string cookie = GlobalContext.ServiceProvider?.GetService<IHttpContextAccessor>().HttpContext.Request.Cookies[GlobalContext.SystemConfig.TokenName];
return cookie == null ? string.Empty : cookie;
}
catch (Exception)
{
return null;
}
}
public void RemoveProvider(string key)
{
switch (LoginProvider)
{
case Define.PROVIDER_COOKIE:
WebHelper.RemoveCookie(key);
break;
case Define.PROVIDER_SESSION:
WebHelper.RemoveSession(key);
break;
case Define.PROVIDER_WEBAPI:
break;
default:
break;
}
}
public OperatorModel GetCurrent()
{
@ -208,17 +178,16 @@ namespace WaterCloud.Code
/// <param name="userEntity">用户</param>
/// <param name="loginMark">设备标识uid</param>
/// <param name="facilityMark">设备类型</param>
/// <param name="cookie">是否保存cookie默认是</param>
/// <returns></returns>
public async Task<string> AddLoginUser(OperatorModel operatorModel, string loginMark, string facilityMark, bool cookie = true)
public async Task<string> AddLoginUser(OperatorModel operatorModel, string loginMark, string facilityMark)
{
string token = Guid.NewGuid().ToString();
try
{
// 填写登录信息
operatorModel.LoginToken = token;
//cookid登录信息更新
if (cookie)
//登录信息更新
if (string.IsNullOrEmpty(loginMark))
{
string cookieMark = GetProvider(LoginUserMarkKey);
if (string.IsNullOrEmpty(cookieMark))
@ -235,6 +204,7 @@ namespace WaterCloud.Code
else
{
operatorModel.loginMark = loginMark;
RemoveProvider(LoginUserMarkKey);
}
//redis 登录token列表更新
Dictionary<string, string> tokenMarkList = await CacheHelper.Get<Dictionary<string, string>>(cacheKeyToken + operatorModel.UserId);
@ -301,7 +271,7 @@ namespace WaterCloud.Code
Dictionary<string, string> tokenMarkList =await CacheHelper.Get<Dictionary<string, string>>(cacheKeyToken + operatorInfo.UserId);
tokenMarkList.Remove(loginMark);
await CacheHelper.Remove(cacheKeyOperator + loginMark);
if (operatorInfo.LoginToken == token|| LoginProvider == Define.PROVIDER_WEBAPI)
if (operatorInfo.LoginToken == token || facilityMark == "api_")
{
await CacheHelper.Remove(cacheKeyOperator + facilityMark + operatorInfo.UserId);
}
@ -353,7 +323,7 @@ namespace WaterCloud.Code
if (operatorInfo != null)
{
Dictionary<string, string> tokenMarkList = await CacheHelper.Get<Dictionary<string, string>>(cacheKeyToken + operatorInfo.UserId);
if ((token == operatorInfo.LoginToken || LoginProvider == Define.PROVIDER_WEBAPI)&& tokenMarkList.ContainsKey(operatorInfo.loginMark) && tokenMarkList[operatorInfo.loginMark] == operatorInfo.LoginToken)
if ((token == operatorInfo.LoginToken || facilityMark == "api_") && tokenMarkList.ContainsKey(operatorInfo.loginMark) && tokenMarkList[operatorInfo.loginMark] == operatorInfo.LoginToken)
{
////账号被顶(排除admin)
if (!LoginMultiple && !operatorInfo.IsSystem && operatorInfo.LoginToken != await CacheHelper.Get<string>(cacheKeyOperator + facilityMark + operatorInfo.UserId))

View File

@ -149,16 +149,13 @@ namespace WaterCloud.Service.InfoManage
}
if (isSendDing)
{
WorkMessageApi.SendDingMsg(dingdingtoken, dingconfig.F_AgentId, list, messageEntity.F_MessageInfo, "您有一条新消息", dingconfig.F_Url);
await WorkMessageApi.SendDingMsg(dingdingtoken, dingconfig.F_AgentId, list, messageEntity.F_MessageInfo, "您有一条新消息", dingconfig.F_Url);
}
//通过http发送即时消息
messageEntity.companyId = currentuser.CompanyId;
var mouduleName = ReflectionHelper.GetModuleName(1);
var module = uniwork.IQueryable<ModuleEntity>(a => a.F_EnCode == mouduleName).FirstOrDefault();
var url = module.F_UrlAddress.Substring(0, module.F_UrlAddress.Length - 5) + "SendWebSocketMsg";
HttpContent httpContent = new StringContent(messageEntity.ToJson(), Encoding.UTF8);
httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
_httpClientFactory.CreateClient().PostAsync(GlobalContext.SystemConfig.MainProgram + url, httpContent);
await SendWebSocketMsg(messageEntity);
}
public async System.Threading.Tasks.Task SubmitFormAutoSend(MessageEntity entity, bool isWork = false, bool isSendDing = true)
@ -204,16 +201,13 @@ namespace WaterCloud.Service.InfoManage
}
if (isSendDing)
{
WorkMessageApi.SendDingMsgAutoSend(dingdingtoken, dingconfig.F_AgentId, list, messageEntity.F_MessageInfo, "您有一条新消息", dingconfig.F_Url);
await WorkMessageApi.SendDingMsgAutoSend(dingdingtoken, dingconfig.F_AgentId, list, messageEntity.F_MessageInfo, "您有一条新消息", dingconfig.F_Url);
}
//通过http发送即时消息
messageEntity.companyId = currentuser.CompanyId;
var mouduleName = ReflectionHelper.GetModuleName(1);
var module = uniwork.IQueryable<ModuleEntity>(a => a.F_EnCode == mouduleName).FirstOrDefault();
var url = module.F_UrlAddress.Substring(0, module.F_UrlAddress.Length - 5) + "SendWebSocketMsg";
HttpContent httpContent = new StringContent(messageEntity.ToJson(), Encoding.UTF8);
httpContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
_httpClientFactory.CreateClient().PostAsync(GlobalContext.SystemConfig.MainProgram + url, httpContent);
await SendWebSocketMsg(messageEntity);
}
public async System.Threading.Tasks.Task SendWebSocketMsg(MessageEntity messageEntity)

View File

@ -10,6 +10,8 @@ using WaterCloud.Domain.MaterialManage;
using System.Net.Http;
using WaterCloud.Domain.ProcessManage;
using WaterCloud.Domain.EquipmentManage;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
namespace WaterCloud.Service.QualityManage
{
@ -421,7 +423,7 @@ namespace WaterCloud.Service.QualityManage
{
if (entity.F_MaterialType==0)
{
area = await uniwork.FindEntity<AreaEntity>(a => a.F_AreaCode == "原材料仓库");
area = await uniwork.FindEntity<AreaEntity>(a => a.F_AreaType == 0);
}
else
{
@ -455,21 +457,6 @@ namespace WaterCloud.Service.QualityManage
await uniwork.Insert(entity);
uniwork.Commit();
}
public async Task<HttpResponseMessage> PhotoSaveIndex(Dictionary<string, byte[]> dict)
{
var content = new MultipartFormDataContent();
foreach (KeyValuePair<string, byte[]> k in dict)
{
content.Add(new ByteArrayContent(k.Value), "file", k.Key);
}
return await _httpClientFactory.CreateClient().PostAsync(GlobalContext.SystemConfig.MainProgram + "/QualityManage/ScapMaterial/PhotoSaveIndex",
content);
}
#endregion
}

View File

@ -58,7 +58,7 @@ namespace WaterCloud.Service.SystemOrganize
}
else
{
cachedata = cachedata.Where(t => t.F_Id == GlobalContext.SystemConfig.SysemMasterProject).ToList();
cachedata = cachedata.ToList();
}
if (cachedata.Count == 0)
{

View File

@ -18,8 +18,6 @@ namespace WaterCloud.Service.SystemSecurity
{
public class LogService : DataFilterService<LogEntity>, IDenpendency
{
//登录信息保存方式
private string LoginProvider = GlobalContext.SystemConfig.LoginProvider;
private string HandleLogProvider = GlobalContext.SystemConfig.HandleLogProvider;
private ModuleService moduleservice;
//获取类名

View File

@ -19,7 +19,7 @@ namespace WaterCloud.Web.Areas.ClassTask.Controllers
/// 描 述:待执行任务控制器类
/// </summary>
[Area("ClassTask")]
public class ControlJobController : ControllerBase
public class ControlJobController : BaseController
{
public ControlJobService _service {get;set;}
public StorageService _storageService {get;set; }

View File

@ -19,7 +19,7 @@ namespace WaterCloud.Web.Areas.ClassTask.Controllers
/// 描 述:待执行任务控制器类
/// </summary>
[Area("ClassTask")]
public class ControlJobPlanerController : ControllerBase
public class ControlJobPlanerController : BaseController
{
public ControlJobPlanerService _service {get;set;}
#region

View File

@ -19,7 +19,7 @@ namespace WaterCloud.Web.Areas.ClassTask.Controllers
/// 描 述:信息设置控制器类
/// </summary>
[Area("ClassTask")]
public class ControlJobUserBandingController : ControllerBase
public class ControlJobUserBandingController : BaseController
{
public ControlJobUserBandingService _service {get;set;}
public ItemsDataService _typeService { get; set; }

View File

@ -14,7 +14,7 @@ namespace WaterCloud.Web.Areas.DingTalkManage.Controllers
/// 描 述:应用配置控制器类
/// </summary>
[Area("DingTalkManage")]
public class DingTalkConfigController : ControllerBase
public class DingTalkConfigController : BaseController
{
public DingTalkConfigService _service {get;set;}

View File

@ -14,7 +14,7 @@ namespace WaterCloud.Web.Areas.EquipmentManage.Controllers
/// 描 述:模具物料绑定控制器类
/// </summary>
[Area("EquipmentManage")]
public class EqpAreaController : ControllerBase
public class EqpAreaController : BaseController
{
public EqpAreaService _service {get;set;}

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.EquipmentManage.Controllers
/// 描 述:设备点检项目控制器类
/// </summary>
[Area("EquipmentManage")]
public class EqpPqcCheckItemController : ControllerBase
public class EqpPqcCheckItemController : BaseController
{
public EqpPqcCheckItemService _service { get; set; }
public EquipmentService _eqpservice { get; set; }

View File

@ -12,7 +12,7 @@ using WaterCloud.Service.EquipmentManage;
namespace WaterCloud.Web.Areas.EquipmentManage.Controllers
{
[Area("EquipmentManage")]
public class EqpPqcCheckMDController : ControllerBase
public class EqpPqcCheckMDController : BaseController
{
public EquipmentService _eqpservice { get; set; }
public EqpPqcCheckMDService _service { get; set; }

View File

@ -18,7 +18,7 @@ namespace WaterCloud.Web.Areas.EquipmentManage.Controllers
/// 描 述:设备维修记录表控制器类
/// </summary>
[Area("EquipmentManage")]
public class EqpRepairController : ControllerBase
public class EqpRepairController : BaseController
{
public EqpRepairService _service {get;set;}
public UserService _userService { get; set; }

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.EquipmentManage.Controllers
/// 描 述:设备停机控制器类
/// </summary>
[Area("EquipmentManage")]
public class EqpStopRecordController : ControllerBase
public class EqpStopRecordController : BaseController
{
public EqpStopRecordService _service {get;set;}

View File

@ -14,7 +14,7 @@ namespace WaterCloud.Web.Areas.EquipmentManage.Controllers
/// 描 述:模具物料绑定控制器类
/// </summary>
[Area("EquipmentManage")]
public class EqpUserController : ControllerBase
public class EqpUserController : BaseController
{
public EqpUserService _service {get;set;}

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.EquipmentManage.Controllers
/// 描 述:设备清单控制器类
/// </summary>
[Area("EquipmentManage")]
public class EquipmentController : ControllerBase
public class EquipmentController : BaseController
{
public EquipmentService _service {get;set;}
public ItemsDataService _itemsService {get;set; }

View File

@ -19,7 +19,7 @@ namespace WaterCloud.Web.Areas.FileManage.Controllers
/// 描 述:文件管理控制器类
/// </summary>
[Area("FileManage")]
public class UploadfileController : ControllerBase
public class UploadfileController : BaseController
{
public UploadfileService _service {get;set;}

View File

@ -14,7 +14,7 @@ namespace WaterCloud.Web.Areas.FlowManage.Controllers
/// 描 述:我的流程控制器类
/// </summary>
[Area("FlowManage")]
public class FlowinstanceController : ControllerBase
public class FlowinstanceController : BaseController
{
public FlowinstanceService _service {get;set;}

View File

@ -16,7 +16,7 @@ namespace WaterCloud.Web.Areas.InfoManage.Controllers
/// 描 述:通知管理控制器类
/// </summary>
[Area("InfoManage")]
public class MessageController : ControllerBase
public class MessageController : BaseController
{
public MessageService _service {get;set;}

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.MaterialManage.Controllers
/// 描 述:库区管理控制器类
/// </summary>
[Area("MaterialManage")]
public class AreaController : ControllerBase
public class AreaController : BaseController
{
public AreaService _service {get;set;}

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.MaterialManage.Controllers
/// 描 述Bom结构控制器类
/// </summary>
[Area("MaterialManage")]
public class BomInfoController : ControllerBase
public class BomInfoController : BaseController
{
public BomInfoService _service {get;set;}

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.MaterialManage.Controllers
/// 描 述:入库管理控制器类
/// </summary>
[Area("MaterialManage")]
public class InStorageController : ControllerBase
public class InStorageController : BaseController
{
public InStorageService _service {get;set;}
[HttpGet]

View File

@ -20,7 +20,7 @@ namespace WaterCloud.Web.Areas.MaterialManage.Controllers
/// 描 述:库位管理控制器类
/// </summary>
[Area("MaterialManage")]
public class LocationController : ControllerBase
public class LocationController : BaseController
{
public LocationService _service {get;set;}

View File

@ -15,7 +15,7 @@ namespace WaterCloud.Web.Areas.EquipmentManage.Controllers
/// 描 述:模具物料绑定控制器类
/// </summary>
[Area("MaterialManage")]
public class MaterialBomController : ControllerBase
public class MaterialBomController : BaseController
{
public MaterialBomService _service {get;set;}

View File

@ -20,7 +20,7 @@ namespace WaterCloud.Web.Areas.MaterialManage.Controllers
/// 描 述:物料管理控制器类
/// </summary>
[Area("MaterialManage")]
public class MaterialController : ControllerBase
public class MaterialController : BaseController
{
public MaterialService _service {get;set;}

View File

@ -15,7 +15,7 @@ namespace WaterCloud.Web.Areas.EquipmentManage.Controllers
/// 描 述:模具物料绑定控制器类
/// </summary>
[Area("MaterialManage")]
public class MaterialEqpController : ControllerBase
public class MaterialEqpController : BaseController
{
public MaterialEqpService _service {get;set;}

View File

@ -19,7 +19,7 @@ namespace WaterCloud.Web.Areas.MaterialManage.Controllers
/// 描 述:出库管理控制器类
/// </summary>
[Area("MaterialManage")]
public class OutStorageController : ControllerBase
public class OutStorageController : BaseController
{
public OutStorageService _service {get;set;}
public OrderService _orderService {get;set; }

View File

@ -20,7 +20,7 @@ namespace WaterCloud.Web.Areas.MaterialManage.Controllers
/// 描 述:出库管理控制器类
/// </summary>
[Area("MaterialManage")]
public class StorageController : ControllerBase
public class StorageController : BaseController
{
public StorageService _service {get;set;}

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.MaterialManage.Controllers
/// 描 述:流转箱打印控制器类
/// </summary>
[Area("MaterialManage")]
public class TransferBoxBatchController : ControllerBase
public class TransferBoxBatchController : BaseController
{
public TransferBoxBatchService _service {get;set;}

View File

@ -19,7 +19,7 @@ namespace WaterCloud.Web.Areas.MaterialManage.Controllers
/// 描 述:流转箱管理控制器类
/// </summary>
[Area("MaterialManage")]
public class TransferBoxController : ControllerBase
public class TransferBoxController : BaseController
{
public TransferBoxService _service {get;set;}

View File

@ -16,7 +16,7 @@ namespace WaterCloud.Web.Areas.MaterialManage.Controllers
/// 描 述:流转箱管理控制器类
/// </summary>
[Area("MaterialManage")]
public class TransferTypeController : ControllerBase
public class TransferTypeController : BaseController
{
public TransferTypeService _service { get; set; }
public ItemsDataService _itemService { get; set; }

View File

@ -14,7 +14,7 @@ namespace WaterCloud.Web.Areas.PlanManage.Controllers
/// 描 述:采购计划控制器类
/// </summary>
[Area("PlanManage")]
public class InStoragePlanController : ControllerBase
public class InStoragePlanController : BaseController
{
public InStoragePlanService _service {get;set;}

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.PlanManage.Controllers
/// 描 述:订单管理控制器类
/// </summary>
[Area("PlanManage")]
public class OrderController : ControllerBase
public class OrderController : BaseController
{
public OrderService _service {get;set;}
[HttpGet]

View File

@ -14,7 +14,7 @@ namespace WaterCloud.Web.Areas.PlanManage.Controllers
/// 描 述:交付计划控制器类
/// </summary>
[Area("PlanManage")]
public class OutStoragePlanController : ControllerBase
public class OutStoragePlanController : BaseController
{
public OutStoragePlanService _service {get;set;}

View File

@ -14,7 +14,7 @@ namespace WaterCloud.Web.Areas.ProcessManage.Controllers
/// 描 述:工序管理控制器类
/// </summary>
[Area("ProcessManage")]
public class ProcessFlowController : ControllerBase
public class ProcessFlowController : BaseController
{
public ProcessFlowService _service {get;set;}

View File

@ -14,7 +14,7 @@ namespace WaterCloud.Web.Areas.ProcessManage.Controllers
/// 描 述:工单管理控制器类
/// </summary>
[Area("ProcessManage")]
public class WorkOrderController : ControllerBase
public class WorkOrderController : BaseController
{
public WorkOrderService _service {get;set;}

View File

@ -15,7 +15,7 @@ namespace WaterCloud.Web.Areas.ProcessManage.Controllers
/// 描 述:工单执行控制器类
/// </summary>
[Area("ProcessManage")]
public class WorkOrderRunController : ControllerBase
public class WorkOrderRunController : BaseController
{
public WorkOrderRunService _service {get;set;}

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.ProcessManage.Controllers
/// 描 述:生产计划控制器类
/// </summary>
[Area("ProcessManage")]
public class WorkPlanController : ControllerBase
public class WorkPlanController : BaseController
{
public WorkPlanService _service {get;set;}

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.QualityManage.Controllers
/// 描 述:质检参数控制器类
/// </summary>
[Area("QualityManage")]
public class CheckoutDescriptionController : ControllerBase
public class CheckoutDescriptionController : BaseController
{
public CheckoutDescriptionService _service {get;set;}

View File

@ -18,7 +18,7 @@ namespace WaterCloud.Web.Areas.QualityManage.Controllers
/// 描 述:质检单管理控制器类
/// </summary>
[Area("QualityManage")]
public class NeedCheckController : ControllerBase
public class NeedCheckController : BaseController
{
public NeedCheckService _service {get;set;}
public TransferBoxBatchService _batchService { get; set; }

View File

@ -18,7 +18,7 @@ namespace WaterCloud.Web.Areas.QualityManage.Controllers
/// 描 述:不良物料管理控制器类
/// </summary>
[Area("QualityManage")]
public class ScapMaterialController : ControllerBase
public class ScapMaterialController : BaseController
{
public ScapMaterialService _service {get;set;}

View File

@ -18,7 +18,7 @@ namespace WaterCloud.Web.Areas.QualityManage.Controllers
/// 描 述:不良物料管理控制器类
/// </summary>
[Area("QualityManage")]
public class ScapMaterialReturnController : ControllerBase
public class ScapMaterialReturnController : BaseController
{
public ScapMaterialService _service {get;set;}

View File

@ -14,7 +14,7 @@ using System;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class AllBadStorageReportController : ControllerBase
public class AllBadStorageReportController : BaseController
{
public ReportRecordService _service { get; set; }
[HandlerAjaxOnly]

View File

@ -14,7 +14,7 @@ using System;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class AllStorageReportController : ControllerBase
public class AllStorageReportController : BaseController
{
public ReportRecordService _service { get; set; }
[HandlerAjaxOnly]

View File

@ -14,7 +14,7 @@ using WaterCloud.Domain.ReportRecord;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class CheckDateStorageController : ControllerBase
public class CheckDateStorageController : BaseController
{
public CheckDateStorageService _service { get; set; }
[HttpGet]

View File

@ -13,7 +13,7 @@ using WaterCloud.Domain.MaterialManage;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class ConsumeReportController : ControllerBase
public class ConsumeReportController : BaseController
{
public ReportRecordService _service { get; set; }
[HttpGet]

View File

@ -14,7 +14,7 @@ using System.Linq;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class EqpMaterialUseReportController : ControllerBase
public class EqpMaterialUseReportController : BaseController
{
public ReportRecordService _service { get; set; }
[HttpGet]

View File

@ -14,7 +14,7 @@ using WaterCloud.Domain.ProcessManage;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class EqpWorkTimeController : ControllerBase
public class EqpWorkTimeController : BaseController
{
public EqpWorkTimeService _service { get; set; }
[HandlerAjaxOnly]

View File

@ -13,7 +13,7 @@ using WaterCloud.Domain.MaterialManage;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class InStorageReportController : ControllerBase
public class InStorageReportController : BaseController
{
public ReportRecordService _service { get; set; }
[HttpGet]

View File

@ -12,7 +12,7 @@ using WaterCloud.Service.ReportRecord;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class MaterialReportController : ControllerBase
public class MaterialReportController : BaseController
{
public ReportRecordService _service { get; set; }
[HttpGet]

View File

@ -13,7 +13,7 @@ using WaterCloud.Domain.MaterialManage;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class OutStorageReportController : ControllerBase
public class OutStorageReportController : BaseController
{
public ReportRecordService _service { get; set; }
[HttpGet]

View File

@ -13,7 +13,7 @@ using WaterCloud.Domain.MaterialManage;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class OutputReportController : ControllerBase
public class OutputReportController : BaseController
{
public ReportRecordService _service { get; set; }
[HttpGet]

View File

@ -13,7 +13,7 @@ using WaterCloud.Domain.MaterialManage;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class ReturnMaterialReportController : ControllerBase
public class ReturnMaterialReportController : BaseController
{
public ReportRecordService _service { get; set; }
[HttpGet]

View File

@ -13,7 +13,7 @@ using WaterCloud.Domain.MaterialManage;
namespace WaterCloud.Web.Areas.ReportRecord.Controllers
{
[Area("ReportRecord")]
public class StorageChangeReportController : ControllerBase
public class StorageChangeReportController : BaseController
{
public ReportRecordService _service { get; set; }
[HttpGet]

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.RunMonitor.Controllers
/// 描 述:看板账户控制器类
/// </summary>
[Area("RunMonitor")]
public class BoardAccountController : ControllerBase
public class BoardAccountController : BaseController
{
public BoardAccountService _service {get;set;}

View File

@ -22,7 +22,7 @@ namespace WaterCloud.Web.Areas.ProcessManage.Controllers
/// </summary>
[Area("RunMonitor")]
[HandlerBoard]
public class EqpScanScreenController : ControllerBase
public class EqpScanScreenController : BaseController
{
public SystemSetService _setService { get; set; }
public ModuleService _moduleService { get; set; }

View File

@ -13,6 +13,7 @@ using WaterCloud.Service.SystemManage;
using WaterCloud.Service.MaterialManage;
using WaterCloud.Domain.MaterialManage;
using WaterCloud.Service.ClassTask;
using iTextSharp.text;
namespace WaterCloud.Web.Areas.ProcessManage.Controllers
{
@ -23,7 +24,7 @@ namespace WaterCloud.Web.Areas.ProcessManage.Controllers
/// </summary>
[Area("RunMonitor")]
[HandlerBoard]
public class LogisticScanScreenController : ControllerBase
public class LogisticScanScreenController : BaseController
{
public SystemSetService _setService { get; set; }
public ModuleService _moduleService { get; set; }
@ -136,6 +137,22 @@ namespace WaterCloud.Web.Areas.ProcessManage.Controllers
return Content(list.ToJson());
}
/// <summary>
/// 获取区域列表
/// </summary>
/// <param name="keyword">关键词</param>
/// <param name="type">类型</param>
/// <returns></returns>
[HttpGet]
[HandlerAjaxOnly]
public async Task<ActionResult> GetAreaList(string keyword = "", int? type = null)
{
var data = await _areaService.GetList(keyword);
data = data.Where(a => a.F_EnabledMark == true).OrderBy(a => a.F_AreaType).ToList();
if (type != null)
data = data.Where(a => a.F_AreaType == type).ToList();
return Content(data.ToJson());
}
[HttpGet]
[HandlerAjaxOnly]
public async Task<ActionResult> GetUseLocation(string materialCode, string eqpName,string areaCode, bool isAll = false)

View File

@ -21,7 +21,7 @@ namespace WaterCloud.Web.Areas.ProcessManage.Controllers
/// </summary>
[Area("RunMonitor")]
[HandlerBoard]
public class SmartScreenController : ControllerBase
public class SmartScreenController : BaseController
{
public SystemSetService _setService { get; set; }
public ModuleService _moduleService { get; set; }

View File

@ -352,7 +352,8 @@
materialhtml10 += '<p>数量:' + totalJob[index].F_NeedNum + '</p>';
materialhtml10 += '<div class="boxfoot"></div>';
$('#material').html(materialhtml10);
GetUseLocation("", totalJob[index].F_MaterialCode, "", "原材料仓库", "GetUseLocation");
var areacode = GetArea();
GetUseLocation("", totalJob[index].F_MaterialCode, "", areacode, "GetUseLocation");
break;
default:
@ -364,7 +365,22 @@
})
function GetArea() {
layui.use(['common'], function () {
let common = layui.common;
common.ajax({
url: '/RunMonitor/LogisticScanScreen/GetAreaList',
dataType: "json",
data: { type:0 },
async: false,
success: function (data) {
if (!!data) {
return data[0].F_AreaCode;
}
}
})
})
}
function GetUseMaterial(eqpName) {
let mathtml = '';
let transferhtml = '';

View File

@ -15,7 +15,7 @@ using Chloe;
namespace WaterCloud.Web.Areas.SystemManage.Controllers
{
[Area("SystemManage")]
public class CodeGeneratorController : ControllerBase
public class CodeGeneratorController : BaseController
{
private readonly IDatabaseTableService _service;

View File

@ -15,7 +15,7 @@ namespace WaterCloud.Web.Areas.SystemManage.Controllers
/// 描 述:流程设计控制器类
/// </summary>
[Area("SystemManage")]
public class FlowschemeController : ControllerBase
public class FlowschemeController : BaseController
{
public FlowschemeService _service {get;set;}

View File

@ -17,7 +17,7 @@ namespace WaterCloud.Web.Areas.SystemManage.Controllers
/// 描 述:表单设计控制器类
/// </summary>
[Area("SystemManage")]
public class FormController : ControllerBase
public class FormController : BaseController
{
public FormService _service {get;set;}

View File

@ -16,7 +16,7 @@ using System.Threading.Tasks;
namespace WaterCloud.Web.Areas.SystemManage.Controllers
{
[Area("SystemManage")]
public class ItemsDataController : ControllerBase
public class ItemsDataController : BaseController
{
public ItemsDataService _service { get; set; }

View File

@ -17,7 +17,7 @@ using System.Threading.Tasks;
namespace WaterCloud.Web.Areas.SystemManage.Controllers
{
[Area("SystemManage")]
public class ItemsTypeController : ControllerBase
public class ItemsTypeController : BaseController
{
public ItemsTypeService _service { get; set; }

View File

@ -16,7 +16,7 @@ using System.Threading.Tasks;
namespace WaterCloud.Web.Areas.SystemManage.Controllers
{
[Area("SystemManage")]
public class ModuleButtonController : ControllerBase
public class ModuleButtonController : BaseController
{
public ModuleService _moduleService { get; set; }

View File

@ -17,7 +17,7 @@ using System.Threading.Tasks;
namespace WaterCloud.Web.Areas.SystemManage.Controllers
{
[Area("SystemManage")]
public class ModuleController : ControllerBase
public class ModuleController : BaseController
{
public ModuleService _service { get; set; }

View File

@ -16,7 +16,7 @@ namespace WaterCloud.Web.Areas.SystemManage.Controllers
/// 描 述:字段管理控制器类
/// </summary>
[Area("SystemManage")]
public class ModuleFieldsController : ControllerBase
public class ModuleFieldsController : BaseController
{
public ModuleFieldsService _service { get; set; }

View File

@ -18,7 +18,7 @@ namespace WaterCloud.Web.Areas.SystemManage.Controllers
/// 描 述:打印模板控制器类
/// </summary>
[Area("SystemManage")]
public class PrintTemplateController : ControllerBase
public class PrintTemplateController : BaseController
{
public PrintTemplateService _service {get;set;}

View File

@ -18,7 +18,7 @@ namespace WaterCloud.Web.Areas.SystemManage.Controllers
/// 描 述:报表模板控制器类
/// </summary>
[Area("SystemManage")]
public class ReportTemplateController : ControllerBase
public class ReportTemplateController : BaseController
{
public ReportTemplateService _service {get;set;}

View File

@ -16,7 +16,7 @@ namespace WaterCloud.Web.Areas.SystemOrganize.Controllers
/// 描 述:数据权限控制器类
/// </summary>
[Area("SystemOrganize")]
public class DataPrivilegeRuleController : ControllerBase
public class DataPrivilegeRuleController : BaseController
{
public DataPrivilegeRuleService _service { get; set; }

View File

@ -24,7 +24,7 @@ using iTextSharp.text.pdf;
namespace WaterCloud.Web.Areas.SystemOrganize.Controllers
{
[Area("SystemOrganize")]
public class DutyController : ControllerBase
public class DutyController : BaseController
{
public DutyService _service { get; set; }

View File

@ -15,7 +15,7 @@ using System.Threading.Tasks;
namespace WaterCloud.Web.Areas.SystemOrganize.Controllers
{
[Area("SystemOrganize")]
public class NoticeController : ControllerBase
public class NoticeController : BaseController
{
public NoticeService _service { get; set; }

View File

@ -17,7 +17,7 @@ using System.Threading.Tasks;
namespace WaterCloud.Web.Areas.SystemOrganize.Controllers
{
[Area("SystemOrganize")]
public class OrganizeController : ControllerBase
public class OrganizeController : BaseController
{
public OrganizeService _service { get; set; }

View File

@ -17,7 +17,7 @@ using WaterCloud.Domain.SystemManage;
namespace WaterCloud.Web.Areas.SystemOrganize.Controllers
{
[Area("SystemOrganize")]
public class RoleAuthorizeController : ControllerBase
public class RoleAuthorizeController : BaseController
{
public RoleAuthorizeService _roleAuthorizeService { get; set; }
public ModuleService _moduleService { get; set; }

View File

@ -17,7 +17,7 @@ using System.Threading.Tasks;
namespace WaterCloud.Web.Areas.SystemOrganize.Controllers
{
[Area("SystemOrganize")]
public class RoleController : ControllerBase
public class RoleController : BaseController
{
public RoleService _service { get; set; }

View File

@ -15,7 +15,7 @@ namespace WaterCloud.Web.Areas.SystemOrganize.Controllers
/// 描 述:系统设置控制器类
/// </summary>
[Area("SystemOrganize")]
public class SystemSetController : ControllerBase
public class SystemSetController : BaseController
{
public SystemSetService _service { get; set; }

View File

@ -18,7 +18,7 @@ using WaterCloud.Service.SystemManage;
namespace WaterCloud.Web.Areas.SystemOrganize.Controllers
{
[Area("SystemOrganize")]
public class UserController : ControllerBase
public class UserController : BaseController
{
public UserService _service { get; set; }

View File

@ -17,7 +17,7 @@ using WaterCloud.Code.Model;
namespace WaterCloud.Web.Areas.SystemSecurity.Controllers
{
[Area("SystemSecurity")]
public class AppLogController : ControllerBase
public class AppLogController : BaseController
{
[HttpGet]

View File

@ -15,7 +15,7 @@ using System.Threading.Tasks;
namespace WaterCloud.Web.Areas.SystemSecurity.Controllers
{
[Area("SystemSecurity")]
public class FilterIPController : ControllerBase
public class FilterIPController : BaseController
{
public FilterIPService _service { get; set; }

View File

@ -11,7 +11,7 @@ using System.Threading.Tasks;
namespace WaterCloud.Web.Areas.SystemSecurity.Controllers
{
[Area("SystemSecurity")]
public class LogController : ControllerBase
public class LogController : BaseController
{
[HttpGet]

View File

@ -13,7 +13,7 @@ namespace WaterCloud.Web.Areas.SystemSecurity.Controllers
/// 定时任务
/// </summary>
[Area("SystemSecurity")]
public class OpenJobsController : ControllerBase
public class OpenJobsController : BaseController
{
public OpenJobsService _service { get; set; }

View File

@ -13,7 +13,7 @@ using System.Threading.Tasks;
namespace WaterCloud.Web.Areas.SystemSecurity.Controllers
{
[Area("SystemSecurity")]
public class ServerMonitoringController : ControllerBase
public class ServerMonitoringController : BaseController
{
public ServerStateService _serverStateService { get; set; }

View File

@ -3,6 +3,7 @@ using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using WaterCloud.Code;
@ -13,7 +14,7 @@ using WaterCloud.Service.QualityManage;
using WaterCloud.Service.SystemManage;
using WaterCloud.Service.SystemSecurity;
namespace WaterCloud.WebApi.Controllers
namespace WaterCloud.Web.Controllers
{
/// <summary>
/// 质检接口
@ -382,19 +383,38 @@ namespace WaterCloud.WebApi.Controllers
{
try
{
Dictionary<string, byte[]> dict = new Dictionary<string, byte[]>();
var cd = DateTime.Now;
var BasePath = GlobalContext.HostingEnvironment.ContentRootPath;
var SavePath = Path.Combine("upload", "Quality");
string fullPath = Path.Combine(BasePath, SavePath);
if (!Directory.Exists(fullPath))
Directory.CreateDirectory(fullPath);
var formfiles = Request.Form.Files;
List<string> files = new List<string>();
foreach (var formfile in formfiles)
{
var stream = formfile.OpenReadStream();
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
dict.Add(formfile.FileName, bytes);
var fullFileName = formfile.FileName;
var fileExtension = Path.GetExtension(fullFileName);
var filename = DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + new Random().Next(100000, 999999) + fileExtension;
using (var fs = System.IO.File.Create(Path.Combine(fullPath, filename)))
{
await formfile.CopyToAsync(fs);
fs.Flush();
}
files.Add($@"/upload/Quality/" + filename);
try
{
System.Drawing.Image img = System.Drawing.Image.FromFile(Path.Combine(fullPath, filename));
}
catch (Exception ex)
{
FileHelper.DeleteFile(Path.Combine(fullPath, filename));
throw new Exception("文件非法,请检查!");
}
}
dynamic result = new { error = 0, files = files.First() };
var result = await _scapService.PhotoSaveIndex(dict);
var temp = result.Content.ReadAsStringAsync().Result.ToJObject();
return new {error=0,file= temp["files"].First().ToString() };
return result;
}
catch (Exception ex)
{

View File

@ -11,7 +11,7 @@ using WaterCloud.Service.MaterialManage;
using WaterCloud.Service.ReportRecord;
using WaterCloud.Service.SystemSecurity;
namespace WaterCloud.WebApi.Controllers
namespace WaterCloud.Web.Controllers
{
/// <summary>
/// 常规接口

View File

@ -12,7 +12,7 @@ using WaterCloud.Service.ProductionReport;
using WaterCloud.Service.SystemOrganize;
using WaterCloud.Service.SystemSecurity;
namespace WaterCloud.WebApi.Controllers
namespace WaterCloud.Web.Controllers
{
[Route("api/[controller]/[action]")]
[ApiController]

View File

@ -10,7 +10,7 @@ using WaterCloud.Service.MaterialManage;
using WaterCloud.Service.QualityManage;
using WaterCloud.Service.SystemSecurity;
namespace WaterCloud.WebApi.Controllers
namespace WaterCloud.Web.Controllers
{
/// <summary>
/// 入库接口

View File

@ -9,7 +9,7 @@ using WaterCloud.Domain.MaterialManage;
using WaterCloud.Service.MaterialManage;
using WaterCloud.Service.SystemSecurity;
namespace WaterCloud.WebApi.Controllers
namespace WaterCloud.Web.Controllers
{
/// <summary>
/// 出库接口

View File

@ -11,7 +11,7 @@ using WaterCloud.Service.ClassTask;
using WaterCloud.Service.MaterialManage;
using WaterCloud.Service.SystemSecurity;
namespace WaterCloud.WebApi.Controllers
namespace WaterCloud.Web.Controllers
{
/// <summary>
/// 调度任务接口

View File

@ -12,7 +12,7 @@ using WaterCloud.Service;
using WaterCloud.Service.SystemOrganize;
using WaterCloud.Service.SystemSecurity;
namespace WaterCloud.WebApi.Controllers
namespace WaterCloud.Web.Controllers
{
/// <summary>
/// 用户接口
@ -88,7 +88,7 @@ namespace WaterCloud.WebApi.Controllers
{
operatorModel.IsSystem = false;
}
await OperatorProvider.Provider.AddLoginUser(operatorModel, apitoken, "api_",false);
await OperatorProvider.Provider.AddLoginUser(operatorModel, apitoken, "api_");
logEntity.F_Account = userEntity.F_Account;
logEntity.F_NickName = userEntity.F_RealName;
logEntity.F_Result = true;
@ -176,7 +176,7 @@ namespace WaterCloud.WebApi.Controllers
{
operatorModel.IsSystem = false;
}
await OperatorProvider.Provider.AddLoginUser(operatorModel, apitoken, "api_", false);
await OperatorProvider.Provider.AddLoginUser(operatorModel, apitoken, "api_");
logEntity.F_Account = userEntity.F_Account;
logEntity.F_NickName = userEntity.F_RealName;
logEntity.F_Result = true;
@ -186,8 +186,6 @@ namespace WaterCloud.WebApi.Controllers
responseData.apitoken = apitoken;
responseData.userid = userEntity.F_DingTalkUnionId;
responseData.username = userEntity.F_DingTalkNick;
responseData.mainurl = GlobalContext.SystemConfig.MainProgram;
return new AlwaysResult<DingLoginResponse> { state = ResultType.success.ToString(), message = "登录成功。", data = responseData };
}
catch (Exception ex)
@ -267,7 +265,7 @@ namespace WaterCloud.WebApi.Controllers
operatorModel.IsSystem = false;
}
//缓存保存用户信息
await OperatorProvider.Provider.AddLoginUser(operatorModel, apitoken, "api_", false);
await OperatorProvider.Provider.AddLoginUser(operatorModel, apitoken, "api_");
logEntity.F_Account = userEntity.F_Account;
logEntity.F_NickName = userEntity.F_RealName;
logEntity.F_Result = true;
@ -277,7 +275,6 @@ namespace WaterCloud.WebApi.Controllers
responseData.apitoken = apitoken;
responseData.userid = info.Unionid;
responseData.username = info.UserName;
responseData.mainurl = GlobalContext.SystemConfig.MainProgram;
return new AlwaysResult<DingLoginResponse> { state = ResultType.success.ToString(), message = "绑定成功。", data = responseData };
}
catch (Exception ex)

View File

@ -13,7 +13,7 @@ using WaterCloud.Service.ProcessManage;
using WaterCloud.Service.QualityManage;
using WaterCloud.Service.SystemSecurity;
namespace WaterCloud.WebApi.Controllers
namespace WaterCloud.Web.Controllers
{
/// <summary>
/// 生产接口

View File

@ -11,7 +11,7 @@ using WaterCloud.Service.SystemSecurity;
namespace WaterCloud.Web
{
[ServiceFilter(typeof(HandlerLoginAttribute))]
public abstract class ControllerBase : Controller
public abstract class BaseController : Controller
{
public LogService _logService { get; set; }
/// <summary>

View File

@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Mvc.Filters;
using WaterCloud.Code;
using WaterCloud.Service.SystemOrganize;
namespace WaterCloud.WebApi
namespace WaterCloud.Web
{
/// <summary>
/// 权限验证

View File

@ -7,7 +7,7 @@ using System.Net;
using System.Threading.Tasks;
using WaterCloud.Code;
namespace WaterCloud.WebApi
namespace WaterCloud.Web
{
public class GlobalExceptionMiddleware
{

View File

@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
using WaterCloud.Code;
namespace WaterCloud.WebApi
namespace WaterCloud.Web
{
/// <summary>
/// 防重复提交

View File

@ -8,7 +8,7 @@ using WaterCloud.Code;
using Microsoft.AspNetCore.Authorization;
using WaterCloud.Service.SystemOrganize;
namespace WaterCloud.WebApi
namespace WaterCloud.Web
{
/// <summary>
/// 验证token

View File

@ -27,6 +27,8 @@ using Microsoft.Extensions.FileProviders;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.ResponseCompression;
using System.IO.Compression;
using WaterCloud.Domain.SystemOrganize;
using Microsoft.OpenApi.Models;
namespace WaterCloud.Web
{
@ -42,11 +44,19 @@ namespace WaterCloud.Web
GlobalContext.HostingEnvironment = env;
}
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
public async void ConfigureServices(IServiceCollection services)
{
GlobalContext.SystemConfig = Configuration.GetSection("SystemConfig").Get<SystemConfig>();
GlobalContext.Services = services;
GlobalContext.Configuration = Configuration;
services.AddSwaggerGen(config =>
{
config.SwaggerDoc("v1", new OpenApiInfo { Title = "WaterCloud Api", Version = "v1" });
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
config.IncludeXmlComments(xmlPath, true); //添加控制器层注释true表示显示控制器注释
});
services.AddSession();
//代替HttpContext.Current
services.AddHttpContextAccessor();
//缓存缓存选择
@ -120,11 +130,17 @@ namespace WaterCloud.Web
{
// 返回数据首字母不小写CamelCasePropertyNamesContractResolver是小写
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
}).AddControllersAsServices().AddRazorRuntimeCompilation();
services.AddDirectoryBrowser();
services.AddControllers(options =>
{
options.Filters.Add<ModelActionFilter>();
options.ModelMetadataDetailsProviders.Add(new ModelBindingMetadataProvider());
}).ConfigureApiBehaviorOptions(options =>
{
options.SuppressModelStateInvalidFilter = true;
});
services.AddAntiforgery(options => options.HeaderName = "X-CSRF-TOKEN");
services.AddControllersWithViews().AddControllersAsServices();
//调试前端可更新
services.AddControllersWithViews().AddRazorRuntimeCompilation();
//启用 Gzip 和 Brotil 压缩功能
services.AddResponseCompression(options =>
{
@ -141,9 +157,6 @@ namespace WaterCloud.Web
});
services.AddOptions();
services.AddDataProtection().PersistKeysToFileSystem(new DirectoryInfo(GlobalContext.HostingEnvironment.ContentRootPath + Path.DirectorySeparatorChar + "DataProtection"));
GlobalContext.SystemConfig = Configuration.GetSection("SystemConfig").Get<SystemConfig>();
GlobalContext.Services = services;
GlobalContext.Configuration = Configuration;
//更新数据库管理员和主系统
try
{
@ -151,11 +164,31 @@ namespace WaterCloud.Web
{
using (var context = DBContexHelper.Contex())
{
var _setService = new Service.SystemOrganize.SystemSetService(context);
Domain.SystemOrganize.SystemSetEntity temp = new Domain.SystemOrganize.SystemSetEntity();
temp.F_AdminAccount = GlobalContext.SystemConfig.SysemUserCode;
temp.F_AdminPassword = GlobalContext.SystemConfig.SysemUserPwd;
_setService.SubmitForm(temp, GlobalContext.SystemConfig.SysemMasterProject).GetAwaiter().GetResult();
var setentity = context.Query<SystemSetEntity>().FirstOrDefault();
context.Session.BeginTransaction();
var user = context.Query<UserEntity>().Where(a => a.F_Account == setentity.F_AdminAccount).FirstOrDefault();
var userinfo = context.Query<UserLogOnEntity>().Where(a => a.F_UserId == user.F_Id).FirstOrDefault();
userinfo.F_UserSecretkey = Md5.md5(Utils.CreateNo(), 16).ToLower();
userinfo.F_UserPassword = Md5.md5(DESEncrypt.Encrypt(Md5.md5(GlobalContext.SystemConfig.SysemUserPwd, 32).ToLower(), userinfo.F_UserSecretkey).ToLower(), 32).ToLower();
context.Update<UserEntity>(a => a.F_Id == user.F_Id, a => new UserEntity
{
F_Account = GlobalContext.SystemConfig.SysemUserCode
});
var cacheKeyUser = "watercloud_userdata_";
await CacheHelper.Remove(cacheKeyUser + user.F_Id);
await context.UpdateAsync<UserLogOnEntity>(a => a.F_Id == userinfo.F_Id, a => new UserLogOnEntity
{
F_UserPassword = userinfo.F_UserPassword,
F_UserSecretkey = userinfo.F_UserSecretkey
});
await context.UpdateAsync<SystemSetEntity>(a => a.F_Id == userinfo.F_Id, a => new SystemSetEntity
{
F_AdminAccount = GlobalContext.SystemConfig.SysemUserCode,
F_AdminPassword = GlobalContext.SystemConfig.SysemUserPwd
});
context.Session.CommitTransaction();
var cacheKeyOperator = "watercloud_operator_";// +登录者token
await CacheHelper.Remove(cacheKeyOperator + "info_" + user.F_Id);
}
}
}
@ -179,17 +212,6 @@ namespace WaterCloud.Web
builder.RegisterAssemblyTypes(typeof(Program).Assembly)
.Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType)
.PropertiesAutowired();
////注入redis
//if (Configuration.GetSection("SystemConfig:CacheProvider").Value== Define.CACHEPROVIDER_REDIS)
//{
// //redis 注入服务
// string redisConnectiong = Configuration.GetSection("SystemConfig:RedisConnectionString").Value;
// // 多客户端
// var redisDB = new CSRedisClient(redisConnectiong + ",defaultDatabase=" + 0);
// RedisHelper.Initialization(redisDB);
// builder.RegisterInstance(redisDB).SingleInstance();//生命周期只能单例
//}
//注册html解析
builder.RegisterInstance(HtmlEncoder.Create(UnicodeRanges.All)).SingleInstance();
//注册特性
@ -197,12 +219,14 @@ namespace WaterCloud.Web
builder.RegisterType(typeof(HandlerAuthorizeAttribute)).InstancePerLifetimeScope();
builder.RegisterType(typeof(HandlerAdminAttribute)).InstancePerLifetimeScope();
builder.RegisterType(typeof(HandlerLockAttribute)).InstancePerLifetimeScope();
////注册ue编辑器
//Config.ConfigFile = "config.json";
//Config.noCache = true;
//var actions = new UEditorActionCollection();
//builder.RegisterInstance(actions).SingleInstance();
//builder.RegisterInstance(typeof(UEditorService)).SingleInstance();
//ControllerBase中使用属性注入
controllerBaseType = typeof(ControllerBase);
builder.RegisterAssemblyTypes(typeof(Program).Assembly)
.Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType)
.PropertiesAutowired();
//注册特性
builder.RegisterType(typeof(AuthorizeFilterAttribute)).InstancePerLifetimeScope();
builder.RegisterType(typeof(LoginFilterAttribute)).InstancePerLifetimeScope();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app)
@ -223,29 +247,7 @@ namespace WaterCloud.Web
ctx.Context.Response.Headers.Append("Cache-Control", "public,max-age=36000");
}
});
//string resource1 = Path.Combine("E:\\", "upload1");
//if (!FileHelper.IsExistDirectory(resource1))
//{
// FileHelper.CreateFolder(resource1);
//}
//app.UseStaticFiles(new StaticFileOptions
//{
// FileProvider = new PhysicalFileProvider(resource1),
// RequestPath = "/upload1",
// OnPrepareResponse = ctx =>
// {
// ctx.Context.Response.Headers.Append("Cache-Control", "public,max-age=36000");
// }
//});
//启用 Gzip 和 Brotil 压缩功能
app.UseResponseCompression();
app.UseCors("CorsPolicy");
//虚拟目录
//如需使用所有URL修改"/Home/Index"改成'@Url.Content("~/Home/Index")',部署访问首页必须带虚拟目录;
//if (!string.IsNullOrEmpty(GlobalContext.SystemConfig.VirtualDirectory))
//{
// app.UsePathBase(new PathString(GlobalContext.SystemConfig.VirtualDirectory)); // 让 Pathbase 中间件成为第一个处理请求的中间件, 才能正确的模拟虚拟路径
//}
if (WebHostEnvironment.IsDevelopment())
{
//打印sql
@ -264,6 +266,22 @@ namespace WaterCloud.Web
{
ContentTypeProvider = new CustomerFileExtensionContentTypeProvider(),
OnPrepareResponse = GlobalContext.SetCacheControl
});
//启用 Gzip 和 Brotil 压缩功能
app.UseResponseCompression();
app.Use(next => context =>
{
context.Request.EnableBuffering();
return next(context);
});
app.UseSwagger(c =>
{
c.RouteTemplate = "api-doc/{documentName}/swagger.json";
});
app.UseSwaggerUI(c =>
{
c.RoutePrefix = "api-doc";
c.SwaggerEndpoint("v1/swagger.json", "WaterCloud Api v1");
});
//session
app.UseSession();
@ -275,6 +293,7 @@ namespace WaterCloud.Web
endpoints.MapHub<MessageHub>("/chatHub");
endpoints.MapControllerRoute("areas", "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute("default", "{controller=Login}/{action=Index}/{id?}");
endpoints.MapControllerRoute("api", "api/{controller=ApiHome}/{action=Index}/{id?}");
});
GlobalContext.ServiceProvider = app.ApplicationServices;
}

View File

@ -0,0 +1,90 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<UserSecretsId>c1fb91bb-fd9e-4a3a-8c93-b84e89a0941a</UserSecretsId>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<Version>0.0.0.7</Version>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<DocumentationFile>WaterCloud.Web.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<Optimize>false</Optimize>
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Compile Remove="DataProtection\**" />
<Content Remove="DataProtection\**" />
<EmbeddedResource Remove="DataProtection\**" />
<None Remove="DataProtection\**" />
</ItemGroup>
<ItemGroup>
<None Include="wwwroot\js\lay-module\inputAttr\inputAttr.js" />
<None Include="wwwroot\lib\layui\font\iconfont.svg" />
<None Include="wwwroot\lib\layui\font\iconfont.woff2" />
<None Include="wwwroot\lib\layui\layui.js" />
<None Include="wwwroot\lib\layui\modules\all.js" />
<None Include="wwwroot\lib\layui\modules\carousel.js" />
<None Include="wwwroot\lib\layui\modules\code.js" />
<None Include="wwwroot\lib\layui\modules\colorpicker.js" />
<None Include="wwwroot\lib\layui\modules\dropdown.js" />
<None Include="wwwroot\lib\layui\modules\element.js" />
<None Include="wwwroot\lib\layui\modules\flow.js" />
<None Include="wwwroot\lib\layui\modules\form.js" />
<None Include="wwwroot\lib\layui\modules\jquery.js" />
<None Include="wwwroot\lib\layui\modules\lay.js" />
<None Include="wwwroot\lib\layui\modules\laydate.js" />
<None Include="wwwroot\lib\layui\modules\layedit.js" />
<None Include="wwwroot\lib\layui\modules\layer.js" />
<None Include="wwwroot\lib\layui\modules\laypage.js" />
<None Include="wwwroot\lib\layui\modules\laytpl.js" />
<None Include="wwwroot\lib\layui\modules\layui.all.js" />
<None Include="wwwroot\lib\layui\modules\mobile.js" />
<None Include="wwwroot\lib\layui\modules\rate.js" />
<None Include="wwwroot\lib\layui\modules\slider.js" />
<None Include="wwwroot\lib\layui\modules\table.js" />
<None Include="wwwroot\lib\layui\modules\transfer.js" />
<None Include="wwwroot\lib\layui\modules\tree.js" />
<None Include="wwwroot\lib\layui\modules\upload.js" />
<None Include="wwwroot\lib\layui\modules\util.js" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Autofac" Version="6.4.0" />
<PackageReference Include="Autofac.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="iTextSharp.LGPLv2.Core.Fix" Version="1.4.3" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.9" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="6.0.9" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="6.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.17.0" />
<PackageReference Include="Quartz" Version="3.5.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
<PackageReference Include="System.DirectoryServices.Protocols" Version="6.0.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WaterCloud.CodeGenerator\WaterCloud.CodeGenerator.csproj" />
<ProjectReference Include="..\WaterCloud.Code\WaterCloud.Code.csproj" />
<ProjectReference Include="..\WaterCloud.Service\WaterCloud.Service.csproj" />
</ItemGroup>
<ItemGroup>
<Content Update="Areas\PlanManage\Views\InStoragePlan\Index.cshtml">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Update="Dockerfile">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ProjectExtensions><VisualStudio><UserProperties appsettings_1json__JsonSchema="" /></VisualStudio></ProjectExtensions>
</Project>

View File

@ -5,6 +5,8 @@
<UserSecretsId>c1fb91bb-fd9e-4a3a-8c93-b84e89a0941a</UserSecretsId>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<Version>0.0.0.7</Version>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<DocumentationFile>WaterCloud.Web.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@ -12,6 +14,9 @@
<PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<RuntimeHostConfigurationOption Include="System.Drawing.EnableUnixSupport" Value="true" />
</ItemGroup>
<ItemGroup>
<Compile Remove="DataProtection\**" />
<Content Remove="DataProtection\**" />
@ -59,6 +64,7 @@
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="6.0.0" />
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.17.0" />
<PackageReference Include="Quartz" Version="3.5.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
<PackageReference Include="System.DirectoryServices.Protocols" Version="6.0.1" />
</ItemGroup>

Some files were not shown because too many files have changed in this diff Show More