調查問卷
表設計
/*
1、模板表 template
2、問卷題目表 question(是否必填、單選多選問答日期地址等類型)
3、題目選項表(單選多選才有) question_item
4、問卷填寫表 answer
5、填寫詳情表 answer_detail
*/
表格統計
需要將每個人填寫的信息以表格形式展示,由於問題個數和內容每個問卷都不同
/*
1、每個問題存儲爲一行數據,每個填寫也存儲爲一行數據
2、表格表頭的內容需要動態變化,即需要將一行一行的問題轉換爲表格的列
*/
思考幾個問題:
/**
-
動態表格如何表示
表頭和內容分開展示:
“titleList”: [“學生身體狀況【必填】”, “父親身體狀況”, “母親身體狀況”, “兄弟姐妹1身體狀況”, “兄弟姐妹2身體狀況”, “爺爺身體狀況”, “奶奶身體狀況”, “其他家庭人員或寄居人員的身體健康情況”, “最近是否有家人外出(請填有或無,如果有,請寫上外出具體人員姓名、與你的關係、去往城市)【必填】”, “你今天學習閱讀了嗎【必填】”, “你今天鍛鍊了嗎【必填】”, “你的家人是否與湖北或武漢、溫州返鄉人員密切接觸過【必填】”, “如有接觸,是誰接觸湖北或武漢、溫州返鄉人員”, “你的親戚朋友是否有湖北或武漢、溫州返鄉人員”, “家人聚衆娛樂了嗎【必填】”]
“valueList”: [“健康”, “健康”, “健康”, “健康”, “健康”, “健康”, “健康”, “都很健康”, “沒有”, “有,閱讀時間2-4小時”, “有,跳神”, “沒有”, “本人接觸過”, “沒有”, “有,一起聚餐”] -
如何高效的從數據庫取出數據
數據包括基本信息和問卷填寫信息,總共分2次數據庫查詢
第一次:查詢符合條件的學生信息
第二次:查出這些學生的所有問卷填寫信息
然後將問卷填寫信息按照學生id進行分組放入到一個map<Integer, List>,然後再需要需要的地方根據學生id從map中取出來
*/
最終返回給前端的數據格式如下
/**
{
"msg": "操作成功",
"code": 0,
"data": {
"title": "(新)xxx中小學生報平安日報表",
"countMember": 986,
"countCompleted": 1,
"countIgnorance": 985,
"writer": 2,
"titleList": ["學生身體狀況【必填】", "父親身體狀況", "母親身體狀況", "兄弟姐妹1身體狀況", "兄弟姐妹2身體狀況", "爺爺身體狀況", "奶奶身體狀況", "其他家庭人員或寄居人員的身體健康情況", "最近是否有家人外出(請填有或無,如果有,請寫上外出具體人員姓名、與你的關係、去往城市)【必填】", "你今天學習閱讀了嗎【必填】", "你今天鍛鍊了嗎【必填】", "你的家人是否與湖北或武漢、溫州返鄉人員密切接觸過【必填】", "如有接觸,是誰接觸湖北或武漢、溫州返鄉人員", "你的親戚朋友是否有湖北或武漢、溫州返鄉人員", "家人聚衆娛樂了嗎【必填】"],
"result": {
"page": {
"total": 986,
"offset": 450,
"limit": 10
},
"list": [{
"id": 2563,
"userId": 1335,
"username": "許寧",
"userHead": "a_girl.png",
"seatNum": 1,
"className": "1班",
"idNumber": "1111111111",
"phoneNumber": "",
"valueList": ["", "", "", "", "", "", "", "", "", "", "", "", "", "", ""],
"status": 0
}, {
"id": 25765,
"userId": 4,
"username": "。。",
"userHead": "wKgEEF4djP-Ab6lsAAFXH4bsmOA598.png",
"seatNum": 3,
"className": "高二1班",
"idNumber": "11111111",
"phoneNumber": "",
"valueList": ["健康", "健康", "健康", "健康", "健康", "健康", "健康", "都很健康", "沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有沒有", "有,閱讀時間2-4小時", "有,跳神", "沒有", "本人接觸過", "沒有", "有,一起聚餐"],
"status": 1
}]
}
}
}
*/