mindxdl--common--type.go

// copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.

// Package common this file for time format
package common

import (
"database/sql/driver"
"fmt"
"time"
)

const timeFormat = "2006-01-02 15:04:05"

// DateTime DateTime
type DateTime time.Time

// MarshalJSON for time format to datetime
func (t DateTime) MarshalJSON() ([]byte, error) {
datetime := fmt.Sprintf(`"%s"`, time.Time(t).Format(timeFormat))
return []byte(datetime), nil
}

// Value insert timestamp into MysqL need this function.
func (t DateTime) Value() (driver.Value, error) {
var zeroTime time.Time
ti := time.Time(t)
if ti.UnixNano() == zeroTime.UnixNano() {
return nil, nil
}
return ti, nil
}

// Scan valueof time.Time
func (t *DateTime) Scan(v interface{}) error {
ti, ok := v.(time.Time) // NOT directly assertion v.(DateTime)
if ok {
*t = DateTime(ti)
return nil
}
return fmt.Errorf("can not convert %v to timestamp", v)
}

// ResultMsg resp struct
type ResultMsg struct {
Status string `json:"status"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
}

// PageResult pagequery resut
type PageResult struct {
CurrentPage int `json:"currentPage"`
PageSize int `json:"pageSize"`
PageCount uint64 `json:"pageCount"`
Total uint64 `json:"total"`
Data interface{} `json:"data"`
}

const (
// StatusOK status
StatusOK = 200
// StatusFailed Failed status
StatusFailed = 400
// BaseHex Base Parse integer need params
BaseHex = 10
// BitSize64 Base Parse integer need params
BitSize64 = 64

// HTTPServerTimeout http server timeout
HTTPServerTimeout = 20
// MaxConcurrency default max concurrency
MaxConcurrency = 100
// DefaultConcurrency default concurrency
DefaultConcurrency = 20
// SortByAsc sort by asc
SortByAsc = "asc"
// SortByDesc sort by desc
SortByDesc = "desc"
// MaxPageSize the max page size
MaxPageSize = 100
// Contentdisposition header information
Contentdisposition = "Content-disposition"
// ContentType header information
ContentType = "Content-Type"
// AcceptLength header information
AcceptLength = "Accept-Length"

// ConnectionRetryTimes retry connect times
ConnectionRetryTimes = 3
// DefaultRequestTimeout internal request timeout
DefaultRequestTimeout = 5
)

// NewDateTime new DateTime for marshal
func NewDateTime(time2 time.Time) *DateTime {
if time2.IsZero() {
return nil
}

datetime := DateTime(time2)
return &datetime
}

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...