|
@@ -402,6 +402,96 @@ func GetUserType(companyId int) (userType int, permissionStrnew string, err erro
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+func GetUserTypeZhengShi(companyId int) (userType int, permissionStrnew, permissionStrZhengShinew string, err error) {
|
|
|
+ var permissionStr, permissionZhengShiStr string
|
|
|
+ if companyId <= 1 {
|
|
|
+ userType = 0
|
|
|
+ } else {
|
|
|
+ total, errs := models.GetCountCompanyDetailByIdGroup(companyId)
|
|
|
+ if errs != nil {
|
|
|
+ err = errs
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if total == 0 {
|
|
|
+ userType = 0
|
|
|
+ } else {
|
|
|
+ companyDetail, errs := models.GetCompanyDetailByIdGroup(companyId)
|
|
|
+ if errs != nil {
|
|
|
+ err = errs
|
|
|
+ return
|
|
|
+ }
|
|
|
+ permissionStr, errs = models.GetCompanyPermission(companyId)
|
|
|
+ if errs != nil {
|
|
|
+ err = errs
|
|
|
+ return
|
|
|
+ }
|
|
|
+ permissionStrnew = permissionStr
|
|
|
+
|
|
|
+ companyUserTypeDetail, errs := models.GetCygxCompanyUserType(companyId)
|
|
|
+ if errs != nil && errs.Error() != utils.ErrNoRow() {
|
|
|
+ err = errs
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if companyUserTypeDetail != nil {
|
|
|
+ if companyUserTypeDetail.CustomerTypeId != 0 {
|
|
|
+ userType = companyUserTypeDetail.CustomerTypeId
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ permissionZhengShiStr, errs = models.GetCompanyPermissionByUserZhengShi(companyId)
|
|
|
+ if errs != nil {
|
|
|
+ err = errs
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if companyDetail.Status == "永续" {
|
|
|
+ userType = 1
|
|
|
+ } else if companyDetail.Status == "试用" {
|
|
|
+ userType = 5
|
|
|
+ } else if companyDetail.Status == "冻结" {
|
|
|
+ userType = 6
|
|
|
+ } else if companyDetail.Status == "流失" {
|
|
|
+ userType = 7
|
|
|
+ }
|
|
|
+
|
|
|
+ if userType == 0 && companyDetail.Status == "正式" {
|
|
|
+ var permissionZhegnshiNum int
|
|
|
+ if strings.Count(permissionZhengShiStr, "医药") == 2 {
|
|
|
+ permissionZhegnshiNum++
|
|
|
+ }
|
|
|
+ if strings.Count(permissionZhengShiStr, "消费") == 2 {
|
|
|
+ permissionZhegnshiNum++
|
|
|
+ }
|
|
|
+ if strings.Count(permissionZhengShiStr, "科技") == 2 {
|
|
|
+ permissionZhegnshiNum++
|
|
|
+ }
|
|
|
+ if strings.Count(permissionZhengShiStr, "智造") == 2 {
|
|
|
+ permissionZhegnshiNum++
|
|
|
+ }
|
|
|
+ if strings.Count(permissionZhengShiStr, "策略") == 1 {
|
|
|
+ permissionZhegnshiNum++
|
|
|
+ }
|
|
|
+ if strings.Count(permissionZhengShiStr, "路演服务") == 1 {
|
|
|
+ permissionZhegnshiNum++
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if permissionZhegnshiNum >= 4 {
|
|
|
+ userType = 10
|
|
|
+ } else {
|
|
|
+ userType = 3
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ permissionStrnew = permissionStr
|
|
|
+ permissionStrZhengShinew = permissionZhengShiStr
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.ActivityDetail) (havePower bool, err error) {
|
|
|
var companyDetailStatus string
|
|
@@ -411,7 +501,7 @@ func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.Ac
|
|
|
havePower = true
|
|
|
return
|
|
|
}
|
|
|
- userType, permissionStr, e := GetUserType(user.CompanyId)
|
|
|
+ userType, permissionStr, permissionStrZhengShi, e := GetUserTypeZhengShi(user.CompanyId)
|
|
|
if e != nil {
|
|
|
err = errors.New("GetCompanyPermissionUpgrade, Err: " + e.Error())
|
|
|
return
|
|
@@ -477,9 +567,24 @@ func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.Ac
|
|
|
} else if (activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 3 || activityInfo.ActivityTypeId == 4 || activityInfo.ActivityTypeId == 5) && strings.Contains(permissionStr, "专家") {
|
|
|
havePower = true
|
|
|
}
|
|
|
- if (strings.Contains(activityInfo.ChartPermissionName, "研选") || activityInfo.ChartPermissionName == "策略") && strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
|
|
|
- havePower = true
|
|
|
- return
|
|
|
+
|
|
|
+ fmt.Println(permissionStrZhengShi)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if strings.Contains(activityInfo.ChartPermissionName, "研选") || activityInfo.ChartPermissionName == "策略" {
|
|
|
+ if strings.Contains(activityInfo.CustomerTypeIds, "5") {
|
|
|
+ if strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
|
|
|
+ havePower = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if strings.Contains(permissionStrZhengShi, activityInfo.ChartPermissionName) {
|
|
|
+ havePower = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
if activityInfo.ActivityTypeId == 2 || activityInfo.ActivityTypeId == 6 || activityInfo.ActivityTypeId == 7 {
|
|
|
if strings.Contains(permissionStr, activityInfo.ChartPermissionName+"(主观)") {
|
|
@@ -663,7 +768,7 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- userType, permissionStr, err := GetUserType(user.CompanyId)
|
|
|
+ userType, permissionStr, permissionStrZhengShi, err := GetUserTypeZhengShi(user.CompanyId)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -689,6 +794,23 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
|
|
|
permissionNameStr = strings.Replace(permissionNameStr, "(主观)", "", -1)
|
|
|
permissionNameStr = strings.Replace(permissionNameStr, "(客观)", "", -1)
|
|
|
permissionNameStr = strings.TrimRight(permissionNameStr, ",")
|
|
|
+
|
|
|
+ slicePerZhengShi := strings.Split(permissionStrZhengShi, ",")
|
|
|
+
|
|
|
+ var permissionNameStrZhengShi string
|
|
|
+ for _, v := range slicePerZhengShi {
|
|
|
+ if userType == 1 {
|
|
|
+
|
|
|
+ if !strings.Contains(v, utils.CHART_PERMISSION_NAME_YANXUAN) {
|
|
|
+ permissionNameStrZhengShi += "'" + v + "',"
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ permissionNameStrZhengShi += "'" + v + "',"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ permissionNameStrZhengShi = strings.Replace(permissionNameStrZhengShi, "(主观)", "", -1)
|
|
|
+ permissionNameStrZhengShi = strings.Replace(permissionNameStrZhengShi, "(客观)", "", -1)
|
|
|
+ permissionNameStrZhengShi = strings.TrimRight(permissionNameStrZhengShi, ",")
|
|
|
mapUserType, e := GetActivityCcustomerTypeList()
|
|
|
if e != nil {
|
|
|
err = e
|
|
@@ -883,8 +1005,9 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
|
|
|
}
|
|
|
|
|
|
if adminIds != "" {
|
|
|
+
|
|
|
if userType == 3 {
|
|
|
- conditionAdmin += ` AND art.chart_permission_name IN (` + permissionNameStr + `) `
|
|
|
+ conditionAdmin += ` AND art.chart_permission_name IN (` + permissionNameStrZhengShi + `) `
|
|
|
}
|
|
|
conditionOr += ` OR ( art.customer_type_ids LIKE '%` + userTypeStr + `%' ` + ` AND art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
|
|
|
if companyProduct != nil {
|
|
@@ -921,7 +1044,7 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
|
|
|
}
|
|
|
}
|
|
|
if userType == 3 {
|
|
|
- condition += ` AND art.chart_permission_name IN (` + permissionNameStr + `) `
|
|
|
+ condition += ` AND art.chart_permission_name IN (` + permissionNameStrZhengShi + `) `
|
|
|
}
|
|
|
conditionActivity = condition + permissionSqlStr + sqlExport + conditionOr
|
|
|
return
|