package service import ( "fmt" "bkb-seller/global" "bkb-seller/model" "bkb-seller/model/request" "bkb-seller/model/response" ) func GetSysDictDataLabel(typeCode, value string) string { var res string cacheKey := "bkb-admin_sys_dict_labels" labelKey := fmt.Sprintf("%s_%s", typeCode, value) res = RedisHashGet(cacheKey, labelKey) if res == "" { _ = global.MG_DB.Model(&model.SysDictData{}).Select("label").Where("type_code=? AND `value`=?", typeCode, value).Scan(&res).Error go RedisHashSet(cacheKey, labelKey, res) } return res } func GetSysDictDataList(params request.SearchDictDataParams) (err error, list any) { var lists []model.SysDictDataView err = global.MG_DB.Model(&model.SysDictData{}).Where("type_code=? AND `status`='1'", params.TypeCode).Order("sort asc").Find(&lists).Error return err, lists } func GetSysDictDataListByTypeCode(typeCode string) (list []model.SysDictDataView, err error) { var lists []model.SysDictDataView err = global.MG_DB.Model(&model.SysDictData{}).Where("type_code=? AND `status`='1'", typeCode).Order("sort asc").Find(&lists).Error return lists, err } func ListCourier(req request.ListCourier) (res []response.Courier, total int64, err error) { var list []model.Courier offset := req.PageSize * (req.Page - 1) db := global.MG_DB.Model(&model.Courier{}) if req.Name != ""{ db.Where("name like ?",req.Name+"%") } err = db.Count(&total).Error if err != nil { return } err = db.Offset(offset).Limit(req.PageSize).Find(&list).Error if err != nil { return } res = make([]response.Courier, 0, len(list)) for _, v := range list { res = append(res, response.Courier{ Name: v.Name, Code: v.Code, }) } return } func getSysDictDataMap(typeCode string, values ...string) (map[string]string, error) { var ( err error list []model.SysDictData result = make(map[string]string) ) db := global.MG_DB.Model(&model.SysDictData{}).Where("type_code = ?", typeCode) if len(values) != 0 { db = db.Where("value IN (?)", values) } err = db.Select("value,label").Find(&list).Error if err != nil { return nil, err } for _, data := range list { result[data.Value] = data.Label } return result, nil }