XMLWAN hace 4 años
padre
commit
8f22275ba9
Se han modificado 2 ficheros con 37 adiciones y 17 borrados
  1. 24 17
      controllers/device_api_controller.go
  2. 13 0
      service/device_service.go

+ 24 - 17
controllers/device_api_controller.go Ver fichero

@@ -798,23 +798,30 @@ func (this *DeviceAPIController) CreateNumber() {
798 798
 		return
799 799
 	}
800 800
 
801
-	number, createErr := service.CreateDeviceNumber(adminInfo.CurrentOrgId, num, zoneID, groupID)
802
-	if createErr != nil {
803
-		this.ErrorLog("创建机号失败:%v", createErr)
804
-		this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
805
-		return
806
-	}
807
-	numberJson := map[string]interface{}{
808
-		"id":         number.ID,
809
-		"number":     number.Number,
810
-		"zone_id":    number.ZoneID,
811
-		"group_id":   number.GroupID,
812
-		"zone_name":  zone.Name,
813
-		"group_name": group.Name,
814
-	}
815
-	this.ServeSuccessJSON(map[string]interface{}{
816
-		"number": numberJson,
817
-	})
801
+  _, errcode := service.GetCreateDeviceNumber(num, adminInfo.CurrentOrgId)
802
+  if errcode == gorm.ErrRecordNotFound{
803
+    number, createErr := service.CreateDeviceNumber(adminInfo.CurrentOrgId, num, zoneID, groupID)
804
+    if createErr != nil {
805
+      this.ErrorLog("创建机号失败:%v", createErr)
806
+      this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
807
+      return
808
+    }
809
+    numberJson := map[string]interface{}{
810
+      "id":         number.ID,
811
+      "number":     number.Number,
812
+      "zone_id":    number.ZoneID,
813
+      "group_id":   number.GroupID,
814
+      "zone_name":  zone.Name,
815
+      "group_name": group.Name,
816
+    }
817
+    this.ServeSuccessJSON(map[string]interface{}{
818
+      "number": numberJson,
819
+    })
820
+  }else if errcode == nil{
821
+    this.ServeFailJSONWithSGJErrorCode(enums.ErrorCodeDBCreate)
822
+    return
823
+  }
824
+
818 825
 }
819 826
 
820 827
 // /api/device/number/modify [post] ModifyNumber

+ 13 - 0
service/device_service.go Ver fichero

@@ -446,6 +446,19 @@ func GetDeviceNumberByID(orgID int64, numberID int64) (*models.DeviceNumber, err
446 446
 	return &number, nil
447 447
 }
448 448
 
449
+func GetCreateDeviceNumber(num string,orgid int64)(*models.DeviceNumber,error)  {
450
+  number := models.DeviceNumber{}
451
+  err := XTReadDB().Model(&number).Where("number = ? and org_id = ? and status = 1", num, orgid).Find(&number).Error
452
+  if err == gorm.ErrRecordNotFound {
453
+    return nil, err
454
+  }
455
+  if err != nil {
456
+    return nil, err
457
+  }
458
+
459
+  return &number, nil
460
+}
461
+
449 462
 func CreateDeviceNumber(orgID int64, number string, zoneID int64, groupID int64) (*models.DeviceNumber, error) {
450 463
 	now := time.Now().Unix()
451 464
 	numberModel := models.DeviceNumber{