enterprise/service/salary_calculator/salary_calculator_1002.go

60 lines
1.5 KiB
Go
Raw Normal View History

2025-03-05 10:11:07 +08:00
package salary_calculator
import (
2025-03-05 16:44:20 +08:00
"enterprise/common/dao"
2025-03-05 10:11:07 +08:00
"enterprise/common/model"
"enterprise/common/registry"
2025-03-05 16:44:20 +08:00
log "github.com/sirupsen/logrus"
"time"
2025-03-05 10:11:07 +08:00
)
type SalaryCalculator1002 struct {
corp *model.Corp
user *model.StaffUser
}
func NewSalaryCalculator1002(corp *model.Corp, user *model.StaffUser) registry.SalaryCalculator {
return &SalaryCalculator1002{
corp: corp,
user: user,
}
}
2025-03-13 19:19:30 +08:00
func (s *SalaryCalculator1002) Calculate(salary *model.StaffSalary) map[string]interface{} {
data := make(map[string]interface{})
// 1.订单
monthTime, _ := time.ParseInLocation("200601", salary.Month, time.Local)
startTime := monthTime.Unix()
endTime := monthTime.AddDate(0, 1, 0).Unix() - 1
orders, err := dao.NewExternalCorpOrder().QueryOwnerOrder(s.user.Username, startTime, endTime)
if err != nil {
log.Errorf("db error:%s", err.Error())
}
2025-03-13 21:20:39 +08:00
data["orderNum"] = len(orders)
2025-03-13 19:19:30 +08:00
//2.处理的订单
processOrders, err := dao.NewExternalCorpOrder().QueryProcessOrder(s.user.Username, startTime, endTime)
if err != nil {
log.Errorf("db error:%s", err.Error())
}
2025-03-13 21:20:39 +08:00
data["processNum"] = len(processOrders)
2025-03-13 19:19:30 +08:00
//3.下属订单
corpUser, err := dao.NewExternalCorpUser().Get(s.user.Username)
if err != nil {
log.Errorf("db error:%s", err.Error())
}
if corpUser != nil {
childOrders, err := dao.NewExternalCorpOrder().QueryChildOrder(corpUser.Id, startTime, endTime)
if err != nil {
log.Errorf("db error:%s", err.Error())
}
2025-03-13 21:20:39 +08:00
data["childOrderNum"] = len(childOrders)
2025-03-13 19:19:30 +08:00
}
return data
}