Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
5
51business
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
方斌
51business
Commits
32250c0b
Commit
32250c0b
authored
May 18, 2020
by
任国军
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add questionnaire
parent
dbcba65e
Pipeline
#23409
passed with stage
in 13 seconds
Changes
4
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
167 additions
and
3 deletions
+167
-3
option.js
app/controller/course/v5/option.js
+33
-0
courseV5Questionnaire.js
app/model/class/v5/courseV5Questionnaire.js
+43
-0
course_v5.js
app/router/course_v5.js
+2
-0
option.js
app/service/course/v5/option.js
+89
-3
No files found.
app/controller/course/v5/option.js
View file @
32250c0b
...
@@ -67,6 +67,39 @@ class OptionController extends Controller {
...
@@ -67,6 +67,39 @@ class OptionController extends Controller {
const
ret
=
await
service
.
course
.
v5
.
option
.
getCategoryTip
(
queryParams
);
const
ret
=
await
service
.
course
.
v5
.
option
.
getCategoryTip
(
queryParams
);
ctx
.
success
(
ret
);
ctx
.
success
(
ret
);
}
}
// 填写问卷
async
addQuestionnaire
()
{
const
{
ctx
,
service
}
=
this
;
const
params
=
ctx
.
request
.
body
;
if
(
ctx
.
isEmpty
(
params
)
||
ctx
.
isEmpty
(
params
.
cat_id
))
{
ctx
.
failed
(
'cat_id is empty'
);
}
if
(
ctx
.
isEmpty
(
params
)
||
ctx
.
isEmpty
(
params
.
answer_1
))
{
ctx
.
failed
(
'answer_1 is empty'
);
}
if
(
ctx
.
isEmpty
(
params
)
||
ctx
.
isEmpty
(
params
.
answer_2
))
{
ctx
.
failed
(
'answer_2 is empty'
);
}
if
(
ctx
.
isEmpty
(
params
)
||
ctx
.
isEmpty
(
params
.
answer_3
))
{
ctx
.
failed
(
'answer_3 is empty'
);
}
const
ret
=
await
service
.
course
.
v5
.
option
.
addQuestionnaire
(
params
);
ctx
.
success
(
ret
);
}
// 获取问卷
async
getQuestionnaire
()
{
const
{
ctx
,
service
}
=
this
;
const
ret
=
await
service
.
course
.
v5
.
option
.
getQuestionnaire
();
ctx
.
success
(
ret
);
}
}
}
module
.
exports
=
OptionController
;
module
.
exports
=
OptionController
;
app/model/class/v5/courseV5Questionnaire.js
0 → 100644
View file @
32250c0b
'use strict'
;
const
moment
=
require
(
'moment'
);
module
.
exports
=
app
=>
{
const
{
STRING
,
INTEGER
,
DATE
}
=
app
.
Sequelize
;
const
CourseV5Questionnaire
=
app
.
classModel
.
define
(
'course_v5_questionnaire'
,
{
id
:
{
type
:
INTEGER
,
primaryKey
:
true
,
autoIncrement
:
true
,
},
cat_id
:
INTEGER
,
user_id
:
STRING
,
answer_1
:
STRING
,
answer_2
:
STRING
,
answer_3
:
STRING
,
created_time
:
{
type
:
DATE
,
allowNull
:
true
,
get
()
{
const
date
=
this
.
getDataValue
(
'created_time'
);
return
date
?
moment
(
date
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
undefined
;
},
},
updated_time
:
{
type
:
DATE
,
allowNull
:
true
,
get
()
{
const
date
=
this
.
getDataValue
(
'updated_time'
);
return
date
?
moment
(
date
).
format
(
'YYYY-MM-DD HH:mm:ss'
)
:
undefined
;
},
},
},
{
timestamps
:
false
,
tableName
:
'course_v5_questionnaire'
,
});
return
CourseV5Questionnaire
;
};
app/router/course_v5.js
View file @
32250c0b
...
@@ -23,6 +23,8 @@ module.exports = app => {
...
@@ -23,6 +23,8 @@ module.exports = app => {
router
.
get
(
'third'
,
'/wechat/callbackAction'
,
'course.v5.wechat.check'
);
router
.
get
(
'third'
,
'/wechat/callbackAction'
,
'course.v5.wechat.check'
);
router
.
post
(
'third'
,
'/wechat/callbackAction'
,
'course.v5.wechat.callbackAction'
);
router
.
post
(
'third'
,
'/wechat/callbackAction'
,
'course.v5.wechat.callbackAction'
);
router
.
post
(
'third'
,
'/wechat/test'
,
'course.v5.wechat.test'
);
router
.
post
(
'third'
,
'/wechat/test'
,
'course.v5.wechat.test'
);
router
.
post
(
'third'
,
'/questionnaire'
,
auth
({
is_force
:
1
}),
'course.v5.option.addQuestionnaire'
);
// 填写问卷
router
.
get
(
'.third'
,
'/questionnaire'
,
'course.v5.option.getQuestionnaire'
);
// 获取问卷
router
.
get
(
'third'
,
'/class/all'
,
auth
({
is_force
:
0
}),
'course.v5.institution.getClassList'
);
// 获取课程列表
router
.
get
(
'third'
,
'/class/all'
,
auth
({
is_force
:
0
}),
'course.v5.institution.getClassList'
);
// 获取课程列表
router
.
get
(
'third'
,
'/class/:class_id'
,
auth
({
is_force
:
0
}),
'course.v5.institution.getClassInfo'
);
// 获取课程详情
router
.
get
(
'third'
,
'/class/:class_id'
,
auth
({
is_force
:
0
}),
'course.v5.institution.getClassInfo'
);
// 获取课程详情
...
...
app/service/course/v5/option.js
View file @
32250c0b
...
@@ -137,17 +137,53 @@ class OptionService extends Service {
...
@@ -137,17 +137,53 @@ class OptionService extends Service {
let
categoryAll
=
await
ctx
.
classModel
.
V5
.
CourseV5Category
.
findAll
({
where
:
{},
attributes
:
[
'id'
,
'name'
],
raw
:
true
});
let
categoryAll
=
await
ctx
.
classModel
.
V5
.
CourseV5Category
.
findAll
({
where
:
{},
attributes
:
[
'id'
,
'name'
],
raw
:
true
});
categoryAll
=
_
.
groupBy
(
categoryAll
,
'id'
);
categoryAll
=
_
.
groupBy
(
categoryAll
,
'id'
);
cons
t
filterIds
=
[];
le
t
filterIds
=
[];
// 智能选课要判断年龄
// 智能选课要判断年龄
if
(
type
===
3
)
{
if
(
type
===
3
)
{
const
userBabyInfo
=
await
ctx
.
classModel
.
V5
.
CourseV5UserBaby
.
findOne
({
where
:
{
user_uuid
:
ctx
.
userUuid
,
status
:
1
,
is_deleted
:
0
}
});
const
userBabyInfo
=
await
ctx
.
classModel
.
V5
.
CourseV5UserBaby
.
findOne
({
where
:
{
user_uuid
:
ctx
.
userUuid
,
status
:
1
,
is_deleted
:
0
}
});
if
(
!
ctx
.
isEmpty
(
userBabyInfo
))
{
if
(
!
ctx
.
isEmpty
(
userBabyInfo
))
{
switch
(
userBabyInfo
.
baby_age
)
{
switch
(
userBabyInfo
.
baby_age
)
{
case
1
:
case
1
:
filterIds
.
push
(
17
)
;
filterIds
=
[
17
,
18
]
;
break
;
break
;
case
2
:
case
2
:
filterIds
.
push
(
17
);
filterIds
=
[
17
,
18
];
break
;
case
5
:
filterIds
=
[
18
];
break
;
case
6
:
filterIds
=
[
18
];
break
;
case
7
:
filterIds
=
[
18
];
break
;
case
8
:
filterIds
=
[
18
];
break
;
case
9
:
filterIds
=
[
18
];
break
;
case
10
:
filterIds
=
[
18
];
break
;
case
11
:
filterIds
=
[
18
];
break
;
case
12
:
filterIds
=
[
18
];
break
;
case
13
:
filterIds
=
[
18
];
break
;
case
14
:
filterIds
=
[
18
];
break
;
case
15
:
filterIds
=
[
18
];
break
;
case
16
:
filterIds
=
[
18
];
break
;
break
;
default
:
default
:
break
;
break
;
...
@@ -250,6 +286,56 @@ class OptionService extends Service {
...
@@ -250,6 +286,56 @@ class OptionService extends Service {
return
ret
;
return
ret
;
}
}
// 填写问卷
async
addQuestionnaire
(
input
)
{
const
{
ctx
}
=
this
;
if
(
!
ctx
.
isEmpty
(
ctx
.
userUuid
))
{
ctx
.
failed
(
'用户异常'
);
}
const
data
=
{
user_id
:
ctx
.
userUuid
,
cat_id
:
input
.
cat_id
||
0
,
answer_1
:
input
.
answer_1
||
''
,
answer_2
:
input
.
answer_2
||
''
,
answer_3
:
input
.
answer_3
||
''
,
created_time
:
moment
().
format
(
'YYYY-MM-DD HH:mm:ss'
),
};
await
ctx
.
classModel
.
V5
.
CourseV5Questionnaire
.
create
(
data
);
const
ret
=
{
result
:
true
};
return
ret
;
}
// 获取问卷
async
getQuestionnaire
()
{
const
results
=
[
{
id
:
1
,
question
:
'报告对于孩子的描述是否准确?'
,
answers
:
[
'不准确'
,
'部分准确'
,
'很准确'
],
},
{
id
:
2
,
question
:
'报告建议对你选课有没有参考帮助?'
,
answers
:
[
'不会参考'
,
'部分参考'
,
'值得信任'
],
},
{
id
:
3
,
question
:
'选课工具体验感,请打分?'
,
answers
:
[
'体验较差'
,
'体验一般'
,
'体验很好'
],
},
];
const
ret
=
{
results
,
};
return
ret
;
}
}
}
module
.
exports
=
OptionService
;
module
.
exports
=
OptionService
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment