|
@@ -6133,6 +6133,7 @@ func (this *StatisticReportController) InvoicePaymentList() {
|
|
|
sortParam := this.GetString("SortParam")
|
|
|
sortType := this.GetString("SortType")
|
|
|
sellerIdstr := this.GetString("SellerIds")
|
|
|
+ shareSellerIdstr := this.GetString("ShareSellerIds")
|
|
|
cond := `1 = 1`
|
|
|
pars := make([]interface{}, 0)
|
|
|
|
|
@@ -6147,6 +6148,42 @@ func (this *StatisticReportController) InvoicePaymentList() {
|
|
|
cond += ` AND (c.seller_id in (` + sellerIdstr + `) OR d.seller_id in (` + sellerIdstr + `))`
|
|
|
//pars = append(pars, sellerIds, sellerIds)
|
|
|
}
|
|
|
+ if shareSellerIdstr != "" {
|
|
|
+ // 校验入参
|
|
|
+ shareSellerIdsSlice := strings.Split(shareSellerIdstr, ",")
|
|
|
+ shareSellerIds := make([]int, 0)
|
|
|
+ for _, v := range shareSellerIdsSlice {
|
|
|
+ id, err := strconv.Atoi(v)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "分享销售ID格式不正确!"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ shareSellerIds = append(shareSellerIds, id)
|
|
|
+ }
|
|
|
+ // 查询分享销售ID对应的客户ID,以便找出对应的合同编码
|
|
|
+ companyNames, e := company.GetCompanyNameByShareSellerId(shareSellerIds)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败!"
|
|
|
+ br.ErrMsg = "获取分享销售ID对应的客户ID失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ contractCodes, e := company.GetContractCodesByShareSellerId(shareSellerIds)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败!"
|
|
|
+ br.ErrMsg = "获取分享销售ID对应的合同编码失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(companyNames) > 0 {
|
|
|
+ if len(contractCodes) > 0 {
|
|
|
+ cond += ` AND (b.company_name IN (` + utils.GetOrmInReplace(len(companyNames)) + `) OR b.contract_code IN (` + utils.GetOrmInReplace(len(contractCodes)) + `))`
|
|
|
+ pars = append(pars, companyNames, contractCodes)
|
|
|
+ } else {
|
|
|
+ cond += ` AND b.company_name IN (` + utils.GetOrmInReplace(len(companyNames)) + `)`
|
|
|
+ pars = append(pars, companyNames)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
// 套餐筛选
|
|
|
if serviceType != "" {
|
|
|
serviceTypes := strings.Split(serviceType, ",")
|
|
@@ -6175,6 +6212,24 @@ func (this *StatisticReportController) InvoicePaymentList() {
|
|
|
if utils.RunMode == "debug" {
|
|
|
dshiAdminId = 233
|
|
|
}
|
|
|
+
|
|
|
+ // 咨询组的分组id
|
|
|
+ groupId := 0
|
|
|
+ if utils.RunMode == "release" {
|
|
|
+ groupId = 37
|
|
|
+ } else {
|
|
|
+ groupId = 61
|
|
|
+ }
|
|
|
+
|
|
|
+ raiGroupId := 0
|
|
|
+ if utils.RunMode == "release" {
|
|
|
+ raiGroupId = 68
|
|
|
+ } else {
|
|
|
+ raiGroupId = 132
|
|
|
+ }
|
|
|
+
|
|
|
+ isEmpty := false
|
|
|
+
|
|
|
if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN {
|
|
|
sellerIdsList, err := system.GetSellerIdsByDepId(depId)
|
|
|
if err != nil {
|
|
@@ -6197,10 +6252,63 @@ func (this *StatisticReportController) InvoicePaymentList() {
|
|
|
sellerIdsList = strings.TrimRight(sellerIdsList, ",")
|
|
|
|
|
|
cond += ` AND (c.seller_id IN (` + sellerIdsList + `) OR d.seller_id IN (` + sellerIdsList + `))`
|
|
|
- pars = append(pars)
|
|
|
} else if sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_ADMIN {
|
|
|
- cond += ` AND (c.seller_id=? OR d.seller_id=?)`
|
|
|
- pars = append(pars, sysUser.AdminId, sysUser.AdminId)
|
|
|
+ if sysUser.GroupId == groupId {
|
|
|
+ // 如果是Ficc咨询组, 则查询
|
|
|
+ //productId := 1
|
|
|
+ // 咨询组的销售,查询名下的合同列表,
|
|
|
+ companyNames, err := company.GetCompanyNameByShareSellerId([]int{sysUser.AdminId})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败!"
|
|
|
+ br.ErrMsg = "获取商品到款统计列表总数失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ contractCodes, err := company.GetContractCodesByShareSellerId([]int{sysUser.AdminId})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败!"
|
|
|
+ br.ErrMsg = "获取商品到款统计列表总数失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(companyNames) == 0 {
|
|
|
+ isEmpty = true
|
|
|
+ } else {
|
|
|
+ if len(contractCodes) > 0 {
|
|
|
+ cond += ` AND (b.company_name IN (` + utils.GetOrmInReplace(len(companyNames)) + `) OR b.contract_code IN (` + utils.GetOrmInReplace(len(contractCodes)) + `)) AND a.service_product_id = 1`
|
|
|
+ pars = append(pars, companyNames, contractCodes)
|
|
|
+ } else {
|
|
|
+ cond += ` AND b.company_name IN (` + utils.GetOrmInReplace(len(companyNames)) + `) AND a.service_product_id = 1`
|
|
|
+ pars = append(pars, companyNames)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if sysUser.GroupId == raiGroupId {// 如果是权益的服务组销售,
|
|
|
+ //productId := 2
|
|
|
+ companyNames, err := company.GetCompanyNameByShareSellerId([]int{sysUser.AdminId})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败!"
|
|
|
+ br.ErrMsg = "获取商品到款统计列表总数失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ contractCodes, err := company.GetContractCodesByShareSellerId([]int{sysUser.AdminId})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败!"
|
|
|
+ br.ErrMsg = "获取商品到款统计列表总数失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if len(companyNames) == 0 {
|
|
|
+ isEmpty = true
|
|
|
+ } else {
|
|
|
+ if len(contractCodes) > 0 {
|
|
|
+ cond += ` AND (b.company_name IN (` + utils.GetOrmInReplace(len(companyNames)) + `) OR b.contract_code IN (` + utils.GetOrmInReplace(len(contractCodes)) + `)) AND a.service_product_id = 2`
|
|
|
+ pars = append(pars, companyNames, contractCodes)
|
|
|
+ } else {
|
|
|
+ cond += ` AND b.company_name IN (` + utils.GetOrmInReplace(len(companyNames)) + `) AND a.service_product_id = 2`
|
|
|
+ pars = append(pars, companyNames)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ cond += ` AND (c.seller_id=? OR d.seller_id=?)`
|
|
|
+ pars = append(pars, sysUser.AdminId, sysUser.AdminId)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 开票到款日期
|
|
@@ -6279,7 +6387,19 @@ func (this *StatisticReportController) InvoicePaymentList() {
|
|
|
br.Msg = "排序字段不正确!"
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
+ if isEmpty {
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, 0)
|
|
|
+ results := new(fms.InvoicePaymentCensusResp)
|
|
|
+ results.Paging = page
|
|
|
+ results.DataList = make([]*fms.InvoicePaymentCensusItem, 0)
|
|
|
+ results.InvoiceCurrencyTotal = make([]*fms.InvoiceListCurrencyTotal, 0)
|
|
|
+ results.PaymentCurrencyTotal = make([]*fms.InvoiceListCurrencyTotal, 0)
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+ br.Data = results
|
|
|
+ return
|
|
|
+ }
|
|
|
registerList, total, e := fms.GetInvoicePaymentCensusPageList(cond, pars, order, startSize, pageSize)
|
|
|
if e != nil {
|
|
|
br.Msg = "获取失败!"
|
|
@@ -6287,8 +6407,38 @@ func (this *StatisticReportController) InvoicePaymentList() {
|
|
|
return
|
|
|
}
|
|
|
queryRegisterIds := make([]int, 0)
|
|
|
+ contractCodeSlice := make([]string, 0)
|
|
|
+ companyNameSlice := make([]string, 0)
|
|
|
for i := range registerList {
|
|
|
queryRegisterIds = append(queryRegisterIds, registerList[i].ContractRegisterId)
|
|
|
+ contractCodeSlice = append(contractCodeSlice, registerList[i].ContractCode)
|
|
|
+ companyNameSlice = append(companyNameSlice, registerList[i].CompanyName)
|
|
|
+ }
|
|
|
+ // 根据合同编码查询对应的共享销售
|
|
|
+ shareSellerMap := make(map[string]*company.CompanyShareSeller)
|
|
|
+ contractShareSellerMap := make(map[string]*company.ContractShareSeller)
|
|
|
+ if len(companyNameSlice) > 0 {
|
|
|
+ shareSellerList, e := company.GetShareSellerByCompanyName(companyNameSlice)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败!"
|
|
|
+ br.ErrMsg = "获取共享销售失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range shareSellerList {
|
|
|
+ name := fmt.Sprintf("%s_%s", v.CompanyName, v.ProductId)
|
|
|
+ shareSellerMap[name] = v
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if len(contractCodeSlice) > 0 {
|
|
|
+ contractShareSellerList, e := company.GetShareSellerListByContractCode(contractCodeSlice)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败!"
|
|
|
+ br.ErrMsg = "获取共享销售失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range contractShareSellerList {
|
|
|
+ contractShareSellerMap[v.ContractCode] = v
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//fmt.Println("queryRegisterIds:",queryRegisterIds)
|
|
@@ -6444,6 +6594,18 @@ func (this *StatisticReportController) InvoicePaymentList() {
|
|
|
v.InvoicePaymentList = summaryMap[registerList[i].SummaryId]
|
|
|
v.ContractType = registerList[i].ContractType
|
|
|
v.ActualPayCompanies = registerList[i].ActualPayCompanies
|
|
|
+ shareSellerItem := fmt.Sprintf("%s_%d", registerList[i].CompanyName, v.ServiceProductId)
|
|
|
+ contractShareSeller, ok := shareSellerMap[shareSellerItem]
|
|
|
+ if ok {
|
|
|
+ v.ShareSellerId = contractShareSeller.ShareSellerId
|
|
|
+ v.ShareSellerName = contractShareSeller.ShareSeller
|
|
|
+ }else{
|
|
|
+ contractShareSeller, ok := contractShareSellerMap[registerList[i].ContractCode]
|
|
|
+ if ok {
|
|
|
+ v.ShareSellerId = contractShareSeller.ShareSellerId
|
|
|
+ v.ShareSellerName = contractShareSeller.ShareSeller
|
|
|
+ }
|
|
|
+ }
|
|
|
respList = append(respList, v)
|
|
|
}
|
|
|
}()
|