添加修改删除打印机接口

This commit is contained in:
suyl
2021-07-01 11:12:06 +08:00
parent 58fba95c0f
commit 585eb0e0de
6 changed files with 224 additions and 29 deletions

View File

@@ -1,15 +1,18 @@
package controllers
import (
"encoding/json"
"crypto/md5"
"fmt"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxstore/cms"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
"github.com/astaxie/beego/server/web"
"net/url"
"reflect"
"strings"
"time"
)
type ApiController struct {
@@ -23,9 +26,16 @@ const (
keySign = "sign"
)
const (
keyPrintNo = "print_no"
keyPrintKey = "print_key"
keyName = "name"
keyStatus = "status"
keyOrderNo = "order_no"
)
var (
routerMap map[string]reflect.Value
textChan chan string
)
func Init() {
@@ -60,16 +70,19 @@ func (c *ApiController) CallOpenAPI() {
accessID = utils.GetUUID()
requireParams []string
dataMap = make(map[string]interface{})
//now = time.Now().Unix()
now = time.Now().Unix()
parms, result []reflect.Value
urls url.Values
app = &model.Apps{}
db = dao.GetDB()
)
var (
appID, sign, method string
//timestamp int64
appID int
sign, method string
timestamp int64
)
//判断必传参数是否传入begin
if appID = c.GetString(keyAppID); appID == "" {
if appID, err = c.GetInt(keyAppID); err != nil {
requireParams = append(requireParams, keyAppID)
}
if method = c.GetString(keyMethod); method == "" {
@@ -78,9 +91,9 @@ func (c *ApiController) CallOpenAPI() {
if sign = c.GetString(keySign); sign == "" {
requireParams = append(requireParams, keySign)
}
//if timestamp, err = c.GetInt64("timestamp"); err != nil {
// requireParams = append(requireParams, "timestamp")
//}
if timestamp, err = c.GetInt64(keyTimestamp); err != nil {
requireParams = append(requireParams, keyTimestamp)
}
if len(requireParams) > 0 {
err = buildParamRequiredErr(requireParams)
}
@@ -89,26 +102,43 @@ func (c *ApiController) CallOpenAPI() {
goto end
}
//判断timestamp传入是否正确begin
//if len(utils.Int64ToStr(timestamp)) != len(utils.Int64ToStr(now)) {
// err = buildTimestampParamErr()
// errCode = model.ErrCodeOpenAPIParamErrTimeStamp
//}
//if now-timestamp < 5 {
// err = buildTimestampParamErr()
// errCode = model.ErrCodeOpenAPIParamErrTimeStamp
//}
if len(utils.Int64ToStr(timestamp)) != len(utils.Int64ToStr(now)) {
err = buildTimestampParamErr()
errCode = model.ErrCodeOpenAPIParamErrTimeStamp
}
if now-timestamp < 5 {
err = buildTimestampParamErr()
errCode = model.ErrCodeOpenAPIParamErrTimeStamp
}
//判断timestamp传入是否正确end
if err != nil {
goto end
}
//判断app_id和sign匹配begin
//判断app_id和sign匹配begin ,sign = app_id + app_key + timestamp的MD5加密
app.ID = appID
if err = dao.GetEntity(db, app); err != nil {
goto end
} else {
if app.Status != model.UserStatusNormal {
errCode = model.ErrCodeGeneralFailed
err = fmt.Errorf("很抱歉您的应用已失效!")
goto end
}
appKey := app.AppKey
signOrigin := fmt.Sprintf("%x", md5.Sum([]byte(utils.Int2Str(appID)+appKey+utils.Int64ToStr(timestamp))))
if strings.Compare(sign, signOrigin) != 0 {
errCode = model.ErrCodeOpenAPIParamErrSign
err = buildMethodParamSign()
goto end
}
}
//判断app_id和sign匹配end
//call
urls, _ = c.Input()
dataMap = utils.URLValues2Map(urls)
delete(dataMap, keyMethod)
delete(dataMap, keyTimestamp)
delete(dataMap, keySign)
parms = []reflect.Value{reflect.ValueOf(dataMap)}
if routerMap[method] == reflect.ValueOf(nil) {
errCode = model.ErrCodeOpenAPIParamErrMethod
@@ -143,12 +173,75 @@ success:
}
}
func (c *ApiController) AddPrint(dataMap map[string]interface{}) (data, errCode string, err error) {
if dataMap[keySign].(string) != "222" {
return "", errCode, buildParamErr(keySign)
func (c *ApiController) AddPrinter(dataMap map[string]interface{}) (data, errCode string, err error) {
var (
printNo, printKey, name string
appID int
)
if _, ok := dataMap[keyPrintNo].(string); !ok {
return buildParamErrCodeAndErr(keyPrintNo)
} else {
if printNo = dataMap[keyPrintNo].(string); printNo == "" {
return buildParamErrCodeAndErr(keyPrintNo)
}
}
data2, err := json.Marshal(dataMap)
return string(data2), errCode, err
if _, ok := dataMap[keyPrintKey].(string); !ok {
return buildParamErrCodeAndErr(keyPrintKey)
} else {
if printKey = dataMap[keyPrintKey].(string); printKey == "" {
return buildParamErrCodeAndErr(keyPrintKey)
}
}
appID = dataMap[keyAppID].(int)
name = dataMap[keyName].(string)
if err = cms.AddPrinter(appID, printNo, printKey, name); err != nil {
return "", model.ErrCodeGeneralFailed, err
}
return "", errCode, err
}
func (c *ApiController) DelPrinter(dataMap map[string]interface{}) (data, errCode string, err error) {
var (
printNo string
appID int
)
if _, ok := dataMap[keyPrintNo].(string); !ok {
return buildParamErrCodeAndErr(keyPrintNo)
} else {
if printNo = dataMap[keyPrintNo].(string); printNo == "" {
return buildParamErrCodeAndErr(keyPrintNo)
}
}
appID = dataMap[keyAppID].(int)
if err = cms.DelPrinter(appID, printNo); err != nil {
return "", model.ErrCodeGeneralFailed, err
}
return "", errCode, err
}
func (c *ApiController) UpdatePrinter(dataMap map[string]interface{}) (data, errCode string, err error) {
var (
printNo, name string
appID int
)
if _, ok := dataMap[keyPrintNo].(string); !ok {
return buildParamErrCodeAndErr(keyPrintNo)
} else {
if printNo = dataMap[keyPrintNo].(string); printNo == "" {
return buildParamErrCodeAndErr(keyPrintNo)
}
}
if _, ok := dataMap[keyName].(string); !ok {
return buildParamErrCodeAndErr(keyName)
} else {
if name = dataMap[keyName].(string); name == "" {
return buildParamErrCodeAndErr(keyName)
}
}
appID = dataMap[keyAppID].(int)
if err = cms.UpdatePrinter(appID, printNo, name); err != nil {
return "", model.ErrCodeGeneralFailed, err
}
return "", errCode, err
}
func (c *ApiController) DoPrint(dataMap map[string]interface{}) (data, errCode string, err error) {
@@ -169,7 +262,7 @@ func (c *ApiController) DoPrint(dataMap map[string]interface{}) (data, errCode s
}
dao.WrapAddIDCULDEntity(printMsg, "")
if err = dao.CreateEntity(db, printMsg); err != nil {
return data, errCode, err
return data, model.ErrCodeGeneralFailed, err
}
return data, errCode, err
}

View File

@@ -1,6 +1,9 @@
package controllers
import "fmt"
import (
"fmt"
"git.rosy.net.cn/jx-callback/business/model"
)
type CallResult struct {
Code string `json:"code"`
@@ -21,10 +24,18 @@ func buildParamRequiredErr(str []string) (err error) {
return fmt.Errorf(msg)
}
func buildParamErrCodeAndErr(str string) (data, errCode string, err error) {
return data, model.ErrCodeOpenAPIParamErrNormal, fmt.Errorf("参数[%s]错误,请传入正确的值!", str)
}
func buildParamErr(str string) (err error) {
return fmt.Errorf("参数[%s]错误,请传入正确的值!", str)
}
func buildMethodParamSign() (err error) {
return fmt.Errorf("参数['sign']校验失败,请传入正确的值!")
}
func buildMethodParamErr() (err error) {
return fmt.Errorf("参数['method']错误,请传入正确的值!")
}