Browse Source

no message

xingzai 7 months ago
parent
commit
56c6adb528

+ 28 - 0
models/rai_serve/user_feedback.go

@@ -0,0 +1,28 @@
+package rai_serve
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+)
+
+// 权益服务明细表
+type CygxUserFeedback struct {
+	UserFeedbackId int    `orm:"column(user_feedback_id);pk";comment:"主键id"`
+	Content        string `comment:"服务内容说明"`
+	UserId         int    `comment:"用户ID"`
+	Mobile         string `comment:"手机号"`
+	Email          string `comment:"邮箱"`
+	CompanyId      int    `comment:"公司ID"`
+	CompanyName    string `comment:"公司名称"`
+	RealName       string `comment:"用户实际名称"`
+	CreateTime     string `comment:"创建时间"`
+}
+
+func GetCygxUserFeedbackList(condition string, pars []interface{}) (items []*CygxUserFeedback, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT *
+			FROM
+			cygx_user_feedback
+			WHERE 1 = 1 ` + condition
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}

+ 89 - 0
models/roadshow/rs_calendar_meeting_user.go

@@ -0,0 +1,89 @@
+package roadshow
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_cygx/utils"
+	"time"
+)
+
+type RsCalendarMeetingUserResp struct {
+	RsCalendarMeetingUserId int    `description:"参会名单主键ID"`
+	RealName                string `description:"用户实际名称"`
+	Position                string `description:"职位"`
+}
+
+type RsCalendarMeetingUser struct {
+	RsCalendarMeetingUserId int    `orm:"column(rs_calendar_meeting_user_id);pk" description:"主键ID"`
+	RsCalendarId            int    `description:"日程ID"`
+	UserId                  int    `description:"用户ID"`
+	Mobile                  string `description:"手机号"`
+	Email                   string `description:"邮箱"`
+	CompanyId               int    `description:"公司ID"`
+	CompanyName             string `description:"公司名称"`
+	RealName                string `description:"用户实际名称"`
+	Position                string `description:"职位"`
+	AdminId                 int    `description:"管理员ID"`
+	AdminName               string `description:"管理员姓名"`
+	StartDate               string `description:"开始日期"`
+	EndDate                 string `description:"结束日期"`
+	StartTime               string `description:"开始时间"`
+	EndTime                 string `description:"结束时间"`
+}
+
+// 列表
+func GetRsCalendarMeetingUserList(condition string, pars []interface{}) (items []*RsCalendarMeetingUser, err error) {
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := `SELECT
+    		art.rs_calendar_id,
+			art.user_id,
+			art.real_name,
+			art.mobile,
+			art.email,
+			art.company_id,
+			art.company_name,
+			rs.start_time,
+			rs.start_date
+	FROM rs_calendar_meeting_user as  art 
+         inner join  rs_calendar_researcher as  rs ON rs.rs_calendar_id = art.rs_calendar_id
+         WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+type RsCalendarResearcher struct {
+	RsCalendarResearcherId int    `orm:"column(rs_calendar_researcher_id);pk"`
+	RsCalendarId           int    `description:"日历活动id"`
+	ResearcherId           int    `description:"研究员id"`
+	ResearcherName         string `description:"研究员名称"`
+	StartDate              string `description:"开始日期"`
+	EndDate                string `description:"结束日期"`
+	StartTime              string `description:"开始时间"`
+	EndTime                string `description:"结束时间"`
+	StartWeek              string `description:"开始日期对应周"`
+	EndWeek                string `description:"结束日期对应周"`
+	CreateTime             time.Time
+	ModifyTime             time.Time
+	Status                 int       `description:"状态:1:待接受,2:已接受,3:已拒绝,4:已删除,5:已撤回,6:已结束"`
+	RefuseReason           string    `description:"拒绝理由"`
+	RefuseTime             time.Time `description:"拒绝时间"`
+	DeleteReason           string    `description:"删除理由"`
+	DeleteTime             time.Time `description:"删除时间"`
+	ApproveTime            time.Time `description:"接受时间"`
+	IsSynced               int       `description:"是否与上海同步 0:未同步 1:已同步"`
+	ResearcherSort         int       `description:"研究员新增排序"`
+	UnionCode              string    `description:"公开会议联合编码"`
+}
+
+// 根据多个路演ID获取研究员信息
+func GetRsCalendarResearcherListByIds(rsCalendarIds []int) (item []*RsCalendarResearcher, err error) {
+	if len(rsCalendarIds) == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("weekly_report")
+	sql := `SELECT * FROM rs_calendar_researcher WHERE rs_calendar_id IN (` + utils.GetOrmInReplace(len(rsCalendarIds)) + `) `
+	_, err = o.Raw(sql, rsCalendarIds).QueryRows(&item)
+	return
+}

+ 89 - 20
services/rai_serve_count.go

@@ -7,6 +7,7 @@ import (
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/models/company"
 	"hongze/hongze_cygx/models/rai_serve"
+	"hongze/hongze_cygx/models/roadshow"
 	"hongze/hongze_cygx/utils"
 	"strings"
 	"time"
@@ -558,9 +559,9 @@ func RaiServeBillRedisAddReduceByYanxuanspecial(log rai_serve.RaiServeBillRedis)
 	return
 }
 
-func init() {
-	UpdateCygxRaiServeBillByCompanyIds()
-}
+//func init() {
+//	UpdateCygxRaiServeBillByCompanyIds()
+//}
 
 // 批量更新企业服务明细记录
 func UpdateCygxRaiServeBillByCompanyIds() (err error) {
@@ -866,37 +867,52 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 
 	//1v1路演
 	{
-		condition = " AND  art.company_id IN  (" + utils.GetOrmInReplace(lencompanyId) + ")  AND a.activity_time > ?  "
-		activitySpecialList, e := models.GetCygxActivitySpecialMeetingDetailList(condition+"  ORDER BY a.activity_time ASC ", pars)
+		condition = " AND  art.company_id IN  (" + utils.GetOrmInReplace(lencompanyId) + ")  AND rs.start_date > ?  "
+		calendarMeetingUserList, e := roadshow.GetRsCalendarMeetingUserList(condition+"  ORDER BY rs.start_date ASC ", pars)
 		if e != nil {
-			err = errors.New("GetCygxActivitySpecialMeetingDetailList, Err: " + e.Error())
+			err = errors.New("GetRsCalendarMeetingUserList, Err: " + e.Error())
+			return
+		}
+		var rsCalendarIds []int
+		for _, v := range calendarMeetingUserList {
+			rsCalendarIds = append(rsCalendarIds, v.RsCalendarId)
+		}
+
+		//获取研究员信息
+		researchers, e := roadshow.GetRsCalendarResearcherListByIds(rsCalendarIds)
+		if e != nil {
+			err = errors.New("GetRsCalendarResearcherListByIds, Err: " + e.Error())
 			return
 		}
+		mapResearcherName := make(map[int][]string)
+		for _, v := range researchers {
+			mapResearcherName[v.RsCalendarId] = append(mapResearcherName[v.RsCalendarId], v.ResearcherName)
+		}
 
 		//专项调研活动明细
 		var conditionBill string
 		var parsBill []interface{}
-		conditionBill = " AND source = 'activityspecial' AND   company_id IN  (" + utils.GetOrmInReplace(lencompanyId) + ")  AND view_time > ?  "
+		conditionBill = " AND source = 'rscalendar' AND   company_id IN  (" + utils.GetOrmInReplace(lencompanyId) + ")  AND view_time > ?  "
 		parsBill = append(parsBill, companyIds, createTime)
-		listBillByArticle, e := rai_serve.GetCygxRaiServeBillListAll(conditionBill, parsBill)
+		listBillByRscalendar, e := rai_serve.GetCygxRaiServeBillListAll(conditionBill, parsBill)
 		if e != nil {
 			err = errors.New("GetCygxRaiServeBillListAll, Err: " + e.Error())
 			return
 		}
 
-		mapArticleBill := make(map[string]bool)
-		for _, v := range listBillByArticle {
-			mapArticleBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] = true
+		mapRscalendarBill := make(map[string]bool)
+		for _, v := range listBillByRscalendar {
+			mapRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] = true
 		}
 
-		for _, v := range activitySpecialList {
-			if mapArticleBill[fmt.Sprint("UID_", v.UserId, "SID_", v.ActivityId)] { // 如果内容存在就不插入
+		for _, v := range calendarMeetingUserList {
+			if mapRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.RsCalendarId)] { // 如果内容存在就不插入
 				continue
 			}
 			item := new(rai_serve.CygxRaiServeBill)
-			item.Content = v.ResearchTheme
-			item.ServeTypeId = 3
-			item.ServeTypeName = "专项调研"
+			item.Content = strings.Join(mapResearcherName[v.RsCalendarId], ",")
+			item.ServeTypeId = 4
+			item.ServeTypeName = "一对一路演"
 			item.UserId = v.UserId
 			item.Mobile = v.Mobile
 			item.Email = v.Email
@@ -904,20 +920,73 @@ func UpdateCygxRaiServeBillByCompanyIds() (err error) {
 			item.CompanyName = v.CompanyName
 			item.RealName = v.RealName
 			//item.RegisterPlatform = v.RegisterPlatform
-			item.ServeCount = 1
+			item.ServeCount = 1.5
 			if mapUserMaker[v.UserId] {
 				item.IsKp = 1
 				item.ServeCount = item.ServeCount * 3
 			}
-			item.SourceId = v.ActivityId
-			item.Source = utils.CYGX_OBJ_ACTIVITYSPECIAL
+			item.SourceId = v.RsCalendarId
+			item.Source = utils.CYGX_OBJ_RS_CALENDAR
 			item.CreateTime = time.Now()
-			item.ViewTime = v.ActivityTime
+			item.ViewTime = v.StartDate + " " + v.StartTime
 			items = append(items, item)
 		}
 	}
 	//1v1路演 end
 
+	//交流反馈
+	{
+		condition = " AND  company_id IN  (" + utils.GetOrmInReplace(lencompanyId) + ")  AND create_time > ?  "
+		userFeedbackList, e := rai_serve.GetCygxUserFeedbackList(condition+"  ORDER BY  user_feedback_id ASC ", pars)
+		if e != nil {
+			err = errors.New("GetCygxUserFeedbackList, Err: " + e.Error())
+			return
+		}
+
+		//交流反馈明细
+		var conditionBill string
+		var parsBill []interface{}
+		conditionBill = " AND source = 'userfeedback' AND   company_id IN  (" + utils.GetOrmInReplace(lencompanyId) + ")  AND view_time > ?  "
+		parsBill = append(parsBill, companyIds, createTime)
+		listBillByuserFeedback, e := rai_serve.GetCygxRaiServeBillListAll(conditionBill, parsBill)
+		if e != nil {
+			err = errors.New("GetCygxRaiServeBillListAll, Err: " + e.Error())
+			return
+		}
+
+		mapRscalendarBill := make(map[string]bool)
+		for _, v := range listBillByuserFeedback {
+			mapRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.SourceId)] = true
+		}
+
+		for _, v := range userFeedbackList {
+			if mapRscalendarBill[fmt.Sprint("UID_", v.UserId, "SID_", v.UserFeedbackId)] { // 如果内容存在就不插入
+				continue
+			}
+			item := new(rai_serve.CygxRaiServeBill)
+			item.Content = v.Content
+			item.ServeTypeId = 6
+			item.ServeTypeName = "交流反馈"
+			item.UserId = v.UserId
+			item.Mobile = v.Mobile
+			item.Email = v.Email
+			item.CompanyId = v.CompanyId
+			item.CompanyName = v.CompanyName
+			item.RealName = v.RealName
+			item.ServeCount = 1
+			if mapUserMaker[v.UserId] {
+				item.IsKp = 1
+				item.ServeCount = item.ServeCount * 3
+			}
+			item.SourceId = v.UserFeedbackId
+			item.Source = utils.CYGX_OBJ_USER_FEEDBACK
+			item.CreateTime = time.Now()
+			item.ViewTime = v.CreateTime
+			items = append(items, item)
+		}
+	}
+	//交流反馈 end
+
 	fmt.Println(len(items))
 	e = rai_serve.AddCygxRaiServeBillMulti(items)
 	if e != nil {

+ 2 - 0
utils/constants.go

@@ -263,6 +263,8 @@ const (
 	CYGX_OBJ_NEWCHART            string = "newchart"           // 对象类型:图表
 	CYGX_OBJ_INDUSTRIALSOURCE_HZ string = "industrialsourceHz" // 对象类型:弘则资源包
 	CYGX_OBJ_INDUSTRIALSOURCE_YX string = "industrialsourceYx" // 对象类型:研选资源包
+	CYGX_OBJ_RS_CALENDAR         string = "rscalendar"         // 对象类型:研究员日历安排
+	CYGX_OBJ_USER_FEEDBACK       string = "userfeedback"       // 对象类型:用户交流反馈
 )
 
 const (