using JSMachine.WMS.Infrastructure.Helper; using JSMachine.WMS.RPC.ErpRPC.Dto.In.BusinessDto; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; namespace JSMachine.WMS.RPC.ErpRPC.Dto.In { /// /// 企望api请求参数封装类 /// public class RequestParam where T : BusinessParamBase { /// /// 客户ID,默认为空 /// public string CustNo { get; set; } = string.Empty; /// /// 时间戳 /// public string Timestamp { get; set; } = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); /// /// 值为md5(CustNo+CustSecret+Timetamp)加密后的32位结果(小写);CustNo、CustSecret的值默认为空,某些接口特殊需要的请开发前电话联系我司获取。 /// public string EncryptStr { get; set; } /// /// 业务参数(json) /// public ActionParam JsonParam { get; set; } public RequestParam() { EncryptStr= Md5EncryptionHelper.MD5Encrypt32(CustNo + string.Empty + Timestamp, true); } private static PropertyInfo[] PropertyInfos = typeof(RequestParam).GetProperties(); /// /// 创建请求参数 /// /// /// /// public static Dictionary CreateParam(ActionID actionID, T data) { RequestParam requestParam = new() { JsonParam = new ActionParam() { ActionID = actionID.ToString(), Data = data } }; Dictionary dic = new(); PropertyInfos.ToList().ForEach(p => { if (p.Name == "JsonParam") { dic.Add("params", JsonConvert.SerializeObject(p.GetValue(requestParam))); } else { dic.Add(p.Name, p.GetValue(requestParam)); } }); return dic; } public static string CreateJsonParam(ActionID actionID, T data) { var requestParam = new ActionParam() { ActionID = actionID.ToString(), Data = data }; var result = JsonConvert.SerializeObject(requestParam); return result; } } }