package allied_creation_cooperation import ( "fmt" "github.com/linmadan/egglib-go/utils/json" "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/log" "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway" ) const ( // 合约分红列表查询 SearchContractDividends = "SearchContractDividends" // 获取分红合约详情 GetContractDividends = "GetContractDividends" // 分红统计(分红明细) DividendsStatistics = "DividendsStatistics" // 企业-商品统计 CooperationGoodsStatistics = "cooperationGoodsStatistics" // 企业-共创模式统计 CooperationModeStatistics = "CooperationModeStatistics" // 企业-分红统计 CompanyDividendsStatistics = "CompanyDividendsStatistics" // 企业、个人 - 分红预算列表 SearchDividendsEstimates = "SearchDividendsEstimates" // 公司 - 共创用户统计 CompanyCooperationUsersStatistics = "CompanyCooperationUsersStatistics" //公司 - 共创用户模式统计 CooperationUserModeStatistics = "CooperationUserModeStatistics" // 公司 - 共创用户分红支付统计 CompanyPaymentHistoryStatistics = "CompanyPaymentHistoryStatistics" // 企业共创项目 - 合约列表 CompanyCooperationProjectContracts = "CompanyCooperationProjectContracts" // 个人 - 共创企业统计 CooperationCompanyStatistics = "CooperationCompanyStatistics" // 个人 - 用户合约统计 PersonCooperationContractStatistics = "PersonCooperationContractStatistics" // 个人 - 企业支付统计 PersonCompanyPaymentHistoryStatistics = "PersonCompanyPaymentHistoryStatistics" // 个人 - 共创项目共享信息数据 PersonCooperationProjectSharedInfo = "PersonCooperationProjectSharedInfo" // 个人 - 共创项目共享信息数据 - 附件 PersonCooperationProjectSharedInfoAttachment = "PersonCooperationProjectSharedInfoAttachment" // 个人 - 共创企业 PersonCooperationCompany = "PersonCooperationCompany" // 账期结算单统计 CreditAccountStatistics = "CreditAccountStatistics" // 公司/个人 - 支付历史统计直方图 PaymentHistoryHistogramStatistics = "PaymentHistoryHistogramStatistics" // 用户相关的项目合约编号列表查询 RelevantCooperationContractNumbers = "RelevantCooperationContractNumbers" ) // CooperationStatistics 共创统计 func (gateway HttplibAlliedCreationCooperation) CooperationStatistics(action string, queryOptions interface{}) (interface{}, error) { url := gateway.baseUrL + "/cooperation-statistics" method := "post" req := gateway.CreateRequest(url, method) log.Logger.Debug("向业务模块请求数据:共创统计。", map[string]interface{}{ "api": method + ":" + url, "param": queryOptions, }) param := map[string]interface{}{ "action": action, "queryOptions": queryOptions, } req, err := req.JSONBody(param) if err != nil { return nil, fmt.Errorf("请求共创统计失败:%w", err) } byteResult, err := req.Bytes() if err != nil { return nil, fmt.Errorf("获取共创统计失败:%w", err) } log.Logger.Debug("获取业务模块请求数据:共创统计。", map[string]interface{}{ "result": string(byteResult), }) var result service_gateway.GatewayResponse err = json.Unmarshal(byteResult, &result) if err != nil { return nil, fmt.Errorf("解析共创统计:%w", err) } var data interface{} err = gateway.GetResponseData(result, &data) return &data, err } // CreditAccountStatistics 账期结算单统计 func (gateway HttplibAlliedCreationCooperation) CreditAccountStatistics(action string, queryOptions interface{}) (*DataCreditAccountStatistics, error) { url := gateway.baseUrL + "/cooperation-statistics" method := "post" req := gateway.CreateRequest(url, method) log.Logger.Debug("向业务模块请求数据:共创统计。", map[string]interface{}{ "api": method + ":" + url, "param": queryOptions, }) param := map[string]interface{}{ "action": action, "queryOptions": queryOptions, } req, err := req.JSONBody(param) if err != nil { return nil, fmt.Errorf("请求共创统计失败:%w", err) } byteResult, err := req.Bytes() if err != nil { return nil, fmt.Errorf("获取共创统计失败:%w", err) } log.Logger.Debug("获取业务模块请求数据:共创统计。", map[string]interface{}{ "result": string(byteResult), }) var result service_gateway.GatewayResponse err = json.Unmarshal(byteResult, &result) if err != nil { return nil, fmt.Errorf("解析共创统计:%w", err) } var data DataCreditAccountStatistics err = gateway.GetResponseData(result, &data) return &data, err } // CreditAccountStatistics 账期结算单统计 func (gateway HttplibAlliedCreationCooperation) RelevantCooperationContractNumbers(action string, queryOptions interface{}) ([]string, error) { url := gateway.baseUrL + "/cooperation-statistics" method := "post" req := gateway.CreateRequest(url, method) log.Logger.Debug("向业务模块请求数据:共创统计。", map[string]interface{}{ "api": method + ":" + url, "param": queryOptions, }) param := map[string]interface{}{ "action": action, "queryOptions": queryOptions, } req, err := req.JSONBody(param) if err != nil { return nil, fmt.Errorf("请求共创统计失败:%w", err) } byteResult, err := req.Bytes() if err != nil { return nil, fmt.Errorf("获取共创统计失败:%w", err) } log.Logger.Debug("获取业务模块请求数据:共创统计。", map[string]interface{}{ "result": string(byteResult), }) var result service_gateway.GatewayResponse err = json.Unmarshal(byteResult, &result) if err != nil { return nil, fmt.Errorf("解析共创统计:%w", err) } var data []string err = gateway.GetResponseData(result, &data) return data, err } // CooperationStatistics 共创统计 func (gateway HttplibAlliedCreationCooperation) CooperationStatisticsWithObject(action string, queryOptions interface{}, object interface{}) error { url := gateway.baseUrL + "/cooperation-statistics" method := "post" req := gateway.CreateRequest(url, method) log.Logger.Debug("向业务模块请求数据:共创统计。", map[string]interface{}{ "api": method + ":" + url, "param": queryOptions, }) param := map[string]interface{}{ "action": action, "queryOptions": queryOptions, } req, err := req.JSONBody(param) if err != nil { return fmt.Errorf("请求共创统计失败:%w", err) } byteResult, err := req.Bytes() if err != nil { return fmt.Errorf("获取共创统计失败:%w", err) } log.Logger.Debug("获取业务模块请求数据:共创统计。", map[string]interface{}{ "result": string(byteResult), }) var result service_gateway.GatewayResponse err = json.Unmarshal(byteResult, &result) if err != nil { return fmt.Errorf("解析共创统计:%w", err) } err = gateway.GetResponseData(result, &object) return err }