|
@@ -432,227 +432,119 @@ func (this *ArticleCommonController) Detail() {
|
|
br.Data = resp
|
|
br.Data = resp
|
|
}
|
|
}
|
|
|
|
|
|
-// @Title 获取报告同步
|
|
|
|
-// @Description 获取报告详情接口
|
|
|
|
-// @Param ArticleIdMd5 query int true "报告ID"
|
|
|
|
|
|
+// @Title 上传文章阅读时间
|
|
|
|
+// @Description 上传文章阅读时间接口
|
|
|
|
+// @Param request body models.AddStopTimeRep true "type json string"
|
|
// @Success 200 {object} models.ArticleDetailResp
|
|
// @Success 200 {object} models.ArticleDetailResp
|
|
-// @router /tongbu [get]
|
|
|
|
-//func (this *ArticleCommonController) Tongbu() {
|
|
|
|
-// br := new(models.BaseResponse).Init()
|
|
|
|
-// defer func() {
|
|
|
|
-// this.Data["json"] = br
|
|
|
|
-// this.ServeJSON()
|
|
|
|
-// }()
|
|
|
|
-//
|
|
|
|
-// fmt.Println("同步数据")
|
|
|
|
-// indexName := utils.IndexName
|
|
|
|
-// fmt.Println(indexName)
|
|
|
|
-// endDate := time.Now().AddDate(0, 0, -7).Format(utils.FormatDate)
|
|
|
|
-// list, err := models.GetTacticsList(endDate)
|
|
|
|
-// //list, err := models.GetTacticsListAll2()
|
|
|
|
-// if err != nil {
|
|
|
|
-// fmt.Println("GetTacticsList Err:", err.Error())
|
|
|
|
-// return
|
|
|
|
-// }
|
|
|
|
-// fmt.Println("list len:", len(list))
|
|
|
|
-//
|
|
|
|
-// summaryCategoryIds := "28,32,45,50,57,62,72,74,79,84,86,88,90,95,96" //纪要库的文章类型ID
|
|
|
|
-// listSummarys := strings.Split(summaryCategoryIds, ",")
|
|
|
|
-// fmt.Println(listSummarys)
|
|
|
|
-// for _, v := range listSummarys {
|
|
|
|
-// vs, _ := strconv.Atoi(v)
|
|
|
|
-// fmt.Printf("n 的类型 %T", vs)
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// for _, v := range list {
|
|
|
|
-// for _, vs := range listSummarys {
|
|
|
|
-// vint, _ := strconv.Atoi(vs)
|
|
|
|
-// //fmt.Printf("vint 的类型 %T", vint)
|
|
|
|
-// //fmt.Println("————————————")
|
|
|
|
-// //fmt.Printf("vCategoryId 的类型 %T", v.CategoryId)
|
|
|
|
-// //fmt.Println("————————————")
|
|
|
|
-//
|
|
|
|
-// if v.CategoryId == vint {
|
|
|
|
-//
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-//
|
|
|
|
-// br.Msg = "测试!"
|
|
|
|
-// br.ErrMsg = "参数解析失败,Err:"
|
|
|
|
-// return
|
|
|
|
|
|
+// @router /addStopTime [post]
|
|
|
|
+func (this *ArticleController) AddStopTime() {
|
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
|
+ defer func() {
|
|
|
|
+ this.Data["json"] = br
|
|
|
|
+ this.ServeJSON()
|
|
|
|
+ }()
|
|
|
|
+ user := this.User
|
|
|
|
+ if user == nil {
|
|
|
|
+ br.Msg = "请登录"
|
|
|
|
+ br.ErrMsg = "请登录,用户信息为空"
|
|
|
|
+ br.Ret = 408
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var req models.AddStopTimeRep
|
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ uid := user.UserId
|
|
|
|
+ articleId := req.ArticleId
|
|
|
|
+ stopTime := req.StopTime
|
|
|
|
+ if articleId <= 0 {
|
|
|
|
+ br.Msg = "参数错误"
|
|
|
|
+ br.ErrMsg = "参数错误"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if stopTime == 0 {
|
|
|
|
+ br.Msg = "时间错误"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ detail := new(models.ArticleDetail)
|
|
|
|
+ hasPermission := 0
|
|
|
|
+ hasFree := 0
|
|
|
|
|
|
-//listSummary, errsu := models.GetReportMappingCategoryID()
|
|
|
|
-//if errsu != nil {
|
|
|
|
-// fmt.Println("GetTacticsList Err:", errsu.Error())
|
|
|
|
-// return
|
|
|
|
-//}
|
|
|
|
-//
|
|
|
|
-//listPermission, errper := models.GetPermissionMappingCategoryID()
|
|
|
|
-//if errper != nil {
|
|
|
|
-// fmt.Println("GetTacticsList Err:", errper.Error())
|
|
|
|
-// return
|
|
|
|
-//}
|
|
|
|
-//for k, v := range list {
|
|
|
|
-//
|
|
|
|
-// //是否属于纪要库
|
|
|
|
-// //countSummary, err := models.GetPermissionMappingById(v.CategoryId)
|
|
|
|
-// //if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
|
-// // br.Msg = "参数解析异常!"
|
|
|
|
-// // br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
-// // return
|
|
|
|
-// //}
|
|
|
|
-// //if countSummary > 0 {
|
|
|
|
-// // v.IsSummary = 1
|
|
|
|
-// //}
|
|
|
|
-// for _, vSum := range listSummary {
|
|
|
|
-// if v.CategoryId == vSum.CategoryId {
|
|
|
|
-// v.IsSummary = 1
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// //是否属于报告
|
|
|
|
-// //countReport, err := models.GetReportMappingById(v.CategoryId)
|
|
|
|
-// //if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
|
-// // br.Msg = "参数解析异常!"
|
|
|
|
-// // br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
-// // return
|
|
|
|
-// //}
|
|
|
|
-// for _, vPer := range listPermission {
|
|
|
|
-// if v.CategoryId == vPer.CategoryId {
|
|
|
|
-// v.IsReport = 1
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// if v.IsReport > 0 {
|
|
|
|
-// //是否属于策略 策略自动归类
|
|
|
|
-// //是否属于行业报告 行业报告自动归类
|
|
|
|
-// if v.CategoryId == 7 || v.CategoryId == 11 || v.CategoryId == 51 || v.CategoryId == 52 || v.CategoryId == 64 || v.CategoryId == 80 || v.CategoryId == 87 {
|
|
|
|
-// v.IsClass = 1
|
|
|
|
-// }
|
|
|
|
-// if v.CategoryId == 64 || v.CategoryId == 87 || v.CategoryId == 80 {
|
|
|
|
-// v.ReportType = 2 //是否属于行业报告
|
|
|
|
-// } else {
|
|
|
|
-// v.ReportType = 1 //是否属于产业报告
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// v.Department = "弘则权益研究"
|
|
|
|
-// fmt.Println(k, v.ArticleId)
|
|
|
|
-// hh, _ := time.ParseDuration("8h")
|
|
|
|
-// //pDate := publishDate.Add(hh)
|
|
|
|
-// v.PublishDate = v.PublishDate.Add(hh)
|
|
|
|
-// //判断是否已经存在
|
|
|
|
-// if v.ArticleId < 0 {
|
|
|
|
-// if err != nil {
|
|
|
|
-// br.Msg = "参数解析异常!"
|
|
|
|
-// br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
-// return
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// count, err := models.GetArticleCountById(v.ArticleId)
|
|
|
|
-// if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
|
-// br.Msg = "参数解析异常!"
|
|
|
|
-// br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
-// return
|
|
|
|
-// }
|
|
|
|
-// fmt.Println(v.IsClass)
|
|
|
|
-// v.Body = strings.Replace(v.Body, "http://vmp.hzinsights.com", "https://vmp.hzinsights.com", -1)
|
|
|
|
-// expertNumStr, expertContentStr, interviewDateStr := services.BodyAnalysis(v.Body)
|
|
|
|
-// if count > 0 {
|
|
|
|
-// fmt.Println(k, v.ArticleId, "edit")
|
|
|
|
-// //articleInfo, err := models.GetArticleDetailById(v.ArticleId)
|
|
|
|
-// //if err != nil {
|
|
|
|
-// // br.Msg = "同步失败!文章ID:" + strconv.Itoa(v.ArticleId)
|
|
|
|
-// // br.ErrMsg = "同步失败,Err:" + err.Error()
|
|
|
|
-// // return
|
|
|
|
-// //}
|
|
|
|
-// //if articleInfo.IsClass == 1 {
|
|
|
|
-// // v.IsClass = 1
|
|
|
|
-// //}
|
|
|
|
-// bodyText, _ := services.GetReportContentTextSub(v.Body)
|
|
|
|
-// updateParams := make(map[string]interface{})
|
|
|
|
-// updateParams["Title"] = v.Title
|
|
|
|
-// updateParams["TitleEn"] = v.TitleEn
|
|
|
|
-// updateParams["UpdateFrequency"] = v.UpdateFrequency
|
|
|
|
-// updateParams["CreateDate"] = v.CreateDate
|
|
|
|
-// updateParams["PublishDate"] = v.PublishDate
|
|
|
|
-// updateParams["Body"] = html.EscapeString(v.Body)
|
|
|
|
-// updateParams["BodyText"] = bodyText
|
|
|
|
-// updateParams["Abstract"] = html.EscapeString(v.Abstract)
|
|
|
|
-// updateParams["CategoryName"] = v.CategoryName
|
|
|
|
-// updateParams["SubCategoryName"] = v.SubCategoryName
|
|
|
|
-// updateParams["CategoryId"] = v.CategoryId
|
|
|
|
-// updateParams["PublishStatus"] = v.PublishStatus
|
|
|
|
-// updateParams["ExpertBackground"] = expertContentStr
|
|
|
|
-// updateParams["ExpertNumber"] = expertNumStr
|
|
|
|
-// updateParams["InterviewDate"] = interviewDateStr
|
|
|
|
-// updateParams["IsClass"] = v.IsClass
|
|
|
|
-// updateParams["IsSummary"] = v.IsSummary
|
|
|
|
-// updateParams["IsReport"] = v.IsReport
|
|
|
|
-// updateParams["ReportType"] = v.ReportType
|
|
|
|
-// if v.Department != "弘则权益研究" {
|
|
|
|
-// v.Department = "弘则权益研究"
|
|
|
|
-// }
|
|
|
|
-// updateParams["Department"] = v.Department
|
|
|
|
-// whereParam := map[string]interface{}{"article_id": v.ArticleId}
|
|
|
|
-// err = models.UpdateByExpr(models.CygxArticle{}, whereParam, updateParams)
|
|
|
|
-// if err != nil {
|
|
|
|
-// fmt.Println("UpdateByExpr Err:" + err.Error())
|
|
|
|
-// }
|
|
|
|
-// } else {
|
|
|
|
-// fmt.Println(k, v.ArticleId, "add")
|
|
|
|
-// item := new(models.CygxArticle)
|
|
|
|
-// articleIdInt := v.ArticleId
|
|
|
|
-// item.ArticleId = articleIdInt
|
|
|
|
-// item.Title = v.Title
|
|
|
|
-// item.TitleEn = v.TitleEn
|
|
|
|
-// item.UpdateFrequency = v.UpdateFrequency
|
|
|
|
-// item.CreateDate = v.CreateDate
|
|
|
|
-// item.PublishDate = v.PublishDate.Format(utils.FormatDateTime)
|
|
|
|
-// item.Body = html.EscapeString(v.Body)
|
|
|
|
-// item.Abstract = html.EscapeString(v.Abstract)
|
|
|
|
-// item.CategoryName = v.CategoryName
|
|
|
|
-// item.SubCategoryName = v.SubCategoryName
|
|
|
|
-// item.CategoryId = v.CategoryId
|
|
|
|
-// item.PublishStatus = v.PublishStatus
|
|
|
|
-// item.ExpertBackground = expertContentStr
|
|
|
|
-// item.ExpertNumber = expertNumStr
|
|
|
|
-// item.InterviewDate = interviewDateStr
|
|
|
|
-// item.Department = v.Department
|
|
|
|
-// item.ArticleIdMd5 = utils.MD5(strconv.Itoa(articleIdInt))
|
|
|
|
-// item.IsClass = v.IsClass
|
|
|
|
-// item.IsSummary = v.IsSummary
|
|
|
|
-// item.IsReport = v.IsReport
|
|
|
|
-// item.ReportType = v.ReportType
|
|
|
|
-// _, err = models.AddCygxArticles(item)
|
|
|
|
-// if err != nil {
|
|
|
|
-// fmt.Println("AddCygxArticle Err:", err.Error())
|
|
|
|
-// br.Msg = "参数解析异常!"
|
|
|
|
-// br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
-// return
|
|
|
|
-// }
|
|
|
|
-// }
|
|
|
|
-// //纪要库的数据同步到Es
|
|
|
|
-// if v.IsSummary == 1 {
|
|
|
|
-// content := html.UnescapeString(v.Body)
|
|
|
|
-// doc, err := goquery.NewDocumentFromReader(strings.NewReader(content))
|
|
|
|
-// if err != nil {
|
|
|
|
-// fmt.Println("create doc err:", err.Error())
|
|
|
|
-// br.Msg = "参数解析异常!"
|
|
|
|
-// br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
|
-// return
|
|
|
|
-// }
|
|
|
|
-// doc.Find("a").Each(func(i int, a *goquery.Selection) {
|
|
|
|
-// a.Remove()
|
|
|
|
-// })
|
|
|
|
-// bodyText := doc.Text()
|
|
|
|
-// item := new(services.ElasticTestArticleDetail)
|
|
|
|
-// item.ArticleId = v.ArticleId
|
|
|
|
-// item.Title = v.Title
|
|
|
|
-// item.BodyText = bodyText
|
|
|
|
-// item.PublishDate = v.PublishDate.Format(utils.FormatDateTime)
|
|
|
|
-// services.EsAddOrEditData(indexName, strconv.Itoa(v.ArticleId), item)
|
|
|
|
-// }
|
|
|
|
-//}
|
|
|
|
-//br.Ret = 200
|
|
|
|
-//br.Success = true
|
|
|
|
-//br.Msg = "同步成功"
|
|
|
|
-//}
|
|
|
|
|
|
+ //判断是否已经申请过
|
|
|
|
+ applyCount, err := models.GetApplyRecordCount(uid)
|
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //`description:"1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下,3:无该品类权限,4:潜在客户,未提交过申请,5:潜在客户,已提交过申请"`
|
|
|
|
+ if user.CompanyId > 1 {
|
|
|
|
+ companyPermission, err := models.GetCompanyPermission(user.CompanyId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "判断是否已申请访谈失败,Err:" + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(articleId)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ detail, err = models.GetArticleDetailById(articleId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if companyPermission == "" {
|
|
|
|
+ if applyCount > 0 {
|
|
|
|
+ hasPermission = 5
|
|
|
|
+ } else {
|
|
|
|
+ hasPermission = 2
|
|
|
|
+ }
|
|
|
|
+ hasFree = 2
|
|
|
|
+ goto Loop
|
|
|
|
+ } else {
|
|
|
|
+ hasFree = 1
|
|
|
|
+ articlePermission, err := models.GetArticlePermission(detail.CategoryId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取报告权限失败,Err:" + err.Error() + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(articleId)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if articlePermission == nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "报告权限不存在,Err:" + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(articleId)
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if strings.Contains(companyPermission, articlePermission.PermissionName) {
|
|
|
|
+ detailNew, err := models.GetNewArticleHistoryRecord(uid, articleId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ hasPermission = 1
|
|
|
|
+ historyRecord := new(models.AddStopTimeNewRep)
|
|
|
|
+ historyRecord.StopTime = detailNew.StopTime + stopTime
|
|
|
|
+ historyRecord.Id = detailNew.Id
|
|
|
|
+ go models.AddArticleStopTime(historyRecord)
|
|
|
|
+ } else { //无该行业权限
|
|
|
|
+ hasPermission = 3
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else { //潜在客户
|
|
|
|
+ if applyCount > 0 {
|
|
|
|
+ hasPermission = 5
|
|
|
|
+ } else {
|
|
|
|
+ hasPermission = 4
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+Loop:
|
|
|
|
+ resp := new(models.ArticleDetailAddStopTimeRep)
|
|
|
|
+ resp.HasPermission = hasPermission
|
|
|
|
+ resp.HasFree = hasFree
|
|
|
|
+ br.Ret = 200
|
|
|
|
+ br.Success = true
|
|
|
|
+ br.Msg = "操作成功"
|
|
|
|
+ br.Data = resp
|
|
|
|
+}
|