123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- using Cksoft.Data;
- using Cksoft.Data.Repository;
- using Cksoft.Unity;
- using Cksoft.Unity.Log4NetConfig;
- using DllEapDal;
- using DllEapEntity;
- using DllEapEntity.Dtos;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.Extensions.Configuration;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- namespace WebApplet.Controllers
- {
- [Route("eap/api/[controller]/[action]")]
- public class MachineController : ControllerBase
- {
- //public IActionResult Index()
- //{
- // return View();
- //}
- public IConfiguration Configuration { get; set; }
- public MachineController(IConfiguration configuration)
- {
- Configuration = configuration;
- }
- [HttpGet]
- public async Task<LayuiModel<Machine>> Get(string filter, int pageIndex = 1, int pageSize = 10, string sortField = "a.FCode", string sortOrder = "ascend")
- {
- string userCode = Request.Headers["usercode"];
- if (sortOrder == "descend")
- {
- sortOrder = "desc";
- }
- else
- {
- sortOrder = "asc";
- }
- if (sortField == "null")
- {
- sortField = "a.FCode";
- }
- int start, end;
- start = (pageIndex - 1) * pageSize + 1;
- end = start + pageSize;
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- db.BeginTrans();
- var dal = new MachineDal(db, userCode);
- var total = dal.GetCount(filter);
- string errorinfo = string.Empty;
- var roles = dal.Get(start, pageSize, sortOrder, sortField, filter,ref errorinfo);
- return await Task.FromResult(new LayuiModel<Machine>
- {
- code = 1,
- count = total,
- data = roles,
- msg = errorinfo
- });
- }
- }
- [HttpGet]
- public IEnumerable<Machine> GetMachines(string filter)
- {
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MachineDal(db);
- return dal.Get(filter);
- }
- }
- [HttpGet]
- public async Task<EapResponse> GetByCode(string code)
- {
- var res = new EapResponse();
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MachineDal(db);
- var mac = dal.Get($" and a.FCode='{code}'").FirstOrDefault();
- if (mac == null)
- {
- res.Code = -1;
- res.Msg = $"未找到编号为【{code.ToUpper()}】的机台";
- return await Task.FromResult(res);
- }
-
- res.Data = mac;
- return await Task.FromResult(res);
- }
- }
- /// <summary>
- /// 修改真实ip
- /// </summary>
- /// <param name="programMst"></param>
- /// <returns></returns>
- [HttpPost]
- public EapResponse UpdateRealIP([FromBody] Machine programMst)
- {
- using (IDatabase db = DbFactory.Base("eap"))
- {
- db.BeginTrans();
- var dal = new MachineDal(db);
- string errorinfo = string.Empty;
- var response = new EapResponse() { Code = 1, Msg = string.Empty };
- int id = -1;
- id = dal.UpdateRealIP(programMst, ref errorinfo);
- if (id < 0)
- {
- db.Rollback();
- response.Code = -1;
- response.Msg = errorinfo;
- }
- else
- {
- db.Commit();
- // LogHelper<Machine>.LogFatal("修改Machine-->修改值:" + Json.ToJson(programMst), "用户操作", "system-winform");
- }
- response.Id = id;
- return response;
- }
- }
- [HttpGet]
- public Machine GetSingleMac(string mac)
- {
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MachineDal(db);
- return dal.GetMac(mac);
- }
- }
- [HttpGet]
- public string GetMacType(string macCode)
- {
- using (IDatabase db = DbFactory.Base("eapslave"))
- {
- var dal = new MachineDal(db);
- return dal.GetMacType(macCode);
- }
- }
- [HttpPost]
- //[ButtonFilter]
- public async Task<EapResponse> Add([FromBody] Machine programMst)
- {
- string usercode = Request.Headers["usercode"];
- using (IDatabase db = DbFactory.Base("eap"))
- {
- db.BeginTrans();
- var dal = new MachineDal(db);
- Machine preMac = null;
- string errorinfo = string.Empty;
- var response = new EapResponse() { Code = 1, Msg = string.Empty };
- int id = -1;
- if (programMst.ID == 0)
- {
- preMac = programMst;
- id = dal.Add(programMst, usercode, ref errorinfo);
- }
- else
- {
- preMac = dal.Get(programMst.ID);
- id = dal.Update(programMst, usercode, ref errorinfo);
- }
- if (id < 0)
- {
- db.Rollback();
- response.Code = -1;
- response.Msg = errorinfo;
- }
- else
- {
- db.Commit();
- if (programMst.ID == 0)
- LogHelper<Machine>.LogFatal("新增Machine-->" + Json.ToJson(programMst), "用户操作", usercode);
- else
- LogHelper<Machine>.LogFatal("修改Machine-->修改值:" + Json.ToJson(programMst), "用户操作", usercode);
- if (this.ReConnect(preMac, id, ref errorinfo) < 0)
- {
- response.Msg = $"机台信息修改成功,自动重连操作失败,失败原因:{errorinfo}";
- response.Code = -2;
- }
- }
- response.Id = id;
- return await Task.FromResult(response);
- }
- }
- public int ReConnect(Machine preMac, int macId, ref string errorinfo)
- {
- if (!string.IsNullOrEmpty(Configuration["Client"]) && Configuration["Client"] == "Ofilm")
- {
- using (IDatabase serverDb = DbFactory.Base("eap"))
- {
- var machineDal = new MachineDal(serverDb);
- serverDb.BeginTrans();
- var flag = machineDal.DoAutoReconnect(preMac, macId, ref errorinfo);
- if (flag < 0 && flag != -2)
- {
- serverDb.Rollback();
- return -1;
- }
- serverDb.Commit();
- return flag;
- }
- }
- return 1;
- }
- }
- }
|