Commit d3f6c0cd by liangyuzhe

bug

parent 105b69ea
...@@ -21,21 +21,24 @@ class PushsController < ApplicationController ...@@ -21,21 +21,24 @@ class PushsController < ApplicationController
param! :message, String, required: true param! :message, String, required: true
param! :igetui_opts, String param! :igetui_opts, String
param! :app_type, String param! :app_type, String
param! :sync_push, String param! :sync_push, :boolean
param! :user_id, String, required: true param! :user_id, String, required: true
igetui_opts = JSON.parse(params[:igetui_opts]) rescue {} igetui_opts = JSON.parse(params[:igetui_opts]) rescue {}
message = JSON.parse(params[:message]) 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 unless user_device_exist
render json: { code: -1, message: 'user_device找不到,user_id错误'} render json: { code: -1, message: 'user_device找不到,user_id错误'}
end end
token = token_and_options(request).first token_array = token_and_options(request)
if validate_token(params[:app_name], token) if token_array.blank?
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')}) 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: '异步任务正在处理'} render json: { code: 0, message: 'success', describe: '异步任务正在处理'}
...@@ -56,7 +59,7 @@ class PushsController < ApplicationController ...@@ -56,7 +59,7 @@ class PushsController < ApplicationController
igetui_opts = JSON.parse(params[:igetui_opts]) rescue {} igetui_opts = JSON.parse(params[:igetui_opts]) rescue {}
message = JSON.parse(params[:message]) 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? user_devices_exists = UserDevice.where(user_id: user_ids).exists?
unless user_devices_exists unless user_devices_exists
......
...@@ -3,21 +3,20 @@ module Igetui ...@@ -3,21 +3,20 @@ module Igetui
def initialize(user_device_ids, opts) def initialize(user_device_ids, opts)
opts = HashWithIndifferentAccess.new(opts) opts = HashWithIndifferentAccess.new(opts)
@template_data = opts[:template_data] @template_data = opts[:message]
@igetui_opts = opts[:igetui_opts] @igetui_opts = opts[:igetui_opts]
@user_device_ids = user_device_ids @user_device_ids = user_device_ids
@pusher = pusher(opts[:device_platform]) @pusher = pusher(opts[:device_platform])
@pusher_type = opts[:pusher_type] @pusher_type = @igetui_opts[:pusher_type]
end end
def perform def perform
@template_data[:push_type] ||= config[:push_type] @template_data[:push_type] ||= 2
@igetui_opts[:transmission_type] ||= 0 @igetui_opts[:transmission_type] ||= 0
@igetui_opts[:transmission_content] = @template_data.as_json @igetui_opts[:transmission_content] = @template_data.as_json
template_type = 'TransmissionTemplate' template_type = 'TransmissionTemplate'
template_data = @igetui_opts template_data = @igetui_opts
result = push_message_to(@pusher, @pusher_type, template_type, template_data, @user_device_ids) 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}") ::Log.info("igetui_push: \n template_data: #{template_data}\n user_device_ids: #{@user_device_ids}\n response: #{result}")
end end
...@@ -36,7 +35,6 @@ module Igetui ...@@ -36,7 +35,6 @@ module Igetui
client_id_list = Array(client_id) client_id_list = Array(client_id)
template = set_template_data(template_type, template_data) template = set_template_data(template_type, template_data)
case pusher_type case pusher_type
when 'push_message_to_single' when 'push_message_to_single'
message = IGeTui::SingleMessage.new message = IGeTui::SingleMessage.new
...@@ -44,6 +42,7 @@ module Igetui ...@@ -44,6 +42,7 @@ module Igetui
client_id_list.map do |client_id| client_id_list.map do |client_id|
client = IGeTui::Client.new(client_id) client = IGeTui::Client.new(client_id)
byebug
pusher.push_message_to_single(message, client) pusher.push_message_to_single(message, client)
end end
when 'push_message_to_list' when 'push_message_to_list'
...@@ -79,6 +78,8 @@ module Igetui ...@@ -79,6 +78,8 @@ module Igetui
@template.transmission_type = template_data[:transmission_type] if template_data.key?(:transmission_type) @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 @template.set_push_info(*template_data[:push_info]) if template_data.key? :push_info
end end
@template
end end
end end
end end
...@@ -10,11 +10,11 @@ class PushToolClient ...@@ -10,11 +10,11 @@ class PushToolClient
def do_push def do_push
Settings.platform = @opts[:app_type] || Settings::DEFAULT Settings.platform = @opts[:app_type] || Settings::DEFAULT
@push_device_collections ||= UserDevice.where(user_id: @user_ids).group_by(&:platform) @push_device_collections ||= UserDevice.where(user_id: @user_ids).group_by(&:platform)
@igetui_push_device_collections ||= @push_device_collections['igetui'].group_by(&:device_platform) if @push_device_collections['igetui'].is_a? Array
@igetui_push_device_collections ||= @push_device_collections.group_by(&:device_platform) 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_android_device_ids = @igetui_push_device_collections['android'].map(&:device_id) igetui_ios_device_ids = @igetui_push_device_collections['ios'].map(&:devendice_id) if @igetui_push_device_collections['ios'].is_a? Array
igetui_ios_device_ids = @igetui_push_device_collections['ios'].map(&:device_id) end
Igetui::Pusher.new(igetui_android_device_ids, @opts.merge(device_platform: 'android')).perform if igetui_android_device_ids.present? 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? 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 ...@@ -23,8 +23,8 @@ class PushToolClient
# Push::IgetuiIos.push(@push_collections[:igetui_ios], @opts) if @push_collections[:apns].present? # 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? # Push::IgetuiAndroid.push(@push_collections[:igetui_android], @opts) if @push_collections[:apns].present?
xiaomi_device_ids = @push_device_collections['xiaomi'].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) 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? 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? Huawei::Pusher.new(huawei_device_ids, @opts[:message]).perform if huawei_device_ids.present?
......
...@@ -3,7 +3,7 @@ class PushWorker ...@@ -3,7 +3,7 @@ class PushWorker
sidekiq_options queue: :push sidekiq_options queue: :push
def perform(opts) def perform(opts)
::PushToolClient.do_push(opts) ::PushToolClient.new(opts).do_push
# Push.push(user_ids, message, igetui_opts, platform) # Push.push(user_ids, message, igetui_opts, platform)
rescue StandardError => e rescue StandardError => e
ErrorLog.error(e) ErrorLog.error(e)
......
...@@ -5,13 +5,20 @@ ...@@ -5,13 +5,20 @@
# gem 'sqlite3' # gem 'sqlite3'
# #
default: &default default: &default
adapter: sqlite3 adapter: mysql2
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> encoding: utf8
timeout: 5000 pool: 10
host: rdscbq34656z0ix59br0.mysql.rds.aliyuncs.com
development: development:
<<: *default <<: *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 # Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake". # re-generated from your development database when you run "rake".
......
require 'json' unless ENV['RAILS_ENV'] == 'development'
file = File.read('config/server.json')
file = File.read('config/server.json') deploy_config = JSON.parse(file)
deploy_config = JSON.parse(file) port deploy_config['http_port']
port deploy_config['http_port'] environment 'production'
environment 'production' workers 2
workers 2 threads 0, 16
threads 0, 16 bind "unix://#{deploy_config['deploy_to']}/shared/tmp/sockets/push-puma.sock"
bind "unix://#{deploy_config['deploy_to']}/shared/tmp/sockets/push-puma.sock" pidfile "#{deploy_config['deploy_to']}/shared/tmp/pids/puma.pid"
pidfile "#{deploy_config['deploy_to']}/shared/tmp/pids/puma.pid" state_path "#{deploy_config['deploy_to']}/shared/tmp/pids/puma.state"
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
stdout_redirect "#{deploy_config['deploy_to']}/current/log/puma_error.log", "#{deploy_config['deploy_to']}/current/log/puma_access.log", true plugin :tmp_restart
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
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment