1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- package db
- import (
- "time"
- "git.chuangxin1.com/cx/myth"
- )
- // DB error code
- const (
- ErrOK = 0 // ErrOK ok
- ErrException = 1 // ErrException exception 异常
- ErrExists = 2 // ErrExists exists 数据存在
- ErrNotFound = 3 // ErrNotFound not found 未找到关键数据
- ErrAuthorized = 4 // ErrAuthorized authorized 未认证
- ErrNotConnect = 5 // ErrNotConnect connect error 数据库内部连接错误
- ErrDataNotFound = 6 // data not found 数据未找到
- ErrExpired = 7 // expired 已过期
- ErrInsufficientBalance = 8 // insufficient balance 余额不足
- ErrCreditLimit = 9 // Credit Limit 超额
- )
- // Config config
- type Config struct {
- Driver string
- DNS string
- MaxOpenConns int
- MaxIdle int
- MaxIdleTime time.Duration
- MaxLifeTime time.Duration
- }
- // Reply db exec return insert/update/delete
- type Reply struct {
- OK bool
- Err error
- LastErr error
- ErrCode int
- LastID int64
- RowsAffected int64
- }
- // ReplyOk exec ok
- func ReplyOk(rowsAffected, lastID int64) Reply {
- var reply Reply
- reply.OK = true
- reply.ErrCode = 0
- reply.LastID = lastID
- reply.RowsAffected = rowsAffected
- return reply
- }
- // ReplyFaild exec faild
- func ReplyFaild(errCode int, err, errText error) (reply Reply) {
- reply.OK = false
- reply.ErrCode = errCode
- reply.LastID = -1
- reply.RowsAffected = -1
- reply.Err = err
- reply.LastErr = errText
- return
- }
- // ReplyToReplyData db reply to response
- func ReplyToReplyData(reply Reply) *myth.ReplyData {
- status := myth.ErrOk
- if !reply.OK {
- switch reply.ErrCode {
- case ErrException:
- status = myth.ErrException
- case ErrExists:
- status = myth.ErrDataExists
- case ErrNotFound:
- status = myth.ErrDataNotFound
- case ErrDataNotFound:
- status = myth.ErrDataNotFound
- case ErrAuthorized:
- status = myth.ErrUnAuthorized
- case ErrNotConnect:
- status = myth.ErrNotFound
- case ErrExpired:
- status = myth.ErrNotAllowed
- case ErrInsufficientBalance:
- status = myth.ErrNotAllowed
- case ErrCreditLimit:
- status = myth.ErrNotAllowed
- default:
- status = myth.ErrException
- }
- return myth.ReplyErr(status, reply.LastErr.Error())
- }
- return myth.ReplyOk()
- }
|