|
|
@ -12,19 +12,8 @@ class WechatsController < ActionController::Base
|
|
|
|
uw = user_binded?(request[:FromUserName])
|
|
|
|
uw = user_binded?(request[:FromUserName])
|
|
|
|
if !uw
|
|
|
|
if !uw
|
|
|
|
return sendBind()
|
|
|
|
return sendBind()
|
|
|
|
elsif (course = join_class(content, uw.user)) && 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
|
|
|
|
|
|
|
|
url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{Wechat.config.appid}&redirect_uri=#{ROOT_URL+'/wechat/user_activities?id='+course.id.to_s}&response_type=code&scope=snsapi_base&state=myclass#wechat_redirect"
|
|
|
|
|
|
|
|
pic_url = "#{ROOT_URL}/images/wechat/class.jpg"
|
|
|
|
|
|
|
|
article.item title: "#{n[:title]}",
|
|
|
|
|
|
|
|
description: n[:content],
|
|
|
|
|
|
|
|
pic_url: pic_url,
|
|
|
|
|
|
|
|
url: url
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
else
|
|
|
|
else
|
|
|
|
return request.reply.text "您的意见已收到,感谢您的反馈!" # Just echo
|
|
|
|
return join_class(content, uw.user)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
rescue => e
|
|
|
|
rescue => e
|
|
|
|
return request.reply.text e
|
|
|
|
return request.reply.text e
|
|
|
@ -57,7 +46,16 @@ class WechatsController < ActionController::Base
|
|
|
|
|
|
|
|
|
|
|
|
# When subscribe user scan scene_id in public account
|
|
|
|
# When subscribe user scan scene_id in public account
|
|
|
|
on :scan, with: 'scene_id' do |request, ticket|
|
|
|
|
on :scan, with: 'scene_id' do |request, ticket|
|
|
|
|
request.reply.text "Subscribe user #{request[:FromUserName]} Ticket #{ticket}"
|
|
|
|
begin
|
|
|
|
|
|
|
|
uw = user_binded?(request[:FromUserName])
|
|
|
|
|
|
|
|
if !uw
|
|
|
|
|
|
|
|
return sendBind()
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
return join_class({ticket: ticket}, uw.user)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
rescue => e
|
|
|
|
|
|
|
|
return request.reply.text e
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
# When no any on :scan responder can match subscribe user scaned scene_id
|
|
|
|
# When no any on :scan responder can match subscribe user scaned scene_id
|
|
|
@ -185,14 +183,31 @@ class WechatsController < ActionController::Base
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def join_class(content, user)
|
|
|
|
def join_class(params, user)
|
|
|
|
|
|
|
|
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?
|
|
|
|
|
|
|
|
|
|
|
|
cs = CoursesService.new
|
|
|
|
cs = CoursesService.new
|
|
|
|
status = cs.join_course({invite_code: content.upcase.strip}, user)
|
|
|
|
status = cs.join_course(course.invite_code, user)
|
|
|
|
logger.info status
|
|
|
|
logger.info status
|
|
|
|
if status[:state] != 0
|
|
|
|
if status[:state] != 0
|
|
|
|
raise CoursesService::JoinCourseError.message(status[:state])
|
|
|
|
raise CoursesService::JoinCourseError.message(status[:state])
|
|
|
|
end
|
|
|
|
end
|
|
|
|
status[:course]
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=#{Wechat.config.appid}&redirect_uri=#{ROOT_URL+'/wechat/user_activities?id='+course.id.to_s}&response_type=code&scope=snsapi_base&state=myclass#wechat_redirect"
|
|
|
|
|
|
|
|
pic_url = "#{ROOT_URL}/images/wechat/class.jpg"
|
|
|
|
|
|
|
|
article.item title: "#{n[:title]}",
|
|
|
|
|
|
|
|
description: n[:content],
|
|
|
|
|
|
|
|
pic_url: pic_url,
|
|
|
|
|
|
|
|
url: url
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
### controller method
|
|
|
|
### controller method
|
|
|
|