func SaveServiceInfo(data *data_file.BCPFile) { session := db.GetDBSession() defer db.ReleaseDBSession(session) orgCode := data.Meta.OrgCode for _, fields := range data.KeyFields { serviceInfo := protocol.ServiceInfo{} serviceInfo.NETBAR_WACODE = fields["G020004"] serviceInfo.ID = orgCode + "_" + serviceInfo.NETBAR_WACODE serviceInfo.SERVICE_NAME = fields["F040002"] serviceInfo.PRINCIPAL = fields["E020001"] serviceInfo.PERSON_NAME = fields["E020001"] serviceInfo.PERSON_TEL = fields["B070003"] serviceInfo.BUSINESS_NATURE = fields["E010007"] serviceInfo.STATUS = 1 serviceInfo.SERVICE_TYPE = 9 serviceInfo.PROVINCE_CODE = serviceInfo.NETBAR_WACODE[:2] + "0000" serviceInfo.CITY_CODE = serviceInfo.NETBAR_WACODE[:4] + "00" serviceInfo.AREA_CODE = serviceInfo.NETBAR_WACODE[:6] serviceInfo.ADDRESS = fields["G020017"] serviceInfo.ORG_CODE = orgCode lng, _ := strconv.ParseFloat(fields["F010016"], 64) lat, _ := strconv.ParseFloat(fields["F010017"], 64) lng, lat = data_file.Bd09towgs84(lng, lat) serviceInfo.XPOINT = fmt.Sprintf("%.6f", lng) serviceInfo.YPOINT = fmt.Sprintf("%.6f", lat) serviceInfo.CREATE_TIME = "2016-07-02 00:00:00" serviceInfo.CAP_TYPE = "2" serviceInfoOld := protocol.ServiceInfo{} err := session.DB("platform").C("service").Find(bson.M{"id": serviceInfo.ID}).One(&serviceInfoOld) if err != nil { no, err := CreateServiceNo() serviceInfo.NO = strconv.Itoa(no) if err != nil { continue } session.DB("platform").C("service").Insert(serviceInfo) } else { serviceInfo.NO = serviceInfoOld.NO session.DB("platform").C("service").Update(bson.M{"id": serviceInfo.ID}, serviceInfo) } } }