2022-10-14 16:08:54 +08:00
|
|
|
|
using Backend.Models;
|
|
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
using Repository.BackendRepository.Interface;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Threading.Tasks;
|
2023-01-05 18:42:49 +08:00
|
|
|
|
using System.IO;
|
2022-10-14 16:08:54 +08:00
|
|
|
|
|
|
|
|
|
namespace Backend.Controllers
|
|
|
|
|
{
|
|
|
|
|
public class VariableController : MybaseController<VariableController>
|
|
|
|
|
{
|
|
|
|
|
private readonly IBackendRepository backendRepository;
|
2023-01-05 18:42:49 +08:00
|
|
|
|
private string variableFilePath = "";
|
2022-10-14 16:08:54 +08:00
|
|
|
|
public VariableController(IBackendRepository backendRepository)
|
|
|
|
|
{
|
|
|
|
|
this.backendRepository = backendRepository;
|
2023-01-05 18:42:49 +08:00
|
|
|
|
variableFilePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "img");
|
2022-10-14 16:08:54 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public IActionResult Index()
|
|
|
|
|
{
|
|
|
|
|
return View();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// SystemType列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[HttpPost]
|
|
|
|
|
public async Task<ApiResult<List<KeyValue>>> SystemTypeList()
|
|
|
|
|
{
|
|
|
|
|
ApiResult<List<KeyValue>> apiResult = new ApiResult<List<KeyValue>>();
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var sqlString = @$"SELECT DISTINCT system_type as Name, system_type as Value FROM variable v WHERE v.deleted = 0 ORDER BY v.system_type";
|
|
|
|
|
var KeyValue = await backendRepository.GetAllAsync<KeyValue>(sqlString);
|
|
|
|
|
|
|
|
|
|
apiResult.Code = "0000";
|
|
|
|
|
apiResult.Data = KeyValue;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception exception)
|
|
|
|
|
{
|
|
|
|
|
apiResult.Code = "9999";
|
|
|
|
|
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
|
|
|
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return apiResult;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 系統變數資料列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[HttpPost]
|
|
|
|
|
public async Task<ApiResult<List<VariableInfo>>> VariableInfoList(PostVariableInfoFilter post)
|
|
|
|
|
{
|
|
|
|
|
ApiResult<List<VariableInfo>> apiResult = new ApiResult<List<VariableInfo>>();
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var sWhere = "deleted = 0";
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrEmpty(post.SelectedSystemType))
|
|
|
|
|
{
|
|
|
|
|
sWhere += " AND system_type = @SystemType";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var variableInfos = await backendRepository.GetAllAsync<VariableInfo>("variable", sWhere, new { SystemType = post.SelectedSystemType }, "system_type, system_priority");
|
|
|
|
|
|
|
|
|
|
apiResult.Code = "0000";
|
|
|
|
|
apiResult.Data = variableInfos;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception exception)
|
|
|
|
|
{
|
|
|
|
|
apiResult.Code = "9999";
|
|
|
|
|
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
|
|
|
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return apiResult;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 系統變數資料列表
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[HttpPost]
|
|
|
|
|
public async Task<ApiResult<VariableInfo>> GetOneVariable(int id)
|
|
|
|
|
{
|
|
|
|
|
ApiResult<VariableInfo> apiResult = new ApiResult<VariableInfo>();
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string sWhere = @$"deleted = 0 AND id = @Id";
|
|
|
|
|
|
|
|
|
|
object param = new { Id = id };
|
|
|
|
|
|
|
|
|
|
var variableInfo = await backendRepository.GetOneAsync<VariableInfo>("variable", sWhere, param);
|
|
|
|
|
|
|
|
|
|
apiResult.Code = "0000";
|
|
|
|
|
apiResult.Data = variableInfo;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception exception)
|
|
|
|
|
{
|
|
|
|
|
apiResult.Code = "9999";
|
|
|
|
|
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
|
|
|
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return apiResult;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 新增 / 修改 系統變數資料
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="post"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[HttpPost]
|
2023-01-05 18:42:49 +08:00
|
|
|
|
public async Task<ApiResult<string>> SaveVariable([FromForm] VariableInfo post)
|
2022-10-14 16:08:54 +08:00
|
|
|
|
{
|
|
|
|
|
ApiResult<string> apiResult = new ApiResult<string>();
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string sWhere = @$"deleted = 0 AND id = @Id";
|
|
|
|
|
|
|
|
|
|
object param = new { Id = post.id };
|
|
|
|
|
|
|
|
|
|
var variableInfo = await backendRepository.GetOneAsync<VariableInfo>("variable", sWhere, param);
|
2023-01-05 18:42:49 +08:00
|
|
|
|
Guid file_guid = Guid.Empty;
|
|
|
|
|
if (post.file != null)
|
|
|
|
|
{
|
|
|
|
|
file_guid = Guid.NewGuid();
|
|
|
|
|
var fileName = file_guid + "." + post.extName;
|
|
|
|
|
|
|
|
|
|
var fullPath = Path.Combine(variableFilePath, fileName);
|
|
|
|
|
|
|
|
|
|
if (!System.IO.Directory.Exists(variableFilePath))
|
|
|
|
|
System.IO.Directory.CreateDirectory(variableFilePath);
|
2022-10-14 16:08:54 +08:00
|
|
|
|
|
2023-01-05 18:42:49 +08:00
|
|
|
|
using (var stream = new FileStream(fullPath, FileMode.Create))
|
|
|
|
|
{
|
|
|
|
|
post.file.CopyTo(stream);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-14 16:08:54 +08:00
|
|
|
|
if (variableInfo == null)
|
|
|
|
|
{
|
|
|
|
|
//新增
|
|
|
|
|
|
|
|
|
|
Dictionary<string, object> variableInfoDic = new Dictionary<string, object>()
|
|
|
|
|
{
|
|
|
|
|
{ "@system_type", post.System_type},
|
|
|
|
|
{ "@system_key", post.System_key},
|
2023-01-05 18:42:49 +08:00
|
|
|
|
{ "@system_value", file_guid != Guid.Empty ? file_guid.ToString() + "." + post.extName : post.system_value},
|
2022-10-14 16:08:54 +08:00
|
|
|
|
{ "@system_remark", post.system_remark},
|
|
|
|
|
{ "@system_priority", post.system_priority},
|
|
|
|
|
{ "@system_parent_id", post.system_parent_id},
|
|
|
|
|
{ "@created_by", myUserInfo.Userinfo_guid},
|
|
|
|
|
};
|
|
|
|
|
await backendRepository.AddOneByCustomTable(variableInfoDic, "variable");
|
|
|
|
|
|
|
|
|
|
apiResult.Code = "0000";
|
|
|
|
|
apiResult.Msg = "新增成功";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Dictionary<string, object> variableInfoDic = new Dictionary<string, object>()
|
|
|
|
|
{
|
|
|
|
|
{ "@system_type", post.System_type},
|
|
|
|
|
{ "@system_key", post.System_key},
|
2023-01-05 18:42:49 +08:00
|
|
|
|
{ "@system_value", file_guid != Guid.Empty ? file_guid.ToString() + "." + post.extName : post.system_value},
|
2022-10-14 16:08:54 +08:00
|
|
|
|
{ "@system_remark", post.system_remark},
|
|
|
|
|
{ "@system_priority", post.system_priority},
|
|
|
|
|
{ "@system_parent_id", post.system_parent_id},
|
|
|
|
|
{ "@updated_by", myUserInfo.Userinfo_guid},
|
|
|
|
|
{ "@updated_at", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")},
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
await backendRepository.UpdateOneByCustomTable(variableInfoDic, "variable", "id=" + variableInfo.id);
|
|
|
|
|
|
|
|
|
|
apiResult.Code = "0000";
|
|
|
|
|
apiResult.Msg = "修改成功";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception exception)
|
|
|
|
|
{
|
|
|
|
|
apiResult.Code = "9999";
|
|
|
|
|
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
|
|
|
|
string json = System.Text.Json.JsonSerializer.Serialize(post);
|
|
|
|
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + json);
|
|
|
|
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return apiResult;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 刪除單一系統變數
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="guid"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
[HttpPost]
|
|
|
|
|
public async Task<ApiResult<string>> DeleteOneVariable(int id)
|
|
|
|
|
{
|
|
|
|
|
ApiResult<string> apiResult = new ApiResult<string>();
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string sWhere = @$"deleted = 0 AND id = @Id";
|
|
|
|
|
|
|
|
|
|
object param = new { Id = id };
|
|
|
|
|
|
|
|
|
|
var variableInfo = await backendRepository.GetOneAsync<VariableInfo>("variable", sWhere, param);
|
|
|
|
|
|
|
|
|
|
if (variableInfo == null)
|
|
|
|
|
{
|
|
|
|
|
apiResult.Code = "9998";
|
|
|
|
|
apiResult.Msg = "查無該系統變數";
|
|
|
|
|
return apiResult;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await backendRepository.DeleteOne(id.ToString(), "variable", "id");
|
|
|
|
|
|
|
|
|
|
apiResult.Code = "0000";
|
|
|
|
|
apiResult.Msg = "刪除成功";
|
|
|
|
|
}
|
|
|
|
|
catch (Exception exception)
|
|
|
|
|
{
|
|
|
|
|
apiResult.Code = "9999";
|
|
|
|
|
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
|
|
|
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + "id=" + id.ToString());
|
|
|
|
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return apiResult;
|
|
|
|
|
}
|
2023-04-21 17:40:18 +08:00
|
|
|
|
|
2023-05-05 11:10:29 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 獲取專案名稱(東別)
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns></returns>
|
2023-04-21 17:40:18 +08:00
|
|
|
|
[HttpPost]
|
|
|
|
|
public async Task<ApiResult<Variable>> ProjectName()
|
|
|
|
|
{
|
|
|
|
|
ApiResult<Variable> apiResult = new ApiResult<Variable>();
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var variable = await backendRepository.GetOneAsync<Variable>("select * from variable where deleted = 0 and system_type = 'project_name';");
|
|
|
|
|
|
|
|
|
|
apiResult.Data = variable;
|
|
|
|
|
apiResult.Code = "0000";
|
|
|
|
|
apiResult.Msg = "成功";
|
|
|
|
|
}
|
|
|
|
|
catch (Exception exception)
|
|
|
|
|
{
|
|
|
|
|
apiResult.Code = "9999";
|
|
|
|
|
apiResult.Msg = "系統內部錯誤,請聯絡管理者。";
|
|
|
|
|
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return apiResult;
|
|
|
|
|
}
|
2022-10-14 16:08:54 +08:00
|
|
|
|
}
|
|
|
|
|
}
|