12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package dao
- import (
- "time"
- )
- type IntelligentLightGroupRelation struct {
- IntelligentLight
- LightStrategy
- LampPoleGroup
- }
- type IntelligentLight struct {
- ID int `gorm:"primary key" json:"id"` //编号
- LightID int `gorm:"type:int" json:"lightID"` //照明策略id
- RelationType int `gorm:"type:int" json:"relationType"` //关联类型1=灯控,2=灯杆分组
- Rid int `gorm:"type:int" json:"rid"` //关联外键ID 根据type类型关联至其表
- CreateTime time.Time `gorm:"type:timestamp" json:"createTime"` //新增时间
- CreateUser string `gorm:"type:varchar(60)" json:"createUser"` //新增记录操作用户ID
- UpdateTime time.Time `gorm:"type:timestamp" json:"updateTime"` //修改时间
- UpdateUser string `gorm:"type:varchar(60)" json:"updateUser"` //修改用户
- IsDeleted int `gorm:"type:int;default 0" json:"isDeleted"` //是否删除 0=未删除,1=删除
- TenantID string `gorm:"type:varchar(12)" json:"tenantID"` //租户id
- }
- func (IntelligentLight) TableName() string {
- return "t_strategy_intelligent_light"
- }
- func (c *IntelligentLight) BatchGet(ids []int) ([]IntelligentLight, error) {
- var intelligentLights []IntelligentLight
- err := Db.Debug().Model(&c).Where("light_id in ? and is_deleted = 0", ids).Find(&intelligentLights).Error
- return intelligentLights, err
- }
- func (c *IntelligentLight) GetByRidAndType() ([]IntelligentLight, error) {
- var intelligentLights []IntelligentLight
- db := Db.Debug().Model(&c).Where("relation_type = ? and is_deleted = 0 and tenant_id = ?",
- c.RelationType, c.TenantID)
- if c.Rid > 0 {
- db = db.Where("rid = ?", c.Rid)
- }
- err := db.Find(&intelligentLights).Error
- return intelligentLights, err
- }
- func (c *IntelligentLight) GetByType() ([]IntelligentLightGroupRelation, error) {
- var groupRelations []IntelligentLightGroupRelation
- selectStr := "lig.*,gro.id,gro.pole_group_name,b.light_name,b.light_sn,b.start_time,b.end_time,b.is_all_year,b.is_automatic_renewal"
- whereStr := "lig.is_deleted = 0 and relation_type = 2 and lig.tenant_id = ? and gro.is_deleted = 0"
- whereValue := []interface{}{c.TenantID}
- if c.Rid > 0 {
- whereStr += " and lig.rid = ?"
- whereValue = append(whereValue, c.Rid)
- }
- err := Db.Debug().Table("t_strategy_intelligent_light lig").Select(selectStr).
- Joins("left join t_dev_lamp_pole_group gro ON lig.rid = gro.id").
- Joins("left join t_strategy_light b ON b.id = lig.light_id").
- Where(whereStr, whereValue...).Order("lig.create_time desc").Scan(&groupRelations).Error
- return groupRelations, err
- }
|