用户动态如果没有绑定则跳到绑定页面.

lingbing
guange 9 years ago
parent 8b623e3a0c
commit 7f811d7551

@ -154,12 +154,7 @@ class WechatsController < ActionController::Base
end end
end end
### controller method ### controller method
module Controllers module Controllers
def get_open_id def get_open_id
begin begin
@ -228,37 +223,19 @@ class WechatsController < ActionController::Base
uw = UserWechat.where(openid: openid).first uw = UserWechat.where(openid: openid).first
end end
def user_activity(user) def user_activities
@user = user session[:wechat_code] = params[:code] if params[:code]
shield_project_ids = ShieldActivity.where("container_type='User' and container_id=#{@user.id} and shield_type='Project'").map(&:shield_id) code = params[:code] || session[:wechat_code]
shield_course_ids = ShieldActivity.where("container_type='User' and container_id=#{@user.id} and shield_type='Course'").map(&:shield_id) openid = get_openid_from_code(code)
@page = params[:page] ? params[:page].to_i + 1 : 0 @wechat_user = user_binded?(openid)
user_project_ids = (@user.projects.visible.map{|project| project.id}-shield_project_ids).empty? ? "(-1)" : "(" + (@user.projects.visible.map{|project| project.id}-shield_project_ids).join(",") + ")" unless @wechat_user
user_course_ids = (@user.courses.visible.map{|course| course.id}-shield_course_ids).empty? ? "(-1)" : "(" + (@user.courses.visible.map{|course| course.id}-shield_course_ids).join(",") + ")" redirect_to :login
course_types = "('Message','News','HomeworkCommon','Poll','Course')" return
project_types = "('Message','Issue','Project')" end
principal_types = "JournalsForMessage"
blog_ids = "("+@user.blog.id.to_s+","+((User.watched_by(@user.id).count == 0 )? '0' :User.watched_by(@user.id).map{|u| u.blog.id}.join(','))+")"
@user_activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})" +
"or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+
"or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{@user.id}) " +
"or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})").order('updated_at desc').limit(10).offset(@page * 10)
render File.join(Rails.root, "public/wechat/app.html"), layout: nil
end end
def process_activity(user_activity)
act= user_activity.act
case user_activity.container_type.to_s
when 'Course'
when 'Project'
case user_activity.act_type.to_s
when 'Issue'
[act.project.name.to_s+" | 项目问题", act.subject.to_s, url_to_avatar(act.author),"http://wechat.trustie.net/app.html#/issue/#{act.id}"]
end
end
end
end end

@ -2,7 +2,7 @@ button:
- -
type: "view" type: "view"
name: "最新动态" name: "最新动态"
url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.course.trustie.net/assets/wechat/app.html#/activities?response_type=code&scope=snsapi_base&state=123#wechat_redirect" url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://wechat.trustie.net/wechat/user_activities&response_type=code&scope=snsapi_base&state=123#wechat_redirect"
- -
type: "click" type: "click"
name: "意见反馈" name: "意见反馈"

@ -1237,6 +1237,7 @@ RedmineApp::Application.routes.draw do
resource :wechat, only:[:show, :create] do resource :wechat, only:[:show, :create] do
collection do collection do
get :login get :login
get :user_activities
post :bind post :bind
post :get_open_id post :get_open_id
end end

Loading…
Cancel
Save