Pārlūkot izejas kodu

Merge branch 'cygx/cygx_11.2' of http://8.136.199.33:3000/hongze/hz_crm_api into debug

xingzai 1 gadu atpakaļ
vecāks
revīzija
ac4136729d

+ 10 - 4
controllers/cygx/activity.go

@@ -85,10 +85,18 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 		br.ErrMsg = "参数解析失败,Err:" + err.Error()
 		return
 	}
+
+	//处理识图建会的会议信息列表 因为活动发布处理的业务逻辑过多,方便后期统一维护这里 根据 list 数据类型自己拼接 活动的 body  查研观向 11.12
+	listImgToText := req.ListImgToText
+	if len(listImgToText) > 0 {
+		req = cygxService.MakeActivityReqText(listImgToText)
+	}
 	if req.Body == "" {
 		br.Msg = "内容不可为空"
 		return
 	}
+
+	//return
 	//不限制人数的,强制改为全部客户可见
 	if req.LimitPeopleNum == 0 {
 		req.VisibleRange = 2
@@ -364,7 +372,6 @@ func (this *ActivityCoAntroller) PreserveAndPublish() {
 		}
 		itemPointsSet = itemResp
 	}
-
 	for k, v := range slice {
 		//如果内容不存在 时间:字段则不予处理
 		if strings.Contains(v, "时间:") || strings.Contains(v, "时间:") {
@@ -1561,10 +1568,9 @@ func (this *ActivityCoAntroller) ImgToText() {
 	}
 
 	for _, v := range list {
-		v.TitmeYMD = services.ConvertActivityTitmeYMD(v.TitmeYMD)
-		v.TitmeHM = services.ConvertActivityTitmeHM(v.TitmeHM)
+		v.TitmeYMD = cygxService.ConvertActivityTitmeYMD(v.TitmeYMD)
+		v.TitmeHM = cygxService.ConvertActivityTitmeHM(v.TitmeHM)
 	}
-
 	resp.List = list
 	br.Ret = 200
 	br.Success = true

+ 1 - 0
models/cygx/activity.go

@@ -84,6 +84,7 @@ type ActivityRep struct {
 	List                    []*ActivityGroupIndustrialRep
 	VoiceList               []*CygxActivityVoiceReq
 	VideoDetail             *CygxActivityVideoReq
+	ListImgToText           []*AliyunOcrTextActivityResp `description:"识图建会的会议信息列表"`
 }
 
 // 活动添加、修改入参

+ 0 - 59
services/aliyun_ocr.go

@@ -6,7 +6,6 @@ import (
 	"hongze/hz_crm_api/models/cygx"
 	"io/ioutil"
 	"net/http"
-	"strconv"
 	"strings"
 	"time"
 )
@@ -75,61 +74,3 @@ func AliOcrByImageToText(imageurl string) (item *AliOcrByImageToTextResp, err er
 	err = cygx.AddAliyunOcrLog(logItem)
 	return
 }
-
-//星期日 Sunday=Sun. 读音:英[ˈsʌndeɪ]美[ˈsʌnˌdeɪ]
-//
-//星期一 Monday=Mon. 读音:英[ˈmʌndeɪ]美[ˈmʌndeɪ]
-//
-//星期二 Tuesday=Tues. 读音:英[ˈtju:zdeɪ]美[ˈtu:zdeɪ]
-//
-//星期三 Wednesday=Wed. 读音:英[ˈwenzdeɪ]美[ˈwɛnzdi, -ˌde]
-//
-//星期四 Thursday=Thur./Thurs. 读音:英[ˈθɜ:zdeɪ]美[ˈθɜ:rzdeɪ]
-//
-//星期五 Friday=Fri. 读音:英[ˈfraɪdeɪ]美[ˈfraɪˌdeɪ]
-//
-//星期六 Saturday=Sat. 读音: 英[ˈsætədeɪ]美[ˈsætərdeɪ]
-
-func ConvertActivityTitmeYMD(TitmeYMD string) (titmeYMDNew string) {
-	titmeYMDNew = TitmeYMD
-	titmeYMDNew = strings.Replace(titmeYMDNew, "/", "月", -1)
-	//titmeYMDNew = strings.Replace(titmeYMDNew, "SUN", "日(周日)", -1)
-	//titmeYMDNew = strings.Replace(titmeYMDNew, "MON", "日(周一)", -1)
-	//titmeYMDNew = strings.Replace(titmeYMDNew, "TUE", "日(周二)", -1)
-	//titmeYMDNew = strings.Replace(titmeYMDNew, "WED", "日(周三)", -1)
-	//titmeYMDNew = strings.Replace(titmeYMDNew, "THU", "日(周四)", -1)
-	//titmeYMDNew = strings.Replace(titmeYMDNew, "FRI", "日(周五)", -1)
-	//titmeYMDNew = strings.Replace(titmeYMDNew, "SAT", "日(周六)", -1)
-
-	titmeYMDNew = strings.Replace(titmeYMDNew, "SUN", "日", -1)
-	titmeYMDNew = strings.Replace(titmeYMDNew, "MON", "日", -1)
-	titmeYMDNew = strings.Replace(titmeYMDNew, "TUE", "日", -1)
-	titmeYMDNew = strings.Replace(titmeYMDNew, "WED", "日", -1)
-	titmeYMDNew = strings.Replace(titmeYMDNew, "THU", "日", -1)
-	titmeYMDNew = strings.Replace(titmeYMDNew, "FRI", "日", -1)
-	titmeYMDNew = strings.Replace(titmeYMDNew, "SAT", "日", -1)
-	titmeYMDNew = strconv.Itoa(time.Now().Year()) + "年" + titmeYMDNew
-	return
-}
-
-func ConvertActivityTitmeHM(titmeHM string) (titmeHMNew string) {
-	titmeHMNew = titmeHM
-	var hNum int
-	//var amOrPm string
-	if strings.Contains(titmeHM, "PM") {
-		hNum = 12
-		//amOrPm = "PM"
-	} else {
-		//amOrPm = "AM"
-	}
-	titmeHM = strings.Replace(titmeHM, "AM", "", -1)
-	titmeHM = strings.Replace(titmeHM, "PM", "", -1)
-	sliceHm := strings.Split(titmeHM, ":")
-	if len(sliceHm) != 2 {
-		return
-	}
-	hourNum, _ := strconv.Atoi(sliceHm[0])
-	minute := sliceHm[1]
-	titmeHMNew = strconv.Itoa(hNum+hourNum) + ":" + minute
-	return
-}

+ 116 - 0
services/cygx/activity_ocr.go

@@ -0,0 +1,116 @@
+package cygx
+
+import (
+	"hongze/hz_crm_api/models/cygx"
+	"hongze/hz_crm_api/utils"
+	"strconv"
+	"strings"
+	"time"
+)
+
+//处理OCR识别图片建会的逻辑
+
+//星期日 Sunday=Sun. 读音:英[ˈsʌndeɪ]美[ˈsʌnˌdeɪ]
+//
+//星期一 Monday=Mon. 读音:英[ˈmʌndeɪ]美[ˈmʌndeɪ]
+//
+//星期二 Tuesday=Tues. 读音:英[ˈtju:zdeɪ]美[ˈtu:zdeɪ]
+//
+//星期三 Wednesday=Wed. 读音:英[ˈwenzdeɪ]美[ˈwɛnzdi, -ˌde]
+//
+//星期四 Thursday=Thur./Thurs. 读音:英[ˈθɜ:zdeɪ]美[ˈθɜ:rzdeɪ]
+//
+//星期五 Friday=Fri. 读音:英[ˈfraɪdeɪ]美[ˈfraɪˌdeɪ]
+//
+//星期六 Saturday=Sat. 读音: 英[ˈsætədeɪ]美[ˈsætərdeɪ]
+
+// 处理年月日格式
+func ConvertActivityTitmeYMD(TitmeYMD string) (titmeYMDNew string) {
+	titmeYMDNew = TitmeYMD
+	titmeYMDNew = strings.Replace(titmeYMDNew, "/", "月", -1)
+	//titmeYMDNew = strings.Replace(titmeYMDNew, "SUN", "日(周日)", -1)
+	//titmeYMDNew = strings.Replace(titmeYMDNew, "MON", "日(周一)", -1)
+	//titmeYMDNew = strings.Replace(titmeYMDNew, "TUE", "日(周二)", -1)
+	//titmeYMDNew = strings.Replace(titmeYMDNew, "WED", "日(周三)", -1)
+	//titmeYMDNew = strings.Replace(titmeYMDNew, "THU", "日(周四)", -1)
+	//titmeYMDNew = strings.Replace(titmeYMDNew, "FRI", "日(周五)", -1)
+	//titmeYMDNew = strings.Replace(titmeYMDNew, "SAT", "日(周六)", -1)
+
+	titmeYMDNew = strings.Replace(titmeYMDNew, "SUN", "日", -1)
+	titmeYMDNew = strings.Replace(titmeYMDNew, "MON", "日", -1)
+	titmeYMDNew = strings.Replace(titmeYMDNew, "TUE", "日", -1)
+	titmeYMDNew = strings.Replace(titmeYMDNew, "WED", "日", -1)
+	titmeYMDNew = strings.Replace(titmeYMDNew, "THU", "日", -1)
+	titmeYMDNew = strings.Replace(titmeYMDNew, "FRI", "日", -1)
+	titmeYMDNew = strings.Replace(titmeYMDNew, "SAT", "日", -1)
+	titmeYMDNew = strconv.Itoa(time.Now().Year()) + "年" + titmeYMDNew
+	return
+}
+
+// 处理时分PM格式
+func ConvertActivityTitmeHM(titmeHM string) (titmeHMNew string) {
+	titmeHMNew = titmeHM
+	var hNum int
+	//var amOrPm string
+	if strings.Contains(titmeHM, "PM") {
+		hNum = 12
+		//amOrPm = "PM"
+	} else {
+		//amOrPm = "AM"
+	}
+	titmeHM = strings.Replace(titmeHM, "AM", "", -1)
+	titmeHM = strings.Replace(titmeHM, "PM", "", -1)
+	sliceHm := strings.Split(titmeHM, ":")
+	if len(sliceHm) != 2 {
+		return
+	}
+	hourNum, _ := strconv.Atoi(sliceHm[0])
+	minute := sliceHm[1]
+	titmeHMNew = strconv.Itoa(hNum+hourNum) + ":" + minute
+	return
+}
+
+// 活动内容模版
+var ActivityOcrTemplate = "<p>【买方研选-小范围公司线上交流】{{COMPANY}}</p><p>时间:{{TIME}}</p><p>嘉宾:IR</p><p>主持人:IR</p><p>链接参会:(会前一天下午更新)</p><p>备注:</p><p>1、请先报名,我们将于会议前一天提供【Webex】入会链接(可电话拨入or网络端参会);</p><p>2、会议语言:{{LANGUAGE}};</p><p>3、本场会议报名截止时间为会议开始前一天下午3点半;</p><p>4、本次会议扣0.5次研选服务点。</p>"
+
+func MakeActivityReqText(list []*cygx.AliyunOcrTextActivityResp) (req cygx.ActivityRep) {
+	for _, v := range list {
+		ActivityOcrTmp := ActivityOcrTemplate
+		sliceCompany := strings.Split(v.Company, "(")
+		company := sliceCompany[0]
+		ActivityOcrTmp = strings.Replace(ActivityOcrTmp, "{{COMPANY}}", company, -1)
+		v.TitmeYMD = strings.Replace(v.TitmeYMD, "年", "-", -1)
+		v.TitmeYMD = strings.Replace(v.TitmeYMD, "月", "-", -1)
+		v.TitmeYMD = strings.Replace(v.TitmeYMD, "日", " ", -1)
+		ActivityOcrTmp = strings.Replace(ActivityOcrTmp, "{{TIME}}", v.TitmeYMD+v.TitmeHM, -1)
+		if utils.CheckStrHaveLetter(company) {
+			ActivityOcrTmp = strings.Replace(ActivityOcrTmp, "{{LANGUAGE}}", "中文", -1)
+		} else {
+			ActivityOcrTmp = strings.Replace(ActivityOcrTmp, "{{LANGUAGE}}", "英文", -1)
+		}
+		req.Body += ActivityOcrTmp + "<hr>" //分隔符标签
+		label := new(cygx.ActivityGroupIndustrialRep)
+		label.TemporaryLabel = company
+		req.List = append(req.List, label)
+	}
+	//初始化相关活动参数信息
+	req.Body = strings.TrimRight(req.Body, "<hr>")
+	req.DoType = 1
+	req.ActivityTypeId = 3
+	req.PermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
+	req.CustomerTypeIds = "1,2,8,10,3,9,5,6,7"
+	req.IsAllCustomerType = 1
+	req.LimitPeopleNum = 10
+	req.LabelType = 1
+	req.VisibleRange = 2
+	req.IsResearchPoints = 1
+	req.IsNeedEmail = 1
+	pointsSet := new(cygx.CygxActivityPointsSetRsq)
+	pointsSet.PointsObject = "1"
+	pointsSet.UserPointsNum = "0.5"
+	pointsSet.PointsType = "1"
+	pointsSet.CompanyPointsNum = "0"
+	pointsSet.CancelDeadlineType = "1"
+	req.PointsSet = pointsSet
+	return
+}

+ 12 - 0
utils/common.go

@@ -2087,3 +2087,15 @@ func FormatTableDataShowValue(x float64) (res string) {
 	}
 	return
 }
+
+// 校验字符是否包含字母
+func CheckStrHaveLetter(checkString string) (checked bool) {
+	allLetterDigit := []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
+	for _, v := range allLetterDigit {
+		if strings.Contains(checkString, v) {
+			checked = true
+			return true
+		}
+	}
+	return
+}