Files
jx-print/services/print_server/app_server/print_bill.go
邹宗楠 03069ce0fe 1
2022-10-18 10:30:37 +08:00

50 lines
1.2 KiB
Go

package app_server
import (
"fmt"
"git.rosy.net.cn/jx-print/dao"
"git.rosy.net.cn/jx-print/model/app_model"
"github.com/jmoiron/sqlx"
)
type PrintBill struct {
}
var PrintBillServer = new(PrintBill)
// InitPPrintBill 初始化打印机账户
func (p *PrintBill) InitPPrintBill(tx *sqlx.Tx, bill *app_model.PrintBill) error {
// 查询打印机是否有账户,没有添加
result, err := dao.QueryPrintBill("", bill.PrintNo)
if err != nil {
return err
}
// 无打印机账户信息,初始化打印机账户
if len(result) == 0 {
if err := dao.InitPrintBill(tx, bill); err != nil {
return err
}
} else if len(result) == 1 && result[0].UserId == "system" {
if err := dao.UpdateBillToUser(tx, bill); err != nil {
return err
}
} else {
return fmt.Errorf("打印机账户余额数据不唯一,联系管理员")
}
return nil
}
// QueryPrintBill 查询打印机余额
func (p *PrintBill) QueryPrintBill(userId, printNo string) (*app_model.PrintBill, error) {
result, err := dao.QueryPrintBill(userId, printNo)
if err != nil {
return nil, err
}
if len(result) != 1 {
return nil, fmt.Errorf("打印机账户异常,不唯一或者未添加,请联系管理员")
}
return result[0], nil
}