diff --git a/Gemfile b/Gemfile
index 39a181d05..80c0e1c2a 100644
--- a/Gemfile
+++ b/Gemfile
@@ -50,16 +50,16 @@ gem 'elasticsearch-model'
gem 'elasticsearch-rails'
#rails 3.2.22.2 bug
- # gem "test-unit", "~>3.0"
+ gem "test-unit", "~>3.0"
### profile
- # gem 'oneapm_rpm'
+ gem 'oneapm_rpm'
group :development do
gem 'grape-swagger'
gem 'better_errors', '~> 1.1.0'
# gem "query_reviewer"
- # gem 'rack-mini-profiler', '~> 0.9.3'
+ gem 'rack-mini-profiler', '~> 0.9.3'
if RUBY_PLATFORM =~ /w32/
gem 'win32console'
end
diff --git a/app/api/mobile/apis/new_comment.rb b/app/api/mobile/apis/new_comment.rb
index e5e42e624..6d46b2f59 100644
--- a/app/api/mobile/apis/new_comment.rb
+++ b/app/api/mobile/apis/new_comment.rb
@@ -23,8 +23,22 @@ module Mobile
refresh_token = session[:refresh_token]
if access_token.present? && refresh_token.present?
- refreshinfo = Wechat.api.web_refresh_access_token(refresh_token)
-
+ begin
+ refreshinfo = Wechat.api.web_refresh_access_token(refresh_token)
+ rescue
+ info = Wechat.api.web_access_token(session[:wechat_code])
+ openid =info["openid"]
+ access_token =info["access_token"]
+ if access_token
+ session[:access_token] = access_token
+ end
+ refresh_token = info["refresh_token"]
+ if refresh_token
+ session[:refresh_token] = refresh_token
+ end
+ refreshinfo = Wechat.api.web_refresh_access_token(refresh_token)
+ end
+
access_token = refreshinfo["access_token"]
refresh_token = refreshinfo["refresh_token"]
session[:access_token] = access_token
@@ -42,9 +56,16 @@ module Mobile
user = us.register ({:login=>openid, :mail=>"#{openid}@163.com",
:password=>"12345678", :password_confirmation=>"12345678",
:should_confirmation_password => true})
- user.update_attributes(:lastname=>name)
-
raise user.errors.full_messages.first if user.new_record?
+ user.update_attributes(:lastname=>name)
+ #自动激活
+ if Setting.self_registration != '3'
+ user.activate
+ user.last_login_on = Time.now
+ if user.save
+ UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0)
+ end
+ end
UserWechat.create!(
openid: openid,
user: user,
diff --git a/app/api/mobile/apis/users.rb b/app/api/mobile/apis/users.rb
index 62376dc6e..764dc957f 100644
--- a/app/api/mobile/apis/users.rb
+++ b/app/api/mobile/apis/users.rb
@@ -47,7 +47,7 @@ module Mobile
end
ws = WechatService.new
- ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台。", user.login+"("+user.show_name+")", Time.now.strftime("%Y-%m-%d"))
+ ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台。", user.show_name+"("+user.login+")", Time.now.strftime("%Y-%m-%d"))
present status: 0, message: '您已成功绑定Trustie平台'
end
@@ -68,6 +68,15 @@ module Mobile
user = us.register params.merge(:password_confirmation => params[:password],
:should_confirmation_password => true)
raise user.errors.full_messages.first if user.new_record?
+ #自动激活
+ if Setting.self_registration != '3'
+ # user = automatically_register(user)
+ user.activate
+ user.last_login_on = Time.now
+ if user.save
+ UserStatus.create(:user_id => user.id, :changsets_count => 0, :watchers_count => 0)
+ end
+ end
if uw && !uw.real?
user.update_attributes(:lastname=>uw.user[:lastname])
@@ -80,7 +89,7 @@ module Mobile
end
ws = WechatService.new
- ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台。", user.login+"("+user.show_name+")", Time.now.strftime("%Y-%m-%d"))
+ ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台。", user.show_name+"("+user.login+")", Time.now.strftime("%Y-%m-%d"))
present :data, user, with: Mobile::Entities::User
present :status, 0
end
diff --git a/app/controllers/wechats_controller.rb b/app/controllers/wechats_controller.rb
index ced8854d9..6ccfbcce1 100644
--- a/app/controllers/wechats_controller.rb
+++ b/app/controllers/wechats_controller.rb
@@ -386,7 +386,7 @@ class WechatsController < ActionController::Base
user: user
)
ws = WechatService.new
- ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台!", user.login+"("+user.show_name+")", format_time(Time.now))
+ ws.binding_succ_notice(user.id, "您已成功绑定Trustie平台!", user.show_name+"("+user.login+")", format_time(Time.now))
render :json => {status:0, msg: "绑定成功"}
rescue Exception=>e
render :json => {status: -1, msg: e.message}
@@ -415,8 +415,11 @@ class WechatsController < ActionController::Base
unless open_id
render 'wechats/open_wechat', layout: nil and return
end
+
+ logger.info "user_activities!!!!!!!!!!!!!!"
+ logger.info params
- # unless user_binded?(open_id)
+ # unless (user_binded?(open_id) || params[:state] == "invite_code" || params[:state] == "project_invite_code" || params[:state] == "blog_comment" || params[:state] == "course_notice" || params[:state] == "project_discussion" || params[:state] == "course_discussion" || params[:state] == "homework" || params[:state] == "issues" || params[:state] == "journal_for_message")
# @path = '/login'
# else
if params[:state] == 'myclass'
@@ -470,7 +473,11 @@ class WechatsController < ActionController::Base
def user_binded?(openid)
uw = UserWechat.where(openid: openid).first
- uw && uw.bindtype == 0
+ if uw && uw.bindtype == 0
+ uw
+ else
+ nil
+ end
end
def current_url
diff --git a/app/models/user_wechat.rb b/app/models/user_wechat.rb
index 8328a47df..c63411ab3 100644
--- a/app/models/user_wechat.rb
+++ b/app/models/user_wechat.rb
@@ -22,5 +22,6 @@ class UserWechat < ActiveRecord::Base
Comment.where(author_id: old_user).update_all(author_id: u.id)
Message.where(author_id: old_user).update_all(author_id: u.id)
BlogComment.where(author_id: old_user).update_all(author_id: u.id)
+ UserActivity.where(user_id: old_user).update_all(user_id: u.id)
end
end
diff --git a/public/assets/wechat/class.html b/public/assets/wechat/class.html
index f93168206..e720c90c9 100644
--- a/public/assets/wechat/class.html
+++ b/public/assets/wechat/class.html
@@ -31,7 +31,7 @@
授课老师
-
{{reviewer.name}}
+
{{reviewer.name}}
待审批 ▶
@@ -47,7 +47,7 @@
我的同学
diff --git a/public/assets/wechat/project.html b/public/assets/wechat/project.html
index 3af3ce9c6..733f0899d 100644
--- a/public/assets/wechat/project.html
+++ b/public/assets/wechat/project.html
@@ -108,30 +108,30 @@
管理人员({{project_master_members.length}})
-
{{user.real_name == "" ? user.name : user.real_name }}
+
{{user.real_name == "" ? user.name : user.real_name }}
待审批 ▶
开发人员({{project_develop_members.length}})
-
{{user.real_name == "" ? user.name : user.real_name}}
+
{{user.real_name == "" ? user.name : user.real_name}}
待审批 ▶
报告人员({{project_report_members.length}})
diff --git a/public/javascripts/wechat/controllers/invite_code.js b/public/javascripts/wechat/controllers/invite_code.js
index 512e506e8..50c14c0c3 100644
--- a/public/javascripts/wechat/controllers/invite_code.js
+++ b/public/javascripts/wechat/controllers/invite_code.js
@@ -13,7 +13,7 @@ app.controller('InviteCodeController', ['$scope','$http', '$routeParams','config
console.log(response.data);
vm.course = response.data.data;
- var desc = "您的好友邀请您加入班级:\n"+vm.course.name+"\n和小伙伴一起踏上便捷的学习之旅吧!";
+ var desc = "您的好友邀请您加入班级:【"+vm.course.name+"】,和小伙伴一起踏上便捷的学习之旅吧!";
var link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+window.g_appid+
"&redirect_uri="+window.g_localhost+"/wechat/user_activities?id="+vm.course.id+
"&response_type=code&scope=snsapi_base&state=invite_code&connect_redirect=1#wechat_redirect";
diff --git a/public/javascripts/wechat/controllers/project_invite_code.js b/public/javascripts/wechat/controllers/project_invite_code.js
index 8058797f1..a68bf430b 100644
--- a/public/javascripts/wechat/controllers/project_invite_code.js
+++ b/public/javascripts/wechat/controllers/project_invite_code.js
@@ -13,7 +13,7 @@ app.controller('ProjectInviteCodeController', ['$scope','$http', '$routeParams',
console.log(response.data);
vm.project = response.data.data;
- var desc = "您的好友邀请您加入项目:\n"+vm.project.name+"\n和小伙伴一起踏上便捷的研发之旅吧!";
+ var desc = "您的好友邀请您加入项目:【"+vm.project.name+"】,和小伙伴一起踏上便捷的研发之旅吧!";
var link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+window.g_appid+
"&redirect_uri="+window.g_localhost+"/wechat/user_activities?id="+vm.project.id+
"&response_type=code&scope=snsapi_base&state=project_invite_code&connect_redirect=1#wechat_redirect";
diff --git a/public/javascripts/wechat/others/factory.js b/public/javascripts/wechat/others/factory.js
index e6ffcf76c..1c40c9c10 100644
--- a/public/javascripts/wechat/others/factory.js
+++ b/public/javascripts/wechat/others/factory.js
@@ -1,466 +1,466 @@
-app.factory('alertService', function(){
- function Alert(){
- this.title = null;
- this.message = null;
- this.visible = null;
- this.cb = null;
- this.invite = "";
- }
-
- Alert.prototype.showMessage = function(title, msg, cb){
- this.message = msg;
- this.title = title;
- this.visible = true;
- this.cb = cb;
- this.invite = "";
- }
-
- Alert.prototype.dismiss = function(){
- this.message = null;
- this.title = null;
- this.visible = false;
- this.invite = "";
- if(this.cb) {this.cb();}
- }
-
- return {
- create: function(){
- return new Alert();
- }
- }
-});
-
-app.factory('wx', ['$window', function($window){
- var wechat = $window.wx;
- return wechat;
-}]);
-
-app.factory('auth', ['$http','$routeParams', '$q', 'session', 'config',function($http,$routeParams, $q, session,config){
- //是否已经绑定
- var isBind = function(){
- var defer = $q.defer();
-
- var token = getToken();
- if(token && token.length>10){
- defer.resolve(token);
- } else {
- var code = window.g_code || $routeParams.code || session.get("code");
- $http.post(
- '/wechat/get_bind',
- {} ///不用传code了,都由服务器来处理
- ).then(function(response){
- if(response.data.status!=0){
- defer.reject(response.data.message);
- }else {
- session.save("token", response.data.token);
- defer.resolve(response.data.token);
- }
- }).catch(function(e){
- defer.reject(e);
- });
- }
-
- return defer.promise;
- }
-
- var getToken = function(){
- return 'token';//session.get("token");
- }
- return {get_bind: isBind, token: getToken};
-}]);
-
-app.factory("session", function(){
- return {
- save: function(key,value){
- sessionStorage.setItem(key,value);
- },
- get: function(key){
- return sessionStorage.getItem(key);
- }
- }
-});
-
-app.factory('rms', function(){
- var _saveStorage = {};
- var save = function(key, value){
- _saveStorage[key] = value;
- };
-
- var get = function(key){
- return _saveStorage[key];
- };
-
- return {save: save, get: get};
-});
-
-app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$location', function($http, auth, $routeParams,rms,config,wx,$location){
- var addCommonReply = function(id, type, data,args, cb){
- //先判断有没有绑定
-// $http.post(
-// '/wechat/is_bind',
-// {} ///不用传code了,都由服务器来处理
-// ).then(function(response){
-// console.log(response.data);
-// if(response.data.status != 0){
-// $location.path("/login_tip");
-// }
-// });
-
- if(!data.comment || data.comment.length<=0){
- return;
- }
-
- var temp = data.comment.replace(/\n/g,'
');
-
- var userInfo = {
- type: type,
- content: temp,
- token: auth.token()
- };
- //回复按钮禁用
- data.disabled = true;
-
- $http({
- method: 'POST',
- url: apiUrl+ "new_comment/"+id,
- data: userInfo
- }).then(function successCallback(response) {
- //alert("提交成功");
- //数据提交完成,回复按钮启用
- console.log(response);
- if(response.data.status == -1){
- console.log("回复失败!");
- data.comment = "";
- if(response.data.tip == 0){
- args.scope.replytip = "您不是该私有班级成员,不能回复";
- }
- else{
- args.scope.replytip = "您不是该私有项目成员,不能回复";
- }
- return;
- }
-
- data.disabled = false;
- if(typeof cb === 'function'){
- cb(response.data.subscribe);
- }
-
- //保证内外回复数一致
- activities = rms.get("activities") || [];
- course_activities = rms.get("course_activities") || [];
- project_activities = rms.get("project_activities") || [];
- for(var i in activities){
- if(activities[i].act_id == id){
- activities[i].reply_count += 1;
- break;
- }
- }
- for(var i in course_activities){
- if(course_activities[i].act_id == id){
- course_activities[i].reply_count += 1;
- break;
- }
- }
- for(var i in project_activities){
- if(project_activities[i].act_id == id){
- project_activities[i].reply_count += 1;
- break;
- }
- }
- rms.save("activities",activities);
- rms.save("course_activities",course_activities);
- rms.save("project_activities",project_activities);
-
- }, function errorCallback(response) {
- });
- };
-
-// var loadCommonData = function(id, type,replytype,page){
-// return $http({
-// method: 'GET',
-// url: apiUrl+ type + "/" + id+"?token="+auth.token(),
-// })
-// };
-
- var loadCommonData = function(id, type,replytype,page){
- return $http({
- method: 'POST',
- url: apiUrl+ type + "/" + id,
- dataType: 'jsonp',
- data:{token:auth.token(),type:replytype,page:page}
- })
- };
-
- var addCommonPraise = function(act){
-// act.praise_count += 1;
-// act.has_praise = true;
-
- $http({
- method: 'POST',
- url: apiUrl + "praise/" + act.act_id,
- data:{token:auth.token(),type:act.act_type}
- }).then(function successCallback(response) {
- console.log(response.data);
- }, function errorCallback(response) {
- });
-
- };
-
- var decreaseCommonPraise = function(act){
-// act.praise_count -= 1;
-// act.has_praise = false;
- $http({
- method: 'POST',
- url: apiUrl + "praise/" + act.act_id,
- data:{token:auth.token(),type:act.act_type}
- }).then(function successCallback(response) {
- console.log(response.data);
- }, function errorCallback(response) {
- });
- };
-
- var init = function(args){
- args.scope.replytip = "输入回复内容~";
- args.scope.formData = {comment: ''};
- var loadData = function(id,replytype,page){
- loadCommonData(id, args.type,replytype,page).then(function successCallback(response) {
- console.log(response.data);
- //--------------分享内容定制-------------
- var tmptile = "分享动态";
- var imgUrl = "";
-
- if(response.data.data.title){
- tmptile = response.data.data.title;
- }
-
- var tmpname = "匿名用户";
-
- if(response.data.data.user){
- tmpname = response.data.data.user.realname;
- imgUrl = window.g_localhost+response.data.data.user.img_url;
- }
-
- if(response.data.data.author){
- tmpname = response.data.data.author.realname;
- imgUrl = window.g_localhost+response.data.data.author.img_url;
- }
-
- var desc = ""
- if(response.data.data.content){
- desc = response.data.data.content.replace(/<[^>]+>/g,"").replace(/\s*/g,"").replace(/ /g,"");
- }
-
- if(response.data.data.description){
- desc = response.data.data.description.replace(/<[^>]+>/g,"").replace(/\s*/g,"").replace(/ /g,"");
- }
-
- if(desc.length > 30){
- desc = desc.substring(0,30)+"...";
- }
-
- var title = tmpname+":"+tmptile;
- console.log("desc = "+desc);
- console.log("imgUrl= "+imgUrl);
-
- var link = "";
-
- if(args.urlName == "discussion"){
- var urlName = response.data.type_name + "_discussion";
- link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+window.g_appid +
- "&redirect_uri="+window.g_localhost+"/wechat/user_activities?id="+response.data.data.act_id+
- "&response_type=code&scope=snsapi_userinfo&state="+urlName+"&connect_redirect=1#wechat_redirect";
- }
- else{
- link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+window.g_appid +
- "&redirect_uri="+window.g_localhost+"/wechat/user_activities?id="+response.data.data.act_id+
- "&response_type=code&scope=snsapi_userinfo&state="+args.urlName+"&connect_redirect=1#wechat_redirect";
- }
-
-// if(args.urlName == "discussion"){
-// var urlName = response.data.type_name + "_discussion";
-// link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d" +
-// "&redirect_uri=https://test.forge.trustie.net/wechat/user_activities?id="+response.data.data.act_id+
-// "&response_type=code&scope=snsapi_base&state="+urlName+"&connect_redirect=1#wechat_redirect";
-// }
-// else{
-// link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d" +
-// "&redirect_uri=https://test.forge.trustie.net/wechat/user_activities?id="+response.data.data.act_id+
-// "&response_type=code&scope=snsapi_base&state="+args.urlName+"&connect_redirect=1#wechat_redirect";
-// }
-
- console.log("link= "+link);
-
- wxConfig(title,desc,imgUrl,link);
-
- //--------------分享内容定制-------------
- args.loadCallback(response.data);
- }, function errorCallback(response) {
- });
- };
-
- loadData(args.id,0,0);
- args.scope.addReply = function(data){
- console.log(data.comment);
- addCommonReply(args.id, args.replyType, data,args, function(subscribe){
- args.scope.formData = {comment: ''};
- if(subscribe == 0){
- $location.path("/login_tip");
- return;
- }
- else{
- loadData(args.id,0,0);
- }
-
- if(typeof args.replyCallback === 'function'){
- args.replyCallback();
- }
- });
- };
-
-// 动态详情界面点赞与动态界面的数据要同步 保证进入详情点赞后出来显示一致
- args.scope.addPraise = function(act){
- activities = rms.get("activities") || [];
- course_activities = rms.get("course_activities") || [];
- project_activities = rms.get("project_activities") || [];
- for(var i in activities){
- if(activities[i].act_id == act.act_id){
- activities[i].praise_count += 1;
- activities[i].has_praise = true;
- break;
- }
- }
- for(var i in course_activities){
- if(course_activities[i].act_id == act.act_id){
- course_activities[i].praise_count += 1;
- course_activities[i].has_praise = true;
- break;
- }
- }
- for(var i in project_activities){
- if(project_activities[i].act_id == act.act_id){
- project_activities[i].praise_count += 1;
- project_activities[i].has_praise = true;
- break;
- }
- }
- rms.save("activities",activities);
- rms.save("course_activities",course_activities);
- rms.save("project_activities",project_activities);
-
- act.praise_count += 1;
- act.has_praise = true;
- addCommonPraise(act);
- };
-
- args.scope.decreasePraise = function(act){
- activities = rms.get("activities") || [];
- course_activities = rms.get("course_activities") || [];
- project_activities = rms.get("project_activities") || [];
- for(var i in activities){
- if(activities[i].act_id == act.act_id){
- activities[i].praise_count -= 1;
- activities[i].has_praise = false;
- break;
- }
- }
- for(var i in course_activities){
- if(course_activities[i].act_id == act.act_id){
- course_activities[i].praise_count -= 1;
- course_activities[i].has_praise = false;
- break;
- }
- }
- for(var i in project_activities){
- if(project_activities[i].act_id == act.act_id){
- project_activities[i].praise_count -= 1;
- project_activities[i].has_praise = false;
- break;
- }
- }
- rms.save("activities",activities);
- rms.save("course_activities",course_activities);
- rms.save("project_activities",project_activities);
-
- act.praise_count -= 1;
- act.has_praise = false;
- decreaseCommonPraise(act);
- };
-
- args.scope.showMoreReply = function(replytype,data){
- if(!data.page){
- data.page = 1;
- }
- else{
- data.page = data.page + 1;
- }
-
- loadCommonData(data.id, args.type,replytype,data.page).then(function successCallback(response) {
- args.loadCallback(response.data);
- }, function errorCallback(response) {
- });
- };
-
- args.scope.commentreply_path = config.rootPath+ 'templates/comment_reply.html';
-
- };
-
- var wxConfig = function(title,desc,imgUrl,link){
-
- if(title == null || title == ""){
- title = 'Trustie创新实践平台';
- }
-
- if(desc == null || desc == ""){
- desc = 'Trustie创新实践平台';
- }
-
- if(imgUrl == null || imgUrl == ""){
- imgUrl = window.g_localhost+'/images/wechat/wx_logo.jpg';
- }
-
- wx.ready(function(){
- wx.onMenuShareTimeline({
- title: title, // 分享标题
- link: link, // 分享链接
- imgUrl: imgUrl, // 分享图标
- success: function () {
- console.log("share successed.");
- },
- cancel: function () {
- console.log("share canceled.");
- }
- });
-
- wx.onMenuShareAppMessage({
- title: title, // 分享标题
- desc: desc, // 分享描述
- link: link, // 分享链接
-// imgUrl: '', // 分享图标
- imgUrl: imgUrl, // 分享图标
-// type: '', // 分享类型,music、video或link,不填默认为link
-// dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
- success: function () {
- // 用户确认分享后执行的回调函数
- },
- cancel: function () {
- // 用户取消分享后执行的回调函数
- }
- });
- });
- };
-
- var checkLogin = function(){
- $http.post(
- '/wechat/is_bind',
- {} ///不用传code了,都由服务器来处理
- ).then(function(response){
- console.log(response.data);
- if(response.data.status != 0){
- $location.path("/login");
- return;
- }
- });
- };
-
- return {init: init, addCommonReply: addCommonReply, loadCommonData: loadCommonData, addCommonPraise: addCommonPraise, decreaseCommonPraise: decreaseCommonPraise, wxConfig: wxConfig, checkLogin: checkLogin};
-}]);
+app.factory('alertService', function(){
+ function Alert(){
+ this.title = null;
+ this.message = null;
+ this.visible = null;
+ this.cb = null;
+ this.invite = "";
+ }
+
+ Alert.prototype.showMessage = function(title, msg, cb){
+ this.message = msg;
+ this.title = title;
+ this.visible = true;
+ this.cb = cb;
+ this.invite = "";
+ }
+
+ Alert.prototype.dismiss = function(){
+ this.message = null;
+ this.title = null;
+ this.visible = false;
+ this.invite = "";
+ if(this.cb) {this.cb();}
+ }
+
+ return {
+ create: function(){
+ return new Alert();
+ }
+ }
+});
+
+app.factory('wx', ['$window', function($window){
+ var wechat = $window.wx;
+ return wechat;
+}]);
+
+app.factory('auth', ['$http','$routeParams', '$q', 'session', 'config',function($http,$routeParams, $q, session,config){
+ //是否已经绑定
+ var isBind = function(){
+ var defer = $q.defer();
+
+ var token = getToken();
+ if(token && token.length>10){
+ defer.resolve(token);
+ } else {
+ var code = window.g_code || $routeParams.code || session.get("code");
+ $http.post(
+ '/wechat/get_bind',
+ {} ///不用传code了,都由服务器来处理
+ ).then(function(response){
+ if(response.data.status!=0){
+ defer.reject(response.data.message);
+ }else {
+ session.save("token", response.data.token);
+ defer.resolve(response.data.token);
+ }
+ }).catch(function(e){
+ defer.reject(e);
+ });
+ }
+
+ return defer.promise;
+ }
+
+ var getToken = function(){
+ return 'token';//session.get("token");
+ }
+ return {get_bind: isBind, token: getToken};
+}]);
+
+app.factory("session", function(){
+ return {
+ save: function(key,value){
+ sessionStorage.setItem(key,value);
+ },
+ get: function(key){
+ return sessionStorage.getItem(key);
+ }
+ }
+});
+
+app.factory('rms', function(){
+ var _saveStorage = {};
+ var save = function(key, value){
+ _saveStorage[key] = value;
+ };
+
+ var get = function(key){
+ return _saveStorage[key];
+ };
+
+ return {save: save, get: get};
+});
+
+app.factory('common', ['$http', 'auth', '$routeParams','rms','config','wx','$location', function($http, auth, $routeParams,rms,config,wx,$location){
+ var addCommonReply = function(id, type, data,args, cb){
+ //先判断有没有绑定
+// $http.post(
+// '/wechat/is_bind',
+// {} ///不用传code了,都由服务器来处理
+// ).then(function(response){
+// console.log(response.data);
+// if(response.data.status != 0){
+// $location.path("/login_tip");
+// }
+// });
+
+ if(!data.comment || data.comment.length<=0){
+ return;
+ }
+
+ var temp = data.comment.replace(/\n/g,'
');
+
+ var userInfo = {
+ type: type,
+ content: temp,
+ token: auth.token()
+ };
+ //回复按钮禁用
+ data.disabled = true;
+
+ $http({
+ method: 'POST',
+ url: apiUrl+ "new_comment/"+id,
+ data: userInfo
+ }).then(function successCallback(response) {
+ //alert("提交成功");
+ //数据提交完成,回复按钮启用
+ console.log(response);
+ if(response.data.status == -1){
+ console.log("回复失败!");
+ data.comment = "";
+ if(response.data.tip == 0){
+ args.scope.replytip = "您不是该私有班级成员,不能回复";
+ }
+ else{
+ args.scope.replytip = "您不是该私有项目成员,不能回复";
+ }
+ return;
+ }
+
+ data.disabled = false;
+ if(typeof cb === 'function'){
+ cb(response.data.subscribe);
+ }
+
+ //保证内外回复数一致
+ activities = rms.get("activities") || [];
+ course_activities = rms.get("course_activities") || [];
+ project_activities = rms.get("project_activities") || [];
+ for(var i in activities){
+ if(activities[i].act_id == id){
+ activities[i].reply_count += 1;
+ break;
+ }
+ }
+ for(var i in course_activities){
+ if(course_activities[i].act_id == id){
+ course_activities[i].reply_count += 1;
+ break;
+ }
+ }
+ for(var i in project_activities){
+ if(project_activities[i].act_id == id){
+ project_activities[i].reply_count += 1;
+ break;
+ }
+ }
+ rms.save("activities",activities);
+ rms.save("course_activities",course_activities);
+ rms.save("project_activities",project_activities);
+
+ }, function errorCallback(response) {
+ });
+ };
+
+// var loadCommonData = function(id, type,replytype,page){
+// return $http({
+// method: 'GET',
+// url: apiUrl+ type + "/" + id+"?token="+auth.token(),
+// })
+// };
+
+ var loadCommonData = function(id, type,replytype,page){
+ return $http({
+ method: 'POST',
+ url: apiUrl+ type + "/" + id,
+ dataType: 'jsonp',
+ data:{token:auth.token(),type:replytype,page:page}
+ })
+ };
+
+ var addCommonPraise = function(act){
+// act.praise_count += 1;
+// act.has_praise = true;
+
+ $http({
+ method: 'POST',
+ url: apiUrl + "praise/" + act.act_id,
+ data:{token:auth.token(),type:act.act_type}
+ }).then(function successCallback(response) {
+ console.log(response.data);
+ }, function errorCallback(response) {
+ });
+
+ };
+
+ var decreaseCommonPraise = function(act){
+// act.praise_count -= 1;
+// act.has_praise = false;
+ $http({
+ method: 'POST',
+ url: apiUrl + "praise/" + act.act_id,
+ data:{token:auth.token(),type:act.act_type}
+ }).then(function successCallback(response) {
+ console.log(response.data);
+ }, function errorCallback(response) {
+ });
+ };
+
+ var init = function(args){
+ args.scope.replytip = "输入回复内容~";
+ args.scope.formData = {comment: ''};
+ var loadData = function(id,replytype,page){
+ loadCommonData(id, args.type,replytype,page).then(function successCallback(response) {
+ console.log(response.data);
+ //--------------分享内容定制-------------
+ var tmptile = "分享动态";
+ var imgUrl = "";
+
+ if(response.data.data.title){
+ tmptile = response.data.data.title;
+ }
+
+ var tmpname = "匿名用户";
+
+ if(response.data.data.user){
+ tmpname = response.data.data.user.realname;
+ imgUrl = window.g_localhost+response.data.data.user.img_url;
+ }
+
+ if(response.data.data.author){
+ tmpname = response.data.data.author.realname;
+ imgUrl = window.g_localhost+response.data.data.author.img_url;
+ }
+
+ var desc = ""
+ if(response.data.data.content){
+ desc = response.data.data.content.replace(/<[^>]+>/g,"").replace(/\s*/g,"").replace(/ /g,"");
+ }
+
+ if(response.data.data.description){
+ desc = response.data.data.description.replace(/<[^>]+>/g,"").replace(/\s*/g,"").replace(/ /g,"");
+ }
+
+ if(desc.length > 30){
+ desc = desc.substring(0,30)+"...";
+ }
+
+ var title = tmpname+":"+tmptile;
+ console.log("desc = "+desc);
+ console.log("imgUrl= "+imgUrl);
+
+ var link = "";
+
+ if(args.urlName == "discussion"){
+ var urlName = response.data.type_name + "_discussion";
+ link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+window.g_appid +
+ "&redirect_uri="+window.g_localhost+"/wechat/user_activities?id="+response.data.data.act_id+
+ "&response_type=code&scope=snsapi_userinfo&state="+urlName+"&connect_redirect=1#wechat_redirect";
+ }
+ else{
+ link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+window.g_appid +
+ "&redirect_uri="+window.g_localhost+"/wechat/user_activities?id="+response.data.data.act_id+
+ "&response_type=code&scope=snsapi_userinfo&state="+args.urlName+"&connect_redirect=1#wechat_redirect";
+ }
+
+// if(args.urlName == "discussion"){
+// var urlName = response.data.type_name + "_discussion";
+// link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d" +
+// "&redirect_uri=https://test.forge.trustie.net/wechat/user_activities?id="+response.data.data.act_id+
+// "&response_type=code&scope=snsapi_base&state="+urlName+"&connect_redirect=1#wechat_redirect";
+// }
+// else{
+// link = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d" +
+// "&redirect_uri=https://test.forge.trustie.net/wechat/user_activities?id="+response.data.data.act_id+
+// "&response_type=code&scope=snsapi_base&state="+args.urlName+"&connect_redirect=1#wechat_redirect";
+// }
+
+ console.log("link= "+link);
+
+ wxConfig(title,desc,imgUrl,link);
+
+ //--------------分享内容定制-------------
+ args.loadCallback(response.data);
+ }, function errorCallback(response) {
+ });
+ };
+
+ loadData(args.id,0,0);
+ args.scope.addReply = function(data){
+ console.log(data.comment);
+ addCommonReply(args.id, args.replyType, data,args, function(subscribe){
+ args.scope.formData = {comment: ''};
+ if(subscribe == 0){
+ $location.path("/login_tip");
+ return;
+ }
+ else{
+ loadData(args.id,0,0);
+ }
+
+ if(typeof args.replyCallback === 'function'){
+ args.replyCallback();
+ }
+ });
+ };
+
+// 动态详情界面点赞与动态界面的数据要同步 保证进入详情点赞后出来显示一致
+ args.scope.addPraise = function(act){
+ activities = rms.get("activities") || [];
+ course_activities = rms.get("course_activities") || [];
+ project_activities = rms.get("project_activities") || [];
+ for(var i in activities){
+ if(activities[i].act_id == act.act_id){
+ activities[i].praise_count += 1;
+ activities[i].has_praise = true;
+ break;
+ }
+ }
+ for(var i in course_activities){
+ if(course_activities[i].act_id == act.act_id){
+ course_activities[i].praise_count += 1;
+ course_activities[i].has_praise = true;
+ break;
+ }
+ }
+ for(var i in project_activities){
+ if(project_activities[i].act_id == act.act_id){
+ project_activities[i].praise_count += 1;
+ project_activities[i].has_praise = true;
+ break;
+ }
+ }
+ rms.save("activities",activities);
+ rms.save("course_activities",course_activities);
+ rms.save("project_activities",project_activities);
+
+ act.praise_count += 1;
+ act.has_praise = true;
+ addCommonPraise(act);
+ };
+
+ args.scope.decreasePraise = function(act){
+ activities = rms.get("activities") || [];
+ course_activities = rms.get("course_activities") || [];
+ project_activities = rms.get("project_activities") || [];
+ for(var i in activities){
+ if(activities[i].act_id == act.act_id){
+ activities[i].praise_count -= 1;
+ activities[i].has_praise = false;
+ break;
+ }
+ }
+ for(var i in course_activities){
+ if(course_activities[i].act_id == act.act_id){
+ course_activities[i].praise_count -= 1;
+ course_activities[i].has_praise = false;
+ break;
+ }
+ }
+ for(var i in project_activities){
+ if(project_activities[i].act_id == act.act_id){
+ project_activities[i].praise_count -= 1;
+ project_activities[i].has_praise = false;
+ break;
+ }
+ }
+ rms.save("activities",activities);
+ rms.save("course_activities",course_activities);
+ rms.save("project_activities",project_activities);
+
+ act.praise_count -= 1;
+ act.has_praise = false;
+ decreaseCommonPraise(act);
+ };
+
+ args.scope.showMoreReply = function(replytype,data){
+ if(!data.page){
+ data.page = 1;
+ }
+ else{
+ data.page = data.page + 1;
+ }
+
+ loadCommonData(data.id, args.type,replytype,data.page).then(function successCallback(response) {
+ args.loadCallback(response.data);
+ }, function errorCallback(response) {
+ });
+ };
+
+ args.scope.commentreply_path = config.rootPath+ 'templates/comment_reply.html';
+
+ };
+
+ var wxConfig = function(title,desc,imgUrl,link){
+
+ if(title == null || title == ""){
+ title = 'Trustie创新实践平台';
+ }
+
+ if(desc == null || desc == ""){
+ desc = 'Trustie创新实践平台';
+ }
+
+ if(imgUrl == null || imgUrl == ""){
+ imgUrl = window.g_localhost+'/images/wechat/wx_logo.jpg';
+ }
+
+ wx.ready(function(){
+ wx.onMenuShareTimeline({
+ title: title, // 分享标题
+ link: link, // 分享链接
+ imgUrl: imgUrl, // 分享图标
+ success: function () {
+ console.log("share successed.");
+ },
+ cancel: function () {
+ console.log("share canceled.");
+ }
+ });
+
+ wx.onMenuShareAppMessage({
+ title: title, // 分享标题
+ desc: desc, // 分享描述
+ link: link, // 分享链接
+// imgUrl: '', // 分享图标
+ imgUrl: imgUrl, // 分享图标
+// type: '', // 分享类型,music、video或link,不填默认为link
+// dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
+ success: function () {
+ // 用户确认分享后执行的回调函数
+ },
+ cancel: function () {
+ // 用户取消分享后执行的回调函数
+ }
+ });
+ });
+ };
+
+ var checkLogin = function(){
+ $http.post(
+ '/wechat/is_bind',
+ {} ///不用传code了,都由服务器来处理
+ ).then(function(response){
+ console.log(response.data);
+ if(response.data.status != 0){
+ $location.path("/login");
+ return;
+ }
+ });
+ };
+
+ return {init: init, addCommonReply: addCommonReply, loadCommonData: loadCommonData, addCommonPraise: addCommonPraise, decreaseCommonPraise: decreaseCommonPraise, wxConfig: wxConfig, checkLogin: checkLogin};
+}]);