Browse Source

Merge branch '15.3' into debug

Roc 1 year ago
parent
commit
83c95584cf
3 changed files with 55 additions and 7 deletions
  1. 22 1
      controllers/roadshow/report.go
  2. 13 6
      models/roadshow/calendar.go
  3. 20 0
      utils/common.go

+ 22 - 1
controllers/roadshow/report.go

@@ -1157,11 +1157,14 @@ func (this *CalendarController) ResearcherBusinessTrip() {
 // OverseasCustomReportCalendarList
 // @Title 路演详情列表
 // @Description 路演详情列表接口
+// @Param   Keyword   query   string  true       "关键字:客户名称"
 // @Param   CompanyStatus   query   string  true       "客户状态,枚举值:正式、试用、关闭"
 // @Param   SellerId   query   int  true       "销售id列表;多个用英文,分割"
 // @Param   ResearcherId   query   int  true       "销售id列表;多个用英文,分割"
 // @Param   StartDate   query   string  true       "开始日期,格式:2022-04-06"
 // @Param   EndDate   query   string  true       "结束日期,格式:2022-04-06"
+// @Param   SortField	query	string		false	"排序字段:start_date"
+// @Param   SortDesc	query	int		false	"1:降序,默认,2:升序"
 // @Success 200 {object} []roadshow.RsReportRecordList
 // @router /overseas_custom/calendar/list [get]
 func (this *CalendarController) OverseasCustomReportCalendarList() {
@@ -1177,6 +1180,7 @@ func (this *CalendarController) OverseasCustomReportCalendarList() {
 		br.Ret = 408
 		return
 	}
+	keyword := this.GetString("Keyword")
 	companyStatus := this.GetString("CompanyStatus")
 	startDate := this.GetString("StartDate")
 	endDate := this.GetString("EndDate")
@@ -1184,6 +1188,8 @@ func (this *CalendarController) OverseasCustomReportCalendarList() {
 	researcherId := this.GetString("ResearcherId")
 	pageSize, _ := this.GetInt("PageSize")
 	currentIndex, _ := this.GetInt("CurrentIndex")
+	sortField := this.GetString("SortField")
+	sortDesc, _ := this.GetInt("SortDesc")
 
 	var startSize int
 	if pageSize <= 0 {
@@ -1194,7 +1200,22 @@ func (this *CalendarController) OverseasCustomReportCalendarList() {
 	}
 	startSize = paging.StartIndex(currentIndex, pageSize)
 
-	total, list, err := roadshow.GetOverseaCustomCalendarList(sellerId, researcherId, startDate, endDate, companyStatus, startSize, pageSize)
+	switch sortField {
+	case "start_date":
+	default:
+		sortField = "start_date"
+	}
+
+	// "1:降序,默认,2:升序"
+	sortDesStr := ` desc `
+	switch sortDesc {
+	case 2:
+		sortDesStr = ` asc `
+	default:
+		sortDesStr = "desc"
+	}
+
+	total, list, err := roadshow.GetOverseaCustomCalendarList(keyword, sellerId, researcherId, startDate, endDate, companyStatus, sortField, sortDesStr, startSize, pageSize)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,ERR:" + err.Error()

+ 13 - 6
models/roadshow/calendar.go

@@ -792,7 +792,7 @@ type OverseaCustomRecordInfo struct {
 	StartDate        string
 }
 
-func GetOverseaCustomCalendarList(sellerId, researcherId, startDate, endDate, companyStatus string, startSize, pageSize int) (total int, list []*OverseaCustomRecordInfo, err error) {
+func GetOverseaCustomCalendarList(keyword, sellerId, researcherId, startDate, endDate, companyStatus, sortField, sortDesc string, startSize, pageSize int) (total int, list []*OverseaCustomRecordInfo, err error) {
 	var databaseName string
 	if utils.RunMode == "debug" {
 		databaseName = "test_v2_hongze_rddp"
@@ -803,12 +803,16 @@ func GetOverseaCustomCalendarList(sellerId, researcherId, startDate, endDate, co
 
 	pars := make([]interface{}, 0)
 
-	sql1 := `SELECT d.company_name,c.status company_status,b.start_date,a.rs_calendar_id,a.roadshow_type,a.roadshow_platform,a.sys_user_real_name seller_name,b.researcher_name as base_researcher_name FROM  rs_calendar AS a
+	sql1 := `SELECT d.company_name,d.overseas_status company_status,b.start_date,a.rs_calendar_id,a.roadshow_type,a.roadshow_platform,a.sys_user_real_name seller_name,b.researcher_name as base_researcher_name FROM  rs_calendar AS a
     INNER JOIN rs_calendar_researcher AS b ON a.rs_calendar_id=b.rs_calendar_id
         LEFT JOIN company_product AS c ON a.company_id=c.company_id AND c.product_id=1
         LEFT JOIN company AS d ON c.company_id=d.company_id 
 		where c.is_overseas = 0 and  a.english_company= 0 AND a.source = 0  AND b.status=2 AND b.researcher_id != 0`
 
+	if keyword != "" {
+		sql1 += ` AND d.company_name like ? `
+		pars = utils.GetLikeKeywordPars(pars, keyword, 1)
+	}
 	if sellerId != "" {
 		sql1 += fmt.Sprintf(` AND a.sys_user_id in (%s) `, sellerId)
 	}
@@ -821,19 +825,22 @@ func GetOverseaCustomCalendarList(sellerId, researcherId, startDate, endDate, co
 		pars = append(pars, endDate)
 	}
 	if companyStatus != "" {
-		sql1 += ` AND c.status = ? `
+		sql1 += ` AND d.overseas_status = ? `
 		pars = append(pars, companyStatus)
 	}
 
 	sql2 := fmt.Sprintf(`SELECT cc.company_name,cc.overseas_status company_status,bb.start_date,aa.rs_calendar_id,aa.roadshow_type,aa.roadshow_platform,aa.sys_user_real_name seller_name,bb.researcher_name as base_researcher_name FROM rs_calendar AS aa
     INNER JOIN rs_calendar_researcher AS bb ON aa.rs_calendar_id=bb.rs_calendar_id
     INNER JOIN %s.english_company AS cc ON aa.company_id=cc.company_id
-		where aa.english_company= 1 AND aa.source = 0  AND bb.status=2 AND bb.researcher_id != 0 `, databaseName)
+		where aa.english_company= 1 AND aa.source = 0 AND cc.is_deleted=0  AND bb.status=2 AND bb.researcher_id != 0 `, databaseName)
 
+	if keyword != "" {
+		sql2 += ` AND cc.company_name like ? `
+		pars = utils.GetLikeKeywordPars(pars, keyword, 1)
+	}
 	if sellerId != "" {
 		sql2 += fmt.Sprintf(` AND aa.sys_user_id in (%s) `, sellerId)
 	}
-
 	if startDate != "" {
 		sql2 += ` AND bb.start_date >= ?  `
 		pars = append(pars, startDate)
@@ -879,7 +886,7 @@ func GetOverseaCustomCalendarList(sellerId, researcherId, startDate, endDate, co
 		sql += fmt.Sprintf(` AND rs_calendar_id IN (` + utils.GetOrmInReplace(rsCalendarIdNum) + `)`)
 	}
 
-	sql += ` Group by rs_calendar_id order by start_date desc `
+	sql += fmt.Sprintf(` Group by rs_calendar_id order by %s %s `, sortField, sortDesc)
 	sql += ` LIMIT ?,? `
 	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
 

+ 20 - 0
utils/common.go

@@ -2181,3 +2181,23 @@ func GetArabicNumbers(str string) string {
 	}
 	return string(numbers)
 }
+
+// GetLikeKeywordPars
+//
+//	@Description: 获取sql查询中的参数切片
+//	@author: Roc
+//	@datetime2023-10-23 14:50:18
+//	@param pars []interface{}
+//	@param keyword string
+//	@param num int
+//	@return newPars []interface{}
+func GetLikeKeywordPars(pars []interface{}, keyword string, num int) (newPars []interface{}) {
+	newPars = pars
+	if newPars == nil {
+		newPars = make([]interface{}, 0)
+	}
+	for i := 1; i <= num; i++ {
+		newPars = append(newPars, `%`+keyword+`%`)
+	}
+	return
+}