Browse Source

Merge branch 'cygx/cygx_need_993' of http://8.136.199.33:3000/hongze/hz_crm_api into debug

xingzai 6 months ago
parent
commit
c611b71dec
2 changed files with 30 additions and 6 deletions
  1. 1 1
      controllers/roadshow/company.go
  2. 29 5
      models/roadshow/company.go

+ 1 - 1
controllers/roadshow/company.go

@@ -40,7 +40,7 @@ func (this *CalendarController) CompanySearch() {
 		groupId = -1
 	}
 
-	list, err := roadshow.CompanySearchV2(sysUser.AdminId, groupId, KeyWord)
+	list, err := roadshow.CompanySearchV2(sysUser.AdminId, groupId, KeyWord, sysUser.RoleTypeCode)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "搜索客户失败!"
 		br.ErrMsg = "搜索客户失败!Err:" + err.Error()

+ 29 - 5
models/roadshow/company.go

@@ -2,6 +2,7 @@ package roadshow
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hz_crm_api/utils"
 )
 
 type CompanySearchView struct {
@@ -25,13 +26,34 @@ func CompanySearch(sellerId int, keyWord string) (list []*CompanySearchView, err
 	return
 }
 
-func CompanySearchV2(sellerId, groupId int, keyWord string) (list []*CompanySearchView, err error) {
+func CompanySearchV2(sellerId, groupId int, keyWord, roleTypeCode string) (list []*CompanySearchView, err error) {
 	list = make([]*CompanySearchView, 0)
 
 	// 中文客户
 	companies := make([]*CompanySearchView, 0)
 	o := orm.NewOrm()
-	sql := `SELECT
+	var sql string
+	if roleTypeCode == utils.ROLE_TYPE_CODE_ADMIN || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN { // 权益管理员跟管理员的筛选
+		sql = `SELECT
+				b.company_id,
+				a.company_name,
+				0 AS english_company
+			FROM
+				company AS a
+			INNER JOIN company_product AS b ON a.company_id = b.company_id 
+			WHERE
+			     1=1 
+			     AND IF  ( b.product_id = 1 , b.status IN ('正式', '试用', '永续') ,1=1 )  
+			     AND IF  ( b.product_id = 2 , b.status IN ('正式', '试用', '永续', '冻结', '流失') ,1=1 )  
+				 AND a.company_name LIKE ?
+			GROUP BY
+				b.company_id `
+		_, err = o.Raw(sql, keyWord).QueryRows(&companies)
+		if err != nil {
+			return
+		}
+	} else {
+		sql = `SELECT
 				b.company_id,
 				a.company_name,
 				0 AS english_company
@@ -45,10 +67,12 @@ func CompanySearchV2(sellerId, groupId int, keyWord string) (list []*CompanySear
 				 AND (b.seller_id = ? OR b.share_seller_id = ?  OR b.group_id = ? OR b.share_group_id = ?  ) AND a.company_name LIKE ?
 			GROUP BY
 				b.company_id `
-	_, err = o.Raw(sql, sellerId, sellerId, groupId, groupId, keyWord).QueryRows(&companies)
-	if err != nil {
-		return
+		_, err = o.Raw(sql, sellerId, sellerId, groupId, groupId, keyWord).QueryRows(&companies)
+		if err != nil {
+			return
+		}
 	}
+
 	list = append(list, companies...)
 
 	// 英文客户