| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package models
- import (
- "bytes"
- "fmt"
- "time"
- )
- //手动控制,开灯/关灯记录表
- type LampSwitchRecord struct {
- ID uint `gorm:"primary_key"` //主键,自增长
- DID string `gorm:"type:varchar(32)" json:"did"` //设备编码
- SwitchOn uint8 `gorm:"type:tinyint(1)" json:"switchon"` //类型,1:开灯,0:关灯
- Duration uint `gorm:"type:int" json:"duration"` //开灯或关灯时长,单位秒
- Brightness uint8 `gorm:"type:smallint" json:"brightness"` //亮度,关灯时亮度为0
- TStart time.Time `gorm:"type:datetime;not null" json:"start"` //开始时间
- TEnd time.Time `gorm:"type:datetime;not null" json:"end"` //结束时间
- CreatedAt time.Time `gorm:"type:datetime;not null"` //结束时间
- }
- func (LampSwitchRecord) TableName() string {
- return "device_lamp_switch_record"
- }
- func MultiInsertLampSwitchRecord(datas []LampSwitchRecord) error {
- if len(datas) == 0 {
- return nil
- }
- var buffer bytes.Buffer
- sql := "insert into t_device_lamp_switch_record(d_id,switch_on,duration,brightness,t_start,t_end,created_at) values"
- if _, err := buffer.WriteString(sql); err != nil {
- return err
- }
- for i, e := range datas {
- if i == len(datas)-1 {
- buffer.WriteString(fmt.Sprintf("('%s',%d,%d,%d,'%s','%s','%s');", e.DID, e.SwitchOn, e.Duration, e.Brightness,
- e.TStart.Format("2006-01-02 15:04:05"), e.TEnd.Format("2006-01-02 15:04:05"), e.CreatedAt.Format("2006-01-02 15:04:05")))
- } else {
- buffer.WriteString(fmt.Sprintf("('%s',%d,%d,%d,'%s','%s','%s'),", e.DID, e.SwitchOn, e.Duration, e.Brightness,
- e.TStart.Format("2006-01-02 15:04:05"), e.TEnd.Format("2006-01-02 15:04:05"), e.CreatedAt.Format("2006-01-02 15:04:05")))
- }
- }
- return G_db.Exec(buffer.String()).Error
- }
|