Bladeren bron

fix(客户审批):调整客户名称搜索bug

Roc 3 jaren geleden
bovenliggende
commit
a4a26f8d02

+ 1 - 1
controllers/approval.go

@@ -686,7 +686,7 @@ func (this *ApprovalCommon) CompanyList() {
 		return
 	}
 	companyNameList := make([]string, 0)
-	list, err := company_approval.GetCompanyNameList(companyName)
+	list, err := company_approval.GetCompanyNameList(this.AdminWx.AdminId, this.AdminWx.RoleTypeCode, companyName)
 	if err != nil {
 		this.FailWithMessage("获取客户名称列表失败!", "获取客户名称列表失败,ERR:"+err.Error())
 		return

+ 26 - 0
controllers/contract.go

@@ -9,6 +9,7 @@ import (
 	contractService "hongze/hongze_mobile_admin/services/contract"
 	"hongze/hongze_mobile_admin/utils"
 	"rdluck_tools/paging"
+	"strings"
 )
 
 //合同模块
@@ -79,6 +80,7 @@ func (this *ContractCommon) Detail() {
 // @Success 200 {object} []string
 // @router /company_list [get]
 func (this *ContractCommon) CompanyList() {
+	sysUser := this.AdminWx
 	companyName := this.GetString("CompanyName")
 	//合同id
 	if companyName == "" {
@@ -97,6 +99,30 @@ func (this *ContractCommon) CompanyList() {
 		companyNameList = append(companyNameList, v.CompanyName)
 	}
 
+	//审批列表中
+	childCondition := ""
+	condition := ""
+	childPars := make([]interface{}, 0)
+	pars := make([]interface{}, 0)
+	//归属
+	if status == "待审批" {
+		condition += ` AND ((c.seller_id = ? and a.start_node_id = a.curr_node_id) OR (d.approve_user_id = ? )) and d.status="待审批" `
+	} else {
+		condition += ` AND (c.seller_id = ? or d.approve_user_id = ?)`
+	}
+	condition += `and company_name like '%` + companyName + `%'`
+
+	pars = append(pars, sysUser.AdminId, sysUser.AdminId)
+	list2, err := contract_approval.GetCompanyNameListV2(childCondition, condition, childPars, pars)
+	if err != nil {
+		this.FailWithMessage("获取客户名称列表失败!", "获取客户名称列表失败,ERR:"+err.Error())
+		return
+	}
+	for _, v := range list2 {
+		if !strings.Contains(strings.Join(companyNameList, ","), v.CompanyName) {
+			companyNameList = append(companyNameList, v.CompanyName)
+		}
+	}
 	this.OkDetailed(companyNameList, "获取成功")
 }
 

+ 3 - 3
models/tables/company_approval/company_approval.go

@@ -938,12 +938,12 @@ type CompanyNameList struct {
 }
 
 //获取客户名称列表数据
-func GetCompanyNameList(name string) (list []*CompanyNameList, err error) {
+func GetCompanyNameList(userId int, userRoleTypeCode, name string) (list []*CompanyNameList, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT a.company_name FROM company AS a
 			INNER JOIN company_product AS b ON a.company_id=b.company_id
 			INNER JOIN company_approval AS c ON b.company_id=c.company_id AND b.product_id=c.product_id
- 			WHERE a.company_name like '%` + name + `%' group by a.company_name order by c.modify_time DESC `
-	_, err = o.Raw(sql).QueryRows(&list)
+ 			WHERE (c.apply_user_id=? or ( (c.approve_user_id =?  or c.approve_user_id = 0) and approve_role_type_code=?)  ) and a.company_name like '%` + name + `%' group by a.company_name order by c.modify_time DESC `
+	_, err = o.Raw(sql, userId, userId, userRoleTypeCode).QueryRows(&list)
 	return
 }

+ 18 - 0
models/tables/contract_approval/contract_approval.go

@@ -179,6 +179,24 @@ WHERE c.is_delete = 0  AND a.approval_type="contract" `
 	return
 }
 
+//获取客户名称
+func GetCompanyNameListV2(childCondition, condition string, childPars, pars []interface{}) (list []*contract.CompanyNameList, err error) {
+	o := orm.NewOrm()
+	sql := `
+SELECT c.company_name from contract_approval a
+	join 
+	( SELECT max( contract_approval_id ) max_id,contract_id FROM contract_approval where 1=1 `
+	sql += childCondition
+	sql += `  GROUP BY contract_id ) b on a.contract_approval_id=b.max_id
+	JOIN contract c ON a.contract_id = c.contract_id 
+	JOIN contract_approval_record d on a.contract_approval_id=d.contract_approval_id
+WHERE c.is_delete = 0  AND a.approval_type="contract" `
+	sql += condition
+	sql += ` group by company_name order by a.modify_time desc`
+	_, err = o.Raw(sql, childPars, pars).QueryRows(&list)
+	return
+}
+
 //合同客户统计数
 func GetContractListCountV2(childCondition, condition, joinCondition, unionCondition string, childPars, pars, unionPars []interface{}) (count int, err error) {
 	o := orm.NewOrm()