|
@@ -66,16 +66,9 @@ func (this *ArticleController) Detail() {
|
|
|
return
|
|
|
}
|
|
|
detail := new(models.ArticleDetail)
|
|
|
- //detailInit := new(models.ArticleDetail) // 初始化的文章信息,用来处理body 内容回显
|
|
|
hasPermission := 0
|
|
|
var haveResearch bool
|
|
|
- //判断是否已经申请过
|
|
|
- applyCount, err := models.GetApplyRecordCount(uid)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
+
|
|
|
resp := new(models.ArticleDetailResp)
|
|
|
detail, err = models.GetArticleDetailById(articleId)
|
|
|
if err != nil {
|
|
@@ -97,42 +90,13 @@ func (this *ArticleController) Detail() {
|
|
|
detail.DepartmentImgUrl = departmentDetail.ImgUrl
|
|
|
}
|
|
|
}
|
|
|
- lyjhTypeMap, _ := services.GetLyjhTypeMap()
|
|
|
- if _, ok := lyjhTypeMap[detail.CategoryId]; ok {
|
|
|
- detail.IsRoadShow = true
|
|
|
- }
|
|
|
- // 判断是否属于研选类型的报告
|
|
|
- if strings.Contains(detail.CategoryName, utils.CHART_PERMISSION_NAME_YANXUAN) {
|
|
|
- detail.IsResearch = true
|
|
|
- }
|
|
|
|
|
|
- // 高毅资产的联系人,有权限的行业也不能查看报告详情页。提示无权限页面
|
|
|
- if detail.ArticleTypeId == 0 && user.CompanyId == utils.GAO_YI_ZI_CHAN_COMPANY_ID {
|
|
|
- _, sellerName, sellerMobile, popupMsg, err := services.GetUserHasPermissionArticle(user)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- resp.PopupMsg = popupMsg
|
|
|
- resp.HasPermission = 3
|
|
|
- resp.SellerName = sellerName
|
|
|
- resp.SellerMobile = sellerMobile
|
|
|
- detail.Body = ""
|
|
|
- detail.Abstract = ""
|
|
|
- detail.BodyText = ""
|
|
|
- detail.SellerName = sellerName
|
|
|
- detail.SellerMobile = sellerMobile
|
|
|
- resp.Detail = detail
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = resp
|
|
|
- return
|
|
|
- }
|
|
|
+ // 判断是否属于研选类型的报告
|
|
|
+ detail.IsResearch = true
|
|
|
articleCollectMap, _ := services.GetCygxArticleCollectMap(user.UserId)
|
|
|
detail.IsCollect = articleCollectMap[detail.ArticleId]
|
|
|
- //detailInit = detail
|
|
|
+
|
|
|
+ //是否是通过模板消息进来的
|
|
|
if isSendWx == 1 {
|
|
|
var condition string
|
|
|
var pars []interface{}
|
|
@@ -168,208 +132,24 @@ func (this *ArticleController) Detail() {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //是否属于专项调研报告
|
|
|
- if detail.SubCategoryName == "专项调研" {
|
|
|
- detail.IsSpecialArticle = true
|
|
|
- havePower, err := services.GetSpecialArticleDetailUserPower(user, detail)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- resp.IsSpecialArticle = true
|
|
|
- if !havePower {
|
|
|
- hasPermission, sellerName, sellerMobile, popupMsg, err := services.GetUserHasPermissionArticle(user)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- resp.PopupMsg = popupMsg
|
|
|
- resp.HasPermission = hasPermission
|
|
|
- resp.SellerName = sellerName
|
|
|
- resp.SellerMobile = sellerMobile
|
|
|
- detail.Body = ""
|
|
|
- detail.Abstract = ""
|
|
|
- detail.BodyText = ""
|
|
|
- detail.SellerName = sellerName
|
|
|
- detail.SellerMobile = sellerMobile
|
|
|
- resp.Detail = detail
|
|
|
- br.Ret = 200
|
|
|
- br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
- br.Data = resp
|
|
|
- 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
|
|
|
- }
|
|
|
-
|
|
|
- //判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
|
|
|
- mfyxUserPermissionTotal := services.GetMfyxUserPermissionTotal(uid)
|
|
|
- if mfyxUserPermissionTotal == 1 {
|
|
|
- companyPermission += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
|
|
|
- companyPermission += "," + utils.MAI_FANG_YAN_XUAN_NAME
|
|
|
- }
|
|
|
- //如果有研选订阅的权限,那么就拼接一个 买方研选的权限做校验
|
|
|
- if strings.Contains(companyPermission, utils.CHART_PERMISSION_NAME_MF_YANXUAN) {
|
|
|
- companyPermission += "," + utils.MAI_FANG_YAN_XUAN_NAME
|
|
|
- }
|
|
|
-
|
|
|
- if companyPermission == "" {
|
|
|
- if applyCount > 0 {
|
|
|
- hasPermission = 5
|
|
|
- } else {
|
|
|
- hasPermission = 2
|
|
|
- }
|
|
|
- goto Loop
|
|
|
- } else {
|
|
|
- var articlePermissionName string
|
|
|
- if detail.CategoryId > 0 {
|
|
|
- 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
|
|
|
- }
|
|
|
- articlePermissionName = articlePermission.PermissionName
|
|
|
- } else {
|
|
|
- articlePermissionName = detail.CategoryName
|
|
|
- }
|
|
|
|
|
|
- var hasPersion bool
|
|
|
- slice := strings.Split(articlePermissionName, ",")
|
|
|
- for _, v := range slice {
|
|
|
- if strings.Contains(companyPermission, v) {
|
|
|
- hasPersion = true
|
|
|
- }
|
|
|
- }
|
|
|
- if strings.Contains(detail.CategoryName, "研选") {
|
|
|
- detail.IsResearch = true
|
|
|
- }
|
|
|
- userType, _, err := services.GetUserType(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- //永续客户,无法查看研选权限,但是下面的联系人,单独开通研选后,也可以查看研选内容
|
|
|
- if userType == 1 && strings.Contains(detail.CategoryName, "研选") && mfyxUserPermissionTotal == 0 {
|
|
|
- hasPersion = false
|
|
|
- }
|
|
|
- //if detail.IsReport == 1 {
|
|
|
- //detailCategory, err := models.GetdetailByCategoryIdSando(detail.CategoryId)
|
|
|
- //if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- // br.Msg = "获取信息失败"
|
|
|
- // br.ErrMsg = "获取信息失败,Err:" + err.Error() + "categoryID 不存在:" + strconv.Itoa(detail.CategoryId)
|
|
|
- // return
|
|
|
- //}
|
|
|
- //permissionStr, err := models.GetCompanyPermissionByUser(user.CompanyId)
|
|
|
- //if err != nil {
|
|
|
- // br.Msg = "获取信息失败"
|
|
|
- // br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
- // return
|
|
|
- //}
|
|
|
- //if detailCategory != nil {
|
|
|
- // if detailCategory.PermissionType == 1 {
|
|
|
- // if !strings.Contains(permissionStr, detailCategory.ChartPermissionName+"(主观)") {
|
|
|
- // hasPersion = false
|
|
|
- // }
|
|
|
- // } else if detailCategory.PermissionType == 2 {
|
|
|
- // if !strings.Contains(permissionStr, detailCategory.ChartPermissionName+"(客观)") {
|
|
|
- // hasPersion = false
|
|
|
- // }
|
|
|
- // }
|
|
|
- //}
|
|
|
- //}
|
|
|
-
|
|
|
- //大行业通过权限校验,再校验主客观权限。只有医药、消费、科技、智造,才会校验主客观权限
|
|
|
- if hasPersion && utils.InArrayByStr([]string{utils.YI_YAO_NAME, utils.XIAO_FEI_NAME, utils.KE_JI_NAME, utils.ZHI_ZAO_NAME}, articlePermissionName) {
|
|
|
- hasPersion = services.CheckArticlePermissionType(articleId, user)
|
|
|
- }
|
|
|
- if hasPersion {
|
|
|
- hasPermission = 1
|
|
|
- go services.ArticleHistory(articleId, user)
|
|
|
- //30分钟之内阅读同一篇文章不错二次推送
|
|
|
- key := "CYGX_ARTICLE_READ" + strconv.Itoa(articleId) + "_" + strconv.Itoa(uid)
|
|
|
- if !utils.Rc.IsExist(key) {
|
|
|
- go services.ArticleUserRemind(user, detail, 1)
|
|
|
- utils.Rc.Put(key, 1, 30*time.Second)
|
|
|
- }
|
|
|
- } else { //无该行业权限
|
|
|
- companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
|
|
|
- if err == nil && companyDetail.ProductId == 1 {
|
|
|
- hasPermission = 2
|
|
|
- } else {
|
|
|
- hasPermission = 3
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ havePower, err := services.GetArticleDetailUserPower(user, detail)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "校验用户权限失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- interviewApplyItem, err := models.GetArticleInterviewApply(uid, articleId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "判断是否已申请访谈失败,Err:" + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(articleId)
|
|
|
- return
|
|
|
- }
|
|
|
- if interviewApplyItem != nil && interviewApplyItem.InterviewApplyId > 0 {
|
|
|
- detail.IsInterviewApply = true
|
|
|
- detail.InterviewApplyStatus = interviewApplyItem.Status
|
|
|
- }
|
|
|
- //获取销售手机号
|
|
|
- sellerItem, err := models.GetSellerByCompanyId(user.CompanyId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取销售数据失败2,Err:" + err.Error() + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(articleId)
|
|
|
- return
|
|
|
- }
|
|
|
- if sellerItem != nil {
|
|
|
- detail.SellerMobile = sellerItem.Mobile
|
|
|
- detail.SellerName = sellerItem.RealName
|
|
|
- }
|
|
|
- sellerList, err := models.GetSellerList(articleId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取销售数据失败,Err:" + err.Error() + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(articleId)
|
|
|
- return
|
|
|
- }
|
|
|
- if detail.ArticleId >= utils.SummaryArticleId && strings.Contains(detail.SellerAndMobile, "-") {
|
|
|
- strnum := strings.Index(detail.SellerAndMobile, "-")
|
|
|
- detail.SellerAndMobile = detail.SellerAndMobile[0:strnum]
|
|
|
- if strnum > 0 {
|
|
|
- nickName := detail.SellerAndMobile[0:strnum]
|
|
|
- sellerAndMobile := &models.SellerRep{
|
|
|
- SellerMobile: "",
|
|
|
- SellerName: nickName,
|
|
|
- }
|
|
|
- sellerList = append(sellerList, sellerAndMobile)
|
|
|
- }
|
|
|
+ if havePower {
|
|
|
+ hasPermission = 1
|
|
|
+ go services.ArticleHistory(articleId, user)
|
|
|
+ //30分钟之内阅读同一篇文章不错二次推送
|
|
|
+ key := "CYGX_ARTICLE_READ" + strconv.Itoa(articleId) + "_" + strconv.Itoa(uid)
|
|
|
+ if !utils.Rc.IsExist(key) {
|
|
|
+ go services.ArticleUserRemind(user, detail, 1)
|
|
|
+ utils.Rc.Put(key, 1, 30*time.Second)
|
|
|
}
|
|
|
- detail.SellerList = sellerList
|
|
|
|
|
|
- } else { //潜在客户
|
|
|
- if applyCount > 0 {
|
|
|
- hasPermission = 5
|
|
|
- } else {
|
|
|
- hasPermission = 4
|
|
|
- }
|
|
|
- }
|
|
|
-Loop:
|
|
|
- if hasPermission != 1 && user.UserId > 0 {
|
|
|
- detail.Body = ""
|
|
|
- detail.BodyText = ""
|
|
|
- } else {
|
|
|
articleFollowdetail, err := models.GetArticleFollowDetail(articleId, uid)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
@@ -387,16 +167,15 @@ Loop:
|
|
|
if detail.IsReport == 1 {
|
|
|
detail.IsBelongReport = true
|
|
|
}
|
|
|
- haveResearch = true
|
|
|
- }
|
|
|
- if hasPermission == 5 {
|
|
|
- companyPermissionNoStatus, err := models.GetCompanyPermissionByUserNoStatus(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
+ } else {
|
|
|
+ hasPermission, err = services.GetUserDetailPermissionCode(user.UserId, user.CompanyId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "判断是否已申请访谈失败,Err:" + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(articleId)
|
|
|
+ br.ErrMsg = "获取信息失败,GetUserDetailPermissionCode Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- if companyPermissionNoStatus != "" {
|
|
|
+ //权益客户对权益销售信息进行展示
|
|
|
+ if hasPermission == 2 || hasPermission == 3 {
|
|
|
sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取信息失败"
|
|
@@ -409,63 +188,20 @@ Loop:
|
|
|
detail.SellerName = sellerItemQy.RealName
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- if hasPermission == 2 || hasPermission == 4 {
|
|
|
- //获取销售手机号
|
|
|
- sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if sellerItemQy != nil {
|
|
|
- hasPermission = 3
|
|
|
- detail.SellerMobile = sellerItemQy.Mobile
|
|
|
- detail.SellerName = sellerItemQy.RealName
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if detail.ArticleId < utils.SummaryArticleId {
|
|
|
- if user.Mobile != "" {
|
|
|
+ detail.Body = ""
|
|
|
+ detail.BodyText = ""
|
|
|
+ resp.IsShowWxPay = utils.IS_SHOW_WX_PAY //是否展示微信支付按钮
|
|
|
+ resp.GoodsList = services.GetUserGoodsCardList() //日卡月卡商品信息
|
|
|
|
|
|
- detail.HttpUrl = utils.StrategyPlatform + strconv.Itoa(articleId) + "?token="
|
|
|
- } else {
|
|
|
- detail.HttpUrl = utils.StrategyPlatform + strconv.Itoa(articleId)
|
|
|
- }
|
|
|
- detail.IsNeedJump = true
|
|
|
+ //resp.IsCompanyApply =
|
|
|
}
|
|
|
|
|
|
- // 处理研选下面的路演精华 的报告链接是否跳转
|
|
|
- if hasPermission == 1 && detail.ArticleId > utils.SummaryArticleId && detail.ArticleTypeId > 0 {
|
|
|
- //detail.PublishDate = utils.TimeRemoveHms2(detail.PublishDate)
|
|
|
- if detail.ReportLink != "" {
|
|
|
-
|
|
|
- detail.ReportLink += "?token="
|
|
|
- }
|
|
|
- }
|
|
|
- if articleId < utils.SummaryArticleId {
|
|
|
- detail.Abstract, _ = services.GetReportContentTextSubNew(detail.Abstract)
|
|
|
- }
|
|
|
if detail.ArticleTypeId == 14 {
|
|
|
detail.IsApplyAppointmentExpert = true //判断文章类型是否属于专家访谈 查研观向11.0
|
|
|
}
|
|
|
resp.HasPermission = hasPermission
|
|
|
resp.HaveResearch = haveResearch
|
|
|
- if user.UserId == 0 {
|
|
|
- resp.HasPermission = 1
|
|
|
- if detail.UpdateFrequency == "daily" {
|
|
|
- detail.Frequency = "日度"
|
|
|
- } else if detail.UpdateFrequency == "weekly" {
|
|
|
- detail.Frequency = "周度"
|
|
|
- } else if detail.UpdateFrequency == "monthly" {
|
|
|
- detail.Frequency = "月度"
|
|
|
- } else if detail.UpdateFrequency == "quarterly" {
|
|
|
- detail.Frequency = "季度"
|
|
|
- } else if detail.UpdateFrequency == "yearly" {
|
|
|
- detail.Frequency = "年度"
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
resp.Detail = detail
|
|
|
if user.Mobile != "" {
|
|
|
resp.Mobile = user.Mobile
|