This commit is contained in:
邹宗楠
2022-12-07 17:17:59 +08:00
parent a09f35be54
commit 40c7ca6dca
7 changed files with 103 additions and 33 deletions

View File

@@ -61,7 +61,7 @@ func GetPrinters(c *gin.Context) {
return
}
if !CallFunc(c, func() (retVal interface{}, errCode string, err error) {
retVal, err = print_server.GetPrinters(c, param.AppID, param.PrintNo, param.Name, param.Status, param.IsOnline, param.Offset, param.PageSize)
retVal, err = print_server.GetPrinters(tokenInfo.User.UserID, param.AppID, param.PrintNo, param.Name, param.Status, param.IsOnline, param.Offset, param.PageSize)
return retVal, "", err
}) {
return

View File

@@ -4,6 +4,7 @@ import (
"git.rosy.net.cn/jx-print/globals"
"git.rosy.net.cn/jx-print/model/app_model"
"github.com/jmoiron/sqlx"
"strings"
)
// QueryPrintBill 查询打印机账户是否存在
@@ -29,6 +30,27 @@ func QueryPrintBill(db *sqlx.Tx, userId, printNo string) ([]*app_model.PrintBill
return result, nil
}
// QueryPrintBillList 查询打印机余额
func QueryPrintBillList(userId string, printNo []string) ([]*app_model.PrintBill, error) {
db := globals.GetTxDb()
sql := `SELECT * FROM print_bill WHERE 1 = 1 `
var param []interface{}
if userId != "" {
sql += ` AND user_id = ? `
param = append(param, userId)
}
if len(printNo) > 0 {
sql += " AND print_no IN (" + GenQuestionMarks(len(printNo)) + ")"
param = append(param, printNo)
}
var result []*app_model.PrintBill
if err := db.Select(&result, sql, param...); err != nil {
return nil, err
}
return result, nil
}
// InitPrintBill 初始化打印机账户
func InitPrintBill(txDB *sqlx.Tx, param *app_model.PrintBill) error {
if err := InsertTx(txDB, param); err != nil {
@@ -61,3 +83,20 @@ func UpdatePrintToSystem(db *sqlx.Tx, printNo string) error {
}
return nil
}
func GenQuestionMarks(count int) (marks string) {
if count > 0 {
if count == 1 {
marks = "?"
} else {
builder := &strings.Builder{}
builder.Grow(1 + (count-1)*3)
builder.WriteString("?")
for i := 1; i < count; i++ {
builder.WriteString(", ?")
}
marks = builder.String()
}
}
return marks
}

View File

@@ -9,7 +9,7 @@ import (
"time"
)
func GetPrinters(db *sqlx.DB, appID int, printNo string, status, statusNeq, flowFlag int) (printers []*model.Printer, err error) {
func GetPrinters(db *sqlx.DB, appID int, printNo string, status, statusNeq, flowFlag int, userId string) (printers []*model.Printer, err error) {
sql := `
SELECT *
FROM printer
@@ -36,6 +36,10 @@ func GetPrinters(db *sqlx.DB, appID int, printNo string, status, statusNeq, flow
sql += " AND flow_flag = ?"
sqlParams = append(sqlParams, flowFlag)
}
if userId != "" {
sql += " AND user_id = ?"
sqlParams = append(sqlParams, userId)
}
if err = db.Select(&printers, sql, sqlParams...); err == nil {
return printers, err
}
@@ -83,7 +87,6 @@ func GetPrintersPage(db *sqlx.DB, appID int, printNo, name string, status, isOnl
if err = db.Select(&printers, sql+sqlOther, sqlParams...); err != nil {
return nil, err
}
return &model.PagedInfo{TotalCount: count, Data: printers}, err
}

View File

@@ -93,8 +93,9 @@ type PrintInfo struct {
}
type PagedInfo struct {
TotalCount int `json:"totalCount"`
Data interface{} `json:"data"`
TotalCount int `json:"totalCount"`
Data interface{} `json:"data"`
PrintBill map[string]int64 `json:"print_bill"`
}
type ModelIDCULD struct {

View File

@@ -30,7 +30,7 @@ func QueryPrintKeyIsExit(printInfo *model.PrintInfo, phone, bizId, code string,
return false, fmt.Errorf("请输入正确的打印机编号print_no :%s 。", printInfo.PrintNo)
}
printers, _ := dao.GetPrinters(db, appId, printInfo.PrintNo, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appId, printInfo.PrintNo, 0, 0, 0, "")
// 打印机已经被绑定
if len(printers) != 0 {
// 修改绑定
@@ -57,7 +57,7 @@ func DeletePrintCheck(printNo string, phone, bizId, code string, appId int) erro
return fmt.Errorf("验证码错误")
}
printers, _ := dao.GetPrinters(db, appId, printNo, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appId, printNo, 0, 0, 0, "")
if len(printers) != 1 {
return fmt.Errorf("打印机不存在或异常,联系管理员")
}
@@ -85,7 +85,7 @@ func AddPrinters(txDB *sqlx.Tx, tokenInfo *model.TokenInfo, appID int, printInfo
errs = append(errs, fmt.Errorf("请输入正确的打印机编号print_no :%s 。", v.PrintNo))
continue
}
printers, _ := dao.GetPrinters(db, appID, v.PrintNo, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appID, v.PrintNo, 0, 0, 0, "")
if len(printers) != 0 && printers[0].UserId != "system" {
errs = append(errs, fmt.Errorf("打印机已经被绑定print_no :%s 。", v.PrintNo))
continue
@@ -122,7 +122,11 @@ func AddPrinters(txDB *sqlx.Tx, tokenInfo *model.TokenInfo, appID int, printInfo
}
func GetPrinters(appID int, printNo, name string, status, isOnline, offset, pageSize int, userId string) (page *model.PagedInfo, err error) {
return dao.GetPrintersPage(globals.GetDB(), appID, printNo, name, status, isOnline, offset, pageSize, userId)
page, err = dao.GetPrintersPage(globals.GetDB(), appID, printNo, name, status, isOnline, offset, pageSize, userId)
if err != nil {
return nil, err
}
return
}
func GetPrintIsUse(printNo string) (bool, string, error) {
@@ -140,7 +144,7 @@ func DelPrinters(appID int, tokenInfo *model.TokenInfo, printNos string) (err er
if apps, _ := dao.GetApps(db, appID, "", ""); len(apps) == 0 {
return fmt.Errorf("未查询到此应用app_id:%d", appID)
}
printers, _ := dao.GetPrinters(db, appID, printNos, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appID, printNos, 0, 0, 0, "")
if len(printers) == 0 {
return fmt.Errorf("未在该应用下查到此打印机app_id: %d, print_no: %s", appID, printNos)
}
@@ -167,7 +171,7 @@ func UpdatePrinter(appID int, tokenInfo *model.TokenInfo, printNo, name, sound s
return fmt.Errorf("未查询到此应用app_id:%d", appID)
}
printers, _ := dao.GetPrinters(db, appID, printNo, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appID, printNo, 0, 0, 0, "")
if len(printers) == 0 {
return fmt.Errorf("未在该应用下查到此打印机app_id: %d, print_no: %s", appID, printNo)
}
@@ -231,7 +235,7 @@ func GetPrintMessages(appID int, tokenInfo *model.TokenInfo, printNo, msgID stri
if apps, _ := dao.GetApps(db, appID, tokenInfo.User.UserID, ""); len(apps) == 0 {
return nil, fmt.Errorf("未查询到此应用app_id:%d", appID)
}
printers, _ := dao.GetPrinters(db, appID, printNo, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appID, printNo, 0, 0, 0, "")
if len(printers) == 0 {
return nil, fmt.Errorf("未在该应用下查到此打印机app_id: %d, print_no: %s", appID, printNo)
}
@@ -243,9 +247,10 @@ func GetPrinterReport(tokenInfo *model.TokenInfo) (getPrinterReportResult *app_m
db = globals.GetDB()
weekCount, DayCount, DayUnCount = 0, 0, 0
onlineC, offlineC, flowC, paperC = 0, 0, 0, 0
userId = tokenInfo.User.UserID
)
getPrinterReportResult = &app_model.GetPrinterReportResult{}
apps, _ := dao.GetApps(db, 0, tokenInfo.User.UserID, "")
apps, _ := dao.GetApps(db, 0, userId, "")
if len(apps) == 0 {
apps = []*model.Apps{
&model.Apps{
@@ -255,7 +260,7 @@ func GetPrinterReport(tokenInfo *model.TokenInfo) (getPrinterReportResult *app_m
}
}
for _, app := range apps {
printers, _ := dao.GetPrinters(db, app.ID, "", 0, 0, 0)
printers, _ := dao.GetPrinters(db, app.ID, "", 0, 0, 0, userId)
for _, printer := range printers {
weeks, _ := dao.GetPrintMessages(db, printer.PrintNo, "", utils.Time2Str(time.Now().AddDate(0, 0, -7)), utils.Time2Str(time.Now()), 0)
weekCount += len(weeks)
@@ -264,13 +269,13 @@ func GetPrinterReport(tokenInfo *model.TokenInfo) (getPrinterReportResult *app_m
dayUns, _ := dao.GetPrintMessages(db, printer.PrintNo, "", utils.Time2Str(time.Now().AddDate(0, 0, -1)), utils.Time2Str(time.Now()), 1)
DayUnCount += len(dayUns)
}
onlines, _ := dao.GetPrinters(db, app.ID, "", model.PrinterOnline, 0, 0)
onlines, _ := dao.GetPrinters(db, app.ID, "", model.PrinterOnline, 0, 0, userId)
onlineC += len(onlines)
offlines, _ := dao.GetPrinters(db, app.ID, "", model.PrinterOffline, 0, 0)
offlines, _ := dao.GetPrinters(db, app.ID, "", model.PrinterOffline, 0, 0, userId)
offlineC += len(offlines)
flows, _ := dao.GetPrinters(db, app.ID, "", 0, 0, 1)
flows, _ := dao.GetPrinters(db, app.ID, "", 0, 0, 1, userId)
flowC += len(flows)
papers, _ := dao.GetPrinters(db, app.ID, "", model.PrinterStatusWithouPaper, 0, 0)
papers, _ := dao.GetPrinters(db, app.ID, "", model.PrinterStatusWithouPaper, 0, 0, userId)
paperC += len(papers)
}

View File

@@ -1,6 +1,7 @@
package print_server
import (
"encoding/json"
"fmt"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-print/dao"
@@ -38,7 +39,7 @@ func AddPrinters(c *gin.Context, tokenInfo *model.TokenInfo, appID int, printInf
errs = append(errs, fmt.Errorf("请输入正确的打印机编号print_no :%s 。", v.PrintNo))
continue
}
printers, _ := dao.GetPrinters(db, appID, v.PrintNo, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appID, v.PrintNo, 0, 0, 0, "")
if len(printers) > 0 {
errs = append(errs, fmt.Errorf("此打印机已被其他应用绑定print_no :%s 。", v.PrintNo))
continue
@@ -68,8 +69,28 @@ func AddPrinters(c *gin.Context, tokenInfo *model.TokenInfo, appID int, printInf
return err
}
func GetPrinters(c *gin.Context, appID int, printNo, name string, status, isOnline, offset, pageSize int) (page *model.PagedInfo, err error) {
return dao.GetPrintersPage(globals.GetDB(), appID, printNo, name, status, isOnline, offset, pageSize, "")
func GetPrinters(userId string, appID int, printNo, name string, status, isOnline, offset, pageSize int) (page *model.PagedInfo, err error) {
page, err = dao.GetPrintersPage(globals.GetDB(), appID, printNo, name, status, isOnline, offset, pageSize, "")
if err != nil {
return nil, err
}
print2 := make([]model.Printer, 0, 0)
if err := json.Unmarshal([]byte(utils.Interface2String(page.Data)), &print2); err != nil {
return nil, err
}
printList := make([]string, 0, len(print2))
for _, v := range print2 {
printList = append(printList, v.PrintNo)
}
printBillList, err := dao.QueryPrintBillList(userId, printList)
if err != nil {
return nil, err
}
for _, v := range printBillList {
page.PrintBill[v.PrintNo] = v.PrintBalance
}
return
}
func DelPrinters(c *gin.Context, appID int, tokenInfo *model.TokenInfo, printNos []string) (err error) {
@@ -89,7 +110,7 @@ func DelPrinters(c *gin.Context, appID int, tokenInfo *model.TokenInfo, printNos
errs = append(errs, fmt.Errorf("请输入正确的打印机编号print_no :%s 。", v))
continue
}
printers, _ := dao.GetPrinters(db, appID, v, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appID, v, 0, 0, 0, "")
if len(printers) == 0 {
errs = append(errs, fmt.Errorf("未在该应用下查到此打印机app_id: %d, print_no: %s", appID, v))
continue
@@ -117,7 +138,7 @@ func UpdatePrinter(c *gin.Context, appID int, tokenInfo *model.TokenInfo, printN
return fmt.Errorf("未查询到此应用app_id:%d", appID)
}
printers, _ := dao.GetPrinters(db, appID, printNo, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appID, printNo, 0, 0, 0, "")
if len(printers) == 0 {
return fmt.Errorf("未在该应用下查到此打印机app_id: %d, print_no: %s", appID, printNo)
}
@@ -186,7 +207,7 @@ func GetPrintMessages(c *gin.Context, appID int, tokenInfo *model.TokenInfo, pri
if apps, _ := dao.GetApps(db, appID, tokenInfo.User.UserID, ""); len(apps) == 0 {
return nil, fmt.Errorf("未查询到此应用app_id:%d", appID)
}
printers, _ := dao.GetPrinters(db, appID, printNo, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appID, printNo, 0, 0, 0, "")
if len(printers) == 0 {
return nil, fmt.Errorf("未在该应用下查到此打印机app_id: %d, print_no: %s", appID, printNo)
}
@@ -208,14 +229,15 @@ func GetPrinterReport(c *gin.Context, tokenInfo *model.TokenInfo) (getPrinterRep
db = globals.GetDB()
weekCount, DayCount, DayUnCount = 0, 0, 0
onlineC, offlineC, flowC, paperC = 0, 0, 0, 0
userId = tokenInfo.User.UserID
)
getPrinterReportResult = &GetPrinterReportResult{}
apps, _ := dao.GetApps(db, 0, tokenInfo.User.UserID, "")
apps, _ := dao.GetApps(db, 0, userId, "")
if len(apps) == 0 {
return nil, err
}
for _, app := range apps {
printers, _ := dao.GetPrinters(db, app.ID, "", 0, 0, 0)
printers, _ := dao.GetPrinters(db, app.ID, "", 0, 0, 0, userId)
for _, printer := range printers {
weeks, _ := dao.GetPrintMessages(db, printer.PrintNo, "", utils.Time2Str(time.Now().AddDate(0, 0, -7)), utils.Time2Str(time.Now()), 0)
weekCount += len(weeks)
@@ -224,13 +246,13 @@ func GetPrinterReport(c *gin.Context, tokenInfo *model.TokenInfo) (getPrinterRep
dayUns, _ := dao.GetPrintMessages(db, printer.PrintNo, "", utils.Time2Str(time.Now().AddDate(0, 0, -1)), utils.Time2Str(time.Now()), 1)
DayUnCount += len(dayUns)
}
onlines, _ := dao.GetPrinters(db, app.ID, "", model.PrinterOnline, 0, 0)
onlines, _ := dao.GetPrinters(db, app.ID, "", model.PrinterOnline, 0, 0, userId)
onlineC += len(onlines)
offlines, _ := dao.GetPrinters(db, app.ID, "", model.PrinterOffline, 0, 0)
offlines, _ := dao.GetPrinters(db, app.ID, "", model.PrinterOffline, 0, 0, userId)
offlineC += len(offlines)
flows, _ := dao.GetPrinters(db, app.ID, "", 0, 0, 1)
flows, _ := dao.GetPrinters(db, app.ID, "", 0, 0, 1, userId)
flowC += len(flows)
papers, _ := dao.GetPrinters(db, app.ID, "", model.PrinterStatusWithouPaper, 0, 0)
papers, _ := dao.GetPrinters(db, app.ID, "", model.PrinterStatusWithouPaper, 0, 0, userId)
paperC += len(papers)
}
getPrinterReportResult.WeekPrintCount = weekCount

View File

@@ -28,7 +28,7 @@ func SimFlowDaySettle() (err error) {
return
}
//找出所有状态不为 超流量的打印机iccid卡
printers, _ := dao.GetPrinters(db, 0, "", 0, 0, 0)
printers, _ := dao.GetPrinters(db, 0, "", 0, 0, 0, "")
for _, v := range printers {
//查询前一日使用的流量数
if v.IccID != "" {
@@ -92,7 +92,7 @@ func SimFlowMonthSettle() {
return
}
//找出所有有iccid 卡的
printers, _ := dao.GetPrinters(db, 0, "", 0, 0, 0)
printers, _ := dao.GetPrinters(db, 0, "", 0, 0, 0, "")
for _, v := range printers {
if v.IccID != "" {
if err := FlowIncome(db, v.IccID, 30, "MB", model.FlowIncomeTypeJX, ""); err == nil {
@@ -127,7 +127,7 @@ func GetCardsInfo(tokenInfo *model.TokenInfo, appID int, printNo string, cardSta
db = globals.GetDB()
)
if printNo != "" {
printers, _ := dao.GetPrinters(db, appID, printNo, 0, 0, 0)
printers, _ := dao.GetPrinters(db, appID, printNo, 0, 0, 0, "")
if len(printers) == 0 {
err = fmt.Errorf("未在该应用下查到此打印机app_id: %d, print_no: %s", appID, printNo)
return nil, err