Ver Fonte

批量导入用户数据

xyxie há 3 meses atrás
pai
commit
d734aaa989
2 ficheiros alterados com 48 adições e 12 exclusões
  1. 43 12
      controllers/eta_business/user.go
  2. 5 0
      models/user.go

+ 43 - 12
controllers/eta_business/user.go

@@ -782,13 +782,6 @@ func (this *EtaBusinessUserController) ImportList() {
 	}
 }
 
-// 需要更新的联系人数据实体
-type UpdateWxUser struct {
-	OldWxUser models.User  `description:"旧的联系人数据orm实体(未变更前的)"`
-	WxUser    *models.User `description:"联系人数据orm实体"`
-	Cols      []string     `description:"需要修改的字段名切片"`
-}
-
 // @Title 批量导入联系人数据
 // @Description 批量导入联系人数据
 // @Param   File   query   file  true       "文件"
@@ -807,7 +800,15 @@ func (this *EtaBusinessUserController) Import() {
 		br.Msg = "请重新登录"
 		return
 	}
-	file, h, err := this.GetFile("File")
+	var req models.ImportUserReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+
+	/*file, h, err := this.GetFile("File")
 	if err != nil {
 		br.Msg = "获取文件失败"
 		br.ErrMsg = "获取文件失败,Err:" + err.Error()
@@ -1021,7 +1022,37 @@ func (this *EtaBusinessUserController) Import() {
 			}
 		}
 	}
-
+	*/
+	excelUser := make([]*models.User, 0)
+	addUser := make([]*models.User, 0)
+	//excel中已经存在的数据,用来判断excel中是否存在相同手机号/邮箱,避免重复提交
+	excelData := make(map[string]string)
+	for _, item := range req.ValidUser {
+		// 查询商户信息
+		if item.BusinessCode != "" {
+			businessObj := new(eta_business.EtaBusiness)
+			businessInfo := new(eta_business.EtaBusiness)
+			businessInfo, err = businessObj.GetItemByBusinessCode(item.BusinessCode)
+			if err != nil {
+				if err.Error() == utils.ErrNoRow() {
+					utils.FileLog.Info("商户不存在")
+					continue
+				}
+				utils.FileLog.Info("获取商户信息失败, Err: " + err.Error())
+				continue
+			}
+			item.BusinessCode = businessInfo.BusinessCode
+			item.EtaBusinessId = businessInfo.EtaBusinessId
+		}
+		if _, ok := excelData[item.CountryCode+"_"+item.Mobile]; ok {
+			//将用户插入其中,然后退出当前循环,进入下一循环
+			//repeatUser = append(repeatUser, item)
+			continue
+		}
+		excelData[item.CountryCode+"_"+item.Mobile] = item.CountryCode
+		//没问题数据
+		excelUser = append(excelUser, item)
+	}
 	// 判断系统里该手机号是否已存在
 	mobiles := make([]string, 0)
 	for k, _ := range excelData {
@@ -1042,7 +1073,7 @@ func (this *EtaBusinessUserController) Import() {
 			existUserMap[user.CountryCode+"_"+user.Mobile] = struct{}{}
 		}
 	}
-	for _, v := range existUser {
+	for _, v := range excelUser {
 		if _, ok := existUserMap[v.CountryCode+"_"+v.Mobile]; !ok {
 			addUser = append(addUser, v)
 		}
@@ -1079,9 +1110,9 @@ func (this *EtaBusinessUserController) Import() {
 			}
 		}
 	}
-	defer func() {
+	/*defer func() {
 		os.Remove(path)
-	}()
+	}()*/
 
 	br.Msg = "导入成功"
 	br.Ret = 200

+ 5 - 0
models/user.go

@@ -176,6 +176,11 @@ type ImportListResp struct {
 	RepeatUser []*User `description:"重复客户数据"`
 }
 
+// 联系人导入预览数据返回
+type ImportUserReq struct {
+	ValidUser []*User `description:"有效客户数据"`
+}
+
 // 新增客户请求参数
 type ChangeUserBusinessReq struct {
 	UserId       int