user_department.go
3.2 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
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) (id int64, err error) {
o := orm.NewOrm()
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
}