|
|
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
|
|
|
// }
|
|
|
//} |