Browse Source

Merge branch 'master' into yx_1.1

zwxi 11 months ago
parent
commit
a5044b3df8

+ 2 - 1
.gitignore

@@ -8,4 +8,5 @@
 /riot-index
 /hongze_mfyx
 /static
-/README.md
+/README.md
+/utils/cert/

+ 15 - 0
controllers/article.go

@@ -215,6 +215,11 @@ func (this *ArticleController) Detail() {
 		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 == "" {
@@ -755,6 +760,16 @@ func (this *ArticleController) AddStopTime() {
 			}
 			var hasPersion bool
 			slice := strings.Split(articlePermissionPermissionName, ",")
+			//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
+			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
+			}
 			for _, v := range slice {
 				if strings.Contains(companyPermission, v) {
 					hasPersion = true

+ 2 - 0
controllers/base_auth.go

@@ -52,6 +52,7 @@ func (this *BaseAuthController) Prepare() {
 			session, err := models.GetSessionByToken(authorization)
 			if err != nil {
 				if err.Error() == utils.ErrNoRow() {
+					go utils.SendAlarmMsg(fmt.Sprint("信息已变更,请重新登陆!authorization:", authorization, "Url:", uri), 2)
 					this.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "Token 信息已变更:Token: " + authorization}, false, false)
 					this.StopRun()
 					return
@@ -69,6 +70,7 @@ func (this *BaseAuthController) Prepare() {
 			wxUser, err := services.GetWxUserItemByOpenId(session.OpenId)
 			if err != nil && err != services.ERR_USER_NOT_BIND {
 				if err.Error() == utils.ErrNoRow() {
+					go utils.SendAlarmMsg(fmt.Sprint("信息已变更,请重新登陆!authorization:", authorization, "Url:", uri), 2)
 					this.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "获取信息失败 " + strconv.Itoa(session.UserId)}, false, false)
 					this.StopRun()
 					return

+ 2 - 0
controllers/base_auth_mobile.go

@@ -49,6 +49,7 @@ func (this *BaseAuthMobileController) Prepare() {
 				session, err := models.GetSessionByToken(authorization)
 				if err != nil {
 					if err.Error() == utils.ErrNoRow() {
+						go utils.SendAlarmMsg(fmt.Sprint("信息已变更,请重新登陆!authorization:", authorization, "Url:", uri), 2)
 						this.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "Token 信息已变更:Token: " + authorization}, false, false)
 						this.StopRun()
 						return
@@ -67,6 +68,7 @@ func (this *BaseAuthMobileController) Prepare() {
 				//wxUser, err := models.GetWxUserAouthByMobile(session.Mobile)
 				if err != nil && err != services.ERR_USER_NOT_BIND {
 					if err.Error() == utils.ErrNoRow() {
+						go utils.SendAlarmMsg(fmt.Sprint("信息已变更,请重新登陆!authorization:", authorization, "Url:", uri), 2)
 						this.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "获取信息失败 " + strconv.Itoa(session.UserId)}, false, false)
 						this.StopRun()
 						return

+ 1 - 1
controllers/report.go

@@ -39,7 +39,7 @@ func (this *ReportController) IsShow() {
 	var resp models.IsShow
 	var condition string
 	var pars []interface{}
-	condition += ` AND  a.user_id = ?    `
+	condition += ` AND  a.user_id = ?   AND a.status  = 1  `
 	pars = append(pars, user.UserId)
 	total, err := models.GetCygxYanxuanSpecialAuthorCount(condition, pars)
 	if err != nil {

+ 29 - 7
controllers/user.go

@@ -326,14 +326,21 @@ func (this *UserController) Detail() {
 					//查询研选的权限状态
 					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)
+					condition += " AND company_id = ?  AND status  IN ('正式','试用')  AND chart_permission_id  IN  (31,52)    "
+					pars = append(pars, user.CompanyId)
+					//companyReportPermissionDetail, err := models.GetCompanyReportPermissionDetailByCondition(condition, pars)
+					//if err != nil && err.Error() != utils.ErrNoRow() {
+					//	br.Msg = "获取信息失败"
+					//	br.ErrMsg = "获取用户所在公司剩余的点失败,Err:" + err.Error()
+					//	return
+					//}
+					companyReportPermissionList, err := models.GetCompanyReportPermissionList(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 = "获取信息失败"
@@ -341,12 +348,27 @@ func (this *UserController) Detail() {
 						return
 					}
 
-					if companyReportPermissionDetail == nil || companyProduct.IsSuspend == 1 {
+					if len(companyReportPermissionList) == 0 || companyProduct.IsSuspend == 1 {
 						hasPermission = 1
 					} else {
-						detail.PermissionStatus = companyReportPermissionDetail.Status
-						detail.StartDate = companyReportPermissionDetail.StartDate
-						detail.EndDate = companyReportPermissionDetail.EndDate
+						//有研选订阅或研选扣点包任意一项试用权限,即为试用客户,期限显示两项合并之后的最长时间
+						minDate := time.Now()
+						maxDate := time.Now()
+						var permissionStatus string
+						for _, v := range companyReportPermissionList {
+							if utils.StrDateToDate(v.StartDate).Before(minDate) {
+								minDate = utils.StrDateToDate(v.StartDate)
+							}
+							if utils.StrDateToDate(v.EndDate).After(maxDate) {
+								maxDate = utils.StrDateToDate(v.EndDate)
+							}
+							if permissionStatus != "正式" {
+								permissionStatus = v.Status
+							}
+						}
+						detail.PermissionStatus = permissionStatus
+						detail.StartDate = minDate.Format(utils.FormatDate)
+						detail.EndDate = maxDate.Format(utils.FormatDate)
 					}
 				}
 			} else {

+ 1 - 1
controllers/wechat.go

@@ -72,7 +72,7 @@ func (this *WechatCommonController) WechatLogin() {
 		loginLog.OpenId = wxInfo.OpenID
 		loginLog.UnionId = wxInfo.UnionID
 		loginLog.CreateTime = time.Now()
-		loginLog.Handle = "wechat_login_cygx"
+		loginLog.Handle = "wechat_login_mfyx"
 		loginLog.Remark = token
 		go models.AddWxUserLog(loginLog)
 	}

+ 23 - 5
services/activity.go

@@ -214,14 +214,32 @@ func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.Ac
 		return
 	}
 	//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
+	//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
 	mfyxUserPermissionTotal := GetMfyxUserPermissionTotal(userId)
 	if mfyxUserPermissionTotal == 1 {
 		permissionStr += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
 	}
+
+	//如果正式权限有开通 研选扣点包 ,那么就拼接一个 研选订阅的权限
+	if strings.Contains(permissionStrZhengShi, utils.YAN_XUAN_KOU_DIAN_BAO_NAME) {
+		permissionStr += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+		permissionStrZhengShi += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+	}
+
+	//如果测试权限有开通 研选扣点包 ,那么就拼接一个 研选订阅的权限
+	if strings.Contains(permissionStr, utils.YAN_XUAN_KOU_DIAN_BAO_NAME) {
+		permissionStr += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+	}
+
 	//如果一个权限都没有就返回无权限
 	if permissionStr == "" {
 		return
 	}
+	//永续客户,无法查看研选权限,但是下面的联系人,单独开通研选后,也可以查看研选内容
+	if userType == 1 && strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) && mfyxUserPermissionTotal == 0 {
+		havePower = false
+		return
+	}
 	permissionStr += "," + utils.HONG_GUAN_NAME // 添加一个宏观权限
 	if permissionStrZhengShi == "" {
 		permissionStrZhengShi = utils.HONG_GUAN_NAME // 添加一个宏观权限
@@ -598,8 +616,8 @@ func ActivityConditioninitSql(user *models.WxUserItem, condition string, isPower
 	sqlExport += `) `
 
 	if isPower == 1 {
-		permissionSqlStr = `  AND art.chart_permission_name  IN (` + permissionNameStr + `)`
-		condition += permissionSqlStr
+		//permissionSqlStr = `  AND art.chart_permission_name  IN (` + permissionNameStr + `)`
+		//condition += permissionSqlStr
 	}
 
 	var conditionOr string
@@ -635,9 +653,9 @@ func ActivityConditioninitSql(user *models.WxUserItem, condition string, isPower
 		}
 	}
 
-	if userType == 3 {
-		condition += `  AND art.chart_permission_name  IN (` + permissionNameStrZhengShi + `) `
-	}
+	//if userType == 3 {
+	//	condition += `  AND art.chart_permission_name  IN (` + permissionNameStrZhengShi + `) `
+	//}
 	condition += `    AND  art.is_limit_people = 1  `
 	conditionActivity = condition + permissionSqlStr + sqlExport + conditionOr
 	return

+ 12 - 1
services/tag.go

@@ -129,7 +129,18 @@ func GetConditionInitByTagIds(user *models.WxUserItem, labelKeyword string) (yan
 			yanxuanArticleIds = append(yanxuanArticleIds, v.ArticleId)
 		}
 	}
-	yanxuanActivityIdsResp = yanxuanActivityIds
+
+	yanxuanActivityIdsPerssion := GetYanxuanActivityIds(user) // 获取所有有权限的研选活动ID
+	mapyanxuanActivityIds := make(map[int]bool)
+	for _, v := range yanxuanActivityIdsPerssion {
+		mapyanxuanActivityIds[v] = true
+	}
+	for _, v := range yanxuanActivityIds {
+		if mapyanxuanActivityIds[v] {
+			yanxuanActivityIdsResp = append(yanxuanActivityIdsResp, v)
+		}
+	}
+
 	yanxuanArticleIdsResp = yanxuanArticleIds
 	return
 }

+ 8 - 0
utils/common.go

@@ -952,3 +952,11 @@ func InterceptHtmlLength(body string, length int) (newbody string) {
 	newbody = bodyText[0:length]
 	return
 }
+
+// 字符串转换为time类型
+func StrDateToDate(strTime string) time.Time {
+	timeLayout := "2006-01-02"           //转化所需模板
+	loc, _ := time.LoadLocation("Local") //重要:获取时区
+	resultTime, _ := time.ParseInLocation(timeLayout, strTime, loc)
+	return resultTime
+}

+ 8 - 5
utils/constants.go

@@ -79,10 +79,13 @@ const (
 
 const (
 	CHART_PERMISSION_NAME_YANXUAN    string = "研选"
-	CHART_PERMISSION_NAME_MF_YANXUAN string = "买方研选"
-	CHART_PERMISSION_ID_YANXUAN      int    = 31
-	C_CLASS_ACTIVITY_TYPE_ID         int    = 7 //C类电话会会议ID
-	ANALYST_TELL_ACTIVITY_TYPE_ID    int    = 2 //分析师电话会ID
+	MAI_FANG_YAN_XUAN_NAME           string = "买方研选"
+	CHART_PERMISSION_NAME_MF_YANXUAN string = "研选订阅"
+	CHART_PERMISSION_ID_YANXUAN      int    = 31      //权限研选订阅id
+	YAN_XUAN_KOU_DIAN_BAO_ID         int    = 52      //研选扣点包ID
+	YAN_XUAN_KOU_DIAN_BAO_NAME       string = "研选扣点包" //研选扣点包ID
+	C_CLASS_ACTIVITY_TYPE_ID         int    = 7       //C类电话会会议ID
+	ANALYST_TELL_ACTIVITY_TYPE_ID    int    = 2       //分析师电话会ID
 	CE_LUE_NAME                      string = "策略"
 	CE_LUE_ID                        int    = 23
 	YI_YAO_NAME                      string = "医药"
@@ -300,7 +303,7 @@ const (
 	//LABEL_ICO_6 string = "https://hzstatic.hzinsights.com/mfyx/config/Frame469.png" // 买方沙龙
 
 	LABEL_ICO_1 string = "https://hzstatic.hzinsights.com/mfyx/config/maifangjiaoliu.png"           // 买方交流
-	LABEL_ICO_2 string = "https://hzstatic.hzinsights.com/mfyx/config/Frame465.png"                 // 专家访谈
+	LABEL_ICO_2 string = "https://hzstatic.hzinsights.com/mfyx/config/zhuanjiadiaoyan.png"          // 专家访谈
 	LABEL_ICO_3 string = "https://hzstatic.hzinsights.com/mfyx/config/shangshigongsixiaofanwei.png" // 上市公司小范围
 	LABEL_ICO_4 string = "https://hzstatic.hzinsights.com/mfyx/config/zhuanlan.png"                 // 专栏
 	LABEL_ICO_5 string = "https://hzstatic.hzinsights.com/mfyx/config/jiyao.png"                    // 纪要