educode_sales 0.1.0 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/educode_sales/app.css +2 -1
- data/app/controllers/educode_sales/activities_controller.rb +7 -1
- data/app/controllers/educode_sales/application_controller.rb +0 -1
- data/app/controllers/educode_sales/businesses_controller.rb +16 -9
- data/app/controllers/educode_sales/follow_ups_controller.rb +12 -8
- data/app/controllers/educode_sales/operation_plans_controller.rb +155 -0
- data/app/controllers/educode_sales/operation_reports_controller.rb +125 -0
- data/app/controllers/educode_sales/places_controller.rb +3 -4
- data/app/controllers/educode_sales/plans_controller.rb +12 -10
- data/app/controllers/educode_sales/roles_controller.rb +11 -0
- data/app/controllers/educode_sales/sale_reports_controller.rb +5 -4
- data/app/controllers/educode_sales/sales_controller.rb +4 -1
- data/app/controllers/educode_sales/sessions_controller.rb +2 -1
- data/app/controllers/educode_sales/teacher_follows_controller.rb +146 -0
- data/app/controllers/educode_sales/teachers_controller.rb +113 -11
- data/app/models/ability.rb +0 -1
- data/app/models/educode_sales/activity.rb +2 -1
- data/app/models/educode_sales/business.rb +0 -1
- data/app/models/educode_sales/common.rb +1 -0
- data/app/models/educode_sales/course_subject.rb +1 -1
- data/app/models/educode_sales/money_plan.rb +3 -3
- data/app/models/educode_sales/operation_plan.rb +2 -0
- data/app/models/educode_sales/place.rb +1 -0
- data/app/models/educode_sales/sale_plan.rb +2 -0
- data/app/models/educode_sales/staff.rb +5 -3
- data/app/models/educode_sales/teacher.rb +20 -1
- data/app/views/educode_sales/activities/edit.html.erb +4 -4
- data/app/views/educode_sales/activities/index.html.erb +23 -8
- data/app/views/educode_sales/activities/index.json.jbuilder +1 -1
- data/app/views/educode_sales/activities/new.html.erb +4 -3
- data/app/views/educode_sales/businesses/edit_follow_record.html.erb +2 -2
- data/app/views/educode_sales/businesses/edit_plan.html.erb +12 -7
- data/app/views/educode_sales/businesses/index.html.erb +137 -141
- data/app/views/educode_sales/businesses/index.json.jbuilder +2 -1
- data/app/views/educode_sales/businesses/new.html.erb +1 -1
- data/app/views/educode_sales/businesses/show_follow.html.erb +18 -3
- data/app/views/educode_sales/businesses/show_follow_record.html.erb +1 -1
- data/app/views/educode_sales/home/search_users.json.jbuilder +1 -1
- data/app/views/educode_sales/operation_plans/_monthPlan.html.erb +82 -88
- data/app/views/educode_sales/operation_plans/_monthly.html.erb +126 -97
- data/app/views/educode_sales/operation_plans/_weekPlan.html.erb +103 -90
- data/app/views/educode_sales/operation_plans/_weekly.html.erb +116 -87
- data/app/views/educode_sales/operation_plans/edit_month.html.erb +44 -32
- data/app/views/educode_sales/operation_plans/edit_monthly.html.erb +1 -1
- data/app/views/educode_sales/operation_plans/edit_week.html.erb +49 -39
- data/app/views/educode_sales/operation_plans/edit_weekly.html.erb +1 -1
- data/app/views/educode_sales/operation_plans/index.html.erb +35 -5
- data/app/views/educode_sales/operation_plans/index.json.jbuilder +19 -0
- data/app/views/educode_sales/operation_plans/my_month.json.jbuilder +18 -0
- data/app/views/educode_sales/operation_plans/my_week.json.jbuilder +19 -0
- data/app/views/educode_sales/operation_plans/new_month.html.erb +13 -10
- data/app/views/educode_sales/operation_plans/new_monthly.html.erb +162 -72
- data/app/views/educode_sales/operation_plans/new_week.html.erb +14 -7
- data/app/views/educode_sales/operation_plans/new_weekly.html.erb +205 -120
- data/app/views/educode_sales/operation_plans/show_month.html.erb +4 -10
- data/app/views/educode_sales/operation_plans/show_week.html.erb +20 -25
- data/app/views/educode_sales/operation_plans/show_weekly.html.erb +6 -6
- data/app/views/educode_sales/operation_reports/audit.html.erb +214 -0
- data/app/views/educode_sales/operation_reports/edit.html.erb +234 -0
- data/app/views/educode_sales/operation_reports/index.json.jbuilder +18 -0
- data/app/views/educode_sales/operation_reports/plans.json.jbuilder +19 -0
- data/app/views/educode_sales/operation_reports/show.html.erb +139 -0
- data/app/views/educode_sales/operations/trends.html.erb +8 -0
- data/app/views/educode_sales/places/index.html.erb +6 -0
- data/app/views/educode_sales/places/index.json.jbuilder +1 -1
- data/app/views/educode_sales/plans/_monthPlan.html.erb +9 -1
- data/app/views/educode_sales/plans/_monthly.html.erb +10 -2
- data/app/views/educode_sales/plans/_weekPlan.html.erb +17 -5
- data/app/views/educode_sales/plans/_weekly.html.erb +10 -2
- data/app/views/educode_sales/plans/audit_weekly.html.erb +6 -0
- data/app/views/educode_sales/plans/edit_monthly.html.erb +8 -0
- data/app/views/educode_sales/plans/edit_week.html.erb +8 -2
- data/app/views/educode_sales/plans/edit_weekly.html.erb +8 -0
- data/app/views/educode_sales/plans/index.json.jbuilder +1 -1
- data/app/views/educode_sales/plans/my_month.json.jbuilder +1 -1
- data/app/views/educode_sales/plans/my_week.json.jbuilder +1 -1
- data/app/views/educode_sales/plans/new_month.html.erb +7 -3
- data/app/views/educode_sales/plans/new_monthly.html.erb +8 -0
- data/app/views/educode_sales/plans/new_week.html.erb +8 -2
- data/app/views/educode_sales/plans/new_weekly.html.erb +7 -1
- data/app/views/educode_sales/roles/index.html.erb +33 -2
- data/app/views/educode_sales/sale_reports/index.json.jbuilder +1 -1
- data/app/views/educode_sales/sale_trends/trends.html.erb +8 -0
- data/app/views/educode_sales/sales/index.html.erb +2 -1
- data/app/views/educode_sales/sales/operations.html.erb +5 -2
- data/app/views/educode_sales/sessions/login.html.erb +1 -1
- data/app/views/educode_sales/staffs/edit.html.erb +2 -3
- data/app/views/educode_sales/staffs/index.html.erb +4 -4
- data/app/views/educode_sales/staffs/new.html.erb +1 -1
- data/app/views/educode_sales/teachers/add_courses.html.erb +100 -19
- data/app/views/educode_sales/teachers/course_subject.json.jbuilder +10 -0
- data/app/views/educode_sales/teachers/edit.html.erb +54 -18
- data/app/views/educode_sales/teachers/edit_follow_record.html.erb +49 -30
- data/app/views/educode_sales/teachers/index.html.erb +20 -11
- data/app/views/educode_sales/teachers/index.json.jbuilder +2 -0
- data/app/views/educode_sales/teachers/new.html.erb +8 -6
- data/app/views/educode_sales/teachers/new_follow_record.html.erb +54 -29
- data/app/views/educode_sales/teachers/show_follow.html.erb +150 -170
- data/app/views/educode_sales/teachers/show_follow.json.jbuilder +20 -0
- data/app/views/educode_sales/teachers/show_follow_record.html.erb +11 -42
- data/app/views/educode_sales/teachers/unfinish_plans.json.jbuilder +14 -0
- data/app/views/layouts/educode_sales/application.html.erb +23 -2
- data/config/routes.rb +22 -4
- data/db/migrate/20210915061738_add_students_count_teacher_follow_ups.rb +9 -0
- data/lib/educode_sales/version.rb +1 -1
- metadata +19 -6
@@ -4,6 +4,7 @@ module EducodeSales
|
|
4
4
|
class PlacesController < ApplicationController
|
5
5
|
def index
|
6
6
|
respond_to do |format|
|
7
|
+
authorize! :read, Place
|
7
8
|
format.html do
|
8
9
|
end
|
9
10
|
format.json do
|
@@ -28,7 +29,6 @@ module EducodeSales
|
|
28
29
|
|
29
30
|
def create
|
30
31
|
place = @current_admin.places.new(name: params[:name])
|
31
|
-
# place = Place.new(name: params[:name])
|
32
32
|
commons = []
|
33
33
|
params[:area_ids].each do |d|
|
34
34
|
commons << Common.find(d)
|
@@ -42,7 +42,6 @@ module EducodeSales
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def update
|
45
|
-
# id = @current_admin.id
|
46
45
|
place = Place.find(params[:id])
|
47
46
|
place.assign_attributes(name: params[:name])
|
48
47
|
commons = []
|
@@ -61,8 +60,8 @@ module EducodeSales
|
|
61
60
|
place = Place.find(params[:id])
|
62
61
|
place.destroy
|
63
62
|
render_success
|
64
|
-
|
65
|
-
|
63
|
+
rescue ActiveRecord::DeleteRestrictionError => e
|
64
|
+
render_failure '渠道下已有关联数据产生,暂不能删除'
|
66
65
|
end
|
67
66
|
|
68
67
|
end
|
@@ -4,7 +4,7 @@ module EducodeSales
|
|
4
4
|
class PlansController < ApplicationController
|
5
5
|
|
6
6
|
def index
|
7
|
-
authorize! :read, SalePlan
|
7
|
+
# authorize! :read, SalePlan
|
8
8
|
respond_to do |format|
|
9
9
|
format.html do
|
10
10
|
common = Common.find_by(clazz: 'staff_type', name: '销售')
|
@@ -39,13 +39,14 @@ module EducodeSales
|
|
39
39
|
@sale_plans = @sale_plans.where("month >= ? and month <= ?", "#{params[:q][:year]}-01-01 00:00:00".to_date, "#{params[:q][:year]}-12-31 23:59:00".to_date)
|
40
40
|
end
|
41
41
|
if params[:q].present? && params[:q][:month].present?
|
42
|
-
@sale_plans = @sale_plans.where("month
|
42
|
+
@sale_plans = @sale_plans.where("month = ?", "#{params[:q][:month]}-01 00:00:00".to_date)
|
43
43
|
end
|
44
44
|
if params[:sort].present? && params[:sort][:field]
|
45
45
|
@sale_plans = @sale_plans.order("#{params[:sort][:field]} #{params[:sort][:order]}")
|
46
46
|
else
|
47
47
|
@sale_plans = @sale_plans.order("updated_at desc")
|
48
48
|
end
|
49
|
+
|
49
50
|
@sale_plans = @sale_plans.page(params[:page]).per(params[:per_page])
|
50
51
|
end
|
51
52
|
end
|
@@ -66,6 +67,7 @@ module EducodeSales
|
|
66
67
|
end
|
67
68
|
end
|
68
69
|
|
70
|
+
|
69
71
|
def new_week
|
70
72
|
@business = Business.find_by(id: params[:business_id])
|
71
73
|
week = Time.now.strftime('%W').to_i
|
@@ -82,7 +84,7 @@ module EducodeSales
|
|
82
84
|
|
83
85
|
def new_weekly
|
84
86
|
sale_plans = SalePlan.where(month: Time.now.strftime("%Y-%m") + "-01 00:00:00", weekly: Time.now.strftime('%W').to_i, staff_id: @current_admin.id)
|
85
|
-
@rate = sale_plans ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
|
87
|
+
@rate = sale_plans.present? ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
|
86
88
|
@departments_count = sale_plans.joins(:business).count("distinct(department_id)")
|
87
89
|
@total_amount = sale_plans.joins(business: :last_follow_up).sum("total_amount")
|
88
90
|
render layout: false
|
@@ -96,7 +98,7 @@ module EducodeSales
|
|
96
98
|
|
97
99
|
def new_monthly
|
98
100
|
sale_plans = SalePlan.where(month: Time.now.strftime("%Y-%m") + "-01 00:00:00", staff_id: @current_admin.id, weekly: nil)
|
99
|
-
@rate = sale_plans ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
|
101
|
+
@rate = sale_plans.present? ? (sale_plans.sum("finish_rate") / sale_plans.size) : 0
|
100
102
|
@departments_count = sale_plans.joins(:business).count("distinct(department_id)")
|
101
103
|
@total_amount = sale_plans.joins(business: :last_follow_up).sum("total_amount")
|
102
104
|
render layout: false
|
@@ -122,7 +124,7 @@ module EducodeSales
|
|
122
124
|
|
123
125
|
def edit_week
|
124
126
|
@businesses = @current_admin.businesses.pluck(:name, :id)
|
125
|
-
@sale_plan =
|
127
|
+
@sale_plan = SalePlan.find(params[:id])
|
126
128
|
if @sale_plan.weekly.present?
|
127
129
|
week = Time.now.strftime('%W').to_i
|
128
130
|
if week > 3
|
@@ -139,12 +141,12 @@ module EducodeSales
|
|
139
141
|
@months << @sale_plan.month.strftime("%Y-%m")
|
140
142
|
@months = @months.uniq.sort
|
141
143
|
@finish_rates = []
|
142
|
-
|
144
|
+
11.times { |d| @finish_rates << ["#{d * 10}%", d * 10] }
|
143
145
|
render layout: false
|
144
146
|
end
|
145
147
|
|
146
148
|
def update
|
147
|
-
sale_plan =
|
149
|
+
sale_plan = SalePlan.find(params[:id])
|
148
150
|
params["month"] = params["month"] + "-1"
|
149
151
|
if sale_plan.update(plan_params)
|
150
152
|
render_success
|
@@ -154,7 +156,7 @@ module EducodeSales
|
|
154
156
|
end
|
155
157
|
|
156
158
|
def destroy
|
157
|
-
sale_plan =
|
159
|
+
sale_plan = SalePlan.find(params[:id])
|
158
160
|
if sale_plan.destroy
|
159
161
|
render_success
|
160
162
|
else
|
@@ -168,9 +170,9 @@ module EducodeSales
|
|
168
170
|
|
169
171
|
def edit_month
|
170
172
|
@businesses = @current_admin.businesses.pluck(:name, :id)
|
171
|
-
@sale_plan =
|
173
|
+
@sale_plan = SalePlan.find(params[:id])
|
172
174
|
@finish_rates = []
|
173
|
-
|
175
|
+
11.times { |d| @finish_rates << ["#{d*10}%", d * 10]}
|
174
176
|
render layout: false
|
175
177
|
end
|
176
178
|
|
@@ -35,6 +35,17 @@ module EducodeSales
|
|
35
35
|
render layout: false
|
36
36
|
end
|
37
37
|
|
38
|
+
def update_role
|
39
|
+
role = Role.find(params[:id])
|
40
|
+
if role.update(name: params[:name])
|
41
|
+
render_success
|
42
|
+
else
|
43
|
+
render_failure role
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
|
38
49
|
def update
|
39
50
|
permissions = []
|
40
51
|
role = Role.find(params[:id])
|
@@ -27,7 +27,7 @@ module EducodeSales
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def destroy
|
30
|
-
sale_report =
|
30
|
+
sale_report = SaleReport.find(params[:id])
|
31
31
|
if sale_report.destroy
|
32
32
|
render_success
|
33
33
|
else
|
@@ -35,8 +35,9 @@ module EducodeSales
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
|
38
39
|
def index
|
39
|
-
authorize! :read, SalePlan
|
40
|
+
# authorize! :read, SalePlan
|
40
41
|
respond_to do |format|
|
41
42
|
format.html do
|
42
43
|
end
|
@@ -81,12 +82,12 @@ module EducodeSales
|
|
81
82
|
|
82
83
|
|
83
84
|
def edit
|
84
|
-
@sale_report =
|
85
|
+
@sale_report = SaleReport.find(params[:id])
|
85
86
|
render layout: false
|
86
87
|
end
|
87
88
|
|
88
89
|
def update
|
89
|
-
sale_report =
|
90
|
+
sale_report = SaleReport.find(params[:id])
|
90
91
|
sale_report.content = params[:content]
|
91
92
|
if sale_report.save
|
92
93
|
render_success
|
@@ -6,7 +6,7 @@ module EducodeSales
|
|
6
6
|
# authorize_resource class: false
|
7
7
|
|
8
8
|
def index
|
9
|
-
|
9
|
+
authorize! :sales, Staff
|
10
10
|
respond_to do |format|
|
11
11
|
format.html do
|
12
12
|
end
|
@@ -22,11 +22,13 @@ module EducodeSales
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def trends
|
25
|
+
authorize! :trends, SaleTrend
|
25
26
|
@year = params[:year] ? params[:year] : Time.now.year
|
26
27
|
@sale_trend = SaleTrend.find_or_create_by(year: @year)
|
27
28
|
end
|
28
29
|
|
29
30
|
def sale_trends
|
31
|
+
authorize! :sale_trends, SaleTrend
|
30
32
|
sale_trend = SaleTrend.find_by(year: params[:year])
|
31
33
|
if sale_trend.update(sale_trend_params)
|
32
34
|
render_success
|
@@ -36,6 +38,7 @@ module EducodeSales
|
|
36
38
|
end
|
37
39
|
|
38
40
|
def operations
|
41
|
+
authorize! :operations, Staff
|
39
42
|
respond_to do |format|
|
40
43
|
format.html do
|
41
44
|
end
|
@@ -9,12 +9,13 @@ module EducodeSales
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def create
|
12
|
-
user = User.
|
12
|
+
user = User.where("login = :acount OR mail = :acount OR phone = :acount", acount: params[:account]).first
|
13
13
|
if user&.admin
|
14
14
|
check_pwd(user)
|
15
15
|
elsif user
|
16
16
|
staff = Staff.find_by(user_id: user.id)
|
17
17
|
if staff
|
18
|
+
return render_failure('该账号已禁止使用') if staff.expired_at < Time.now
|
18
19
|
check_pwd(user, staff)
|
19
20
|
else
|
20
21
|
render_failure('账号不存在')
|
@@ -0,0 +1,146 @@
|
|
1
|
+
require_dependency "educode_sales/application_controller"
|
2
|
+
|
3
|
+
module EducodeSales
|
4
|
+
class TeacherFollowsController < ApplicationController
|
5
|
+
def create
|
6
|
+
load_teacher
|
7
|
+
follow_up = @teacher.teacher_follows.build(follow_up_params)
|
8
|
+
follow_up.staff = @current_admin
|
9
|
+
if @teacher.user_id.present?
|
10
|
+
course_ids = CourseMember.where(user_id: @teacher.user_id).where.not(role: 4).pluck(:course_id)
|
11
|
+
follow_up.course_shixuns_count = CourseMember.joins(course: :practice_homework_shixuns).where(course_id: course_ids).pluck(:shixun_id).uniq.count
|
12
|
+
follow_up.shixuns_count = ShixunMember.where(user_id: @teacher.user_id, role: 1).count
|
13
|
+
follow_up.students_count = CourseMember.where(course_id: course_ids, role: 4).count
|
14
|
+
follow_up.evaluates_count = CourseMember.joins(course: :practice_homework_shixuns).where(course_id: course_ids).count
|
15
|
+
follow_up.courses_count = course_ids.size
|
16
|
+
end
|
17
|
+
if follow_up.save
|
18
|
+
render_success
|
19
|
+
else
|
20
|
+
render_failure follow_up
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def destroy
|
25
|
+
follow_up = @current_admin.teacher_follows.find(params[:id])
|
26
|
+
if follow_up.destroy
|
27
|
+
render_success
|
28
|
+
else
|
29
|
+
render_failure follow_up
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def update
|
34
|
+
follow_up = @current_admin.teacher_follows.find(params[:id])
|
35
|
+
follow_up.assign_attributes(follow_up_params)
|
36
|
+
# follow_up.profit_amount = follow_up.actual_amount * (100-follow_up.divide_rate.to_i) * 0.01 if follow_up.actual_amount
|
37
|
+
if follow_up.save
|
38
|
+
render_success
|
39
|
+
else
|
40
|
+
render_failure follow_up
|
41
|
+
end
|
42
|
+
end
|
43
|
+
#
|
44
|
+
# def teachers
|
45
|
+
# follow_up = @current_admin.follow_ups.find_by(id: params[:id])
|
46
|
+
# if follow_up.present?
|
47
|
+
# @teachers = follow_up.key_person.includes(:teacher).page(params[:page]).per(params[:per_page])
|
48
|
+
# else
|
49
|
+
# @teachers = FollowUp.none
|
50
|
+
# end
|
51
|
+
# end
|
52
|
+
#
|
53
|
+
# def money_plans
|
54
|
+
# follow_up = @current_admin.follow_ups.find_by(id: params[:id])
|
55
|
+
# @money_plans = follow_up.money_plans.page(params[:page]).per(params[:per_page])
|
56
|
+
# end
|
57
|
+
#
|
58
|
+
# def add_money
|
59
|
+
# follow_up = @current_admin.follow_ups.find(params[:id])
|
60
|
+
# money_plan = follow_up.money_plans.build(date_at: params[:date_at], amount: params[:amount], clazz: params[:clazz])
|
61
|
+
# money_plan.staff = @current_admin
|
62
|
+
# if money_plan.save
|
63
|
+
# render_success
|
64
|
+
# else
|
65
|
+
# render_failure money_plan
|
66
|
+
# end
|
67
|
+
# end
|
68
|
+
#
|
69
|
+
# def update_money
|
70
|
+
# follow_up = @current_admin.follow_ups.find_by(id: params[:id])
|
71
|
+
# money_plan = follow_up.money_plans.find(params[:plan_id])
|
72
|
+
# if money_plan.update(date_at: params[:date_at], amount: params[:amount], clazz: params[:clazz])
|
73
|
+
# render_success
|
74
|
+
# else
|
75
|
+
# render_failure money_plan
|
76
|
+
# end
|
77
|
+
# end
|
78
|
+
#
|
79
|
+
# def delete_money
|
80
|
+
# follow_up = @current_admin.follow_ups.find_by(id: params[:id])
|
81
|
+
# money_plan = follow_up.money_plans.find(params[:plan_id])
|
82
|
+
# if money_plan.destroy
|
83
|
+
# render_success
|
84
|
+
# else
|
85
|
+
# render_failure money_plan
|
86
|
+
# end
|
87
|
+
# end
|
88
|
+
#
|
89
|
+
# def add_keys
|
90
|
+
# follow_up = @current_admin.follow_ups.find(params[:id])
|
91
|
+
# if params[:name].blank?
|
92
|
+
# return render_failure '请从平台里选择教师'
|
93
|
+
# end
|
94
|
+
#
|
95
|
+
# names = params[:name].split("-")
|
96
|
+
# if names[0] == 't'
|
97
|
+
# # 从教师列表里选择的用户
|
98
|
+
# teacher = Teacher.find(names[1])
|
99
|
+
# key_peprson = KeyPerson.new(teacher_params)
|
100
|
+
# key_peprson.teacher = teacher
|
101
|
+
# else
|
102
|
+
# # 从头歌平台选择的用户
|
103
|
+
# user = User.find(names[1])
|
104
|
+
# teacher = Teacher.new(staff: @current_admin,
|
105
|
+
# professional_title: params[:professional_title],
|
106
|
+
# job: params[:job],
|
107
|
+
# user_id: user.id,
|
108
|
+
# is_key: true,
|
109
|
+
# department_id: user.department_id,
|
110
|
+
# name: user.real_name
|
111
|
+
# )
|
112
|
+
# teacher.save
|
113
|
+
# key_peprson = KeyPerson.new(teacher_params)
|
114
|
+
# key_peprson.teacher = teacher
|
115
|
+
# end
|
116
|
+
#
|
117
|
+
# follow_up.key_person << key_peprson
|
118
|
+
# if follow_up.save!
|
119
|
+
# render_success
|
120
|
+
# else
|
121
|
+
# render_failure follow_up
|
122
|
+
# end
|
123
|
+
# rescue ActiveRecord::RecordInvalid => e
|
124
|
+
# if e.message.include?("Teacher已经被使用") || e.message.include?('Key person是无效的')
|
125
|
+
# render_failure '该老师已在关键人列表中'
|
126
|
+
# else
|
127
|
+
# render_failure e.message
|
128
|
+
# end
|
129
|
+
# end
|
130
|
+
|
131
|
+
private
|
132
|
+
|
133
|
+
def load_teacher
|
134
|
+
@teacher = Teacher.find(params[:teacher_id])
|
135
|
+
end
|
136
|
+
#
|
137
|
+
def follow_up_params
|
138
|
+
params.permit(:attitude_id, :follow_id, :course_plan_id, :course_build_id, :description)
|
139
|
+
end
|
140
|
+
#
|
141
|
+
# def teacher_params
|
142
|
+
# params.permit(:professional_title, :job, :attitude_id, :sex, :birth_date, :remark)
|
143
|
+
# end
|
144
|
+
|
145
|
+
end
|
146
|
+
end
|
@@ -21,11 +21,23 @@ module EducodeSales
|
|
21
21
|
def index
|
22
22
|
respond_to do |format|
|
23
23
|
format.html do
|
24
|
-
|
25
|
-
# @teachers = Teacher.joins(:user).map { |d| [d.user.real_name, d.id] }
|
26
24
|
end
|
27
25
|
format.json do
|
28
|
-
@
|
26
|
+
if @current_admin.is_admin?
|
27
|
+
@teachers = Teacher.where(is_key: false)
|
28
|
+
else
|
29
|
+
level = @current_admin.role.role_areas.find_by(clazz: '教师运营').level
|
30
|
+
case level
|
31
|
+
when '自己'
|
32
|
+
@teachers = Teacher.where(is_key: false)
|
33
|
+
@teachers = @teachers.where(staff_id: @current_admin.id)
|
34
|
+
when '区域'
|
35
|
+
school_ids = School.where(province: @current_admin.areas.pluck(:name)).pluck(:id)
|
36
|
+
@teachers = Teacher.joins("JOIN departments ON educode_sales_teachers.department_id = departments.id").where(is_key: false).where("departments.school_id in (?) OR educode_sales_teachers.staff_id = #{@current_admin.id}", school_ids)
|
37
|
+
else
|
38
|
+
@teachers = Teacher.where(is_key: false)
|
39
|
+
end
|
40
|
+
end
|
29
41
|
|
30
42
|
if params[:q].present? && params[:q][:name].present?
|
31
43
|
@teachers = @teachers.where("educode_sales_teachers.name like ?", "%#{params[:q][:name]}%")
|
@@ -36,8 +48,8 @@ module EducodeSales
|
|
36
48
|
if params[:q].present? && params[:q][:regist_at].present?
|
37
49
|
@teachers = @teachers.where("educode_sales_teachers.regist_at like ?", "%#{params[:q][:regist_at]}%")
|
38
50
|
end
|
39
|
-
if params[:q].present? && params[:q][:
|
40
|
-
@teachers = @teachers.where("educode_sales_teachers.attitude_id = ?", "#{params[:q][:
|
51
|
+
if params[:q].present? && params[:q][:attitude].present?
|
52
|
+
@teachers = @teachers.where("educode_sales_teachers.attitude_id = ?", "#{params[:q][:attitude]}")
|
41
53
|
end
|
42
54
|
if params[:q].present? && params[:q][:teacher_source].present?
|
43
55
|
@teachers = @teachers.where("educode_sales_teachers.source_id = ?", "#{params[:q][:teacher_source]}")
|
@@ -61,12 +73,14 @@ module EducodeSales
|
|
61
73
|
@teachers = @teachers.where("created_at > ? AND created_at < ?", date[0], date[1])
|
62
74
|
end
|
63
75
|
|
64
|
-
@teachers = @teachers.page(params[:page]).per(params[:per_page])
|
76
|
+
@teachers = @teachers.order("created_at desc").page(params[:page]).per(params[:per_page])
|
65
77
|
|
66
78
|
end
|
67
79
|
end
|
68
80
|
end
|
69
81
|
|
82
|
+
|
83
|
+
|
70
84
|
def new
|
71
85
|
render layout: false
|
72
86
|
end
|
@@ -85,9 +99,10 @@ module EducodeSales
|
|
85
99
|
|
86
100
|
if params[:activity_id].present? && params[:user_id].present?
|
87
101
|
# 把老师添加到活动列表,提取判断下老师列表是否存在
|
88
|
-
|
89
|
-
if
|
90
|
-
|
102
|
+
find_teacher = Teacher.find_by(user_id: params[:user_id])
|
103
|
+
if find_teacher
|
104
|
+
find_teacher.activity_teachers.build(activity_id: params[:activity_id])
|
105
|
+
teacher = find_teacher
|
91
106
|
end
|
92
107
|
end
|
93
108
|
|
@@ -98,6 +113,22 @@ module EducodeSales
|
|
98
113
|
end
|
99
114
|
end
|
100
115
|
|
116
|
+
def update
|
117
|
+
department = Department.find(params[:department_id])
|
118
|
+
teacher = Teacher.find(params[:id])
|
119
|
+
teacher.department_id = department.id
|
120
|
+
teacher.assign_attributes(teacher_params)
|
121
|
+
if params[:user_id].present?
|
122
|
+
user = User.find(params[:user_id])
|
123
|
+
teacher.user_id = user.id
|
124
|
+
end
|
125
|
+
if teacher.save
|
126
|
+
render_success
|
127
|
+
else
|
128
|
+
render_failure teacher
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
101
132
|
def destroy
|
102
133
|
teacher = Teacher.find(params[:id])
|
103
134
|
teacher.destroy
|
@@ -106,25 +137,78 @@ module EducodeSales
|
|
106
137
|
|
107
138
|
def edit
|
108
139
|
@teacher = Teacher.find(params[:id])
|
109
|
-
gon.department = { value: @teacher.department_id, name: "#{@teacher.department
|
140
|
+
gon.department = { value: @teacher.department_id, name: "#{@teacher.department&.school&.name}-#{@teacher.department&.name}" }
|
110
141
|
gon.value = @teacher.department_id
|
111
142
|
render layout: false
|
112
143
|
end
|
113
144
|
|
145
|
+
def unfinish_plans
|
146
|
+
load_teacher
|
147
|
+
@plans = @teacher.operation_plans.where.not(finish_rate: 100).page(params[:page]).per(params[:per_page])
|
148
|
+
end
|
149
|
+
|
150
|
+
def course_subject
|
151
|
+
load_teacher
|
152
|
+
@courses = @teacher.course_subjects.all
|
153
|
+
end
|
154
|
+
|
114
155
|
def search_new
|
115
156
|
render layout: false
|
116
157
|
end
|
117
158
|
|
118
159
|
def add_courses
|
160
|
+
load_teacher
|
119
161
|
render layout: false
|
120
162
|
end
|
121
163
|
|
164
|
+
|
165
|
+
def create_course
|
166
|
+
load_teacher
|
167
|
+
course_subject = @teacher.course_subjects.build(name: params[:name], role_name: params[:role_name],)
|
168
|
+
# course_subject = CourseSubject.new(teacher_id: params[:teacher_id], name: params[:name], role_name: params[:role_name],)
|
169
|
+
if course_subject.save
|
170
|
+
render_success
|
171
|
+
else
|
172
|
+
render_failure course_subject
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
def update_course
|
177
|
+
course_subject = CourseSubject.find(params[:id])
|
178
|
+
if course_subject.update(name: params[:name], role_name: params[:role_name])
|
179
|
+
render_success
|
180
|
+
else
|
181
|
+
render_failure course_subject
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
def delete_course
|
186
|
+
course_subject = CourseSubject.find(params[:id])
|
187
|
+
course_subject.destroy
|
188
|
+
render_success
|
189
|
+
end
|
190
|
+
|
191
|
+
|
122
192
|
def add_event
|
123
193
|
render layout: false
|
124
194
|
end
|
125
195
|
|
126
196
|
def show_follow
|
127
|
-
|
197
|
+
@teacher = Teacher.find(params[:id])
|
198
|
+
respond_to do |format|
|
199
|
+
format.html do
|
200
|
+
render layout: false
|
201
|
+
end
|
202
|
+
format.json do
|
203
|
+
@follow_ups = @teacher.teacher_follows
|
204
|
+
if params[:field]
|
205
|
+
@follow_ups = @follow_ups.order("#{params[:field]} #{params[:order]}")
|
206
|
+
else
|
207
|
+
@follow_ups = @follow_ups.order("created_at desc")
|
208
|
+
end
|
209
|
+
@follow_ups = @follow_ups.page(params[:page]).per(params[:per_page])
|
210
|
+
end
|
211
|
+
end
|
128
212
|
end
|
129
213
|
|
130
214
|
def show_class
|
@@ -132,14 +216,28 @@ module EducodeSales
|
|
132
216
|
end
|
133
217
|
|
134
218
|
def new_follow_record
|
219
|
+
@teacher = Teacher.find(params[:id])
|
135
220
|
render layout: false
|
136
221
|
end
|
137
222
|
|
223
|
+
# def create_follow_record
|
224
|
+
#
|
225
|
+
# end
|
226
|
+
#
|
227
|
+
# def update_follow_record
|
228
|
+
#
|
229
|
+
# end
|
230
|
+
# def delete_follow_record
|
231
|
+
#
|
232
|
+
# end
|
233
|
+
|
138
234
|
def show_follow_record
|
235
|
+
@follow_up = TeacherFollow.find(params[:id])
|
139
236
|
render layout: false
|
140
237
|
end
|
141
238
|
|
142
239
|
def edit_follow_record
|
240
|
+
@follow_up = TeacherFollow.find(params[:id])
|
143
241
|
render layout: false
|
144
242
|
end
|
145
243
|
|
@@ -163,5 +261,9 @@ module EducodeSales
|
|
163
261
|
params.permit(:name, :professional_title, :job, :source_id)
|
164
262
|
end
|
165
263
|
|
264
|
+
def load_teacher
|
265
|
+
@teacher = Teacher.find(params[:id])
|
266
|
+
end
|
267
|
+
|
166
268
|
end
|
167
269
|
end
|