Selaa lähdekoodia

增加群发短信功能

abiao 4 vuotta sitten
vanhempi
commit
0fe23c801e

+ 77 - 0
app/models/group_message.rb

@@ -0,0 +1,77 @@
+# encoding:utf-8
+class GroupMessage < ActiveRecord::Base
+  has_paper_trail
+  belongs_to :depart_record
+  self.table_name = "group_messages"
+
+  def get_push_count
+
+    if self.push_count.to_i >0
+      # return self.push_count
+    end
+
+      if self.user_id.start_with?("sql=select * ")
+        sql = "select count(*) as sqlcount "
+        item = WxUser.find_by_sql(sql)
+        if !item.blank?
+          c = item[0].sqlcount
+          if self.push_count == 0 
+            self.push_count  = c
+            self.save
+          end
+          return c
+        end
+      end
+
+   end
+
+
+
+  rails_admin do
+    navigation_label '推送管理'
+    weight -220
+
+    list do
+      items_per_page 10
+      filters [:id, :name, :name]
+      field :id
+      field :user_id
+      # field :get_push_count
+      field :code
+      field :name
+      field :keyword1
+      field :keyword2
+      field :keyword3
+      field :status
+      field :remark
+      field :created_at
+    end
+
+    show do
+      field :id
+      field :user_id
+      # field :get_push_count
+      field :code
+      field :name
+      field :keyword1
+      field :keyword2
+      field :keyword3
+      field :status
+      field :remark
+      field :created_at
+      field :updated_at
+    end
+
+    edit do
+      field :user_id
+      field :code
+      field :name
+      field :keyword1
+      field :keyword2
+      field :keyword3
+      field :status
+      field :remark
+    end
+  end
+
+end

+ 33 - 0
app/models/group_message_record.rb

@@ -0,0 +1,33 @@
+# encoding:utf-8
+class GroupMessageRecord < ActiveRecord::Base
+  has_paper_trail  
+  self.table_name = "group_message_records"
+  belongs_to :wx_user , :foreign_key => :wx_user_id
+  belongs_to :group_message
+
+  rails_admin do
+    navigation_label '推送管理'
+    parent GroupMessage
+    weight -220
+
+    list do
+      filters [:id, :wx_user, :group_message_id]
+      field :id
+      field :wx_user    
+      field :group_message
+    end
+
+    show do
+      field :id
+      field :wx_user
+      field :group_message
+    end
+
+    edit do
+      field :id
+      field :wx_user_id
+      field :group_message_id
+    end
+  end
+
+end

+ 8 - 0
config/initializers/rails_admin.rb

@@ -21,6 +21,8 @@ require Rails.root.join('lib', 'rails_admin', 'generate_user_perfomance')
 require Rails.root.join('lib', 'rails_admin', 'generate_live_award')
 require Rails.root.join('lib', 'rails_admin', 'balance_order_confirm')
 require Rails.root.join('lib', 'rails_admin', 'generate_order_sheet')
+require Rails.root.join('lib','rails_admin', 'group_message_redirect')
+
 
 
 
@@ -46,6 +48,8 @@ RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::GenerateUserPe
 RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::GenerateLiveAward)
 RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::BalanceOrderConfirm)
 RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::GenerateOrderSheet)
+RailsAdmin::Config::Actions.register(RailsAdmin::Config::Actions::GroupMessageRedirect)
+
 
 
 
@@ -143,6 +147,10 @@ RailsAdmin.config do |config|
       only ["PushTmpl"]
     end
 
+    group_message_redirect do
+      only ["GroupMessage"]
+    end
+
     push_xcx_tmpl_redirect do
       only ["XcxPushTmpl"]
     end

+ 17 - 0
config/locales/models/group_message.yml

@@ -0,0 +1,17 @@
+zh-CN:
+  activerecord:
+    models:
+      group_message: 短信推送模板
+    attributes:
+      group_message:
+        depart_record_id: 部门ID
+        depart_record: 部门
+        name: 标题
+        keyword1: 内容1
+        keyword2: 内容2
+        keyword3: 内容3
+        status: 状态
+        get_push_count: 发送次数
+        remark: 备注
+        created_at: 创建时间
+        updated_at: 更新时间

+ 9 - 0
config/locales/models/group_message_record.yml

@@ -0,0 +1,9 @@
+zh-CN:
+  activerecord:
+    models:
+      group_message_record: 公众号推送模板记录
+    attributes:
+      group_message_record:
+        wx_user_id: 微信用户ID
+        wx_user: 微信用户
+        group_message_id: 推送模板ID

+ 2 - 0
config/locales/rails_admin.zh-CN.yml

@@ -165,6 +165,8 @@ zh-CN:
         breadcrumb: "是否放款"
       push_tmpl_redirect:
         menu: "推送"
+       group_message_redirect:
+          menu: "群发"
       push_xcx_tmpl_redirect:
         menu: "推送"
       correct_takecash:

+ 49 - 0
db/migrate/20210815114628_create_group_messages.rb

@@ -0,0 +1,49 @@
+# encoding:utf-8
+class CreateGroupMessages < ActiveRecord::Migration
+  def up
+    #群发短信
+    create_table :group_messages do |t|
+      # 部门
+      t.column :depart_record_id, :integer, :limit => 4, :default => 0
+      # 模版码
+      t.column :code, :string, :limit => 64,unique: true
+      # 模版名称
+      t.column :name, :string, :limit => 128, :default => 0
+      # 内容一
+      t.column :keyword1, :string, :limit => 128
+      # 内容二
+      t.column :keyword2, :string, :limit => 128
+      # 内容三
+      t.column :keyword3, :string, :limit => 128
+      # 发送总数
+      t.column :count, :integer, :limit => 11
+      # 描述
+      t.column :remark, :string, :limit => 128
+      t.timestamps
+    end
+
+    add_index :group_messages,:code,:name => "idx_code"
+
+    #群发短信记录
+    create_table :group_message_records do |t|
+      # 微信ID
+      t.column :wx_user_id, :integer, :limit => 4, :default => 0
+      # 手机号码
+      t.column :mobile, :string, :limit => 64,unique: true
+      # 群发ID
+      t.column :group_message_id, :string, :limit => 128, :default => 0
+      t.timestamps
+    end
+
+    add_index :group_message_records,:mobile,:name => "idx_mobile"
+
+
+  end
+
+  def down
+    drop_table :group_messages
+    drop_table :group_message_records
+
+  end
+
+end

+ 35 - 0
lib/rails_admin/group_message_redirect.rb

@@ -0,0 +1,35 @@
+#encoding
+module RailsAdmin
+  module Config
+    module Actions
+
+        class GroupMessageRedirect < RailsAdmin::Config::Actions::Base
+            register_instance_option :visible?  do
+          authorized?
+            end
+
+            register_instance_option :member do
+                true
+            end
+
+            register_instance_option :link_icon do
+                'icon-share'
+            end
+
+            register_instance_option :pjax? do
+                false
+            end
+
+            register_instance_option :controller do
+                Proc.new do
+                    url = "#{CONFIG_FILE["app_host"]}/railsadmin/group/message/#{@object.id}"
+                    open(url)
+                    redirect_to :back, notice: "已发送!"
+                end
+            end
+
+        end
+
+    end
+  end
+end