diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 1e79f64bf..b0c83e869 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -190,13 +190,13 @@ class IssuesController < ApplicationController @issue.project_issues_index = @issue.project.issues.last.nil? ? 1 : @issue.project.issues.last.project_issues_index + 1 if @issue.save - # senduser = User.find(params[:issue][:assigned_to_id]) - # issue_id = @issue.id - # issue_title = params[:issue][:subject] - # priority_id = params[:issue][:priority_id] - # - # ps = ProjectsService.new - # ps.send_wechat_project_issue_notice senduser,@issue.project,issue_id,issue_title,priority_id + senduser = User.find(params[:issue][:assigned_to_id]) + issue_id = @issue.id + issue_title = params[:issue][:subject] + priority_id = params[:issue][:priority_id] + + ps = ProjectsService.new + ps.send_wechat_project_issue_notice senduser,@issue.project,issue_id,issue_title,priority_id call_hook(:controller_issues_new_after_save, { :params => params, :issue => @issue}) respond_to do |format| @@ -591,16 +591,16 @@ class IssuesController < ApplicationController end @issue.safe_attributes = issue_attributes - # senduser = User.find(params[:issue][:assigned_to_id]) - # - # if senduser.id != User.current.id - # issue_id = @issue.id - # issue_title = params[:issue][:subject] - # priority_id = params[:issue][:priority_id] - # - # ps = ProjectsService.new - # ps.send_wechat_project_issue_notice senduser,@issue.project,issue_id,issue_title,priority_id - # end + senduser = User.find(params[:issue][:assigned_to_id]) + + if senduser.id != User.current.id + issue_id = @issue.id + issue_title = params[:issue][:subject] + priority_id = params[:issue][:priority_id] + + ps = ProjectsService.new + ps.send_wechat_project_issue_notice senduser,@issue.project,issue_id,issue_title,priority_id + end @priorities = IssuePriority.active @allowed_statuses = @issue.new_statuses_allowed_to(User.current) diff --git a/app/services/projects_service.rb b/app/services/projects_service.rb index 5f8d5323a..8de96fff4 100644 --- a/app/services/projects_service.rb +++ b/app/services/projects_service.rb @@ -331,28 +331,28 @@ class ProjectsService {:status => status,:message => message} end - # def send_wechat_project_issue_notice user,project,issue_id,issue_title,priority_id - # count = ShieldWechatMessage.where("container_type='User' and container_id=#{user.id} and shield_type='Project' and shield_id=#{project.id}").count - # if count == 0 - # title = "您有新的issue需要解决" - # remark = "点击详情查看issue" - # - # case priority_id - # when 1 - # priority = "低" - # when - # priority = "正常" - # when - # priority = "高" - # when - # priority = "紧急" - # when - # priority = "立刻" - # end - # - # ws = WechatService.new - # ws.project_issue_notice user.id, "issues", issue_id,title, issue_title,priority, remark - # end - # end + def send_wechat_project_issue_notice user,project,issue_id,issue_title,priority_id + count = ShieldWechatMessage.where("container_type='User' and container_id=#{user.id} and shield_type='Project' and shield_id=#{project.id}").count + if count == 0 + title = "您有新的issue需要解决" + remark = "点击详情查看issue" + + case priority_id + when 1 + priority = "低" + when + priority = "正常" + when + priority = "高" + when + priority = "紧急" + when + priority = "立刻" + end + + ws = WechatService.new + ws.project_issue_notice user.id, "issues", issue_id,title, issue_title,priority, remark + end + end end diff --git a/app/services/wechat_service.rb b/app/services/wechat_service.rb index 429c95f60..423676983 100644 --- a/app/services/wechat_service.rb +++ b/app/services/wechat_service.rb @@ -419,17 +419,17 @@ class WechatService end end - # def project_issue_notice(user_id, type, id, first, key1, key2,remark="") - # uw = UserWechat.where(user_id: user_id).first - # unless uw.nil? - # data = two_keys_template uw.openid,Wechat.config.project_issue_notice, type, id, first, key1, key2,remark - # begin - # req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) - # rescue Exception => e - # Rails.logger.error "[project_issue_notice] ===> #{e}" - # end - # Rails.logger.info "send over. #{req}" - # end - # end + def project_issue_notice(user_id, type, id, first, key1, key2,remark="",uid=0) + uw = UserWechat.where(user_id: user_id).first + unless uw.nil? + data = two_keys_template uw.openid,Wechat.config.project_issue_notice, type, id, first, key1, key2,remark,0 + begin + req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data) + rescue Exception => e + Rails.logger.error "[project_issue_notice] ===> #{e}" + end + Rails.logger.info "send over. #{req}" + end + end end \ No newline at end of file diff --git a/config/wechat.yml.test b/config/wechat.yml.test index c0676cc26..8c0dafc2f 100644 --- a/config/wechat.yml.test +++ b/config/wechat.yml.test @@ -24,6 +24,7 @@ default: &default create_project_notice: "R2ZaQKJfDJgujPcHWPzadKHIRkIyj2CjX2o_qIuRqig" project_review_notice: "ip192wVXTav3qchgUn9_7B6lFfTlCZjwL7A1tncTOuc" join_project_notice: "3KnMQEMUCmQWkB5JvzrpmguEwnN8bvUHUdpOTudxv_M" + project_issue_notice: "HAF2aCta7BtnaOd_cotGvU4tErGWwCd9I9aiClFN7w8" auto_openid_url_1: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.forge.trustie.net/wechat/user_activities" auto_openid_url_2: "&response_type=code&scope=snsapi_base&state="