劉嘉峰 劉懿萱
【摘要】? ? 隨著現(xiàn)今校園活動(dòng)的日益豐富,使得人工對(duì)于某些活動(dòng)的數(shù)據(jù)統(tǒng)計(jì)變得耗時(shí)耗力,且人工統(tǒng)計(jì)、核對(duì)數(shù)據(jù)會(huì)帶來數(shù)據(jù)無規(guī)范性、延時(shí)性等問題,針對(duì)此類活動(dòng)的定制化管理系統(tǒng)應(yīng)運(yùn)而生。系統(tǒng)除了解決數(shù)據(jù)運(yùn)算和存儲(chǔ)問題,還面向需求建立角色與模塊權(quán)限的關(guān)系,將模塊的訪問權(quán)限通過角色對(duì)應(yīng)到每一個(gè)用戶,從而達(dá)到業(yè)務(wù)分離的目的。
【關(guān)鍵詞】? ? 復(fù)用? ? 角色? ? 權(quán)限? ? 可拓展性
引言:
在學(xué)院開展班級(jí)考評(píng)時(shí),統(tǒng)計(jì)數(shù)據(jù)時(shí)通常因數(shù)據(jù)量龐大且無法對(duì)其他人進(jìn)行實(shí)時(shí)共享,導(dǎo)致成績的透明度存在缺憾?;诖祟悊栴},對(duì)班級(jí)評(píng)選系統(tǒng)的需求應(yīng)運(yùn)而生,以此解決數(shù)據(jù)量龐大帶來的人力消耗和因計(jì)算時(shí)間導(dǎo)致的同步性實(shí)時(shí)性差,人工計(jì)算操作復(fù)雜,數(shù)據(jù)不易留檔等問題[1]。
一、系統(tǒng)分析及功能設(shè)計(jì)
1.1 關(guān)鍵技術(shù)選型
本系統(tǒng)前端采用 Bootstrap[2] 組件庫與 jQuery 框架,結(jié)合純原生 html 進(jìn)行編寫,后端語言使用PHP+Yii,服務(wù)器操作系統(tǒng)為Nginx[3],數(shù)據(jù)庫采用MySQL。
1.2 系統(tǒng)構(gòu)成
整個(gè)評(píng)選系統(tǒng)主要分兩部分,首先會(huì)進(jìn)行必要條件評(píng)定,必要條件全部符合的會(huì)進(jìn)入?yún)⒖紬l件判定,參考條件又分德智體綜合測評(píng)、班級(jí)活動(dòng)組織與獲獎(jiǎng)測評(píng)、平時(shí)衛(wèi)生檢查、早操與早晚自習(xí)出勤檢查,另附最佳班級(jí)、優(yōu)秀班級(jí)評(píng)選展示頁和獎(jiǎng)學(xué)金評(píng)選展示頁。
二、系統(tǒng)詳細(xì)設(shè)計(jì)
2.1 德智體綜合測評(píng)
德智體綜合測評(píng)模塊結(jié)構(gòu)如圖 1 所示,其中德育、智育、體育成績的總分統(tǒng)計(jì)規(guī)則如下:
德育成績=德育基礎(chǔ)分+德育加分;
智育成績=智育基礎(chǔ)分(導(dǎo)入)×智育分?jǐn)?shù)上限%+智育加分;
體育成績=體育基礎(chǔ)分(導(dǎo)入)+體育加分;
加分:學(xué)生按可申請項(xiàng)目申請(填寫具體內(nèi)容),學(xué)院管理員審核、賦分(校驗(yàn)加分后不能超過分?jǐn)?shù)上限,如果超過上限,則存儲(chǔ)上限分值),賦分后返回到學(xué)生,學(xué)生二次確認(rèn),輔導(dǎo)員最終確認(rèn),輔導(dǎo)員可錄入或?qū)搿?/p>
管理員可以對(duì)當(dāng)前學(xué)年可申請項(xiàng)目和評(píng)選規(guī)則進(jìn)行設(shè)置,實(shí)現(xiàn)加分項(xiàng)目類別設(shè)置和項(xiàng)目類別對(duì)應(yīng)附加分的設(shè)置,還可以對(duì)評(píng)選規(guī)則即德智體成績分?jǐn)?shù)占比進(jìn)行設(shè)置。
2.2 系統(tǒng)管理
系統(tǒng)管理模塊如圖 3-2 所示。
2.3 角色、權(quán)限管理
角色、權(quán)限管理模塊分為導(dǎo)航欄管理、用戶管理、角色管理、權(quán)限管理,由系統(tǒng)管理員進(jìn)行操作,可實(shí)現(xiàn)在該模塊中進(jìn)行角色創(chuàng)建、修改、刪除操作,同時(shí)能夠進(jìn)行對(duì)模塊訪問的設(shè)置??紤]到系統(tǒng)的實(shí)際應(yīng)用場景,本系統(tǒng)不帶有注冊功能,取而代之的是在創(chuàng)建角色和分配權(quán)限操作后,由系統(tǒng)管理員對(duì)可訪問系統(tǒng)的用戶進(jìn)行創(chuàng)建和角色分配。
三、系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
3.1 成績錄入
用戶選擇本地文件并選擇對(duì)應(yīng)分?jǐn)?shù)類型進(jìn)行導(dǎo)入,導(dǎo)入后服務(wù)器獲取導(dǎo)入信息后進(jìn)行文件格式檢查,只允許 csv 格式的文件進(jìn)行導(dǎo)入,具體導(dǎo)入格式以數(shù)組形式傳遞給 FileHelper 類中的 uploadByForm 函數(shù):
$class = Yii::$app->request->post(‘class);
$file_return_msg = “”;
if (key_exists(‘file,$_FILES)){
uploadByForm 函數(shù)會(huì)對(duì)傳遞的文件類型進(jìn)行判定,如果是允許上傳的方法,會(huì)在函數(shù)內(nèi)部進(jìn)行保存,并返回結(jié)果,結(jié)果為 false 則為上傳失敗,如果返回文件在服務(wù)器上保存的路徑則為保存成功
3.2 加分申請
首先對(duì)用戶填寫的學(xué)號(hào)、理由、申請加分類型進(jìn)行數(shù)據(jù)獲取,并設(shè)置學(xué)年為當(dāng)前年份。
因?yàn)檫@里上傳的文件是申請的項(xiàng)目對(duì)應(yīng)的活動(dòng)照片,所以預(yù)先設(shè)定了可以上傳的文件格式只有圖片格式,在進(jìn)行文件格式檢查后上傳到服務(wù)器并保存到設(shè)定的/var/www/html/check_pic/文件夾下便于后續(xù)進(jìn)行獲取。
3.3 申請審核
通過查詢數(shù)據(jù)庫獲得當(dāng)前審核狀態(tài)為 0(未審核)的數(shù)據(jù)和對(duì)應(yīng)的申請類型,作為回顯值顯示在申請審核的列表頁。
在審核頁面首先根據(jù)id獲取到該申請的全部信息,點(diǎn)擊通過或拒絕按鈕時(shí),將該id對(duì)應(yīng)的申請信息的審核狀態(tài)置為 1(通過)/2(拒絕),在分?jǐn)?shù)計(jì)算時(shí)會(huì)將全部通過的分?jǐn)?shù)作為附加分,未審核或拒絕的申請不能作為有效申請參與加分。
3.4 德智體評(píng)分設(shè)置
首先對(duì)各項(xiàng)目分?jǐn)?shù)上限與基礎(chǔ)分進(jìn)行獲取,如果未獲取到則設(shè)定默認(rèn)值為 0,在執(zhí)行存儲(chǔ)操作之前先刪除當(dāng)前學(xué)年已經(jīng)設(shè)定的分?jǐn)?shù),保證數(shù)據(jù)庫中同學(xué)年分?jǐn)?shù)規(guī)則與基礎(chǔ)分唯一,因?yàn)榭紤]到如果此處分?jǐn)?shù)更改一定是評(píng)價(jià)策略發(fā)生改變,則對(duì)之前的策略不進(jìn)行留檔。
3.5 分?jǐn)?shù)計(jì)算
首先對(duì)基礎(chǔ)信息如學(xué)年、學(xué)生信息、基礎(chǔ)分等進(jìn)行數(shù)據(jù)獲取,并為每一名學(xué)生按照預(yù)先設(shè)定的基礎(chǔ)分、加分、扣分?jǐn)?shù)據(jù)結(jié)構(gòu)設(shè)置預(yù)定數(shù)組供最后分?jǐn)?shù)計(jì)算時(shí)使用。
對(duì)每名學(xué)生進(jìn)行德智體三維基礎(chǔ)分與最高分設(shè)置,并獲取到每名學(xué)生的加分、減分項(xiàng),加載到預(yù)先設(shè)定的分?jǐn)?shù)數(shù)組中。
在學(xué)生成績表中按照課程類別(體育/文化)分別取平均值計(jì)算出體育、智育分?jǐn)?shù)后加載到數(shù)組中設(shè)置為體育、智育基礎(chǔ)分。
最終計(jì)算德智體綜合評(píng)分,按照(基礎(chǔ)分+附加分)*分?jǐn)?shù)占比的公式計(jì)算最終個(gè)人得分,每一維度得分保證不高于預(yù)先設(shè)置的最高分?jǐn)?shù),如果超過最高分?jǐn)?shù)則該維度最終得分即為最高得分,最后將計(jì)算好的成績存入個(gè)人最終成績表。
四、系統(tǒng)測試
4.1 黑盒測試
面向該系統(tǒng)的黑盒測試主要針對(duì)用戶、角色、權(quán)限分配、數(shù)據(jù)導(dǎo)入、最終得分計(jì)算、加分申請、申請審核、導(dǎo)航欄管理模塊以及權(quán)限系統(tǒng)是否生效,測試用例與測試結(jié)果見表 1。
4.2 測試結(jié)果
通過在網(wǎng)頁端和手機(jī)端進(jìn)行測試,基本完成要實(shí)現(xiàn)的內(nèi)容,且界面顯示友好。但是對(duì)于部分功能仍有優(yōu)化空間,例如在文件導(dǎo)入功能中目前對(duì)文件格式要求嚴(yán)格,只能為 csv 文件,可以進(jìn)行多項(xiàng)表格文件導(dǎo)入拓展,同時(shí)接口的響應(yīng)速度也有一定優(yōu)化空間,可以通過分布式的方式取得更快速度的響應(yīng)。
五、結(jié)束語
本系統(tǒng)在實(shí)現(xiàn)了班級(jí)考評(píng)的個(gè)性化需求同時(shí),在項(xiàng)目初期建立了通用可復(fù)用底層邏輯結(jié)構(gòu),建立角色權(quán)限控制系統(tǒng),基于現(xiàn)今市面上多數(shù)管理系統(tǒng)的設(shè)計(jì)模式,對(duì)各種類系統(tǒng)的優(yōu)勢思路進(jìn)行效仿,設(shè)計(jì)了半通用性半定制化系統(tǒng)。此設(shè)計(jì)模式使得系統(tǒng)不再因定制化需求而無法復(fù)用,在總體結(jié)構(gòu)通用的大前提下各小功能獨(dú)立且由數(shù)據(jù)控制而非在代碼中寫死,為程序后續(xù)的拓展性帶來保障。
參? 考? 文? 獻(xiàn)
[1] Mark Gibbs,Mark Gibbs. Tools you need: W3 Schools color libraries and Bootstrap Studio for Web building[J]. Network World (Online),2016.
[2] Ben Kepes,Ben Kepes. NGINX ups the web app performance ante[J]. Network World(Online),2017.