using JLHHJSvr.BLL; using JLHHJSvr.Com.Model; using JLHHJSvr.LJException; using Newtonsoft.Json.Linq; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace JLHHJSvr.Helper { internal class ERPHelper : HelperBase { private JObject BuildLoginRequest() { return new JObject { { "token", GlobalVar.ERP_TOKEN }, { "account", GlobalVar.ERP_ACCOUNT_NAME }, { "userid", GlobalVar.ERP_ACCOUNT_USERNAME }, { "password", GlobalVar.ERP_ACCOUNT_PASSWORD }, { "clientType", 30 } }; } protected void Login() { var request = BuildLoginRequest(); try { var result = DoExecute("Login", request); var token = result.GetValue("token").ToObject(); if (!string.IsNullOrEmpty(token)) { GlobalVar.ERP_TOKEN = token; } } catch (Exception ex) { throw new LJCommonException($"ERP登录失败: {ex.Message}"); } } public void CheckLogin() { if(string.IsNullOrEmpty(GlobalVar.ERP_TOKEN)) { Login(); } } public List GetERPList(string apiMethod, JObject parameters) { CheckLogin(); // 根据 API 方法的返回结果名称来提取相应的数据 var apiDict = new Dictionary() { {"GetL1Mtrldef","mtrldefList" }, {"GetSCWorkgroupList","scworkgroupList" }, {"GetL1Mtrltype","mtrltypeList" }, }; var request = new JObject(); request.Add("token", GlobalVar.ERP_TOKEN); if (parameters != null) { foreach (var param in parameters) { request.Add(param.Key,param.Value); } } var result = DoExecute(apiMethod, request); if (!apiDict.TryGetValue(apiMethod, out var listName)) { throw new ArgumentException("Unsupported API method", nameof(apiMethod)); } return result.GetValue(listName).ToObject>(); } public List GetErpMtrlDefList(JObject parameters) { return GetERPList("GetL1Mtrldef", parameters); } public List GetERPWrkGrpList(JObject parameters) { return GetERPList("GetSCWorkgroupList", parameters); } public List GetERPMtrlTypeList(JObject parameters) { return GetERPList("GetL1Mtrltype", parameters); } } }