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