Browse Source

no message

xingzai 1 year ago
parent
commit
759255d54b
5 changed files with 67 additions and 11 deletions
  1. 5 0
      controllers/article.go
  2. 29 7
      controllers/user.go
  3. 18 0
      services/activity.go
  4. 8 0
      utils/common.go
  5. 7 4
      utils/constants.go

+ 5 - 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 == "" {

+ 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 {

+ 18 - 0
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 // 添加一个宏观权限

+ 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
+}

+ 7 - 4
utils/constants.go

@@ -77,10 +77,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 = "医药"