框架go-admin

gin+gorm

mysql表


CREATE TABLE `sq_user_ticket` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户id',
`to_uid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '被投票用户的id',
`from_uid` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '投票用户的id',
`from_user_name` char(100) NOT NULL DEFAULT '' COMMENT '用户名',
`from_nick_name` char(100) NOT NULL DEFAULT '' COMMENT '昵称',
`number` bigint(20) unsigned NOT NULL DEFAULT '0' COMMENT '得票数量',
`created_at` timestamp NULL DEFAULT NULL,
`updated_at` timestamp NULL DEFAULT NULL,
`deleted_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='单身用户主表';

model里


type SqUserTicket struct {
Id int `json:"Id" gorm:"type:int(11);primary_key"` //
ToUid int `json:"toUid" gorm:"type:int(11)"` //
FromUid int `json:"fromUid" gorm:"type:varchar(128);"` //
FromUserName string `json:"fromUserName" gorm:"type:varchar(255);"` //
FromNickName string `json:"fromNickName" gorm:"type:varchar(255);"` //
Number int64 `json:"number" gorm:"type:int(20)"` //
DataScope string `json:"dataScope" gorm:"-"`
Params string `json:"params" gorm:"-"`
BaseModel
} func (SqUserTicket) TableName() string {
return "sq_user_ticket"
} // 获取当天的数据 0点到24点
func (e *SqUserTicket) GetCount() ([]SqUserTicket, int, error) {
var doc []SqUserTicket table := orm.Eloquent.Select("*").Table(e.TableName()) if e.Id != 0 {
table = table.Where("id = ?", e.Id)
} if e.ToUid != 0 {
table = table.Where("to_uid = ?", e.ToUid)
}
if e.FromUid != 0 {
table = table.Where("from_uid = ?", e.FromUid)
} startTime, endTime := tools.GetCurrentTimestamp()
table = table.Where("created_at between ? and ?",startTime,endTime) var count int
if err := table.Find(&doc).Error; err != nil {
return nil, 0, err
}
table.Where("`deleted_at` IS NULL").Count(&count)
return doc, count, nil
} //获取当天的时间范伟 Time类型 2020-08-18 00:00:00 +0800 CST 2020-08-18 23:59:59 +0800 CST
func GetCurrentTimestamp() (beginTime, endTime time.Time) {
t := time.Now()
timeStr := t.Format("2006-01-02")
beginTime, _ = time.ParseInLocation("2006-01-02", timeStr, time.Local)
endTimeTmp := beginTime.Unix() + 86399
endTime = time.Unix(endTimeTmp, 0)
return beginTime, endTime
} //获取当天的时间范伟 int64类型 //1597680000 1597766399
func GetCurrentTimeInt64() (beginTime, endTime int64) {
t := time.Now()
timeStr := t.Format("2006-01-02")
beginTimeTmp, _ := time.ParseInLocation("2006-01-02", timeStr, time.Local)
beginTime = beginTimeTmp.Unix()
endTime = beginTime + 86399
return beginTime, endTime
}

控制器

func InsertSqUserTicket(c *gin.Context) {

	var data models.SqUserTicket
err := c.ShouldBindJSON(&data)
if err != nil {
app.Error(c, 400, err, err.Error())
return
}
//data.FromUid = tools.GetUserIdStr(c)
result, count, err := data.GetCount() if err != nil {
app.Error(c, 400, err, err.Error())
return
}
app.OK(c, result, fmt.Sprintf("%d", count))
}

执行的sql效果


(/media/haima/34E401CC64DD0E28/site/go/src/linkbook/xiangqin/go-admin/models/sqUserTicket.go:92)
[2020-08-18 15:28:59] [228.05ms] SELECT * FROM `sq_user_ticket` WHERE `sq_user_ticket`.`deleted_at` IS NULL AND ((to_uid = 1111) AND (from_uid = 222) AND (created_at between '2020-08-18 00:00:00' and '2020-08-18 23:59:59'))
[0 rows affected or returned ] (/media/haima/34E401CC64DD0E28/site/go/src/linkbook/xiangqin/go-admin/models/sqUserTicket.go:95)
[2020-08-18 15:29:32] [20.31ms] SELECT count(*) FROM `sq_user_ticket` WHERE (to_uid = 1111) AND (from_uid = 222) AND (created_at between '2020-08-18 00:00:00' and '2020-08-18 23:59:59') AND (`deleted_at` IS NULL)
[0 rows affected or returned ]

gin+grom 求当天的数据列表 0点到24点的更多相关文章

  1. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

  2. 【WPF】闲着没事,写了个支持数据列表分页的帮助类

    支持分页的MVVM组件大家可以网上找,老周这个类只是没事写来娱乐一下的,主要是功能简单,轻量级,至少它满足了我的需求,也许还有未知的 bug . 这个类支持对数据列表进行分页处理,原理是利用 Skip ...

  3. js动态生成数据列表

    我们通常会使用table标签来展示数据内容,由于需要展示的数据内容是随时更换的,所以不可能将展示的数据列表写死在html写死在页面中,而是需要我们根据后台传来的数据随时更换,这个时候就需要我们使用js ...

  4. YTU 2618: B 求类中数据成员的最大值-类模板

    2618: B 求类中数据成员的最大值-类模板 时间限制: 1 Sec  内存限制: 128 MB 提交: 430  解决: 300 题目描述 声明一个类模板,类模板中有三个相同类型的数据成员,有一函 ...

  5. [ionic开源项目教程] - 第4讲 通Service层获取数据列表

    第4讲:通Service层获取数据列表 上一讲中页面的基本架构已完成,这一讲介绍如何通过service层从服务器请求数据,在通过controller层为载体,显示到视图层. 1.在services.j ...

  6. 解决Javascript大数据列表引起的网页加载慢/卡死问题。

    在一些网页应用中,有时会碰到一个超级巨大的列表,成千上万行,这时大部份浏览器解析起来就非常痛苦了(有可能直接卡死). 也许你们会说可以分页或动态加载啊?但是有可能需求不允许分页,动态加载?网络的延迟也 ...

  7. CS窗体程序数据列表分页

    以前,觉得winform程序分页很无趣,也没实际意义,直到近期的项目实践中让我认识到原来winform数据列表分页也是非常有必要的,因为由于数据量过大的情况,当窗体在初始加载数据的时候如果不做条件的限 ...

  8. ElasticSearch(十)Elasticsearch检索出的数据列表按字段匹配的优先顺序及搜索单词拼音一部分搜不到数据

    检索出的数据列表按字段匹配的优先顺序 一.举例 比如,发布一篇文章,文章包括基本的字段包括标题.发布时间.点击率.关键字.内容.当在页面中输入“教育”搜索关键词,会检索出指定字段包括“教育”的所有数据 ...

  9. HTML、CSS知识点,面试开发都会需要--No.7 数据列表

    No.7 数据列表 1.无序列表Unordered List 无序列表用block-level元素ul(unordered list)表示,每个item单独使用li(list)标记.如下代码所示: & ...

  10. 这些HTML、CSS知识点,面试和平时开发都需要 No5-No7(知识点:文字设置、设置背景、数据列表)

    系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识 ...

随机推荐

  1. KingbaseES V8R6 集群运维系列 -- 命令行部署repmgr管理集群+switchover测试

    本次部署未使用securecmd/kbha工具,无需普通用户到root用户的互信. 一.环境准备 1.创建OS用户 建立系统数据库安装用户组及用户,在所有的节点执行. root用户登陆服务器,创建用户 ...

  2. redis的两种持久化方式

    1.为什么redis需要持久化 答:edis是基于内存的,如果Redis服务器挂了,数据就会丢失 2.有几种方式实现redis的持久化 答:有两种,一种是AOF 持久化,另一种是RDB持久化 一. A ...

  3. 开放原子开源基金会OpenHarmony工作委员会主席侯培新寄语OpenAtom OpenHarmony分论坛

    2022开放原子全球开源峰会 OpenAtom OpenHarmony分论坛 万物互联,使能千行百业 7月27日 14:00  与您相约 OpenHarmony 工作委员会主席侯培新 寄语 OpenA ...

  4. 使用IDEA直接连接数据库报错:Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.

    错误详情:使用IDEA直接连接数据库报错:Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' ...

  5. .Net 代码分析工具对比 visual studio 2022 current

    目录 原因 背景知识 名词解释 分析器 分析器在IDE里 目标 查找思路及过程 CodeMaid Roslyn StyleCop.Analyzer StyleCop? StyleCop.Analyze ...

  6. node require 运行步骤

    前言 准备整理node 系列,先把一些基础含义放出来. 在学习node 的时候我们一般加载模块都是require,那么require 是如何运行的呢? 正文 通常,在Node.js里导入是通过 req ...

  7. C#判断窗体是否被遮挡 - 开源研究系列文章

    上次发布了托盘窗体的显示与隐藏的博文:,但是在测试窗体最大化的时候发现窗体没有隐藏,调试了下知道是窗体是否被遮挡这个函数的判断有问题.于是就研究了该代码,然后联系了该操作类的作者,也是博客园的园友,然 ...

  8. 【cef编译包】下载地址

    http://opensource.spotify.com/cefbuilds/index.html

  9. 树莓派和esp8266之间使用tcp协议通信

    树莓派代码: from flask import Flask, render_template import socket import threading app = Flask(__name__) ...

  10. D365调试进入系统类方法

    在生成InventDIMID时,虽然设置了InventDIMID的Number sequence为自定义的Format,但是总是不按指定的Number sequence产生InventDIMID Di ...