package assessment
import (
"strconv"
"time"
"github.com/flipped-aurora/gin-vue-admin/server/commonus"
"github.com/flipped-aurora/gin-vue-admin/server/global"
"github.com/flipped-aurora/gin-vue-admin/server/model/assessmentmodel"
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
"github.com/gin-gonic/gin"
)
//入口
func ( d * DutyHandle ) Index ( c * gin . Context ) {
outPut := commonus . MapOut ( )
response . Result ( 0 , outPut , "获取成功" , c )
}
//职责类别列表
func ( d * DutyHandle ) DutyClassList ( c * gin . Context ) {
var requestData dutyClassRequest
err := c . ShouldBindJSON ( & requestData )
if err != nil {
// response.Result(101, err, "参数错误!请重新提交!", c)
// return
}
if requestData . PageSize == 0 {
requestData . PageSize = 20
}
if requestData . Page <= 0 {
requestData . Page = 1
}
offSetPage := commonus . CalculatePages ( requestData . Page , requestData . PageSize )
var total int64 //获取所有数据
//条件
whereMap := commonus . MapOut ( )
if requestData . State != 0 {
whereMap [ "state" ] = requestData . State
}
var dutyClassAry [ ] assessmentmodel . DutyClass
if requestData . Title != "" {
listTitleErr := global . GVA_DB_Performanceappraisal . Where ( whereMap ) . Where ( "`title` LIKE '%" + requestData . Title + "%' AND `state` IN ?" , [ ] int { 1 , 2 } ) . Order ( "id DESC" ) . Limit ( requestData . PageSize ) . Offset ( offSetPage ) . Find ( & dutyClassAry ) . Error
if listTitleErr != nil {
response . Result ( 103 , listTitleErr , "数据获取失败!" , c )
return
}
counrErr := global . GVA_DB_Performanceappraisal . Model ( & dutyClassAry ) . Where ( whereMap ) . Where ( "`title` LIKE '%" + requestData . Title + "%' AND `state` IN ?" , [ ] int { 1 , 2 } ) . Count ( & total ) . Error
if counrErr != nil {
total = 0
}
} else {
listTitleErr := global . GVA_DB_Performanceappraisal . Where ( whereMap ) . Where ( "`state` IN ?" , [ ] int { 1 , 2 } ) . Order ( "sort ASC,id DESC" ) . Limit ( requestData . PageSize ) . Offset ( offSetPage ) . Find ( & dutyClassAry ) . Error
if listTitleErr != nil {
response . Result ( 103 , listTitleErr , "数据获取失败!" , c )
return
}
counrErr := global . GVA_DB_Performanceappraisal . Model ( & dutyClassAry ) . Where ( whereMap ) . Where ( "`state` IN ?" , [ ] int { 1 , 2 } ) . Count ( & total ) . Error
if counrErr != nil {
total = 0
}
}
var dutyClassOutputAry [ ] dutyClassOutput
for _ , val := range dutyClassAry {
var dutyClassCont dutyClassOutput
dutyClassCont . Id = val . Id
dutyClassCont . Title = val . Title
dutyClassCont . Type = val . Type
dutyClassCont . Weight = val . Weight
dutyClassCont . Time = val . Time
dutyClassCont . State = val . State
dutyClassCont . OutId = strconv . FormatInt ( val . Id , 10 )
dutyClassCont . Sort = val . Sort
dutyClassCont . IsTrue = judgeIsTrue ( val . Id )
dutyClassOutputAry = append ( dutyClassOutputAry , dutyClassCont )
}
countSum := len ( dutyClassOutputAry )
printData := commonus . OutPutList ( total , int64 ( countSum ) , requestData . Page , requestData . PageSize , dutyClassOutputAry )
// fmt.Printf("%v\n", printData)
response . Result ( 0 , printData , "查询成功!" , c )
}
//判断是否已经被使用
func judgeIsTrue ( classId int64 ) ( isTrue int ) {
isTrue = 2
var evalTarCont [ ] assessmentmodel . EvaluationTarget
err := global . GVA_DB_Performanceappraisal . Where ( "`et_dimension` = ?" , classId ) . Find ( & evalTarCont ) . Error
if err == nil {
if len ( evalTarCont ) > 0 {
isTrue = 1
}
}
return
}
//添加职责类别
func ( d * DutyHandle ) AddDutyClass ( c * gin . Context ) {
var requestData dutyClassAdd
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . Title == "" {
response . Result ( 102 , err , "请输入职责名称" , c )
return
}
if requestData . Type == 0 {
requestData . Type = 1
}
if requestData . Sort == 0 {
requestData . Sort = 1000
}
outMap := commonus . MapOut ( )
juadgeErr := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . DutyClass { } ) . Select ( "title" ) . Where ( "`title` = ?" , requestData . Title ) . First ( & outMap ) . Error
if juadgeErr == nil {
response . Result ( 102 , err , "该考核维度已经存在!请不要重复添加!" , c )
return
}
var dutyClassCont assessmentmodel . DutyClass
dutyClassCont . Id = commonus . GetFileNumberEs ( )
dutyClassCont . Title = requestData . Title
dutyClassCont . Type = requestData . Type
dutyClassCont . Weight = 0
dutyClassCont . State = 1
dutyClassCont . Sort = requestData . Sort
dutyClassCont . Time = time . Now ( ) . Unix ( )
addArchiveFileErr := global . GVA_DB_Performanceappraisal . Create ( & dutyClassCont ) . Error
if addArchiveFileErr != nil {
response . Result ( 108 , dutyClassCont , "数据写入失败!" , c )
} else {
response . Result ( 0 , dutyClassCont , "数据写入成功!" , c )
}
}
//查看职责类别详情
func ( d * DutyHandle ) GetDutyClassInfo ( c * gin . Context ) {
var requestData commonus . SetId
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . Id == 0 && requestData . OutId == "" {
response . Result ( 102 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . OutId != "" {
idInt , inIntErr := strconv . ParseInt ( requestData . OutId , 10 , 64 )
if inIntErr == nil {
requestData . Id = idInt
}
}
var dutyClassCont assessmentmodel . DutyClass
inFoErr := global . GVA_DB_Performanceappraisal . Where ( "`id` = ?" , requestData . Id ) . First ( & dutyClassCont ) . Error
if inFoErr != nil {
response . Result ( 103 , inFoErr , "数据查询失败!" , c )
return
}
response . Result ( 0 , dutyClassCont , "数据查询成功!" , c )
}
//修改职责类别内容
func ( d * DutyHandle ) EiteDutyClassInfo ( c * gin . Context ) {
var requestData dutyClassEite
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . Id == 0 && requestData . OutId == "" {
response . Result ( 102 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . OutId != "" {
idInt , inIntErr := strconv . ParseInt ( requestData . OutId , 10 , 64 )
if inIntErr == nil {
requestData . Id = idInt
}
}
if requestData . Title == "" {
response . Result ( 103 , err , "请输入职责名称" , c )
return
}
var dutyClassCont assessmentmodel . DutyClass
inFoErrJuadge := global . GVA_DB_Performanceappraisal . Where ( "`id` = ?" , requestData . Id ) . First ( & dutyClassCont ) . Error
if inFoErrJuadge != nil {
response . Result ( 103 , inFoErrJuadge , "该考核维度不存在!请检查您的提交" , c )
return
}
if requestData . Title != dutyClassCont . Title {
outMap := commonus . MapOut ( )
juadgeErr := global . GVA_DB_Performanceappraisal . Model ( & assessmentmodel . DutyClass { } ) . Select ( "title" ) . Where ( "`title` = ?" , requestData . Title ) . First ( & outMap ) . Error
if juadgeErr == nil {
response . Result ( 102 , err , "该考核维度已经存在!请不要重复提交!" , c )
return
}
}
//软处理
saveData := commonus . MapOut ( )
saveData [ "title" ] = requestData . Title
saveData [ "time" ] = time . Now ( ) . Unix ( )
if requestData . Sort != 0 {
saveData [ "sort" ] = requestData . Sort
}
var eiteDutyClass assessmentmodel . DutyClass
inFoErr := global . GVA_DB_Performanceappraisal . Model ( & eiteDutyClass ) . Where ( "`id` = ?" , requestData . Id ) . Updates ( saveData ) . Error
if inFoErr != nil {
response . Result ( 104 , inFoErr , "数据编辑失败!" , c )
return
}
response . Result ( 0 , eiteDutyClass , "数据编辑成功!" , c )
}
//状态变更及删除
func ( d * DutyHandle ) StateDutyClass ( c * gin . Context ) {
var requestData dutyClassState
err := c . ShouldBindJSON ( & requestData )
if err != nil {
response . Result ( 101 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . Id == 0 && requestData . OutId == "" {
response . Result ( 102 , err , "参数错误!请重新提交!" , c )
return
}
if requestData . OutId != "" {
idInt , inIntErr := strconv . ParseInt ( requestData . OutId , 10 , 64 )
if inIntErr == nil {
requestData . Id = idInt
}
}
if requestData . State == 0 {
requestData . State = 1
}
var eiteDutyClass assessmentmodel . DutyClass
if requestData . IsDel != 1 {
isTrue , dutyErr := dutyInfoStateSet ( eiteDutyClass , requestData )
if isTrue != true {
response . Result ( 103 , dutyErr , "修改失败!" , c )
return
}
response . Result ( 0 , requestData , "修改成功!" , c )
} else {
if requestData . State == 3 {
archiveInfoErr := global . GVA_DB_Performanceappraisal . Where ( "at_id = ?" , requestData . Id ) . Delete ( & eiteDutyClass ) . Error
if archiveInfoErr != nil {
response . Result ( 104 , requestData , "删除失败!" , c )
return
}
response . Result ( 0 , requestData , "删除成功!" , c )
} else {
isTrue , saveErr := dutyInfoStateSet ( eiteDutyClass , requestData )
if isTrue != true {
response . Result ( 105 , saveErr , "修改失败!" , c )
return
}
response . Result ( 0 , requestData , "修改成功!" , c )
}
}
}
//状态软操作
func dutyInfoStateSet ( dutyClassInfo assessmentmodel . DutyClass , arrData dutyClassState ) ( isTrue bool , dutyClassInfoErr error ) {
isTrue = false
//软处理
saveData := commonus . MapOut ( )
saveData [ "state" ] = arrData . State
saveData [ "time" ] = time . Now ( ) . Unix ( )
dutyClassInfoErr = global . GVA_DB_Performanceappraisal . Model ( & dutyClassInfo ) . Where ( "id = ?" , arrData . Id ) . Updates ( saveData ) . Error
if dutyClassInfoErr != nil {
return
}
isTrue = true
return
}
//获取职责类别内容
func GetDutyClassCont ( id int64 ) ( isTrue bool , ContInfo assessmentmodel . DutyClass ) {
isTrue = false
err := global . GVA_DB_Performanceappraisal . Where ( "id = ?" , id ) . First ( & ContInfo ) . Error
if err == nil {
isTrue = true
}
return
}