new salary3
This commit is contained in:
parent
d151cfcaba
commit
2ca063b072
|
@ -1,42 +0,0 @@
|
||||||
package dao
|
|
||||||
|
|
||||||
import (
|
|
||||||
"enterprise/common/model"
|
|
||||||
"gorm.io/gorm"
|
|
||||||
)
|
|
||||||
|
|
||||||
type CorpOrderData struct {
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewCorpOrderData() *CorpOrderData {
|
|
||||||
return &CorpOrderData{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d *CorpOrderData) TableName() string {
|
|
||||||
return "cp_order"
|
|
||||||
}
|
|
||||||
|
|
||||||
func (d *CorpOrderData) QueryOwnerData(owner, startDay, endDay string) (*model.CorpOrderData, error) {
|
|
||||||
tx := corpDB.Table(d.TableName())
|
|
||||||
|
|
||||||
var o model.CorpOrderData
|
|
||||||
|
|
||||||
tx = tx.Where("data_type = ?", "account_report")
|
|
||||||
tx = tx.Where("owner = ?", owner)
|
|
||||||
if startDay != "" {
|
|
||||||
tx = tx.Where("day >= ?", startDay)
|
|
||||||
}
|
|
||||||
if endDay != "" {
|
|
||||||
tx = tx.Where("day <= ?", endDay)
|
|
||||||
}
|
|
||||||
|
|
||||||
tx = tx.First(&o)
|
|
||||||
if tx.Error == gorm.ErrRecordNotFound {
|
|
||||||
return &o, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if tx.Error != nil {
|
|
||||||
return nil, tx.Error
|
|
||||||
}
|
|
||||||
return &o, nil
|
|
||||||
}
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
package dao
|
||||||
|
|
||||||
|
import (
|
||||||
|
"enterprise/common/model"
|
||||||
|
"fmt"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ExternalCorpOrder struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewExternalCorpOrder() *ExternalCorpOrder {
|
||||||
|
return &ExternalCorpOrder{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *ExternalCorpOrder) TableName() string {
|
||||||
|
return "cp_order"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (d *ExternalCorpOrder) QueryOwnerData(owner string, startTime, endTime int64, status int) ([]*model.ExternalCorpOrder, error) {
|
||||||
|
orderTable := d.TableName()
|
||||||
|
tx := corpDB.Table(orderTable)
|
||||||
|
|
||||||
|
var o []*model.ExternalCorpOrder
|
||||||
|
|
||||||
|
if status != 0 {
|
||||||
|
tx.Where(orderTable+".status = ?", status)
|
||||||
|
}
|
||||||
|
tx.Where("cp_user.username = ?", owner)
|
||||||
|
tx.Where(orderTable+".pay_time >= ?", startTime)
|
||||||
|
tx.Where(orderTable+".pay_time <= ?", endTime)
|
||||||
|
|
||||||
|
tx.Joins(fmt.Sprintf("LEFT JOIN cp_user ON %s.admin_id=cp_user.id", orderTable))
|
||||||
|
tx.Where("cp_user.username = ?", owner)
|
||||||
|
tx = tx.Find(&o)
|
||||||
|
if tx.Error == gorm.ErrRecordNotFound {
|
||||||
|
return o, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if tx.Error != nil {
|
||||||
|
return nil, tx.Error
|
||||||
|
}
|
||||||
|
return o, nil
|
||||||
|
}
|
|
@ -16,10 +16,10 @@ func (d *UnifyAdData) TableName() string {
|
||||||
return "unify_ad_data"
|
return "unify_ad_data"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *UnifyAdData) QueryOwnerData(owner, startDay, endDay string) ([]*model.UnifyAdData, error) {
|
func (d *UnifyAdData) QueryOwnerData(owner, startDay, endDay string) ([]*model.ExternalUnifyAdData, error) {
|
||||||
tx := unifyDB.Table(d.TableName())
|
tx := unifyDB.Table(d.TableName())
|
||||||
|
|
||||||
var o []*model.UnifyAdData
|
var o []*model.ExternalUnifyAdData
|
||||||
|
|
||||||
tx = tx.Where("data_type = ?", "account_report")
|
tx = tx.Where("data_type = ?", "account_report")
|
||||||
tx = tx.Where("owner = ?", owner)
|
tx = tx.Where("owner = ?", owner)
|
|
@ -16,10 +16,10 @@ func (d *UnifyKctData) TableName() string {
|
||||||
return "view_unify_kct_summary"
|
return "view_unify_kct_summary"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *UnifyKctData) QueryData(startDay, endDay string) ([]*model.UnifyKctSummary, error) {
|
func (d *UnifyKctData) QueryData(startDay, endDay string) ([]*model.ExternalUnifyKctSummary, error) {
|
||||||
tx := unifyDB.Table(d.TableName())
|
tx := unifyDB.Table(d.TableName())
|
||||||
|
|
||||||
var o []*model.UnifyKctSummary
|
var o []*model.ExternalUnifyKctSummary
|
||||||
|
|
||||||
if startDay != "" {
|
if startDay != "" {
|
||||||
tx = tx.Where("day >= ?", startDay)
|
tx = tx.Where("day >= ?", startDay)
|
|
@ -1,8 +0,0 @@
|
||||||
package model
|
|
||||||
|
|
||||||
type CorpOrderData struct {
|
|
||||||
PayCount int64
|
|
||||||
PayAmount int64
|
|
||||||
RefundCount int64
|
|
||||||
RefundAmount int64
|
|
||||||
}
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
type ExternalCorpOrder struct {
|
||||||
|
Id int64
|
||||||
|
AdminId int64
|
||||||
|
AdminName string
|
||||||
|
UserId int64
|
||||||
|
CorpId int64
|
||||||
|
GoodsId int64
|
||||||
|
GoodsName string
|
||||||
|
GoodsType string
|
||||||
|
OutTradeNo string
|
||||||
|
TotalFee int64
|
||||||
|
PaySource string
|
||||||
|
PayType string
|
||||||
|
PayTime int64
|
||||||
|
RefundTime int64
|
||||||
|
RefundFee int64
|
||||||
|
RefundReason string
|
||||||
|
Status uint8
|
||||||
|
ProcessStatus uint8
|
||||||
|
ProcessId int64
|
||||||
|
Hidden bool
|
||||||
|
Extra string
|
||||||
|
CreateTime int64
|
||||||
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
package model
|
package model
|
||||||
|
|
||||||
type UnifyAdData struct {
|
type ExternalUnifyAdData struct {
|
||||||
Id int64 `json:"id"`
|
Id int64 `json:"id"`
|
||||||
AppId int64 `json:"appId"`
|
AppId int64 `json:"appId"`
|
||||||
Day string `json:"day"`
|
Day string `json:"day"`
|
||||||
|
@ -26,7 +26,7 @@ type UnifyAdData struct {
|
||||||
Raw string `json:"raw"`
|
Raw string `json:"raw"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type UnifyKctSummary struct {
|
type ExternalUnifyKctSummary struct {
|
||||||
Day string
|
Day string
|
||||||
NewUser int64
|
NewUser int64
|
||||||
ActivityUser int64
|
ActivityUser int64
|
|
@ -19,7 +19,7 @@ db = "unify"
|
||||||
threshold = 5000
|
threshold = 5000
|
||||||
|
|
||||||
[corp_mysql]
|
[corp_mysql]
|
||||||
host = "10.0.2.157"
|
host = "192.168.2.50"
|
||||||
port = 13307
|
port = 13307
|
||||||
user = "corp"
|
user = "corp"
|
||||||
pass = "UvFwai9N_Nx2zgny"
|
pass = "UvFwai9N_Nx2zgny"
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
package salary_calculator
|
package salary_calculator
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"enterprise/common/dao"
|
||||||
"enterprise/common/model"
|
"enterprise/common/model"
|
||||||
"enterprise/common/registry"
|
"enterprise/common/registry"
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
"github.com/spf13/cast"
|
"github.com/spf13/cast"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SalaryCalculator1002 struct {
|
type SalaryCalculator1002 struct {
|
||||||
|
@ -28,4 +31,28 @@ func (s *SalaryCalculator1002) Calculate(salary *model.StaffSalary) {
|
||||||
|
|
||||||
salary.AttendSalary = cast.ToFloat64(userSlary.Base) * (salary.AttendDay / float64(salary.ShouldDay))
|
salary.AttendSalary = cast.ToFloat64(userSlary.Base) * (salary.AttendDay / float64(salary.ShouldDay))
|
||||||
salary.TargetSalary = cast.ToFloat64(userSlary.Target)
|
salary.TargetSalary = cast.ToFloat64(userSlary.Target)
|
||||||
|
|
||||||
|
monthTime, _ := time.ParseInLocation("200601", salary.Month, time.Local)
|
||||||
|
startTime := monthTime.Unix()
|
||||||
|
endTime := monthTime.AddDate(0, 1, 0).Unix() - 1
|
||||||
|
orders, err := dao.NewExternalCorpOrder().QueryOwnerData(s.user.Username, startTime, endTime, 2)
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("db error:%s", err.Error())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
orderNum := len(orders)
|
||||||
|
salary.SetExtra("corp_order_num", cast.ToString(len(orders)))
|
||||||
|
|
||||||
|
if orderNum >= 40 {
|
||||||
|
salary.TargetSalary = cast.ToFloat64(userSlary.Target)
|
||||||
|
if orderNum <= 60 {
|
||||||
|
salary.AwardSalary = float64((orderNum - 40) * 80)
|
||||||
|
} else if orderNum <= 80 {
|
||||||
|
salary.AwardSalary = 1600 + float64((orderNum-60)*100)
|
||||||
|
} else {
|
||||||
|
salary.AwardSalary = 3600 + float64((orderNum-80)*120)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
salary.TargetSalary = float64(60 * orderNum)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue