소스 검색

no message

zhangchuanxing 4 달 전
부모
커밋
e7031825be
2개의 변경된 파일41개의 추가작업 그리고 8개의 파일을 삭제
  1. 8 1
      controllers/roadshow/company.go
  2. 33 7
      models/roadshow/company.go

+ 8 - 1
controllers/roadshow/company.go

@@ -26,7 +26,14 @@ func (this *CalendarController) CompanySearch() {
 		return
 	}
 	KeyWord = "%" + KeyWord + "%"
-	list, err := roadshow.CompanySearchV2(sysUser.AdminId, KeyWord)
+	var groupId int
+	if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP {
+		groupId = sysUser.GroupId
+	} else {
+		groupId = -1
+	}
+
+	list, err := roadshow.CompanySearchV2(sysUser.AdminId, groupId, KeyWord, sysUser.RoleTypeCode)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		this.FailWithMessage("搜索客户失败!", "搜索客户失败!Err:"+err.Error())
 		return

+ 33 - 7
models/roadshow/company.go

@@ -2,6 +2,7 @@ package roadshow
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_mobile_admin/utils"
 	"time"
 )
 
@@ -115,13 +116,15 @@ func GetCompanyProductReportPermissionList(companyId, productId int) (items []*C
 	return
 }
 
-func CompanySearchV2(sellerId 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
@@ -129,12 +132,35 @@ func CompanySearchV2(sellerId int, keyWord string) (list []*CompanySearchView, e
 				company AS a
 			INNER JOIN company_product AS b ON a.company_id = b.company_id 
 			WHERE
-				b.status IN ('正式', '试用','永续') AND (b.seller_id = ? OR b.share_seller_id = ?) AND a.company_name LIKE ?
+			     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, sellerId, sellerId, keyWord).QueryRows(&companies)
-	if err != nil {
-		return
+				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
+			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 (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
+		}
 	}
 	list = append(list, companies...)