package dict import ( "appPlatform/models/modelAppPlatform" "appPlatform/overall" "appPlatform/overall/publicmethod" "strconv" "time" "github.com/gin-gonic/gin" ) /* * @ 作者: 秦东 @ 时间: 2023-05-25 10:33:18 @ 功能: 字典类型列表 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) DictTypeList(c *gin.Context) { var requestData DictType c.ShouldBindJSON(&requestData) if requestData.Page == 0 { requestData.Page = 1 } if requestData.PageSize == 0 { requestData.PageSize = 15 } var dictListCont []modelAppPlatform.DictType gormDb := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.DictType{}).Where("`status` BETWEEN ? AND ?", 1, 2) if requestData.KeyWords != "" { gormDb.Where("`name` like ?", "%"+requestData.KeyWords+"%") } var total int64 totalErr := gormDb.Count(&total).Error if totalErr != nil { total = 0 } gormDb = publicmethod.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize) err := gormDb.Find(&dictListCont).Error if err != nil && len(dictListCont) < 1 { publicmethod.Result(105, err, c) return } var sendData []SendDictTypeList for _, v := range dictListCont { var sendCont SendDictTypeList sendCont.Id = v.Id // sendCont.Name = v.Name //字典类型名称"` sendCont.Code = v.Code //字典类型编码"` sendCont.Status = v.Status //显示状态(1:显示;2:隐藏,3:删除)"` sendCont.Remark = v.Remark //字典类型描述"` sendCont.Time = v.Time //创建时间"` sendCont.CodeKey = strconv.FormatInt(v.Code, 10) sendData = append(sendData, sendCont) } publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(sendData)), sendData, c) } /* * @ 作者: 秦东 @ 时间: 2023-05-25 11:06:39 @ 功能: 新增字典类别 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) AddDictType(c *gin.Context) { var requestData AddNewDictType err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if requestData.Name == "" { publicmethod.Result(1, err, c, "请输入字典类型名称!") return } if requestData.Status == 0 { requestData.Status = 1 } var dictCont modelAppPlatform.DictType err = dictCont.GetCont(map[string]interface{}{"`name`": requestData.Name}, "`id`") if err == nil || dictCont.Id != 0 { publicmethod.Result(103, err, c) return } dictCont.Name = requestData.Name //字典类型名称"` dictCont.Code = publicmethod.GetUUid(4) //字典类型编码"` dictCont.Status = requestData.Status //显示状态(1:显示;2:隐藏,3:删除)"` dictCont.Remark = requestData.Remark //字典类型描述"` dictCont.Time = time.Now().Unix() //创建时间"` err = overall.CONSTANT_DB_AppPlatform.Create(&dictCont).Error if err != nil { publicmethod.Result(104, err, c) return } publicmethod.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2023-05-25 13:07:48 @ 功能: 查看字典类型内容 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GetDictTypeCont(c *gin.Context) { id := c.Query("id") if id == "" { publicmethod.Result(1, id, c, "未知字典类型!") return } var dictCont modelAppPlatform.DictType err := dictCont.GetCont(map[string]interface{}{"`id`": id}) if err != nil { publicmethod.Result(105, err, c) return } publicmethod.Result(0, dictCont, c) } /* * @ 作者: 秦东 @ 时间: 2023-05-25 13:21:21 @ 功能: 编辑字典类型内容 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) EditDictCont(c *gin.Context) { var requestData EditDictTypeInfo c.ShouldBindJSON(&requestData) if requestData.Id == "" { publicmethod.Result(1, requestData, c, "未知字典类型!") return } if requestData.Name == "" { publicmethod.Result(1, requestData, c, "请输入字典类型名称!") return } if requestData.Status == 0 { requestData.Status = 1 } whery := publicmethod.MapOut[string]() whery["`id`"] = requestData.Id var dictTypeOldCont modelAppPlatform.DictType err := dictTypeOldCont.GetCont(whery) if err != nil { publicmethod.Result(107, err, c) return } editCont := publicmethod.MapOut[string]() if requestData.Name != dictTypeOldCont.Name { var dictTypeCont modelAppPlatform.DictType err = dictTypeCont.GetCont(map[string]interface{}{"`name`": requestData.Name}, "`id`") if err == nil || dictTypeCont.Id != 0 { publicmethod.Result(103, err, c) return } editCont["`name`"] = requestData.Name } if requestData.Status != dictTypeOldCont.Status { editCont["`status`"] = requestData.Status } if requestData.Remark != dictTypeOldCont.Remark { editCont["`remark`"] = requestData.Remark } if len(editCont) > 0 { editCont["`time`"] = time.Now().Unix() var editDictTypeCont modelAppPlatform.DictType err := editDictTypeCont.EiteCont(whery, editCont) if err != nil { publicmethod.Result(106, err, c) return } syncSeting.Add(1) go EditDictContStatus(dictTypeOldCont.Id, requestData.Status) } syncSeting.Wait() publicmethod.Result(0, err, c) } // 操作字典类型下属内容 func EditDictContStatus(typeId, status int) { defer syncSeting.Done() var dictCont modelAppPlatform.Dictionary dictCont.EiteCont(map[string]interface{}{"`typeCode`": typeId}, map[string]interface{}{"`status`": status, "`time`": time.Now().Unix()}) } /* * @ 作者: 秦东 @ 时间: 2023-05-25 13:54:09 @ 功能: 删除字典类别 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) DelDictTypeCont(c *gin.Context) { var requestData DelDictTypeInfo err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if len(requestData.Id) < 1 { publicmethod.Result(101, err, c) return } editDictTypeInfo := publicmethod.MapOut[string]() editDictTypeInfo["`status`"] = 3 err = overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.DictType{}).Where("`id` IN ?", requestData.Id).Updates(editDictTypeInfo).Error if err != nil { publicmethod.Result(108, err, c) return } for i := 0; i < len(requestData.Id); i++ { dictTypeId, dictErr := strconv.Atoi(requestData.Id[i]) if dictErr == nil { syncSeting.Add(1) go EditDictContStatus(dictTypeId, 3) } } syncSeting.Wait() publicmethod.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2023-05-25 14:45:16 @ 功能: 获取字典内容列表 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GetDictionary(c *gin.Context) { var requestData DictionaryList c.ShouldBindJSON(&requestData) if requestData.CodeType == "" { publicmethod.Result(1, requestData, c, "未知字典类型") return } if requestData.Page == 0 { requestData.Page = 1 } if requestData.PageSize == 0 { requestData.PageSize = 10 } var dictionaryContList []modelAppPlatform.Dictionary gormDb := overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Dictionary{}).Where("`status` BETWEEN ? AND ?", 1, 2) if requestData.KeyWords != "" { gormDb = gormDb.Where("`name` like ?", "%"+requestData.KeyWords+"%") } var total int64 totalErr := gormDb.Count(&total).Error if totalErr != nil { total = 0 } gormDb = publicmethod.PageTurningSettings(gormDb, requestData.Page, requestData.PageSize) err := gormDb.Order("`sort` ASC").Find(&dictionaryContList).Error if err != nil && len(dictionaryContList) < 1 { publicmethod.Result(105, err, c) return } var sendDataList []SendDictionaryList for _, v := range dictionaryContList { var sendCont SendDictionaryList sendCont.Id = v.Id sendCont.Name = v.Name //字典内容名称"` sendCont.TypeCode = v.TypeCode //字典类型编码"` sendCont.Code = v.Code //字典内编码"` sendCont.Sort = v.Sort //排序(数字越小排名越靠前))"` sendCont.Status = v.Status //显示状态(1:显示;2:隐藏,3:删除)"` sendCont.Remark = v.Remark //字典内描述"` sendCont.Time = v.Time //创建时间"` sendCont.CodeString = strconv.FormatInt(v.Code, 10) sendDataList = append(sendDataList, sendCont) } publicmethod.ResultList(0, requestData.Page, requestData.PageSize, total, int64(len(sendDataList)), sendDataList, c) } /* * @ 作者: 秦东 @ 时间: 2023-05-25 15:26:59 @ 功能: 新增字典内容 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) AddDictionaryCont(c *gin.Context) { var requestData AddNewDictionaryCont c.ShouldBindJSON(&requestData) if requestData.TypeCode == "" { publicmethod.Result(1, requestData, c, "未知字典类型") return } typeCode, err := strconv.ParseInt(requestData.TypeCode, 10, 64) if err != nil { publicmethod.Result(1, err, c, "未知字典类型") return } if requestData.Name == "" { publicmethod.Result(1, requestData, c, "请输入字典内容名称") return } var dictContJudge modelAppPlatform.Dictionary err = dictContJudge.GetCont(map[string]interface{}{"`name`": requestData.Name}, "`id`") if err == nil || dictContJudge.Id != 0 { publicmethod.Result(103, err, c) return } if requestData.Sort == 0 { requestData.Sort = 50 } if requestData.Status == 0 { requestData.Status = 1 } var dictCont modelAppPlatform.Dictionary dictCont.Name = requestData.Name //字典内容名称"` dictCont.TypeCode = typeCode //字典类型编码"` dictCont.Code = publicmethod.GetUUid(6) //字典内编码"` dictCont.Sort = requestData.Sort //排序(数字越小排名越靠前))"` dictCont.Status = requestData.Status //显示状态(1:显示;2:隐藏,3:删除)"` dictCont.Remark = requestData.Remark //字典内描述"` dictCont.Time = time.Now().Unix() //创建时间"` err = overall.CONSTANT_DB_AppPlatform.Create(&dictCont).Error if err != nil { publicmethod.Result(104, err, c) return } publicmethod.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2023-05-25 15:49:36 @ 功能: 查看字典内容详情 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) GetDictionaryCont(c *gin.Context) { id := c.Query("id") if id == "" { publicmethod.Result(1, id, c, "未知字典内容!") return } var dictCont modelAppPlatform.Dictionary err := dictCont.GetCont(map[string]interface{}{"`id`": id}) if err != nil { publicmethod.Result(105, err, c) return } publicmethod.Result(0, dictCont, c) } /* * @ 作者: 秦东 @ 时间: 2023-05-25 16:19:53 @ 功能: @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) EditDictionaryCont(c *gin.Context) { var requestData EditNewDictionaryCont c.ShouldBindJSON(&requestData) if requestData.Id == 0 { publicmethod.Result(1, requestData.Id, c, "未知字典内容!") return } if requestData.Name == "" { publicmethod.Result(1, requestData.Name, c, "请输入字典名称!") return } if requestData.Sort == 0 { requestData.Sort = 50 } if requestData.Status == 0 { requestData.Status = 1 } whery := publicmethod.MapOut[string]() whery["`id`"] = requestData.Id var oldDictCont modelAppPlatform.Dictionary err := oldDictCont.GetCont(whery) if err != nil { publicmethod.Result(107, err, c) return } editCont := publicmethod.MapOut[string]() if requestData.Name != oldDictCont.Name { var dictCont modelAppPlatform.Dictionary err = dictCont.GetCont(map[string]interface{}{"`name`": requestData.Name, "`typeCode`": oldDictCont.TypeCode}, "`id`") if err == nil || dictCont.Id != 0 { publicmethod.Result(103, err, c) return } editCont["`name`"] = requestData.Name } if requestData.Status != oldDictCont.Status { editCont["`status`"] = requestData.Status } if requestData.Remark != oldDictCont.Remark { editCont["`remark`"] = requestData.Remark } if requestData.Sort != oldDictCont.Sort { editCont["`sort`"] = requestData.Sort } if len(editCont) > 0 { editCont["`time`"] = time.Now().Unix() var editDictCont modelAppPlatform.Dictionary err := editDictCont.EiteCont(whery, editCont) if err != nil { publicmethod.Result(106, err, c) return } } publicmethod.Result(0, err, c) } /* * @ 作者: 秦东 @ 时间: 2023-05-25 16:35:04 @ 功能: 删除字典内容 @ 参数 # @ 返回值 # @ 方法原型 # */ func (a *ApiMethod) DelDictionaryCont(c *gin.Context) { var requestData DelDictTypeInfo err := c.ShouldBindJSON(&requestData) if err != nil { publicmethod.Result(100, err, c) return } if len(requestData.Id) < 1 { publicmethod.Result(101, err, c) return } editDictTypeInfo := publicmethod.MapOut[string]() editDictTypeInfo["`status`"] = 3 err = overall.CONSTANT_DB_AppPlatform.Model(&modelAppPlatform.Dictionary{}).Where("`id` IN ?", requestData.Id).Updates(editDictTypeInfo).Error if err != nil { publicmethod.Result(108, err, c) return } publicmethod.Result(0, err, c) }