package service

import (
	"ulink-admin/frame"
	"ulink-admin/modules/site/dao"
	"ulink-admin/modules/site/models/model"
	"ulink-admin/modules/site/models/req"
)

type SiteService struct {
	siteDao dao.SiteDao
}

// List 查询所有站点管理业务方法
func (this SiteService) List(query *req.SiteQuery, list interface{}) {
	this.siteDao.List(query, list)
}

// Page 查询站点管理分页列表
func (this SiteService) Page(query *req.SiteQuery) (*[]model.Site, int64) {
	return this.siteDao.Page(query)
}

// Insert 添加站点管理
func (this SiteService) Insert(site *model.Site) {
	//检查站点标识唯一性
	if this.siteDao.Exist(site.TableName(), "code=?", site.Code) {
		frame.Throw(frame.BUSINESS_CODE, "新增站点管理'"+site.Code+"'失败,站点标识已存在")
	}
	this.siteDao.Insert(site)
}

// Get 查询
func (this SiteService) Get(id int64) *model.Site {
	model := &model.Site{}
	this.siteDao.GetById(id, model)
	return model
}

// Delete 批量删除
func (this SiteService) Delete(list []int64) {
	this.siteDao.Delete(&model.Site{}, list)
}

// Edit 修改
func (this SiteService) Edit(site *model.Site, cols []string) {
	//检查站点标识唯一性
	if this.siteDao.Exist(site.TableName(), "code=? and id=?", site.Code, site.Id) {
		frame.Throw(frame.BUSINESS_CODE, "新增站点管理'"+site.Code+"'失败,站点标识已存在")
	}
	this.siteDao.Update(site, cols...)
}