Files
jx-print/services/print_server/app_server/print_bill.go
邹宗楠 7f7613b0cb 1
2022-12-07 15:15:02 +08:00

52 lines
1.3 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(tx, "", 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(nil, userId, printNo)
if err != nil {
return nil, err
}
if len(result) != 1 {
return nil, fmt.Errorf("打印机账户异常,不唯一或者未添加,请联系管理员")
}
return result[0], nil
}