package service import ( "aps_crm/model" "aps_crm/model/request" "aps_crm/pkg/ecode" ) type ProvinceService struct{} func (ProvinceService) AddProvince(province *model.Province) int { err := model.NewProvinceSearch(nil).Create(province) if err != nil { return ecode.ProvinceExist } return ecode.OK } func (ProvinceService) DeleteProvince(id int) int { err := model.NewProvinceSearch(nil).SetId(id).Delete() if err != nil { return ecode.ProvinceNotExist } return ecode.OK } func (ProvinceService) UpdateProvince(province request.UpdateProvinces) int { for _, v := range province.Provinces { // check province exist _, err := model.NewProvinceSearch(nil).SetId(v.Id).First() if err != nil { return ecode.ProvinceNotExist } err = model.NewProvinceSearch(nil).SetId(v.Id).Updates(map[string]interface{}{ "name": v.Name, }) if err != nil { return ecode.ProvinceNotExist } } return ecode.OK } func (ProvinceService) GetProvinces() ([]*model.Province, int) { list, err := model.NewProvinceSearch(nil).FindAll() if err != nil { return nil, ecode.ProvinceGetListErr } return list, ecode.OK } func (ProvinceService) SetProvinces(countryId int, list []int) int { // check country exist _, err := model.NewCountrySearch(nil).SetId(countryId).First() if err != nil { return ecode.CountryNotExist } // update province list err = model.NewProvinceSearch(nil).UpdateList(map[string]interface{}{ "country_id": countryId, }, list) if err != nil { return ecode.ProvinceSetErr } return ecode.OK }