HelperBase.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using JLHHJSvr.Helper;
  2. using JLHHJSvr.LJException;
  3. using JLHHJSvr.LJFramework.Tools;
  4. using LJLib.InstallHelper;
  5. using Newtonsoft.Json.Linq;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Data.SqlClient;
  9. using System.Linq;
  10. using System.Runtime.CompilerServices;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace JLHHJSvr.BLL
  14. {
  15. internal abstract class HelperBase
  16. {
  17. /// <summary>
  18. /// 数据库连接
  19. /// </summary>
  20. public SqlCommand cmd { get; set; }
  21. /// <summary>
  22. /// 预留的上下文
  23. /// </summary>
  24. public Context context { get; set; }
  25. /// <summary>
  26. /// 数据缓存
  27. /// </summary>
  28. private CacheHelper _cache;
  29. public static T GetHelper<T>(SqlCommand cmd, Context context = null) where T : HelperBase, new()
  30. {
  31. var rslt = new T();
  32. rslt.cmd = cmd;
  33. rslt.context = context ?? new Context();
  34. return rslt;
  35. }
  36. /// <summary>
  37. /// 缓存数据库相关信息
  38. /// </summary>
  39. public CacheHelper Cache
  40. {
  41. get
  42. {
  43. if (_cache == null)
  44. {
  45. _cache = GetHelper<CacheHelper>(cmd, context);
  46. }
  47. return _cache;
  48. }
  49. }
  50. public JObject DoExecute(string apiName, JObject request)
  51. {
  52. var url = GlobalVar.ERP_API_URL + "/api/common/" + apiName;
  53. if (!url.StartsWith("http", StringComparison.OrdinalIgnoreCase))
  54. {
  55. url = "https://" + url;
  56. }
  57. var rslt = LJHttpUtil.PostRequest(url, request);
  58. var errMsg = rslt.GetValue("ErrMsg");
  59. if (errMsg != null && !string.IsNullOrEmpty(errMsg.ToString()))
  60. {
  61. throw new LJCommonException(errMsg.ToString());
  62. }
  63. return rslt;
  64. }
  65. public sealed class Context
  66. {
  67. private DateTime _opdate = DateTime.Now;
  68. public DateTime opdate
  69. {
  70. get { return _opdate; }
  71. set { _opdate = value; }
  72. }
  73. /// <summary>
  74. /// 用户登陆信息
  75. /// </summary>
  76. public TokenData tokendata { get; set; }
  77. }
  78. }
  79. }