package repository

import (
	"database/sql"
	"gin-vue-admin/models"
)

// QueryExpendCount 查询支出管理total
func QueryExpendCount(db *sql.DB, month string) (int64, error) {

	var total int64
	err := db.QueryRow(`select count(id) from c_outcharge where 
	delflag = 0 and DATE_FORMAT( happentime, '%Y-%m' ) = ?`, month).Scan(&total)
	return total, err
}

// QueryExpends 查询支出管理 数据列表
func QueryExpends(db *sql.DB, month string, page, pageSize int64) (interface{}, error) {

	rows, err := db.Query(`select id, DATE_FORMAT(happentime,'%Y/%m/%d'), _usage, ifnull(convert(money/1000,decimal(11,3)), 0) as money from c_outcharge where 
	delflag = 0 and DATE_FORMAT( happentime, '%Y-%m' ) = ?  order by id desc  limit ?,?`,
		month, page, pageSize)
	if err != nil {
		return nil, err
	}

	response := make([]models.Expend, 0)

	for rows.Next() {
		var t models.Expend
		err = rows.Scan(&t.ID, &t.HappenTime, &t.Usage, &t.Money)
		if err != nil {
			return nil, err
		}
		response = append(response, t)
	}

	return response, nil
}

func QueryExpendsSumMoney(db *sql.DB, month string) (interface{}, error) {

	var money float64
	err := db.QueryRow(`select ifnull(convert(sum(money)/1000,decimal(11,3)), 0) as money from c_outcharge where 
	delflag = 0 and DATE_FORMAT( happentime, '%Y-%m' ) = ?`, month).Scan(&money)
	if err != nil {
		return nil, err
	}

	return money, nil
}