...
|
...
|
@@ -2,6 +2,9 @@ package domain_service |
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
"github.com/beego/beego/v2/core/validation"
|
|
|
"github.com/linmadan/egglib-go/utils/json"
|
|
|
"github.com/linmadan/egglib-go/utils/tool_funs"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/domain"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/dao"
|
|
|
"gitlab.fjmaimaimai.com/allied-creation/allied-creation-cooperation/pkg/infrastructure/utils"
|
...
|
...
|
@@ -12,32 +15,44 @@ import ( |
|
|
|
|
|
// rankType 排行榜类型,1月榜,2年榜 3总榜,默认展示年榜
|
|
|
// top 排名前n个
|
|
|
func (ptr *CooperationStatisticsService) CooperationGoodsStatistics(companyId, orgId int64, rankType int, top int) ([]*domain.CooperationGoodsStatisticsDto, error) {
|
|
|
func (ptr *CooperationStatisticsService) CooperationGoodsStatistics(queryOptions map[string]interface{}) ([]*domain.CooperationGoodsStatisticsDto, error) {
|
|
|
orderGoodDao, _ := dao.NewOrderGoodDao(ptr.transactionContext)
|
|
|
queryOptions := make(map[string]interface{})
|
|
|
queryOptions["companyId"] = companyId
|
|
|
queryOptions["orgId"] = orgId
|
|
|
// 参数验证
|
|
|
var request = struct {
|
|
|
CompanyId int64 `json:"companyId" valid:"Required"`
|
|
|
OrgId int64 `json:"orgId" valid:"Required"`
|
|
|
RankType int `json:"rankType" valid:"Required"`
|
|
|
Top int `json:"top" valid:"Required"`
|
|
|
}{}
|
|
|
if err := LoadQueryObject(queryOptions, &request); err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
queryOptions = tool_funs.SimpleStructToMap(&request)
|
|
|
|
|
|
y := time.Now().Year()
|
|
|
m := time.Now().Month()
|
|
|
var beginTime, endTime time.Time
|
|
|
if rankType == 1 { //1月榜
|
|
|
if request.RankType == 1 { //1月榜
|
|
|
beginTime = time.Date(y, m, 1, 0, 0, 0, 0, time.Local)
|
|
|
endTime = beginTime.AddDate(0, 1, 0)
|
|
|
queryOptions["beginTime"] = beginTime
|
|
|
queryOptions["endTime"] = endTime
|
|
|
} else if rankType == 2 { //2年榜
|
|
|
queryOptions["beginTime"] = beginTime.Format(time.RFC3339)
|
|
|
queryOptions["endTime"] = endTime.Format(time.RFC3339)
|
|
|
} else if request.RankType == 2 { //2年榜
|
|
|
beginTime = time.Date(y, 1, 1, 0, 0, 0, 0, time.Local)
|
|
|
endTime = beginTime.AddDate(1, 0, 0)
|
|
|
queryOptions["beginTime"] = beginTime
|
|
|
queryOptions["endTime"] = endTime
|
|
|
queryOptions["beginTime"] = beginTime.Format(time.RFC3339)
|
|
|
queryOptions["endTime"] = endTime.Format(time.RFC3339)
|
|
|
}
|
|
|
if top > 0 {
|
|
|
queryOptions["limit"] = top
|
|
|
if request.Top > 0 {
|
|
|
queryOptions["limit"] = request.Top
|
|
|
}
|
|
|
goods, err := orderGoodDao.CooperationGoodsStatistics(queryOptions)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
if len(goods) == 0 {
|
|
|
goods = make([]*domain.CooperationGoodsStatisticsDto, 0)
|
|
|
}
|
|
|
|
|
|
// 2.计算百分比
|
|
|
var totalAmount float64
|
...
|
...
|
@@ -54,16 +69,25 @@ func (ptr *CooperationStatisticsService) CooperationGoodsStatistics(companyId, o |
|
|
// CooperationModeStatistics 企业-共创模式统计
|
|
|
//
|
|
|
// p1 p1_desc
|
|
|
func (ptr *CooperationStatisticsService) CooperationModeStatistics(companyId, orgId int64) ([]*domain.CooperationModeStatisticsDto, error) {
|
|
|
func (ptr *CooperationStatisticsService) CooperationModeStatistics(queryOptions map[string]interface{}) ([]*domain.CooperationModeStatisticsDto, error) {
|
|
|
orderGoodDao, _ := dao.NewOrderGoodDao(ptr.transactionContext)
|
|
|
queryOptions := make(map[string]interface{})
|
|
|
queryOptions["companyId"] = companyId
|
|
|
queryOptions["orgId"] = orgId
|
|
|
// 参数验证
|
|
|
var request = struct {
|
|
|
CompanyId int64 `json:"companyId" valid:"Required"`
|
|
|
OrgId int64 `json:"orgId" valid:"Required"`
|
|
|
}{}
|
|
|
if err := LoadQueryObject(queryOptions, &request); err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
queryOptions = tool_funs.SimpleStructToMap(&request)
|
|
|
|
|
|
modeStatistics, err := orderGoodDao.CooperationModeStatistics(queryOptions)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
if len(modeStatistics) == 0 {
|
|
|
modeStatistics = make([]*domain.CooperationModeStatisticsDto, 0)
|
|
|
}
|
|
|
|
|
|
return modeStatistics, nil
|
|
|
}
|
...
|
...
|
@@ -71,14 +95,22 @@ func (ptr *CooperationStatisticsService) CooperationModeStatistics(companyId, or |
|
|
// DividendsStatistics 分红统计
|
|
|
//
|
|
|
// action 1:当前月
|
|
|
func (ptr *CooperationStatisticsService) CompanyDividendsStatistics(companyId, orgId int64, action int) (interface{}, error) {
|
|
|
func (ptr *CooperationStatisticsService) CompanyDividendsStatistics(queryOptions map[string]interface{}) (interface{}, error) {
|
|
|
// 参数验证
|
|
|
var request = struct {
|
|
|
CompanyId int64 `json:"companyId" valid:"Required"`
|
|
|
OrgId int64 `json:"orgId" valid:"Required"`
|
|
|
Action int `json:"action" valid:"Required"`
|
|
|
}{}
|
|
|
if err := LoadQueryObject(queryOptions, &request); err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
queryOptions = tool_funs.SimpleStructToMap(&request)
|
|
|
|
|
|
orderGoodDao, _ := dao.NewOrderGoodDao(ptr.transactionContext)
|
|
|
queryOptions := make(map[string]interface{})
|
|
|
queryOptions["companyId"] = companyId
|
|
|
queryOptions["orgId"] = orgId
|
|
|
var beginTime, endTime time.Time
|
|
|
var res = make(map[string]interface{})
|
|
|
if action == 1 {
|
|
|
if request.Action == 1 {
|
|
|
y := time.Now().Year()
|
|
|
m := time.Now().Month()
|
|
|
beginTime = time.Date(y, m, 1, 0, 0, 0, 0, time.Local)
|
...
|
...
|
@@ -86,18 +118,18 @@ func (ptr *CooperationStatisticsService) CompanyDividendsStatistics(companyId, o |
|
|
queryOptions["beginTime"] = beginTime
|
|
|
queryOptions["endTime"] = endTime
|
|
|
}
|
|
|
totalDividends, err := orderGoodDao.DividendsStatistics(queryOptions)
|
|
|
totalDividends, err := orderGoodDao.CompanyDividendsStatistics(queryOptions)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
res["creditAccount"] = totalDividends.DividendsEstimate
|
|
|
res["orderAmount"] = totalDividends.OrderAmount
|
|
|
|
|
|
queryOptions["paymentStatus"] = 2
|
|
|
dividendsEstimate, err := orderGoodDao.DividendsStatistics(queryOptions)
|
|
|
dividendsEstimate, err := orderGoodDao.CompanyDividendsStatistics(queryOptions)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
res["creditAccount"] = totalDividends.DividendsEstimate
|
|
|
res["orderAmount"] = totalDividends.OrderAmount
|
|
|
res["dividendsEstimate"] = dividendsEstimate.DividendsEstimate
|
|
|
return res, nil
|
|
|
}
|
...
|
...
|
@@ -115,6 +147,13 @@ func LoadQueryOptions(queryOption map[string]interface{}, keys ...string) (map[s |
|
|
return res, nil
|
|
|
}
|
|
|
|
|
|
func LoadQueryObject(queryOption map[string]interface{}, obj interface{}) error {
|
|
|
json.UnmarshalFromString(json.MarshalToString(queryOption), obj)
|
|
|
validation := validation.Validation{}
|
|
|
_, err := validation.Valid(obj)
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
type item struct {
|
|
|
key string
|
|
|
val interface{}
|
...
|
...
|
|