Jelajahi Sumber

Merge branch 'master' of http://8.136.199.33:3000/hongze/hz_crm_api into cygx/mfyx_3.6

xingzai 7 bulan lalu
induk
melakukan
6fcc69ec46

+ 64 - 15
controllers/cygx/rai_serve.go

@@ -111,11 +111,18 @@ func (this *RaiServeCoAntroller) SearchTag() {
 	if len(list) == 0 {
 		list = make([]*cygx.RaiServeTagResp, 0)
 	} else {
+		mapUniqueKey := make(map[string]bool)
 		for _, v := range list {
+			uniqueKey := fmt.Sprintf("K_", v.TagType, "V_", v.TagName)
+			if mapUniqueKey[uniqueKey] {
+				continue
+			}
 			v.Md5Key = utils.MD5(fmt.Sprintf("K_", v.TagType, "V_", v.TagId))
+			mapUniqueKey[uniqueKey] = true
+			resp.List = append(resp.List, v)
 		}
 	}
-	resp.List = list
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -208,11 +215,17 @@ func (this *RaiServeCoAntroller) SearchTagCalendar() {
 	if len(list) == 0 {
 		list = make([]*cygx.RaiServeTagResp, 0)
 	} else {
+		mapUniqueKey := make(map[string]bool)
 		for _, v := range list {
+			uniqueKey := fmt.Sprintf("K_", v.TagType, "V_", v.TagName)
+			if mapUniqueKey[uniqueKey] {
+				continue
+			}
 			v.Md5Key = utils.MD5(fmt.Sprintf("K_", v.TagType, "V_", v.TagId))
+			mapUniqueKey[uniqueKey] = true
+			resp.List = append(resp.List, v)
 		}
 	}
-	resp.List = list
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -301,6 +314,7 @@ func (this *RaiServeCoAntroller) ChcckPermissionName() {
 // @Param   TagId   int   string  false       "标签ID"
 // @Param   Status   query   string  false       "客户状态,正式、未续约(除了正式之外的所有)"
 // @Param   SortType   query   string  true       "如何排序,是正序还是倒序,枚举值:`asc 正序`,`desc 倒叙`"
+// @Param   KeyWord   query   string  false       "搜索关键词"
 // @Param   IsExport   query   bool  false       "是否导出excel,默认是false"
 // @Success 200 {object} cygx.RaiServeTagListResp
 // @router /rai_serve/list [get]
@@ -327,6 +341,7 @@ func (this *RaiServeCoAntroller) List() {
 	tagType, _ := this.GetInt("TagType")
 	tagId, _ := this.GetInt("TagId")
 	serveTypeId, _ := this.GetInt("ServeTypeId")
+	keyWord := this.GetString("KeyWord")
 	isExport, _ := this.GetBool("IsExport")
 	resp := new(cygx.CygxRaiServeCompanyListResp)
 	if isExport {
@@ -383,6 +398,12 @@ func (this *RaiServeCoAntroller) List() {
 			pars = append(pars, sysUser.AdminId, sysUser.AdminId, sysUser.GroupId, sysUser.GroupId)
 		}
 	}
+	//公司名称搜索
+	if keyWord != "" {
+		keyWord = "%" + keyWord + "%"
+		condition += ` 	AND company_name LIKE ? `
+		pars = append(pars, keyWord)
+	}
 
 	total, err := cygx.GetCygxRaiServeCompanyCount(condition, pars)
 	if err != nil {
@@ -709,7 +730,27 @@ func getServeBillTag(tagType, tagId int) (conditionBill string, parsBill []inter
 			rsCalendarIds = append(rsCalendarIds, v.RsCalendarId)
 		}
 	case 2:
-		listGroupActivity, e := cygx.GetSubjectActivityGroupManagementListBySubjectId(tagId, 1) // 关联的活动
+
+		//通过ID获取标的名称
+		detailSubjecj, e := cygx.GetIndustrialSubjectDetailById(tagId)
+		if e != nil {
+			err = errors.New("GetIndustrialSubjectDetailById, Err: " + e.Error())
+			return
+		}
+
+		//通过名称获取所有相同名称的标的
+		listSubject, e := cygx.GetListIndustrialSubjectDetailByName(detailSubjecj.SubjectName)
+		if e != nil {
+			err = errors.New("GetIndustrialSubjectDetailById, Err: " + e.Error())
+			return
+		}
+		var industrialSubjectIds []int
+
+		for _, v := range listSubject {
+			industrialSubjectIds = append(industrialSubjectIds, v.IndustrialSubjectId)
+		}
+
+		listGroupActivity, e := cygx.GetSubjectActivityGroupManagementListBySubjectIds(industrialSubjectIds, 1) // 关联的活动
 		if e != nil {
 			err = errors.New("GetSubjectActivityGroupManagementListBySubjectId, Err: " + e.Error())
 			return
@@ -718,27 +759,27 @@ func getServeBillTag(tagType, tagId int) (conditionBill string, parsBill []inter
 			activityIds = append(activityIds, v.ActivityId)
 		}
 
-		listGroupActivitySpecial, e := cygx.GetSubjectActivityGroupManagementListBySubjectId(tagId, 2) // 关联的产业
+		listGroupActivitySpecial, e := cygx.GetSubjectActivityGroupManagementListBySubjectIds(industrialSubjectIds, 2) // 关联的专项调研活动
 		if e != nil {
-			err = errors.New("GetSubjectActivityGroupManagementListBySubjectId, Err: " + e.Error())
+			err = errors.New("GetSubjectActivityGroupManagementListBySubjectIds, Err: " + e.Error())
 			return
 		}
 		for _, v := range listGroupActivitySpecial {
 			activitySpecialIds = append(activitySpecialIds, v.ActivityId)
 		}
 
-		listGroupArticle, e := cygx.GetSubjectArticleGroupManagementListBysubjectId(tagId) // 关联的产业
+		listGroupArticle, e := cygx.GetSubjectArticleGroupManagementListBysubjectIds(industrialSubjectIds) // 关联的报告
 		if e != nil {
-			err = errors.New("GetSubjectArticleGroupManagementListBysubjectId, Err: " + e.Error())
+			err = errors.New("GetSubjectArticleGroupManagementListBysubjectIds, Err: " + e.Error())
 			return
 		}
 		for _, v := range listGroupArticle {
 			articleIds = append(articleIds, v.ArticleId)
 		}
 
-		listGroupRsCalendar, e := roadshow.GetRsCalendarMeetingLabelGroupDetailByTag(tagType, tagId)
+		listGroupRsCalendar, e := roadshow.GetRsCalendarMeetingLabelGroupDetailByTagIds(tagType, industrialSubjectIds)
 		if e != nil {
-			err = errors.New("GetRsCalendarMeetingLabelGroupDetailByTag, Err: " + e.Error())
+			err = errors.New("GetRsCalendarMeetingLabelGroupDetailByTagIds, Err: " + e.Error())
 			return
 		}
 		for _, v := range listGroupRsCalendar {
@@ -961,14 +1002,22 @@ func (this *RaiServeCoAntroller) BillList() {
 					}
 				}
 			case utils.CYGX_OBJ_ACTIVITY:
-				v.Tag = strings.Join(mapActivityIndustrialLabel[v.SourceId], ",")
-				if len(mapActivitySubjectLabel[v.SourceId]) > 0 {
-					v.Tag += "," + strings.Join(mapActivitySubjectLabel[v.SourceId], ",")
+				if v.ChartPermissionName == utils.GU_SHOU_NAME || v.ChartPermissionName == utils.CE_LUE_NAME {
+					v.Tag = v.ChartPermissionName
+				} else {
+					v.Tag = strings.Join(mapActivityIndustrialLabel[v.SourceId], ",")
+					if len(mapActivitySubjectLabel[v.SourceId]) > 0 {
+						v.Tag += "," + strings.Join(mapActivitySubjectLabel[v.SourceId], ",")
+					}
 				}
 			case utils.CYGX_OBJ_ACTIVITYSPECIAL:
-				v.Tag = strings.Join(mapActivitySpeicalIndustrialLabel[v.SourceId], ",")
-				if len(mapActivitySpeicalSubjectLabel[v.SourceId]) > 0 {
-					v.Tag += "," + strings.Join(mapActivitySpeicalSubjectLabel[v.SourceId], ",")
+				if v.ChartPermissionName == utils.GU_SHOU_NAME || v.ChartPermissionName == utils.CE_LUE_NAME {
+					v.Tag = v.ChartPermissionName
+				} else {
+					v.Tag = strings.Join(mapActivitySpeicalIndustrialLabel[v.SourceId], ",")
+					if len(mapActivitySpeicalSubjectLabel[v.SourceId]) > 0 {
+						v.Tag += "," + strings.Join(mapActivitySpeicalSubjectLabel[v.SourceId], ",")
+					}
 				}
 			case utils.CYGX_OBJ_RS_CALENDAR:
 				if v.ChartPermissionName == utils.GU_SHOU_NAME || v.ChartPermissionName == utils.CE_LUE_NAME {

+ 6 - 6
models/company/company_approval.go

@@ -404,16 +404,16 @@ func FreezeToTryOut(companyId, productId, sellerId, companyApprovalId, applyUser
 	startDate = time.Now().Format(utils.FormatDate)
 	endDate = time.Now().AddDate(0, 2, 0).Format(utils.FormatDate)
 
-	sellerItem, err := system.GetSysAdminById(applyUserId)
-	if err != nil {
-		return
-	}
+	//sellerItem, err := system.GetSysAdminById(applyUserId)
+	//if err != nil {
+	//	return
+	//}
 
 	//更新用户产品状态
 	//6.9 fix 未续约强制弹窗要求客户冻结转试用后不弹床,取消清空冻结时间以标记曾经被冻结过
 	sql := `UPDATE company_product SET status='试用',is_suspend=0,approve_status='已审批',freeze_start_date=null,freeze_end_date=null,
-            start_date=?,end_date=?,seller_id=?,seller_name=?,group_id=?,department_id=?,modify_time=NOW(),try_stage=1 WHERE company_id=? AND product_id=? `
-	_, err = to.Raw(sql, startDate, endDate, sellerItem.AdminId, sellerItem.RealName, sellerItem.GroupId, sellerItem.DepartmentId, companyId, productId).Exec()
+            start_date=?,end_date=?,modify_time=NOW(),try_stage=1 WHERE company_id=? AND product_id=? `
+	_, err = to.Raw(sql, startDate, endDate, companyId, productId).Exec()
 	if err != nil {
 		return
 	}

+ 20 - 0
models/cygx/industrial_activity_group_subject.go

@@ -71,6 +71,26 @@ func GetSubjectActivityGroupManagementListBySubjectId(subjectId, source int) (it
 	return
 }
 
+// 列表
+func GetSubjectActivityGroupManagementListBySubjectIds(subjectIds []int, source int) (items []*SubjectActivityGroupManagementRep, err error) {
+	lenArr := len(subjectIds)
+	if lenArr == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT
+    	    ag.activity_id,
+			s.subject_name,
+			s.industrial_subject_id 
+			FROM
+			cygx_industrial_activity_group_subject AS ag
+			INNER JOIN cygx_industrial_subject AS s ON s.industrial_subject_id = ag.industrial_subject_id 
+			WHERE
+			ag.industrial_subject_id  IN (` + utils.GetOrmInReplace(lenArr) + `) AND ag.source = ?`
+	_, err = o.Raw(sql, subjectIds, source).QueryRows(&items)
+	return
+}
+
 func GetActivityIdsByIndustrialSubjectId(industrialSubjectId string) (activityId string, err error) {
 	sql := ` SELECT
 			GROUP_CONCAT( DISTINCT activity_id ORDER BY id ASC SEPARATOR ',' ) AS activity_id 

+ 18 - 0
models/cygx/industrial_article_group_subject.go

@@ -79,6 +79,24 @@ func GetSubjectArticleGroupManagementListBysubjectId(subjectId int) (items []*Su
 	return
 }
 
+// 列表
+func GetSubjectArticleGroupManagementListBysubjectIds(subjectIds []int) (items []*SubjectArticleGroupManagementRep, err error) {
+	lenArr := len(subjectIds)
+	if lenArr == 0 {
+		return
+	}
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT
+  			ag.article_id
+			FROM
+			cygx_industrial_article_group_subject AS ag
+			INNER JOIN cygx_industrial_subject AS s ON s.industrial_subject_id = ag.industrial_subject_id 
+			WHERE
+			ag.industrial_subject_id  IN (` + utils.GetOrmInReplace(lenArr) + `)`
+	_, err = o.Raw(sql, subjectIds).QueryRows(&items)
+	return
+}
+
 type SubjectlArticleGroupResp struct {
 	ArticleId              int    `description:"文章ID"`
 	IndustrialManagementId int    `description:"cygx_industrial_management表的主键ID"`

+ 8 - 0
models/cygx/industrial_subject.go

@@ -195,6 +195,14 @@ func GetIndustrialSubjectDetailByIds(industrialSubjectIds []int) (list []*CygxIn
 	return
 }
 
+// 通过名称获取相同标的
+func GetListIndustrialSubjectDetailByName(IndustrialSubjectName string) (list []*CygxIndustrialSubject, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `SELECT * FROM cygx_industrial_subject WHERE  subject_name = ? `
+	_, err = o.Raw(sql, IndustrialSubjectName).QueryRows(&list)
+	return
+}
+
 func GetIndustrialSubjectDetailByName(IndustrialSubjectName string) (item *CygxIndustrialSubject, err error) {
 	o := orm.NewOrmUsingDB("hz_cygx")
 	sql := `SELECT * FROM cygx_industrial_subject WHERE subject_name = ? `

+ 12 - 0
models/roadshow/rs_calendar_meeting_label_group.go

@@ -117,3 +117,15 @@ func GetRsCalendarMeetingLabelGroupDetailByTag(tagType, tagId int) (item []*RsCa
 	_, err = o.Raw(sql, tagType, tagId).QueryRows(&item)
 	return
 }
+
+// 根据类型、id 获取对应的分组信息
+func GetRsCalendarMeetingLabelGroupDetailByTagIds(tagType int, tagIds []int) (item []*RsCalendarMeetingLabelGroup, err error) {
+	lenArr := len(tagIds)
+	if lenArr == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	sql := `SELECT * FROM rs_calendar_meeting_label_group WHERE tag_type = ? AND tag_id IN  (` + utils.GetOrmInReplace(lenArr) + `)  `
+	_, err = o.Raw(sql, tagType, tagIds).QueryRows(&item)
+	return
+}