package controllers import ( "Xcx_New/enums" "Xcx_New/models" "Xcx_New/service" "Xcx_New/utils" "encoding/json" "reflect" "time" "github.com/astaxie/beego" ) type OrgInfoApiController struct { BaseAuthAPIController } func OrgInfoApiRegistRouters() { beego.Router("/api/orginfo/getinfo", &OrgInfoApiController{}, "get:GetOrgInfo") beego.Router("/api/orginfo/savegallery", &OrgInfoApiController{}, "post:SaveOrgGallery") beego.Router("/api/orginfo/deletegallery", &OrgInfoApiController{}, "delete:DeleteOrgGallery") beego.Router("/api/orginfo/edit", &OrgInfoApiController{}, "post:EditOrgInfo") } func (c *OrgInfoApiController) GetOrgInfo() { adminUserInfo := c.GetAdminUserInfo() orgInfo := adminUserInfo.Orgs[adminUserInfo.CurrentOrgId] provinces, _ := service.GetDistrictsByUpid(0) var citys []*models.District var districts []*models.District if orgInfo.Province > 0 { citys, _ = service.GetDistrictsByUpid(orgInfo.Province) } if orgInfo.City > 0 { districts, _ = service.GetDistrictsByUpid(orgInfo.City) } orgtypes, _ := service.GetOrgTypes() illness, _ := service.GetIllnessList() c.ServeSuccessJSON(map[string]interface{}{ "orginfo": orgInfo, "provinces": provinces, "citys": citys, "districts": districts, "orgtypes": orgtypes, "illness": illness, }) return } func (c *OrgInfoApiController) EditOrgInfo() { adminUserInfo := c.GetAdminUserInfo() tempOrg, _ := service.GetOrgById(adminUserInfo.CurrentOrgId) if tempOrg != nil && adminUserInfo.AdminUser.Id != tempOrg.Creator { c.ServeFailJsonSend(enums.ErrorCodePermissionDenied, "权限不足") return } dataBody := make(map[string]interface{}, 0) err := json.Unmarshal(c.Ctx.Input.RequestBody, &dataBody) if err != nil { utils.ErrorLog(err.Error()) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } orgInfo := adminUserInfo.Orgs[adminUserInfo.CurrentOrgId] org := *orgInfo if dataBody["org_name"] == nil || reflect.TypeOf(dataBody["org_name"]).String() != "string" { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:机构名称") return } orgName, _ := dataBody["org_name"].(string) if len(orgName) == 0 { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "机构名称不能为空") return } org.OrgName = orgName if dataBody["contact_name"] == nil || reflect.TypeOf(dataBody["contact_name"]).String() != "string" { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:联系人姓名") return } contactName, _ := dataBody["contact_name"].(string) if len(contactName) == 0 { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "联系人姓名不能为空") return } org.ContactName = contactName // if dataBody["org_short_name"] == nil || reflect.TypeOf(dataBody["org_short_name"]).String() != "string" { // c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:商家简称") // return // } // orgShortName, _ := dataBody["org_short_name"].(string) // if len(orgShortName) == 0 { // c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "商家简称不能为空") // return // } org.OrgShortName = orgName if dataBody["org_introduction"] == nil || reflect.TypeOf(dataBody["org_introduction"]).String() != "string" { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:机构介绍") return } orgIntroduction, _ := dataBody["org_introduction"].(string) if len(orgIntroduction) == 0 { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "机构介绍不能为空") return } org.OrgIntroduction = orgIntroduction if dataBody["org_logo"] == nil || reflect.TypeOf(dataBody["org_logo"]).String() != "string" { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:机构头像") return } orgLogo, _ := dataBody["org_logo"].(string) if len(orgLogo) == 0 { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "机构头像不能为空") return } org.OrgLogo = orgLogo if dataBody["province"] != nil || reflect.TypeOf(dataBody["province"]).String() == "float64" { province := int64(dataBody["province"].(float64)) org.Province = province } if dataBody["city"] != nil || reflect.TypeOf(dataBody["city"]).String() == "float64" { city := int64(dataBody["city"].(float64)) org.City = city } if dataBody["district"] != nil || reflect.TypeOf(dataBody["district"]).String() == "float64" { district := int64(dataBody["district"].(float64)) org.District = district } if dataBody["address"] != nil || reflect.TypeOf(dataBody["address"]).String() == "string" { address, _ := dataBody["address"].(string) org.Address = address } if dataBody["org_type"] != nil || reflect.TypeOf(dataBody["org_type"]).String() == "float64" { orgType := int64(dataBody["org_type"].(float64)) org.OrgType = orgType } if dataBody["telephone"] != nil || reflect.TypeOf(dataBody["telephone"]).String() == "string" { telephone, _ := dataBody["telephone"].(string) org.Telephone = telephone } if dataBody["operating_state"] != nil || reflect.TypeOf(dataBody["operating_state"]).String() == "float64" { operatingState := int64(dataBody["operating_state"].(float64)) org.OperatingState = operatingState } if dataBody["business_week"] != nil || reflect.TypeOf(dataBody["business_week"]).String() == "string" { businessWeek, _ := dataBody["business_week"].(string) org.BusinessWeek = businessWeek } if dataBody["business_time"] != nil || reflect.TypeOf(dataBody["business_time"]).String() == "string" { businessTime, _ := dataBody["business_time"].(string) org.BusinessTime = businessTime } if dataBody["illness"] != nil || reflect.TypeOf(dataBody["illness"]).String() == "string" { illness, _ := dataBody["illness"].(string) org.Illness = illness } timeNow := time.Now().Unix() org.ModifyTime = timeNow org.OrgGallery = nil err = service.UpdateOrgInfo(&org) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } orgInfo.OrgName = orgName orgInfo.OrgShortName = orgName orgInfo.OrgIntroduction = orgIntroduction orgInfo.OrgLogo = orgLogo orgInfo.Province = org.Province orgInfo.District = org.District orgInfo.City = org.City orgInfo.OrgType = org.OrgType orgInfo.Telephone = org.Telephone orgInfo.OperatingState = org.OperatingState orgInfo.BusinessWeek = org.BusinessWeek orgInfo.BusinessTime = org.BusinessTime orgInfo.Illness = org.Illness orgInfo.ContactName = org.ContactName c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", }) return } func (c *OrgInfoApiController) SaveOrgGallery() { adminUserInfo := c.GetAdminUserInfo() dataBody := make(map[string]interface{}, 0) err := json.Unmarshal(c.Ctx.Input.RequestBody, &dataBody) if err != nil { utils.ErrorLog(err.Error()) c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } if dataBody["type"] == nil || reflect.TypeOf(dataBody["type"]).String() != "float64" { utils.ErrorLog("type") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } galleryType := int64(dataBody["type"].(float64)) if galleryType != 1 && galleryType != 2 { utils.ErrorLog("galleryType != 1&&2") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } if dataBody["url"] == nil || reflect.TypeOf(dataBody["url"]).String() != "string" { utils.ErrorLog("url") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } url, _ := dataBody["url"].(string) if len(url) == 0 { utils.ErrorLog("len(url) == 0") c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } timeNow := time.Now().Unix() var gallery models.OrgGallery gallery.Type = galleryType gallery.Url = url gallery.OrgId = adminUserInfo.CurrentOrgId gallery.Status = 1 gallery.Ctime = timeNow gallery.Mtime = timeNow err = service.CreateOrgGalleryItem(&gallery) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } orgInfo := adminUserInfo.Orgs[adminUserInfo.CurrentOrgId] orgInfo.OrgGallery = append(orgInfo.OrgGallery, &gallery) c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", }) return } func (c *OrgInfoApiController) DeleteOrgGallery() { adminUserInfo := c.GetAdminUserInfo() id, _ := c.GetInt64("id", 0) if id <= 0 { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } err := service.DeleteOrgGalleryItem(id) if err != nil { c.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeParamWrong) return } orgInfo := adminUserInfo.Orgs[adminUserInfo.CurrentOrgId] for index, item := range orgInfo.OrgGallery { if item.ID == id { orgInfo.OrgGallery = append(orgInfo.OrgGallery[:index], orgInfo.OrgGallery[index+1:]...) } } c.ServeSuccessJSON(map[string]interface{}{ "msg": "ok", }) return }