package administrativeorganization import ( "hr_server/models" "hr_server/overall" "hr_server/overall/overallhandle" "strconv" "time" "github.com/gin-gonic/gin" ) //职务分类列表 func (o *OrganizationApi) DutiesClassList(c *gin.Context) { var requestData JobClassPageSelect c.ShouldBindJSON(&requestData) if requestData.Page < 0 { requestData.Page = 1 } if requestData.PageSize < 0 { requestData.PageSize = 10 } var jobClassList []models.JobClass gormDb := overall.CONSTANT_DB_HR.Model(&models.JobClass{}) if requestData.Name != "" { // nameFactor := fmt.Sprintf("%%v%") gormDb = gormDb.Where("`name` LIKE ?", "%"+requestData.Name+"%") } gormDb = gormDb.Where("state IN ?", []int{1, 2}) var total int64 totalErr := gormDb.Count(&total).Error if totalErr != nil { total = 0 } errGorm := gormDb.Limit(requestData.PageSize).Offset(overallhandle.LimitPage(requestData.Page, requestData.PageSize)).Find(&jobClassList).Error if errGorm != nil { overallhandle.Result(105, errGorm, c) } else { // overallhandle.Result(0, jobClassList, c) overallhandle.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(jobClassList)), jobClassList, c) } } //添加职务分类 func (o *OrganizationApi) AddDutiesClass(c *gin.Context) { var requestData NameVal err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Name == "" { overallhandle.Result(101, err, c, "职务分类名称为空!") return } //判断该职务分类是否已经存在 var name string judgeErr := overall.CONSTANT_DB_HR.Model(&models.JobClass{}).Select("`name`").Where("`name` = ?", requestData.Name).First(&name).Error if judgeErr == nil { overallhandle.Result(103, name, c) return } var jobClassCont models.JobClass jobClassCont.Name = requestData.Name jobClassCont.Time = time.Now().Unix() jobClassCont.State = 1 addDataErr := overall.CONSTANT_DB_HR.Create(&jobClassCont).Error if addDataErr != nil { overallhandle.Result(104, addDataErr, c) } else { overallhandle.Result(0, jobClassCont, c) } } //查看职务分类详情 func (o *OrganizationApi) GetDutiesClassInfo(c *gin.Context) { var requestData overallhandle.GetId err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Id == 0 && requestData.IdStr == "" { overallhandle.Result(101, err, c, "职务分类Id不能为空!") return } if requestData.IdStr != "" { idInt64, _ := strconv.ParseInt(requestData.IdStr, 10, 64) requestData.Id = idInt64 } var jobClassCont models.JobClass dbErr := overall.CONSTANT_DB_HR.Where("`id` = ?", requestData.Id).First(&jobClassCont).Error if dbErr != nil { overallhandle.Result(105, dbErr, c) } else { overallhandle.Result(0, jobClassCont, c) } } //修改职务分类详情 func (o *OrganizationApi) EiteDutiesClassInfo(c *gin.Context) { var requestData EiteJobClassInfo err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Id == 0 && requestData.IdStr == "" { overallhandle.Result(101, err, c, "职务分类Id不能为空!") return } if requestData.IdStr != "" { idInt64, _ := strconv.ParseInt(requestData.IdStr, 10, 64) requestData.Id = idInt64 } gormDb := overall.CONSTANT_DB_HR var jobClassInfo models.JobClass //判断职务类型是否存在 judgeExist := gormDb.Where("`id` = ?", requestData.Id).First(&jobClassInfo).Error if judgeExist != nil { overallhandle.Result(107, judgeExist, c) return } saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() if requestData.Name != "" { if requestData.Name != jobClassInfo.Name { //查询一下修改的职务名称是否已经存在 var name string judgeErr := overall.CONSTANT_DB_HR.Model(&models.JobClass{}).Select("`name`").Where("`name` = ?", requestData.Name).First(&name).Error if judgeErr == nil { overallhandle.Result(103, name, c) return } saveData["name"] = requestData.Name } } if requestData.State != 0 { saveData["state"] = requestData.State } whereMap := overallhandle.MapOut() whereMap["id"] = requestData.Id eiteErr := jobClassInfo.EiteJobClassCont(whereMap, saveData) if eiteErr != nil { overallhandle.Result(106, eiteErr, c) } else { overallhandle.Result(0, saveData, c) } } //删除职务分类 func (o *OrganizationApi) DelDutiesClassInfo(c *gin.Context) { var requestData EiteJobStateDel err := c.ShouldBindJSON(&requestData) if err != nil { overallhandle.Result(100, err, c) return } if requestData.Id == 0 && requestData.IdStr == "" { overallhandle.Result(101, err, c, "职务分类Id不能为空!") return } if requestData.IdStr != "" { idInt64, _ := strconv.ParseInt(requestData.IdStr, 10, 64) requestData.Id = idInt64 } if requestData.State == 0 { requestData.State = 1 } var jobClassInfo models.JobClass //判断职务类型是否存在 judgeExist := overall.CONSTANT_DB_HR.Where("`id` = ?", requestData.Id).First(&jobClassInfo).Error if judgeExist != nil { overallhandle.Result(107, judgeExist, c) return } saveData := overallhandle.MapOut() saveData["time"] = time.Now().Unix() saveData["state"] = requestData.State whereMap := overallhandle.MapOut() whereMap["id"] = requestData.Id if requestData.State != 3 { eiteErr := jobClassInfo.EiteJobClassCont(whereMap, saveData) if eiteErr != nil { overallhandle.Result(106, eiteErr, c) } else { overallhandle.Result(0, saveData, c) } } else { if requestData.IsTrue != 1 { //软删除 eiteErr := jobClassInfo.EiteJobClassCont(whereMap, saveData) if eiteErr != nil { overallhandle.Result(106, eiteErr, c) } else { overallhandle.Result(0, saveData, c) } } else { //硬删除 delErr := overall.CONSTANT_DB_HR.Where("`id` = ?", requestData.Id).Delete(&jobClassInfo) if delErr == nil { overallhandle.Result(0, saveData, c) } else { overallhandle.Result(108, delErr, c) } } } }