user_department.go
3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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
package models
import (
"fmt"
"time"
"github.com/astaxie/beego/orm"
)
type UserDepartment struct {
Id int64 `orm:"column(id);auto" description:"主键"`
UserId int64 `orm:"column(user_id)" description:"用户id"`
CompanyId int64 `orm:"column(company_id)" description:"公司id"`
DepartmentId int64 `orm:"column(department_id)" description:"部门id"`
CreateTime time.Time `orm:"column(create_time);type(timestamp);null" description:"创建时间"`
EnableStatus int8 `orm:"column(enable_status)" description:"是否有效"`
UserCompanyId int64 `orm:"column(user_company_id)"`
}
func (t *UserDepartment) TableName() string {
return "user_department"
}
//EnableStatus 是否有效
const (
USER_DEPARTMENT_ENABLE_YES int8 = 1 //有效
USER_DEPARTMENT_ENABLE_NO int8 = 2 //无效
)
func (t *UserDepartment) IsEnable() bool {
switch t.EnableStatus {
case USER_DEPARTMENT_ENABLE_YES:
return true
case USER_DEPARTMENT_ENABLE_NO:
return false
}
return false
}
func (t *UserDepartment) ValidCompanyDepart() error {
depart, err := GetDepartmentById(t.DepartmentId)
if err != nil {
return err
}
if depart.CompanyId != t.CompanyId {
e := fmt.Errorf(" depart.CompanyId != param.CompanyId ")
return e
}
return nil
}
func init() {
orm.RegisterModel(new(UserDepartment))
}
// AddUserDepartment insert a new UserDepartment into database and returns
// last inserted Id on success.
func AddUserDepartment(m *UserDepartment, om ...orm.Ormer) (id int64, err error) {
var o orm.Ormer
if len(om) > 0 {
o = om[0]
} else {
o = orm.NewOrm()
}
m.CreateTime = time.Now()
m.EnableStatus = USER_DEPARTMENT_ENABLE_YES
id, err = o.Insert(m)
return
}
// GetUserDepartmentById retrieves UserDepartment by Id. Returns error if
// Id doesn't exist
// func GetUserDepartmentById(id int64) (v *UserDepartment, err error) {
// o := orm.NewOrm()
// v = &UserDepartment{Id: id}
// if err = o.Read(v); err == nil {
// return v, nil
// }
// return nil, err
// }
// UpdateUserDepartment updates UserDepartment by Id and returns error if
// the record to be updated doesn't exist
// func UpdateUserDepartmentById(m *UserDepartment) (err error) {
// o := orm.NewOrm()
// v := UserDepartment{Id: m.Id}
// // ascertain id exists in the database
// if err = o.Read(&v); err == nil {
// var num int64
// if num, err = o.Update(m); err == nil {
// fmt.Println("Number of records updated in database:", num)
// }
// }
// return
// }
// func GetUserDepartment(userid, companyid int64) ([]*UserDepartment, error) {
// o := orm.NewOrm()
// var (
// err error
// result []*UserDepartment
// )
// _, err = o.QueryTable(&UserDepartment{}).
// Filter("user_id", userid).
// Filter("company_id", companyid).
// Filter("enable_status", 1).
// All(&result)
// return result, err
// }
func CountUserDepartByDepart(departid int64) (int64, error) {
var (
cnt int64
err error
)
o := orm.NewOrm()
cnt, err = o.QueryTable(&UserDepartment{}).
Filter("department_id", departid).
Filter("enable_status", 1).
Count()
return cnt, err
}
func GetUserDepartmentIds(companyId, dId int) (v []int64, err error) {
o := orm.NewOrm()
sql := `
select user_id from user_company where company_id=? and id in (
select user_company_id from user_department where company_id=? and department_id=? and enable=1
)
`
if _, err = o.Raw(sql, companyId, companyId, dId).QueryRows(&v); err != nil {
return
}
return
}
func ExistUserDepart(departid int64, usercompanyid int64) bool {
var (
ok bool
)
o := orm.NewOrm()
ok = o.QueryTable(&UserDepartment{}).
Filter("department_id", departid).
Filter("user_company_id", usercompanyid).
Filter("delete_at", 0).
Exist()
return ok
}