|
@@ -1,10 +1,12 @@
|
|
|
package roadshow
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"hongze/hz_crm_api/models/company"
|
|
|
"hongze/hz_crm_api/models/system"
|
|
|
+ "hongze/hz_crm_api/utils"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -726,3 +728,160 @@ func GetPublicCalendarDetailList(condition string, pars []interface{}) (list []*
|
|
|
_, err = o.Raw(sql, pars).QueryRows(&list)
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+type AdminInfo struct {
|
|
|
+ AdminId int
|
|
|
+ RealName string
|
|
|
+}
|
|
|
+
|
|
|
+func GetOverseaCustomCalendarSellerList() (list []*AdminInfo, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ sql1 := `SELECT a.sys_user_id 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 d.region_type= "海外" and a.english_company= 0 AND a.source = 0 AND b.status=2 AND a.sys_user_id != 0 `
|
|
|
+
|
|
|
+ sql2 := `SELECT aa.sys_user_id FROM rs_calendar AS aa
|
|
|
+ INNER JOIN rs_calendar_researcher AS bb ON aa.rs_calendar_id=bb.rs_calendar_id
|
|
|
+ where aa.english_company= 1 AND aa.source = 0 AND bb.status=2 AND aa.sys_user_id != 0`
|
|
|
+
|
|
|
+ sql := `SELECT n.admin_id,n.real_name FROM (` + sql1 + ` UNION ALL ` + sql2
|
|
|
+ sql += ` ) AS m
|
|
|
+ JOIN admin n on m.sys_user_id=n.admin_id
|
|
|
+WHERE 1=1 Group by sys_user_id order by sys_user_id asc`
|
|
|
+ _, err = o.Raw(sql).QueryRows(&list)
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func GetOverseaCustomCalendarResearcherList() (list []*AdminInfo, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ sql1 := `SELECT b.researcher_id 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 d.region_type= "海外" and a.english_company= 0 AND a.source = 0 AND b.status=2 AND b.researcher_id != 0`
|
|
|
+
|
|
|
+ sql2 := `SELECT bb.researcher_id FROM rs_calendar AS aa
|
|
|
+ INNER JOIN rs_calendar_researcher AS bb ON aa.rs_calendar_id=bb.rs_calendar_id
|
|
|
+ where aa.english_company= 1 AND aa.source = 0 AND bb.status=2 AND bb.researcher_id != 0 `
|
|
|
+
|
|
|
+ sql := `SELECT n.admin_id,n.real_name FROM (` + sql1 + ` UNION ALL ` + sql2
|
|
|
+ sql += ` ) AS m
|
|
|
+JOIN admin n on m.researcher_id=n.admin_id
|
|
|
+WHERE 1=1 Group by researcher_id order by researcher_id asc`
|
|
|
+ _, err = o.Raw(sql).QueryRows(&list)
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+type OverseaCustomRecordInfoResp struct {
|
|
|
+ Paging *paging.PagingItem
|
|
|
+ List []*OverseaCustomRecordInfo
|
|
|
+}
|
|
|
+
|
|
|
+type OverseaCustomRecordInfo struct {
|
|
|
+ RsCalendarId int
|
|
|
+ RoadshowType string
|
|
|
+ RoadshowPlatform string
|
|
|
+ SellerName string
|
|
|
+ ResearcherName string
|
|
|
+ CompanyName string
|
|
|
+ CompanyStatus string
|
|
|
+ StartDate string
|
|
|
+}
|
|
|
+
|
|
|
+func GetOverseaCustomCalendarList(sellerId, researcherId, startDate, endDate, companyStatus string, startSize, pageSize int) (total int, list []*OverseaCustomRecordInfo, err error) {
|
|
|
+ var databaseName string
|
|
|
+ if utils.RunMode == "debug" {
|
|
|
+ databaseName = "test_v2_hongze_rddp"
|
|
|
+ } else {
|
|
|
+ databaseName = "hongze_rddp"
|
|
|
+ }
|
|
|
+ o := orm.NewOrm()
|
|
|
+
|
|
|
+ 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
|
|
|
+ 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 sellerId != "" {
|
|
|
+ sql1 += fmt.Sprintf(` AND a.sys_user_id in (%s) `, sellerId)
|
|
|
+ }
|
|
|
+ if startDate != "" {
|
|
|
+ sql1 += ` AND b.start_date >= ? `
|
|
|
+ pars = append(pars, startDate)
|
|
|
+ }
|
|
|
+ if endDate != "" {
|
|
|
+ sql1 += ` AND b.start_date <= ? `
|
|
|
+ pars = append(pars, endDate)
|
|
|
+ }
|
|
|
+ if companyStatus != "" {
|
|
|
+ sql1 += ` AND c.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)
|
|
|
+
|
|
|
+ if sellerId != "" {
|
|
|
+ sql2 += fmt.Sprintf(` AND aa.sys_user_id in (%s) `, sellerId)
|
|
|
+ }
|
|
|
+
|
|
|
+ if startDate != "" {
|
|
|
+ sql2 += ` AND bb.start_date >= ? `
|
|
|
+ pars = append(pars, startDate)
|
|
|
+ }
|
|
|
+ if endDate != "" {
|
|
|
+ sql2 += ` AND bb.start_date <= ? `
|
|
|
+ pars = append(pars, endDate)
|
|
|
+ }
|
|
|
+ if companyStatus != "" {
|
|
|
+ sql2 += ` AND cc.overseas_status = ? `
|
|
|
+ pars = append(pars, companyStatus)
|
|
|
+ }
|
|
|
+ rsCalendarIdList := make([]int, 0)
|
|
|
+ if researcherId != `` {
|
|
|
+ rsCalendarIdSql := fmt.Sprintf("select rs_calendar_id from rs_calendar_researcher where researcher_id in (%s) group by rs_calendar_id", researcherId)
|
|
|
+ _, err = o.Raw(rsCalendarIdSql).QueryRows(&rsCalendarIdList)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ rsCalendarIdNum := len(rsCalendarIdList)
|
|
|
+
|
|
|
+ // 汇总数据
|
|
|
+ totalSql := `SELECT COUNT(1) FROM (SELECT rs_calendar_id FROM (` + sql1 + ` UNION ALL ` + sql2
|
|
|
+ totalSql += ` ) AS m WHERE 1=1 `
|
|
|
+
|
|
|
+ if rsCalendarIdNum > 0 {
|
|
|
+ totalSql += fmt.Sprintf(` AND rs_calendar_id IN (` + utils.GetOrmInReplace(rsCalendarIdNum) + `)`)
|
|
|
+ pars = append(pars, rsCalendarIdList)
|
|
|
+ }
|
|
|
+
|
|
|
+ totalSql += ` Group by rs_calendar_id) fff`
|
|
|
+ err = o.Raw(totalSql, pars).QueryRow(&total)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 列表数据
|
|
|
+ sql := `SELECT m.*,GROUP_CONCAT(DISTINCT base_researcher_name ORDER BY rs_calendar_id ASC SEPARATOR ',') AS researcher_name FROM (` + sql1 + ` UNION ALL ` + sql2
|
|
|
+ sql += ` ) AS m WHERE 1=1 `
|
|
|
+
|
|
|
+ if rsCalendarIdNum > 0 {
|
|
|
+ sql += fmt.Sprintf(` AND rs_calendar_id IN (` + utils.GetOrmInReplace(rsCalendarIdNum) + `)`)
|
|
|
+ }
|
|
|
+
|
|
|
+ sql += ` Group by rs_calendar_id order by start_date desc `
|
|
|
+ sql += ` LIMIT ?,? `
|
|
|
+ _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
|
|
|
+
|
|
|
+ return
|
|
|
+}
|