@@ -0,0 +1,35 @@ | |||||
package hdl | |||||
import ( | |||||
"applet/app/svc" | |||||
"github.com/gin-gonic/gin" | |||||
) | |||||
// Advertising | |||||
// @Summary 广告位 | |||||
// @Tags 广告位 | |||||
// @Description 广告位 | |||||
// @Accept json | |||||
// @Produce json | |||||
// @param Authorization header string true "验证参数Bearer和token空格拼接" | |||||
// @Success 200 {object} md.AdvertisingResp "具体数据" | |||||
// @Failure 400 {object} md.Response "具体错误" | |||||
// @Router /api/v1/advertising [get] | |||||
func Advertising(c *gin.Context) { | |||||
svc.Advertising(c) | |||||
} | |||||
// AdvertisingDetail | |||||
// @Summary 广告位详情 | |||||
// @Tags 广告位详情 | |||||
// @Description 广告位详情 | |||||
// @Accept json | |||||
// @Produce json | |||||
// @param Authorization header string true "验证参数Bearer和token空格拼接" | |||||
// @Param req body md.AdvertisingReq true "注册参数" | |||||
// @Success 200 {object} md.AdvertisingSpace "具体数据" | |||||
// @Failure 400 {object} md.Response "具体错误" | |||||
// @Router /api/v1/advertising/detail [post] | |||||
func AdvertisingDetail(c *gin.Context) { | |||||
svc.AdvertisingDetail(c) | |||||
} |
@@ -0,0 +1,32 @@ | |||||
package hdl | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/e" | |||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | |||||
"github.com/gin-gonic/gin" | |||||
"html/template" | |||||
"net/http" | |||||
) | |||||
func ArticleHtml(c *gin.Context) { | |||||
articleId := c.Query("article_id") | |||||
if articleId == "" { | |||||
e.OutErr(c, e.ERR_INVALID_ARGS) | |||||
return | |||||
} | |||||
NewArticleDb := implement.NewArticleDb(db.Db) | |||||
article, err := NewArticleDb.GetArticle(articleId) | |||||
if err != nil { | |||||
e.OutErr(c, e.ERR_DB_ORM) | |||||
return | |||||
} | |||||
if article.Id == 0 { | |||||
e.OutErr(c, e.ERR_NO_DATA) | |||||
return | |||||
} | |||||
c.HTML(http.StatusOK, "article.html", gin.H{ | |||||
"title": template.HTML(article.Title), | |||||
"content": article.Content, | |||||
}) | |||||
} |
@@ -0,0 +1,45 @@ | |||||
package hdl | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/e" | |||||
"applet/app/md" | |||||
"applet/app/svc" | |||||
"applet/app/utils" | |||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | |||||
"fmt" | |||||
"github.com/gin-gonic/gin" | |||||
) | |||||
// Config | |||||
// @Summary 基本配置 | |||||
// @Tags 基本配置 | |||||
// @Description 基本配置 | |||||
// @Accept json | |||||
// @Produce json | |||||
// @param Authorization header string true "验证参数Bearer和token空格拼接" | |||||
// @Success 200 {object} md.ConfigResp "具体数据" | |||||
// @Failure 400 {object} md.Response "具体错误" | |||||
// @Router /api/v1/config [get] | |||||
func Config(c *gin.Context) { | |||||
res := md.ConfigResp{} | |||||
eg := db.Db | |||||
NewArticleDb := implement.NewArticleDb(eg) | |||||
article, _ := NewArticleDb.ArticleCateByTypeId("1") | |||||
if article != nil { | |||||
res.Title = article.Title | |||||
res.Content = article.Content | |||||
} | |||||
userArticle, _ := NewArticleDb.ArticleCateByTypeId("2") | |||||
if userArticle != nil { | |||||
res.UserTitle = userArticle.Title | |||||
res.UserUrl = fmt.Sprintf("%s%s?article_id=%s", svc.GetSysCfgStr("wap_host"), "/api/v1/article/html", utils.AnyToString(userArticle.Id)) | |||||
} | |||||
privacyArticle, _ := NewArticleDb.ArticleCateByTypeId("3") | |||||
if privacyArticle != nil { | |||||
res.PrivacyTitle = privacyArticle.Title | |||||
res.PrivacyUrl = fmt.Sprintf("%s%s?article_id=%s", svc.GetSysCfgStr("wap_host"), "/api/v1/article/html", utils.AnyToString(userArticle.Id)) | |||||
} | |||||
e.OutSuc(c, res, nil) | |||||
return | |||||
} |
@@ -154,7 +154,11 @@ func WechatLogin(c *gin.Context) { | |||||
userModel.OpenId = req.OpenID | userModel.OpenId = req.OpenID | ||||
userModel.Avatar = req.Avatar | userModel.Avatar = req.Avatar | ||||
userModel.Nickname = req.Nickname | userModel.Nickname = req.Nickname | ||||
newUserDb.UpdateUser(userModel, "open_id,avatar,nickname") | |||||
now := time.Now() | |||||
userModel.LastLoginAt = now.Format("2006-01-02 15:04:05") | |||||
userModel.LastLoginIp = utils.GetIP(c.Request) | |||||
userModel.UpdateAt = now.Format("2006-01-02 15:04:05") | |||||
newUserDb.UpdateUser(userModel, "open_id,avatar,nickname,last_login_ip,last_login_at,update_at") | |||||
token, err = svc.HandleLoginToken(userModel) | token, err = svc.HandleLoginToken(userModel) | ||||
if err != nil { | if err != nil { | ||||
e.OutErr(c, e.ERR, err.Error()) | e.OutErr(c, e.ERR, err.Error()) | ||||
@@ -5,7 +5,6 @@ import ( | |||||
"applet/app/md" | "applet/app/md" | ||||
"applet/app/svc" | "applet/app/svc" | ||||
"applet/app/utils" | "applet/app/utils" | ||||
"fmt" | |||||
"github.com/gin-gonic/gin" | "github.com/gin-gonic/gin" | ||||
) | ) | ||||
@@ -21,7 +20,6 @@ import ( | |||||
// @Router /api/v1/userInfo [get] | // @Router /api/v1/userInfo [get] | ||||
func UserInfo(c *gin.Context) { | func UserInfo(c *gin.Context) { | ||||
user := svc.GetUser(c) | user := svc.GetUser(c) | ||||
fmt.Println(1233333) | |||||
res := md.UserInfoResp{ | res := md.UserInfoResp{ | ||||
Id: utils.Int64ToStr(user.Id), | Id: utils.Int64ToStr(user.Id), | ||||
Phone: user.Phone, | Phone: user.Phone, | ||||
@@ -29,6 +27,12 @@ func UserInfo(c *gin.Context) { | |||||
InviteCode: user.SystemInviteCode, | InviteCode: user.SystemInviteCode, | ||||
IsBindExtend: "0", | IsBindExtend: "0", | ||||
} | } | ||||
if user.Avatar == "" { | |||||
user.Avatar = svc.GetSysCfgStr("default_avatar") | |||||
} | |||||
if user.Avatar != "" { | |||||
res.HeadImg = svc.GetOssUrl(user.Avatar) | |||||
} | |||||
if user.CustomInviteCode != "" { | if user.CustomInviteCode != "" { | ||||
res.InviteCode = user.CustomInviteCode | res.InviteCode = user.CustomInviteCode | ||||
} | } | ||||
@@ -36,6 +40,5 @@ func UserInfo(c *gin.Context) { | |||||
res.IsBindExtend = "1" | res.IsBindExtend = "1" | ||||
} | } | ||||
e.OutSuc(c, res, nil) | e.OutSuc(c, res, nil) | ||||
fmt.Println(1111111) | |||||
return | return | ||||
} | } |
@@ -0,0 +1,37 @@ | |||||
package md | |||||
type AdvertisingReq struct { | |||||
Id string `json:"id"` | |||||
} | |||||
type AdvertisingResp struct { | |||||
Basic AdvertisingBasic `json:"basic" ` | |||||
Space []AdvertisingSpace `json:"space" ` | |||||
Function []AdvertisingFunction `json:"function" ` | |||||
Pop AdvertisingLimit `json:"pop" ` | |||||
} | |||||
type AdvertisingBasic struct { | |||||
Info map[string]interface{} `json:"info" ` | |||||
AndroidAdIsOpen string `json:"android_ad_is_open" example:"安卓广告是否开启(1:开启 0:不开启)"` | |||||
IosAdIsOpen string `json:"ios_ad_is_open" example:"ios广告是否开启(1:开启 0:不开启)"` | |||||
AndroidOpenAdIsOpen string `json:"android_open_ad_is_open" example:"安卓开屏广告是否开启(1:开启 0:不开启)"` | |||||
IosOpenAdIsOpen string `json:"ios_open_ad_is_open" example:"ios开屏广告是否开启(1:开启 0:不开启)"` | |||||
Voice string `json:"voice" example:"领取声音"` | |||||
} | |||||
type AdvertisingSpace struct { | |||||
Id string `json:"id" example:"id"` | |||||
Name string `json:"name" example:"名称"` | |||||
Kind string `json:"kind" example:"广告类型(1:开屏广告 2:插屏广告 3:激励视频 4:信息流广告)"` | |||||
Info map[string]interface{} `json:"info" ` | |||||
CountingDown string `json:"counting_down" example:"倒计时 x秒"` | |||||
} | |||||
type AdvertisingFunction struct { | |||||
Name string `json:"name" example:"名称"` | |||||
Type string `json:"type" example:"位置"` | |||||
AdId string `json:"ad_id" example:"广告id"` | |||||
} | |||||
type AdvertisingLimit struct { | |||||
PublicImg string `json:"public_img" example:"公共弹窗图"` | |||||
PublicStr string `json:"public_str" example:"公共弹窗文字"` | |||||
WithdrawImg string `json:"withdraw_img" example:"提现弹窗图"` | |||||
WithdrawStr string `json:"withdraw_str" example:"提现弹窗文字"` | |||||
} |
@@ -0,0 +1,10 @@ | |||||
package md | |||||
type ConfigResp struct { | |||||
Title string `json:"title" example:"软件使用协议标题"` | |||||
Content string `json:"content" example:"软件使用协议内容"` | |||||
UserTitle string `json:"user_title" example:"用户协议标题"` | |||||
UserUrl string `json:"user_url" example:"用户协议链接"` | |||||
PrivacyTitle string `json:"privacy_title" example:"隐私协议标题"` | |||||
PrivacyUrl string `json:"privacy_url" example:"隐私协议链接"` | |||||
} |
@@ -5,5 +5,6 @@ type UserInfoResp struct { | |||||
Phone string `json:"phone"` | Phone string `json:"phone"` | ||||
Nickname string `json:"nickname"` | Nickname string `json:"nickname"` | ||||
InviteCode string `json:"invite_code"` | InviteCode string `json:"invite_code"` | ||||
HeadImg string `json:"head_img"` | |||||
IsBindExtend string `json:"is_bind_extend" example:"是否绑定了上级 0否 1是"` | IsBindExtend string `json:"is_bind_extend" example:"是否绑定了上级 0否 1是"` | ||||
} | } |
@@ -9,6 +9,7 @@ import ( | |||||
"github.com/gin-gonic/gin" | "github.com/gin-gonic/gin" | ||||
swaggerFiles "github.com/swaggo/files" | swaggerFiles "github.com/swaggo/files" | ||||
ginSwagger "github.com/swaggo/gin-swagger" | ginSwagger "github.com/swaggo/gin-swagger" | ||||
"net/http" | |||||
) | ) | ||||
// 初始化路由 | // 初始化路由 | ||||
@@ -31,6 +32,7 @@ func Init() *gin.Engine { | |||||
r.Use(gin.Logger()) | r.Use(gin.Logger()) | ||||
} | } | ||||
r.Use(gin.Recovery()) | r.Use(gin.Recovery()) | ||||
r.Delims("<<<", ">>>").LoadHTMLGlob("static/html/*") | |||||
r.GET("/favicon.ico", func(c *gin.Context) { | r.GET("/favicon.ico", func(c *gin.Context) { | ||||
c.Status(204) | c.Status(204) | ||||
@@ -47,18 +49,23 @@ func Init() *gin.Engine { | |||||
} | } | ||||
func route(r *gin.RouterGroup) { | func route(r *gin.RouterGroup) { | ||||
r.StaticFS("/static", http.Dir("./static")) | |||||
r.GET("/test", hdl.Demo) | r.GET("/test", hdl.Demo) | ||||
r.Any("/createSign", hdl.CreateSign) | r.Any("/createSign", hdl.CreateSign) | ||||
r.Any("/aesDecryptByECB", hdl.AesDecryptByECB) | r.Any("/aesDecryptByECB", hdl.AesDecryptByECB) | ||||
r.GET("/article/html", hdl.ArticleHtml) //H5渲染的文章 | |||||
r.Use(mw.CheckSign) | r.Use(mw.CheckSign) | ||||
r.Any("/testCreateSign", hdl.TestCreateSign) | r.Any("/testCreateSign", hdl.TestCreateSign) | ||||
r.POST("/smsSend", hdl.SmsSend) //发送短信 | |||||
r.POST("/fastLogin", hdl.FastLogin) //一键登录 | |||||
r.POST("/wechatLogin", hdl.WechatLogin) //微信登录 | |||||
r.POST("/register", hdl.Register) //注册 | |||||
r.POST("/login", hdl.Login) //登录 | |||||
r.POST("/findPassword", hdl.FindPassword) //找回密码 | |||||
r.Use(mw.Auth) // 以下接口需要JWT验证 | |||||
r.GET("/config", hdl.Config) //基本配置 | |||||
r.GET("/advertising", hdl.Advertising) //广告位 | |||||
r.POST("/advertising/detail", hdl.AdvertisingDetail) //广告位 | |||||
r.POST("/smsSend", hdl.SmsSend) //发送短信 | |||||
r.POST("/fastLogin", hdl.FastLogin) //一键登录 | |||||
r.POST("/wechatLogin", hdl.WechatLogin) //微信登录 | |||||
r.POST("/register", hdl.Register) //注册 | |||||
r.POST("/login", hdl.Login) //登录 | |||||
r.POST("/findPassword", hdl.FindPassword) //找回密码 | |||||
r.Use(mw.Auth) // 以下接口需要JWT验证 | |||||
rComm(r.Group("/comm")) | rComm(r.Group("/comm")) | ||||
r.GET("/userInfo", hdl.UserInfo) //用户基础信息 | r.GET("/userInfo", hdl.UserInfo) //用户基础信息 | ||||
rHomePage := r.Group("/homePage") | rHomePage := r.Group("/homePage") | ||||
@@ -0,0 +1,103 @@ | |||||
package svc | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/e" | |||||
"applet/app/md" | |||||
"applet/app/utils" | |||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | |||||
"encoding/json" | |||||
"github.com/gin-gonic/gin" | |||||
) | |||||
func Advertising(c *gin.Context) { | |||||
eg := db.Db | |||||
var res = md.AdvertisingResp{} | |||||
NewAdvertisingBasicDb := implement.NewAdvertisingBasicDb(eg) | |||||
NewAdvertisingBasic, _ := NewAdvertisingBasicDb.GetAdvertisingBasicDb() | |||||
if NewAdvertisingBasic != nil { | |||||
var info = make(map[string]interface{}) | |||||
json.Unmarshal([]byte(NewAdvertisingBasic.Info), &info) | |||||
res.Basic = md.AdvertisingBasic{ | |||||
Info: info, | |||||
AndroidAdIsOpen: utils.IntToStr(NewAdvertisingBasic.AndroidOpenAdIsOpen), | |||||
IosAdIsOpen: utils.IntToStr(NewAdvertisingBasic.IosAdIsOpen), | |||||
AndroidOpenAdIsOpen: utils.IntToStr(NewAdvertisingBasic.AndroidOpenAdIsOpen), | |||||
IosOpenAdIsOpen: utils.IntToStr(NewAdvertisingBasic.IosOpenAdIsOpen), | |||||
Voice: GetOssUrl(NewAdvertisingBasic.Voice), | |||||
} | |||||
} | |||||
NewAdvertisingLimitDb := implement.NewAdvertisingLimitDb(eg) | |||||
NewAdvertisingLimit, _ := NewAdvertisingLimitDb.GetAdvertisingLimit() | |||||
if NewAdvertisingLimit != nil { | |||||
res.Pop = md.AdvertisingLimit{ | |||||
PublicImg: GetOssUrl(NewAdvertisingLimit.PublicImg), | |||||
PublicStr: NewAdvertisingLimit.PublicStr, | |||||
WithdrawImg: GetOssUrl(NewAdvertisingLimit.WithdrawImg), | |||||
WithdrawStr: NewAdvertisingLimit.WithdrawStr, | |||||
} | |||||
} | |||||
NewAdvertisingFunctionDb := implement.NewAdvertisingFunctionDb(eg) | |||||
NewAdvertisingFunction, _ := NewAdvertisingFunctionDb.AdvertisingFunctionAll() | |||||
AdvertisingFunctionTmp := make([]md.AdvertisingFunction, 0) | |||||
if NewAdvertisingFunction != nil { | |||||
for _, v := range *NewAdvertisingFunction { | |||||
tmp := md.AdvertisingFunction{ | |||||
Name: v.Name, | |||||
Type: v.Type, | |||||
AdId: utils.IntToStr(v.AdId), | |||||
} | |||||
AdvertisingFunctionTmp = append(AdvertisingFunctionTmp, tmp) | |||||
} | |||||
} | |||||
res.Function = AdvertisingFunctionTmp | |||||
NewAdvertisingSpaceDb := implement.NewAdvertisingSpaceDb(eg) | |||||
NewAdvertisingSpace, _ := NewAdvertisingSpaceDb.AdvertisingSpaceAll() | |||||
NewAdvertisingSpaceTmp := make([]md.AdvertisingSpace, 0) | |||||
if NewAdvertisingSpace != nil { | |||||
for _, v := range *NewAdvertisingSpace { | |||||
var info = make(map[string]interface{}) | |||||
json.Unmarshal([]byte(v.Info), &info) | |||||
tmp := md.AdvertisingSpace{ | |||||
Id: utils.IntToStr(v.Id), | |||||
Name: v.Name, | |||||
Kind: utils.IntToStr(v.Kind), | |||||
Info: info, | |||||
CountingDown: utils.IntToStr(v.CountingDown), | |||||
} | |||||
NewAdvertisingSpaceTmp = append(NewAdvertisingSpaceTmp, tmp) | |||||
} | |||||
} | |||||
res.Space = NewAdvertisingSpaceTmp | |||||
e.OutSuc(c, res, nil) | |||||
return | |||||
} | |||||
func AdvertisingDetail(c *gin.Context) { | |||||
eg := db.Db | |||||
var req md.AdvertisingReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
var res = md.AdvertisingSpace{} | |||||
NewAdvertisingSpaceDb := implement.NewAdvertisingSpaceDb(eg) | |||||
NewAdvertisingSpace, _ := NewAdvertisingSpaceDb.GetAdvertisingSpace(req.Id) | |||||
if NewAdvertisingSpace != nil { | |||||
var info = make(map[string]interface{}) | |||||
json.Unmarshal([]byte(NewAdvertisingSpace.Info), &info) | |||||
tmp := md.AdvertisingSpace{ | |||||
Id: utils.IntToStr(NewAdvertisingSpace.Id), | |||||
Name: NewAdvertisingSpace.Name, | |||||
Kind: utils.IntToStr(NewAdvertisingSpace.Kind), | |||||
Info: info, | |||||
CountingDown: utils.IntToStr(NewAdvertisingSpace.CountingDown), | |||||
} | |||||
res = tmp | |||||
} | |||||
e.OutSuc(c, res, nil) | |||||
return | |||||
} |
@@ -1,6 +1,12 @@ | |||||
package svc | package svc | ||||
import "applet/app/utils/logx" | |||||
import ( | |||||
"applet/app/db" | |||||
"applet/app/utils/cache" | |||||
"applet/app/utils/logx" | |||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | |||||
"strings" | |||||
) | |||||
// 简单的recover | // 简单的recover | ||||
func Rev() { | func Rev() { | ||||
@@ -8,3 +14,18 @@ func Rev() { | |||||
_ = logx.Error(err) | _ = logx.Error(err) | ||||
} | } | ||||
} | } | ||||
func GetOssUrl(img string) string { | |||||
redisConn := cache.GetPool().Get() | |||||
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn) | |||||
sysCfg := sysCfgDb.SysCfgFindWithDb("file_bucket_scheme", "file_bucket_host") | |||||
if strings.Contains(img, "http") == false && img != "" { | |||||
img = sysCfg["file_bucket_scheme"] + "://" + sysCfg["file_bucket_host"] + img | |||||
} | |||||
return img | |||||
} | |||||
func GetSysCfgStr(key string) string { | |||||
redisConn := cache.GetPool().Get() | |||||
sysCfgDb := implement.NewSysCfgDb(db.Db, redisConn) | |||||
return sysCfgDb.SysCfgGetWithDb(key) | |||||
} |
@@ -1,4 +1,5 @@ | |||||
// Package docs Code generated by swaggo/swag. DO NOT EDIT | |||||
// Code generated by swaggo/swag. DO NOT EDIT. | |||||
package docs | package docs | ||||
import "github.com/swaggo/swag" | import "github.com/swaggo/swag" | ||||
@@ -322,6 +323,91 @@ const docTemplate = `{ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"/api/v1/advertising": { | |||||
"get": { | |||||
"description": "广告位", | |||||
"consumes": [ | |||||
"application/json" | |||||
], | |||||
"produces": [ | |||||
"application/json" | |||||
], | |||||
"tags": [ | |||||
"广告位" | |||||
], | |||||
"summary": "广告位", | |||||
"parameters": [ | |||||
{ | |||||
"type": "string", | |||||
"description": "验证参数Bearer和token空格拼接", | |||||
"name": "Authorization", | |||||
"in": "header", | |||||
"required": true | |||||
} | |||||
], | |||||
"responses": { | |||||
"200": { | |||||
"description": "具体数据", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.AdvertisingResp" | |||||
} | |||||
}, | |||||
"400": { | |||||
"description": "具体错误", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.Response" | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
"/api/v1/advertising/detail": { | |||||
"post": { | |||||
"description": "广告位详情", | |||||
"consumes": [ | |||||
"application/json" | |||||
], | |||||
"produces": [ | |||||
"application/json" | |||||
], | |||||
"tags": [ | |||||
"广告位详情" | |||||
], | |||||
"summary": "广告位详情", | |||||
"parameters": [ | |||||
{ | |||||
"type": "string", | |||||
"description": "验证参数Bearer和token空格拼接", | |||||
"name": "Authorization", | |||||
"in": "header", | |||||
"required": true | |||||
}, | |||||
{ | |||||
"description": "注册参数", | |||||
"name": "req", | |||||
"in": "body", | |||||
"required": true, | |||||
"schema": { | |||||
"$ref": "#/definitions/md.AdvertisingReq" | |||||
} | |||||
} | |||||
], | |||||
"responses": { | |||||
"200": { | |||||
"description": "具体数据", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.AdvertisingSpace" | |||||
} | |||||
}, | |||||
"400": { | |||||
"description": "具体错误", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.Response" | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
"/api/v1/comm/getOssUrl": { | "/api/v1/comm/getOssUrl": { | ||||
"get": { | "get": { | ||||
"description": "上传许可链接(获取)", | "description": "上传许可链接(获取)", | ||||
@@ -360,6 +446,44 @@ const docTemplate = `{ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"/api/v1/config": { | |||||
"get": { | |||||
"description": "基本配置", | |||||
"consumes": [ | |||||
"application/json" | |||||
], | |||||
"produces": [ | |||||
"application/json" | |||||
], | |||||
"tags": [ | |||||
"基本配置" | |||||
], | |||||
"summary": "基本配置", | |||||
"parameters": [ | |||||
{ | |||||
"type": "string", | |||||
"description": "验证参数Bearer和token空格拼接", | |||||
"name": "Authorization", | |||||
"in": "header", | |||||
"required": true | |||||
} | |||||
], | |||||
"responses": { | |||||
"200": { | |||||
"description": "具体数据", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.ConfigResp" | |||||
} | |||||
}, | |||||
"400": { | |||||
"description": "具体错误", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.Response" | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
"/api/v1/fastLogin": { | "/api/v1/fastLogin": { | ||||
"post": { | "post": { | ||||
"description": "一键登录", | "description": "一键登录", | ||||
@@ -1026,7 +1150,9 @@ const docTemplate = `{ | |||||
"name": "req", | "name": "req", | ||||
"in": "body", | "in": "body", | ||||
"required": true, | "required": true, | ||||
"schema": {} | |||||
"schema": { | |||||
"type": "object" | |||||
} | |||||
} | } | ||||
], | ], | ||||
"responses": { | "responses": { | ||||
@@ -1143,6 +1269,129 @@ const docTemplate = `{ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"md.AdvertisingBasic": { | |||||
"type": "object", | |||||
"properties": { | |||||
"android_ad_is_open": { | |||||
"type": "string", | |||||
"example": "安卓广告是否开启(1:开启 0:不开启)" | |||||
}, | |||||
"android_open_ad_is_open": { | |||||
"type": "string", | |||||
"example": "安卓开屏广告是否开启(1:开启 0:不开启)" | |||||
}, | |||||
"info": { | |||||
"type": "object", | |||||
"additionalProperties": true | |||||
}, | |||||
"ios_ad_is_open": { | |||||
"type": "string", | |||||
"example": "ios广告是否开启(1:开启 0:不开启)" | |||||
}, | |||||
"ios_open_ad_is_open": { | |||||
"type": "string", | |||||
"example": "ios开屏广告是否开启(1:开启 0:不开启)" | |||||
}, | |||||
"voice": { | |||||
"type": "string", | |||||
"example": "领取声音" | |||||
} | |||||
} | |||||
}, | |||||
"md.AdvertisingFunction": { | |||||
"type": "object", | |||||
"properties": { | |||||
"ad_id": { | |||||
"type": "string", | |||||
"example": "广告id" | |||||
}, | |||||
"name": { | |||||
"type": "string", | |||||
"example": "名称" | |||||
}, | |||||
"type": { | |||||
"type": "string", | |||||
"example": "位置" | |||||
} | |||||
} | |||||
}, | |||||
"md.AdvertisingLimit": { | |||||
"type": "object", | |||||
"properties": { | |||||
"public_img": { | |||||
"type": "string", | |||||
"example": "公共弹窗图" | |||||
}, | |||||
"public_str": { | |||||
"type": "string", | |||||
"example": "公共弹窗文字" | |||||
}, | |||||
"withdraw_img": { | |||||
"type": "string", | |||||
"example": "提现弹窗图" | |||||
}, | |||||
"withdraw_str": { | |||||
"type": "string", | |||||
"example": "提现弹窗文字" | |||||
} | |||||
} | |||||
}, | |||||
"md.AdvertisingReq": { | |||||
"type": "object", | |||||
"properties": { | |||||
"id": { | |||||
"type": "string" | |||||
} | |||||
} | |||||
}, | |||||
"md.AdvertisingResp": { | |||||
"type": "object", | |||||
"properties": { | |||||
"basic": { | |||||
"$ref": "#/definitions/md.AdvertisingBasic" | |||||
}, | |||||
"function": { | |||||
"type": "array", | |||||
"items": { | |||||
"$ref": "#/definitions/md.AdvertisingFunction" | |||||
} | |||||
}, | |||||
"pop": { | |||||
"$ref": "#/definitions/md.AdvertisingLimit" | |||||
}, | |||||
"space": { | |||||
"type": "array", | |||||
"items": { | |||||
"$ref": "#/definitions/md.AdvertisingSpace" | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
"md.AdvertisingSpace": { | |||||
"type": "object", | |||||
"properties": { | |||||
"counting_down": { | |||||
"type": "string", | |||||
"example": "倒计时 x秒" | |||||
}, | |||||
"id": { | |||||
"type": "string", | |||||
"example": "id" | |||||
}, | |||||
"info": { | |||||
"type": "object", | |||||
"additionalProperties": true | |||||
}, | |||||
"kind": { | |||||
"type": "string", | |||||
"example": "广告类型(1:开屏广告 2:插屏广告 3:激励视频 4:信息流广告)" | |||||
}, | |||||
"name": { | |||||
"type": "string", | |||||
"example": "名称" | |||||
} | |||||
} | |||||
}, | |||||
"md.BasalRateResp": { | "md.BasalRateResp": { | ||||
"type": "object", | "type": "object", | ||||
"properties": { | "properties": { | ||||
@@ -1180,6 +1429,35 @@ const docTemplate = `{ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"md.ConfigResp": { | |||||
"type": "object", | |||||
"properties": { | |||||
"content": { | |||||
"type": "string", | |||||
"example": "软件使用协议内容" | |||||
}, | |||||
"privacy_title": { | |||||
"type": "string", | |||||
"example": "隐私协议标题" | |||||
}, | |||||
"privacy_url": { | |||||
"type": "string", | |||||
"example": "隐私协议链接" | |||||
}, | |||||
"title": { | |||||
"type": "string", | |||||
"example": "软件使用协议标题" | |||||
}, | |||||
"user_title": { | |||||
"type": "string", | |||||
"example": "用户协议标题" | |||||
}, | |||||
"user_url": { | |||||
"type": "string", | |||||
"example": "用户协议链接" | |||||
} | |||||
} | |||||
}, | |||||
"md.ContributionValueFlowNode": { | "md.ContributionValueFlowNode": { | ||||
"type": "object", | "type": "object", | ||||
"properties": { | "properties": { | ||||
@@ -1899,6 +2177,9 @@ const docTemplate = `{ | |||||
"md.UserInfoResp": { | "md.UserInfoResp": { | ||||
"type": "object", | "type": "object", | ||||
"properties": { | "properties": { | ||||
"head_img": { | |||||
"type": "string" | |||||
}, | |||||
"id": { | "id": { | ||||
"type": "string" | "type": "string" | ||||
}, | }, | ||||
@@ -1951,8 +2232,6 @@ var SwaggerInfo = &swag.Spec{ | |||||
Description: "APP客户端-Api接口", | Description: "APP客户端-Api接口", | ||||
InfoInstanceName: "swagger", | InfoInstanceName: "swagger", | ||||
SwaggerTemplate: docTemplate, | SwaggerTemplate: docTemplate, | ||||
LeftDelim: "{{", | |||||
RightDelim: "}}", | |||||
} | } | ||||
func init() { | func init() { | ||||
@@ -316,6 +316,91 @@ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"/api/v1/advertising": { | |||||
"get": { | |||||
"description": "广告位", | |||||
"consumes": [ | |||||
"application/json" | |||||
], | |||||
"produces": [ | |||||
"application/json" | |||||
], | |||||
"tags": [ | |||||
"广告位" | |||||
], | |||||
"summary": "广告位", | |||||
"parameters": [ | |||||
{ | |||||
"type": "string", | |||||
"description": "验证参数Bearer和token空格拼接", | |||||
"name": "Authorization", | |||||
"in": "header", | |||||
"required": true | |||||
} | |||||
], | |||||
"responses": { | |||||
"200": { | |||||
"description": "具体数据", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.AdvertisingResp" | |||||
} | |||||
}, | |||||
"400": { | |||||
"description": "具体错误", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.Response" | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
"/api/v1/advertising/detail": { | |||||
"post": { | |||||
"description": "广告位详情", | |||||
"consumes": [ | |||||
"application/json" | |||||
], | |||||
"produces": [ | |||||
"application/json" | |||||
], | |||||
"tags": [ | |||||
"广告位详情" | |||||
], | |||||
"summary": "广告位详情", | |||||
"parameters": [ | |||||
{ | |||||
"type": "string", | |||||
"description": "验证参数Bearer和token空格拼接", | |||||
"name": "Authorization", | |||||
"in": "header", | |||||
"required": true | |||||
}, | |||||
{ | |||||
"description": "注册参数", | |||||
"name": "req", | |||||
"in": "body", | |||||
"required": true, | |||||
"schema": { | |||||
"$ref": "#/definitions/md.AdvertisingReq" | |||||
} | |||||
} | |||||
], | |||||
"responses": { | |||||
"200": { | |||||
"description": "具体数据", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.AdvertisingSpace" | |||||
} | |||||
}, | |||||
"400": { | |||||
"description": "具体错误", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.Response" | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
"/api/v1/comm/getOssUrl": { | "/api/v1/comm/getOssUrl": { | ||||
"get": { | "get": { | ||||
"description": "上传许可链接(获取)", | "description": "上传许可链接(获取)", | ||||
@@ -354,6 +439,44 @@ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"/api/v1/config": { | |||||
"get": { | |||||
"description": "基本配置", | |||||
"consumes": [ | |||||
"application/json" | |||||
], | |||||
"produces": [ | |||||
"application/json" | |||||
], | |||||
"tags": [ | |||||
"基本配置" | |||||
], | |||||
"summary": "基本配置", | |||||
"parameters": [ | |||||
{ | |||||
"type": "string", | |||||
"description": "验证参数Bearer和token空格拼接", | |||||
"name": "Authorization", | |||||
"in": "header", | |||||
"required": true | |||||
} | |||||
], | |||||
"responses": { | |||||
"200": { | |||||
"description": "具体数据", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.ConfigResp" | |||||
} | |||||
}, | |||||
"400": { | |||||
"description": "具体错误", | |||||
"schema": { | |||||
"$ref": "#/definitions/md.Response" | |||||
} | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
"/api/v1/fastLogin": { | "/api/v1/fastLogin": { | ||||
"post": { | "post": { | ||||
"description": "一键登录", | "description": "一键登录", | ||||
@@ -1020,7 +1143,9 @@ | |||||
"name": "req", | "name": "req", | ||||
"in": "body", | "in": "body", | ||||
"required": true, | "required": true, | ||||
"schema": {} | |||||
"schema": { | |||||
"type": "object" | |||||
} | |||||
} | } | ||||
], | ], | ||||
"responses": { | "responses": { | ||||
@@ -1137,6 +1262,129 @@ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"md.AdvertisingBasic": { | |||||
"type": "object", | |||||
"properties": { | |||||
"android_ad_is_open": { | |||||
"type": "string", | |||||
"example": "安卓广告是否开启(1:开启 0:不开启)" | |||||
}, | |||||
"android_open_ad_is_open": { | |||||
"type": "string", | |||||
"example": "安卓开屏广告是否开启(1:开启 0:不开启)" | |||||
}, | |||||
"info": { | |||||
"type": "object", | |||||
"additionalProperties": true | |||||
}, | |||||
"ios_ad_is_open": { | |||||
"type": "string", | |||||
"example": "ios广告是否开启(1:开启 0:不开启)" | |||||
}, | |||||
"ios_open_ad_is_open": { | |||||
"type": "string", | |||||
"example": "ios开屏广告是否开启(1:开启 0:不开启)" | |||||
}, | |||||
"voice": { | |||||
"type": "string", | |||||
"example": "领取声音" | |||||
} | |||||
} | |||||
}, | |||||
"md.AdvertisingFunction": { | |||||
"type": "object", | |||||
"properties": { | |||||
"ad_id": { | |||||
"type": "string", | |||||
"example": "广告id" | |||||
}, | |||||
"name": { | |||||
"type": "string", | |||||
"example": "名称" | |||||
}, | |||||
"type": { | |||||
"type": "string", | |||||
"example": "位置" | |||||
} | |||||
} | |||||
}, | |||||
"md.AdvertisingLimit": { | |||||
"type": "object", | |||||
"properties": { | |||||
"public_img": { | |||||
"type": "string", | |||||
"example": "公共弹窗图" | |||||
}, | |||||
"public_str": { | |||||
"type": "string", | |||||
"example": "公共弹窗文字" | |||||
}, | |||||
"withdraw_img": { | |||||
"type": "string", | |||||
"example": "提现弹窗图" | |||||
}, | |||||
"withdraw_str": { | |||||
"type": "string", | |||||
"example": "提现弹窗文字" | |||||
} | |||||
} | |||||
}, | |||||
"md.AdvertisingReq": { | |||||
"type": "object", | |||||
"properties": { | |||||
"id": { | |||||
"type": "string" | |||||
} | |||||
} | |||||
}, | |||||
"md.AdvertisingResp": { | |||||
"type": "object", | |||||
"properties": { | |||||
"basic": { | |||||
"$ref": "#/definitions/md.AdvertisingBasic" | |||||
}, | |||||
"function": { | |||||
"type": "array", | |||||
"items": { | |||||
"$ref": "#/definitions/md.AdvertisingFunction" | |||||
} | |||||
}, | |||||
"pop": { | |||||
"$ref": "#/definitions/md.AdvertisingLimit" | |||||
}, | |||||
"space": { | |||||
"type": "array", | |||||
"items": { | |||||
"$ref": "#/definitions/md.AdvertisingSpace" | |||||
} | |||||
} | |||||
} | |||||
}, | |||||
"md.AdvertisingSpace": { | |||||
"type": "object", | |||||
"properties": { | |||||
"counting_down": { | |||||
"type": "string", | |||||
"example": "倒计时 x秒" | |||||
}, | |||||
"id": { | |||||
"type": "string", | |||||
"example": "id" | |||||
}, | |||||
"info": { | |||||
"type": "object", | |||||
"additionalProperties": true | |||||
}, | |||||
"kind": { | |||||
"type": "string", | |||||
"example": "广告类型(1:开屏广告 2:插屏广告 3:激励视频 4:信息流广告)" | |||||
}, | |||||
"name": { | |||||
"type": "string", | |||||
"example": "名称" | |||||
} | |||||
} | |||||
}, | |||||
"md.BasalRateResp": { | "md.BasalRateResp": { | ||||
"type": "object", | "type": "object", | ||||
"properties": { | "properties": { | ||||
@@ -1174,6 +1422,35 @@ | |||||
} | } | ||||
} | } | ||||
}, | }, | ||||
"md.ConfigResp": { | |||||
"type": "object", | |||||
"properties": { | |||||
"content": { | |||||
"type": "string", | |||||
"example": "软件使用协议内容" | |||||
}, | |||||
"privacy_title": { | |||||
"type": "string", | |||||
"example": "隐私协议标题" | |||||
}, | |||||
"privacy_url": { | |||||
"type": "string", | |||||
"example": "隐私协议链接" | |||||
}, | |||||
"title": { | |||||
"type": "string", | |||||
"example": "软件使用协议标题" | |||||
}, | |||||
"user_title": { | |||||
"type": "string", | |||||
"example": "用户协议标题" | |||||
}, | |||||
"user_url": { | |||||
"type": "string", | |||||
"example": "用户协议链接" | |||||
} | |||||
} | |||||
}, | |||||
"md.ContributionValueFlowNode": { | "md.ContributionValueFlowNode": { | ||||
"type": "object", | "type": "object", | ||||
"properties": { | "properties": { | ||||
@@ -1893,6 +2170,9 @@ | |||||
"md.UserInfoResp": { | "md.UserInfoResp": { | ||||
"type": "object", | "type": "object", | ||||
"properties": { | "properties": { | ||||
"head_img": { | |||||
"type": "string" | |||||
}, | |||||
"id": { | "id": { | ||||
"type": "string" | "type": "string" | ||||
}, | }, | ||||
@@ -12,6 +12,92 @@ definitions: | |||||
description: 总数据量 | description: 总数据量 | ||||
type: integer | type: integer | ||||
type: object | type: object | ||||
md.AdvertisingBasic: | |||||
properties: | |||||
android_ad_is_open: | |||||
example: 安卓广告是否开启(1:开启 0:不开启) | |||||
type: string | |||||
android_open_ad_is_open: | |||||
example: 安卓开屏广告是否开启(1:开启 0:不开启) | |||||
type: string | |||||
info: | |||||
additionalProperties: true | |||||
type: object | |||||
ios_ad_is_open: | |||||
example: ios广告是否开启(1:开启 0:不开启) | |||||
type: string | |||||
ios_open_ad_is_open: | |||||
example: ios开屏广告是否开启(1:开启 0:不开启) | |||||
type: string | |||||
voice: | |||||
example: 领取声音 | |||||
type: string | |||||
type: object | |||||
md.AdvertisingFunction: | |||||
properties: | |||||
ad_id: | |||||
example: 广告id | |||||
type: string | |||||
name: | |||||
example: 名称 | |||||
type: string | |||||
type: | |||||
example: 位置 | |||||
type: string | |||||
type: object | |||||
md.AdvertisingLimit: | |||||
properties: | |||||
public_img: | |||||
example: 公共弹窗图 | |||||
type: string | |||||
public_str: | |||||
example: 公共弹窗文字 | |||||
type: string | |||||
withdraw_img: | |||||
example: 提现弹窗图 | |||||
type: string | |||||
withdraw_str: | |||||
example: 提现弹窗文字 | |||||
type: string | |||||
type: object | |||||
md.AdvertisingReq: | |||||
properties: | |||||
id: | |||||
type: string | |||||
type: object | |||||
md.AdvertisingResp: | |||||
properties: | |||||
basic: | |||||
$ref: '#/definitions/md.AdvertisingBasic' | |||||
function: | |||||
items: | |||||
$ref: '#/definitions/md.AdvertisingFunction' | |||||
type: array | |||||
pop: | |||||
$ref: '#/definitions/md.AdvertisingLimit' | |||||
space: | |||||
items: | |||||
$ref: '#/definitions/md.AdvertisingSpace' | |||||
type: array | |||||
type: object | |||||
md.AdvertisingSpace: | |||||
properties: | |||||
counting_down: | |||||
example: 倒计时 x秒 | |||||
type: string | |||||
id: | |||||
example: id | |||||
type: string | |||||
info: | |||||
additionalProperties: true | |||||
type: object | |||||
kind: | |||||
example: 广告类型(1:开屏广告 2:插屏广告 3:激励视频 4:信息流广告) | |||||
type: string | |||||
name: | |||||
example: 名称 | |||||
type: string | |||||
type: object | |||||
md.BasalRateResp: | md.BasalRateResp: | ||||
properties: | properties: | ||||
basal_rate: | basal_rate: | ||||
@@ -39,6 +125,27 @@ definitions: | |||||
description: 收益倒计时 | description: 收益倒计时 | ||||
type: string | type: string | ||||
type: object | type: object | ||||
md.ConfigResp: | |||||
properties: | |||||
content: | |||||
example: 软件使用协议内容 | |||||
type: string | |||||
privacy_title: | |||||
example: 隐私协议标题 | |||||
type: string | |||||
privacy_url: | |||||
example: 隐私协议链接 | |||||
type: string | |||||
title: | |||||
example: 软件使用协议标题 | |||||
type: string | |||||
user_title: | |||||
example: 用户协议标题 | |||||
type: string | |||||
user_url: | |||||
example: 用户协议链接 | |||||
type: string | |||||
type: object | |||||
md.ContributionValueFlowNode: | md.ContributionValueFlowNode: | ||||
properties: | properties: | ||||
amount: | amount: | ||||
@@ -534,6 +641,8 @@ definitions: | |||||
type: object | type: object | ||||
md.UserInfoResp: | md.UserInfoResp: | ||||
properties: | properties: | ||||
head_img: | |||||
type: string | |||||
id: | id: | ||||
type: string | type: string | ||||
invite_code: | invite_code: | ||||
@@ -772,6 +881,62 @@ paths: | |||||
summary: 蛋蛋星球-添加好友-总速率(获取) | summary: 蛋蛋星球-添加好友-总速率(获取) | ||||
tags: | tags: | ||||
- 添加好友 | - 添加好友 | ||||
/api/v1/advertising: | |||||
get: | |||||
consumes: | |||||
- application/json | |||||
description: 广告位 | |||||
parameters: | |||||
- description: 验证参数Bearer和token空格拼接 | |||||
in: header | |||||
name: Authorization | |||||
required: true | |||||
type: string | |||||
produces: | |||||
- application/json | |||||
responses: | |||||
"200": | |||||
description: 具体数据 | |||||
schema: | |||||
$ref: '#/definitions/md.AdvertisingResp' | |||||
"400": | |||||
description: 具体错误 | |||||
schema: | |||||
$ref: '#/definitions/md.Response' | |||||
summary: 广告位 | |||||
tags: | |||||
- 广告位 | |||||
/api/v1/advertising/detail: | |||||
post: | |||||
consumes: | |||||
- application/json | |||||
description: 广告位详情 | |||||
parameters: | |||||
- description: 验证参数Bearer和token空格拼接 | |||||
in: header | |||||
name: Authorization | |||||
required: true | |||||
type: string | |||||
- description: 注册参数 | |||||
in: body | |||||
name: req | |||||
required: true | |||||
schema: | |||||
$ref: '#/definitions/md.AdvertisingReq' | |||||
produces: | |||||
- application/json | |||||
responses: | |||||
"200": | |||||
description: 具体数据 | |||||
schema: | |||||
$ref: '#/definitions/md.AdvertisingSpace' | |||||
"400": | |||||
description: 具体错误 | |||||
schema: | |||||
$ref: '#/definitions/md.Response' | |||||
summary: 广告位详情 | |||||
tags: | |||||
- 广告位详情 | |||||
/api/v1/comm/getOssUrl: | /api/v1/comm/getOssUrl: | ||||
get: | get: | ||||
consumes: | consumes: | ||||
@@ -797,6 +962,31 @@ paths: | |||||
summary: 通用请求-对象存储-上传许可链接(获取) | summary: 通用请求-对象存储-上传许可链接(获取) | ||||
tags: | tags: | ||||
- 对象存储 | - 对象存储 | ||||
/api/v1/config: | |||||
get: | |||||
consumes: | |||||
- application/json | |||||
description: 基本配置 | |||||
parameters: | |||||
- description: 验证参数Bearer和token空格拼接 | |||||
in: header | |||||
name: Authorization | |||||
required: true | |||||
type: string | |||||
produces: | |||||
- application/json | |||||
responses: | |||||
"200": | |||||
description: 具体数据 | |||||
schema: | |||||
$ref: '#/definitions/md.ConfigResp' | |||||
"400": | |||||
description: 具体错误 | |||||
schema: | |||||
$ref: '#/definitions/md.Response' | |||||
summary: 基本配置 | |||||
tags: | |||||
- 基本配置 | |||||
/api/v1/fastLogin: | /api/v1/fastLogin: | ||||
post: | post: | ||||
consumes: | consumes: | ||||
@@ -1232,7 +1422,8 @@ paths: | |||||
in: body | in: body | ||||
name: req | name: req | ||||
required: true | required: true | ||||
schema: {} | |||||
schema: | |||||
type: object | |||||
produces: | produces: | ||||
- application/json | - application/json | ||||
responses: | responses: | ||||
@@ -32,7 +32,7 @@ require ( | |||||
) | ) | ||||
require ( | require ( | ||||
code.fnuoos.com/EggPlanet/egg_models.git v0.2.1-0.20241122113411-25d1f2bb1ad8 | |||||
code.fnuoos.com/EggPlanet/egg_models.git v0.2.1-0.20241123072806-2fc832067f77 | |||||
code.fnuoos.com/EggPlanet/egg_system_rules.git v0.0.4-0.20241123034858-48fbf35fcb21 | code.fnuoos.com/EggPlanet/egg_system_rules.git v0.0.4-0.20241123034858-48fbf35fcb21 | ||||
code.fnuoos.com/go_rely_warehouse/zyos_go_es.git v1.0.1-0.20241118083738-0f22da9ba0be | code.fnuoos.com/go_rely_warehouse/zyos_go_es.git v1.0.1-0.20241118083738-0f22da9ba0be | ||||
code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5 | code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5 | ||||
@@ -1,22 +1,26 @@ | |||||
<!DOCTYPE html> | <!DOCTYPE html> | ||||
<html lang="en"> | <html lang="en"> | ||||
<head> | <head> | ||||
<meta charset="UTF-8"> | <meta charset="UTF-8"> | ||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||
<title>{{.title}}</title> | |||||
<title><<<.title>>></title> | |||||
</head> | </head> | ||||
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.11"></script> | |||||
<!--<script src="http://ossn.izhim.net/vue.js"></script>--> | |||||
<style> | <style> | ||||
* { | * { | ||||
padding: 0; | padding: 0; | ||||
margin: 0; | |||||
margin: 0 1%; | |||||
overflow: auto; | |||||
user-select: text; | |||||
} | } | ||||
img { | img { | ||||
max-width: 100% | max-width: 100% | ||||
} | } | ||||
#app { | #app { | ||||
padding: 1.5rem; | padding: 1.5rem; | ||||
width: 100vw; | width: 100vw; | ||||
@@ -37,12 +41,12 @@ | |||||
float: left; | float: left; | ||||
} | } | ||||
.floatLeft>h4 { | |||||
.floatLeft > h4 { | |||||
display: inline-block; | display: inline-block; | ||||
font-size: 1rem; | font-size: 1rem; | ||||
} | } | ||||
.floatLeft>span { | |||||
.floatLeft > span { | |||||
border-left: 1px solid rgb(151, 150, 150); | border-left: 1px solid rgb(151, 150, 150); | ||||
padding-left: .5rem; | padding-left: .5rem; | ||||
height: .8rem; | height: .8rem; | ||||
@@ -51,11 +55,12 @@ | |||||
color: rgb(151, 150, 150); | color: rgb(151, 150, 150); | ||||
margin-left: .2rem; | margin-left: .2rem; | ||||
} | } | ||||
.floatRight { | .floatRight { | ||||
float: right; | float: right; | ||||
font-size: .8rem; | font-size: .8rem; | ||||
color: rgb(151, 150, 150); | color: rgb(151, 150, 150); | ||||
} | } | ||||
.vHmtl { | .vHmtl { | ||||
@@ -64,32 +69,27 @@ | |||||
height: auto; | height: auto; | ||||
} | } | ||||
</style> | </style> | ||||
<script> | |||||
window.onload = function () { | |||||
var insertDiv = document.getElementById("insert"); | |||||
insertDiv.innerHTML = "<<<.content>>>"; | |||||
}; | |||||
</script> | |||||
<body> | <body> | ||||
<div id="app"> | |||||
<header> | |||||
<h3>{{.title}}</h3> | |||||
<div class="slogan-time"> | |||||
<div class="floatLeft"> | |||||
<h4>{{.author}}</h4> | |||||
<span>{{.time}}</span> | |||||
</div> | |||||
<div class="floatRight"> | |||||
{{.studyCount}}人已学习 | |||||
</div> | |||||
</div> | |||||
</header> | |||||
<div class="vHmtl" v-html="hello"></div> | |||||
</div> | |||||
<div id="#app"> | |||||
<header> | |||||
<h3 style="text-align: center;"><<<.title>>></h3> | |||||
</header> | |||||
<div class="vHmtl" id="insert"></div> | |||||
</div> | |||||
</body> | </body> | ||||
</html> | </html> | ||||
<script> | |||||
new Vue({ | |||||
el: '#app', // 选择器 | |||||
data: { | |||||
hello: '<p style="color:#ff0000">{{.content}}</p>' | |||||
} | |||||
}) | |||||
</script> | |||||
<!--<script>--> | |||||
<!-- new Vue({--> | |||||
<!-- el: '#app', // 选择器--> | |||||
<!-- data: {--> | |||||
<!-- hello: '<p style="color:#ff0000"><<<.content>>></p>'--> | |||||
<!-- }--> | |||||
<!-- })--> | |||||
<!--</script>--> | |||||