pg_employee_dao.go 5.9 KB
package dao

//import (
//	"fmt"
//	"github.com/go-pg/pg/v10"
//	pgTransaction "github.com/linmadan/egglib-go/transaction/pg"
//	"gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/domain"
//	"gitlab.fjmaimaimai.com/linmadan/mmm-worth/pkg/infrastructure/pg/models"
//	"time"
//)
//
//type EmployeeDao struct {
//	transactionContext *pgTransaction.TransactionContext
//}
//
//func (dao *EmployeeDao) BatchRemove(uids []int64) error {
//	tx := dao.transactionContext.PgTx
//	_, err := tx.QueryOne(
//		pg.Scan(),
//		"DELETE FROM employees WHERE uid IN (?)",
//		pg.In(uids))
//	return err
//}
//
//func (dao *EmployeeDao) BatchSetStatus(uids []int64, status int) error {
//	tx := dao.transactionContext.PgTx
//	_, err := tx.QueryOne(
//		pg.Scan(),
//		"UPDATE employees SET status=? WHERE uid IN (?)",
//		status, pg.In(uids))
//	return err
//}
//
//func (dao *EmployeeDao) ChangePrincipal(companyId int64, employeeAccount string) error {
//	tx := dao.transactionContext.PgTx
//	if _, err := tx.Query(
//		pg.Scan(),
//		"UPDATE employees SET is_principal=? WHERE company_id=?",
//		false, companyId); err != nil {
//		return err
//	}
//	if _, err := tx.QueryOne(
//		pg.Scan(),
//		"UPDATE employees SET is_principal=? WHERE company_id=? AND employee_account=?",
//		true, companyId, employeeAccount); err != nil {
//		return err
//	}
//	return nil
//}
//
//func (dao *EmployeeDao) TransferSuMoney(uid int64, suMoney float64) error {
//	tx := dao.transactionContext.PgTx
//	_, err := tx.QueryOne(
//		pg.Scan(),
//		"UPDATE employees SET su_money=su_money+? WHERE uid=?",
//		suMoney, uid)
//	return err
//}
//
//func (dao *EmployeeDao) CalculatePersonUnReadNotification(uid int64) (map[string]int, error) {
//	var unReadSystemNotification int
//	var unReadInteractionNotification int
//	tx := dao.transactionContext.PgTx
//	sentNotificationModel := new(models.SentNotification)
//	if count, err := tx.Model(sentNotificationModel).Relation("Notification").
//		Where(`sent_notification.receiver @> '{"uid":?}'`, uid).
//		Where("notification.notification_type = ?", domain.NOTIFICATION_TYPE_SYSTEM).
//		Where("sent_notification.is_read = ?", false).
//		Count(); err != nil {
//		return nil, err
//	} else {
//		unReadSystemNotification = count
//	}
//	if count, err := tx.Model(sentNotificationModel).Relation("Notification").
//		Where(`sent_notification.receiver @> '{"uid":?}'`, uid).
//		Where("notification.notification_type = ?", domain.NOTIFICATION_TYPE_INTERACTION).
//		Where("sent_notification.is_read = ?", false).
//		Count(); err != nil {
//		return nil, err
//	} else {
//		unReadInteractionNotification = count
//	}
//	return map[string]int{
//		"unReadSystemNotification":      unReadSystemNotification,
//		"unReadInteractionNotification": unReadInteractionNotification,
//	}, nil
//}
//
//func (dao *EmployeeDao) CalculatePersonSuMoney(uid int64) (map[string]interface{}, error) {
//	var incomeSuMoney float64
//	var incomeSuMoneyOfYesterday float64
//	tx := dao.transactionContext.PgTx
//	suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord)
//	yesterday := time.Now().AddDate(0, 0, -1)
//	if err := tx.Model(suMoneyTransactionRecordModel).
//		ColumnExpr("sum(su_money_transaction_record.su_money) AS income_su_money").
//		Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid).
//		Where(`su_money_transaction_record.record_type = ?`, 2).
//		Where(`su_money_transaction_record.create_time > ?`, time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 0, 0, 0, 0, yesterday.Location())).
//		Where(`su_money_transaction_record.create_time < ?`, time.Date(yesterday.Year(), yesterday.Month(), yesterday.Day(), 23, 59, 59, 0, yesterday.Location())).
//		Select(&incomeSuMoneyOfYesterday); err != nil {
//		return nil, err
//	}
//	if err := tx.Model(suMoneyTransactionRecordModel).
//		ColumnExpr("sum(su_money_transaction_record.su_money) AS income_su_money").
//		Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid).
//		Where(`su_money_transaction_record.record_type = ?`, 2).
//		Select(&incomeSuMoney); err != nil {
//		return nil, err
//	}
//	return map[string]interface{}{
//		"incomeSuMoney":            incomeSuMoney,
//		"incomeSuMoneyOfYesterday": incomeSuMoneyOfYesterday,
//	}, nil
//}
//
//func (dao *EmployeeDao) CalculateSuMoneyTransactionRecord(uid int64, transactionStartTime time.Time, transactionEndTime time.Time) (map[string]interface{}, error) {
//	var incomeSuMoney float64
//	var expendSuMoney float64
//	tx := dao.transactionContext.PgTx
//	suMoneyTransactionRecordModel := new(models.SuMoneyTransactionRecord)
//	if err := tx.Model(suMoneyTransactionRecordModel).
//		ColumnExpr("sum(su_money_transaction_record.su_money) AS income_su_money").
//		Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid).
//		Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{2, 3})).
//		Where(`su_money_transaction_record.create_time > ?`, transactionStartTime).
//		Where(`su_money_transaction_record.create_time < ?`, transactionEndTime).
//		Select(&incomeSuMoney); err != nil {
//		return nil, err
//	}
//	if err := tx.Model(suMoneyTransactionRecordModel).
//		ColumnExpr("sum(su_money_transaction_record.su_money) AS expend_su_money").
//		Where(`su_money_transaction_record.employee @> '{"uid":?}'`, uid).
//		Where(`su_money_transaction_record.record_type IN (?)`, pg.In([]int{1, 4})).
//		Where(`su_money_transaction_record.create_time > ?`, transactionStartTime).
//		Where(`su_money_transaction_record.create_time < ?`, transactionEndTime).
//		Select(&expendSuMoney); err != nil {
//		return nil, err
//	}
//	return map[string]interface{}{
//		"incomeSuMoney": incomeSuMoney,
//		"expendSuMoney": expendSuMoney,
//	}, nil
//}
//
//func NewEmployeeDao(transactionContext *pgTransaction.TransactionContext) (*EmployeeDao, error) {
//	if transactionContext == nil {
//		return nil, fmt.Errorf("transactionContext参数不能为nil")
//	} else {
//		return &EmployeeDao{
//			transactionContext: transactionContext,
//		}, nil
//	}
//}