zwxi 1 year ago
parent
commit
1a9ecb736f

+ 5 - 30
controllers/company_apply_v2.go

@@ -159,15 +159,8 @@ func (this *CompanyApplyController) ApplyServiceUpdate() {
 		return
 	}
 
-	companyItem, e := company.GetCompanyById(req.CompanyId)
-	if e != nil {
-		br.Msg = "客户信息有误"
-		br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
-		return
-	}
-
 	//客户归属判断-当前销售/咨询组共享销售
-	if companyProduct.SellerId != sysUser.AdminId && companyItem.ShareSellerId != sysUser.AdminId {
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
 		br.Msg = "客户信息异常"
 		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
 		return
@@ -564,14 +557,8 @@ func (this *CompanyApplyController) ApplyTurnPositive() {
 		return
 	}
 
-	companyItem, e := company.GetCompanyById(req.CompanyId)
-	if e != nil {
-		br.Msg = "客户信息有误"
-		br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
-		return
-	}
 	//客户归属判断
-	if companyProduct.SellerId != sysUser.AdminId && companyItem.ShareSellerId != sysUser.AdminId {
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
 		br.Msg = "客户信息异常"
 		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
 		return
@@ -921,7 +908,7 @@ func (this *CompanyApplyController) ApplyBySystemContract() {
 		br.ErrMsg = "客户不存在,不可提交审批:companyId:" + strconv.Itoa(req.CompanyId) + ";productId:" + strconv.Itoa(productId)
 		return
 	}
-	if companyProduct.SellerId != sysUser.AdminId && companyInfo.ShareSellerId != sysUser.AdminId {
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
 		br.Msg = "客户信息异常"
 		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
 		return
@@ -1499,14 +1486,8 @@ func (this *CompanyApplyController) ApplyThaw() {
 		return
 	}
 
-	companyItem, e := company.GetCompanyById(req.CompanyId)
-	if e != nil {
-		br.Msg = "客户信息有误"
-		br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
-		return
-	}
 	//客户归属判断
-	if companyProduct.SellerId != sysUser.AdminId && companyItem.ShareSellerId != sysUser.AdminId {
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
 		br.Msg = "客户信息异常"
 		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
 		return
@@ -1753,14 +1734,8 @@ func (this *CompanyApplyController) ApplyDelay() {
 		return
 	}
 
-	companyItem, e := company.GetCompanyById(req.CompanyId)
-	if e != nil {
-		br.Msg = "客户信息有误"
-		br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
-		return
-	}
 	//客户归属判断
-	if companyProduct.SellerId != sysUser.AdminId && companyItem.ShareSellerId != sysUser.AdminId {
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
 		br.Msg = "客户信息异常"
 		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
 		return

+ 24 - 24
controllers/company_seller.go

@@ -2331,31 +2331,7 @@ func (this *CompanySellerController) ShareSellerList() {
 		br.Ret = 408
 		return
 	}
-
-	groupId := 0
-	if utils.RunMode == "release" {
-		groupId = 37
-	} else {
-		groupId = 61
-	}
-	subAdmins, err := system.GetAdminByGroupId(groupId)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取销售失败"
-		br.ErrMsg = "获取销售失败,Err:" + err.Error()
-		return
-	}
-
 	resp := make([]company.DepartmentGroupSellers, 0)
-	for _, seller := range subAdmins {
-		sellerItem := company.DepartmentGroupSellers{
-			AdminId: fmt.Sprint(seller.AdminId),
-			//AdminName string `description:"系统用户名称"`
-			RealName:     seller.RealName,
-			Authority:    seller.Authority,
-			RoleTypeCode: seller.RoleTypeCode,
-		}
-		resp = append(resp, sellerItem)
-	}
 
 	if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
 		// 权益管理员,查看所有权益的账号
@@ -2465,6 +2441,30 @@ func (this *CompanySellerController) ShareSellerList() {
 			tmpDepartmentGroupSeller = sortDepartmentGroupSellers(tmpDepartmentGroupSeller)
 			resp = append(resp, tmpDepartmentGroupSeller...)
 		}
+	} else {
+		groupId := 0
+		if utils.RunMode == "release" {
+			groupId = 37
+		} else {
+			groupId = 61
+		}
+		subAdmins, err := system.GetAdminByGroupId(groupId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取销售失败"
+			br.ErrMsg = "获取销售失败,Err:" + err.Error()
+			return
+		}
+
+		for _, seller := range subAdmins {
+			sellerItem := company.DepartmentGroupSellers{
+				AdminId: fmt.Sprint(seller.AdminId),
+				//AdminName string `description:"系统用户名称"`
+				RealName:     seller.RealName,
+				Authority:    seller.Authority,
+				RoleTypeCode: seller.RoleTypeCode,
+			}
+			resp = append(resp, sellerItem)
+		}
 	}
 
 	br.Ret = 200

+ 28 - 18
controllers/company_share.go

@@ -50,9 +50,10 @@ func (this *CompanyController) CompanyShare() {
 		br.ErrMsg = "IsShare:" + strconv.Itoa(req.IsShare)
 		return
 	}
+	productId := services.GetProductId(sysUser.RoleTypeCode)
 
 	//查询该客户
-	companyItem, err := company.GetCompanyById(req.CompanyId)
+	companyProductItem, err := company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, productId)
 	if err != nil {
 		br.Msg = "查找客户失败"
 		br.ErrMsg = "查找客户失败,Err:" + err.Error()
@@ -61,15 +62,15 @@ func (this *CompanyController) CompanyShare() {
 
 	//待更新字段
 	updateCol := make([]string, 0)
-	companyItem.IsShare = req.IsShare
+	companyProductItem.IsShare = req.IsShare
 	updateCol = append(updateCol, "IsShare")
 	if req.IsShare == 0 {
-		companyItem.ShareSeller = ""
-		companyItem.ShareSellerId = 0
+		companyProductItem.ShareSeller = ""
+		companyProductItem.ShareSellerId = 0
 		updateCol = append(updateCol, "ShareSeller", "ShareSellerId")
 	}
 
-	err = companyItem.Update(updateCol)
+	err = companyProductItem.Update(updateCol)
 	if err != nil {
 		br.Msg = "修改客户信息失败"
 		br.ErrMsg = "修改客户信息失败,Err:" + err.Error()
@@ -185,7 +186,7 @@ func (this *CompanyController) CompanyShareList() {
 				}
 				if sysUser.GroupId == groupId {
 					if sellerIdStr != "" {
-						condition += ` AND a.share_seller_id IN (` + sellerIdStr + `) `
+						condition += ` AND b.share_seller_id IN (` + sellerIdStr + `) `
 					}
 				} else {
 					if groupIdStr != "" {
@@ -201,7 +202,7 @@ func (this *CompanyController) CompanyShareList() {
 						return
 					}
 					if sellerIdStr != "" {
-						condition += ` AND a.share_seller_id IN (` + sellerIdStr + `) `
+						condition += ` AND b.share_seller_id IN (` + sellerIdStr + `) `
 					}
 				} else {
 					condition += ` AND b.group_id=? `
@@ -209,7 +210,7 @@ func (this *CompanyController) CompanyShareList() {
 				}
 			} else if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_ADMIN && sysUser.AdminId != 66 && sysUser.AdminId != 15 && roleTypeCode != utils.ROLE_TYPE_CODE_FICC_ADMIN && roleTypeCode != utils.ROLE_TYPE_CODE_RAI_ADMIN {
 				if sysUser.GroupId == groupId {
-					condition += ` AND a.share_seller_id=? `
+					condition += ` AND b.share_seller_id=? `
 					pars = append(pars, sysUser.AdminId)
 				} else {
 					condition += ` AND b.seller_id=? `
@@ -220,18 +221,20 @@ func (this *CompanyController) CompanyShareList() {
 	}
 
 	if listParam == 0 {
-		if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM {
+		if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_GROUP ||
+			sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_TEAM || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER ||
+			sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_GROUP{
 			//非咨询组销售,那么默认查看“未共享”的客户
 			if sysUser.GroupId != groupId {
 				listParam = 3
-				if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER {
+				if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER{
 					condition += ` AND b.seller_id = ? `
 					pars = append(pars, sysUser.AdminId)
 				}
 			} else {
-				condition += ` AND a.is_share=1 `
+				condition += ` AND b.is_share=1 `
 			}
-		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN {
+		} else if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN{
 			// 管理员,默认查看“待分配”客户
 			listParam = 2
 		}
@@ -242,11 +245,17 @@ func (this *CompanyController) CompanyShareList() {
 	} else if listParam == 2 {
 		condition += ` AND b.share_seller_id = 0 AND b.is_share=1 `
 	} else if listParam == 3 { // 未共享
-		condition += ` AND b.is_share=0 and ((b.status="正式" AND b.product_id = 1) OR (b.status IN ("正式","试用") AND b.product_id = 2))`
+		if productId == 1 {
+			condition += ` AND b.is_share=0 and (b.status="正式" AND b.product_id = 1) `
+		} else if productId == 2{
+			condition += ` AND b.is_share=0 and (b.status IN ("正式","试用") AND b.product_id = 2) `
+		} else {
+			condition += ` AND b.is_share=0 and ((b.status="正式" AND b.product_id = 1) OR (b.status IN ("正式","试用") AND b.product_id = 2))`
+		}
 	}
 
 	if sellerIds != "" {
-		condition += ` AND a.share_seller_id IN (` + sellerIds + `) `
+		condition += ` AND b.share_seller_id IN (` + sellerIds + `) `
 	}
 	if originalSellerIds != "" {
 		condition += ` AND b.seller_id IN (` + originalSellerIds + `) `
@@ -700,9 +709,10 @@ func (this *CompanyController) MoveShareSeller() {
 		br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
 		return
 	}
+	productId := services.GetProductId(sysUser.RoleTypeCode)
 
 	//查询该客户
-	companyItem, err := company.GetCompanyById(req.CompanyId)
+	companyProductItem, err := company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId,productId)
 	if err != nil {
 		br.Msg = "查找客户失败"
 		br.ErrMsg = "查找客户失败,Err:" + err.Error()
@@ -711,11 +721,11 @@ func (this *CompanyController) MoveShareSeller() {
 
 	//待更新字段
 	updateCol := make([]string, 0)
-	companyItem.ShareSeller = seller.RealName
-	companyItem.ShareSellerId = seller.AdminId
+	companyProductItem.ShareSeller = seller.RealName
+	companyProductItem.ShareSellerId = seller.AdminId
 	updateCol = append(updateCol, "ShareSeller", "ShareSellerId")
 
-	err = companyItem.Update(updateCol)
+	err = companyProductItem.Update(updateCol)
 	if err != nil {
 		br.Msg = "修改客户信息失败"
 		br.ErrMsg = "修改客户信息失败,Err:" + err.Error()

+ 9 - 4
controllers/company_user.go

@@ -93,25 +93,30 @@ func (this *CompanyUserController) AddUser() {
 		return
 	}
 	regionType := req.RegionType //区域来源
+	productId := services.GetProductId(sysUser.RoleTypeCode)
 
 	//操作员的产品权限
 	companyProductList := make([]*company.CompanyProduct, 0)
 
 	shareSellerId := 0
-	companyInfo := new(company.Company)
+	companyInfo, e := company.GetCompanyById(req.CompanyId)
+	if e != nil {
+		br.Msg = "客户信息有误"
+		br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
+		return
+	}
+
 	if req.CompanyId > 0 {
-		item, e := company.GetCompanyById(req.CompanyId)
+		item, e := company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, productId)
 		if e != nil {
 			br.Msg = "客户信息有误"
 			br.ErrMsg = "获取客户信息失败, Err: " + e.Error()
 			return
 		}
-		companyInfo = item
 		shareSellerId = item.ShareSellerId
 	}
 
 	//权益类客户,邮箱必填(2021-03-22 13:32:59修改)
-	productId := services.GetProductId(sysUser.RoleTypeCode)
 	if productId == 1 || regionType == "国内" { //ficc类客户
 		if req.MobileOne == "" && req.Email == "" {
 			br.Msg = "请输入手机号或邮箱"

+ 1 - 4
models/company/company.go

@@ -27,14 +27,11 @@ type Company struct {
 	LastUpdatedTime time.Time `description:"最后一次阅读时间"`
 	Seller          string    `description:"销售员"`
 	SellsId         int       `description:"销售员id"`
-	ShareSeller     string    `description:"共享销售员"`
-	ShareSellerId   int       `description:"共享销售员id"`
 	CompanyBelong   string    `description:"客户所属,ficc:ficc客户,public_offering:公募客户,partner:合作伙伴"`
 	StartDate       string    `description:"合同开始日期"`
 	EndDate         string    `description:"合同结束日期"`
 	LastType        int       `description:"原客户标签"`
 	IsVip           int       `description:"0:普通用户,1:大客户"`
-	IsShare         int       `description:"0:非共享用户,1:共享客户"`
 	FirstStartDate  string    `description:"首次设置为试用客户开始时间"`
 	FirstEndDate    string    `description:"首次设置为试用客户结束时间"`
 	DateType        int       `description:"设置流失类型,1:1个月,2:2个月,3:3个月"`
@@ -1726,7 +1723,7 @@ func GetShareCompanyList(condition, sortStr string, pars []interface{}, startSiz
 	t := time.Now().Local().AddDate(0, 0, -7).Format(utils.FormatDate)
 
 	sql := `SELECT a.company_id,a.company_name,a.credit_code,a.company_code,a.created_time,a.province,a.city,
-a.address,a.region_type,b.group_id,b.road_show_total,a.is_share,a.share_seller_id,a.share_seller,
+a.address,a.region_type,b.group_id,b.road_show_total,b.is_share,b.share_seller_id,b.share_seller,
 			CASE 
      WHEN GROUP_CONCAT(b.status) LIKE "%永续%" THEN 1
 	 WHEN GROUP_CONCAT(b.status) LIKE "%正式%" THEN 2

+ 6 - 0
models/company/company_product.go

@@ -56,6 +56,9 @@ type CompanyProduct struct {
 	CloseTime           time.Time `description:"关闭时间"`
 	OverseasLabel       int       `description:"海外客户试用子标签:1未分类、2  推进、3 跟踪、4 预备、"`
 	IsOverseas          int       `description:"是否显示在海外客户0:显示,1:不显示"`
+	IsShare             int       `description:"0:非共享用户,1:共享客户"`
+	ShareSeller         string    `description:"共享销售员"`
+	ShareSellerId       int       `description:"共享销售员id"`
 }
 
 // 新增客户产品
@@ -95,6 +98,9 @@ type CompanyProductDetail struct {
 	Scale            string    `description:"管理规模,空不填,1::50亿以下,2:50~100亿,3:100亿以上。"`
 	SpecialSurplus   string    `description:"专项调研剩余次数"`
 	Points           string    `description:"公司研选服务剩余点数"`
+	IsShare          int       `description:"0:非共享用户,1:共享客户"`
+	ShareSeller      string    `description:"共享销售员"`
+	ShareSellerId    int       `description:"共享销售员id"`
 	PermissionList   []*PermissionLookList
 }
 

+ 1 - 11
services/task.go

@@ -82,15 +82,7 @@ func InitContractUnusual() (err error) {
 				ficcNormalMap[v.CompanyId] = struct{}{}
 			}
 			for _, v := range contractList {
-				companyInfo, tErr := company.GetCompanyById(v.CompanyId)
-				if tErr != nil {
-					err = tErr
-					return
-				}
-				if companyInfo.IsShare == 0 {
-					companyInfo.ShareSellerId = 0
-					companyInfo.ShareSeller = ""
-				}
+
 				sellers, tErr := company.GetCompanyProductByCompanyIdAndProductId(v.CompanyId, v.ProductId)
 				if tErr != nil {
 					err = tErr
@@ -104,8 +96,6 @@ func InitContractUnusual() (err error) {
 						Source:          1,
 						SellerId:        sellers.SellerId,
 						SellerName:      sellers.SellerName,
-						ShareSellerId:   companyInfo.ShareSellerId,
-						ShareSellerName: companyInfo.ShareSeller,
 						CreateTime:      startDate,
 						ModifyTime:      startDate,
 					}