|
@@ -504,155 +504,156 @@ func (this *CompanyUserController) AddUser() {
|
|
|
br.IsSendEmail = false
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- companyName := req.CompanyName
|
|
|
- if companyName == "" {
|
|
|
- companyInfo, err := company.GetCompanyById(req.CompanyId)
|
|
|
+ if crmConfig.ConfigValue == "true" || crmConfig2.ConfigValue == "true" {
|
|
|
+ companyName := req.CompanyName
|
|
|
+ if companyName == "" {
|
|
|
+ companyInfo, err := company.GetCompanyById(req.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "查找客户失败"
|
|
|
+ br.ErrMsg = "查找客户失败,err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ companyName = companyInfo.CompanyName
|
|
|
+ }
|
|
|
+ companyName = utils.TrimStr(companyName)
|
|
|
+ tmpCompanyNameList, err := elastic.Analyze(companyName)
|
|
|
if err != nil {
|
|
|
- br.Msg = "查找客户失败"
|
|
|
- br.ErrMsg = "查找客户失败,err:" + err.Error()
|
|
|
+ br.Msg = "添加失败"
|
|
|
+ br.ErrMsg = "客户名称分词失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- companyName = companyInfo.CompanyName
|
|
|
- }
|
|
|
- companyName = utils.TrimStr(companyName)
|
|
|
- tmpCompanyNameList, err := elastic.Analyze(companyName)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "添加失败"
|
|
|
- br.ErrMsg = "客户名称分词失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- //公司名称切片
|
|
|
- analyzeNameList := []string{companyName}
|
|
|
- for _, v := range tmpCompanyNameList {
|
|
|
- if v == "" {
|
|
|
- continue
|
|
|
- }
|
|
|
- ignoreStrs := []string{"", "有限", "投资", "资本", "管理", "贸易", "资产", "公司", "股份", "集团", "有限公司"}
|
|
|
- if !strings.Contains(strings.Join(ignoreStrs, ","), v) && utf8.RuneCount([]byte(v)) > 1 {
|
|
|
- //不在上面的过滤字里面,且切出来的字符大于1位
|
|
|
- analyzeNameList = append(analyzeNameList, v)
|
|
|
+ //公司名称切片
|
|
|
+ analyzeNameList := []string{companyName}
|
|
|
+ for _, v := range tmpCompanyNameList {
|
|
|
+ if v == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ ignoreStrs := []string{"", "有限", "投资", "资本", "管理", "贸易", "资产", "公司", "股份", "集团", "有限公司"}
|
|
|
+ if !strings.Contains(strings.Join(ignoreStrs, ","), v) && utf8.RuneCount([]byte(v)) > 1 {
|
|
|
+ //不在上面的过滤字里面,且切出来的字符大于1位
|
|
|
+ analyzeNameList = append(analyzeNameList, v)
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- //名片识别出来的客户名称切片
|
|
|
- companyNameSlice := make([]string, 0)
|
|
|
- card, err := services.GetBusinessCard(req.BusinessCardUrl)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "名片识别失败"
|
|
|
- br.ErrMsg = "名片识别失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- //if card.Errno != 0 {
|
|
|
- // br.Msg = "您上传了非名片图片,请重新上传"
|
|
|
- // br.ErrMsg = "名片识别失败,ErrMsg:" + card.ErrorMsg + ";errCode:" + strconv.Itoa(card.Errno)
|
|
|
- // return
|
|
|
- //}
|
|
|
- //var mobileStr string
|
|
|
- //for _, v := range card.WordsResult {
|
|
|
- // mobileStr += v.Words + ","
|
|
|
- //}
|
|
|
- isFlag := false
|
|
|
- if len(card.WordsResult.MOBILE) > 0 {
|
|
|
- mobileStr := strings.Join(card.WordsResult.MOBILE, ",")
|
|
|
- //if req.MobileOne != "" {
|
|
|
- // if strings.Contains(mobileStr, req.MobileOne) || mobileStr == "" {
|
|
|
- // isFlag = true
|
|
|
- // } else {
|
|
|
- // isFlag = false
|
|
|
- // }
|
|
|
- //}
|
|
|
- //
|
|
|
- //if isFlag == false && req.MobileTwo != "" {
|
|
|
- // if strings.Contains(mobileStr, req.MobileTwo) {
|
|
|
- // isFlag = true
|
|
|
- // } else {
|
|
|
- // isFlag = false
|
|
|
- // }
|
|
|
- //}
|
|
|
- if req.MobileOne != "" && strings.Contains(mobileStr, req.MobileOne) {
|
|
|
- isFlag = true
|
|
|
- }
|
|
|
- if req.MobileTwo != "" && strings.Contains(mobileStr, req.MobileTwo) {
|
|
|
- isFlag = true
|
|
|
- }
|
|
|
- //如果百度识别出来了客户名称,那么将识别出来的客户名称添加到待校验客户名称切片中
|
|
|
- if len(card.WordsResult.COMPANY) > 0 && card.WordsResult.COMPANY[0] != "" {
|
|
|
- companyNameSlice = card.WordsResult.COMPANY
|
|
|
- }
|
|
|
- }
|
|
|
- //如果百度未识别出来手机号或者公司名称,那么进行阿里识别
|
|
|
- if !isFlag || (len(companyNameSlice) == 0 && crmConfig.ConfigValue == "true") {
|
|
|
- //阿里云识别
|
|
|
- aliyunResult, errMsg, err := services.AliyunOcrBusinessCard(req.BusinessCardUrl)
|
|
|
+ //名片识别出来的客户名称切片
|
|
|
+ companyNameSlice := make([]string, 0)
|
|
|
+ card, err := services.GetBusinessCard(req.BusinessCardUrl)
|
|
|
if err != nil {
|
|
|
- br.Msg = "识别失败"
|
|
|
- br.ErrMsg = "识别失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if !aliyunResult.Success {
|
|
|
- br.Msg = "识别失败"
|
|
|
- br.ErrMsg = "识别失败"
|
|
|
+ br.Msg = "名片识别失败"
|
|
|
+ br.ErrMsg = "名片识别失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- if errMsg != "" {
|
|
|
- br.Msg = errMsg
|
|
|
- return
|
|
|
+ //if card.Errno != 0 {
|
|
|
+ // br.Msg = "您上传了非名片图片,请重新上传"
|
|
|
+ // br.ErrMsg = "名片识别失败,ErrMsg:" + card.ErrorMsg + ";errCode:" + strconv.Itoa(card.Errno)
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //var mobileStr string
|
|
|
+ //for _, v := range card.WordsResult {
|
|
|
+ // mobileStr += v.Words + ","
|
|
|
+ //}
|
|
|
+ isFlag := false
|
|
|
+ if len(card.WordsResult.MOBILE) > 0 {
|
|
|
+ mobileStr := strings.Join(card.WordsResult.MOBILE, ",")
|
|
|
+ //if req.MobileOne != "" {
|
|
|
+ // if strings.Contains(mobileStr, req.MobileOne) || mobileStr == "" {
|
|
|
+ // isFlag = true
|
|
|
+ // } else {
|
|
|
+ // isFlag = false
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ //if isFlag == false && req.MobileTwo != "" {
|
|
|
+ // if strings.Contains(mobileStr, req.MobileTwo) {
|
|
|
+ // isFlag = true
|
|
|
+ // } else {
|
|
|
+ // isFlag = false
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ if req.MobileOne != "" && strings.Contains(mobileStr, req.MobileOne) {
|
|
|
+ isFlag = true
|
|
|
+ }
|
|
|
+ if req.MobileTwo != "" && strings.Contains(mobileStr, req.MobileTwo) {
|
|
|
+ isFlag = true
|
|
|
+ }
|
|
|
+ //如果百度识别出来了客户名称,那么将识别出来的客户名称添加到待校验客户名称切片中
|
|
|
+ if len(card.WordsResult.COMPANY) > 0 && card.WordsResult.COMPANY[0] != "" {
|
|
|
+ companyNameSlice = card.WordsResult.COMPANY
|
|
|
+ }
|
|
|
}
|
|
|
- //如果百度没有识别出来手机号,那么还需要阿里识别出来的手机号校验下
|
|
|
- if !isFlag {
|
|
|
- if len(aliyunResult.TelCell) > 0 {
|
|
|
- mobileStr := strings.Join(aliyunResult.TelCell, ",")
|
|
|
- if req.MobileOne != "" {
|
|
|
- if strings.Contains(mobileStr, req.MobileOne) {
|
|
|
- isFlag = true
|
|
|
- } else {
|
|
|
- isFlag = false
|
|
|
+ //如果百度未识别出来手机号或者公司名称,那么进行阿里识别
|
|
|
+ if !isFlag || (len(companyNameSlice) == 0 && crmConfig.ConfigValue == "true") {
|
|
|
+ //阿里云识别
|
|
|
+ aliyunResult, errMsg, err := services.AliyunOcrBusinessCard(req.BusinessCardUrl)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "识别失败"
|
|
|
+ br.ErrMsg = "识别失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if !aliyunResult.Success {
|
|
|
+ br.Msg = "识别失败"
|
|
|
+ br.ErrMsg = "识别失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if errMsg != "" {
|
|
|
+ br.Msg = errMsg
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //如果百度没有识别出来手机号,那么还需要阿里识别出来的手机号校验下
|
|
|
+ if !isFlag {
|
|
|
+ if len(aliyunResult.TelCell) > 0 {
|
|
|
+ mobileStr := strings.Join(aliyunResult.TelCell, ",")
|
|
|
+ if req.MobileOne != "" {
|
|
|
+ if strings.Contains(mobileStr, req.MobileOne) {
|
|
|
+ isFlag = true
|
|
|
+ } else {
|
|
|
+ isFlag = false
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ isFlag = true
|
|
|
}
|
|
|
- } else {
|
|
|
- isFlag = true
|
|
|
+ }
|
|
|
+ //如果阿里云识别出来了客户名称,那么将识别出来的客户名称添加到待校验客户名称切片中
|
|
|
+ if len(aliyunResult.Company) > 0 {
|
|
|
+ companyNameSlice = append(companyNameSlice, aliyunResult.Company...)
|
|
|
}
|
|
|
}
|
|
|
- //如果阿里云识别出来了客户名称,那么将识别出来的客户名称添加到待校验客户名称切片中
|
|
|
- if len(aliyunResult.Company) > 0 {
|
|
|
- companyNameSlice = append(companyNameSlice, aliyunResult.Company...)
|
|
|
+
|
|
|
+ if !isFlag && crmConfig2.ConfigValue == "true" {
|
|
|
+ br.Msg = "名片信息与联系人手机号不符"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if !isFlag && crmConfig2.ConfigValue == "true" {
|
|
|
- br.Msg = "名片信息与联系人手机号不符"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
+ //校验识别出来的名片名称与传入的客户名称是否一致
|
|
|
+ if len(companyNameSlice) > 0 && crmConfig.ConfigValue == "true" {
|
|
|
+ isCompanyNameFlag := false //是否成功匹配客户名称
|
|
|
+ //遍历识别出来的客户名称,然后与系统的客户名称做匹配(识别出来的名称包含系统名称的话,那么标记成功匹配)
|
|
|
+ for _, tmpCompanyName := range companyNameSlice {
|
|
|
+ //空串不处理
|
|
|
+ if companyName == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ for _, analyzeName := range analyzeNameList {
|
|
|
+ //如果分词出来的公司名称正好在识别出来的公司名称里面,那么就认为校验通过了
|
|
|
+ if strings.Contains(tmpCompanyName, analyzeName) {
|
|
|
+ isCompanyNameFlag = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- //校验识别出来的名片名称与传入的客户名称是否一致
|
|
|
- if len(companyNameSlice) > 0 && crmConfig.ConfigValue == "true" {
|
|
|
- isCompanyNameFlag := false //是否成功匹配客户名称
|
|
|
- //遍历识别出来的客户名称,然后与系统的客户名称做匹配(识别出来的名称包含系统名称的话,那么标记成功匹配)
|
|
|
- for _, tmpCompanyName := range companyNameSlice {
|
|
|
- //空串不处理
|
|
|
- if companyName == "" {
|
|
|
- continue
|
|
|
- }
|
|
|
- for _, analyzeName := range analyzeNameList {
|
|
|
- //如果分词出来的公司名称正好在识别出来的公司名称里面,那么就认为校验通过了
|
|
|
- if strings.Contains(tmpCompanyName, analyzeName) {
|
|
|
- isCompanyNameFlag = true
|
|
|
+ if isCompanyNameFlag {
|
|
|
break
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if isCompanyNameFlag {
|
|
|
- break
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
- //如果没有匹配到客户名称,那么就返回报错
|
|
|
- if !isCompanyNameFlag {
|
|
|
- br.Msg = "名片信息与公司名称不符"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
+ //如果没有匹配到客户名称,那么就返回报错
|
|
|
+ if !isCompanyNameFlag {
|
|
|
+ br.Msg = "名片信息与公司名称不符"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1963,155 +1964,156 @@ func (this *CompanyUserController) EditUser() {
|
|
|
br.IsSendEmail = false
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- //companyName := wxUser.CompanyName
|
|
|
- //if companyName == "" {
|
|
|
- companyInfo, err := company.GetCompanyById(req.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "查找客户失败"
|
|
|
- br.ErrMsg = "查找客户失败,err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- companyName := companyInfo.CompanyName
|
|
|
- //}
|
|
|
- companyName = utils.TrimStr(companyName)
|
|
|
- tmpCompanyNameList, err := elastic.Analyze(companyName)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "添加失败"
|
|
|
- br.ErrMsg = "客户名称分词失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- //公司名称切片
|
|
|
- analyzeNameList := []string{companyName}
|
|
|
- for _, v := range tmpCompanyNameList {
|
|
|
- if v == "" {
|
|
|
- continue
|
|
|
- }
|
|
|
- ignoreStrs := []string{"", "有限", "投资", "资本", "管理", "贸易", "资产", "公司", "股份", "集团", "有限公司"}
|
|
|
- if !strings.Contains(strings.Join(ignoreStrs, ","), v) && utf8.RuneCount([]byte(v)) > 1 {
|
|
|
- //不在上面的过滤字里面,且切出来的字符大于1位
|
|
|
- analyzeNameList = append(analyzeNameList, v)
|
|
|
+ if crmConfig.ConfigValue == "true" || crmConfig2.ConfigValue == "true" {
|
|
|
+ //companyName := wxUser.CompanyName
|
|
|
+ //if companyName == "" {
|
|
|
+ companyInfo, err := company.GetCompanyById(req.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "查找客户失败"
|
|
|
+ br.ErrMsg = "查找客户失败,err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- //名片识别出来的客户名称切片
|
|
|
- companyNameSlice := make([]string, 0)
|
|
|
- card, err := services.GetBusinessCard(req.BusinessCardUrl)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "名片识别失败"
|
|
|
- br.ErrMsg = "名片识别失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- //if card.Errno != 0 {
|
|
|
- // br.Msg = "您上传了非名片图片,请重新上传"
|
|
|
- // br.ErrMsg = "名片识别失败,ErrMsg:" + card.ErrorMsg + ";errCode:" + strconv.Itoa(card.Errno)
|
|
|
- // return
|
|
|
- //}
|
|
|
- //var mobileStr string
|
|
|
- //for _, v := range card.WordsResult {
|
|
|
- // mobileStr += v.Words + ","
|
|
|
- //}
|
|
|
- isFlag := false
|
|
|
- if len(card.WordsResult.MOBILE) > 0 {
|
|
|
- mobileStr := strings.Join(card.WordsResult.MOBILE, ",")
|
|
|
- //if req.MobileOne != "" {
|
|
|
- // if strings.Contains(mobileStr, req.MobileOne) || mobileStr == "" {
|
|
|
- // isFlag = true
|
|
|
- // } else {
|
|
|
- // isFlag = false
|
|
|
- // }
|
|
|
- //}
|
|
|
- //
|
|
|
- //if isFlag == false && req.MobileTwo != "" {
|
|
|
- // if strings.Contains(mobileStr, req.MobileTwo) {
|
|
|
- // isFlag = true
|
|
|
- // } else {
|
|
|
- // isFlag = false
|
|
|
- // }
|
|
|
+ companyName := companyInfo.CompanyName
|
|
|
//}
|
|
|
- if req.MobileOne != "" && strings.Contains(mobileStr, req.MobileOne) {
|
|
|
- isFlag = true
|
|
|
- }
|
|
|
- if req.MobileTwo != "" && strings.Contains(mobileStr, req.MobileTwo) {
|
|
|
- isFlag = true
|
|
|
- }
|
|
|
- //如果百度识别出来了客户名称,那么将识别出来的客户名称添加到待校验客户名称切片中
|
|
|
- if len(card.WordsResult.COMPANY) > 0 && card.WordsResult.COMPANY[0] != "" {
|
|
|
- companyNameSlice = card.WordsResult.COMPANY
|
|
|
- }
|
|
|
- }
|
|
|
- //如果百度未识别出来手机号或者公司名称,那么进行阿里识别
|
|
|
- if !isFlag || (len(companyNameSlice) == 0 && crmConfig.ConfigValue == "true") {
|
|
|
- //阿里云识别
|
|
|
- aliyunResult, errMsg, err := services.AliyunOcrBusinessCard(req.BusinessCardUrl)
|
|
|
+ companyName = utils.TrimStr(companyName)
|
|
|
+ tmpCompanyNameList, err := elastic.Analyze(companyName)
|
|
|
if err != nil {
|
|
|
- br.Msg = "识别失败"
|
|
|
- br.ErrMsg = "识别失败,Err:" + err.Error()
|
|
|
+ br.Msg = "添加失败"
|
|
|
+ br.ErrMsg = "客户名称分词失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- if !aliyunResult.Success {
|
|
|
- br.Msg = "识别失败"
|
|
|
- br.ErrMsg = "识别失败"
|
|
|
- return
|
|
|
+ //公司名称切片
|
|
|
+ analyzeNameList := []string{companyName}
|
|
|
+ for _, v := range tmpCompanyNameList {
|
|
|
+ if v == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ ignoreStrs := []string{"", "有限", "投资", "资本", "管理", "贸易", "资产", "公司", "股份", "集团", "有限公司"}
|
|
|
+ if !strings.Contains(strings.Join(ignoreStrs, ","), v) && utf8.RuneCount([]byte(v)) > 1 {
|
|
|
+ //不在上面的过滤字里面,且切出来的字符大于1位
|
|
|
+ analyzeNameList = append(analyzeNameList, v)
|
|
|
+ }
|
|
|
}
|
|
|
- if errMsg != "" {
|
|
|
- br.Msg = errMsg
|
|
|
+
|
|
|
+ //名片识别出来的客户名称切片
|
|
|
+ companyNameSlice := make([]string, 0)
|
|
|
+ card, err := services.GetBusinessCard(req.BusinessCardUrl)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "名片识别失败"
|
|
|
+ br.ErrMsg = "名片识别失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- //如果百度没有识别出来手机号,那么还需要阿里识别出来的手机号校验下
|
|
|
- if !isFlag {
|
|
|
- if len(aliyunResult.TelCell) > 0 {
|
|
|
- mobileStr := strings.Join(aliyunResult.TelCell, ",")
|
|
|
- if req.MobileOne != "" {
|
|
|
- if strings.Contains(mobileStr, req.MobileOne) {
|
|
|
- isFlag = true
|
|
|
- } else {
|
|
|
- isFlag = false
|
|
|
+ //if card.Errno != 0 {
|
|
|
+ // br.Msg = "您上传了非名片图片,请重新上传"
|
|
|
+ // br.ErrMsg = "名片识别失败,ErrMsg:" + card.ErrorMsg + ";errCode:" + strconv.Itoa(card.Errno)
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //var mobileStr string
|
|
|
+ //for _, v := range card.WordsResult {
|
|
|
+ // mobileStr += v.Words + ","
|
|
|
+ //}
|
|
|
+ isFlag := false
|
|
|
+ if len(card.WordsResult.MOBILE) > 0 {
|
|
|
+ mobileStr := strings.Join(card.WordsResult.MOBILE, ",")
|
|
|
+ //if req.MobileOne != "" {
|
|
|
+ // if strings.Contains(mobileStr, req.MobileOne) || mobileStr == "" {
|
|
|
+ // isFlag = true
|
|
|
+ // } else {
|
|
|
+ // isFlag = false
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ //
|
|
|
+ //if isFlag == false && req.MobileTwo != "" {
|
|
|
+ // if strings.Contains(mobileStr, req.MobileTwo) {
|
|
|
+ // isFlag = true
|
|
|
+ // } else {
|
|
|
+ // isFlag = false
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ if req.MobileOne != "" && strings.Contains(mobileStr, req.MobileOne) {
|
|
|
+ isFlag = true
|
|
|
+ }
|
|
|
+ if req.MobileTwo != "" && strings.Contains(mobileStr, req.MobileTwo) {
|
|
|
+ isFlag = true
|
|
|
+ }
|
|
|
+ //如果百度识别出来了客户名称,那么将识别出来的客户名称添加到待校验客户名称切片中
|
|
|
+ if len(card.WordsResult.COMPANY) > 0 && card.WordsResult.COMPANY[0] != "" {
|
|
|
+ companyNameSlice = card.WordsResult.COMPANY
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //如果百度未识别出来手机号或者公司名称,那么进行阿里识别
|
|
|
+ if !isFlag || (len(companyNameSlice) == 0 && crmConfig.ConfigValue == "true") {
|
|
|
+ //阿里云识别
|
|
|
+ aliyunResult, errMsg, err := services.AliyunOcrBusinessCard(req.BusinessCardUrl)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "识别失败"
|
|
|
+ br.ErrMsg = "识别失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if !aliyunResult.Success {
|
|
|
+ br.Msg = "识别失败"
|
|
|
+ br.ErrMsg = "识别失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if errMsg != "" {
|
|
|
+ br.Msg = errMsg
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //如果百度没有识别出来手机号,那么还需要阿里识别出来的手机号校验下
|
|
|
+ if !isFlag {
|
|
|
+ if len(aliyunResult.TelCell) > 0 {
|
|
|
+ mobileStr := strings.Join(aliyunResult.TelCell, ",")
|
|
|
+ if req.MobileOne != "" {
|
|
|
+ if strings.Contains(mobileStr, req.MobileOne) {
|
|
|
+ isFlag = true
|
|
|
+ } else {
|
|
|
+ isFlag = false
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ isFlag = true
|
|
|
}
|
|
|
- } else {
|
|
|
- isFlag = true
|
|
|
+ }
|
|
|
+ //如果阿里云识别出来了客户名称,那么将识别出来的客户名称添加到待校验客户名称切片中
|
|
|
+ if len(aliyunResult.Company) > 0 {
|
|
|
+ companyNameSlice = append(companyNameSlice, aliyunResult.Company...)
|
|
|
}
|
|
|
}
|
|
|
- //如果阿里云识别出来了客户名称,那么将识别出来的客户名称添加到待校验客户名称切片中
|
|
|
- if len(aliyunResult.Company) > 0 {
|
|
|
- companyNameSlice = append(companyNameSlice, aliyunResult.Company...)
|
|
|
+
|
|
|
+ if !isFlag && crmConfig2.ConfigValue == "true" {
|
|
|
+ br.Msg = "名片信息与联系人手机号不符"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if !isFlag && crmConfig2.ConfigValue == "true" {
|
|
|
- br.Msg = "名片信息与联系人手机号不符"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
+ //校验识别出来的名片名称与传入的客户名称是否一致
|
|
|
+ if len(companyNameSlice) > 0 && crmConfig.ConfigValue == "true" {
|
|
|
+ isCompanyNameFlag := false //是否成功匹配客户名称
|
|
|
+ //遍历识别出来的客户名称,然后与系统的客户名称做匹配(识别出来的名称包含系统名称的话,那么标记成功匹配)
|
|
|
+ for _, tmpCompanyName := range companyNameSlice {
|
|
|
+ //空串不处理
|
|
|
+ if companyName == "" {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ for _, analyzeName := range analyzeNameList {
|
|
|
+ //如果分词出来的公司名称正好在识别出来的公司名称里面,那么就认为校验通过了
|
|
|
+ if strings.Contains(tmpCompanyName, analyzeName) {
|
|
|
+ isCompanyNameFlag = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- //校验识别出来的名片名称与传入的客户名称是否一致
|
|
|
- if len(companyNameSlice) > 0 && crmConfig.ConfigValue == "true" {
|
|
|
- isCompanyNameFlag := false //是否成功匹配客户名称
|
|
|
- //遍历识别出来的客户名称,然后与系统的客户名称做匹配(识别出来的名称包含系统名称的话,那么标记成功匹配)
|
|
|
- for _, tmpCompanyName := range companyNameSlice {
|
|
|
- //空串不处理
|
|
|
- if companyName == "" {
|
|
|
- continue
|
|
|
- }
|
|
|
- for _, analyzeName := range analyzeNameList {
|
|
|
- //如果分词出来的公司名称正好在识别出来的公司名称里面,那么就认为校验通过了
|
|
|
- if strings.Contains(tmpCompanyName, analyzeName) {
|
|
|
- isCompanyNameFlag = true
|
|
|
+ if isCompanyNameFlag {
|
|
|
break
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if isCompanyNameFlag {
|
|
|
- break
|
|
|
}
|
|
|
-
|
|
|
- }
|
|
|
- //如果没有匹配到客户名称,那么就返回报错
|
|
|
- if !isCompanyNameFlag {
|
|
|
- br.Msg = "名片信息与公司名称不符"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
+ //如果没有匹配到客户名称,那么就返回报错
|
|
|
+ if !isCompanyNameFlag {
|
|
|
+ br.Msg = "名片信息与公司名称不符"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -2584,15 +2586,16 @@ func (this *CompanyController) PotentialUserMove() {
|
|
|
|
|
|
//名片匹配
|
|
|
if req.BusinessCardUrl != "" {
|
|
|
- if req.BusinessCardUrl != "" && utils.RunMode == "release" {
|
|
|
- // 获取图片识别手机号的配置
|
|
|
- crmConfig2, err := company.GetConfigDetailByCode("card_recognition_tel")
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取配置失败"
|
|
|
- br.ErrMsg = "获取配置失败"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
+ //if req.BusinessCardUrl != "" && utils.RunMode == "release" {
|
|
|
+ // 获取图片识别手机号的配置
|
|
|
+ crmConfig2, err := company.GetConfigDetailByCode("card_recognition_tel")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取配置失败"
|
|
|
+ br.ErrMsg = "获取配置失败"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if crmConfig2.ConfigValue == "true" {
|
|
|
card, err := services.GetBusinessCard(req.BusinessCardUrl)
|
|
|
if err != nil {
|
|
|
br.Msg = "名片识别失败"
|
|
@@ -5176,15 +5179,16 @@ func (this *CompanyController) ApplyRecordPotentialUserMove() {
|
|
|
|
|
|
//名片匹配
|
|
|
if req.BusinessCardUrl != "" {
|
|
|
- if req.BusinessCardUrl != "" && utils.RunMode == "release" {
|
|
|
- // 获取图片识别手机号的配置
|
|
|
- crmConfig2, err := company.GetConfigDetailByCode("card_recognition_tel")
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取配置失败"
|
|
|
- br.ErrMsg = "获取配置失败"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
+ //if req.BusinessCardUrl != "" && utils.RunMode == "release" {
|
|
|
+ // 获取图片识别手机号的配置
|
|
|
+ crmConfig2, err := company.GetConfigDetailByCode("card_recognition_tel")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取配置失败"
|
|
|
+ br.ErrMsg = "获取配置失败"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if crmConfig2.ConfigValue == "true" {
|
|
|
card, err := services.GetBusinessCard(req.BusinessCardUrl)
|
|
|
if err != nil {
|
|
|
br.Msg = "名片识别失败"
|