Bladeren bron

no message

xingzai 2 jaren geleden
bovenliggende
commit
4587cab034
5 gewijzigde bestanden met toevoegingen van 192 en 108 verwijderingen
  1. 50 49
      models/activity.go
  2. 7 7
      models/company.go
  3. 4 4
      models/company_activity_trip.go
  4. 116 48
      services/activity.go
  5. 15 0
      services/admin.go

+ 50 - 49
models/activity.go

@@ -9,7 +9,7 @@ import (
 	"time"
 )
 
-//活动详情
+// 活动详情
 type CygxActivity struct {
 	ActivityId              int       `orm:"column(activity_id);pk";description:"活动ID 等于0新增活动,大于0修改活动"`
 	ActivityTypeId          int       `description:"活动类型id"`
@@ -84,15 +84,16 @@ type ActivitySingnupRep struct {
 }
 
 type ActivityCcustomerType struct {
-	CustomerTypeId int    `description:"活动类型id"`
-	CustomerName   string `description:"活动名称"`
+	CustomerTypeId  int    `description:"活动类型id"`
+	CustomerName    string `description:"活动名称"`
+	PermissionValue string `description:"用户权限对应的值"`
 }
 
 type ActivityCcustomerTypeList struct {
 	List []*ActivityCcustomerType
 }
 
-//列表
+// 列表
 func GetActivityCcustomerTypeList() (items []*ActivityCcustomerType, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM cygx_customer_type ORDER BY sort DESC`
@@ -100,7 +101,7 @@ func GetActivityCcustomerTypeList() (items []*ActivityCcustomerType, err error)
 	return
 }
 
-//活动添加、修改入参
+// 活动添加、修改入参
 type ActivityRep struct {
 	ActivityTypeId    int    `description:"活动类型id"`
 	ChartPermissionId int    `description:"行业id"`
@@ -116,7 +117,7 @@ type ActivityArticleResp struct {
 	ArticleId  int    `description:"报告id(报告链接跳转使用)"`
 }
 
-//活动详情
+// 活动详情
 type ActivityDetail struct {
 	ActivityId              int                        `orm:"column(activity_id);pk";description:"活动ID "`
 	ActivityTypeId          int                        `description:"活动类型id"`
@@ -208,7 +209,7 @@ type CygxActivityResp struct {
 	Detail            *ActivityDetail
 }
 
-//通过纪要ID获取活动详情
+// 通过纪要ID获取活动详情
 func GetAddActivityInfoById(ActivityId int) (item *ActivityDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM cygx_activity  WHERE activity_id=? AND publish_status = 1 `
@@ -216,7 +217,7 @@ func GetAddActivityInfoById(ActivityId int) (item *ActivityDetail, err error) {
 	return
 }
 
-//通过活动名称获取活动详情
+// 通过活动名称获取活动详情
 func GetAddActivityInfoByTitle(title, startDate, endDate string) (item *ActivityDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM cygx_activity  WHERE  activity_time > '` + startDate + `' AND activity_time < '` + endDate + `' AND (activity_name_task LIKE '%` + title + `%' OR  jmcj_roadshow_title LIKE '%` + title + `%')   AND activity_id  NOT IN (1328)  LIMIT 1 `
@@ -224,7 +225,7 @@ func GetAddActivityInfoByTitle(title, startDate, endDate string) (item *Activity
 	return
 }
 
-//通过纪要ID获取活动详情
+// 通过纪要ID获取活动详情
 func GetAddActivityInfoByIdShow(uid, ActivityId int) (item *ActivityDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT *,( SELECT COUNT( 1 ) FROM cygx_activity_signup AS s WHERE s.activity_id = a.activity_id AND s.user_id = ?   AND s.is_cancel = 0  AND s.do_fail_type = 0) AS is_signup,
@@ -236,7 +237,7 @@ func GetAddActivityInfoByIdShow(uid, ActivityId int) (item *ActivityDetail, err
 	return
 }
 
-//活动列表
+// 活动列表
 type CygxActivityList struct {
 	ActivityId              int    `orm:"column(activity_id);pk";description:"活动ID 等于0新增活动,大于0修改活动"`
 	ActivityTypeId          int    `description:"活动类型id"`
@@ -282,7 +283,7 @@ type GetCygxActivityListRep struct {
 	IndustryNewLabel       bool   `description:"产业是否新标签"`
 }
 
-//列表
+// 列表
 func GetActivityListAll(condition string, pars []interface{}, uid, startSize, pageSize, playBack int) (items []*ActivityDetail, err error) {
 	var sqlJiontable string
 	if playBack == 1 {
@@ -305,7 +306,7 @@ func GetActivityListAll(condition string, pars []interface{}, uid, startSize, pa
 	return
 }
 
-//列表
+// 列表
 func GetActivityListByDateTime(startDate, endDate, activityIds, activityIdsLongTime string) (items []*CygxActivityList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM cygx_activity WHERE activity_time > '` + startDate + `' AND activity_time < '` + endDate + `' `
@@ -318,7 +319,7 @@ func GetActivityListByDateTime(startDate, endDate, activityIds, activityIdsLongT
 	return
 }
 
-//获取我的日程数量
+// 获取我的日程数量
 func GetSpecialScheduleCount(uid int) (count int, err error) {
 	o := orm.NewOrm()
 	sqlCount := `
@@ -331,7 +332,7 @@ SELECT COUNT( 1 ) AS count FROM
 	return
 }
 
-//获取数量
+// 获取数量
 func GetActivityCount(condition string, playBack int, pars []interface{}, filter int) (count int, err error) {
 	var sqlJiontable string
 	if playBack == 1 {
@@ -352,7 +353,7 @@ func GetActivityCount(condition string, playBack int, pars []interface{}, filter
 	return
 }
 
-//获取我的日程数量
+// 获取我的日程数量
 func GetScheduleCount(condition string, uid int) (count int, err error) {
 	o := orm.NewOrm()
 	sqlCount := `SELECT COUNT( 1 ) AS count 
@@ -367,7 +368,7 @@ func GetScheduleCount(condition string, uid int) (count int, err error) {
 	return
 }
 
-//我的日程列表
+// 我的日程列表
 func GetScheduleList(condition string, pars []interface{}, uid, startSize, pageSize int) (items []*ActivityDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT art.*,t.activity_type,t.img_url_text,c.image_url as  img_url,
@@ -388,7 +389,7 @@ func GetScheduleList(condition string, pars []interface{}, uid, startSize, pageS
 	return
 }
 
-//我的日程列表 活动以及专项调研一起
+// 我的日程列表 活动以及专项调研一起
 func GetScheduleAndSpecilList(condition string, pars []interface{}, conditionSpecil string, parsSpecil []interface{}, startSize, pageSize int) (items []*ActivityDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -455,7 +456,7 @@ func GetScheduleAndSpecilList(condition string, pars []interface{}, conditionSpe
 	return
 }
 
-//获取数量
+// 获取数量
 func GetActivityCountById(activityId int) (count int, err error) {
 	o := orm.NewOrm()
 	sqlCount := `SELECT COUNT(1) AS count  FROM cygx_activity WHERE activity_id = ?`
@@ -463,7 +464,7 @@ func GetActivityCountById(activityId int) (count int, err error) {
 	return
 }
 
-//删除数据
+// 删除数据
 func DeleteActivity(activityId int) (err error) {
 	o := orm.NewOrm()
 	sql := ` DELETE FROM cygx_activity WHERE activity_id = ?`
@@ -471,7 +472,7 @@ func DeleteActivity(activityId int) (err error) {
 	return
 }
 
-//修改活动状态至进行中
+// 修改活动状态至进行中
 func UpdateActivitySattusToHaveInHand() (err error) {
 	defer func() {
 		if err != nil {
@@ -494,7 +495,7 @@ func UpdateActivitySattusToHaveInHand() (err error) {
 	return
 }
 
-//修改活动状态至已结束
+// 修改活动状态至已结束
 func UpdateActivitySattusToComplete() (err error) {
 	defer func() {
 		if err != nil {
@@ -517,7 +518,7 @@ func UpdateActivitySattusToComplete() (err error) {
 	return
 }
 
-//活动详情
+// 活动详情
 type WxMsgCygxActivityList struct {
 	Id                      int    `description:"报名ID"`
 	UserId                  int    `description:"用户ID"`
@@ -546,7 +547,7 @@ type WxMsgCygxActivityList struct {
 	FailType                int    `description:"失败原因,0,未失败,1总人数已满,2单机构超限制,3,爽约次数超限"`
 }
 
-//列表 3o分钟
+// 列表 3o分钟
 func GetActivitySendMsgListAll(endDate string) (items []*WxMsgCygxActivityList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -573,7 +574,7 @@ WHERE
 	return
 }
 
-//列表 15分钟提醒
+// 列表 15分钟提醒
 func GetActivitySendMsgListAllMeeting(endDate string) (items []*WxMsgCygxActivityList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -600,7 +601,7 @@ WHERE
 	return
 }
 
-//修改是否推送消息状态
+// 修改是否推送消息状态
 func UPdateSendedMsgStatus(signupIds string) (err error) {
 	sql := ` UPDATE cygx_activity_signup SET  is_send_wx_msg= 1  WHERE id IN(` + signupIds + `)`
 	o := orm.NewOrm()
@@ -608,7 +609,7 @@ func UPdateSendedMsgStatus(signupIds string) (err error) {
 	return
 }
 
-//修改是否推送消息状态
+// 修改是否推送消息状态
 func UPdateSendedMsgMeetingStatus(signupIds string) (err error) {
 	sql := ` UPDATE cygx_activity_meeting_reminder SET  is_send_wx_msg= 1  WHERE id IN(` + signupIds + `)`
 	o := orm.NewOrm()
@@ -616,7 +617,7 @@ func UPdateSendedMsgMeetingStatus(signupIds string) (err error) {
 	return
 }
 
-//获取满足推送的活动ID数量
+// 获取满足推送的活动ID数量
 func GetCountActivityIdToSendFile(endDate string) (count int, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -634,7 +635,7 @@ WHERE
 	return
 }
 
-//获取满足推送的活动ID
+// 获取满足推送的活动ID
 func GetActivityIdToSendFile(endDate string) (items []*ActivityIdRep, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -691,7 +692,7 @@ func GetSignupExport(activityId int) (item []*SignupExportRep, err error) {
 	return
 }
 
-//修改文件是否推送状态
+// 修改文件是否推送状态
 func UPdateActivityIdToSendFile(activityId int) (err error) {
 	sql := ` UPDATE cygx_activity SET  is_send_file_toemail= 1  WHERE activity_id = ?`
 	o := orm.NewOrm()
@@ -699,7 +700,7 @@ func UPdateActivityIdToSendFile(activityId int) (err error) {
 	return
 }
 
-//活动详情
+// 活动详情
 type CygxActivityLabelList struct {
 	KeyWord           string `orm:"column(label)";description:"主题"`
 	Timesort          string `description:"最大时间"`
@@ -717,7 +718,7 @@ type CygxActivityLabelList struct {
 	Days              int    `description:"天数"`
 }
 
-//主题列表
+// 主题列表
 func GetActivityLabelListAll(condition, sortTime string, pars []interface{}, startSize, pageSize int) (items []*CygxActivityLabelList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT	activity_id, label,temporary_label,is_show_subject_name, MAX( art.activity_time ) AS timesort, MIn( art.activity_time ) AS mintimesort , yidong_activity_id,city
@@ -737,7 +738,7 @@ type GetCygxActivityLabelListRep struct {
 	List   []*CygxActivityLabelList
 }
 
-//获取研选系列专家电话会,会前1小时,满足推送的活动ID数量
+// 获取研选系列专家电话会,会前1小时,满足推送的活动ID数量
 func GetCountActivityResearchToSendFile(condition, endDate string) (count int, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -754,7 +755,7 @@ WHERE
 	return
 }
 
-//获取研选系列专家电话会,会前1小时,满足推送的活动ID
+// 获取研选系列专家电话会,会前1小时,满足推送的活动ID
 func GetActivityResearchToSendFile(condition, endDate string) (items []*ActivityIdRep, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -789,7 +790,7 @@ func GetActivityMsgExport(activityId int) (item []*ActivityMsgExportRep, err err
 	return
 }
 
-//修改文件带问消息是否推送状态
+// 修改文件带问消息是否推送状态
 func UPdateActivityMsgToSendFile(activityId int) (err error) {
 	sql := ` UPDATE cygx_activity SET  is_send_ask_msg= 1  WHERE activity_id = ?`
 	o := orm.NewOrm()
@@ -810,7 +811,7 @@ func GetAskEmail() (item []*AskEmailRep, err error) {
 	return
 }
 
-//主题列表
+// 主题列表
 func GetActivityLabelSpecialListAll(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxActivityLabelList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT	label,activity_id,is_show_subject_name,days
@@ -842,7 +843,7 @@ type CygxActivitySpecialResp struct {
 	Detail            *CygxActivitySpecialDetail
 }
 
-//获取专项调研活动列表
+// 获取专项调研活动列表
 func GetCygxActivitySpecialDetailList(condition string, pars []interface{}, uid, startSize, pageSize int) (items []*CygxActivitySpecialDetail, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT
@@ -870,7 +871,7 @@ WHERE
 	return
 }
 
-//通过活动ID获取活动详情
+// 通过活动ID获取活动详情
 func GetCygxActivitySpecialDetailById(uid, ActivityId int) (item *CygxActivitySpecialDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT *,( SELECT COUNT( 1 ) FROM cygx_activity_special_signup AS s WHERE s.activity_id = a.activity_id AND s.user_id = ? ) AS is_signup 
@@ -883,7 +884,7 @@ WHERE
 	return
 }
 
-//通过活动ID获取活动详情
+// 通过活动ID获取活动详情
 func GetCygxActivitySpecialDetail(ActivityId int) (item *CygxActivitySpecialDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM cygx_activity_special  WHERE activity_id=? AND publish_status = 1 `
@@ -898,7 +899,7 @@ func UpdateCygxActivityName(activityId int, Name string) (err error) {
 	return
 }
 
-//获取已发布但是为开始活动的权限
+// 获取已发布但是为开始活动的权限
 func GetActivityWeekPermission() (permission string, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT
@@ -911,7 +912,7 @@ func GetActivityWeekPermission() (permission string, err error) {
 	return
 }
 
-//列表
+// 列表
 func GetIndustrialActivityGroupManagementList(activityId int) (items []*IndustrialManagementRep, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -929,7 +930,7 @@ func GetIndustrialActivityGroupManagementList(activityId int) (items []*Industri
 	return
 }
 
-//GetActivityListByYiDong 获取易董同步过来的活动列表
+// GetActivityListByYiDong 获取易董同步过来的活动列表
 func GetActivityListByYiDong() (items []*CygxActivity, err error) {
 	o := orm.NewOrm()
 	sql := ` SELECT * FROM cygx_activity WHERE yidong_activity_id != '' `
@@ -937,14 +938,14 @@ func GetActivityListByYiDong() (items []*CygxActivity, err error) {
 	return
 }
 
-//AddCygxActivity 添加活动
+// AddCygxActivity 添加活动
 func AddCygxActivity(item *CygxActivity) (lastId int64, err error) {
 	o := orm.NewOrm()
 	lastId, err = o.Insert(item)
 	return
 }
 
-//列表
+// 列表
 func GetActivityListByYidong(condition string) (items []*ActivityDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT * FROM cygx_activity WHERE yidong_activity_id != '' `
@@ -955,7 +956,7 @@ func GetActivityListByYidong(condition string) (items []*ActivityDetail, err err
 	return
 }
 
-//UpdateCygxActivitySubmitMeetingByYidong  ,跟易董返回的用户状态修改活动以提交到会状态
+// UpdateCygxActivitySubmitMeetingByYidong  ,跟易董返回的用户状态修改活动以提交到会状态
 func UpdateCygxActivitySubmitMeetingByYidong(yidongActivityId string) (err error) {
 	o := orm.NewOrm()
 	sql := `UPDATE cygx_activity SET is_submit_meeting = 1 WHERE yidong_activity_id=?  `
@@ -963,7 +964,7 @@ func UpdateCygxActivitySubmitMeetingByYidong(yidongActivityId string) (err error
 	return
 }
 
-//UpdateActivityshowSubject 根据易董推过来的匹配信息,判断临时标签是否展示
+// UpdateActivityshowSubject 根据易董推过来的匹配信息,判断临时标签是否展示
 func UpdateActivityshowSubject(activityId int) (err error) {
 	sql := ` UPDATE cygx_activity SET  is_show_subject_name= 1 , temporary_label = ''  WHERE activity_id = ?`
 	o := orm.NewOrm()
@@ -971,7 +972,7 @@ func UpdateActivityshowSubject(activityId int) (err error) {
 	return
 }
 
-//GetActivitySpecialSearcheList 活动与专项调研的搜索
+// GetActivitySpecialSearcheList 活动与专项调研的搜索
 func GetActivitySpecialSearcheList(condition string, pars []interface{}, conditionSpecil string, parsSpecil []interface{}, startSize, pageSize int) (items []*ActivityDetail, total int, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -1038,7 +1039,7 @@ func GetActivitySpecialSearcheList(condition string, pars []interface{}, conditi
 	return
 }
 
-//列表
+// 列表
 func GetActivityListNew(condition string, pars []interface{}, uid, startSize, pageSize, playBack, filter int, typeName string) (items []*ActivityDetail, err error) {
 	var sqlJiontable string
 	if playBack == 1 {
@@ -1083,7 +1084,7 @@ func GetActivityListNew(condition string, pars []interface{}, uid, startSize, pa
 	return
 }
 
-//列表
+// 列表
 func GetActivityListHomeNew(condition string, startSize, pageSize int) (items []*ActivityDetail, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT activity_id
@@ -1098,7 +1099,7 @@ func GetActivityListHomeNew(condition string, startSize, pageSize int) (items []
 	return
 }
 
-//主题列表
+// 主题列表
 func GetActivityLabelListAllNoLimit(condition, sortTime string, pars []interface{}, conditionSpecial string) (items []*CygxActivityLabelList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT	activity_id, label,temporary_label,is_show_subject_name, art.activity_time,	1 AS resource, yidong_activity_id 

+ 7 - 7
models/company.go

@@ -128,7 +128,7 @@ func GetCompanyPermissionList(companyId int) (items []*PermissionItem, err error
 	return
 }
 
-//获取用户权限不限制状态
+// 获取用户权限不限制状态
 func GetCompanyPermissionByUserNoStatus(companyId int) (permission string, err error) {
 	sql := ` SELECT GROUP_CONCAT(DISTINCT b.remark  ORDER BY b.sort ASC  SEPARATOR ',') AS permission
 			FROM company_report_permission AS a
@@ -142,7 +142,7 @@ func GetCompanyPermissionByUserNoStatus(companyId int) (permission string, err e
 	return
 }
 
-//获取正式权限
+// 获取正式权限
 func GetCompanyPermissionByUserZhengShi(companyId int) (permission string, err error) {
 	sql := ` SELECT GROUP_CONCAT(DISTINCT b.remark  ORDER BY b.sort ASC  SEPARATOR ',') AS permission
 			FROM company_report_permission AS a
@@ -186,7 +186,7 @@ func GetCompanyDetailAllById(companyId int) (item *CompanyDetail, err error) {
 	return
 }
 
-//获取对应销售以及销售的手机号
+// 获取对应销售以及销售的手机号
 func GetSellerDetailAllByCompanyId(companyId int) (item *CompanyDetail, err error) {
 	sql := ` SELECT c.mobile ,c.real_name as seller_name
 			FROM
@@ -222,7 +222,7 @@ type CompanyProductDetial struct {
 	Scale     string `description:"管理规模,空不填,1::50亿以下,2:50~100亿,3:100亿以上。多个用, 隔开"`
 }
 
-//获取对应销售以及销售的手机号
+// 获取对应销售以及销售的手机号
 func GetCompanyProductDetail(companyId, productId int) (item *CompanyProductDetial, err error) {
 	sql := ` SELECT * FROM company_product WHERE company_id = ? AND product_id = ?; `
 	o := orm.NewOrm()
@@ -230,7 +230,7 @@ func GetCompanyProductDetail(companyId, productId int) (item *CompanyProductDeti
 	return
 }
 
-//获取公司详情详情
+// 获取公司详情详情
 func GetCompanyByName(companyName string) (item *Company, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT *  FROM company WHERE company_name = ? LIMIT 1`
@@ -238,7 +238,7 @@ func GetCompanyByName(companyName string) (item *Company, err error) {
 	return
 }
 
-//获取公司详情详情
+// 获取公司详情详情
 func GetCompanyByThirdName(tripartiteCompanyCode string) (item *Company, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT *  FROM company WHERE tripartite_company_code = ? LIMIT 1`
@@ -246,7 +246,7 @@ func GetCompanyByThirdName(tripartiteCompanyCode string) (item *Company, err err
 	return
 }
 
-//更新机构互动量
+// 更新机构互动量
 func UpdateComapanyInteractionNum(interactionNum, companyId int) (err error) {
 	o := orm.NewOrm()
 	sql := `UPDATE company SET interaction_num = ? WHERE company_id=? `

+ 4 - 4
models/company_activity_trip.go

@@ -60,9 +60,9 @@ func GetCompanyPermissionByUserTrip(companyId int) (permission string, err error
 	return
 }
 
-//获取正式权限
+// 获取正式权限
 func GetCompanyPermissionByUserZhengShiTrip(companyId int) (permission string, err error) {
-	sql := ` SELECT GROUP_CONCAT(DISTINCT b.remark  ORDER BY b.sort ASC  SEPARATOR ',') AS permission
+	sql := ` SELECT GROUP_CONCAT(DISTINCT b.chart_permission_name  ORDER BY b.sort ASC  SEPARATOR ',') AS permission
 			FROM company_report_permission AS a
 			INNER JOIN chart_permission AS b ON a.chart_permission_id=b.chart_permission_id
 			INNER JOIN company_product AS c ON a.company_id=c.company_id AND a.product_id=c.product_id
@@ -76,7 +76,7 @@ func GetCompanyPermissionByUserZhengShiTrip(companyId int) (permission string, e
 	return
 }
 
-//GetCompanyReportPermissionUpgrade 获取升级的权限类型
+// GetCompanyReportPermissionUpgrade 获取升级的权限类型
 func GetCompanyReportPermissionUpgrade(companyId, productId int) (items []*CompanyReportPermission, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
@@ -109,7 +109,7 @@ func GetChartPermissionByIds(permissionIds []string) (list []*ChartPermission, e
 	return
 }
 
-//GetCompanyPermissionNameCheck 通过名称判断客户是否开了某一类型的权限
+// GetCompanyPermissionNameCheck 通过名称判断客户是否开了某一类型的权限
 func GetCompanyPermissionNameCheck(companyId, productId int, permissionName string) (count int, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT

+ 116 - 48
services/activity.go

@@ -14,7 +14,7 @@ import (
 	"time"
 )
 
-//修改活动状态
+// 修改活动状态
 func UpdateActivitySattus(cont context.Context) (err error) {
 	//defer func() {
 	//	if err != nil {
@@ -26,7 +26,7 @@ func UpdateActivitySattus(cont context.Context) (err error) {
 	return
 }
 
-//推送会议开始消息提醒60分钟前
+// 推送会议开始消息提醒60分钟前
 func SendActivityBeginMsg(cont context.Context) (err error) {
 	defer func() {
 		if err != nil {
@@ -81,7 +81,7 @@ func SendActivityBeginMsg(cont context.Context) (err error) {
 	return
 }
 
-//推送会议开始消息提醒15分钟前
+// 推送会议开始消息提醒15分钟前
 func SendActivityBeginMsgMeeting(cont context.Context) (err error) {
 	defer func() {
 		if err != nil {
@@ -126,7 +126,7 @@ func SendActivityBeginMsgMeeting(cont context.Context) (err error) {
 	return
 }
 
-//预约外呼名单,会前1小时自动发送邮件给专家组
+// 预约外呼名单,会前1小时自动发送邮件给专家组
 func SendEmailFileToExpert(cont context.Context) (err error) {
 	var msg string
 	var touser string
@@ -286,7 +286,7 @@ func EditOutboundMobile(cont context.Context) (err error) {
 	return
 }
 
-//同步用户绑定手机号以及区号
+// 同步用户绑定手机号以及区号
 func EditUserOutboundMobile(cont context.Context) (err error) {
 	defer func() {
 		if err != nil {
@@ -310,7 +310,7 @@ func EditUserOutboundMobile(cont context.Context) (err error) {
 	return
 }
 
-//获取 用户类型   //1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户;6、冻结客户;7、流失客户
+// 获取 用户类型   //1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户;6、冻结客户;7、流失客户
 func GetUserType(companyId int) (userType int, permissionStrnew string, err error) {
 
 	var permissionStr, permissionZhengShiStr string
@@ -330,7 +330,7 @@ func GetUserType(companyId int) (userType int, permissionStrnew string, err erro
 				err = errs
 				return
 			}
-			permissionStr, errs = models.GetCompanyPermissionByUser(companyId)
+			permissionStr, errs = models.GetCompanyPermission(companyId)
 			if errs != nil {
 				err = errs
 				return
@@ -341,32 +341,34 @@ func GetUserType(companyId int) (userType int, permissionStrnew string, err erro
 				return
 			}
 
-			//1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户
+			//1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户、 10: 30W套餐客户
 			//大套餐客户定义:医药、消费、科技、智造、策略。5个行业中任意4个及以上是正式权限的,属于大套餐客户(医药、消费、科技、智造需要主客观都开)
 			if companyDetail.Status == "永续" {
 				userType = 1
 			} else if companyDetail.Status == "试用" {
 				userType = 5
 			} else if companyDetail.Status == "正式" {
-				if permissionStr == "专家" {
-					userType = 4
-				} else if strings.Count(permissionZhengShiStr, "医药") == 2 && strings.Count(permissionZhengShiStr, "消费") == 2 && strings.Count(permissionZhengShiStr, "科技") == 2 && strings.Count(permissionZhengShiStr, "智造") == 2 {
-					userType = 2
-				} else {
-					userType = 3
-				}
-				if userType == 3 {
-					if !strings.Contains(permissionStr, "医药") && !strings.Contains(permissionStr, "消费") && !strings.Contains(permissionStr, "科技") && !strings.Contains(permissionStr, "智造") {
-						userType = 4
-					}
-				}
+				userType = 0
+				//if permissionStr == "专家" {
+				//	userType = 4
+				//}
+				//else if strings.Count(permissionZhengShiStr, "医药") == 2 && strings.Count(permissionZhengShiStr, "消费") == 2 && strings.Count(permissionZhengShiStr, "科技") == 2 && strings.Count(permissionZhengShiStr, "智造") == 2 && strings.Count(permissionZhengShiStr, "策略") == 1 {
+				//	userType = 2
+				//} else {
+				//	userType = 3
+				//}
+				//if userType == 3 {
+				//	if !strings.Contains(permissionStr, "医药") && !strings.Contains(permissionStr, "消费") && !strings.Contains(permissionStr, "科技") && !strings.Contains(permissionStr, "智造") {
+				//		userType = 4
+				//	}
+				//}
 			} else if companyDetail.Status == "冻结" {
 				userType = 6
 			} else if companyDetail.Status == "流失" {
 				userType = 7
 			}
 			//大套餐客户定义:医药、消费、科技、智造、策略。5个行业中任意4个及以上是正式权限的,属于大套餐客户(医药、消费、科技、智造需要主客观都开)
-			if userType == 3 {
+			if userType == 0 && companyDetail.Status == "正式" {
 				var permissionZhegnshiNum int
 				if strings.Count(permissionZhengShiStr, "医药") == 2 {
 					permissionZhegnshiNum++
@@ -383,8 +385,19 @@ func GetUserType(companyId int) (userType int, permissionStrnew string, err erro
 				if strings.Count(permissionZhengShiStr, "策略") == 1 {
 					permissionZhegnshiNum++
 				}
-				if permissionZhegnshiNum >= 4 {
+				if permissionZhegnshiNum == 5 {
 					userType = 2
+				} else if permissionZhegnshiNum == 4 {
+					userType = 10
+				} else {
+					permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(companyId)
+					if errs != nil {
+						err = errs
+						return
+					}
+					if permissionShengji != "" {
+						userType = 9
+					}
 				}
 			}
 		}
@@ -422,7 +435,7 @@ func GetShareNoPowe(activityInfo *models.ActivityDetail, permissionStr string, u
 	return
 }
 
-//处理活动本组们是否决策人权限
+// 处理活动本组们是否决策人权限
 func CheckUserPowerByActivityChoose(user *models.WxUserItem, activityInfo *models.ActivityDetail) (noPower bool, err error) {
 	//处理 见范围 1,仅本组可见 、2,全部客户可见
 	if activityInfo.VisibleRange == 1 {
@@ -491,7 +504,7 @@ func GetHavePower(activityInfo *models.ActivityDetail, permissionStr, companyDet
 	return
 }
 
-//获取活动列表查询权限的SQL
+// 获取活动列表查询权限的SQL
 // @Param   ChartPermissionIds   query   string  false     "行业id 多个用 , 隔开"
 // @Param   ActivityTypeIds   query   string  false     "活动类型id 多个用 , 隔开"
 // @Param   ActiveState   query   string  false       "活动进行状态 未开始:1、进行中2、已结束3"
@@ -534,25 +547,31 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 	permissionNameStr = strings.Replace(permissionNameStr, "(客观)", "", -1)
 	permissionNameStr = strings.TrimRight(permissionNameStr, ",")
 
+	mapUserType, e := GetActivityCcustomerTypeList()
+	if e != nil {
+		err = e
+		return
+	}
+	var userTypeStr string
+	userTypeStr = mapUserType[userType]
 	// 查研观向7.4-始终查询宏观的权限(无论是否有权限)
 	if permissionNameStr == `` {
 		permissionNameStr = `'宏观'`
 	} else {
 		permissionNameStr += `, '宏观'`
 	}
-
 	var condition string
 	var conditionAdmin string
 	var conditionHz string // 弘则权限处理
 	var sqlExport string   // 专家权限处理
 	permissionSqlStr = `  AND art.chart_permission_name  IN (` + permissionNameStr + `)`
-	sqlExport = ` AND (art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
-	if userType == 2 {
-		sqlExport += ` OR  art.customer_type_ids LIKE '%3%' `
-	}
-	if (userType == 2 || userType == 3) && strings.Contains(permissionStr, "专家") {
-		sqlExport += ` OR  art.customer_type_ids LIKE '%4%' `
-	}
+	sqlExport = ` AND (art.customer_type_ids LIKE '%` + userTypeStr + `%' `
+	//if userType == 2 {
+	//	sqlExport += ` OR  art.customer_type_ids LIKE '%3%' `
+	//}
+	//if (userType == 2 || userType == 3) && strings.Contains(permissionStr, "专家") {
+	//	sqlExport += ` OR  art.customer_type_ids LIKE '%4%' `
+	//}
 	sqlExport += `) `
 	// 如果是C类电话会就不展示内容,且合并到分析师电话会
 	if activityTypeId != "" {
@@ -686,6 +705,55 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 	//查询全部可见的数据(是否全部客户可见)
 	//condition += ` AND art.visible_range != 1  AND art.publish_status = 1 `
 	condition += `   AND art.publish_status = 1 `
+
+	permissionZhengShiStr, errs := models.GetCompanyPermissionByUserZhengShi(user.CompanyId)
+	if errs != nil {
+		err = errs
+		return
+	}
+	//3:该活动对应行业为正式状态的客户 查询处理
+	if permissionZhengShiStr != "" {
+		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.is_limit_people = 1 AND art.customer_type_ids LIKE '%3%'	   AND art.chart_permission_name  IN (` + permissionZhengShiStr + `)` + condition + `) `
+	}
+
+	// 8: 行业升级套餐客户:该活动对应行业为升级权限的客户
+	permissionShengji, errs := models.GetCompanyPermissionByUserZhengShiTrip(user.CompanyId)
+	if errs != nil {
+		err = errs
+		return
+	}
+	if permissionShengji != "" {
+		slicePerShengji := strings.Split(permissionShengji, ",")
+		permissionShengji = ""
+		for _, v := range slicePerShengji {
+			if userType == 1 {
+				//研选权限处理(永续客户无法查看研选)
+				if !strings.Contains(v, utils.CHART_PERMISSION_NAME_YANXUAN) {
+					permissionShengji += "'" + v + "',"
+				}
+			} else {
+				permissionShengji += "'" + v + "',"
+			}
+		}
+		permissionShengji = strings.TrimRight(permissionShengji, ",")
+		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%8%'	   AND art.chart_permission_name  IN (` + permissionShengji + `)` + condition + `) `
+	}
+
 	conditionHz = condition
 
 	//活动仅决策人可见
@@ -715,7 +783,7 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 	}
 
 	if adminIds != "" {
-		conditionOr += ` OR (  art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' ` + ` AND  art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
+		conditionOr += ` OR (  art.customer_type_ids LIKE '%` + userTypeStr + `%' ` + ` AND  art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
 		if companyProduct != nil {
 			if companyProduct.Scale != "" {
 				conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'` + ` AND  art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
@@ -739,7 +807,7 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 	return
 }
 
-//研选系列专家电话会,会前1小时将问题列表发送给邮箱
+// 研选系列专家电话会,会前1小时将问题列表发送给邮箱
 func SendEmailFileForAskMsgResearch(cont context.Context) (err error) {
 	var msg string
 	//var touser string
@@ -817,7 +885,7 @@ func SendEmailFileForAskMsgResearch(cont context.Context) (err error) {
 	return
 }
 
-//非研选系列专家电话会,根据主持人姓名,会前15分钟将问题列表发送给至该主持人对应邮箱
+// 非研选系列专家电话会,根据主持人姓名,会前15分钟将问题列表发送给至该主持人对应邮箱
 func SendEmailFileForAskMsg(cont context.Context) (err error) {
 	var msg string
 	//var touser string
@@ -907,7 +975,7 @@ func SendEmailFileForAskMsg(cont context.Context) (err error) {
 	return
 }
 
-//活动标签字符串处理
+// 活动标签字符串处理
 func LabelStr(label string) (labelNew string) {
 	slicebr := strings.Split(label, "-")
 	if len(slicebr) < 2 {
@@ -918,7 +986,7 @@ func LabelStr(label string) (labelNew string) {
 	return labelNew
 }
 
-//5.3版本活动标签字符串处理
+// 5.3版本活动标签字符串处理
 func LabelStrV5(label string, isShowSubjectName int, temporaryLabel string) (labelNew string) {
 	slicebr := strings.Split(label, "-")
 	if len(slicebr) > 1 {
@@ -1218,7 +1286,7 @@ func ActivityAttendanceDetail(cont context.Context) (err error) {
 	return
 }
 
-//判断是否加入黑名单
+// 判断是否加入黑名单
 func AddCygxActivityRestrictSignupByAdmin(activityId int) (err error) {
 	total, err := models.GetActivitySignupNomeetingCount(activityId)
 	if err != nil {
@@ -1304,7 +1372,7 @@ func AddCygxActivityRestrictSignupByAdmin(activityId int) (err error) {
 	return
 }
 
-//判断预约纪要按钮是否显示
+// 判断预约纪要按钮是否显示
 func IsShowAppointment(activityTypeId int, chartPermissionName string) (isShowAppointment bool) {
 	if activityTypeId == 1 || activityTypeId == 2 || activityTypeId == 3 || activityTypeId == 4 {
 		isShowAppointment = true
@@ -1315,7 +1383,7 @@ func IsShowAppointment(activityTypeId int, chartPermissionName string) (isShowAp
 	return
 }
 
-//判断预约纪要按钮是否显示
+// 判断预约纪要按钮是否显示
 func IsShowAppointmentByactivityInfo(item *models.ActivityDetail, chartPermissionName string) (isShowAppointment bool) {
 	activityTypeId := item.ActivityTypeId
 	if activityTypeId == 1 || activityTypeId == 3 || activityTypeId == 4 {
@@ -1330,7 +1398,7 @@ func IsShowAppointmentByactivityInfo(item *models.ActivityDetail, chartPermissio
 	return
 }
 
-//用户报告操作行为,模板消息推送 (先放在活动模块下,避免代码冲突)
+// 用户报告操作行为,模板消息推送 (先放在活动模块下,避免代码冲突)
 func ArticleUserRemind(user *models.WxUserItem, articleDetail *models.ArticleDetail, source int) (err error) {
 	defer func() {
 		if err != nil {
@@ -1373,7 +1441,7 @@ func ArticleUserRemind(user *models.WxUserItem, articleDetail *models.ArticleDet
 	return
 }
 
-//用户活动操作行为,模板消息推送
+// 用户活动操作行为,模板消息推送
 func ActivityUserRemind(user *models.WxUserItem, activityDetail *models.ActivityDetail, source int) (err error) {
 	defer func() {
 		if err != nil {
@@ -1419,7 +1487,7 @@ func ActivityUserRemind(user *models.WxUserItem, activityDetail *models.Activity
 	return
 }
 
-//用户专项调研操作行为,模板消息推送
+// 用户专项调研操作行为,模板消息推送
 func SpecialActivityUserRemind(user *models.WxUserItem, activityDetail *models.CygxActivitySpecialDetail, source int) (err error) {
 	defer func() {
 		if err != nil {
@@ -1462,7 +1530,7 @@ func SpecialActivityUserRemind(user *models.WxUserItem, activityDetail *models.C
 //	DoActivityOnenIdWxTemplateMsg()
 //}
 
-//周日下午四点半推送全部活动
+// 周日下午四点半推送全部活动
 func DoActivityOnenIdWxTemplateMsg(cont context.Context) (err error) {
 	var msg string
 	defer func() {
@@ -1644,7 +1712,7 @@ func GetActivityNewLabelMap(activityIds []int) (labelMap map[int]bool, industryN
 	return
 }
 
-//GetActivityVoiceResp 处理活动音频回放
+// GetActivityVoiceResp 处理活动音频回放
 func GetActivityVoiceResp(mapActivityId []int) (mapItem map[int]*models.CygxActivityVoiceReq, err error) {
 	activityVoiceList, err := models.GetCygxActivityVoiceReqList(mapActivityId)
 	if err != nil && err.Error() != utils.ErrNoRow() {
@@ -1661,7 +1729,7 @@ func GetActivityVoiceResp(mapActivityId []int) (mapItem map[int]*models.CygxActi
 	return
 }
 
-//AddActivitykeyWordSearch 添加活动搜索记录
+// AddActivitykeyWordSearch 添加活动搜索记录
 func AddActivitykeyWordSearch(keyWordSearch string, user *models.WxUserItem) {
 	if keyWordSearch != "" {
 		keyWordItem := new(models.CygxUserSearchKeyWord)
@@ -1673,7 +1741,7 @@ func AddActivitykeyWordSearch(keyWordSearch string, user *models.WxUserItem) {
 	}
 }
 
-//GetActivityVideoResp 处理活动视频频回放
+// GetActivityVideoResp 处理活动视频频回放
 func GetActivityVideoResp(mapActivityId []int) (mapItem map[int]*models.CygxActivityVideoListResp, err error) {
 	var condition string
 	var ativityVIdstr string
@@ -1705,7 +1773,7 @@ func GetActivityVideoResp(mapActivityId []int) (mapItem map[int]*models.CygxActi
 	return
 }
 
-//用户音视频回放操作操作行为,模板消息推送
+// 用户音视频回放操作操作行为,模板消息推送
 func ActivityVideoUserRmind(user *models.WxUserItem, activityId, fileType int) (err error) {
 	defer func() {
 		if err != nil {

+ 15 - 0
services/admin.go

@@ -15,3 +15,18 @@ func GetAdminMobileMap() (mapItem map[string]string, err error) {
 	mapItem = mapMobile
 	return
 }
+
+func GetActivityCcustomerTypeList() (mapItem map[int]string, err error) {
+	list, e := models.GetActivityCcustomerTypeList()
+	if e != nil {
+		err = e
+		return
+	}
+	mapUserType := make(map[int]string)
+	for _, v := range list {
+		mapUserType[v.CustomerTypeId] = v.PermissionValue
+	}
+	mapUserType[0] = "0"
+	mapItem = mapUserType
+	return
+}