model里
package model
type Setting struct {
Key string `gorm:"primary_key" json:"key"`
Value string `json:"value"`
}
// @desc 按Key获设置
func (Setting *Setting) GetSettingInfo(Key string) (setting Setting) {
db.Model(&Setting).Where("`key` = ?", Key).First(&setting)
return
}
controller里
一.2层数据
1.普通方法:
控制器里
package Controller
import (
"encoding/json"
"github.com/Unknwon/com"
. "github.com/gin-gonic/gin"
"linkbook.com/LinkBookGo/App/model"
"linkbook.com/LinkBookGo/lib/httpext"
)
var SettingModel = model.Setting{}
//认证展示页面选卡
type CommonParam struct {
CashOutMoneyFeerate int `json:"cash_out_money_feerate"`
}
//获取常用配置参数
/**
* 提现手续费
* 请求方式 [GET]
* 线上请求地址 https://api.ibanana.club/setting/get_setting?key=common_param
* 本地请求地址 http://localhost:8811/setting/get_setting?key=common_param
* token [string] [必填] 写在Header头里
* Author Haima
*/
func GetSetting(context *Context) {
Key := com.StrTo(context.DefaultQuery("key", "")).String()
setting_info1 := SettingModel.GetSettingInfo(Key)
var CommonParamList CommonParam
json.Unmarshal([]byte(setting_info1.Value),&CommonParamList)
httpext.SuccessExt(context, CommonParamList)
}
返回数据:
{
"data": [
{
"time": 10,
"pre_num": 10,
"gold_coin_num": 100
},
{
"time": 20,
"pre_num": 20,
"gold_coin_num": 200
},
{
"time": 30,
"pre_num": 30,
"gold_coin_num": 300
},
{
"time": 40,
"pre_num": 40,
"gold_coin_num": 400
},
{
"time": 50,
"pre_num": 50,
"gold_coin_num": 500
},
{
"time": 70,
"pre_num": 70,
"gold_coin_num": 700
}
],
"errmsg": "ok",
"errno": 200
}
二.2层数据
func CashoutMoneyList(ctx *Context) {
setting_info1 := SettingModel.GetSettingInfo("cash_out_money_list")
//认证展示页面选卡
type cashoutMoney struct {
ID int `json:"id"`
Money int `json:"money"`
GoldCoin int `json:"gold_coin"`
SignInDays int `json:"sign_in_days"`
InvitePerNum int `json:"invite_per_num"`
}
var cashoutMoneyList []cashoutMoney
json.Unmarshal([]byte(setting_info1.Value),&cashoutMoneyList)
type cashoutRes struct {
CashOutMoneyFeerate int `json:"cash_out_money_feerate"`
List []cashoutMoney `json:"cashout_money_lists"`
}
res := cashoutRes{
CashOutMoneyFeerate:10,
List:cashoutMoneyList,
}
httpext.SuccessExt(ctx, res)
}
返回结果:
{
"data": {
"cash_out_money_feerate": 10,
"cashout_money_lists": [
{
"id": 1,
"money": 1,
"gold_coin": 100,
"sign_in_days": 3,
"invite_per_num": 3
},
{
"id": 2,
"money": 2,
"gold_coin": 200,
"sign_in_days": 6,
"invite_per_num": 6
},
{
"id": 3,
"money": 3,
"gold_coin": 300,
"sign_in_days": 9,
"invite_per_num": 9
},
{
"id": 4,
"money": 4,
"gold_coin": 400,
"sign_in_days": 12,
"invite_per_num": 12
},
{
"id": 5,
"money": 5,
"gold_coin": 500,
"sign_in_days": 15,
"invite_per_num": 15
}
]
},
"errmsg": "ok",
"errno": 200
}
方法 2:返回kv形式的
controller.go里
func GetCompanyList(ctx *Context) {
companyName := ctx.Query("company_name")
page := com.StrTo(ctx.DefaultQuery("page", "1")).MustInt()
row := com.StrTo(ctx.DefaultQuery("row", "10")).MustInt()
offset := (page - 1) * row
cm := model.Company{}
companyList := cm.GetCompaniesLikeName(companyName, offset, row)
companyMap := make(map[int]string)
for _, v := range companyList {
companyMap[v.ID] = v.CompanyName
}
res := make(map[string]interface{})
res["list"] = companyMap
httpext.SuccessExt(ctx, res)
}
model.go里
func (c *Company) GetCompaniesLikeName(name string, offset int, row int) (companies []Company) {
db.Model(c).Where("company_name like ?", "%"+name+"%").Offset(offset).Limit(row).Find(&companies)
return
}
返回参数:
{
"data": {
"9": "北京陶然雅居古典家具有限公司",
"12": "北京理工至信技术开发有限公司",
"13": "北京市汇丰通达贸易有限责任公司",
"14": "北京亿翔工程技术有限公司",
"20": "北京金裕腾达商贸有限公司",
"22": "北京同一首歌传媒广告有限公司",
"34": "北京祥昌华通通信器材有限公司",
"40": "北京启迅网安科技有限公司上海分公司",
"44": "北京芝麻视界教育科技有限公司",
"47": "北京亚环传媒科技有限公司"
},
"errmsg": "ok",
"errno": 200
}