123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /*
- * @description: 树结构数据库操作相关
- * @Author: CP
- * @Date: 2020-09-11 14:49:27
- * @FilePath: \construction_management\dao\tree_dao.go
- */
- package dao
- import (
- "github.com/go-xorm/xorm"
- "go.mod/models"
- )
- //数据库操作引擎
- type TreeDao struct {
- engine *xorm.Engine
- }
- //获得一个DAO对象
- func NewTreeDao(engine *xorm.Engine) *TreeDao {
- return &TreeDao{
- engine: engine,
- }
- }
- //id获得数据
- func (d *TreeDao) Get(id int) *models.CmTree {
- data := &models.CmTree{Id: id}
- //Get取到值后,会自动赋值到data中
- ok, err := d.engine.Get(data)
- if ok && err == nil {
- return data
- } else {
- data.Id = 0
- return data
- }
- }
- func (d *TreeDao) GetBidsection(id int) []models.CmTree {
- datalist := make([]models.CmTree, 0)
- err := d.engine.
- Asc("serial").
- Where("parent_id=? and isfolder=0", id).
- Find(&datalist)
- if err != nil {
- return datalist
- } else {
- return datalist
- }
- }
- // 获得某一深度的 结构数据(不包含子集) 正序
- func (d *TreeDao) GetAllDepth(depth int, projectId int) []models.CmTree {
- datalist := make([]models.CmTree, 0)
- err := d.engine.
- Asc("serial").
- Where("depth=? and project_id=?", depth, projectId).
- Find(&datalist)
- if err != nil {
- return datalist
- } else {
- return datalist
- }
- }
- // 获得项目文件夹
- func (d *TreeDao) GetAllTree(projectId int) []models.CmTree {
- datalist := make([]models.CmTree, 0)
- err := d.engine.
- Asc("id").
- Where("project_id=?", projectId).
- Find(&datalist)
- if err != nil {
- return datalist
- } else {
- return datalist
- }
- }
- //创建
- func (d *TreeDao) Create(data *models.CmTree) error {
- _, err := d.engine.Insert(data)
- return err
- }
- // 更新
- func (d *TreeDao) Update(data *models.CmTree, columns []string) error {
- _, err := d.engine.Id(data.Id).MustCols(columns...).Update(data)
- return err
- }
|