xingzai 1 жил өмнө
parent
commit
38874e4f6d

+ 8 - 177
controllers/article.go

@@ -211,6 +211,12 @@ func (this *ArticleController) Detail() {
 			return
 		}
 
+		//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
+		mfyxUserPermissionTotal := services.GetMfyxUserPermissionTotal(uid)
+		if mfyxUserPermissionTotal == 1 {
+			companyPermission += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+		}
+
 		if companyPermission == "" {
 			if applyCount > 0 {
 				hasPermission = 5
@@ -253,7 +259,8 @@ func (this *ArticleController) Detail() {
 				br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
 				return
 			}
-			if userType == 1 && strings.Contains(detail.CategoryName, "研选") {
+			//永续客户,无法查看研选权限,但是下面的联系人,单独开通研选后,也可以查看研选内容
+			if userType == 1 && strings.Contains(detail.CategoryName, "研选") && mfyxUserPermissionTotal == 0 {
 				hasPersion = false
 			}
 			//if detail.IsReport == 1 {
@@ -649,182 +656,6 @@ func (this *ArticleController) InterviewApply() {
 	br.Data = resp
 }
 
-// @Title 获取报告详情
-// @Description 获取报告详情接口
-// @Param   ArticleIdMd5   query   int  true       "报告ID"
-// @Success 200 {object} models.ArticleDetailResp
-// @router /look/detail [get]
-func (this *ArticleControllerMobile) DetailMd5() {
-	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
-	}
-	uid := user.UserId
-
-	articleIdMd5 := this.GetString("ArticleIdMd5")
-	if articleIdMd5 == "" {
-		br.Msg = "参数错误"
-		br.ErrMsg = "参数错误"
-		return
-	}
-	resp := new(models.ArticleDetailResp)
-	detail, err := models.GetArticleDetailByIdMd5(articleIdMd5)
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取信息失败,Err:" + err.Error()
-		return
-	}
-	articleId := detail.ArticleId
-	detail.Body = html.UnescapeString(detail.Body)
-
-	hasPermission := 2
-	//`description:"1:有该行业权限,正常展示,2:无该行业权限,不存在权益客户下,3:无该品类权限,4:潜在客户,未提交过申请,5:潜在客户,已提交过申请"`
-	if user.CompanyId > 1 {
-		companyPermission, err := models.GetCompanyPermission(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取公司权限失败,Err:" + err.Error()
-			return
-		}
-		detail.Body = html.UnescapeString(detail.Body)
-		detail.Body = strings.Replace(detail.Body, "<p data-f-id=\"pbf\" style=\"text-align: center; font-size: 14px; margin-top: 30px; opacity: 0.65; font-family: sans-serif;\">Powered by <a href=\"https://www.froala.com/wysiwyg-editor?pb=1\" title=\"Froala Editor\">Froala Editor</a></p>", "", -1)
-		detail.Body = strings.Replace(detail.Body, "pre", "div", -1)
-		detail.Abstract, _ = services.GetReportContentTextSubNew(detail.Abstract)
-		if companyPermission == "" {
-			hasPermission = 2
-		} else {
-			var articlePermissionPermissionName string
-			if detail.CategoryId > 0 {
-				articlePermission, err := models.GetArticlePermission(detail.CategoryId)
-				if err != nil {
-					br.Msg = "获取信息失败"
-					br.ErrMsg = "获取报告权限失败,Err:" + err.Error() + articleIdMd5
-					return
-				}
-				if articlePermission == nil {
-					br.Msg = "获取信息失败"
-					br.ErrMsg = "报告权限不存在,Err:" + articleIdMd5
-					return
-				}
-				articlePermissionPermissionName = articlePermission.PermissionName
-			} else {
-				articlePermissionPermissionName = detail.CategoryName
-			}
-			var hasPersion bool
-			slice := strings.Split(articlePermissionPermissionName, ",")
-			for _, v := range slice {
-				if strings.Contains(companyPermission, v) {
-					hasPersion = 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, "研选") {
-				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 {
-				hasPermission = 1
-				record := new(models.CygxArticleHistoryRecordNewpv)
-				record.UserId = uid
-				record.ArticleId = articleId
-				record.CreateTime = time.Now()
-				record.ModifyTime = time.Now()
-				record.Mobile = user.Mobile
-				record.Email = user.Email
-				record.CompanyId = user.CompanyId
-				record.CompanyName = user.CompanyName
-				//新增浏览记录
-				go models.AddCygxArticleViewRecordNewpv(record)
-
-				//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)
-				}
-			}
-			if hasPermission == 1 {
-				key := "CYGX_ARTICLE_" + strconv.Itoa(articleId) + "_" + strconv.Itoa(uid)
-				if !utils.Rc.IsExist(key) {
-					//新增浏览记录
-					record := new(models.CygxArticleViewRecord)
-					record.UserId = uid
-					record.ArticleId = articleId
-					record.CreateTime = time.Now()
-					record.Mobile = user.Mobile
-					record.Email = user.Email
-					record.CompanyId = user.CompanyId
-					record.CompanyName = user.CompanyName
-					go models.AddCygxArticleViewRecord(record)
-					utils.Rc.Put(key, 1, 5*time.Second)
-					models.ModifyReportLastViewTime(uid)
-				}
-			}
-		}
-		//作者头像
-		if detail.DepartmentId > 0 {
-			departmentDetail, err := models.GetArticleDepartmentDateilById(detail.DepartmentId)
-			if err == nil {
-				detail.DepartmentImgUrl = departmentDetail.ImgUrl
-				detail.NickName = departmentDetail.NickName
-			}
-		}
-	}
-	detail.SellerAndMobile = "" //业务需要强制处理为空
-	resp.HasPermission = hasPermission
-	if hasPermission == 1 {
-		detail.Abstract, _ = services.GetReportContentTextSub(detail.Abstract)
-		resp.Detail = detail
-	} else {
-		if user.Mobile != "" {
-			resp.Mobile = user.Mobile
-		} else {
-			resp.Mobile = user.Email
-		}
-	}
-	br.Ret = 200
-	br.Success = true
-	br.Msg = "获取成功"
-	br.Data = resp
-}
-
 // @Title 上传文章阅读时间
 // @Description 上传文章阅读时间接口
 // @Param  request	body models.AddStopTimeRep true "type json string"

+ 43 - 34
controllers/user.go

@@ -254,13 +254,6 @@ func (this *UserController) Detail() {
 			return
 		}
 
-		//totalHistory, err := models.GetArticleUserHistoryNum(uid) // 足迹数量
-		//if err != nil {
-		//	br.Msg = "获取数据失败"
-		//	br.ErrMsg = "GetArticleUserHistoryNum,Err:" + err.Error()
-		//	return
-		//}
-
 		totalSchedule, err := models.GetArticleUserScheduleNum(uid) // 我的日程数量
 		if err != nil {
 			br.Msg = "获取数据失败"
@@ -278,14 +271,15 @@ func (this *UserController) Detail() {
 			if detail.Headimgurl == "" {
 				detail.Headimgurl = userRecord.Headimgurl
 			}
-			if detail.Headimgurl == "" {
-				userRecord, _ = models.GetUserRecordByUserId(uid, 1)
-				if userRecord != nil {
-					detail.NickName = userRecord.NickName
-					detail.Headimgurl = userRecord.Headimgurl
-				}
-			}
+			//if detail.Headimgurl == "" {
+			//	userRecord, _ = models.GetUserRecordByUserId(uid, 1)
+			//	if userRecord != nil {
+			//		detail.NickName = userRecord.NickName
+			//		detail.Headimgurl = userRecord.Headimgurl
+			//	}
+			//}
 		}
+
 		if user.CompanyId > 1 {
 			companyItem, err := models.GetCompanyDetailById(user.CompanyId)
 			if err != nil && err.Error() != utils.ErrNoRow() {
@@ -293,7 +287,7 @@ func (this *UserController) Detail() {
 				br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
 				return
 			}
-			if companyItem != nil && companyItem.CompanyId > 0 {
+			if companyItem != nil && companyItem.CompanyId > 1 {
 				detail.CompanyName = companyItem.CompanyName
 				detail.SellerName = companyItem.SellerName
 				detail.SellerMobile = companyItem.Mobile
@@ -315,30 +309,45 @@ func (this *UserController) Detail() {
 				}
 				detail.CompanyPointsNum = companyPointsNum
 
-				//查询研选的权限状态
-				var condition string
-				var pars []interface{}
-				condition += " AND company_id = ?  AND status  IN ('正式','试用')  AND chart_permission_id = ?   ORDER BY company_report_permission_id DESC LIMIT 1  "
-				pars = append(pars, user.CompanyId, utils.CHART_PERMISSION_ID_YANXUAN)
-				companyReportPermissionDetail, err := models.GetCompanyReportPermissionDetailByCondition(condition, pars)
+				userYanxunaDetail, err := models.GetCygxUserYanxuanPermissionDetailByUserId(user.UserId)
+
 				if err != nil && err.Error() != utils.ErrNoRow() {
 					br.Msg = "获取信息失败"
-					br.ErrMsg = "获取用户所在公司剩余的点失败,Err:" + err.Error()
-					return
-				}
-				companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
-				if err != nil {
-					br.Msg = "获取信息失败"
-					br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+					br.ErrMsg = "获取信息失败,GetCygxUserYanxuanPermissionDetailByUserId Err:" + err.Error()
 					return
 				}
-
-				if companyReportPermissionDetail == nil || companyProduct.IsSuspend == 1 {
-					hasPermission = 1
+				if userYanxunaDetail != nil {
+					detail.PermissionStatus = userYanxunaDetail.Status
+					detail.StartDate = userYanxunaDetail.StartDate
+					detail.EndDate = userYanxunaDetail.EndDate
+					detail.PermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
 				} else {
-					detail.PermissionStatus = companyReportPermissionDetail.Status
-					detail.StartDate = companyReportPermissionDetail.StartDate
-					detail.EndDate = companyReportPermissionDetail.EndDate
+
+					//查询研选的权限状态
+					var condition string
+					var pars []interface{}
+					condition += " AND company_id = ?  AND status  IN ('正式','试用')  AND chart_permission_id = ?   ORDER BY company_report_permission_id DESC LIMIT 1  "
+					pars = append(pars, user.CompanyId, utils.CHART_PERMISSION_ID_YANXUAN)
+					companyReportPermissionDetail, err := models.GetCompanyReportPermissionDetailByCondition(condition, pars)
+					if err != nil && err.Error() != utils.ErrNoRow() {
+						br.Msg = "获取信息失败"
+						br.ErrMsg = "获取用户所在公司剩余的点失败,Err:" + err.Error()
+						return
+					}
+					companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
+					if err != nil {
+						br.Msg = "获取信息失败"
+						br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+						return
+					}
+
+					if companyReportPermissionDetail == nil || companyProduct.IsSuspend == 1 {
+						hasPermission = 1
+					} else {
+						detail.PermissionStatus = companyReportPermissionDetail.Status
+						detail.StartDate = companyReportPermissionDetail.StartDate
+						detail.EndDate = companyReportPermissionDetail.EndDate
+					}
 				}
 			} else {
 				hasPermission = 1

+ 1 - 1
models/company.go

@@ -22,7 +22,7 @@ func GetCompanyDetailById(companyId int) (item *CompanyDetail, err error) {
 
 	sql := ` SELECT a.company_id,a.company_name,b.status,b.seller_id,b.seller_name,c.mobile,p.product_id
             FROM company AS a
-			INNER JOIN company_product AS b ON a.company_id=b.company_id AND is_suspend = 1
+			INNER JOIN company_product AS b ON a.company_id=b.company_id 
 			INNER JOIN company_report_permission AS p ON p.company_id = a.company_id
 			INNER JOIN chart_permission AS cp ON cp.chart_permission_id=p.chart_permission_id
 			LEFT JOIN admin AS c ON b.seller_id=c.admin_id

+ 58 - 0
models/user_yanxuan_permission.go

@@ -0,0 +1,58 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxUserYanxuanPermission struct {
+	UserYanxuanPermissionId int64     `orm:"column(user_yanxuan_permission_id);pk"`
+	UserId                  int       `description:"用户ID"`
+	CompanyId               int       `description:"权限开始日期"`
+	StartDate               string    `description:"权限开始日期"`
+	EndDate                 string    `description:"权限结束日期"`
+	Status                  string    `description:"'试用','未开通'"`
+	Mobile                  string    `description:"手机号"`
+	Email                   string    `description:"邮箱"`
+	RealName                string    `description:"用户实际名称"`
+	CompanyName             string    `description:"公司名称"`
+	AdminId                 int       `description:"后台添加人员ID"`
+	AdminRealName           string    `description:"后台添加人员姓名"`
+	CreatedTime             time.Time `description:"创建时间"`
+	LastUpdatedTime         time.Time `description:"修改时间根据时间戳自动更新"`
+	ModifyTime              time.Time `description:"修改时间"`
+}
+
+type CygxUserYanxuanPermissionLog struct {
+	UserYanxuanPermissionId int64     `orm:"column(user_yanxuan_permission_log_id);pk"`
+	UserId                  int       `description:"用户ID"`
+	CompanyId               int       `description:"权限开始日期"`
+	StartDate               string    `description:"权限开始日期"`
+	EndDate                 string    `description:"权限结束日期"`
+	Status                  string    `description:"'试用','未开通'"`
+	Mobile                  string    `description:"手机号"`
+	Email                   string    `description:"邮箱"`
+	RealName                string    `description:"用户实际名称"`
+	CompanyName             string    `description:"公司名称"`
+	AdminId                 int       `description:"后台添加人员ID"`
+	AdminRealName           string    `description:"后台添加人员姓名"`
+	CreatedTime             time.Time `description:"创建时间"`
+	LastUpdatedTime         time.Time `description:"修改时间根据时间戳自动更新"`
+	ModifyTime              time.Time `description:"修改时间"`
+}
+
+// 根据用户ID获取是否开通过研选权限
+func GetCygxUserYanxuanPermissionCountByUserId(userId int) (count int, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT COUNT(1) FROM cygx_user_yanxuan_permission WHERE  status = '试用'  AND user_id = ?  `
+	err = o.Raw(sql, userId).QueryRow(&count)
+	return
+}
+
+// 根据用户ID获取研选开通详情
+func GetCygxUserYanxuanPermissionDetailByUserId(userId int) (item *CygxUserYanxuanPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_user_yanxuan_permission  WHERE status = '试用' AND user_id = ? `
+	err = o.Raw(sql, userId).QueryRow(&item)
+	return
+}

+ 0 - 9
routers/commentsRouter.go

@@ -214,15 +214,6 @@ func init() {
             Filters: nil,
             Params: nil})
 
-    beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:ArticleControllerMobile"] = append(beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:ArticleControllerMobile"],
-        beego.ControllerComments{
-            Method: "DetailMd5",
-            Router: `/look/detail`,
-            AllowHTTPMethods: []string{"get"},
-            MethodParams: param.Make(),
-            Filters: nil,
-            Params: nil})
-
     beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:BannerController"] = append(beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:BannerController"],
         beego.ControllerComments{
             Method: "ListHome",

+ 26 - 0
services/user_yanxuan_permission.go

@@ -0,0 +1,26 @@
+package services
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_mfyx/models"
+	"hongze/hongze_mfyx/utils"
+)
+
+// 判断用户是否开通了个人研选权限
+func GetMfyxUserPermissionTotal(userId int) (toatal int) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("判断用户是否开通了个人研选权限失败 GetMfyxUserPermissionTotal userId", userId, ",err:", err.Error()), 2)
+		}
+	}()
+	//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
+	toatal, e := models.GetCygxUserYanxuanPermissionCountByUserId(userId)
+	if e != nil {
+		err = errors.New("GetCygxUserYanxuanPermissionCountByUserId, Err: " + e.Error())
+		return
+	}
+	return
+}