|
@@ -3,8 +3,10 @@ package controllers
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
"fmt"
|
|
|
+ "github.com/medivhzhan/weapp/v2"
|
|
|
"github.com/tealeg/xlsx"
|
|
|
"hongze/hongze_cygx/models"
|
|
|
+ "hongze/hongze_cygx/services"
|
|
|
"hongze/hongze_cygx/utils"
|
|
|
"os"
|
|
|
"path/filepath"
|
|
@@ -86,10 +88,10 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
activityTypeIds := this.GetString("ActivityTypeIds")
|
|
|
whichDay := this.GetString("WhichDay")
|
|
|
isShowJurisdiction, _ := this.GetInt("IsShowJurisdiction")
|
|
|
-
|
|
|
keyWord := this.GetString("KeyWord")
|
|
|
activeState := this.GetString("ActiveState")
|
|
|
label := this.GetString("Label")
|
|
|
+
|
|
|
//入参为 undefined 时的处理
|
|
|
if chartPermissionIds == "undefined" {
|
|
|
chartPermissionIds = ""
|
|
@@ -106,7 +108,7 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
if label == "undefined" {
|
|
|
label = ""
|
|
|
}
|
|
|
-
|
|
|
+ //更新用户的搜索信息
|
|
|
itemSearch := new(models.CygxActivityUserSearchContent)
|
|
|
itemSearch.UserId = uid
|
|
|
itemSearch.CreateTime = time.Now()
|
|
@@ -129,62 +131,7 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
return
|
|
|
}
|
|
|
utils.Rc.SetNX(cacheKey, user.Mobile, time.Second*10)
|
|
|
- var userType int
|
|
|
- var permissionStr string
|
|
|
- if user.CompanyId <= 1 {
|
|
|
- userType = 0
|
|
|
- } else {
|
|
|
- total, err := models.GetCountCompanyDetailByIdGroup(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if total == 0 {
|
|
|
- userType = 0
|
|
|
- } else {
|
|
|
- companyDetail, err := models.GetCompanyDetailByIdGroup(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败!"
|
|
|
- br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if companyDetail == nil {
|
|
|
- br.Msg = "获取信息失败!"
|
|
|
- br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
|
|
|
- return
|
|
|
- }
|
|
|
- permissionStr, err = models.GetCompanyPermission(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- //1、永续客户
|
|
|
- //2、大套餐客户(4个行业全开通的正式客户)
|
|
|
- //3、分行业套餐客户(开通对应行业的正式客户)
|
|
|
- //4、仅开通专家套餐的正式客户
|
|
|
- //5、开通对应行业套餐或专家套餐的试用客户
|
|
|
- if companyDetail.Status == "永续" {
|
|
|
- userType = 1
|
|
|
- } else if companyDetail.Status == "试用" {
|
|
|
- userType = 5
|
|
|
- } else if companyDetail.Status == "正式" {
|
|
|
- if permissionStr == "专家" {
|
|
|
- userType = 4
|
|
|
- } else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
|
|
|
- userType = 2
|
|
|
- } else {
|
|
|
- userType = 3
|
|
|
- }
|
|
|
- if userType == 3 {
|
|
|
- if !strings.Contains(permissionStr, "医药") && !strings.Contains(permissionStr, "消费") && !strings.Contains(permissionStr, "科技") && !strings.Contains(permissionStr, "智造") {
|
|
|
- userType = 4
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ userType, permissionStr, err := services.GetUserType(user.CompanyId)
|
|
|
if isShowJurisdiction == 1 && chartPermissionIds == "" && userType == 4 {
|
|
|
activityTypeIds = "1,3"
|
|
|
}
|
|
@@ -200,12 +147,18 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
var pars []interface{}
|
|
|
//活动可见限制
|
|
|
var sqlExport string
|
|
|
-
|
|
|
slicePer := strings.Split(permissionStr, ",")
|
|
|
var permissionSqlStr string
|
|
|
for _, v := range slicePer {
|
|
|
- permissionSqlStr += "'" + v + "',"
|
|
|
+ if userType == 1 {
|
|
|
+ if v != "研选" {
|
|
|
+ permissionSqlStr += "'" + v + "',"
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ permissionSqlStr += "'" + v + "',"
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
permissionSqlStr = strings.TrimRight(permissionSqlStr, ",")
|
|
|
permissionSqlStr = ` AND art.chart_permission_name IN (` + permissionSqlStr + `)`
|
|
|
sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
|
|
@@ -216,7 +169,6 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
sqlExport += ` OR art.customer_type_ids LIKE '%4%' `
|
|
|
}
|
|
|
sqlExport += `) `
|
|
|
-
|
|
|
if keyWord != "" {
|
|
|
var mirrorword string
|
|
|
var mirrorwordSql string
|
|
@@ -263,7 +215,6 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
labelSqlStr = strings.TrimRight(labelSqlStr, ",")
|
|
|
condition = ` AND art.label IN (` + labelSqlStr + `)`
|
|
|
}
|
|
|
-
|
|
|
//行业名称
|
|
|
if len(chartPermissionIds) > 0 {
|
|
|
condition += ` AND art.chart_permission_id IN (` + chartPermissionIds + `)`
|
|
@@ -293,10 +244,6 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
}
|
|
|
condition += ` AND art.publish_status = 1 `
|
|
|
var conditionOr string
|
|
|
- //if strings.Contains(permissionStr, "专家") && (userType == 2 || userType == 3 || userType == 4) {
|
|
|
- //conditionOr += ` OR ( art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%' ` + permissionSqlStr + condition + `) `
|
|
|
- //conditionOr += ` OR ( art.is_limit_people = 1 AND art.activity_type_id = 3 AND art.customer_type_ids LIKE '%4%' ` + condition + `) `
|
|
|
- //}
|
|
|
// 有专家权限的这几种用户,不做行业权限校验
|
|
|
if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
|
|
|
conditionOr += ` OR ( art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%' ` + condition + `) `
|
|
@@ -304,7 +251,11 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
if (userType == 5) && strings.Contains(permissionStr, "专家") {
|
|
|
conditionOr += ` OR ( art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%' ` + condition + `) `
|
|
|
}
|
|
|
- conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
|
|
|
+ if userType == 1 {
|
|
|
+ conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
|
|
|
+ } else {
|
|
|
+ conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
|
|
|
+ }
|
|
|
condition += ` AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
|
|
|
total, err := models.GetActivityCount(condition, pars)
|
|
|
if err != nil {
|
|
@@ -312,7 +263,12 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- condition += ` ORDER BY art.active_state ASC, art.activity_time ASC `
|
|
|
+ if activeState == "2" || activeState == "3" {
|
|
|
+ condition += ` ORDER BY art.activity_time DESC `
|
|
|
+ } else {
|
|
|
+ condition += ` ORDER BY art.active_state ASC, art.activity_time ASC `
|
|
|
+ }
|
|
|
+
|
|
|
list, errList := models.GetActivityListAll(condition, pars, uid, startSize, pageSize)
|
|
|
if errList != nil {
|
|
|
br.Msg = "获取失败"
|
|
@@ -326,6 +282,9 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
if v.SignupNum > v.LimitPeopleNum {
|
|
|
list[k].SignupNum = v.LimitPeopleNum
|
|
|
}
|
|
|
+ if services.GetShowSustainable() && v.ChartPermissionName == "研选" {
|
|
|
+ list[k].IsShowSustainable = true
|
|
|
+ }
|
|
|
}
|
|
|
page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
resp := new(models.GetCygxActivityListRep)
|
|
@@ -335,6 +294,7 @@ func (this *ActivityCoAntroller) ActivityList() {
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
+
|
|
|
}
|
|
|
|
|
|
// @Title 我的日程
|
|
@@ -367,21 +327,70 @@ func (this *ActivityCoAntroller) ScheduleList() {
|
|
|
}
|
|
|
startSize = utils.StartIndex(currentIndex, pageSize)
|
|
|
var condition string
|
|
|
+ var conditionCount string
|
|
|
var pars []interface{}
|
|
|
- //condition += ` AND art.publish_status = 1 AND art.active_state IN(1,2) AND s.is_cancel = 0 AND s.fail_type = 0 `
|
|
|
- condition += ` AND art.publish_status = 1 AND art.active_state IN(1,2) `
|
|
|
- total, err := models.GetScheduleCount(uid)
|
|
|
+ condition += ` AND art.publish_status = 1 `
|
|
|
+ total, err := models.GetScheduleCount(conditionCount, uid)
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- list, errList := models.GetScheduleList(condition, pars, uid, startSize, pageSize)
|
|
|
- if errList != nil {
|
|
|
+ conditionCount = ` AND art.active_state = 2 `
|
|
|
+ totalCount, err := models.GetScheduleCount(conditionCount, uid) //获取正在进行中的活动数量
|
|
|
+ if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,Err:" + errList.Error()
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+ var list []*models.CygxActivityList
|
|
|
+ fmt.Println(totalCount)
|
|
|
+ //全部都是进行中的活动
|
|
|
+ if totalCount > currentIndex*pageSize {
|
|
|
+ condition += ` AND art.active_state IN(2) `
|
|
|
+ listHave, errList := models.GetScheduleList(condition, pars, uid, startSize, pageSize)
|
|
|
+ list = listHave
|
|
|
+ if errList != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + errList.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println("22222")
|
|
|
+ } else if totalCount > currentIndex-1*pageSize && totalCount < currentIndex*pageSize { //部分是进行中的活动
|
|
|
+ condition = ` AND art.publish_status = 1 AND art.active_state IN(2) `
|
|
|
+ listHave, errList := models.GetScheduleList(condition, pars, uid, startSize, pageSize)
|
|
|
+ list = listHave
|
|
|
+ if errList != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + errList.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println("33333")
|
|
|
+ pageSize = pageSize - len(listHave)
|
|
|
+ condition = ` AND art.publish_status = 1 AND art.active_state IN(1,3) `
|
|
|
+ listOther, errList := models.GetScheduleList(condition, pars, uid, startSize, pageSize)
|
|
|
+ if errList != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + errList.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ fmt.Println("长度", len(listOther))
|
|
|
+ if len(listOther) > 0 {
|
|
|
+ for _, v := range listOther {
|
|
|
+ list = append(list, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ condition += ` AND art.active_state IN(1,3)` //全部都不是进行中的活动
|
|
|
+ listOther, errList := models.GetScheduleList(condition, pars, uid, startSize, pageSize)
|
|
|
+ list = listOther
|
|
|
+ if errList != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + errList.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
for k, v := range list {
|
|
|
if strings.Contains(v.ActivityName, "【") {
|
|
|
list[k].IsBrackets = 1
|
|
@@ -389,8 +398,11 @@ func (this *ActivityCoAntroller) ScheduleList() {
|
|
|
if v.SignupNum > v.LimitPeopleNum {
|
|
|
list[k].SignupNum = v.LimitPeopleNum
|
|
|
}
|
|
|
+ //是否展示限免标签
|
|
|
+ if services.GetShowSustainable() && v.ChartPermissionName == "研选" {
|
|
|
+ list[k].IsShowSustainable = true
|
|
|
+ }
|
|
|
}
|
|
|
- page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
resp := new(models.GetCygxActivityListRep)
|
|
|
resp.List = list
|
|
|
resp.Paging = page
|
|
@@ -481,74 +493,32 @@ func (this *ActivityCoAntroller) Detail() {
|
|
|
}
|
|
|
companyDetailStatus = companyDetail.Status
|
|
|
}
|
|
|
-
|
|
|
- var userType int
|
|
|
- var permissionStr string
|
|
|
- if user.CompanyId <= 1 {
|
|
|
- userType = 0
|
|
|
- } else {
|
|
|
-
|
|
|
- companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败!"
|
|
|
- br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if companyDetail == nil {
|
|
|
- br.Msg = "获取信息失败!"
|
|
|
- br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
|
|
|
- return
|
|
|
- }
|
|
|
- //1、永续客户
|
|
|
- //2、大套餐客户(4个行业全开通的正式客户)
|
|
|
- //3、分行业套餐客户(开通对应行业的正式客户)
|
|
|
- //4、仅开通专家套餐的正式客户
|
|
|
- //5、开通对应行业套餐或专家套餐的试用客户
|
|
|
- if companyDetail.Status == "永续" {
|
|
|
- userType = 1
|
|
|
- } else if companyDetail.Status == "试用" {
|
|
|
- userType = 5
|
|
|
- } else if companyDetail.Status == "正式" {
|
|
|
- permissionStr, err = models.GetCompanyPermission(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if permissionStr == "专家" {
|
|
|
- userType = 4
|
|
|
- } else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
|
|
|
- userType = 2
|
|
|
- } else {
|
|
|
- userType = 3
|
|
|
- }
|
|
|
- }
|
|
|
+ userType, permissionStr, err := services.GetUserType(user.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
if activityInfo.IsLimitPeople > 0 {
|
|
|
- var noPower bool
|
|
|
- if (userType == 1 || userType == 4 || userType == 5) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
|
|
|
- noPower = true
|
|
|
- }
|
|
|
- //带有专家权限的 2、大套餐客户(4个行业全开通的正式客户) 3、分行业套餐客户(开通对应行业的正式客户)
|
|
|
- if userType == 2 && strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(2)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(4)) {
|
|
|
- noPower = true
|
|
|
- }
|
|
|
- if userType == 2 && !strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(2)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) {
|
|
|
- noPower = true
|
|
|
- }
|
|
|
- if userType == 3 && strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(4)) {
|
|
|
- noPower = true
|
|
|
- }
|
|
|
- if userType == 3 && !strings.Contains(permissionStr, "专家") && !strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(3)) {
|
|
|
- noPower = true
|
|
|
+ noPower, err := services.GetShareNoPowe(activityInfo, permissionStr, userType)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
if noPower {
|
|
|
br.Msg = "您暂无查看该活动权限"
|
|
|
- br.ErrMsg = "被分享客户不可见,获取信息失败,Err:"
|
|
|
+ br.ErrMsg = "被分享客户不可见,获取信息失败"
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
- fmt.Println("权限可见校验")
|
|
|
+
|
|
|
+ if userType == 1 && activityInfo.ChartPermissionName == "研选" {
|
|
|
+ br.Msg = "您暂无查看该活动权限"
|
|
|
+ br.ErrMsg = "被分享客户不可见,永续客户无法查看研选行业"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
detail, errDetail := models.GetActivityTypeDetailById(activityInfo.ActivityTypeId)
|
|
|
if errDetail != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
@@ -593,20 +563,7 @@ func (this *ActivityCoAntroller) Detail() {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
- //1专家电话会、2分析师电话会、3公司调研电话会、4公司线下调研、5专家线下沙龙、6分析师线下沙龙
|
|
|
- //OperationMode string `description:"操作方式 Apply:立即申请、Call:拨号 为空则为有权限"`
|
|
|
- var havePower bool
|
|
|
- if (activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 3) && strings.Contains(permissionStr, "专家") && activityInfo.LimitPeopleNum == 0 {
|
|
|
- havePower = true
|
|
|
- } else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "正式" && strings.Contains(activityInfo.CustomerTypeIds, "4") {
|
|
|
- havePower = true
|
|
|
- } else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "试用" && strings.Contains(activityInfo.CustomerTypeIds, "5") {
|
|
|
- havePower = true
|
|
|
- } else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
|
|
|
- havePower = true
|
|
|
- } else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
|
|
|
- havePower = true
|
|
|
- }
|
|
|
+ havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
|
|
|
if havePower {
|
|
|
hasPermission = 1
|
|
|
resp.HaqveJurisdiction = true
|
|
@@ -633,6 +590,18 @@ func (this *ActivityCoAntroller) Detail() {
|
|
|
resp.PopupMsg = "您暂无权限参加 【" + activityInfo.ChartPermissionName + "】行业活动,若想参加可以申请开通哦"
|
|
|
}
|
|
|
if hasPermission == 1 {
|
|
|
+ //是否展示限免标签
|
|
|
+ if services.GetShowSustainable() && activityInfo.ChartPermissionName == "研选" {
|
|
|
+ activityInfo.IsShowSustainable = true
|
|
|
+ }
|
|
|
+ configCode := "description_of_research"
|
|
|
+ detail, err := models.GetConfigByCode(configCode)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ activityInfo.Description = detail.ConfigValue
|
|
|
if activityInfo.SignupNum > activityInfo.LimitPeopleNum {
|
|
|
activityInfo.SignupNum = activityInfo.LimitPeopleNum
|
|
|
}
|
|
@@ -743,48 +712,20 @@ func (this *ActivityCoAntroller) SignupAdd() {
|
|
|
}
|
|
|
var userType int
|
|
|
var permissionStr string
|
|
|
- if user.CompanyId <= 1 {
|
|
|
- userType = 0
|
|
|
- } else {
|
|
|
- companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败!"
|
|
|
- br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if companyDetail == nil {
|
|
|
- br.Msg = "获取信息失败!"
|
|
|
- br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
|
|
|
- return
|
|
|
- }
|
|
|
- if companyDetail.Status == "永续" {
|
|
|
- userType = 1
|
|
|
- } else if companyDetail.Status == "试用" {
|
|
|
- userType = 5
|
|
|
- } else if companyDetail.Status == "正式" {
|
|
|
- permissionStr, err = models.GetCompanyPermission(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if permissionStr == "专家" {
|
|
|
- userType = 4
|
|
|
- } else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
|
|
|
- userType = 2
|
|
|
- } else {
|
|
|
- userType = 3
|
|
|
- }
|
|
|
- }
|
|
|
+ userType, permissionStr, err = services.GetUserType(user.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
+ if userType == 1 && activityInfo.ChartPermissionName == "研选" {
|
|
|
+ br.Msg = "您暂无查看该活动权限"
|
|
|
+ br.ErrMsg = "被分享客户不可见,永续客户无法查看研选行业"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
item := new(models.CygxActivitySignup)
|
|
|
if user.CompanyId > 1 {
|
|
|
- permissionStr, err := models.GetCompanyPermission(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
companyItem, err := models.GetCompanyDetailById(user.CompanyId)
|
|
|
//冻结客户
|
|
|
if err != nil {
|
|
@@ -805,17 +746,11 @@ func (this *ActivityCoAntroller) SignupAdd() {
|
|
|
}
|
|
|
//1专家电话会、2分析师电话会、3公司调研电话会、4公司线下调研、5专家线下沙龙、6分析师线下沙龙
|
|
|
//OperationMode string `description:"操作方式 Apply:立即申请、Call:拨号 为空则为有权限"`
|
|
|
- var havePower bool
|
|
|
- if (activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 3) && strings.Contains(permissionStr, "专家") && activityInfo.LimitPeopleNum == 0 {
|
|
|
- havePower = true
|
|
|
- } else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "正式" && strings.Contains(activityInfo.CustomerTypeIds, "4") {
|
|
|
- havePower = true
|
|
|
- } else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "试用" && strings.Contains(activityInfo.CustomerTypeIds, "5") {
|
|
|
- havePower = true
|
|
|
- } else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
|
|
|
- havePower = true
|
|
|
- } else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
|
|
|
- havePower = true
|
|
|
+ havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
if havePower {
|
|
|
hasPermission = 1
|
|
@@ -1216,8 +1151,6 @@ func (this *ActivityCoAntroller) GetUserSearchContent() {
|
|
|
if detail.IsShowJurisdiction == 1 {
|
|
|
resp.IsShowJurisdiction = true
|
|
|
}
|
|
|
- fmt.Println(isShowJurisdiction)
|
|
|
-
|
|
|
if isShowJurisdiction == 1 || detail.IsShowJurisdiction == 1 {
|
|
|
resp.IsShowJurisdiction = true
|
|
|
for k, _ := range listChartPermissionid {
|
|
@@ -1234,12 +1167,40 @@ func (this *ActivityCoAntroller) GetUserSearchContent() {
|
|
|
br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- resp.ListChartPermission2 = list2
|
|
|
+
|
|
|
if activeStateList[1].IsChoose == activeStateList[2].IsChoose == false {
|
|
|
activeStateList[0].IsChoose = true
|
|
|
}
|
|
|
+ var userType int
|
|
|
+ userType, _, err = services.GetUserType(user.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var listChartPermissionidNew2 []*models.ActivityChartPermission
|
|
|
+ for _, v := range list2 {
|
|
|
+ if userType == 1 {
|
|
|
+ if v.PermissionName != "研选" {
|
|
|
+ listChartPermissionidNew2 = append(listChartPermissionidNew2, v)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ listChartPermissionidNew2 = append(listChartPermissionidNew2, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resp.ListChartPermission2 = listChartPermissionidNew2
|
|
|
+ var listChartPermissionidNew []*models.ActivityChartPermission
|
|
|
+ for _, v := range listChartPermissionid {
|
|
|
+ if userType == 1 {
|
|
|
+ if v.PermissionName != "研选" {
|
|
|
+ listChartPermissionidNew = append(listChartPermissionidNew, v)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ listChartPermissionidNew = append(listChartPermissionidNew, v)
|
|
|
+ }
|
|
|
+ }
|
|
|
resp.ListActivityType = listActivityType
|
|
|
- resp.ListChartPermission = listChartPermissionid
|
|
|
+ resp.ListChartPermission = listChartPermissionidNew
|
|
|
resp.ListActivityStaus = activeStateList
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
@@ -1338,53 +1299,23 @@ func (this *ActivityCoAntroller) MeetingReminderAdd() {
|
|
|
}
|
|
|
var userType int
|
|
|
var permissionStr string
|
|
|
- if user.CompanyId <= 1 {
|
|
|
- userType = 0
|
|
|
- } else {
|
|
|
- companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败!"
|
|
|
- br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if companyDetail == nil {
|
|
|
- br.Msg = "获取信息失败!"
|
|
|
- br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
|
|
|
- return
|
|
|
- }
|
|
|
- if companyDetail.Status == "永续" {
|
|
|
- userType = 1
|
|
|
- } else if companyDetail.Status == "试用" {
|
|
|
- userType = 5
|
|
|
- } else if companyDetail.Status == "正式" {
|
|
|
- permissionStr, err = models.GetCompanyPermission(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if permissionStr == "专家" {
|
|
|
- userType = 4
|
|
|
- } else if strings.Contains(permissionStr, "医药") && strings.Contains(permissionStr, "消费") && strings.Contains(permissionStr, "科技") && strings.Contains(permissionStr, "智造") {
|
|
|
- userType = 2
|
|
|
- } else {
|
|
|
- userType = 3
|
|
|
- }
|
|
|
- }
|
|
|
+ userType, permissionStr, err = services.GetUserType(user.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if userType == 1 && activityInfo.ChartPermissionName == "研选" {
|
|
|
+ br.Msg = "您暂无查看该活动权限"
|
|
|
+ br.ErrMsg = "被分享客户不可见,永续客户无法查看研选行业"
|
|
|
+ return
|
|
|
}
|
|
|
-
|
|
|
resultTime := utils.StrTimeToTime(activityInfo.ActivityTime) //时间字符串格式转时间格式
|
|
|
if time.Now().After(resultTime.Add(-time.Minute * 15)) {
|
|
|
br.Msg = "活动开始前15分钟无法设置会议提醒"
|
|
|
return
|
|
|
}
|
|
|
if user.CompanyId > 1 {
|
|
|
- permissionStr, err := models.GetCompanyPermission(user.CompanyId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
companyItem, err := models.GetCompanyDetailById(user.CompanyId)
|
|
|
//冻结客户
|
|
|
if err != nil {
|
|
@@ -1404,17 +1335,11 @@ func (this *ActivityCoAntroller) MeetingReminderAdd() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var havePower bool
|
|
|
- if (activityInfo.ActivityTypeId == 1 || activityInfo.ActivityTypeId == 3) && strings.Contains(permissionStr, "专家") && activityInfo.LimitPeopleNum == 0 {
|
|
|
- havePower = true
|
|
|
- } else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "正式" && strings.Contains(activityInfo.CustomerTypeIds, "4") {
|
|
|
- havePower = true
|
|
|
- } else if activityInfo.ActivityTypeId == 3 && strings.Contains(permissionStr, "专家") && companyDetailStatus == "试用" && strings.Contains(activityInfo.CustomerTypeIds, "5") {
|
|
|
- havePower = true
|
|
|
- } else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) && strings.Contains(activityInfo.CustomerTypeIds, strconv.Itoa(userType)) {
|
|
|
- havePower = true
|
|
|
- } else if strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
|
|
|
- havePower = true
|
|
|
+ havePower, err := services.GetHavePower(activityInfo, permissionStr, companyDetailStatus, userType)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败!"
|
|
|
+ br.ErrMsg = "获取失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
if havePower {
|
|
|
hasPermission = 1
|
|
@@ -1712,8 +1637,17 @@ func (this *ActivityCoAntroller) LabelList() {
|
|
|
var sqlExport string
|
|
|
slicePer := strings.Split(permissionStr, ",")
|
|
|
var permissionSqlStr string
|
|
|
+ //for _, v := range slicePer {
|
|
|
+ // permissionSqlStr += "'" + v + "',"
|
|
|
+ //}
|
|
|
for _, v := range slicePer {
|
|
|
- permissionSqlStr += "'" + v + "',"
|
|
|
+ if userType == 1 {
|
|
|
+ if v != "研选" {
|
|
|
+ permissionSqlStr += "'" + v + "',"
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ permissionSqlStr += "'" + v + "',"
|
|
|
+ }
|
|
|
}
|
|
|
permissionSqlStr = strings.TrimRight(permissionSqlStr, ",")
|
|
|
permissionSqlStr = ` AND art.chart_permission_name IN (` + permissionSqlStr + `)`
|
|
@@ -1734,7 +1668,12 @@ func (this *ActivityCoAntroller) LabelList() {
|
|
|
if (userType == 5) && strings.Contains(permissionStr, "专家") {
|
|
|
conditionOr += ` OR ( art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%' ` + condition + `) `
|
|
|
}
|
|
|
- conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
|
|
|
+ if userType == 1 {
|
|
|
+ conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
|
|
|
+ } else {
|
|
|
+ conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
|
|
|
+ }
|
|
|
+ //conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
|
|
|
condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
|
|
|
resp := new(models.GetCygxActivityLabelListRep)
|
|
|
//conditionLaable := condition
|
|
@@ -1809,7 +1748,11 @@ func (this *ActivityCoAntroller) LabelList() {
|
|
|
if (userType == 5) && strings.Contains(permissionStr, "专家") {
|
|
|
conditionOr += ` OR ( art.is_limit_people = 1 AND art.customer_type_ids LIKE '%5%' ` + condition + `) `
|
|
|
}
|
|
|
- conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
|
|
|
+ if userType == 1 {
|
|
|
+ conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + permissionSqlStr + `) `
|
|
|
+ } else {
|
|
|
+ conditionOr += ` OR ( art.is_limit_people = 0 ` + condition + `) `
|
|
|
+ }
|
|
|
condition += `AND art.is_limit_people = 1 ` + permissionSqlStr + sqlExport + conditionOr
|
|
|
}
|
|
|
sortTime = ` mintimesort ASC `
|
|
@@ -1980,3 +1923,103 @@ func (this *ActivityCoAntroller) Import() {
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
}
|
|
|
+
|
|
|
+// @Title 活动带问
|
|
|
+// @Description 新增活动带问接口
|
|
|
+// @Param request body models.AddCygxActivityHelpAsk true "type json string"
|
|
|
+// @Success Ret=200 新增成功
|
|
|
+// @router /askAdd [post]
|
|
|
+func (this *ActivityCoAntroller) AskAdd() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ user := this.User
|
|
|
+ if user == nil {
|
|
|
+ br.Msg = "请登录"
|
|
|
+ br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
+ br.Ret = 408
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var req models.CygxActivityHelpAsk
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.Content == "" {
|
|
|
+ br.Msg = "建议内容不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ content := req.Content
|
|
|
+ itemToken, err := services.WxGetToken()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "GetWxAccessToken Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if itemToken.AccessToken == "" {
|
|
|
+ br.Msg = "accessToken is empty"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ commerr, err := weapp.MSGSecCheck(itemToken.AccessToken, content)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "内容校验失败!"
|
|
|
+ br.ErrMsg = "内容校验失败,Err:" + err.Error()
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if commerr.ErrCode != 0 {
|
|
|
+ br.Msg = "内容违规,请重新提交!"
|
|
|
+ br.ErrMsg = "颜文字内容违规,Err:" + commerr.ErrMSG
|
|
|
+ return
|
|
|
+ }
|
|
|
+ activityId := req.ActivityId
|
|
|
+ activityInfo, errInfo := models.GetAddActivityInfoById(activityId)
|
|
|
+ if activityInfo == nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "活动ID错误,不存在activityId:" + strconv.Itoa(activityId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if errInfo != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,Err:" + errInfo.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ resultTime := utils.StrTimeToTime(activityInfo.ActivityTime) //时间字符串格式转时间格式
|
|
|
+ if time.Now().After(resultTime.Add(-time.Minute * 60)) {
|
|
|
+ br.Msg = "活动开始前1小时内无法提交问题"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "提交失败!"
|
|
|
+ br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if companyDetail == nil {
|
|
|
+ br.Msg = "提交失败!"
|
|
|
+ br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := new(models.CygxActivityHelpAsk)
|
|
|
+ item.UserId = user.UserId
|
|
|
+ item.ActivityId = req.ActivityId
|
|
|
+ item.CompanyId = user.CompanyId
|
|
|
+ item.CompanyName = companyDetail.CompanyName
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.Mobile = user.Mobile
|
|
|
+ item.Email = user.Email
|
|
|
+ item.Content = content
|
|
|
+ _, err = models.AddActivityHelpAsk(item)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "提交失败"
|
|
|
+ br.ErrMsg = "提交带问失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "提交成功"
|
|
|
+}
|