package service import ( "aps_crm/model" "aps_crm/model/request" "aps_crm/pkg/ecode" ) type RegionService struct{} func (RegionService) AddRegion(region *model.Region) int { err := model.NewRegionSearch().Create(region) if err != nil { return ecode.RegionExist } return ecode.OK } func (RegionService) SetRegions(cityId int, list []int) int { // check city exist _, err := model.NewCitySearch().SetId(cityId).First() if err != nil { return ecode.CityNotExist } // update region list err = model.NewRegionSearch().UpdateList(map[string]interface{}{ "city_id": cityId, }, list) if err != nil { return ecode.RegionSetErr } return ecode.OK } func (RegionService) DeleteRegion(id int) int { err := model.NewRegionSearch().SetId(id).Delete() if err != nil { return ecode.RegionNotExist } return ecode.OK } func (RegionService) UpdateRegion(region []request.UpdateRegion) int { for _, v := range region { // check region exist _, err := model.NewRegionSearch().SetId(v.Id).First() if err != nil { return ecode.RegionNotExist } err = model.NewRegionSearch().SetId(v.Id).Updates(map[string]interface{}{ "name": v.Name, }) if err != nil { return ecode.RegionNotExist } } return ecode.OK } func (RegionService) ListRegions(id int) ([]*model.Region, int) { // get region list if id != 0 { list, err := model.NewRegionSearch().SetCityId(id).FindAll() if err != nil { return nil, ecode.RegionListErr } return list, ecode.OK } else { list, err := model.NewRegionSearch().FindAll() if err != nil { return nil, ecode.RegionListErr } return list, ecode.OK } }