com.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package utils
  2. import (
  3. "crypto/rsa"
  4. "database/sql"
  5. _ "github.com/go-sql-driver/mysql"
  6. "github.com/gorilla/websocket"
  7. "github.com/redis/go-redis/v9"
  8. "sync"
  9. )
  10. const (
  11. HttpOk = 200
  12. HttpAuthFail = 403
  13. HttpNotFound = 404
  14. HttpError = 500
  15. FullPatten = "QWERTYUIOPLKJHGFDSAZXCVBNM0123456789zxcvbnmlkjhgfdsaqwertyuiop-_"
  16. NumberPatten = "0123456789"
  17. AlphaPatten = "QWERTYUIOPLKJHGFDSAZXCVBNMzxcvbnmlkjhgfdsaqwertyuiop"
  18. AlphaNumPatten = "QWERTYUIOPLKJHGFDSAZXCVBNM0123456789zxcvbnmlkjhgfdsaqwertyuiop"
  19. UppercasePatten = "QWERTYUIOPLKJHGFDSAZXCVBNM"
  20. LowercasePatten = "zxcvbnmlkjhgfdsaqwertyuiop"
  21. RedisNil = redis.Nil
  22. )
  23. type WsMsg struct {
  24. Event string `json:"event"`
  25. Data any `json:"data"`
  26. }
  27. type Response struct {
  28. Status bool `json:"status"`
  29. Msg string `json:"msg"`
  30. Data any `json:"data"`
  31. }
  32. type JsonType = map[string]any
  33. type Config struct {
  34. Release bool `json:"release"`
  35. ServerAddr string `json:"server_addr"`
  36. TimeFormat string `json:"time_format"`
  37. MysqlHost string `json:"mysql_host"`
  38. MysqlPort int `json:"mysql_port"`
  39. MysqlUser string `json:"mysql_user"`
  40. MysqlPass string `json:"mysql_pass"`
  41. MysqlDatabase string `json:"mysql_database"`
  42. RedisHost string `json:"redis_host"`
  43. RedisPort int `json:"redis_port"`
  44. RedisPass string `json:"redis_pass"`
  45. RedisDatabase int `json:"redis_database"`
  46. WxMerchantAcc string `json:"wx_merchant_acc"`
  47. WxApiCertSeq string `json:"wx_api_cert_seq"`
  48. WxApiCertPath string `json:"wx_api_cert_path"`
  49. WxApiV3Key string `json:"wx_api_v3_key"`
  50. }
  51. // database
  52. var (
  53. Redis *redis.Client
  54. Mysql *sql.DB
  55. )
  56. // de-encrypt
  57. var (
  58. ClientPri string
  59. ClientPub string
  60. ServerPri *rsa.PrivateKey
  61. ServerPub *rsa.PublicKey
  62. )
  63. // wechat pay
  64. var (
  65. WxMerchantAcc string
  66. WxApiCertSeq string
  67. WxApiCertPath string
  68. WxApiV3Key string
  69. )
  70. // websocket
  71. var (
  72. UpgradeHttp2Ws = websocket.Upgrader{
  73. ReadBufferSize: 1024,
  74. WriteBufferSize: 1024,
  75. CheckOrigin: CheckOrigin,
  76. }
  77. SellerWss = make(map[string]*websocket.Conn)
  78. SellerLock sync.Mutex
  79. ManagerWss = make(map[string]*websocket.Conn)
  80. ManagerLock sync.Mutex
  81. WorkerWss = make(map[string]*websocket.Conn)
  82. WorkerLock sync.Mutex
  83. )