searchlimitlogic.go 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package logic
  2. import (
  3. MC "app.yhyue.com/moapp/jybase/common"
  4. "context"
  5. "fmt"
  6. IC "jyBXCore/rpc/init"
  7. "jyBXCore/rpc/util"
  8. "jyBXCore/rpc/internal/svc"
  9. "jyBXCore/rpc/type/bxcore"
  10. "github.com/zeromicro/go-zero/core/logx"
  11. )
  12. type SearchLimitLogic struct {
  13. ctx context.Context
  14. svcCtx *svc.ServiceContext
  15. logx.Logger
  16. }
  17. func NewSearchLimitLogic(ctx context.Context, svcCtx *svc.ServiceContext) *SearchLimitLogic {
  18. return &SearchLimitLogic{
  19. ctx: ctx,
  20. svcCtx: svcCtx,
  21. Logger: logx.WithContext(ctx),
  22. }
  23. }
  24. // 标讯搜索限制内容
  25. func (l *SearchLimitLogic) SearchLimit(in *bxcore.SearchLimitReq) (*bxcore.SearchLimitResp, error) {
  26. if in.UserId == "" || !util.IsCanLogin(in.UserId) {
  27. return &bxcore.SearchLimitResp{
  28. Data: fmt.Sprintf("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\">需要登录!"),
  29. }, nil
  30. }
  31. status := MC.If(IC.C.LimitSearchText.Flag, "打开", "关闭").(string)
  32. if in.SearchType == "update" {
  33. if in.TimeOut > 0 || in.TimeOut == -1 {
  34. IC.C.LimitSearchText.TimeOut = int(in.TimeOut)
  35. }
  36. if (in.Count > 0 || in.Count == -1 || in.Count == -2) && int(in.Count) != IC.C.LimitSearchText.Count && IC.C.LimitSearchText.Flag {
  37. IC.C.LimitSearchText.Count = int(in.Count)
  38. util.LimitSearchInit()
  39. }
  40. if in.Flag == -2 { //重置
  41. status = "重置"
  42. util.LimitSearchInit()
  43. } else if in.Flag == -1 && IC.C.LimitSearchText.Flag { //关闭
  44. status = "关闭"
  45. IC.C.LimitSearchText.Flag = false
  46. util.LimitSearchClear()
  47. } else if in.Flag == 1 && !IC.C.LimitSearchText.Flag { //打开
  48. status = "打开"
  49. IC.C.LimitSearchText.Flag = true
  50. util.LimitSearchInit()
  51. } else {
  52. if IC.C.LimitSearchText.Flag {
  53. status = "打开"
  54. } else {
  55. status = "关闭"
  56. }
  57. }
  58. //vip 大会员等用户 单独通道占比
  59. if in.Percentage > 0 && IC.C.LimitSearchText.Flag {
  60. IC.C.LimitSearchText.Percentage = int(in.Percentage)
  61. }
  62. }
  63. return &bxcore.SearchLimitResp{
  64. 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)),
  65. }, nil
  66. }