1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- package service
- import (
- "context"
- "go-common/app/job/main/growup/model"
- )
- // AvIncomes av_income
- func (s *Service) AvIncomes(c context.Context, mid int64, date string) (result map[int64]*model.Patch, err error) {
- avs, err := s.dao.GetAvs(c, date, mid)
- if err != nil {
- return
- }
- var avIds []int64
- for avID := range avs {
- avIds = append(avIds, avID)
- }
- charges, err := s.dao.GetAvCharges(c, avIds, date)
- if err != nil {
- return
- }
- result = avIncomes(charges, avs)
- return
- }
- // result key: av_id, value: income
- func avIncomes(avCharges map[int64]int64, avs map[int64]*model.Av) (result map[int64]*model.Patch) {
- var totalCharge int64
- for _, charge := range avCharges {
- totalCharge += charge
- }
- tax := int64(Round(Tax(Div(float64(totalCharge), 100))*100, 0))
- netIncome := totalCharge - tax
- percent := Div(float64(netIncome), float64(totalCharge))
- result = make(map[int64]*model.Patch)
- for avID, charge := range avCharges {
- avIncome := int64(float64(charge) * percent)
- avTax := int64(Round(Mul(float64(tax), Div(float64(avIncome), float64(netIncome))), 0))
- result[avID] = &model.Patch{
- Tax: avTax,
- Income: avIncome,
- OldTax: avs[avID].TaxMoney,
- OldIncome: avs[avID].Income,
- MID: avs[avID].MID,
- TagID: avs[avID].TagID,
- }
- }
- return
- }
|