首页 > 其他分享 >go DateRange聚合根与值对象

go DateRange聚合根与值对象

时间:2024-12-03 16:58:26浏览次数:8  
标签:return DateRange 根与值 Start func go dr self

package datarange

import (
    "git.ichub.com/general/webcli120/goconfig/base/basedto"
    "time"
)

type DateRangeAll struct {
    basedto.BaseEntity
    DateRangeStr   *DateRangeStr
    DateRange      *DateRange
    DateRangeGtime *DateRangeGtime
}

func NewDataRangeAll() *DateRangeAll {
    var dr = &DateRangeAll{}
    dr.InitProxy(dr)
    return dr
}

func DefaultAll(start, end string) *DateRangeAll {
    var dr = NewDataRangeAll()
    dr.DateRangeStr = DefaultRangeOf(start, end)
    dr.DateRange, _ = dr.DateRangeStr.ToDateRange()
    dr.DateRangeGtime, _ = dr.DateRangeStr.ToGtime()
    return dr
}
func DefaultAllDate(start, end time.Time) *DateRangeAll {
    var dr = NewDataRangeAll()
    dr.DateRange = NewDateRange()
    dr.DateRange.Start = start
    dr.DateRange.End = end
    dr.DateRangeStr = dr.DateRange.ToDateRangeStr()
    return dr
}

func (self DateRangeAll) ToEsDateRange() *DateRangeStr {
    return self.DateRangeGtime.ToEsDateRange()
}

func (self *DateRangeAll) BeforeDay() *DateRangeAll {
    var c = *self
    c.DateRange = c.DateRange.BeforeDay()
    return &c
}
func (self *DateRangeAll) YesterDay() *DateRangeAll {
    var c = *self
    c.DateRange = c.DateRange.YesterDay()
    return &c
}
func (self *DateRangeAll) Tommorow() *DateRangeAll {
    var c = *self
    c.DateRange = c.DateRange.Tommorow()
    return &c
}
package datarange

import (
    "git.ichub.com/general/webcli120/goconfig/base/basedto"
    "github.com/gogf/gf/v2/os/gtime"
    "icd/utils"
    "time"
)

type DateRange struct {
    basedto.BaseEntity
    Start time.Time
    End   time.Time
}

func NewDateRange() *DateRange {
    var dr = &DateRange{}
    dr.InitProxy(dr)
    return dr
}

func (self *DateRange) Yesterday() DateRange {
    return DateRange{}
}
func (self *DateRange) DayBefore() DateRange {
    return DateRange{}
}

func (self *DateRange) ToDateRangeStr() *DateRangeStr {
    var strday = FindBeanDateRangeStr()
    strday.Start = gtime.NewFromTime(self.Start).Layout("2006-01-02")
    strday.End = gtime.NewFromTime(self.End).Layout("2006-01-02")
    return strday
}
func (self *DateRange) ToId(memberId int64) string {
    return self.Start.Format("2006-01-02") + "|" + utils.FormatInt(memberId) + "|0|0"

}
func (self *DateRange) Clone() *DateRange {
    var c = *self
    return &c
}
func (self DateRange) BeforeDay() *DateRange {
    var c = self.Clone()
    c.Start = c.Start.Add(-48 * time.Hour)
    c.End = c.End.Add(-48 * time.Hour)
    return c
}
func (self DateRange) YesterDay() *DateRange {
    var c = self.Clone()
    c.Start = c.Start.Add(-24 * time.Hour)
    c.End = c.End.Add(-24 * time.Hour)
    return c
}
func (self DateRange) Tommorow() *DateRange {
    var c = self.Clone()
    c.Start = c.Start.Add(24 * time.Hour)
    c.End = c.End.Add(24 * time.Hour)
    return c
}
package datarange

import (
    "git.ichub.com/general/webcli120/goconfig/base/basedto"
    "github.com/gogf/gf/v2/os/gtime"
)

type DateRangeStr struct {
    basedto.BaseEntity
    Start string
    End   string
}

func NewDateRangeStr() *DateRangeStr {
    return &DateRangeStr{}
}

func DefaultRangeOf(start, end string) *DateRangeStr {
    var dr = &DateRangeStr{
       Start: start,
       End:   end,
    }
    dr.InitProxy(dr)
    return dr
}

//start, _ := time.ParseInLocation("2006-01-02", "2024-12-03", time.Local)
//end, _ := time.ParseInLocation("2006-01-02", "2024-12-03", time.Local)

func (self *DateRangeStr) ToGtime() (*DateRangeGtime, error) {
    var gt = FindBeanDateRangeGtime()
    var start, err = gtime.StrToTimeLayout(self.Start, "2006-01-02")
    if err != nil {
       return gt, err
    }
    gt.Start = start
    gt.End, err = gtime.StrToTimeLayout(self.End, "2006-01-02")
    //gt.Start.ToZone()
    return gt, err
}
func (self *DateRangeStr) ToDateRange() (*DateRange, error) {
    var dr = FindBeanDateRange()
    var gdr, err = self.ToGtime()
    if err != nil {
       return dr, err
    }
    dr.Start = gdr.Start.Time
    dr.End = gdr.End.Time
    return dr, nil
}

标签:return,DateRange,根与值,Start,func,go,dr,self
From: https://blog.csdn.net/leijmdas/article/details/144214951

相关文章

  • python_Django---基础
    1.创建app终端:python3.xmanage.pystartapp app(名字)2.路由创建urls.py:导入函数:fromapp(app名)importviews创建路由:path("/index",views.index(函数名))3.HTML页面内容动态显示views.py:defindex(request):......
  • Django-Q设置Django调度和定时任务
    场景说明:Django项目需要实现每30秒刷新一次首页信息 1.安装库pipinstalldjango-q2.添加appINSTALLED_APPS=[#...其他应用程序...'django_q',]3.配置Q_CLUSTER={'name':'project','workers':4,......
  • 使用 Go 语言与 OpenCV 进行物体检测
    GoCV是一个Go语言绑定的OpenCV库,我们可以用它来处理图像、视频并进行物体检测。通过GoCV,我们能够加载预训练的YOLO模型,并在实时视频流中进行物体检测。环境准备安装GoCV库首先,我们需要安装GoCV。GoCV是Go语言的OpenCV绑定,可以通过以下命令安装:bash安装GoC......
  • 30天学会Go--第4天 GO语言 错误处理与文件操作
    30天学会Go–第4天GO语言错误处理与文件操作文章目录30天学会Go--第4天GO语言错误处理与文件操作前言一、错误处理1.1基本错误处理示例代码运行结果1.2自定义错误示例代码运行结果1.3使用`panic`和`recover`示例代码运行结果二、文件操作2.1打开和关闭文......
  • golang interface的eface和iface
    目录eface(emptyface)iface(interfaceface)总结在Go语言的内部实现中,接口(interface)有两种不同的底层表示形式:eface和iface。这两种结构用于支持空接口(interface{})和具体类型的接口。了解它们的区别有助于更深入地理解Go语言的接口机制。eface(emptyface)定义:eface......
  • debug,gorm,transaction,
    记录一次可笑的debug我遇到了一个有意思的orm框架问题,大概的流程是,将数据先插入cardlist表中,然后如果这个card有特殊支持,则在一个support表中新增内容,我使用的是gorm,然后开启了事务我发现插入的案例有些成功有些失败,很快总结出规律,如果有特殊支持的就插入失败,也没有报错,啥也......
  • 平衡性能与隐私:解读Google的服务器端标记
    在当前数字化时代,企业需要深入洞察用户行为,以提高网站转化率。然而,随着用户对隐私保护的期待日益提高以及相关法规的收紧,如何兼顾性能与隐私成为了一大挑战。为了解决这一问题,Google推出了服务器端标记(Server-SideTagging)技术。什么是服务器端标记?服务器端标记是GoogleTag......
  • 第三方Cookie的消亡与Google服务器端标记的崛起
    随着互联网用户对隐私保护的关注日益增强,各大浏览器正在逐步淘汰第三方Cookie。这一变革深刻影响了广告商和数字营销人员的用户跟踪和数据分析方式。然而,Google推出的服务器端标记技术为这一挑战提供了新的解决方案。什么是第三方Cookie?第三方Cookie是由您访问的网站以外的......
  • Google Cloud 混合云部署连接方式&最佳实践&案例讲解
    混合云部署连接方式GCP的混合云部署连接方式提供了多种选择,企业可以根据自身需求选择合适的解决方案。实施最佳实践,将有助于提高混合云架构的性能、安全性和可用性。通过合理的规划和管理,企业可以充分利用混合云的优势,实现更高效的资源利用和业务拓展。CloudVPN概述:通过......
  • 【工作日常】Google 以图搜图 代码
    publicstaticList<String>getExactMatchesByGoogleCrawler(StringimageUrl){try{ObjectMapperobjectMapper=newObjectMapper();//发送请求并获取响应(模拟点击search)Documentdoc=sendRequestByImageUrl(imageUrl);......