Browse Source

Merge branch 'crm/crm_16.2' of http://8.136.199.33:3000/hongze/hz_crm_api

xingzai 5 months ago
parent
commit
70fdf8a6ec
2 changed files with 134 additions and 10 deletions
  1. 114 9
      controllers/roadshow/calendar.go
  2. 20 1
      models/roadshow/calendar.go

+ 114 - 9
controllers/roadshow/calendar.go

@@ -205,6 +205,20 @@ func (this *CalendarController) Add() {
 		return
 	}
 
+	//如果是权益客户,添加销售跟共享销售的信息
+	var productItemRai *company.CompanyProduct
+	roleTypeCode := sysUser.RoleTypeCode
+	//如果是权益销售、权益销售组长、权益管理员 添加的路演信息,做销售与共享销售信息关联查看
+	if req.CompanyId > 0 && req.ActivityType == "路演" && (roleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER ||
+		roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN) {
+		productItemRai, err = company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, utils.COMPANY_PRODUCT_RAI_ID)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "客户信息有误"
+			br.ErrMsg = "获取客户信息失败, Err: " + err.Error()
+			return
+		}
+	}
+
 	rsCalendar := new(roadshow.RsCalendar)
 	rsCalendar.SysUserId = sysUser.AdminId
 	rsCalendar.SysUserRealName = sysUser.RealName
@@ -226,6 +240,10 @@ func (this *CalendarController) Add() {
 	rsCalendar.Source = 0
 	rsCalendar.EnglishCompany = req.EnglishCompany
 	rsCalendar.Title = getTitle(req.ActivityType, req.RoadshowType, req.ActivityCategory, req.RoadshowPlatform, req.Province, req.City)
+	if productItemRai != nil {
+		rsCalendar.SellerId = productItemRai.SellerId
+		rsCalendar.ShareSellerId = productItemRai.ShareSellerId
+	}
 	rsCalendarId, err := roadshow.AddRsCalendar(rsCalendar)
 	if err != nil {
 		br.Msg = "保存失败!"
@@ -1188,9 +1206,9 @@ func (this *CalendarController) CalendarList() {
 	roleTypeCode := sysUser.RoleTypeCode
 	//销售
 	if roleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER ||
-		roleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER ||
+		//roleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER ||
 		roleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP ||
-		roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP ||
+		//roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP ||
 		roleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM ||
 		roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
 		condition += ` AND a.sys_user_id=?`
@@ -1198,6 +1216,15 @@ func (this *CalendarController) CalendarList() {
 		//condition += ` AND a.activity_type IN('路演','公开会议') `
 	}
 
+	//权益销售
+	if roleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER ||
+		roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
+		//if calendarType == 2 {
+		condition += ` AND  ( a.sys_user_id=?  OR a.seller_id=?  OR a.share_seller_id=?  )  `
+		pars = append(pars, sysUser.AdminId, sysUser.AdminId, sysUser.AdminId)
+		//}
+	}
+
 	if roleTypeCode == utils.ROLE_TYPE_CODE_FICC_RESEARCHR ||
 		roleTypeCode == utils.ROLE_TYPE_CODE_RESEARCHR ||
 		roleTypeCode == utils.ROLE_TYPE_CODE_RAI_RESEARCHR ||
@@ -1237,7 +1264,7 @@ func (this *CalendarController) CalendarList() {
 		br.ErrMsg = "参数错误,calendarType:" + strconv.Itoa(calendarType)
 		return
 	}
-
+	fmt.Println(condition)
 	resp := new(roadshow.CalendarListResp)
 	total, err := roadshow.GetCalendarListCount(condition, pars, calendarType)
 	if err != nil && err.Error() != utils.ErrNoRow() {
@@ -1282,6 +1309,18 @@ func (this *CalendarController) CalendarList() {
 			englishMap[englishList[i].CompanyId] = englishList[i]
 		}
 	}
+
+	//获取所有自定义的权益研究员
+	sysUserList, err := cygx.GetAskEmailList()
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,GetAskEmailList Err: " + err.Error()
+		return
+	}
+	raiAskadminMap := make(map[string]bool, 0)
+	for _, v := range sysUserList {
+		raiAskadminMap[strconv.Itoa(v.AdminId)] = true
+	}
 	mapRaiSllerId := make(map[int]bool)  // 是否为权益销售
 	mapMeetingCount := make(map[int]int) // 路演参会人员数量
 	if len(adminIds) > 0 {
@@ -1323,6 +1362,15 @@ func (this *CalendarController) CalendarList() {
 				dataList[i].ViewButton = true
 			}
 		}
+		//权益研究员的【路演】和【沙龙】,未结束时,显示修改按钮
+		if raiAskadminMap[dataList[i].ResearcherId] && utils.InArrayByStr([]string{"路演", "沙龙"}, dataList[i].ActivityType) && dataList[i].Status == 2 {
+			//未开始的才展示修改按钮
+			startTimeStr := dataList[i].StartDate + " " + dataList[i].StartTime
+			startTime := utils.StrTimeToTime(startTimeStr)
+			if startTime.After(time.Now()) {
+				dataList[i].EditButton = true
+			}
+		}
 	}
 
 	resp.Paging = page
@@ -2430,13 +2478,22 @@ func (this *CalendarController) MyCalendarDetail() {
 
 	roleTypeCode := sysUser.RoleTypeCode
 	fmt.Println("roleTypeCode:", roleTypeCode)
-	//销售
-	sales := isSellerRole(sysUser.RoleTypeCode)
-	if sales || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN { // 王芳也作为销售身份处理
-		condition += ` AND a.sys_user_id=?`
-		pars = append(pars, sysUser.AdminId)
 
-		condition += ` AND a.activity_type IN('路演','公开会议','沙龙') `
+	//权益销售
+	if roleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER ||
+		roleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
+		//if calendarType == 2 {
+		condition += ` AND  ( a.sys_user_id=?  OR a.seller_id=?  OR a.share_seller_id=?  )  `
+		pars = append(pars, sysUser.AdminId, sysUser.AdminId, sysUser.AdminId)
+		//}
+	} else {
+		//销售
+		sales := isSellerRole(sysUser.RoleTypeCode)
+		if sales || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN { // 王芳也作为销售身份处理
+			condition += ` AND a.sys_user_id=?`
+			pars = append(pars, sysUser.AdminId)
+			condition += ` AND a.activity_type IN('路演','公开会议','沙龙') `
+		}
 	}
 
 	//研究员
@@ -2867,3 +2924,51 @@ func isSellerRole(roleType string) (ok bool) {
 	}
 	return
 }
+
+//func init() {
+//	init16_2()
+//}
+//
+//func init16_2() {
+//	listDate, err := roadshow.GetRsCalendarResearcherListInit16_2()
+//	if err != nil {
+//		fmt.Println(err)
+//		return
+//	}
+//
+//	sysUserList, err := system.GetAdminList()
+//	if err != nil {
+//		fmt.Println(err)
+//		return
+//	}
+//	adminMap := make(map[int]*system.Admin, 0)
+//	for _, v := range sysUserList {
+//		adminMap[v.AdminId] = v
+//	}
+//
+//	for k, v := range listDate {
+//		fmt.Println(k, "__", v.CompanyId)
+//		//如果是权益客户,添加销售跟共享销售的信息
+//		var productItemRai *company.CompanyProduct
+//
+//		productItemRai, err = company.GetCompanyProductByCompanyIdAndProductId(v.CompanyId, utils.COMPANY_PRODUCT_RAI_ID)
+//		if err != nil && err.Error() != utils.ErrNoRow() {
+//			fmt.Println(err)
+//			return
+//		}
+//
+//		var RoleTypeCode string
+//		if adminMap[v.SysUserId] != nil {
+//			RoleTypeCode = adminMap[v.SysUserId].RoleTypeCode
+//		}
+//
+//		if productItemRai != nil && (RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP || RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER || RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN) {
+//			err = roadshow.UpdateRsCalendarSeller(productItemRai.SellerId, productItemRai.ShareSellerId, productItemRai.CompanyId)
+//			if err != nil && err.Error() != utils.ErrNoRow() {
+//				fmt.Println(err)
+//				return
+//			}
+//		}
+//	}
+//
+//}

+ 20 - 1
models/roadshow/calendar.go

@@ -64,6 +64,8 @@ type RsCalendar struct {
 	IsSynced         int    `description:"是否与上海同步 0:未同步 1:已同步"`
 	UnionCode        string `description:"公开会议联合编码"`
 	EnglishCompany   int    `description:"是否为英文客户: 0-否; 1-是"`
+	SellerId         int    `description:"销售id"`
+	ShareSellerId    int    `description:"共享销售员id"`
 }
 
 type RsCalendarResearcher struct {
@@ -298,6 +300,7 @@ type CalendarListView struct {
 	EnglishViewTotal       int    `description:"英文客户-累计点击量"`
 	SubmitButton           bool   `description:"提交按钮是否展示"`
 	ViewButton             bool   `description:"查看按钮是否展示"`
+	EditButton             bool   `description:"修改按钮是否展示"`
 }
 
 type CalendarListResp struct {
@@ -369,7 +372,8 @@ func GetCalendarList(condition string, pars []interface{}, startSize, pageSize,
 		if calendarType == 1 {
 			sql += ` ORDER BY b.create_time ASC LIMIT ?,? `
 		} else {
-			sql += ` ORDER BY b.create_time DESC LIMIT ?,? `
+			//sql += ` ORDER BY b.create_time DESC LIMIT ?,? `
+			sql += ` ORDER BY b.start_date DESC , b.start_time DESC  LIMIT ?,? ` // 已处理申请,按照活动开始时间倒序(包括ficc的)
 		}
 		_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
 	}
@@ -999,3 +1003,18 @@ func GetOverseaCustomCalendarList2(sellerId, researcherId, startDate, endDate, c
 
 	return
 }
+
+func GetRsCalendarResearcherListInit16_2() (item []*RsCalendar, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM  rs_calendar WHERE activity_type = '路演' AND company_id > 0   GROUP BY company_id  `
+	_, err = o.Raw(sql).QueryRows(&item)
+	return
+}
+
+// 修改可见范围
+func UpdateRsCalendarSeller(seller_id, share_seller_id, company_id int) (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE rs_calendar SET seller_id=?, share_seller_id= ?   WHERE company_id =?  `
+	_, err = o.Raw(sql, seller_id, share_seller_id, company_id).Exec()
+	return
+}