| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package errormsg
- import (
- "encoding/json"
- _ "fmt"
- "log"
- "os"
- "sync"
- "time"
- )
- var Instance *errormsg
- func Run() {
- Instance = new(errormsg)
- Instance.lock = &sync.RWMutex{}
- Instance.run()
- }
- func GetErrorMsg(msg string, ret_code int) string {
- Instance.lock.RLock()
- defer Instance.lock.RUnlock()
- for _, v := range Instance.Msgs {
- if v.Msg == msg {
- return v.getMsg(ret_code)
- }
- }
- return ""
- }
- type error_code struct {
- RetCode int
- ErrorMsg string
- }
- type msg struct {
- Msg string
- ErrorCodes []error_code
- }
- func (m *msg) getMsg(ret_code int) string {
- for _, v := range m.ErrorCodes {
- if v.RetCode == ret_code {
- return v.ErrorMsg
- }
- }
- return ""
- }
- type errormsg struct {
- Msgs []msg
- lock *sync.RWMutex
- }
- func (e *errormsg) run() {
- e.refreshData()
- }
- func (e *errormsg) refreshData() {
- go e.doRefresh()
- time.AfterFunc(5*time.Minute, e.refreshData)
- }
- func (e *errormsg) doRefresh() {
- e.lock.Lock()
- defer e.lock.Unlock()
- data, err := os.ReadFile("fishconf/errormsg.json")
- if err != nil {
- log.Fatalf("read config failed fishconf/errormsg.json %v", err)
- }
- //fmt.Println(string(data))
- err = json.Unmarshal(data, &e.Msgs)
- if err != nil {
- log.Fatalf("Unmarshal config failed fishconf/errormsg.json err:%v", err)
- }
- //fmt.Printf("Msgs count = %d\n", len(e.Msgs))
- }
|