package busmodels import ( "device-manage/app/admin/models" orm "device-manage/common/global" "fmt" "strconv" ) //appkey值 唯一, 区分不同设备不同的应用,设备端可以以此判断是否是目标应用或者配置文件. //appkey设备可用可不用,如果不使用appkey能够区分应用也可以,比如:android apk 可以通过包名区分应用等. type BusApplication struct { AppId int `json:"appId" gorm:"primary_key;AUTO_INCREMENT"` AppName string `json:"appName" gorm:"size:128;"` AppKey string `json:"appKey" gorm:"size:128;"` GroupId int `json:"groupId"` DestObject string `json:"destObject" gorm:"size:128;"` UpgradeType string `json:"upgradeType" gorm:"size:32;"` PkgName string `json:"pkgName" gorm:"size:128;"` Remark string `json:"remark" gorm:"size:255;"` CreateBy string `json:"createBy" gorm:"size:128;"` UpdateBy string `json:"updateBy" gorm:"size:128;"` BaseModel BusUpgradeFile BusUpgradeFile `gorm:"foreignKey:AppId;references:AppId"` BusAppDeviceBind BusAppDeviceBind `gorm:"foreignKey:AppId;references:AppId"` BusAppGroupBind BusAppGroupBind `gorm:"foreignKey:AppId;references:AppId"` } type ApplicationInfo struct { BusApplication GroupName string `json:"groupName" gorm:"size:128;"` } type QueryAppParams struct { AppName string `json:"appName" gorm:"size:128;"` DestObject string `json:"destObject" gorm:"size:128;"` PageSize int `json:"pageSize"` PageIndex int `json:"pageIndex"` Gids []int `json:"gids"` } func (BusApplication) TableName() string { return "bus_application" } type PublishAppDevice struct { AppId int `json:"appId"` DeviceId []int `json:"deviceId"` } type PublishAppGroup struct { AppId int `json:"appId"` GroupId []int `json:"groupId"` } func (e *BusApplication) Get() (ApplicationInfo, error) { var doc ApplicationInfo var group BusGroup tableGroup := orm.Eloquent.Table("bus_group") table := orm.Eloquent.Table(e.TableName()) if e.AppId != 0 { table = table.Where("app_id = ?", e.AppId) } if err := table.First(&doc).Error; err != nil { return doc, err } if err := tableGroup.Where("group_id = ?", doc.GroupId).Find(&group).Error; err != nil { return doc, err } else { doc.GroupName = group.GroupName } return doc, nil } func (e *BusApplication) GetPage(pageSize int, pageIndex int, gids []int) ([]ApplicationInfo, int, error) { var doc []ApplicationInfo tableApp := orm.Eloquent.Table(e.TableName()) //tableUser := orm.Eloquent.Table("sys_user") if e.AppName != "" { tableApp = tableApp.Where("app_name like ?", "%"+e.AppName+"%") } if e.DestObject != "" { tableApp = tableApp.Where("dest_object like ?", "%"+e.DestObject+"%") } if len(gids) > 0 { tableApp = tableApp.Where("group_id in (?)", gids) } var count int64 if err := tableApp.Order("app_id desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&doc).Offset(-1).Limit(-1).Count(&count).Error; err != nil { return nil, 0, err } for k, v := range doc { fmt.Println(">>>>>>>>>>>") fmt.Println(v.GroupId) var group BusGroup tableGroup := orm.Eloquent.Table("bus_group") user := models.SysUser{} id, _ := strconv.Atoi(v.CreateBy) if err := orm.Eloquent.Table("sys_user").Where("user_id = ?", id).Find(&user).Error; err == nil { doc[k].CreateBy = user.Username } id, _ = strconv.Atoi(v.UpdateBy) user2 := models.SysUser{} if err := orm.Eloquent.Table("sys_user").Where("user_id = ?", id).Find(&user2).Error; err == nil { doc[k].UpdateBy = user2.Username } if err := tableGroup.Where("group_id = ?", v.GroupId).Find(&group).Error; err == nil { doc[k].GroupName = group.GroupName } } return doc, int(count), nil } func (e *BusApplication) Insert() (id int, err error) { // check 用户名 //添加数据 if err = orm.Eloquent.Table(e.TableName()).Create(&e).Error; err != nil { return } id = e.AppId return } func (e *BusApplication) Update(id int) (update BusApplication, err error) { if err = orm.Eloquent.Table(e.TableName()).First(&update, id).Error; err != nil { return } //参数1:是要修改的数据 //参数2:是修改的数据 if err = orm.Eloquent.Table(e.TableName()).Model(&update).Updates(&e).Error; err != nil { return } return } //delelte log func (e *BusApplication) Delete(id int) (success bool, err error) { if err = orm.Eloquent.Table(e.TableName()).Where("app_id = ?", id).Delete(&BusDeviceLog{}).Error; err != nil { success = false return } success = true return } func (e *BusApplication) BatchDelete(id []int) (Result bool, err error) { if err = orm.Eloquent.Table(e.TableName()).Where("app_id in (?)", id).Delete(&BusDeviceLog{}).Error; err != nil { return } Result = true return }