From a07204111a83813d0dc73c48cd63168ebc63991b Mon Sep 17 00:00:00 2001 From: xiaoxiaoqiong Date: Wed, 1 Jun 2022 15:24:39 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=94=A8=E6=88=B7=E4=B8=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E6=97=B6=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/send_template_message_job.rb | 9 ++++++++- app/models/message_template/custom_tip.rb | 17 +++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/app/jobs/send_template_message_job.rb b/app/jobs/send_template_message_job.rb index bec3f7b08..557d4d0fa 100644 --- a/app/jobs/send_template_message_job.rb +++ b/app/jobs/send_template_message_job.rb @@ -8,13 +8,20 @@ class SendTemplateMessageJob < ApplicationJob receivers_id, template_id, props = args[0], args[1], args[2] template = MessageTemplate.find_by_id(template_id) return unless template.present? - receivers = User.where(id: receivers_id) + receivers = User.where(id: receivers_id).or(User.where(mail: receivers_id)) + not_exists_receivers = receivers_id - receivers.pluck(:id) - receivers.pluck(:mail) receivers_string, content, notification_url = MessageTemplate::CustomTip.get_message_content(receivers, template, props) Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {receivers_id: receivers_id, template_id: template_id, props: props}) receivers.find_each do |receiver| receivers_email_string, email_title, email_content = MessageTemplate::CustomTip.get_email_message_content(receiver, template, props) Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content) end + not_exists_receivers.each do |mail| + valid_email_regex = /^[a-zA-Z0-9]+([.\-_\\]*[a-zA-Z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/i + next unless (mail =~ valid_email_regex) + email_title, email_content = MessageTemplate::CustomTip.get_email_content(template, props) + Notice::Write::EmailCreateService.call(mail, email_title, email_content) + end when 'FollowTip' watcher_id = args[0] watcher = Watcher.find_by_id(watcher_id) diff --git a/app/models/message_template/custom_tip.rb b/app/models/message_template/custom_tip.rb index 6c5a3345d..f1e3096f8 100644 --- a/app/models/message_template/custom_tip.rb +++ b/app/models/message_template/custom_tip.rb @@ -48,4 +48,21 @@ class MessageTemplate::CustomTip < MessageTemplate Rails.logger.info("MessageTemplate::CustomTip.get_email_message_content [ERROR] #{e}") return '', '', '' end + + def self.get_email_content(template, props = {}) + return '', '', '' if template.blank? + title = template.email_title + content = template.email + props.each do |k, v| + title.gsub!("{#{k}}", v) + content.gsub!("{#{k}}", v) + end + title.gsub!('{platform}', PLATFORM) + content.gsub!('{platform}', PLATFORM) + + return title, content + rescue => e + Rails.logger.info("MessageTemplate::CustomTip.get_email_content [ERROR] #{e}") + return '', '' + end end \ No newline at end of file From 0b543f7ddab712fe6f0f77a64da5fe7aa627f439 Mon Sep 17 00:00:00 2001 From: xiaoxiaoqiong Date: Wed, 1 Jun 2022 16:08:20 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E9=80=9A=E7=9F=A5=E9=82=AE=E4=BB=B6?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=94=A8=E6=88=B7=E4=B8=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E6=97=B6=E5=8F=91=E9=80=81base=5Furl?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/message_template/custom_tip.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/models/message_template/custom_tip.rb b/app/models/message_template/custom_tip.rb index f1e3096f8..b0f628d6e 100644 --- a/app/models/message_template/custom_tip.rb +++ b/app/models/message_template/custom_tip.rb @@ -25,6 +25,7 @@ class MessageTemplate::CustomTip < MessageTemplate content.gsub!("{#{k}}", v) notification_url.gsub!("{#{k}}", v) end + notification_url.gsub!('{baseurl}', base_url) return receivers_string(receivers), content, notification_url rescue => e Rails.logger.info("MessageTemplate::CustomTip.get_message_content [ERROR] #{e}") @@ -42,6 +43,7 @@ class MessageTemplate::CustomTip < MessageTemplate content.gsub!('{receiver}', receiver&.real_name) title.gsub!('{platform}', PLATFORM) content.gsub!('{platform}', PLATFORM) + content.gsub!('{baseurl}', base_url) return receiver&.mail, title, content rescue => e @@ -59,6 +61,7 @@ class MessageTemplate::CustomTip < MessageTemplate end title.gsub!('{platform}', PLATFORM) content.gsub!('{platform}', PLATFORM) + content.gsub!('{baseurl}', base_url) return title, content rescue => e From 8ae55875165708bec23d081f74a927f99f559626 Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 8 Jun 2022 10:37:31 +0800 Subject: [PATCH 3/4] fix: search name use strip --- app/models/user.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index fa940c29e..bc9808c64 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -179,7 +179,7 @@ class User < Owner scope :active, lambda { where(status: STATUS_ACTIVE) } scope :like, lambda { |keywords| sql = "CONCAT(lastname, firstname) LIKE :search OR nickname LIKE :search OR login LIKE :search OR mail LIKE :search OR nickname LIKE :search" - where(sql, :search => "%#{keywords.split(" ").join('|')}%") unless keywords.blank? + where(sql, :search => "%#{keywords.strip}%") unless keywords.blank? } scope :simple_select, -> {select(:id, :login, :lastname,:firstname, :nickname, :gitea_uid, :type)} From 3e4dd90e1737ebc908a650f3bb44ec3e59d6d6fd Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 8 Jun 2022 10:46:55 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E5=B1=95=E7=A4=BA=E6=97=B6=E5=8F=AA=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=E9=A6=96=E6=9C=AB=E7=9A=84=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/user.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index bc9808c64..d3803a9f1 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -553,7 +553,8 @@ class User < Owner return '游客' unless logged? name = lastname + firstname name = name.blank? ? (nickname.blank? ? login : nickname) : name - name.gsub(/\s+/, '').strip #6.11 -hs + # name.gsub(/\s+/, '').strip #6.11 -hs + name.strip end def only_real_name