|
@@ -3,6 +3,7 @@ package overseas_custom
|
|
|
import (
|
|
|
"fmt"
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
|
+ "github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"hongze/hz_crm_api/utils"
|
|
|
)
|
|
|
|
|
@@ -79,3 +80,140 @@ WHERE 1=1 AND (a.email LIKE ? OR a.mobile LIKE ? OR b.company_name LIKE ? OR b.c
|
|
|
_, err = o.Raw(sql, keyword, keyword, keyword, keyword).QueryRows(&companyIds)
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+func (obj *Custom) GetCustomListCount(condition string, pars []interface{}, companyStatus string) (count int, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ sql := ``
|
|
|
+ var databaseName string
|
|
|
+ if utils.RunMode == "debug" {
|
|
|
+ databaseName = "test_v2_hongze_rddp"
|
|
|
+ } else {
|
|
|
+ databaseName = "hongze_rddp"
|
|
|
+ }
|
|
|
+
|
|
|
+ sql = `SELECT COUNT(1) AS count FROM (
|
|
|
+ SELECT a.company_id,a.company_name,a.nation,b.seller_id,b.seller_name,
|
|
|
+ CASE b.status
|
|
|
+ WHEN '正式' THEN '正式'
|
|
|
+ WHEN '永续' THEN '正式'
|
|
|
+ WHEN '试用' THEN '试用'
|
|
|
+ ELSE '关闭' END AS company_status,
|
|
|
+ b.view_total,b.road_show_total,a.created_time AS create_time,b.last_view_time
|
|
|
+ FROM company AS a
|
|
|
+ INNER JOIN company_product AS b ON a.company_id=b.company_id
|
|
|
+ INNER JOIN overseas_custom_seller AS c ON b.seller_id=c.seller_id
|
|
|
+ WHERE b.is_overseas = 0`
|
|
|
+ if companyStatus == "正式" {
|
|
|
+ sql += ` AND b.status IN('正式','永续') `
|
|
|
+ } else if companyStatus == "试用" {
|
|
|
+ sql += ` AND b.status='试用' `
|
|
|
+ } else if companyStatus == "关闭" {
|
|
|
+ sql += ` AND b.status IN('冻结','流失','关闭') `
|
|
|
+ }
|
|
|
+ sql += `
|
|
|
+ UNION ALL
|
|
|
+ SELECT t.company_id+10000000,t.company_name,t.nation,t.seller_id,t.seller_name,
|
|
|
+ CASE t.enabled
|
|
|
+ WHEN 0 THEN '关闭'
|
|
|
+ ELSE '试用' END AS company_status,
|
|
|
+ t.view_total,0 AS road_show_total,t.create_time,'' AS last_view_time
|
|
|
+ FROM %s.english_company AS t
|
|
|
+ INNER JOIN overseas_custom_seller AS n ON t.seller_id=n.seller_id
|
|
|
+ WHERE 1=1 `
|
|
|
+ if companyStatus == "试用" {
|
|
|
+ sql += ` AND t.enabled IN(1,2)`
|
|
|
+ } else if companyStatus == "禁用" {
|
|
|
+ sql += ` AND t.enabled = 0 `
|
|
|
+ }
|
|
|
+
|
|
|
+ sql += ` )AS m
|
|
|
+ WHERE 1=1 `
|
|
|
+
|
|
|
+ if condition != "" {
|
|
|
+ sql += condition
|
|
|
+ }
|
|
|
+ sql = fmt.Sprintf(sql, databaseName)
|
|
|
+ err = o.Raw(sql, pars).QueryRow(&count)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+func (obj *Custom) GetCustomList(condition string, pars []interface{}, companyStatus, sortField string, startSize, pageSize, sortDesc int) (list []*Custom, err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ sql := ``
|
|
|
+ var databaseName string
|
|
|
+ if utils.RunMode == "debug" {
|
|
|
+ databaseName = "test_v2_hongze_rddp"
|
|
|
+ } else {
|
|
|
+ databaseName = "hongze_rddp"
|
|
|
+ }
|
|
|
+
|
|
|
+ sql = `SELECT * FROM (
|
|
|
+ SELECT a.company_id,a.company_name,a.nation,b.seller_id,b.seller_name,
|
|
|
+ CASE b.status
|
|
|
+ WHEN '正式' THEN '正式'
|
|
|
+ WHEN '永续' THEN '正式'
|
|
|
+ WHEN '试用' THEN '试用'
|
|
|
+ ELSE '关闭' END AS company_status,
|
|
|
+ b.view_total,b.road_show_total,a.created_time AS create_time,b.last_view_time
|
|
|
+ FROM company AS a
|
|
|
+ INNER JOIN company_product AS b ON a.company_id=b.company_id
|
|
|
+ INNER JOIN overseas_custom_seller AS c ON b.seller_id=c.seller_id
|
|
|
+ WHERE b.is_overseas = 0`
|
|
|
+ if companyStatus == "正式" {
|
|
|
+ sql += ` AND b.status IN('正式','永续') `
|
|
|
+ } else if companyStatus == "试用" {
|
|
|
+ sql += ` AND b.status='试用' `
|
|
|
+ } else if companyStatus == "关闭" {
|
|
|
+ sql += ` AND b.status IN('冻结','流失','关闭') `
|
|
|
+ }
|
|
|
+ sql += `
|
|
|
+ UNION ALL
|
|
|
+ SELECT t.company_id+10000000,t.company_name,t.nation,t.seller_id,t.seller_name,
|
|
|
+ CASE t.enabled
|
|
|
+ WHEN 0 THEN '关闭'
|
|
|
+ ELSE '试用' END AS company_status,
|
|
|
+ t.view_total,0 AS road_show_total,t.create_time,'' AS last_view_time
|
|
|
+ FROM %s.english_company AS t
|
|
|
+ INNER JOIN overseas_custom_seller AS n ON t.seller_id=n.seller_id
|
|
|
+ WHERE 1=1 `
|
|
|
+ if companyStatus == "试用" {
|
|
|
+ sql += ` AND t.enabled IN(1,2)`
|
|
|
+ } else if companyStatus == "禁用" {
|
|
|
+ sql += ` AND t.enabled = 0 `
|
|
|
+ }
|
|
|
+
|
|
|
+ sql += ` )AS m WHERE 1=1 `
|
|
|
+
|
|
|
+ if condition != "" {
|
|
|
+ sql += condition
|
|
|
+ }
|
|
|
+
|
|
|
+ var sortFieldStr, sortDescStr string
|
|
|
+ if sortField != "" {
|
|
|
+ if sortField == "ViewTotal" {
|
|
|
+ sortFieldStr = "view_total"
|
|
|
+ } else if sortField == "RoadShowTotal" {
|
|
|
+ sortFieldStr = "road_show_total"
|
|
|
+ } else if sortField == "CreateTime" {
|
|
|
+ sortFieldStr = "create_time"
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if sortDesc == 1 {
|
|
|
+ sortDescStr = "DESC"
|
|
|
+ } else {
|
|
|
+ sortDescStr = "ASC"
|
|
|
+ }
|
|
|
+
|
|
|
+ sql += ` ORDER BY %s `
|
|
|
+ sql = fmt.Sprintf(sql, sortFieldStr, sortDescStr)
|
|
|
+ sql += ` LIMIT ?,? `
|
|
|
+ sql = fmt.Sprintf(sql, databaseName)
|
|
|
+ _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+type CustomListResp struct {
|
|
|
+ Paging *paging.PagingItem
|
|
|
+ List []*Custom
|
|
|
+}
|