50 lines
1.2 KiB
Go
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
|
|
}
|