ad_space 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f5fd64d01bfc45cc173f1e95fbaea9b6ac23291e37feb5c072f7f9477bb651ce
4
- data.tar.gz: 21c7b3e8506219e0bf6f6ad2c979b1ee2de5d71cb56d4804b8948cfebc958d64
3
+ metadata.gz: ff09e283082937006fac5e5c5fc680d127b35a97cc28928bc9fd9f3205b9bfa4
4
+ data.tar.gz: 44c78d633ad5b013bb11795214213da6cd784f8669ce6b83d2862f2a23e1b557
5
5
  SHA512:
6
- metadata.gz: c8e5f37efeaf85765b65ae4c5d487fec4df002bbcc5074edaa1501fe88c80daf2c30092ec2b44265473dc1b6b8bdafb723539321e4c85afa2f304cfd52d9665b
7
- data.tar.gz: 5bb47c04044cf966c4a7b6f65a98213a9e61cb61ad2bffd2ac689f67f726f8f69bec23cf3c591babcc7c2f9622bc6a60684674cf14461cf9fb0a234a07dfa93a
6
+ metadata.gz: f168f8126b3994431b54a23a91db8d9a4e9576bbf272341de1af6255fdf175c12e83f66cf1bcc7dc58fecec49928239cd6194c11db074e1cc20c919a11320270
7
+ data.tar.gz: 2103032800819be994b37d4d9d044375ea4b38d008879c4e426ccc3b4e4c6d5aa4d07994fc466d63817e89a21f415f7d8b0e741d621470111e4bb566c87ea280
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ad_space (0.1.6)
4
+ ad_space (0.1.7)
5
5
  active_model_serializers
6
6
  dotenv-rails
7
7
  rails (>= 7.1.1)
data/README.md CHANGED
@@ -91,8 +91,6 @@ mount AdSpace::Engine => "/ad_space"
91
91
  ## TODO
92
92
  - 预览广告功能,支持参数可以直接在手机端拉取自定广告,展示在特定的位置
93
93
  - 效果指标统计功能,ai 方案,计算成本
94
- - slot 编码 弄小一点,uuid 都弄小点
95
- - uuid 改为 trace_id 追踪码?
96
94
  - 各个指标如何统计
97
95
  - 异步任务规则,打点,异步通过阿里云日志写回,sidekiq 测试
98
96
  - tacker id 跟阿里云 获取统计 异步结算
@@ -106,3 +104,4 @@ mount AdSpace::Engine => "/ad_space"
106
104
  - 操作 调整UI
107
105
  - toast 消息
108
106
  - tailwindcss
107
+ - 平台 标题 开始时间 结束时间 位置 广告类型 可见性 目标版本
@@ -4,8 +4,7 @@ class AdSpace::Api::V1::AdvertisementsController < ActionController::API
4
4
  def index
5
5
  builder = AdSpace::Advertisement.includes(:slot).where(platform: params[:platform])
6
6
  builder = builder.published.unexpired
7
- builder = builder.where(slot_id: params[:slot_ids].split(",")) unless params[:slot_ids].blank?
8
-
7
+ builder = builder.joins(:slot).where("ad_space_slots.uuid": params[:slot_ids].split(",")) unless params[:slot_ids].blank?
9
8
  # TODO: 动态可配置,不同项目可以自定义特殊的查询条件,基于builder
10
9
  # 0. 判断是否有配置动态用户信息,proc
11
10
  # 1. 通过token获取用户信息 proc
@@ -38,8 +38,20 @@ module AdSpace
38
38
  archived_at.present?
39
39
  end
40
40
 
41
+ def dsp_ad?
42
+ ad_type == "dsp"
43
+ end
44
+
45
+ def custom_ad?
46
+ ad_type == "custom"
47
+ end
48
+
49
+ def trace_id
50
+ uuid
51
+ end
52
+
41
53
  def cover_url(size = nil)
42
- if object.splash?
54
+ if self.splash?
43
55
  return cover_sm.attached? ? cover_sm.url : nil if size == 'little'
44
56
  return cover_md.attached? ? cover_md.url : nil if size == 'middle'
45
57
  return cover_lg.attached? ? cover_lg.url : nil if size == 'large'
@@ -59,7 +71,9 @@ module AdSpace
59
71
  def generate_uuid
60
72
  if self.uuid.blank?
61
73
  begin
62
- self.uuid = SecureRandom.uuid
74
+ characters = ('a'..'z').to_a + ('0'..'9').to_a
75
+ random_string = Array.new(4) { characters.sample }.join
76
+ self.uuid = random_string
63
77
  end while self.class.exists?(uuid: uuid)
64
78
  end
65
79
  end
@@ -19,9 +19,11 @@ module AdSpace
19
19
  def generate_uuid
20
20
  if self.uuid.blank?
21
21
  begin
22
- self.uuid = SecureRandom.uuid
22
+ characters = ('a'..'z').to_a + ('0'..'9').to_a
23
+ random_string = Array.new(4) { characters.sample }.join
24
+ self.uuid = random_string
23
25
  end while self.class.exists?(uuid: uuid)
24
26
  end
25
27
  end
26
28
  end
27
- end
29
+ end
@@ -2,16 +2,16 @@
2
2
 
3
3
  module V1
4
4
  class AdvertisementSerializer < ActiveModel::Serializer
5
- attributes :uuid, :started_at, :ended_at, :slot, :ad_type, :visibility
5
+ attributes :trace_id, :started_at, :ended_at, :slot_id, :ad_type, :visibility, :weight
6
6
 
7
- attribute :scheme_url, if: -> { object.ad_type == :custom }
8
- attribute :image_url, if: -> { object.ad_type == :custom }
9
- attribute :dsp_type, if: -> { object.ad_type == :dsp }
7
+ attribute :scheme_url, if: -> { object.custom_ad? }
8
+ attribute :image_url, if: -> { object.custom_ad? }
9
+ attribute :dsp_type, if: -> { object.dsp_ad? }
10
10
 
11
11
  attribute :splash_ui_type, if: -> { object.splash? }
12
12
  attribute :splash_countdown, if: -> { object.splash? }
13
13
 
14
- def slot
14
+ def slot_id
15
15
  object.slot.uuid
16
16
  end
17
17
 
@@ -20,11 +20,12 @@ module V1
20
20
  end
21
21
 
22
22
  def ended_at
23
- object.started_at.to_i
23
+ object.ended_at.to_i
24
24
  end
25
25
 
26
26
  def image_url
27
27
  object.cover_url(instance_options[:size])
28
28
  end
29
29
  end
30
- end
30
+ end
31
+
@@ -1,3 +1,3 @@
1
1
  module AdSpace
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ad_space
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - 42up
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-06 00:00:00.000000000 Z
11
+ date: 2023-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails