Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
app_push
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ikcrm_server
app_push
Commits
d3f6c0cd
Commit
d3f6c0cd
authored
Dec 24, 2019
by
liangyuzhe
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug
parent
105b69ea
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
61 additions
and
40 deletions
+61
-40
app/controllers/pushs_controller.rb
+12
-9
app/services/igetui/pusher.rb
+7
-6
app/services/push_tool_client.rb
+7
-7
app/workers/push_worker.rb
+1
-1
config/database.yml
+11
-4
config/puma.rb
+23
-13
No files found.
app/controllers/pushs_controller.rb
View file @
d3f6c0cd
...
...
@@ -21,21 +21,24 @@ class PushsController < ApplicationController
param!
:message
,
String
,
required:
true
param!
:igetui_opts
,
String
param!
:app_type
,
String
param!
:sync_push
,
String
param!
:sync_push
,
:boolean
param!
:user_id
,
String
,
required:
true
igetui_opts
=
JSON
.
parse
(
params
[
:igetui_opts
])
rescue
{}
message
=
JSON
.
parse
(
params
[
:message
])
rescue
{}
user_id
=
JSON
.
parse
(
params
[
:user_id
])
rescue
""
user_device_exist
=
UserDevice
.
where
(
user_id:
user_id
).
exists?
user_device_exist
=
UserDevice
.
where
(
user_id:
params
[
:user_id
]).
exists?
unless
user_device_exist
render
json:
{
code:
-
1
,
message:
'user_device找不到,user_id错误'
}
end
token
=
token_and_options
(
request
).
first
if
validate_token
(
params
[
:app_name
],
token
)
push_sync
(
params
[
:sync_push
],
{
user_ids:
Array
.
new
(
user_id
),
message:
message
,
app_type:
params
[
:app_type
],
igetui_opts:
igetui_opts
.
merge
(
pusher_type:
'push_message_to_single'
)})
token_array
=
token_and_options
(
request
)
if
token_array
.
blank?
render
json:
{
code:
-
1
,
message:
'token错误'
}
end
if
validate_token
(
params
[
:app_name
],
token_array
.
first
)
push_sync
(
params
[
:sync_push
],
{
user_ids:
Array
(
params
[
:user_id
]),
message:
message
,
app_type:
params
[
:app_type
],
igetui_opts:
igetui_opts
.
merge
(
pusher_type:
'push_message_to_single'
)})
render
json:
{
code:
0
,
message:
'success'
,
describe:
'异步任务正在处理'
}
...
...
@@ -56,7 +59,7 @@ class PushsController < ApplicationController
igetui_opts
=
JSON
.
parse
(
params
[
:igetui_opts
])
rescue
{}
message
=
JSON
.
parse
(
params
[
:message
])
rescue
{}
user_ids
=
JSON
.
parse
(
params
[
:user_ids
])
rescue
[]
user_ids
=
params
[
:user_ids
]
rescue
[]
user_devices_exists
=
UserDevice
.
where
(
user_id:
user_ids
).
exists?
unless
user_devices_exists
...
...
app/services/igetui/pusher.rb
View file @
d3f6c0cd
...
...
@@ -3,21 +3,20 @@ module Igetui
def
initialize
(
user_device_ids
,
opts
)
opts
=
HashWithIndifferentAccess
.
new
(
opts
)
@template_data
=
opts
[
:
template_data
]
@template_data
=
opts
[
:
message
]
@igetui_opts
=
opts
[
:igetui_opts
]
@user_device_ids
=
user_device_ids
@pusher
=
pusher
(
opts
[
:device_platform
])
@pusher_type
=
opts
[
:pusher_type
]
@pusher_type
=
@igetui_
opts
[
:pusher_type
]
end
def
perform
@template_data
[
:push_type
]
||=
config
[
:push_type
]
@template_data
[
:push_type
]
||=
2
@igetui_opts
[
:transmission_type
]
||=
0
@igetui_opts
[
:transmission_content
]
=
@template_data
.
as_json
template_type
=
'TransmissionTemplate'
template_data
=
@igetui_opts
result
=
push_message_to
(
@pusher
,
@pusher_type
,
template_type
,
template_data
,
@user_device_ids
)
::
Log
.
info
(
"igetui_push:
\n
template_data:
#{
template_data
}
\n
user_device_ids:
#{
@user_device_ids
}
\n
response:
#{
result
}
"
)
end
...
...
@@ -35,8 +34,7 @@ module Igetui
def
push_message_to
(
pusher
,
pusher_type
,
template_type
,
template_data
,
client_id
)
client_id_list
=
Array
(
client_id
)
template
=
set_template_data
(
template_type
,
template_data
)
case
pusher_type
when
'push_message_to_single'
message
=
IGeTui
::
SingleMessage
.
new
...
...
@@ -44,6 +42,7 @@ module Igetui
client_id_list
.
map
do
|
client_id
|
client
=
IGeTui
::
Client
.
new
(
client_id
)
byebug
pusher
.
push_message_to_single
(
message
,
client
)
end
when
'push_message_to_list'
...
...
@@ -79,6 +78,8 @@ module Igetui
@template
.
transmission_type
=
template_data
[
:transmission_type
]
if
template_data
.
key?
(
:transmission_type
)
@template
.
set_push_info
(
*
template_data
[
:push_info
])
if
template_data
.
key?
:push_info
end
@template
end
end
end
app/services/push_tool_client.rb
View file @
d3f6c0cd
...
...
@@ -10,11 +10,11 @@ class PushToolClient
def
do_push
Settings
.
platform
=
@opts
[
:app_type
]
||
Settings
::
DEFAULT
@push_device_collections
||=
UserDevice
.
where
(
user_id:
@user_ids
).
group_by
(
&
:platform
)
@igetui_push_device_collections
||=
@push_device_collections
.
group_by
(
&
:device_platform
)
igetui_android_device_ids
=
@igetui_push_device_collections
[
'android'
].
map
(
&
:device_id
)
igetui_ios_device_ids
=
@igetui_push_device_collections
[
'ios'
].
map
(
&
:device_id
)
@igetui_push_device_collections
||=
@push_device_collections
[
'igetui'
].
group_by
(
&
:device_platform
)
if
@push_device_collections
[
'igetui'
].
is_a?
Array
if
@igetui_push_device_collections
.
is_a?
Hash
igetui_android_device_ids
=
@igetui_push_device_collections
[
'android'
].
map
(
&
:device_id
)
if
@igetui_push_device_collections
[
'android'
].
is_a?
Array
igetui_ios_device_ids
=
@igetui_push_device_collections
[
'ios'
].
map
(
&
:devendice_id
)
if
@igetui_push_device_collections
[
'ios'
].
is_a?
Array
end
Igetui
::
Pusher
.
new
(
igetui_android_device_ids
,
@opts
.
merge
(
device_platform:
'android'
)).
perform
if
igetui_android_device_ids
.
present?
Igetui
::
Pusher
.
new
(
igetui_ios_device_ids
,
@opts
.
merge
(
device_platform:
'ios'
)).
perform
if
igetui_ios_device_ids
.
present?
...
...
@@ -23,8 +23,8 @@ class PushToolClient
# Push::IgetuiIos.push(@push_collections[:igetui_ios], @opts) if @push_collections[:apns].present?
# Push::IgetuiAndroid.push(@push_collections[:igetui_android], @opts) if @push_collections[:apns].present?
xiaomi_device_ids
=
@push_device_collections
[
'xiaomi'
].
map
(
&
:device_id
)
huawei_device_ids
=
@push_device_collections
[
'huawei'
].
map
(
&
:device_id
)
xiaomi_device_ids
=
@push_device_collections
[
'xiaomi'
].
map
(
&
:device_id
)
if
@push_device_collections
[
'xiaomi'
].
is_a?
Array
huawei_device_ids
=
@push_device_collections
[
'huawei'
].
map
(
&
:device_id
)
if
@push_device_collections
[
'huawei'
].
is_a?
Array
Xiaomi
::
Pusher
.
new
(
xiaomi_device_ids
,
@opts
[
:message
]).
perform
if
xiaomi_device_ids
.
present?
Huawei
::
Pusher
.
new
(
huawei_device_ids
,
@opts
[
:message
]).
perform
if
huawei_device_ids
.
present?
...
...
app/workers/push_worker.rb
View file @
d3f6c0cd
...
...
@@ -3,7 +3,7 @@ class PushWorker
sidekiq_options
queue: :push
def
perform
(
opts
)
::
PushToolClient
.
do_push
(
opts
)
::
PushToolClient
.
new
(
opts
).
do_push
# Push.push(user_ids, message, igetui_opts, platform)
rescue
StandardError
=>
e
ErrorLog
.
error
(
e
)
...
...
config/database.yml
View file @
d3f6c0cd
...
...
@@ -5,13 +5,20 @@
# gem 'sqlite3'
#
default
:
&default
adapter
:
sqlite3
pool
:
<%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout
:
5000
adapter
:
mysql2
encoding
:
utf8
pool
:
10
host
:
rdscbq34656z0ix59br0.mysql.rds.aliyuncs.com
development
:
<<
:
*default
database
:
db/development.sqlite3
#database: vcooline_ikcrm_testing
#host: 10.140.235.122
#username: vcooline_ikcrm_testing
#password: ikcrm_123
database
:
crm_test
username
:
lx_duli_test
password
:
'
@NshoftqW!$%0eFQ'
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
...
...
config/puma.rb
View file @
d3f6c0cd
require
'json'
file
=
File
.
read
(
'config/server.json'
)
deploy_config
=
JSON
.
parse
(
file
)
port
deploy_config
[
'http_port'
]
environment
'production'
workers
2
threads
0
,
16
bind
"unix://
#{
deploy_config
[
'deploy_to'
]
}
/shared/tmp/sockets/push-puma.sock"
pidfile
"
#{
deploy_config
[
'deploy_to'
]
}
/shared/tmp/pids/puma.pid"
state_path
"
#{
deploy_config
[
'deploy_to'
]
}
/shared/tmp/pids/puma.state"
stdout_redirect
"
#{
deploy_config
[
'deploy_to'
]
}
/current/log/puma_error.log"
,
"
#{
deploy_config
[
'deploy_to'
]
}
/current/log/puma_access.log"
,
true
plugin
:tmp_restart
unless
ENV
[
'RAILS_ENV'
]
==
'development'
file
=
File
.
read
(
'config/server.json'
)
deploy_config
=
JSON
.
parse
(
file
)
port
deploy_config
[
'http_port'
]
environment
'production'
workers
2
threads
0
,
16
bind
"unix://
#{
deploy_config
[
'deploy_to'
]
}
/shared/tmp/sockets/push-puma.sock"
pidfile
"
#{
deploy_config
[
'deploy_to'
]
}
/shared/tmp/pids/puma.pid"
state_path
"
#{
deploy_config
[
'deploy_to'
]
}
/shared/tmp/pids/puma.state"
stdout_redirect
"
#{
deploy_config
[
'deploy_to'
]
}
/current/log/puma_error.log"
,
"
#{
deploy_config
[
'deploy_to'
]
}
/current/log/puma_access.log"
,
true
plugin
:tmp_restart
else
port
8094
environment
'development'
workers
1
threads
0
,
16
bind
"unix://tmp/sockets/push-puma.sock"
pidfile
"tmp/pids/puma.pid"
state_path
"tmp/pids/puma.state"
plugin
:tmp_restart
worker_timeout
7200
end
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment