@ -1,12 +1,13 @@
package controllers
import (
"github.com/kataras/iris/v12"
"SSW_WebPlatform/utils"
"SSW_WebPlatform/web/middleware/glog"
"SSW_WebPlatform/web/middleware/jwts"
"SSW_WebPlatform/web/models"
"SSW_WebPlatform/web/supports"
"github.com/kataras/iris/v12"
"strings"
"time"
)
@ -75,6 +76,64 @@ func GetCSurveysheet(ctx iris.Context) {
supports . Ok ( ctx , supports . OptionSuccess , result )
}
func GetCSurveysheetByUser ( ctx iris . Context ) {
user , ok := jwts . ParseToken ( ctx )
utils . TrimStruct ( user , * user )
if ! ok {
supports . Error ( ctx , iris . StatusBadRequest , supports . ParseParamsFailur , nil )
return
}
me := new ( models . CSurveysheet )
me . Cid , _ = ctx . URLParamInt ( "cid" )
me . Cnr , _ = ctx . URLParamInt ( "cid" )
me . Lastmodifyby = ctx . URLParam ( "userName" )
me . Surveysheetid = ctx . URLParam ( "surveysheetid" )
level , _ := ctx . URLParamInt ( "level" )
result , err := me . SelectOneInfo ( level )
if err != nil {
supports . Error ( ctx , iris . StatusBadRequest , err . Error ( ) , nil )
return
}
//根据用户查询答案
userResult := new ( models . CSurveysheetResult )
userResult . Cid , _ = ctx . URLParamInt ( "cid" )
userResult . Lastmodifyby = ctx . URLParam ( "userName" )
userResult . Surveysheetid = ctx . URLParam ( "surveysheetid" )
data , err := userResult . SurveysheetSearchByUser ( )
if err != nil {
supports . Error ( ctx , iris . StatusBadRequest , err . Error ( ) , nil )
return
}
cache := make ( map [ string ] [ ] models . CSurveysheetResultlst )
for _ , v := range data {
key := strings . TrimSpace ( v . Subjectid )
value := v
cache [ key ] = append ( cache [ key ] , value )
}
for kk , vv := range result . Valst {
key := strings . TrimSpace ( vv . Subjectid )
val , ok := cache [ key ]
if ok {
if len ( val ) > 0 {
var SelectedOptions [ ] string
var Subjectid string
var Optioninput string
for _ , v := range val {
Subjectid = v . Subjectid
Optioninput = v . Optioninput
SelectedOptions = append ( SelectedOptions , v . SelectedOptions )
}
Options := strings . Join ( SelectedOptions , "," )
result . Valst [ kk ] . QuestionNaireItem . Subjectid = Subjectid
result . Valst [ kk ] . QuestionNaireItem . Optioninput = Optioninput
result . Valst [ kk ] . QuestionNaireItem . Selected_options = Options
}
}
}
supports . Ok ( ctx , supports . OptionSuccess , result )
}
func InsertCSurveysheet ( ctx iris . Context ) {
user , ok := jwts . ParseToken ( ctx )
utils . TrimStruct ( user , * user )
@ -185,7 +244,7 @@ func SelectArrCSurveysheet(ctx iris.Context) {
return
}
me := new ( models . CSurveysheet )
me . Cid = user . Pid
//me.Cid = user.Pid
result , err := me . SelectArr ( )
if err != nil {
@ -195,7 +254,6 @@ func SelectArrCSurveysheet(ctx iris.Context) {
supports . Ok ( ctx , supports . OptionSuccess , result )
}
func StatisticData ( ctx iris . Context ) {
user , ok := jwts . ParseToken ( ctx )
utils . TrimStruct ( user , * user )
@ -203,10 +261,54 @@ func StatisticData(ctx iris.Context) {
supports . Error ( ctx , iris . StatusBadRequest , supports . ParseParamsFailur , nil )
return
}
me := new ( models . CSurveysheetResult )
selectType := ctx . URLParam ( "selectType" )
if user . Role == "group" || user . Role == "admin" {
cid , _ := ctx . URLParamInt ( "cid" )
if cid < 0 {
me . Cid = user . Pid
result , err := me . Statistic ( selectType )
} else {
me . Cid , _ = ctx . URLParamInt ( "cid" )
}
} else {
me . Cid = user . Pid
}
year := ctx . URLParam ( "year" )
if utils . ValueIsEmpty ( year ) {
supports . Error ( ctx , iris . StatusBadRequest , "参数不能空!" , nil )
return
}
unit := ctx . URLParam ( "unit" )
result , err := me . Statistic ( selectType , year , unit )
if err != nil {
supports . Error ( ctx , iris . StatusBadRequest , err . Error ( ) , nil )
return
}
supports . Ok ( ctx , supports . OptionSuccess , result )
}
//集团用户查看对比
func AllStatisticData ( ctx iris . Context ) {
user , ok := jwts . ParseToken ( ctx )
utils . TrimStruct ( user , * user )
if ! ok {
supports . Error ( ctx , iris . StatusBadRequest , supports . ParseParamsFailur , nil )
return
}
me := new ( models . CSurveysheetResult )
selectType := ctx . URLParam ( "selectType" )
year := ctx . URLParam ( "year" )
if utils . ValueIsEmpty ( year ) {
supports . Error ( ctx , iris . StatusBadRequest , "参数不能空!" , nil )
return
}
unit := ctx . URLParam ( "unit" )
cidStr := ctx . URLParam ( "cids" )
cids := strings . Split ( cidStr , "," )
result , err := me . AllStatistic ( selectType , cids , year , unit )
if err != nil {
supports . Error ( ctx , iris . StatusBadRequest , err . Error ( ) , nil )