org_team.go 3.88 KB
Newer Older
haoyanbin's avatar
1  
haoyanbin committed
1 2 3 4 5
package service

import (
	"errors"

haoyanbin's avatar
haoyanbin committed
6
	"github.com/go-admin-team/go-admin-core/sdk/service"
haoyanbin's avatar
1  
haoyanbin committed
7 8
	"gorm.io/gorm"

haoyanbin's avatar
1  
haoyanbin committed
9 10
	"go-admin/app/operate/models"
	"go-admin/app/operate/service/dto"
haoyanbin's avatar
1  
haoyanbin committed
11 12 13 14 15 16 17 18 19
	"go-admin/common/actions"
	cDto "go-admin/common/dto"
)

type OrgTeam struct {
	service.Service
}

// GetPage 获取OrgTeam列表
haoyanbin's avatar
haoyanbin committed
20
func (e *OrgTeam) GetPage(c *dto.OrgTeamGetPageReq, p *actions.DataPermission, list *[]dto.OrgTeamGetPageReply, count *int64) error {
haoyanbin's avatar
1  
haoyanbin committed
21 22 23
	var err error
	var data models.OrgTeam

haoyanbin's avatar
haoyanbin committed
24
	err = e.Orm.Table("org_team as ot").
haoyanbin's avatar
1  
haoyanbin committed
25
		Select("ot.id,oc.id as club_id,oc.club_name,ot.team_name,ot.created_at").
haoyanbin's avatar
haoyanbin committed
26
		Joins("left join org_club as oc on ot.club_id=oc.id").
haoyanbin's avatar
1  
haoyanbin committed
27 28 29 30
		Scopes(
			cDto.MakeCondition(c.GetNeedSearch()),
			cDto.Paginate(c.GetPageSize(), c.GetPageIndex()),
			actions.Permission(data.TableName(), p),
haoyanbin's avatar
1  
haoyanbin committed
31
			cDto.PassDel("ot"),
haoyanbin's avatar
1  
haoyanbin committed
32 33 34 35 36 37 38 39 40 41 42
		).
		Find(list).Limit(-1).Offset(-1).
		Count(count).Error
	if err != nil {
		e.Log.Errorf("OrgTeamService GetPage error:%s \r\n", err)
		return err
	}
	return nil
}

// Get 获取OrgTeam对象
haoyanbin's avatar
1  
haoyanbin committed
43
func (e *OrgTeam) Get(d *dto.OrgTeamGetReq, p *actions.DataPermission, model *dto.OrgTeamGetPageReply) error {
haoyanbin's avatar
1  
haoyanbin committed
44 45
	var data models.OrgTeam

haoyanbin's avatar
1  
haoyanbin committed
46 47 48
	err := e.Orm.Table("org_team as ot").
		Select("ot.id,oc.id as club_id,oc.club_name,ot.team_name,ot.created_at").
		Joins("left join org_club as oc on ot.club_id=oc.id").
haoyanbin's avatar
1  
haoyanbin committed
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
		Scopes(
			actions.Permission(data.TableName(), p),
		).
		First(model, d.GetId()).Error
	if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
		err = errors.New("查看对象不存在或无权查看")
		e.Log.Errorf("Service GetOrgTeam error:%s \r\n", err)
		return err
	}
	if err != nil {
		e.Log.Errorf("db error:%s", err)
		return err
	}
	return nil
}

// Insert 创建OrgTeam对象
func (e *OrgTeam) Insert(c *dto.OrgTeamInsertReq) error {
haoyanbin's avatar
haoyanbin committed
67 68 69
	var err error
	var data models.OrgTeam
	c.Generate(&data)
haoyanbin's avatar
1  
haoyanbin committed
70 71 72 73 74
	err = e.Orm.Create(&data).Error
	if err != nil {
		e.Log.Errorf("OrgTeamService Insert error:%s \r\n", err)
		return err
	}
haoyanbin's avatar
haoyanbin committed
75
	c.Id = data.Id
haoyanbin's avatar
1  
haoyanbin committed
76 77 78 79 80
	return nil
}

// Update 修改OrgTeam对象
func (e *OrgTeam) Update(c *dto.OrgTeamUpdateReq, p *actions.DataPermission) error {
haoyanbin's avatar
haoyanbin committed
81 82 83 84 85 86
	var err error
	var data = models.OrgTeam{}
	e.Orm.Scopes(
		actions.Permission(data.TableName(), p),
	).First(&data, c.GetId())
	c.Generate(&data)
haoyanbin's avatar
1  
haoyanbin committed
87

haoyanbin's avatar
haoyanbin committed
88 89 90 91 92 93 94 95 96 97
	db := e.Orm.Updates(&data)
	if db.Error != nil {
		e.Log.Errorf("OrgTeamService Save error:%s \r\n", err)
		return err
	}
	if db.RowsAffected == 0 {
		return errors.New("无权更新该数据")
	}
	c.Id = data.Id
	return nil
haoyanbin's avatar
1  
haoyanbin committed
98 99 100 101 102 103 104 105 106 107 108
}

// Remove 删除OrgTeam
func (e *OrgTeam) Remove(d *dto.OrgTeamDeleteReq, p *actions.DataPermission) error {
	var data models.OrgTeam

	db := e.Orm.Model(&data).
		Scopes(
			actions.Permission(data.TableName(), p),
		).Delete(&data, d.GetId())
	if err := db.Error; err != nil {
haoyanbin's avatar
haoyanbin committed
109 110 111 112 113 114
		e.Log.Errorf("Service RemoveOrgTeam error:%s \r\n", err)
		return err
	}
	if db.RowsAffected == 0 {
		return errors.New("无权删除该数据")
	}
haoyanbin's avatar
1  
haoyanbin committed
115
	return nil
haoyanbin's avatar
haoyanbin committed
116
}
haoyanbin's avatar
haoyanbin committed
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160

// 根据工作人员id获取userId
func (e *OrgTeam) GetTeamName(teamId int) (error, string) {
	data := new(models.OrgTeam)

	err := e.Orm.Table("org_team").
		Select("team_name").
		Where("id=?", teamId).
		First(&data).Error
	if err != nil {
		e.Log.Errorf("db error:%s", err)
		return err, ""
	}
	return nil, data.TeamName
}

func (e *OrgTeam) GetParentDeptId(clubId string) (error, int) {
	data := dto.Dept{}

	err := e.Orm.Table("org_club_user as ocu").
		Select("ocu.id, su.dept_id").
		Joins("left join sys_user as su on su.user_id=ocu.user_id").
		Where("id=?", clubId).
		First(&data).Error
	if err != nil {
		e.Log.Errorf("db error:%s", err)
		return err, 0
	}
	return nil, data.DeptId
}

// Insert 创建OrgTeam对象
func (e *OrgTeam) InsertTeamDept(teamId int, deptId int) error {
	var err error
	var data models.OrgTeamDept
	data.TeamId = teamId
	data.DeptId = deptId
	err = e.Orm.Table("org_team_dept").Create(&data).Error
	if err != nil {
		e.Log.Errorf("OrgTeamService Insert error:%s \r\n", err)
		return err
	}
	return nil
}