12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- package logic
- import (
- MC "app.yhyue.com/moapp/jybase/common"
- IC "bp.jydev.jianyu360.cn/BaseService/jyMicroservices/jyBXCore/rpc/init"
- "bp.jydev.jianyu360.cn/BaseService/jyMicroservices/jyBXCore/rpc/util"
- "context"
- "fmt"
- "strings"
- "bp.jydev.jianyu360.cn/BaseService/jyMicroservices/jyBXCore/rpc/internal/svc"
- "bp.jydev.jianyu360.cn/BaseService/jyMicroservices/jyBXCore/rpc/type/bxcore"
- "github.com/zeromicro/go-zero/core/logx"
- )
- type SearchLimitLogic struct {
- ctx context.Context
- svcCtx *svc.ServiceContext
- logx.Logger
- }
- func NewSearchLimitLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SearchLimitLogic {
- return &SearchLimitLogic{
- ctx: ctx,
- svcCtx: svcCtx,
- Logger: logx.WithContext(ctx),
- }
- }
- // SearchLimit 标讯搜索限制内容
- func (l *SearchLimitLogic) SearchLimit(in *bxcore.SearchLimitReq) (*bxcore.SearchLimitResp, error) {
- if in.UserId == "" || !util.IsCanLogin(in.UserId) {
- return &bxcore.SearchLimitResp{
- Data: fmt.Sprintf("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\">需要登录!"),
- }, nil
- }
- status := MC.If(IC.C.LimitSearchText.Flag, "打开", "关闭").(string)
- if in.SearchType == "update" {
- var isInit bool
- if in.Flag == -2 { //重置
- status = "重置"
- isInit = true
- } else if in.Flag == -1 && IC.C.LimitSearchText.Flag { //关闭
- status = "关闭"
- IC.C.LimitSearchText.Flag = false
- util.LimitSearchClear()
- } else if in.Flag == 1 && !IC.C.LimitSearchText.Flag { //打开
- status = "打开"
- IC.C.LimitSearchText.Flag = true
- isInit = true
- } else {
- if IC.C.LimitSearchText.Flag {
- status = "打开"
- } else {
- status = "关闭"
- }
- }
- if IC.C.LimitSearchText.Flag {
- //并发总量
- if (in.Count > 0 || in.Count == -1 || in.Count == -2) && int(in.Count) != IC.C.LimitSearchText.Count {
- IC.C.LimitSearchText.Count = int(in.Count)
- isInit = true
- }
- //验证字段
- if in.LimitItems != "" {
- IC.C.LimitSearchText.LimitItems = strings.Split(in.LimitItems, ",")
- isInit = true
- }
- //两次请求间隔时间
- if in.TimeOut > 0 || in.TimeOut == -1 {
- IC.C.LimitSearchText.TimeOut = int(in.TimeOut)
- }
- //免费用户 单独通道占比
- if in.Percentage > 0 {
- IC.C.LimitSearchText.Percentage = int(in.Percentage)
- }
- //未登录用户 单独通道占比
- if in.NoLogin > 0 {
- IC.C.LimitSearchText.NoLogin = int(in.NoLogin)
- }
- //付费用户 保留通道数
- if in.ForPayer > 0 {
- IC.C.LimitSearchText.ForPayer = int(in.ForPayer)
- }
- if isInit {
- util.LimitSearchInit()
- }
- }
- }
- return &bxcore.SearchLimitResp{
- Data: fmt.Sprint("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\">" + fmt.Sprintf(IC.C.LimitSearchText.Msg, status, IC.C.LimitSearchText.Count, IC.C.LimitSearchText.TimeOut, IC.C.LimitSearchText.Percentage, IC.C.LimitSearchText.NoLogin, IC.C.LimitSearchText.ForPayer, strings.Join(IC.C.LimitSearchText.LimitItems, ","))),
- }, nil
- }
|