ibms-dome/Backend/ApiControllers/DeviceApiController.cs

129 lines
5.5 KiB
C#
Raw Permalink 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 Backend.Models;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Repository.BackendRepository.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
namespace Backend.ApiControllers
{
public class DeviceApiController : MyBaseApiController<DeviceApiController>
{
private readonly IBackendRepository backendRepository;
public DeviceApiController(IBackendRepository backendRepository)
{
this.backendRepository = backendRepository;
}
/// <summary>
/// 修改設備名稱
/// </summary>
/// <param name="change"></param>
/// <returns></returns>
[HttpPost]
[Route("api/Device/SaveChangeName")]
public async Task<ActionResult<ApiResult<string>>> SaveChangeName(ChangeName change)
{
ApiResult<string> apiResult = new ApiResult<string>();
if (!jwtlife)
{
apiResult.Code = "5000";
return BadRequest(apiResult);
}
try
{
if (change.ChooseTable == 0)
{
//一般設備
var GetOne = await backendRepository.GetOneAsync<Device>("device", $" device_number = '{change.TagName}'");
if (GetOne == null)
{
apiResult.Data = "查無資料";
apiResult.Code = "0001";
}
else
{
//修改設備名稱
Dictionary<string, object> ChangeN = new Dictionary<string, object>();
ChangeN = new Dictionary<string, object>()
{
{ "@full_name", change.ChangeN},
{ "@updated_at",DateTime.Now},
};
await backendRepository.UpdateOneByCustomTable(ChangeN, "device", $" device_number = '{change.TagName}'");
//記錄使用者操作紀錄
Dictionary<string, object> userOperatorLog = new Dictionary<string, object>()
{
{ "@user_guid", myUser.userinfo_guid },
{ "@operation_type", 1 }, //1名稱修改
{ "@building_tag", GetOne.device_building_tag },
{ "@main_system_tag", GetOne.device_system_tag },
{ "@sub_system_tag", GetOne.device_name_tag },
{ "@floor_tag", GetOne.device_floor_tag },
{ "@device_guid", GetOne.Device_guid },
{ "@action_name", "修改名稱" },
{ "@parameter", JsonConvert.SerializeObject(change) },
};
await backendRepository.AddOneByCustomTable(userOperatorLog, "operation_log");
apiResult.Data = "更改成功";
apiResult.Code = "0000";
}
}
else
{
//燈控設備
var GetOne = await backendRepository.GetOneAsync<string>("device_master", $" device_master_number = '{change.TagName}'");
if (GetOne == null)
{
apiResult.Data = "查無資料";
apiResult.Code = "0001";
}
else
{
Dictionary<string, object> ChangeN = new Dictionary<string, object>();
ChangeN = new Dictionary<string, object>()
{
{ "@device_master_full_name", change.ChangeN},
{ "@updated_at",DateTime.Now},
};
await backendRepository.UpdateOneByCustomTable(ChangeN, "device_master", $" device_master_number = '{change.TagName}'");
////記錄使用者操作紀錄
//Dictionary<string, object> userOperatorLog = new Dictionary<string, object>()
//{
// { "@user_guid", myUser },
// { "@operation_type", 1 }, //1名稱修改
// { "@building_guid", GetOne.Building_guid },
// { "@main_system_guid", GetOne.Main_system_guid },
// { "@sub_system_guid", GetOne.Sub_system_guid },
// { "@floor_guid", GetOne.Floor_guid },
// { "@device_guid", GetOne.Device_guid },
// { "@action_name", "修改名稱" },
// { "@parameter", JsonConvert.SerializeObject(change) },
//};
//await backendRepository.AddOneByCustomTable(userOperatorLog, "operation_log");
apiResult.Data = "更改成功";
apiResult.Code = "0000";
}
}
}
catch (Exception exception)
{
apiResult.Code = "9999";
Logger.LogError("【" + controllerName + "/" + actionName + "】" + exception.Message);
return Ok(apiResult);
}
return Ok(apiResult);
}
}
}