Browse Source

专项产业调研最新页面可见 权限bug处理

xingzai 2 years ago
parent
commit
987a65658c
2 changed files with 55 additions and 65 deletions
  1. 4 2
      controllers/activity_special.go
  2. 51 63
      services/activity_special.go

+ 4 - 2
controllers/activity_special.go

@@ -10,7 +10,7 @@ import (
 	"time"
 )
 
-//专项调研活动
+// 专项调研活动
 type ActivitySpecialController struct {
 	BaseAuthController
 }
@@ -47,7 +47,9 @@ func (this *ActivitySpecialController) SpecialList() {
 	if currentIndex <= 0 {
 		currentIndex = 1
 	}
-
+	if activeState == "1" {
+		activeState = ""
+	}
 	conditionActivity := services.ActivityLabelSpecialSql(chartPermissionIds, whichDay, activeState)
 
 	list, total, errList := services.GetActivitySpecialList(user, currentIndex, pageSize, "", conditionActivity, activeState)

+ 51 - 63
services/activity_special.go

@@ -177,6 +177,10 @@ func GetActivityLabelSpecialList(user *models.WxUserItem, conditionActivitySpeci
 	conditionNoTripSql := condition
 	//condition += conditionUser
 	conditionShengji, conditionZhengshi, e := ActivityLabelSpecialUserSql(user)
+	if e != nil {
+		err = errors.New("ActivityLabelSpecialUserSql, Err: " + e.Error())
+		return
+	}
 	conditionTrip += ` AND art.days > 0   AND art.activity_time_end  > '` + time.Now().Format(utils.FormatDateTime) + ` '`
 
 	var conditionZhengshiTrip string
@@ -322,7 +326,6 @@ func GetActivitySpecialPrepareList(user *models.WxUserItem, startSize, pageSize
 	//如果是永续的就按照普通的权限逻辑来查,如果不是就按照升级的逻辑来查
 	var condition string
 	var conditionUser string
-	var userType int
 	if companyDetail.Status == "永续" {
 		conditionUser, e = HandleActivityLabelSpecialPermission(user)
 		if e != nil {
@@ -330,7 +333,7 @@ func GetActivitySpecialPrepareList(user *models.WxUserItem, startSize, pageSize
 			return
 		}
 	} else {
-		conditionUser, userType, e = HandleActivityLabelSpecialTripPermission(user)
+		conditionUser, _, e = HandleActivityLabelSpecialTripPermission(user)
 		if e != nil {
 			err = errors.New("HandleActivityLabelSpecialPermission, Err: " + e.Error())
 			return
@@ -342,59 +345,34 @@ func GetActivitySpecialPrepareList(user *models.WxUserItem, startSize, pageSize
 		keywords = "%" + keywords + "%"
 		condition += ` AND art.research_theme LIKE  ` + keywords
 	}
-	// 8: 行业升级套餐客户:该活动对应行业为升级权限的客户
-	permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(user.CompanyId)
-	if errs != nil {
-		err = errs
+	conditionShengji, conditionZhengshi, e := ActivityLabelSpecialUserSql(user)
+	if e != nil {
+		err = errors.New("ActivityLabelSpecialUserSql, Err: " + e.Error())
 		return
 	}
-	var conditionOr string
-	if permissionShengji != "" {
-		slicePerShengji := strings.Split(permissionShengji, ",")
-		permissionShengji = ""
-		for _, v := range slicePerShengji {
-			permissionShengji += "'" + v + "',"
-		}
-		permissionShengji = strings.TrimRight(permissionShengji, ",")
-		conditionOr += ` OR (  art.customer_type_ids LIKE '%8%' AND art.chart_permission_name  IN (` + permissionShengji + `)` + condition + `) `
+	conditionNoTrip := condition
+	var conditionShengjiNoTrip string
+	var conditionZhengshiNoTrip string
+	if conditionShengji != "" {
+		conditionShengjiNoTrip = ` OR ( ` + conditionShengji + conditionNoTrip + ` )`
 	}
-	//9:其他行业正式客户:前述所有正式客户以外的正式客户 查询处理
-	permissionZhengShiStr, errs := models.GetCompanyPermissionByUserZhengShi(user.CompanyId)
-	if errs != nil {
-		err = errs
-		return
+	if conditionZhengshi != "" {
+		conditionZhengshiNoTrip = ` OR ( ` + conditionZhengshi + conditionNoTrip + ` )`
 	}
-	if permissionZhengShiStr != "" && userType == 9 {
-		slicePerZhengshi := strings.Split(permissionZhengShiStr, ",")
-		permissionZhengShiStr = ""
-		for _, v := range slicePerZhengshi {
-			if userType == 1 {
-				//研选权限处理(永续客户无法查看研选)
-				if !strings.Contains(v, utils.CHART_PERMISSION_NAME_YANXUAN) {
-					permissionZhengShiStr += "'" + v + "',"
-				}
-			} else {
-				permissionZhengShiStr += "'" + v + "',"
-			}
-		}
-		permissionZhengShiStr = strings.Replace(permissionZhengShiStr, "(主观)", "", -1)
-		permissionZhengShiStr = strings.Replace(permissionZhengShiStr, "(客观)", "", -1)
-		permissionZhengShiStr = strings.TrimRight(permissionZhengShiStr, ",")
-		conditionOr += ` OR (  art.customer_type_ids LIKE '%9%'	   AND art.chart_permission_name  NOT  IN (` + permissionZhengShiStr + `)` + condition + `) `
+	if conditionShengji != "" {
+		conditionNoTrip += conditionShengjiNoTrip
 	}
-	condition += conditionUser + conditionOr
-	totalPrepare, e = models.GetActivitySpecialCount(condition, pars)
-	if e != nil {
-		err = errors.New("GetActivitySpecialCount, Err: " + e.Error())
-		return
+	if conditionZhengshi != "" {
+		conditionNoTrip += conditionZhengshiNoTrip
 	}
-	totalPrepare, e = models.GetActivitySpecialCount(condition, pars)
+	conditionNoTripSql := conditionUser + conditionNoTrip + ` ORDER BY art.last_updated_time DESC`
+	totalPrepare, e = models.GetActivitySpecialCount(conditionNoTripSql, pars)
 	if e != nil {
 		err = errors.New("GetActivitySpecialCount, Err: " + e.Error())
 		return
 	}
 	condition += `  ORDER BY art.last_updated_time DESC `
-	list, e = models.GetCygxActivitySpecialDetailList(condition, pars, user.UserId, startSize, pageSize)
+	list, e = models.GetCygxActivitySpecialDetailList(conditionNoTripSql, pars, user.UserId, startSize, pageSize)
 	if e != nil {
 		err = errors.New("GetCygxActivitySpecialDetailList, Err: " + e.Error())
 		return
@@ -420,7 +398,7 @@ func GetActivityLabelSpecialConfirmList(user *models.WxUserItem, startSize, page
 	//如果是永续的就按照普通的权限逻辑来查,如果不是就按照升级的逻辑来查
 	var condition string
 	var conditionUser string
-	var userType int
+	//var userType int
 	if companyDetail.Status == "永续" {
 		conditionUser, e = HandleActivityLabelSpecialPermission(user)
 		if e != nil {
@@ -428,7 +406,7 @@ func GetActivityLabelSpecialConfirmList(user *models.WxUserItem, startSize, page
 			return
 		}
 	} else {
-		conditionUser, userType, e = HandleActivityLabelSpecialTripPermission(user)
+		conditionUser, _, e = HandleActivityLabelSpecialTripPermission(user)
 		if e != nil {
 			err = errors.New("HandleActivityLabelSpecialPermission, Err: " + e.Error())
 			return
@@ -453,31 +431,41 @@ func GetActivityLabelSpecialConfirmList(user *models.WxUserItem, startSize, page
 		keywords = "%" + keywords + "%"
 		condition += ` AND art.research_theme LIKE  ` + keywords
 	}
-	// 8: 行业升级套餐客户:该活动对应行业为升级权限的客户
-	permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(user.CompanyId)
-	if errs != nil {
-		err = errs
-		return
+	//condition += ` AND art.publish_status = 1  AND art.label != ''  AND art.is_offline = 0 ` + conditionActivitySpecial
+	conditionTrip := condition
+	conditionTripSql := condition
+
+	//condition += conditionUser
+	conditionShengji, conditionZhengshi, e := ActivityLabelSpecialUserSql(user)
+	conditionTrip += ` AND art.days > 0   AND art.activity_time_end  > '` + time.Now().Format(utils.FormatDateTime) + ` '`
+
+	var conditionZhengshiTrip string
+	var conditionShengjiTrip string
+
+	//处理专项调研确认行程的其它正式客户权限查询
+	if conditionZhengshi != "" {
+		conditionZhengshiTrip = ` OR ( ` + conditionZhengshi + conditionTrip + ` )`
 	}
-	var conditionOr string
-	if permissionShengji != "" && userType != 2 {
-		slicePerShengji := strings.Split(permissionShengji, ",")
-		permissionShengji = ""
-		for _, v := range slicePerShengji {
-			permissionShengji += "'" + v + "',"
-		}
-		permissionShengji = strings.TrimRight(permissionShengji, ",")
-		conditionOr += ` OR (  art.customer_type_ids LIKE '%8%' AND art.chart_permission_name  IN (` + permissionShengji + `)` + condition + `) `
+	//处理专项调研确认行程的升级权限查询
+	if conditionShengji != "" {
+		conditionShengjiTrip = ` OR ( ` + conditionShengji + conditionTrip + ` )`
+	}
+	if conditionZhengshi != "" {
+		conditionTrip += conditionZhengshiTrip
 	}
+	if conditionShengjiTrip != "" {
+		conditionTrip += conditionShengjiTrip
+	}
+	conditionTripSql += conditionUser + conditionTrip + `  ORDER BY art.activity_time ASC `
 
-	condition += conditionUser + conditionOr
-	totalConfirm, e = models.GetActivitySpecialCount(condition, pars)
+	//condition += conditionUser + conditionOr
+	totalConfirm, e = models.GetActivitySpecialCount(conditionTripSql, pars)
 	if e != nil {
 		err = errors.New("GetActivitySpecialCount, Err: " + e.Error())
 		return
 	}
 	condition += `  ORDER BY art.activity_time ASC `
-	list, e = models.GetCygxActivitySpecialDetailList(condition, pars, user.UserId, startSize, pageSize)
+	list, e = models.GetCygxActivitySpecialDetailList(conditionTripSql, pars, user.UserId, startSize, pageSize)
 	if e != nil {
 		err = errors.New("GetCygxActivitySpecialDetailList, Err: " + e.Error())
 		return