@@ -0,0 +1,33 @@ | |||||
package hdl | |||||
import ( | |||||
"applet/app/utils" | |||||
"code.fnuoos.com/go_rely_warehouse/zyos_go_es.git/es" | |||||
"context" | |||||
"github.com/olivere/elastic/v7" | |||||
) | |||||
func EsSelect(ctx context.Context, index string, query elastic.Query, trackTotalHits bool, arg map[string]string) (*elastic.SearchResult, error) { | |||||
if arg["size"] == "" { | |||||
arg["size"] = arg["limit"] | |||||
} | |||||
result, err := es.EsClient.Search(). | |||||
Index(index). | |||||
TrackTotalHits(trackTotalHits). | |||||
Query(query). // 设置查询条件 | |||||
Size(utils.StrToInt(arg["size"])). // 设置分页参数 - 每页大小,设置为0,代表不返回搜索结果,仅返回聚合分析结果 | |||||
From((utils.StrToInt(arg["p"]) - 1) * utils.StrToInt(arg["size"])). | |||||
Pretty(true). // 返回可读的json格式 | |||||
Do(ctx) | |||||
return result, err | |||||
} | |||||
func EsSelectOne(ctx context.Context, index string, query elastic.Query, trackTotalHits bool) (*elastic.SearchResult, error) { | |||||
result, err := es.EsClient.Search(). | |||||
Index(index). | |||||
TrackTotalHits(trackTotalHits). | |||||
Query(query). // 设置查询条件 | |||||
Size(1). // 设置分页参数 - 每页大小,设置为0,代表不返回搜索结果,仅返回聚合分析结果 | |||||
Pretty(true). // 返回可读的json格式 | |||||
Do(ctx) | |||||
return result, err | |||||
} |
@@ -0,0 +1,23 @@ | |||||
package md | |||||
const EggUserShortLink = "egg_user_short_link" | |||||
const EggUserShortLinkMap = ` | |||||
{ | |||||
"settings" : { | |||||
"number_of_shards" : 2, | |||||
"number_of_replicas" : 1 | |||||
}, | |||||
"mappings":{ | |||||
"properties":{ | |||||
"uid":{ | |||||
"type": "integer" | |||||
}, | |||||
"link":{ | |||||
"type": "keyword" | |||||
}, | |||||
"short_link":{ | |||||
"type": "keyword" | |||||
} | |||||
} | |||||
} | |||||
}` |
@@ -48,3 +48,18 @@ func AdvertisingDetail(c *gin.Context) { | |||||
func AdvertisingCheck(c *gin.Context) { | func AdvertisingCheck(c *gin.Context) { | ||||
svc.AdvertisingCheck(c) | svc.AdvertisingCheck(c) | ||||
} | } | ||||
// AdvertisingState | |||||
// @Summary 广告状态 看完之后拿到广告唯一值 | |||||
// @Tags 广告位 | |||||
// @Description 广告状态 看完之后拿到广告唯一值 | |||||
// @Accept json | |||||
// @Produce json | |||||
// @param Authorization header string true "验证参数Bearer和token空格拼接" | |||||
// @Param req body md.AdvertisingReq true "注册参数" | |||||
// @Success 200 {object} md.AdvertisingState "具体数据" | |||||
// @Failure 400 {object} md.Response "具体错误" | |||||
// @Router /api/v1/advertising/state [post] | |||||
func AdvertisingState(c *gin.Context) { | |||||
svc.AdvertisingState(c) | |||||
} |
@@ -23,24 +23,13 @@ func CallbackChuanshanjia(c *gin.Context) { | |||||
sign := c.Query("sign") | sign := c.Query("sign") | ||||
extra := c.Query("extra") | extra := c.Query("extra") | ||||
id := gjson.Get(extra, "id").String() | id := gjson.Get(extra, "id").String() | ||||
types := gjson.Get(extra, "type").String() | |||||
phonePlatform := strings.ToLower(gjson.Get(extra, "platform").String()) | phonePlatform := strings.ToLower(gjson.Get(extra, "platform").String()) | ||||
platform := "chuanshanjia" | platform := "chuanshanjia" | ||||
NewAdvertisingSpaceDb := implement.NewAdvertisingSpaceDb(db.Db) | |||||
space, _ := NewAdvertisingSpaceDb.GetAdvertisingSpace(id) | |||||
if space == nil { | |||||
isEnd, spaceKey := comm(c, id, primeRit, platform, phonePlatform) | |||||
if isEnd == 1 { | |||||
c.String(200, "{\"is_verify\":true,\"reason\":20000}") | c.String(200, "{\"is_verify\":true,\"reason\":20000}") | ||||
return | return | ||||
} | } | ||||
spaceData := gjson.Get(space.Info, platform+"."+phonePlatform+"_ad_id").String() | |||||
spaceList := make([]map[string]string, 0) | |||||
json.Unmarshal([]byte(spaceData), &spaceList) | |||||
spaceKey := "" | |||||
for _, v := range spaceList { | |||||
if v["id"] == primeRit { //找到对应广告位的key | |||||
spaceKey = v["key"] | |||||
} | |||||
} | |||||
keyStr := spaceKey + ":" + transId | keyStr := spaceKey + ":" + transId | ||||
// 1. 使用SHA256算法计算摘要 | // 1. 使用SHA256算法计算摘要 | ||||
hash := sha256.Sum256([]byte(keyStr)) | hash := sha256.Sum256([]byte(keyStr)) | ||||
@@ -51,10 +40,54 @@ func CallbackChuanshanjia(c *gin.Context) { | |||||
c.String(200, "{\"is_verify\":true,\"reason\":50002}") | c.String(200, "{\"is_verify\":true,\"reason\":50002}") | ||||
return | return | ||||
} | } | ||||
isEnds := commDoing(c, platform, transId, userId, extra, primeRit) | |||||
if isEnds == 1 { | |||||
c.String(200, "{\"is_verify\":true,\"reason\":20000}") | |||||
return | |||||
} | |||||
c.String(200, "{\"is_verify\":true,\"reason\":20000}") | |||||
return | |||||
} | |||||
func CallbackYoulianghui(c *gin.Context) { | |||||
userId := c.Query("userid") | |||||
transId := c.Query("transid") | |||||
primeRit := c.Query("pid") | |||||
sign := c.Query("sig") | |||||
extra := c.Query("extrainfo") | |||||
id := gjson.Get(extra, "id").String() | |||||
phonePlatform := strings.ToLower(gjson.Get(extra, "platform").String()) | |||||
platform := "youlianghui" | |||||
isEnd, spaceKey := comm(c, id, primeRit, platform, phonePlatform) | |||||
if isEnd == 1 { | |||||
c.String(200, "success") | |||||
return | |||||
} | |||||
keyStr := spaceKey + ":" + transId | |||||
// 1. 使用SHA256算法计算摘要 | |||||
hash := sha256.Sum256([]byte(keyStr)) | |||||
// 2. 将摘要转换为十六进制字符串 | |||||
signStr := hex.EncodeToString(hash[:]) | |||||
fmt.Println(signStr) | |||||
if strings.Contains(signStr, sign) == false { | |||||
c.String(200, "success") | |||||
return | |||||
} | |||||
isEnds := commDoing(c, platform, transId, userId, extra, primeRit) | |||||
if isEnds == 1 { | |||||
c.String(200, "success") | |||||
return | |||||
} | |||||
c.String(200, "success") | |||||
return | |||||
} | |||||
// 公共处理 | |||||
func commDoing(c *gin.Context, platform, transId, userId, extra, primeRit string) int { | |||||
types := gjson.Get(extra, "type").String() | |||||
exist, _ := db.Db.Where("platform=? and oid=?", platform, transId).Exist(&model.AdvertisingCallback{}) | exist, _ := db.Db.Where("platform=? and oid=?", platform, transId).Exist(&model.AdvertisingCallback{}) | ||||
if exist { | if exist { | ||||
c.String(200, "{\"is_verify\":true,\"reason\":20000}") | c.String(200, "{\"is_verify\":true,\"reason\":20000}") | ||||
return | |||||
return 1 | |||||
} | } | ||||
var tmp = model.AdvertisingCallback{ | var tmp = model.AdvertisingCallback{ | ||||
Platform: platform, | Platform: platform, | ||||
@@ -83,6 +116,22 @@ func CallbackChuanshanjia(c *gin.Context) { | |||||
ch.PublishV2(md.EggAdvertisingQueueExchange, arg, md.EggAdvertisingSign) | ch.PublishV2(md.EggAdvertisingQueueExchange, arg, md.EggAdvertisingSign) | ||||
} | } | ||||
} | } | ||||
c.String(200, "{\"is_verify\":true,\"reason\":20000}") | |||||
return | |||||
return 0 | |||||
} | |||||
func comm(c *gin.Context, id, primeRit, platform, phonePlatform string) (int, string) { | |||||
NewAdvertisingSpaceDb := implement.NewAdvertisingSpaceDb(db.Db) | |||||
space, _ := NewAdvertisingSpaceDb.GetAdvertisingSpace(id) | |||||
if space == nil { | |||||
return 1, "" | |||||
} | |||||
spaceData := gjson.Get(space.Info, platform+"."+phonePlatform+"_ad_id").String() | |||||
spaceList := make([]map[string]string, 0) | |||||
json.Unmarshal([]byte(spaceData), &spaceList) | |||||
spaceKey := "" | |||||
for _, v := range spaceList { | |||||
if v["id"] == primeRit { //找到对应广告位的key | |||||
spaceKey = v["key"] | |||||
} | |||||
} | |||||
return 0, spaceKey | |||||
} | } |
@@ -3,13 +3,23 @@ package hdl | |||||
import ( | import ( | ||||
"applet/app/db" | "applet/app/db" | ||||
"applet/app/e" | "applet/app/e" | ||||
"applet/app/es/hdl" | |||||
md2 "applet/app/es/md" | |||||
"applet/app/md" | "applet/app/md" | ||||
"applet/app/svc" | "applet/app/svc" | ||||
"applet/app/utils" | "applet/app/utils" | ||||
"applet/app/utils/qrcode" | |||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | "code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | ||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/model" | "code.fnuoos.com/EggPlanet/egg_models.git/src/model" | ||||
"code.fnuoos.com/EggPlanet/egg_system_rules.git/aliyun" | |||||
"code.fnuoos.com/EggPlanet/egg_system_rules.git/kuaizhan" | |||||
"code.fnuoos.com/go_rely_warehouse/zyos_go_es.git/es" | |||||
"context" | |||||
"github.com/gin-gonic/gin" | "github.com/gin-gonic/gin" | ||||
"github.com/olivere/elastic/v7" | |||||
"github.com/syyongx/php2go" | "github.com/syyongx/php2go" | ||||
"github.com/tidwall/gjson" | |||||
"strings" | |||||
) | ) | ||||
// UserInfo | // UserInfo | ||||
@@ -172,3 +182,135 @@ func UserBindParent(c *gin.Context) { | |||||
e.OutSuc(c, "success", nil) | e.OutSuc(c, "success", nil) | ||||
return | return | ||||
} | } | ||||
// UpdatePassword | |||||
// @Summary 修改密码-不要原密码 换成验证码 | |||||
// @Tags 账号与安全 | |||||
// @Description 修改密码 | |||||
// @Accept json | |||||
// @Produce json | |||||
// @Param req body md.UpdatePasswordReq true "注册参数" | |||||
// @Success 200 string "登录成功返回" | |||||
// @Failure 400 {object} md.Response "具体错误" | |||||
// @Router /api/v1/memberCenter/updatePassword [post] | |||||
func UpdatePassword(c *gin.Context) { | |||||
var req md.UpdatePasswordReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = svc.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
user := svc.GetUser(c) | |||||
data := svc.AliyunSmsBase(c, "") | |||||
//校验短信 | |||||
err = aliyun.AliyunCheckSms(data["aliyun_sms_id"], data["aliyun_sms_secret"], user.Phone, req.Code) | |||||
if err != nil { | |||||
e.OutErr(c, 400, e.NewErr(400, "验证码错误,请重试")) | |||||
return | |||||
} | |||||
user.Password = utils.Md5(req.Password) | |||||
db.Db.Where("id=?", user.Id).Cols("password").Update(user) | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
// UpdatePasscode | |||||
// @Summary 修改支付宝密码 | |||||
// @Tags 账号与安全 | |||||
// @Description 修改支付宝密码 | |||||
// @Accept json | |||||
// @Produce json | |||||
// @Param req body md.UpdatePasscodeReq true "注册参数" | |||||
// @Success 200 string "登录成功返回" | |||||
// @Failure 400 {object} md.Response "具体错误" | |||||
// @Router /api/v1/memberCenter/updatePasscode [post] | |||||
func UpdatePasscode(c *gin.Context) { | |||||
var req md.UpdatePasscodeReq | |||||
err := c.ShouldBindJSON(&req) | |||||
if err != nil { | |||||
err = svc.HandleValidateErr(err) | |||||
err1 := err.(e.E) | |||||
e.OutErr(c, err1.Code, err1.Error()) | |||||
return | |||||
} | |||||
user := svc.GetUser(c) | |||||
data := svc.AliyunSmsBase(c, "") | |||||
//校验短信 | |||||
err = aliyun.AliyunCheckSms(data["aliyun_sms_id"], data["aliyun_sms_secret"], user.Phone, req.Code) | |||||
if err != nil { | |||||
e.OutErr(c, 400, e.NewErr(400, "验证码错误,请重试")) | |||||
return | |||||
} | |||||
user.Passcode = utils.Md5(req.PassCode) | |||||
db.Db.Where("id=?", user.Id).Cols("passcode").Update(user) | |||||
e.OutSuc(c, "success", nil) | |||||
return | |||||
} | |||||
// InviteUrl | |||||
// @Summary 邀请链接 | |||||
// @Tags 邀请海报 | |||||
// @Description 邀请链接 | |||||
// @Accept json | |||||
// @Produce json | |||||
// @Success 200 {object} md.InviteUrl "登录成功返回" | |||||
// @Failure 400 {object} md.Response "具体错误" | |||||
// @Router /api/v1/memberCenter/inviteUrl [get] | |||||
func InviteUrl(c *gin.Context) { | |||||
user := svc.GetUser(c) | |||||
link := svc.GetSysCfgStr("kuaizhan_url") | |||||
res := md.InviteUrl{ | |||||
Link: "", | |||||
InviteCode: user.SystemInviteCode, | |||||
} | |||||
if user.CustomInviteCode != "" { | |||||
res.InviteCode = user.CustomInviteCode | |||||
} | |||||
link += "?inviteCode=" + res.InviteCode | |||||
EggUserShortLink := md2.EggUserShortLink | |||||
boolQueryToItem := elastic.NewBoolQuery() // 创建bool查询 | |||||
aggsMatch := elastic.NewMatchQuery("link", link) //设置查询条件 | |||||
boolQueryToItem.Must(aggsMatch) | |||||
result, _ := hdl.EsSelectOne(context.Background(), EggUserShortLink, boolQueryToItem, false) | |||||
isHas := 0 | |||||
if result != nil && len(result.Hits.Hits) > 0 { | |||||
for _, hit := range result.Hits.Hits { | |||||
if hit == nil { | |||||
continue | |||||
} | |||||
jsonByte, _ := hit.Source.MarshalJSON() | |||||
if gjson.Get(string(jsonByte), "short_link").String() != "" { | |||||
isHas = 1 | |||||
link = gjson.Get(string(jsonByte), "short_link").String() | |||||
} | |||||
} | |||||
} | |||||
if isHas == 0 { | |||||
send, _ := kuaizhan.KuaizhanSend(svc.GetSysCfgStr("kuaizhan_app_key"), svc.GetSysCfgStr("kuaizhan_app_secret"), link) | |||||
if gjson.Get(send, "url").String() != "" { | |||||
var uniqueId = php2go.Md5(link) | |||||
oldLink := link | |||||
link = gjson.Get(send, "url").String() | |||||
tmp := map[string]interface{}{ | |||||
"uid": user.Id, | |||||
"link": oldLink, | |||||
"short_link": link, | |||||
} | |||||
doc, _ := es.FirstDoc(EggUserShortLink, uniqueId) | |||||
if doc == nil { | |||||
es.CreateDoc(EggUserShortLink, uniqueId, tmp) | |||||
} else { | |||||
es.UpdateDoc(EggUserShortLink, uniqueId, tmp) | |||||
} | |||||
} | |||||
} | |||||
res.Link = link | |||||
QRcode := qrcode.GetPNGBase64(link) | |||||
QRcode = strings.ReplaceAll(QRcode, "\u0000", "") | |||||
res.Qrcode = QRcode | |||||
e.OutSuc(c, res, nil) | |||||
return | |||||
} |
@@ -27,6 +27,9 @@ type AdvertisingSpace struct { | |||||
type AdvertisingCheck struct { | type AdvertisingCheck struct { | ||||
IsCanVisit string `json:"is_can_visit"` | IsCanVisit string `json:"is_can_visit"` | ||||
} | } | ||||
type AdvertisingState struct { | |||||
IsSuccess string `json:"is_success"` | |||||
} | |||||
type AdvertisingFunction struct { | type AdvertisingFunction struct { | ||||
Name string `json:"name" example:"名称"` | Name string `json:"name" example:"名称"` | ||||
Type string `json:"type" example:"位置"` | Type string `json:"type" example:"位置"` | ||||
@@ -2,7 +2,7 @@ package md | |||||
type SmsSendReq struct { | type SmsSendReq struct { | ||||
Mobile string `json:"mobile" binding:"required"` | Mobile string `json:"mobile" binding:"required"` | ||||
Type string `json:"type" example:"h5Register:h5注册页、wechatBindPhone:微信绑定手机、login:登陆、findPwd:找回密码、changePwd:修改密码"` | |||||
Type string `json:"type" example:"h5Register:h5注册页、wechatBindPhone:微信绑定手机、login:登陆、findPwd:找回密码、changePwd:修改密码、changePasscode:修改支付密码"` | |||||
LotNumber string `json:"lot_number" example:"阿里云图形验证码对应参数"` | LotNumber string `json:"lot_number" example:"阿里云图形验证码对应参数"` | ||||
GenTime string `json:"gen_time" example:"阿里云图形验证码对应参数"` | GenTime string `json:"gen_time" example:"阿里云图形验证码对应参数"` | ||||
CaptchaOutput string `json:"captcha_output" example:"阿里云图形验证码对应参数"` | CaptchaOutput string `json:"captcha_output" example:"阿里云图形验证码对应参数"` | ||||
@@ -26,6 +26,14 @@ type FindPasswordReq struct { | |||||
Code string `json:"code" example:"验证码"` | Code string `json:"code" example:"验证码"` | ||||
Password string `json:"password" example:"密码 如 123"` | Password string `json:"password" example:"密码 如 123"` | ||||
} | } | ||||
type UpdatePasswordReq struct { | |||||
Code string `json:"code" example:"验证码"` | |||||
Password string `json:"password" example:"密码 如 123"` | |||||
} | |||||
type UpdatePasscodeReq struct { | |||||
Code string `json:"code" example:"验证码"` | |||||
PassCode string `json:"passcode" example:"密码 如 123"` | |||||
} | |||||
type WechatLoginReq struct { | type WechatLoginReq struct { | ||||
OpenID string `json:"open_id" example:"微信openId"` | OpenID string `json:"open_id" example:"微信openId"` | ||||
UnionId string `json:"union_id" example:"微信UnionId"` | UnionId string `json:"union_id" example:"微信UnionId"` | ||||
@@ -46,3 +54,8 @@ type LoginReq struct { | |||||
type LoginResponse struct { | type LoginResponse struct { | ||||
Token string `json:"token"` | Token string `json:"token"` | ||||
} | } | ||||
type InviteUrl struct { | |||||
Link string `json:"link"` | |||||
InviteCode string `json:"invite_code"` | |||||
Qrcode string `json:"qrcode"` | |||||
} |
@@ -57,6 +57,7 @@ func route(r *gin.RouterGroup) { | |||||
rCallback := r.Group("/callback") | rCallback := r.Group("/callback") | ||||
{ | { | ||||
rCallback.GET("/advertising/chuanshanjia", hdl.CallbackChuanshanjia) //穿山甲广告回调 | rCallback.GET("/advertising/chuanshanjia", hdl.CallbackChuanshanjia) //穿山甲广告回调 | ||||
rCallback.GET("/advertising/youlianghui", hdl.CallbackYoulianghui) //优量汇广告回调 | |||||
} | } | ||||
r.Use(mw.CheckSign) | r.Use(mw.CheckSign) | ||||
@@ -80,7 +81,11 @@ func route(r *gin.RouterGroup) { | |||||
r.GET("/getModuleSetting", hdl.GetModuleSetting) // 获取页面样式 | r.GET("/getModuleSetting", hdl.GetModuleSetting) // 获取页面样式 | ||||
r.Use(mw.Auth) // 以下接口需要JWT验证 | r.Use(mw.Auth) // 以下接口需要JWT验证 | ||||
rComm(r.Group("/comm")) | rComm(r.Group("/comm")) | ||||
r.POST("/advertising/check", hdl.AdvertisingCheck) //广告位判断能不能看 | |||||
{ | |||||
r.POST("/advertising/check", hdl.AdvertisingCheck) //广告位判断能不能看 | |||||
r.POST("/advertising/state", hdl.AdvertisingState) //广告位状态 | |||||
} | |||||
rHomePage := r.Group("/homePage") | rHomePage := r.Group("/homePage") | ||||
{ | { | ||||
@@ -102,8 +107,11 @@ func route(r *gin.RouterGroup) { | |||||
} | } | ||||
rMemberCenter := r.Group("/memberCenter") | rMemberCenter := r.Group("/memberCenter") | ||||
{ | { | ||||
rMemberCenter.GET("/getBasic", hdl.MemberCenterGetBasic) // 会员中心-基础数据 | |||||
rMemberCenter.POST("/bindParent", hdl.UserBindParent) //绑定上级 | |||||
rMemberCenter.GET("/getBasic", hdl.MemberCenterGetBasic) // 会员中心-基础数据 | |||||
rMemberCenter.POST("/bindParent", hdl.UserBindParent) //绑定上级 | |||||
rMemberCenter.POST("/updatePassword", hdl.UpdatePassword) //修改密码 | |||||
rMemberCenter.POST("/updatePasscode", hdl.UpdatePasscode) //修改支付密码 | |||||
rMemberCenter.GET("/inviteUrl", hdl.InviteUrl) //邀请链接 | |||||
} | } | ||||
rPointsCenter := r.Group("/pointsCenter") // 积分中心 | rPointsCenter := r.Group("/pointsCenter") // 积分中心 | ||||
{ | { | ||||
@@ -6,6 +6,7 @@ import ( | |||||
"applet/app/md" | "applet/app/md" | ||||
"applet/app/utils" | "applet/app/utils" | ||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | "code.fnuoos.com/EggPlanet/egg_models.git/src/implement" | ||||
"code.fnuoos.com/EggPlanet/egg_models.git/src/model" | |||||
"encoding/json" | "encoding/json" | ||||
"fmt" | "fmt" | ||||
"github.com/gin-gonic/gin" | "github.com/gin-gonic/gin" | ||||
@@ -115,6 +116,27 @@ func AdvertisingCheck(c *gin.Context) { | |||||
e.OutSuc(c, res, nil) | e.OutSuc(c, res, nil) | ||||
return | return | ||||
} | } | ||||
func AdvertisingState(c *gin.Context) { | |||||
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 | |||||
} | |||||
isSuccess := "0" | |||||
var data model.AdvertisingCallback | |||||
db.Db.Where("oid=? ", req.Id).Get(&data) | |||||
if data.Id > 0 { | |||||
isSuccess = "1" | |||||
} | |||||
res := md.AdvertisingState{ | |||||
IsSuccess: isSuccess, | |||||
} | |||||
e.OutSuc(c, res, nil) | |||||
return | |||||
} | |||||
func AdvertisingDetail(c *gin.Context) { | func AdvertisingDetail(c *gin.Context) { | ||||
eg := db.Db | eg := db.Db | ||||
var req md.AdvertisingReq | var req md.AdvertisingReq | ||||
@@ -33,7 +33,7 @@ require ( | |||||
require ( | require ( | ||||
code.fnuoos.com/EggPlanet/egg_models.git v0.2.1-0.20241128030209-743f36ef9dad | code.fnuoos.com/EggPlanet/egg_models.git v0.2.1-0.20241128030209-743f36ef9dad | ||||
code.fnuoos.com/EggPlanet/egg_system_rules.git v0.0.4-0.20241128063602-ed11b9dad994 | |||||
code.fnuoos.com/EggPlanet/egg_system_rules.git v0.0.4-0.20241128075251-3c7f4a91e52c | |||||
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 | ||||
github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible | github.com/aliyun/aliyun-oss-go-sdk v3.0.2+incompatible | ||||