Skip to content

Commit c92039a

Browse files
committed
问题反馈接口oK
1 parent 2a60f09 commit c92039a

8 files changed

+593
-19
lines changed

db/feedback.js

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// 引入 models
2+
const models = require('../models');
3+
const code = require('../lib/code');
4+
const Sequelize = require('sequelize');
5+
const Op = Sequelize.Op;
6+
7+
submitAction = async (parms) => {
8+
try{
9+
const data = await models.feedbacks.create({
10+
'user_id': parms.openId,
11+
"user_name": parms.name,
12+
"msg_content": parms.content,
13+
"connect": parms.phone,
14+
"msg_time": new Date().getTime() / 100
15+
});
16+
console.log(data);
17+
return {
18+
results: 'success',
19+
dataBaseError: false
20+
};
21+
}
22+
catch(e) {
23+
return { results: e, dataBaseError: true}
24+
}
25+
}
26+
27+
module.exports = {
28+
submitAction
29+
}

migrations/20181222094828-create-nideshop_feedback-table.js

+5-12
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
'use strict';
21

32
module.exports = {
43
up: (queryInterface, Sequelize) => queryInterface.createTable(
5-
'nideshop_feedback',
4+
'nideshop_feedbacks',
65
{
76
id: {
87
type: Sequelize.INTEGER,
@@ -30,17 +29,11 @@ module.exports = {
3029
type: Sequelize.STRING,
3130
allowNull: false,
3231
defaultValue: false,
33-
}
32+
},
33+
created_at: Sequelize.DATE,
34+
updated_at: Sequelize.DATE,
3435
}
3536
),
3637

37-
down: (queryInterface, Sequelize) => {
38-
/*
39-
Add reverting commands here.
40-
Return a promise to correctly handle asynchronicity.
41-
42-
Example:
43-
return queryInterface.dropTable('users');
44-
*/
45-
}
38+
down: queryInterface => queryInterface.dropTable(nideshop_feedbacks),
4639
};

migrations/20181228070217-feedback.js

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
module.exports = {
2+
up: (queryInterface, Sequelize) => queryInterface.createTable(
3+
'feedbacks', {
4+
id: {
5+
type: Sequelize.INTEGER,
6+
autoIncrement: true,
7+
primaryKey: true,
8+
},
9+
user_id: {
10+
type: Sequelize.STRING,
11+
allowNull: false,
12+
defaultValue: false,
13+
},
14+
user_name: {
15+
type: Sequelize.STRING,
16+
allowNull: false,
17+
},
18+
connect: {
19+
type: Sequelize.STRING,
20+
allowNull: false,
21+
},
22+
msg_content: {
23+
type: Sequelize.TEXT,
24+
allowNull: false,
25+
},
26+
msg_time: {
27+
type: Sequelize.STRING,
28+
allowNull: false,
29+
defaultValue: false,
30+
},
31+
created_at: Sequelize.DATE,
32+
updated_at: Sequelize.DATE,
33+
}
34+
),
35+
36+
down: queryInterface => queryInterface.dropTable(feedbacks),
37+
};

models/feedbacks.js

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
module.exports = (sequelize, DataTypes) => sequelize.define(
2+
'feedbacks', {
3+
id: {
4+
type: DataTypes.INTEGER,
5+
autoIncrement: true,
6+
primaryKey: true,
7+
},
8+
user_id: {
9+
type: DataTypes.STRING,
10+
allowNull: false,
11+
defaultValue: false,
12+
},
13+
user_name: {
14+
type: DataTypes.STRING,
15+
allowNull: false,
16+
},
17+
connect: {
18+
type: DataTypes.STRING,
19+
allowNull: false,
20+
},
21+
msg_content: {
22+
type: DataTypes.TEXT,
23+
allowNull: false,
24+
},
25+
msg_time: {
26+
type: DataTypes.STRING,
27+
allowNull: false,
28+
defaultValue: false,
29+
},
30+
}, {
31+
tableName: 'feedbacks'
32+
}
33+
)

models/nideshop_feedback.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module.exports = (sequelize, DataTypes) => sequelize.define(
2-
'nideshop_feedback',
2+
'feedbacks',
33
{
44
id: {
55
type: DataTypes.INTEGER,
@@ -30,6 +30,6 @@ module.exports = (sequelize, DataTypes) => sequelize.define(
3030
},
3131
},
3232
{
33-
tableName: 'nideshop_feedback'
33+
tableName: 'feedbacks'
3434
}
3535
)

routes/feedback.js

+19-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,31 @@
1+
const controllers = require('../db/index');
2+
const middleware = require('../middleware');
3+
const Joi = require('joi');
4+
const { paginationDefine } = require('../lib/router-helper');
15
const GROUP_NAME = 'feedback';
26

37
module.exports = [
48
{
59
method: 'POST',
6-
path: `/${GROUP_NAME}/{data}/submitAction`,
10+
path: `/${GROUP_NAME}/submitAction`,
711
handler: async (request, reply) => {
8-
reply();
12+
let parms = request.payload;
13+
let res = await controllers.feedback.submitAction(parms);
14+
middleware.dbErrorMiddleware(request, res, reply);
915
},
1016
config: {
1117
tags: ['api', GROUP_NAME],
12-
description: '意见反馈'
18+
description: '意见反馈',
19+
validate: {
20+
// ...jwtHeaderDefine,
21+
payload: Joi.object().keys({
22+
// addressId: Joi.number().required(),
23+
openId: Joi.string(),
24+
name: Joi.string(),
25+
content: Joi.string(),
26+
phone: Joi.string(),
27+
})
28+
},
1329
},
1430
},
1531
];

seeders/20181222095147-init-nideshop_feedback.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const timestamps = {
55

66
module.exports = {
77
up: queryInterface => queryInterface.bulkInsert(
8-
'nideshop_feedback',
8+
'feedbacks',
99
[
1010
{
1111
"id": "1",
@@ -36,7 +36,7 @@ module.exports = {
3636
const {
3737
Op
3838
} = Sequelize;
39-
return queryInterface.bulkDelete('nideshop_feedback', {
39+
return queryInterface.bulkDelete('feedbacks', {
4040
id: {
4141
[Op.in]: [1, 2, 3]
4242
}

test/fixtures/awesome_log

+466
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)