From 3624d9d4ca95863bdb2774ee84572370aa4b07d4 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Mon, 19 Sep 2016 13:22:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E5=A2=9E=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E7=8F=AD=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/apis/courses.rb | 27 +++++++- app/api/mobile/entities/course.rb | 3 + app/api/mobile/entities/user.rb | 4 ++ app/services/courses_service.rb | 2 +- public/assets/wechat/class.html | 3 +- public/assets/wechat/join_classgroup.html | 10 +-- .../assets/wechat/select_my_coursegroup.html | 25 +++++++ .../javascripts/wechat/controllers/class.js | 8 ++- .../wechat/controllers/join_class.js | 6 +- .../wechat/controllers/join_classgroup.js | 63 ++++++++++++++---- .../controllers/select_my_coursegroup.js | 66 +++++++++++++++++++ public/javascripts/wechat/others/routes.js | 1 + 12 files changed, 195 insertions(+), 23 deletions(-) create mode 100644 public/assets/wechat/select_my_coursegroup.html create mode 100644 public/javascripts/wechat/controllers/select_my_coursegroup.js diff --git a/app/api/mobile/apis/courses.rb b/app/api/mobile/apis/courses.rb index f0e4c867d..dd5525fae 100644 --- a/app/api/mobile/apis/courses.rb +++ b/app/api/mobile/apis/courses.rb @@ -757,12 +757,13 @@ module Mobile desc '获取分班列表' params do + requires :id, type: Integer requires :token, type:String end - get ':course_id/course_groups' do + get 'course_groups/:id' do begin authenticate! - course = Course.find(params[:course_id]) + course = Course.find(params[:id]) groups = [] groups = course.course_groups if course.course_groups present :data,groups @@ -772,6 +773,28 @@ module Mobile end end + desc "加入分班" + params do + requires :id, type: Integer + requires :token, type: String + requires :course_group_id, type: Integer + end + post 'join_coursegroup' do + begin + authenticate! + member = Member.where(:course_id => params[:id], :user_id => current_user.id).first + + raise "你还不是该班级的学生!" unless member + + member.course_group_id = params[:course_group_id].to_i + member.save + present :status,0 + rescue Exception=>e + present :message,e.message + present :status,-1 + end + end + end end end diff --git a/app/api/mobile/entities/course.rb b/app/api/mobile/entities/course.rb index 30a5a6cc9..9bf1cc1f6 100644 --- a/app/api/mobile/entities/course.rb +++ b/app/api/mobile/entities/course.rb @@ -19,6 +19,8 @@ module Mobile (format_time(c[field]) if (c.is_a?(Hash) && c.key?(field))) || (format_time(c.send(field)) if c.respond_to?(field)) elsif field == :member_count ::Course===c ? c.members.count : 0 + elsif field == :syllabus_title + c.syllabus.nil? ? "":c.syllabus.title else (c[field] if (c.is_a?(Hash) && c.key?(field))) || (c.send(field) if c.respond_to?(field)) end @@ -38,6 +40,7 @@ module Mobile course_expose :lft course_expose :location course_expose :name + course_expose :syllabus_title course_expose :open_student # course_expose :password course_expose :rgt diff --git a/app/api/mobile/entities/user.rb b/app/api/mobile/entities/user.rb index 30a2a7edd..09ef6a599 100644 --- a/app/api/mobile/entities/user.rb +++ b/app/api/mobile/entities/user.rb @@ -36,6 +36,8 @@ module Mobile u.lastname when :mail u.mail + when :is_me + defined? u.is_me ? u.is_me : 0 end end end @@ -77,6 +79,8 @@ module Mobile user_expose :name + user_expose :is_me + end end diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 182d1150f..2c0506d1e 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -115,7 +115,7 @@ class CoursesService role_name: m.roles.first.name, name: m.user.show_name, roles_id: role_ids.include?(7) ? 7 : (role_ids.include?(9) ? 9 : 10 ), - :brief_introduction => m.user.user_extensions.brief_introduction,:realname=>m.user.realname} + :brief_introduction => m.user.user_extensions.brief_introduction,:realname=>m.user.realname,:is_me => current_user.id == m.user.id ? 1:0 } # end end diff --git a/public/assets/wechat/class.html b/public/assets/wechat/class.html index 836575b90..30c9120c3 100644 --- a/public/assets/wechat/class.html +++ b/public/assets/wechat/class.html @@ -25,7 +25,7 @@
-
+
diff --git a/public/assets/wechat/select_my_coursegroup.html b/public/assets/wechat/select_my_coursegroup.html new file mode 100644 index 000000000..c16b276e4 --- /dev/null +++ b/public/assets/wechat/select_my_coursegroup.html @@ -0,0 +1,25 @@ +
+
+
+
我的信息
+
{{current_edit_member.user.show_name}}
+
角色
+
学生
+
选择分班
+
    +
  • +
  • +
  • +
+ +
+ 取消 + 确定 +
+
+ +
{{tip_1}}
+
{{tip_2}}
+ + +
diff --git a/public/javascripts/wechat/controllers/class.js b/public/javascripts/wechat/controllers/class.js index ea394a1ff..ca4ad6d76 100644 --- a/public/javascripts/wechat/controllers/class.js +++ b/public/javascripts/wechat/controllers/class.js @@ -247,7 +247,6 @@ app.controller('ClassController', ['$scope', 'config','$http', 'auth','$location resetMenu(vm.course.current_user_is_teacher,vm.currentTab); } - vm.onSetting = function(user){ rms.save('current_edit_member', user); rms.save("course",vm.course); @@ -255,6 +254,13 @@ app.controller('ClassController', ['$scope', 'config','$http', 'auth','$location $location.path("/edit_class_member").search({id: courseid,user_id: user.id}); }; + vm.onSetting_1 = function(user){ + rms.save('current_edit_member', user); + rms.save("course",vm.course); + rms.save("tab_num",vm.currentTab); + $location.path("/select_my_coursegroup").search({id: courseid}); + }; + vm.review = function(user){ rms.save('current_review_member', user); rms.save('current_course', vm.course); diff --git a/public/javascripts/wechat/controllers/join_class.js b/public/javascripts/wechat/controllers/join_class.js index 8f7647b12..709072562 100644 --- a/public/javascripts/wechat/controllers/join_class.js +++ b/public/javascripts/wechat/controllers/join_class.js @@ -67,7 +67,11 @@ app.controller('JoinClassController', ['$scope', '$http', 'auth', 'config', 'ale } }); } else { - vm.alertService.showMessage('提示', response.data.message); + vm.alertService.showMessage('提示', response.data.message,function(){ + if(response.data.go_coursegroup_flag == 1) { + $location.path("/join_classgroup").search({id: response.data.course_id}); + } + }); } }); }; diff --git a/public/javascripts/wechat/controllers/join_classgroup.js b/public/javascripts/wechat/controllers/join_classgroup.js index 504643817..a661ba6fc 100644 --- a/public/javascripts/wechat/controllers/join_classgroup.js +++ b/public/javascripts/wechat/controllers/join_classgroup.js @@ -5,14 +5,28 @@ app.controller('JoinClassGroupController', ['$scope', '$http', 'auth', 'config', var course_id = $routeParams.id; vm.alertService = alertService.create(); + vm.selectid = 0; $http.get(config.apiUrl+ 'courses/'+course_id+"?token="+auth.token()).then( function(response) { console.log(response.data); if (response.data.status == 0){ vm.current_course = response.data.data; - console.log("courses"); + console.log("courses="); console.log(response.data.data); + if(vm.current_course){ + $http.get(config.apiUrl + 'courses/course_groups/'+course_id+'?token='+auth.token()).then( + function(response) { + console.log("groups="); + console.log(response); + if(response.data.status == 0) { + vm.groups = response.data.data; + } + else{ + vm.groups = []; + } + }); + } } else{ vm.alertService.showMessage('提示', response.data.message); @@ -23,17 +37,42 @@ app.controller('JoinClassGroupController', ['$scope', '$http', 'auth', 'config', } ); - if(vm.current_course){ - $http.get(config.apiUrl + 'courses/course_groups?token='+auth.token()+'&course_id='+course_id).then( - function(response) { - if(response.data.status == 0) { - vm.groups = response.data.groups; - } - else{ - vm.groups = []; - } - }); - } + vm.selectGroup = function(id){ + vm.selectid = id; + }; + + + vm.cancel = function(){ + }; + + vm.confirm = function(){ + if(vm.selectid == 0){ + rms.save('syllabuses',[]); + $location.path("/class_list"); + return; + } + + //加入分班 + $http.post(config.apiUrl+'courses/join_coursegroup', { + token: auth.token(), + id: course_id, + course_group_id:vm.selectid + }).then(function(response){ + console.log(response); + if(response.data.status == 0){ + vm.alertService.showMessage('提示', "加入分班成功!",function(){ + rms.save('syllabuses',[]); + $location.path("/class_list"); + + }); + } else { + vm.alertService.showMessage('提示', response.data.message,function(){ + rms.save('syllabuses',[]); + $location.path("/class_list"); + }); + } + }); + }; }] ); \ No newline at end of file diff --git a/public/javascripts/wechat/controllers/select_my_coursegroup.js b/public/javascripts/wechat/controllers/select_my_coursegroup.js new file mode 100644 index 000000000..2c338d33f --- /dev/null +++ b/public/javascripts/wechat/controllers/select_my_coursegroup.js @@ -0,0 +1,66 @@ + + +app.controller('SelectMyCourseGroupController', ['$scope', '$http', 'auth', 'config', 'alertService','$location','$routeParams','rms','common', function($scope, $http, auth, config, alertService, $location,$routeParams, rms,common){ +// common.checkLogin(); + + var vm = $scope; + + vm.current_review_member = rms.get('current_review_member'); + + vm.alertService = alertService.create(); + + vm.tip_1 = ""; + vm.tip_2 = ""; + + var course_id = $routeParams.id; + if(!vm.current_course){ + $http.get(config.apiUrl+ 'courses/'+course_id+"?token="+auth.token()).then( + function(response) { + console.log(response.data); + if (response.data.status == 0){ + vm.current_course = response.data.data; + console.log("courses"); + console.log(response.data.data); + } + else{ + vm.alertService.showMessage('提示', response.data.message); + } + if(!vm.current_course){ + vm.tip_1 = "该班级不存在或已被删除"; + } + + } + ); + } + + if(!vm.current_edit_member){ + $http.post(config.apiUrl+'courses/get_member_info', { + token: auth.token(), + id: course_id, + user_id:user_id + }).then(function(response){ + if(response.data.status!=0){ + vm.alertService.showMessage('提示', response.data.message,function(){ + $location.path("/class").search({id: course_id,tag:1}); + }); + } else { + console.log(response); + course_id = response.data.course_id; + vm.current_edit_member = response.data.member_info; + vm.current_roles_id = vm.current_edit_member.roles_id; + + for(var i in vm.current_roles_id){ + if(vm.current_roles_id[i] == 10){ + vm.student = true; + return; + } + } + + if(!vm.student){ + vm.tip_2 = "您不是该班级的学生!"; + } + } + }); + } + +}] ); \ No newline at end of file diff --git a/public/javascripts/wechat/others/routes.js b/public/javascripts/wechat/others/routes.js index 845995ec6..7b5434ddd 100644 --- a/public/javascripts/wechat/others/routes.js +++ b/public/javascripts/wechat/others/routes.js @@ -41,6 +41,7 @@ app.config(['$routeProvider',"$httpProvider", "$locationProvider",'config', func .when('/join_class', makeRoute('join_class.html', 'JoinClassController')) .when('/join_classgroup', makeRoute('join_classgroup.html', 'JoinClassGroupController')) .when('/review_class_member', makeRoute('review_class_member.html', 'ReviewClassMemberController')) + .when('/select_my_coursegroup', makeRoute('select_my_coursegroup.html', 'SelectMyCourseGroupController')) .when('/class_publishnotice', makeRoute('class_publishnotice.html', 'ClassPublishNoticeController')) .when('/class_publishissue', makeRoute('class_publishissue.html', 'ClassPublishIssueController')) .when('/project_list', makeRoute('project_list.html', 'ProjectListController'))