diff --git a/app/controllers/wechats_controller.rb b/app/controllers/wechats_controller.rb index 15d4ab2e1..2afb85ace 100644 --- a/app/controllers/wechats_controller.rb +++ b/app/controllers/wechats_controller.rb @@ -8,18 +8,7 @@ class WechatsController < ActionController::Base # default text responder when no other match on :text do |request, content| #邀请码 - begin - uw = user_binded?(request[:FromUserName]) - if !uw - return sendBind() - else - return join_class({invite_code: content}, uw.user) - end - rescue => e - logger.error e.inspect - logger.error e.backtrace.join("\n") - return request.reply.text e - end + sendBindClass(request, {invite_code: content}) end # When receive 'help', will trigger this responder @@ -48,24 +37,13 @@ class WechatsController < ActionController::Base # When subscribe user scan scene_id in public account on :scan, with: 'scene_id' do |request, ticket| - begin - uw = user_binded?(request[:FromUserName]) - if !uw - return sendBind() - else - return join_class({ticket: ticket}, uw.user) - end - rescue => e - logger.error e.inspect - logger.error e.backtrace.join("\n") - return request.reply.text e - end + sendBindClass(request, {ticket: ticket}) end # When no any on :scan responder can match subscribe user scaned scene_id on :event, with: 'scan' do |request| if request[:EventKey].present? - request.reply.text "event scan got EventKey #{request[:EventKey]} Ticket #{request[:Ticket]}" + sendBindClass(request, {ticket: request[:Ticket]}) end end @@ -161,6 +139,22 @@ class WechatsController < ActionController::Base end end + + def sendBindClass(request, params) + begin + uw = user_binded?(request[:FromUserName]) + if !uw + return sendBind(request) + else + return join_class(params, uw.user, request) + end + rescue => e + logger.error e.inspect + logger.error e.backtrace.join("\n") + return request.reply.text e + end + end + def default_msg(request) uw = user_binded?(request[:FromUserName]) if uw && uw.user @@ -187,20 +181,19 @@ class WechatsController < ActionController::Base end end - def join_class(params, user) + def join_class(params, user, request) course = nil - course = Course.where(qrcode: params[:ticket]) if params[:ticket] - course = Course.where(invite_code: params[:invite_code]) if params[:invite_code] - raise "课程不存在" if course.blank? + course = Course.where(qrcode: params[:ticket]).first if params[:ticket] + course = Course.where(invite_code: params[:invite_code]).first if params[:invite_code] + raise "课程不存在" unless course cs = CoursesService.new - status = cs.join_course(course.invite_code, user) + status = cs.join_course({invite_code: course.invite_code}, user) logger.info status if status[:state] != 0 raise CoursesService::JoinCourseError.message(status[:state]) end - course = status[:course] news = (1..1).each_with_object([]) { |n, memo| memo << { title: '恭喜您成功加入班级,开始学习吧!', content: "课程名称: #{course.name}\n班级名称: #{course.name}\n任课老师: #{course.teacher.show_name}\n进入班级,和小伙伴愉快的学习吧!"} } return request.reply.news(news) do |article, n, index| # article is return object diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 41fb18b61..60c053997 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -351,7 +351,7 @@ class CoursesService #如果加入角色为教师或者教辅,并且当前是学生,或者是要成为教辅,当前不是教辅,或者要成为教师,当前不是教师。那么要发送请求 elsif (params[:role] != "10" && roleName == "Student") || (params[:role] == "7" && roleName != "TeachingAsistant" ) || (params[:role] == "9" && roleName != "Teacher" ) #如果已经发送过消息了,那么就要给个提示 - if CourseMessage.where("course_message_type = 'JoinCourseRequest' and user_id = #{course.tea_id} and content = #{params[:role]} and course_message_id = #{User.current.id} and course_id = #{course.id} and status = 0 ").count != 0 + if CourseMessage.where("course_message_type = 'JoinCourseRequest' and user_id = #{course.tea_id} and course_message_id = #{User.current.id} and course_id = #{course.id} and status = 0 ").count != 0 @state = 7 else Mailer.run.join_course_request(course, User.current, params[:role]) diff --git a/app/views/organizations/setting.html.erb b/app/views/organizations/setting.html.erb index ebf3f5445..a2f8a8f29 100644 --- a/app/views/organizations/setting.html.erb +++ b/app/views/organizations/setting.html.erb @@ -112,7 +112,8 @@ <%= form_tag url_for(:controller => 'org_member', :action => 'create', :org => @organization),:id=>'org_member_add_form',:remote=>true do |f|%> <%# if @organization.secdomain_name.nil? %> - <%= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript host_with_protocol + "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %> + <%= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %> + <%#= javascript_tag "observeSearchfield('not_org_member_search', null, '#{url_for(:controller => 'organizations', :action => 'org_member_autocomplete', :org=> @organization.id)}')" %> <%# else %> <%#= javascript_tag "observeSearchfield('not_org_member_search', null, '#{ escape_javascript secdomain_with_protocol(@organization.secdomain_name) + "/org_member/org_member_autocomplete?" + {:org=> @organization.id}.to_query }')" %> <%# end %> diff --git a/app/views/users/_reply_to.html.erb b/app/views/users/_reply_to.html.erb index 4d5030f8f..381295dfc 100644 --- a/app/views/users/_reply_to.html.erb +++ b/app/views/users/_reply_to.html.erb @@ -1,8 +1,10 @@ +