goweb: https://gitee.com/leijmdas/goweb/settings#index

func (self *TestMetaFacadeSuite) Test006_QueryDictDb() {

    var dao = NewDaoGeneralRule()
    ret := dao.QueryModel()
    golog.Info(ret.Code)

    golog.Info(ret)
    ret.CheckRecordSuite(self.Suite, 9, "func_id=func_listfunc")

}

========================================================= 
2025-04-29 10:12:18.877 [INFO] 
 *** CheckRecord  func_id=func_listfunc  OK ***
INFO[2025-04-429 10:12:18]C:/Users/leijmdas/go/pkg/mod/gitee.com/leijmdas/gobase/goconfig@v0.0.0-20250429020023-97f7eb7adfb6/common/golog/go_logger.go:12 gitee.com/leijmdas/gobase/goconfig/common/golog.Info() 
 *** CheckRecord func_id=func_listfunc OK *** 
2025-04-29 10:12:18.877 [INFO] 
 *** CheckRecord OK ***
INFO[2025-04-429 10:12:18]C:/Users/leijmdas/go/pkg/mod/gitee.com/leijmdas/gobase/goconfig@v0.0.0-20250429020023-97f7eb7adfb6/common/golog/go_logger.go:12 gitee.com/leijmdas/gobase/goconfig/common/golog.Info() 
 *** CheckRecord OK ***                    
2025-04-29 10:12:18.877 [INFO]

func (self *PageResult[T]) CheckRecordSuite(s suite.Suite, keyvalue any, exps string) {
    self.CheckCode(s, 200)
    var err = self.CheckRecord(keyvalue, exps)
    self.CheckErr(s, err)
}
func (self *PageResult[T]) CheckCode(suite suite.Suite, code int) {

    suite.Equal(code, self.Code)
}
func (self *PageResult[T]) CheckErr(s suite.Suite, err error) {

    if err != nil {
       golog.Error(err)
    }
    s.Equal(true, err == nil)
}

// key =pkey1,  exps=f1=v1|f2=v2|f3=v3
func (self *PageResult[T]) CheckRecord(keyvalues any, exps string) error {
    if !self.ExistRecord() {
       return weberrors.ErrDataNotExist
    }
    var keyvalue = gconv.String(keyvalues)
    var kv = strings.Split(keyvalue, "=")
    if len(kv) == 1 {
       keyvalue = "id=" + keyvalue
       kv = strings.Split(keyvalue, "=")
    }
    var list = self.Data
    for i := range list {
       var r = jsonutils.Stru2Map(list[i])

       if v, ok := r[kv[0]]; ok && v == kv[1] {
          var ret = basedto.ResultData(list[i])
          var err = self.CheckRecordRet(ret, exps)
          if err != nil {
             golog.Error(err)
          }
          return err
       }

    }
    return weberrors.ErrNotFound
}

func (self *PageResult[T]) CheckRecordRet(ret *basedto.IchubResult, exp string) error {

    var recordExp = strings.Split(exp, "|")
    golog.Info("\r\n\r\n=========================================================")
    var maps = jsonutils.Stru2MapUnderscore(ret.Data)
    for i := range recordExp {
       var items = strings.Split(recordExp[i], "=")
       if items[1] == gconv.String(maps[items[0]]) {
          golog.Info("\r\n *** CheckRecord ", recordExp[i], " OK ***")
          continue
       } else {
          var err = errors.New("******** CheckRecord " + recordExp[i] + " failed! ***********")
          golog.Error("\r\n", err)
          return err
       }
    }
    golog.Info("\r\n *** CheckRecord OK ***")
    golog.Info("\r\n\r\n=========================================================")
    return nil

}
func (self *PageResult[T]) ExistRecord() bool {

    return self.IsSuccess() && self.Data != nil && len(self.Data) > 0

}
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐