credit_accounts_company.go 5.5 KB
package service

import (
	"github.com/linmadan/egglib-go/core/application"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/mobile/cooperation/command"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/mobile/cooperation/dto"
	"gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_cooperation"
)

// CompanyCreditAccountService 企业端账期结算 【50%】
type CompanyCreditAccountService struct {
}

// CreditAccountSearch  企业的账期结算列表
func (srv CompanyCreditAccountService) CreditAccountSearch(cmd *command.CreditAccountSearchCommand) (int64, interface{}, error) {
	gateway := allied_creation_cooperation.NewHttplibAlliedCreationCooperation(
		cmd.Operator)
	resultMenu, err := gateway.CreditAccountsSearch(allied_creation_cooperation.ReqCreditAccountsSearch{
		PageNumber:    cmd.PageNumber,
		PageSize:      cmd.PageSize,
		PaymentStatus: cmd.PaymentStatus,
		OrgId:         cmd.Operator.OrgId,
	})
	if err != nil {
		return 0, nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	}
	var items []*dto.CreditAccountItem
	for i := 0; i < len(resultMenu.Grid.List); i++ {
		items = append(items, dto.ToCreditAccountItem(&resultMenu.Grid.List[i]))
	}
	return int64(len(items)), items, nil
}

// CreditAccountGet  企业的账期结算明细
func (srv CompanyCreditAccountService) CreditAccountGet(cmd *command.CreditAccountGetCommand) (interface{}, error) {
	gateway := allied_creation_cooperation.NewHttplibAlliedCreationCooperation(
		cmd.Operator)
	resultMenu, err := gateway.CreditAccountGet(allied_creation_cooperation.ReqCreditAccountGet{
		CreditAccountId: cmd.CreditAccountId,
	})
	if err != nil {
		return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	}
	result := map[string]interface{}{
		"creditAccount": dto.ToCreditAccountItem(&resultMenu.CreditAccount),
		//TODO:dividendsEstimate 结算明细
		"dividendsEstimate": []struct{}{},
	}
	return result, nil
}

// CreditAccountDelete  企业的账期结算删除
func (srv CompanyCreditAccountService) CreditAccountDelete(cmd *command.CreditAccountGetCommand) (interface{}, error) {
	gateway := allied_creation_cooperation.NewHttplibAlliedCreationCooperation(
		cmd.Operator)
	resultMenu, err := gateway.CreditAccountRemove(allied_creation_cooperation.ReqCreditAccountRemove{
		CreditAccountId: cmd.CreditAccountId,
	})
	if err != nil {
		return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	}
	return resultMenu, nil
}

// CreditAccountPay  企业的账期结算支付
func (srv CompanyCreditAccountService) CreditAccountPay(cmd *command.CreditAccountPayCommand) (interface{}, error) {
	gateway := allied_creation_cooperation.NewHttplibAlliedCreationCooperation(
		cmd.Operator)
	resultMenu, err := gateway.CreditAccountsPay(allied_creation_cooperation.ReqCreditAccountsPay{
		CreditAccountId:    cmd.CreditAccountId,
		ActuallyPaidAmount: cmd.ActuallyPaidAmount,
		Remarks:            cmd.Remarks,
		Attachment:         cmd.Attachment,
	})
	if err != nil {
		return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	}
	return resultMenu, nil
}

// CreditAccountPaySearch  企业分红结算支付记录
func (srv CompanyCreditAccountService) CreditAccountPaySearch(cmd *command.CreditAccountPaySearchCommand) (interface{}, error) {
	gateway := allied_creation_cooperation.NewHttplibAlliedCreationCooperation(
		cmd.Operator)
	resultMenu, err := gateway.CreditAccountsSearch(allied_creation_cooperation.ReqCreditAccountsSearch{
		PageNumber:    cmd.PageNumber,
		PageSize:      cmd.PageSize,
		PaymentStatus: 2,
		//TODO:时间段过滤
	})
	if err != nil {
		return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	}
	var items []*dto.CreditAccountItem
	for i := 0; i < len(resultMenu.Grid.List); i++ {
		items = append(items, dto.ToCreditAccountItem(&resultMenu.Grid.List[i]))
	}
	return map[string]interface{}{
		"grid": map[string]interface{}{
			"list": items,
			//TODO:sum 时间段支付金额
			"sum": 6000,
		},
	}, nil
}

// PaymentHistoryStatistics  支付历史统计
func (srv CompanyCreditAccountService) PaymentHistoryStatistics(cmd *command.CreditAccountPaySearchCommand) (interface{}, error) {
	//gateway := allied_creation_cooperation.NewHttplibAlliedCreationCooperation(
	//	cmd.Operator)
	//resultMenu, err := gateway.CreditAccountsSearch(allied_creation_cooperation.ReqCreditAccountsSearch{
	//	PageNumber:    cmd.PageNumber,
	//	PageSize:      cmd.PageSize,
	//	PaymentStatus: 2,
	//})
	//if err != nil {
	//	return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	//}
	return map[string]interface{}{
		"rankItems":          []struct{}{},
		"totalPaymentAmount": 6000,
	}, nil
}

// PaymentHistoryHistogramStatistics  支付历史统计-直方图
func (srv CompanyCreditAccountService) PaymentHistoryHistogramStatistics(cmd *command.CreditAccountPaySearchCommand) (interface{}, error) {
	//gateway := allied_creation_cooperation.NewHttplibAlliedCreationCooperation(
	//	cmd.Operator)
	//resultMenu, err := gateway.CreditAccountsSearch(allied_creation_cooperation.ReqCreditAccountsSearch{
	//	PageNumber:    cmd.PageNumber,
	//	PageSize:      cmd.PageSize,
	//	PaymentStatus: 2,
	//})
	//if err != nil {
	//	return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())
	//}
	return map[string]interface{}{
		"xAxis": map[string]interface{}{
			"data": []string{"7-5", "7-15", "7-25"},
		},
		"yAxis": struct{}{},
		"source": map[string]interface{}{
			"value": []float64{60, 80, 90},
		},
	}, nil
}