Browse Source

no message

xingzai 7 months ago
parent
commit
66030feebd

+ 103 - 85
controllers/roadshow/calendar_meeting_user.go

@@ -46,82 +46,68 @@ func (this *CalendarMeetingUserController) Add() {
 
 	rsCalendarId := req.RsCalendarId
 	userIds := req.UserId
-	tagId := req.TagId
-	tagType := req.TagType
+	tagList := req.TagList
 
-	totalGroup, err := roadshow.GetRsCalendarMeetingLabelGroupByRsCalendarId(rsCalendarId)
+	if rsCalendarId == 0 {
+		br.Msg = "路演信息错误!"
+		return
+	}
+
+	var itemsGroup []*roadshow.RsCalendarMeetingLabelGroup
+	for _, v := range tagList {
+		itemGroup := new(roadshow.RsCalendarMeetingLabelGroup)
+		itemGroup.RsCalendarId = rsCalendarId
+		itemGroup.TagType = v.TagType
+		itemGroup.TagId = v.TagId
+		itemGroup.AdminId = sysUser.AdminId
+		itemGroup.AdminName = sysUser.RealName
+		itemGroup.CreateTime = time.Now()
+		itemGroup.ModifyTime = time.Now()
+		itemsGroup = append(itemsGroup, itemGroup)
+	}
+	err = roadshow.AddRsCalendarMeetingLabelGroupMulti(itemsGroup, rsCalendarId)
 	if err != nil {
 		br.Msg = "获取信息失败!"
-		br.ErrMsg = "获取用户信息失败-GetRsCalendarMeetingLabelGroupByRsCalendarId!Err:" + err.Error()
+		br.ErrMsg = "获取信息失败-AddRsCalendarMeetingLabelGroupMulti!Err:" + err.Error()
 		return
 	}
-	itemGroup := new(roadshow.RsCalendarMeetingLabelGroup)
-	itemGroup.RsCalendarId = rsCalendarId
-	itemGroup.TagType = tagType
-	itemGroup.TagId = tagId
-	itemGroup.AdminId = sysUser.AdminId
-	itemGroup.AdminName = sysUser.RealName
-	itemGroup.CreateTime = time.Now()
-	itemGroup.ModifyTime = time.Now()
-	if totalGroup == 0 {
-		err = roadshow.AddRsCalendarMeetingLabelGroup(itemGroup)
+
+	if len(userIds) > 0 {
+		var userIdsStr []string
+		for _, v := range userIds {
+			userIdsStr = append(userIdsStr, strconv.Itoa(v))
+		}
+		listUser, err := models.GetWxUserListByUserIdsHaveCompany(strings.Join(userIdsStr, ","))
 		if err != nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "获取信息失败-AddRsCalendarMeetingLabelGroup!Err:" + err.Error()
+			br.Msg = "获取用户信息失败!"
+			br.ErrMsg = "获取用户信息失败-GetWxUserListByUserIdsHaveCompany!Err:" + err.Error()
 			return
 		}
-	} else {
-		err = roadshow.UpdateProductInterior(itemGroup)
+
+		var items []*roadshow.RsCalendarMeetingUser
+		for _, v := range listUser {
+			item := new(roadshow.RsCalendarMeetingUser)
+			item.RsCalendarId = rsCalendarId
+			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.Position = v.Position
+			item.AdminId = sysUser.AdminId
+			item.AdminName = sysUser.RealName
+			item.CreateTime = time.Now()
+			item.ModifyTime = time.Now()
+			items = append(items, item)
+		}
+		err = roadshow.MultiAddRsCalendarMeetingUser(items)
 		if err != nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "获取信息失败-UpdateProductInterior!Err:" + err.Error()
+			br.Msg = "操作失败!"
+			br.ErrMsg = "操作失败-MultiAddRsCalendarMeetingUser!Err:" + err.Error()
 			return
 		}
 	}
-
-	if rsCalendarId == 0 {
-		br.Msg = "路演信息错误!"
-		return
-	}
-	if len(userIds) == 0 {
-		br.Msg = "参会人不能为空!"
-		return
-	}
-	var userIdsStr []string
-	for _, v := range userIds {
-		userIdsStr = append(userIdsStr, strconv.Itoa(v))
-	}
-
-	listUser, err := models.GetWxUserListByUserIdsHaveCompany(strings.Join(userIdsStr, ","))
-	if err != nil {
-		br.Msg = "获取用户信息失败!"
-		br.ErrMsg = "获取用户信息失败-GetWxUserListByUserIdsHaveCompany!Err:" + err.Error()
-		return
-	}
-
-	var items []*roadshow.RsCalendarMeetingUser
-	for _, v := range listUser {
-		item := new(roadshow.RsCalendarMeetingUser)
-		item.RsCalendarId = rsCalendarId
-		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.Position = v.Position
-		item.AdminId = sysUser.AdminId
-		item.AdminName = sysUser.RealName
-		item.CreateTime = time.Now()
-		item.ModifyTime = time.Now()
-		items = append(items, item)
-	}
-	err = roadshow.MultiAddRsCalendarMeetingUser(items)
-	if err != nil {
-		br.Msg = "操作失败!"
-		br.ErrMsg = "操作失败-MultiAddRsCalendarMeetingUser!Err:" + err.Error()
-		return
-	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "添加成功"
@@ -163,45 +149,77 @@ func (this *CalendarMeetingUserController) List() {
 		return
 	}
 
-	var lebelDetail cygx.RaiServeTagResp
+	var lebelDetail []*cygx.RaiServeTagResp
 	if totalGroup > 0 {
-		groupDetail, err := roadshow.GetRsCalendarMeetingLabelGroupDetailByRsCalendarId(rsCalendarId)
+		listGroup, err := roadshow.GetRsCalendarMeetingLabelGroupListByRsCalendarId(rsCalendarId)
 		if err != nil {
 			br.Msg = "获取信息失败!"
-			br.ErrMsg = "获取用户信息失败-GetRsCalendarMeetingLabelGroupByRsCalendarId!Err:" + err.Error()
+			br.ErrMsg = "获取用户信息失败-GetRsCalendarMeetingLabelGroupListByRsCalendarId!Err:" + err.Error()
 			return
 		}
-		tagId := groupDetail.TagId
-		tagType := groupDetail.TagType
-		lebelDetail.TagId = tagId
-		lebelDetail.TagType = tagType
-		switch tagType {
-		case 1:
-			detail, err := cygx.GetIndustrialManagemenDetailById(tagId)
+
+		var industrialManagementIds []int
+		var industrialSubjectIds []int
+
+		mapindustrialManagementName := make(map[int]string)
+		mapindustrialSubjectName := make(map[int]string)
+		mapCelueName := make(map[int]string)
+		for _, v := range listGroup {
+			switch v.TagType {
+			case 1:
+				industrialManagementIds = append(industrialManagementIds, v.TagId)
+			case 2:
+				industrialSubjectIds = append(industrialSubjectIds, v.TagId)
+			case 3:
+				mapCelueName[v.TagId] = "策略"
+			}
+		}
+
+		if len(industrialManagementIds) > 0 {
+			IndustryList, err := cygx.GetIndustryListByConditionByIds(industrialManagementIds)
 			if err != nil {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取品种信息失败,GetIndustrialManagemenDetailById Err:" + err.Error()
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取用户信息失败-GetIndustryListByConditionByIds!Err:" + err.Error()
 				return
 			}
-			lebelDetail.TagName = detail.IndustryName
-		case 2:
-			detail, err := cygx.GetIndustrialSubjectDetailById(tagId)
+
+			for _, v := range IndustryList {
+				mapindustrialManagementName[v.IndustrialManagementId] = v.IndustryName
+			}
+		}
+
+		if len(industrialSubjectIds) > 0 {
+			SubjectList, err := cygx.GetIndustrialSubjectDetailByIds(industrialSubjectIds)
 			if err != nil {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取品种信息失败,GetIndustrialSubjectDetailById Err:" + err.Error()
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取用户信息失败-GetIndustryListByConditionByIds!Err:" + err.Error()
 				return
 			}
-			lebelDetail.TagName = detail.SubjectName
-		default:
-			lebelDetail.TagName = "策略" // 默认策略
+			for _, v := range SubjectList {
+				mapindustrialSubjectName[v.IndustrialSubjectId] = v.SubjectName
+			}
 		}
 
+		for _, v := range listGroup {
+			item := new(cygx.RaiServeTagResp)
+			item.TagType = v.TagType
+			item.TagId = v.TagId
+			switch v.TagType {
+			case 1:
+				item.TagName = mapindustrialManagementName[v.TagId]
+			case 2:
+				item.TagName = mapindustrialSubjectName[v.TagId]
+			case 3:
+				item.TagName = mapCelueName[v.TagId]
+			}
+			lebelDetail = append(lebelDetail, item)
+		}
 	}
 	if len(list) == 0 {
 		list = make([]*roadshow.RsCalendarMeetingUserResp, 0)
 	}
 	resp.List = list
-	resp.LebelDetail = lebelDetail
+	resp.ListLebel = lebelDetail
 	br.Ret = 200
 	br.Success = true
 	br.Data = resp

+ 9 - 0
models/cygx/industrial_management.go

@@ -649,6 +649,15 @@ func GetIndustryListByCondition(condition string, pars []interface{}) (list []*C
 	return
 }
 
+// GetIndustryListByCondition 获取产业列表
+func GetIndustryListByConditionByIds(industrialManagementIds []int) (list []*CygxIndustrialManagement, err error) {
+	lenArr := len(industrialManagementIds)
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_industrial_management WHERE  industrial_management_id IN (` + utils.GetOrmInReplace(lenArr) + `) `
+	_, err = o.Raw(sql, industrialManagementIds).QueryRows(&list)
+	return
+}
+
 // IndustriesEarliestLayoutTime 产业布局时间
 type IndustriesEarliestLayoutTime struct {
 	IndustrialManagementId int       `json:"industrial_management_id" description:"产业ID"`

+ 11 - 2
models/cygx/industrial_subject.go

@@ -2,6 +2,7 @@ package cygx
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/utils"
 	"strconv"
 	"strings"
 	"time"
@@ -179,10 +180,18 @@ func GetIndustrialSubjectAllByIds(condition string) (items []*CygxIndustrialSubj
 	return
 }
 
-func GetIndustrialSubjectDetailById(IndustrialSubjectId int) (item *CygxIndustrialSubject, err error) {
+func GetIndustrialSubjectDetailById(industrialSubjectId int) (item *CygxIndustrialSubject, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
 	sql := `SELECT * FROM cygx_industrial_subject WHERE industrial_subject_id = ? `
-	err = o.Raw(sql, IndustrialSubjectId).QueryRow(&item)
+	err = o.Raw(sql, industrialSubjectId).QueryRow(&item)
+	return
+}
+
+func GetIndustrialSubjectDetailByIds(industrialSubjectIds []int) (list []*CygxIndustrialSubject, err error) {
+	lenArr := len(industrialSubjectIds)
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_industrial_subject WHERE  industrial_subject_id IN (` + utils.GetOrmInReplace(lenArr) + `) `
+	_, err = o.Raw(sql, industrialSubjectIds).QueryRows(&list)
 	return
 }
 

+ 53 - 1
models/roadshow/rs_calendar_meeting_label_group.go

@@ -2,6 +2,7 @@ package roadshow
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/utils"
 	"time"
 )
 
@@ -23,6 +24,38 @@ func AddRsCalendarMeetingLabelGroup(item *RsCalendarMeetingLabelGroup) (err erro
 	return
 }
 
+// AddRsCalendarMeetingLabelGroupMulti 批量添加
+func AddRsCalendarMeetingLabelGroupMulti(items []*RsCalendarMeetingLabelGroup, rsCalendarId int) (err error) {
+	if len(items) == 0 {
+		return
+	}
+	o, err := orm.NewOrm().Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err == nil {
+			o.Commit()
+		} else {
+			o.Rollback()
+		}
+	}()
+
+	//删除历史记录
+	sql := " DELETE FROM rs_calendar_meeting_label_group  WHERE rs_calendar_id = ? "
+	_, err = o.Raw(sql, rsCalendarId).Exec()
+	if err != nil {
+		return
+	}
+
+	//批量插入
+	_, err = o.InsertMulti(len(items), items)
+	if err != nil {
+		return
+	}
+	return
+}
+
 // 获取数量
 func GetRsCalendarMeetingLabelGroupByRsCalendarId(rsCalendarId int) (count int, err error) {
 	o := orm.NewOrm()
@@ -34,11 +67,30 @@ func GetRsCalendarMeetingLabelGroupByRsCalendarId(rsCalendarId int) (count int,
 // 获取详情
 func GetRsCalendarMeetingLabelGroupDetailByRsCalendarId(rsCalendarId int) (item *RsCalendarMeetingLabelGroup, err error) {
 	o := orm.NewOrm()
-	sql := ` SELECT *  FROM rs_calendar_meeting_label_group WHERE   rs_calendar_id   = ?`
+	sql := ` SELECT *  FROM rs_calendar_meeting_label_group WHERE   rs_calendar_id   = ? `
 	err = o.Raw(sql, rsCalendarId).QueryRow(&item)
 	return
 }
 
+// 根据多个路演ID获取研信息
+func GetRsCalendarMeetingLabelGroupListByRsCalendarId(rsCalendarId int) (item []*RsCalendarMeetingLabelGroup, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM rs_calendar_meeting_label_group WHERE rs_calendar_id  = ? `
+	_, err = o.Raw(sql, rsCalendarId).QueryRows(&item)
+	return
+}
+
+// 根据多个路演ID获取研信息
+func GetRsCalendarMeetingLabelGroupDetailByRsCalendarIds(rsCalendarIds []int) (item []*RsCalendarMeetingLabelGroup, err error) {
+	if len(rsCalendarIds) == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	sql := `SELECT * FROM rs_calendar_meeting_label_group WHERE rs_calendar_id IN (` + utils.GetOrmInReplace(len(rsCalendarIds)) + `) `
+	_, err = o.Raw(sql, rsCalendarIds).QueryRows(&item)
+	return
+}
+
 // 修改
 func UpdateProductInterior(item *RsCalendarMeetingLabelGroup) (err error) {
 	o := orm.NewOrm()

+ 12 - 5
models/roadshow/rs_calendar_meeting_user.go

@@ -10,9 +10,13 @@ import (
 
 type AddRsCalendarMeetingUserReq struct {
 	RsCalendarId int   `description:"日程ID"`
-	TagType      int   `description:"标签类型"`
-	TagId        int   `description:"标签ID"`
 	UserId       []int // 用户ID
+	TagList      []*AddRsCalendarMeetingUserTagReq
+}
+
+type AddRsCalendarMeetingUserTagReq struct {
+	TagType int `description:"标签类型"`
+	TagId   int `description:"标签ID"`
 }
 
 type RsCalendarMeetingUser struct {
@@ -42,8 +46,8 @@ type DeleteRsCalendarMeetingUserReq struct {
 }
 
 type RsCalendarMeetingUserListResp struct {
-	List        []*RsCalendarMeetingUserResp
-	LebelDetail cygx.RaiServeTagResp
+	List      []*RsCalendarMeetingUserResp
+	ListLebel []*cygx.RaiServeTagResp
 }
 
 // MultiAddRsCalendarMeetingUser 批量添加RsCalendarMeetingUser
@@ -149,6 +153,7 @@ type RsCalendarMeetingUserByRai struct {
 	StartWeek               string `description:"起始周"`
 	RoadshowType            string `description:"路演形式"`
 	ResearcherName          string `description:"研究员姓名"`
+	TagType                 int    `description:"标签类型,1产业,2标的,3行业权限"`
 }
 
 // 权益联系人列表获取相关信息
@@ -167,11 +172,13 @@ func GetRsCalendarMeetingUserByRai(condition string, startSize, pageSize int) (t
 			b.start_week,
 			b.researcher_name,
 			a.roadshow_type,
-			a.rs_calendar_id
+			a.rs_calendar_id,
+			g.tag_type
 		FROM
 			rs_calendar_meeting_user AS r
 			INNER JOIN rs_calendar AS a ON a.rs_calendar_id = r.rs_calendar_id
 			INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id = b.rs_calendar_id 
+			LEFT JOIN rs_calendar_meeting_label_group AS g ON g.rs_calendar_id = b.rs_calendar_id 
 		WHERE
 			1 = 1 ` + condition
 

+ 54 - 0
services/cygx/user_label.go

@@ -291,6 +291,52 @@ func HandleListRsCalendar(list []*roadshow.RsCalendarMeetingUserByRai) (items []
 	for _, v := range researchers {
 		mapResearcherName[v.RsCalendarId] = append(mapResearcherName[v.RsCalendarId], v.ResearcherName)
 	}
+
+	listGroup, err := roadshow.GetRsCalendarMeetingLabelGroupDetailByRsCalendarIds(rsCalendarIds)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return
+	}
+
+	var industrialManagementIds []int
+	var industrialSubjectIds []int
+
+	mapindustrialManagementName := make(map[int]string)
+	mapindustrialSubjectName := make(map[int]string)
+	mapCelueName := make(map[int]string)
+	for _, v := range listGroup {
+		switch v.TagType {
+		case 1:
+			industrialManagementIds = append(industrialManagementIds, v.TagId)
+		case 2:
+			industrialSubjectIds = append(industrialSubjectIds, v.TagId)
+		case 3:
+			mapCelueName[v.RsCalendarId] = "策略"
+		}
+	}
+
+	if len(industrialManagementIds) > 0 {
+		IndustryList, e := cygx.GetIndustryListByConditionByIds(industrialManagementIds)
+		if e != nil {
+			err = errors.New("GetIndustryListByConditionByIds" + e.Error())
+			return
+		}
+
+		for _, v := range IndustryList {
+			mapindustrialManagementName[v.IndustrialManagementId] = v.IndustryName
+		}
+	}
+
+	if len(industrialSubjectIds) > 0 {
+		SubjectList, e := cygx.GetIndustrialSubjectDetailByIds(industrialSubjectIds)
+		if e != nil {
+			err = errors.New("GetIndustryListByConditionByIds" + e.Error())
+			return
+		}
+		for _, v := range SubjectList {
+			mapindustrialSubjectName[v.IndustrialSubjectId] = v.SubjectName
+		}
+	}
+
 	for _, v := range list {
 		item := new(cygx.UserInteraction)
 		item.UserId = v.UserId
@@ -298,6 +344,14 @@ func HandleListRsCalendar(list []*roadshow.RsCalendarMeetingUserByRai) (items []
 		item.Mobile = v.Mobile
 		item.CompanyId = v.CompanyId
 		item.CompanyName = v.CompanyName
+		switch v.TagType {
+		case 1:
+			item.LabelKeyWord = "富强,民主,自由,和谐"
+		case 2:
+			item.LabelKeyWord = "富强,民主,自由,和谐"
+		case 3:
+			item.LabelKeyWord = mapCelueName[v.RsCalendarId]
+		}
 		item.LabelKeyWord = "富强,民主,自由,和谐"
 		item.ActivityTimeText = v.StartDate + "(" + v.StartWeek + ")" + v.StartTime + "-" + v.EndTime
 		item.ResearcherName = strings.Join(mapResearcherName[v.RsCalendarId], ",")