github.com/easysoft/zendata@v0.0.0-20240513203326-705bd5a7fd67/internal/server/controller/admin.go (about) 1 package controller 2 3 import ( 4 "strconv" 5 6 consts "github.com/easysoft/zendata/internal/pkg/const" 7 "github.com/easysoft/zendata/internal/pkg/model" 8 serverConfig "github.com/easysoft/zendata/internal/server/config" 9 serverService "github.com/easysoft/zendata/internal/server/service" 10 serverUtils "github.com/easysoft/zendata/internal/server/utils" 11 "github.com/easysoft/zendata/pkg/utils/vari" 12 "github.com/kataras/iris/v12" 13 ) 14 15 type AdminCtrl struct { 16 BaseCtrl 17 18 Config *serverConfig.Config `inject:""` 19 20 DefService *serverService.DefService `inject:""` 21 FieldService *serverService.FieldService `inject:""` 22 PreviewService *serverService.PreviewService `inject:""` 23 SectionService *serverService.SectionService `inject:""` 24 ReferService *serverService.ReferService `inject:""` 25 ResService *serverService.ResService `inject:""` 26 SyncService *serverService.SyncService `inject:""` 27 28 RangesService *serverService.RangesService `inject:""` 29 InstancesService *serverService.InstancesService `inject:""` 30 TextService *serverService.TextService `inject:""` 31 ExcelService *serverService.ExcelService `inject:""` 32 ConfigService *serverService.ConfigService `inject:""` 33 } 34 35 func (c *AdminCtrl) Handle(ctx iris.Context) { 36 reqData := model.ReqData{} 37 38 err := ctx.ReadJSON(&reqData) 39 if err != nil { 40 ctx.JSON(c.ErrResp(consts.CommErr, err.Error())) 41 return 42 } 43 44 ret := model.RespData{Code: 1, Msg: "success"} 45 46 switch reqData.Action { 47 // common 48 //case "getWorkDir": 49 // ret.WorkDir = vari.WorkDir 50 51 // def 52 //case "syncData": 53 // s.SyncService.SyncData() 54 //case "listDef": 55 // ret.Data, ret.Total = s.DefService.List(reqData.Keywords, reqData.Page) 56 57 case "getDef": 58 ret.Data, ret.Res = c.DefService.Get(reqData.Id) 59 ret.WorkDir = vari.WorkDir 60 case "saveDef": 61 def := serverUtils.ConvertDef(reqData.Data) 62 c.DefService.Save(&def) 63 ret.Data = def 64 case "removeDef": 65 err = c.DefService.Remove(reqData.Id) 66 67 // field 68 case "getDefFieldTree": 69 ret.Data, err = c.FieldService.GetTree(uint(reqData.Id)) 70 case "getDefField": 71 ret.Data, err = c.FieldService.Get(reqData.Id) 72 case "createDefField": 73 var field *model.ZdField 74 field, err = c.FieldService.Create(0, uint(reqData.Id), "新字段", reqData.Mode) 75 76 ret.Data, err = c.FieldService.GetTree(field.DefID) 77 ret.Model = field 78 case "saveDefField": 79 field := serverUtils.ConvertField(reqData.Data) 80 err = c.FieldService.Save(&field) 81 case "removeDefField": 82 var defId int 83 defId, err = c.FieldService.Remove(reqData.Id) 84 ret.Data, err = c.FieldService.GetTree(uint(defId)) 85 case "moveDefField": 86 var defId uint 87 defId, ret.Model, err = c.FieldService.Move(uint(reqData.Src), uint(reqData.Dist), reqData.Mode) 88 ret.Data, err = c.FieldService.GetTree(defId) 89 90 // preview 91 case "previewDefData": 92 ret.Data = c.PreviewService.PreviewDefData(uint(reqData.Id)) 93 case "previewFieldData": 94 ret.Data = c.PreviewService.PreviewFieldData(uint(reqData.Id), reqData.Mode) 95 96 // field or instances section 97 case "listSection": 98 ret.Data, err = c.SectionService.List(uint(reqData.Id), reqData.Mode) 99 100 case "createSection": 101 paramMap := serverUtils.ConvertParams(reqData.Data) 102 ownerType, _ := paramMap["ownerType"] 103 ownerId, _ := strconv.Atoi(paramMap["ownerId"]) 104 sectionId, _ := strconv.Atoi(paramMap["sectionId"]) 105 106 err = c.SectionService.Create(uint(ownerId), uint(sectionId), ownerType) 107 ret.Data, err = c.SectionService.List(uint(ownerId), ownerType) 108 case "updateSection": 109 section := serverUtils.ConvertSection(reqData.Data) 110 err = c.SectionService.Update(§ion) 111 112 ret.Data, err = c.SectionService.List(section.OwnerID, reqData.Mode) 113 case "removeSection": 114 var fieldId uint 115 fieldId, err = c.SectionService.Remove(reqData.Id, reqData.Mode) 116 ret.Data, err = c.SectionService.List(fieldId, reqData.Mode) 117 118 // field or instances refer, be create when init its owner 119 case "getRefer": 120 var refer model.ZdRefer 121 refer, err = c.ReferService.Get(uint(reqData.Id), reqData.Mode) 122 ret.Data = refer 123 case "updateRefer": 124 refer := serverUtils.ConvertRefer(reqData.Data) 125 err = c.ReferService.Update(&refer) 126 case "listReferFileForSelection": 127 ret.Data = c.ResService.ListReferFileForSelection(reqData.Mode) 128 case "listReferSheetForSelection": 129 ret.Data = c.ResService.ListReferSheetForSelection(reqData.Mode) 130 131 case "listReferExcelColForSelection": 132 ret.Data = c.ResService.ListReferExcelColForSelection(reqData.Mode) 133 case "listReferResFieldForSelection": 134 ret.Data = c.ResService.ListReferResFieldForSelection(reqData.Id, reqData.Mode) 135 136 // resource 137 case "listRanges": 138 ret.Data, ret.Total = c.RangesService.List(reqData.Keywords, reqData.Page) 139 case "getRanges": 140 ret.Data, ret.Res = c.RangesService.Get(reqData.Id) 141 ret.WorkDir = vari.WorkDir 142 case "saveRanges": 143 ranges := serverUtils.ConvertRanges(reqData.Data) 144 ret.Data = c.RangesService.Save(&ranges) 145 case "removeRanges": 146 err = c.RangesService.Remove(reqData.Id) 147 148 case "getResRangesItemTree": 149 ret.Data = c.RangesService.GetItemTree(reqData.Id) 150 case "getResRangesItem": 151 ret.Data = c.RangesService.GetItem(reqData.Id) 152 case "createResRangesItem": 153 var rangesItem *model.ZdRangesItem 154 rangesId := reqData.DomainId 155 rangesItem, err = c.RangesService.CreateItem(rangesId, reqData.Id, reqData.Mode) 156 157 ret.Data = c.RangesService.GetItemTree(rangesId) 158 ret.Model = rangesItem 159 case "saveRangesItem": 160 rangesItem := serverUtils.ConvertRangesItem(reqData.Data) 161 ret.Data = c.RangesService.SaveItem(&rangesItem) 162 case "removeResRangesItem": 163 err = c.RangesService.RemoveItem(reqData.Id, reqData.DomainId) 164 ret.Data = c.RangesService.GetItemTree(reqData.DomainId) 165 166 case "listInstances": 167 ret.Data, ret.Total = c.InstancesService.List(reqData.Keywords, reqData.Page) 168 case "getInstances": 169 ret.Data, ret.Res = c.InstancesService.Get(reqData.Id) 170 ret.WorkDir = vari.WorkDir 171 case "saveInstances": 172 ranges := serverUtils.ConvertInstances(reqData.Data) 173 ret.Data = c.InstancesService.Save(&ranges) 174 case "removeInstances": 175 err = c.InstancesService.Remove(reqData.Id) 176 case "getResInstancesItemTree": 177 ret.Data = c.InstancesService.GetItemTree(uint(reqData.Id)) 178 case "getResInstancesItem": 179 ret.Data = c.InstancesService.GetItem(reqData.Id) 180 case "createResInstancesItem": 181 var item *model.ZdInstancesItem 182 ownerId := reqData.DomainId 183 item, err = c.InstancesService.CreateItem(ownerId, reqData.Id, reqData.Mode) 184 185 ret.Data = c.InstancesService.GetItemTree(uint(ownerId)) 186 ret.Model = item 187 case "saveInstancesItem": 188 rangesItem := serverUtils.ConvertInstancesItem(reqData.Data) 189 ret.Data = c.InstancesService.SaveItem(&rangesItem) 190 case "removeResInstancesItem": 191 err = c.InstancesService.RemoveItem(reqData.Id) 192 ret.Data = c.InstancesService.GetItemTree(uint(reqData.DomainId)) 193 194 case "listExcel": 195 ret.Data, ret.Total = c.ExcelService.List(reqData.Keywords, reqData.Page) 196 case "getExcel": 197 ret.Data, ret.Res = c.ExcelService.Get(reqData.Id) 198 ret.WorkDir = vari.WorkDir 199 case "saveExcel": 200 ranges := serverUtils.ConvertExcel(reqData.Data) 201 ret.Data = c.ExcelService.Save(&ranges) 202 case "removeExcel": 203 err = c.ExcelService.Remove(reqData.Id) 204 205 case "listText": 206 ret.Data, ret.Total = c.TextService.List(reqData.Keywords, reqData.Page) 207 case "getText": 208 ret.Data, ret.Res = c.TextService.Get(reqData.Id) 209 ret.WorkDir = vari.WorkDir 210 case "saveText": 211 ranges := serverUtils.ConvertText(reqData.Data) 212 ret.Data = c.TextService.Save(&ranges) 213 case "removeText": 214 err = c.TextService.Remove(reqData.Id) 215 216 case "listConfig": 217 ret.Data, ret.Total = c.ConfigService.List(reqData.Keywords, reqData.Page) 218 case "getConfig": 219 ret.Data, ret.Res = c.ConfigService.Get(reqData.Id) 220 ret.WorkDir = vari.WorkDir 221 case "saveConfig": 222 ranges := serverUtils.ConvertConfig(reqData.Data) 223 ret.Data = c.ConfigService.Save(&ranges) 224 case "removeConfig": 225 err = c.ConfigService.Remove(reqData.Id) 226 227 case "getResConfigItemTree": 228 ret.Data = c.ConfigService.GConfigItemTree(reqData.Id) 229 230 default: 231 ret.Code = 0 232 ret.Msg = "api not found" 233 } 234 235 if err != nil { 236 ret.Code = 0 237 ret.Msg = "api error: " + err.Error() 238 } 239 240 ctx.JSON(ret) 241 }