正在显示
6 个修改的文件
包含
235 行增加
和
45 行删除
@@ -12,18 +12,18 @@ import ( | @@ -12,18 +12,18 @@ import ( | ||
12 | ) | 12 | ) |
13 | 13 | ||
14 | type Department struct { | 14 | type Department struct { |
15 | - Id int64 `orm:"column(id);auto"` | ||
16 | - CompanyId int64 `orm:"column(company_id)" description:"公司id"` | ||
17 | - Name string `orm:"column(name);size(30)" description:"部门名称"` | ||
18 | - CreateAt time.Time `orm:"column(create_at);type(timestamp)" description:"创建时间"` | ||
19 | - ParentId int64 `orm:"column(parent_id)" description:"父级id"` | ||
20 | - Relation string `orm:"column(relation);size(1024)" description:"父子级关系树"` | ||
21 | - DeleteAt time.Time `orm:"column(delete_at);type(timestamp)" description:"删除时间"` | ||
22 | - UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"` | ||
23 | - Manages string `orm:"column(managers)" description:"部门负责人id列表 json 数组 []"` //存user_company_id | ||
24 | - IsTop int8 `orm:"column(is_top)" ` | ||
25 | - Level int `orm:"column(level)" ` | ||
26 | - BusinessAdminId int64 `orm:"column(business_admin_id)"` | 15 | + Id int64 `orm:"column(id);auto"` |
16 | + CompanyId int64 `orm:"column(company_id)" description:"公司id"` | ||
17 | + Name string `orm:"column(name);size(30)" description:"部门名称"` | ||
18 | + CreateAt time.Time `orm:"column(create_at);type(timestamp)" description:"创建时间"` | ||
19 | + ParentId int64 `orm:"column(parent_id)" description:"父级id"` | ||
20 | + Relation string `orm:"column(relation);size(1024)" description:"父子级关系树"` | ||
21 | + DeleteAt time.Time `orm:"column(delete_at);type(timestamp)" description:"删除时间"` | ||
22 | + UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"` | ||
23 | + Manages string `orm:"column(managers)" description:"部门负责人id列表 json 数组 []"` //存user_company_id | ||
24 | + IsTop int8 `orm:"column(is_top)" ` | ||
25 | + Level int `orm:"column(level)" ` | ||
26 | + BusinessDepartmentId int64 `orm:"column(business_department_id)"` | ||
27 | } | 27 | } |
28 | 28 | ||
29 | func (t *Department) TableName() string { | 29 | func (t *Department) TableName() string { |
@@ -224,7 +224,7 @@ func GetDepartmentByBusinessId(businessId int64) (v *Department, err error) { | @@ -224,7 +224,7 @@ func GetDepartmentByBusinessId(businessId int64) (v *Department, err error) { | ||
224 | v = &Department{} | 224 | v = &Department{} |
225 | o := orm.NewOrm() | 225 | o := orm.NewOrm() |
226 | err = o.QueryTable(&Department{}). | 226 | err = o.QueryTable(&Department{}). |
227 | - Filter("business_admin_id", businessId). | 227 | + Filter("business_department_id", businessId). |
228 | Filter("delete_at", 0). | 228 | Filter("delete_at", 0). |
229 | One(v) | 229 | One(v) |
230 | return v, err | 230 | return v, err |
models/department_charge.go
0 → 100644
1 | +package models | ||
2 | + | ||
3 | +import ( | ||
4 | + "fmt" | ||
5 | + "oppmg/utils" | ||
6 | + "time" | ||
7 | + | ||
8 | + "github.com/astaxie/beego/orm" | ||
9 | +) | ||
10 | + | ||
11 | +type DepartmentCharge struct { | ||
12 | + Id int64 `orm:"column(id);auto"` | ||
13 | + CompanyId int64 `orm:"column(company_id)" description:"公司id"` | ||
14 | + DepartmentId int64 `orm:"column(department_id)" description:"部门id"` | ||
15 | + UserCompanyId int64 `orm:"column(user_company_id)" description:"用户id"` | ||
16 | + CreateTime time.Time `orm:"column(create_time);type(timestamp)"` | ||
17 | + Enabled int8 `orm:"column(enabled)"` | ||
18 | +} | ||
19 | + | ||
20 | +func (t *DepartmentCharge) TableName() string { | ||
21 | + return "department_charge" | ||
22 | +} | ||
23 | + | ||
24 | +func init() { | ||
25 | + orm.RegisterModel(new(DepartmentCharge)) | ||
26 | +} | ||
27 | + | ||
28 | +const ( | ||
29 | + DEPARTMENT_CHARGE_ENABLE_YES int8 = 1 | ||
30 | + DEPARTMENT_CHARGE_ENABLE_NO int8 = 2 | ||
31 | +) | ||
32 | + | ||
33 | +// AddDepartmentCharge insert a new DepartmentCharge into database and returns | ||
34 | +// last inserted Id on success. | ||
35 | +func AddDepartmentCharge(m *DepartmentCharge) (id int64, err error) { | ||
36 | + o := orm.NewOrm() | ||
37 | + id, err = o.Insert(m) | ||
38 | + return | ||
39 | +} | ||
40 | + | ||
41 | +// UpdateDepartmentCharge updates DepartmentCharge by Id and returns error if | ||
42 | +// the record to be updated doesn't exist | ||
43 | +func UpdateDepartmentChargeById(m *DepartmentCharge) (err error) { | ||
44 | + o := orm.NewOrm() | ||
45 | + v := DepartmentCharge{Id: m.Id} | ||
46 | + // ascertain id exists in the database | ||
47 | + if err = o.Read(&v); err == nil { | ||
48 | + var num int64 | ||
49 | + if num, err = o.Update(m); err == nil { | ||
50 | + fmt.Println("Number of records updated in database:", num) | ||
51 | + } | ||
52 | + } | ||
53 | + return | ||
54 | +} | ||
55 | + | ||
56 | +func GetDepartmentCharge(departmentId int64) ([]DepartmentCharge, error) { | ||
57 | + var ( | ||
58 | + data []DepartmentCharge | ||
59 | + err error | ||
60 | + ) | ||
61 | + o := orm.NewOrm() | ||
62 | + _, err = o.QueryTable(&DepartmentCharge{}). | ||
63 | + Filter("department_id", departmentId). | ||
64 | + Filter("enabled", 1). | ||
65 | + All(&data) | ||
66 | + if err == orm.ErrNoRows { | ||
67 | + return data, nil | ||
68 | + } | ||
69 | + return data, err | ||
70 | +} | ||
71 | + | ||
72 | +//ChangeDepartmentCharge 变更部门的主管 | ||
73 | +func ChangeDepartmentCharge(companyId int64, departmentId int64, userCompanyid []int64, om orm.Ormer) error { | ||
74 | + var ( | ||
75 | + err error | ||
76 | + charges []DepartmentCharge | ||
77 | + oldChargeIds []int64 | ||
78 | + ) | ||
79 | + charges, err = GetDepartmentCharge(departmentId) | ||
80 | + if err != nil { | ||
81 | + return fmt.Errorf("获取部门主管数据失败:%s", err) | ||
82 | + } | ||
83 | + for _, v := range charges { | ||
84 | + oldChargeIds = append(oldChargeIds, v.Id) | ||
85 | + } | ||
86 | + var ( | ||
87 | + delIds []int64 | ||
88 | + addIds []int64 | ||
89 | + addCharges []DepartmentCharge | ||
90 | + ) | ||
91 | + delIds = utils.ArrayInt64Diff(oldChargeIds, userCompanyid) | ||
92 | + addIds = utils.ArrayInt64Diff(userCompanyid, oldChargeIds) | ||
93 | + nowTime := time.Now() | ||
94 | + for _, v := range addIds { | ||
95 | + m := DepartmentCharge{ | ||
96 | + CompanyId: companyId, | ||
97 | + UserCompanyId: v, | ||
98 | + DepartmentId: departmentId, | ||
99 | + Enabled: DEPARTMENT_CHARGE_ENABLE_YES, | ||
100 | + CreateTime: nowTime, | ||
101 | + } | ||
102 | + addCharges = append(addCharges, m) | ||
103 | + | ||
104 | + } | ||
105 | + if len(delIds) > 0 { | ||
106 | + _, err = om.QueryTable(&DepartmentCharge{}). | ||
107 | + Filter("department_id", departmentId). | ||
108 | + Filter("user_company_id__in", delIds). | ||
109 | + Update(orm.Params{ | ||
110 | + "enable": DEPARTMENT_CHARGE_ENABLE_NO, | ||
111 | + }) | ||
112 | + if err != nil { | ||
113 | + return fmt.Errorf("更新department_charge数据失败,err:%s", err) | ||
114 | + } | ||
115 | + } | ||
116 | + if len(addCharges) > 0 { | ||
117 | + _, err = om.InsertMulti(10, addCharges) | ||
118 | + if err != nil { | ||
119 | + return fmt.Errorf("添加department_charge数据失败,err:%s", err) | ||
120 | + } | ||
121 | + } | ||
122 | + | ||
123 | + return nil | ||
124 | +} |
@@ -8,17 +8,17 @@ import ( | @@ -8,17 +8,17 @@ import ( | ||
8 | ) | 8 | ) |
9 | 9 | ||
10 | type Position struct { | 10 | type Position struct { |
11 | - Id int64 `orm:"column(id);auto" description:"职位表id"` | ||
12 | - CompanyId int64 `orm:"column(company_id)" description:"表company.id 公司编号"` | ||
13 | - Name string `orm:"column(name);size(100)" description:"职位名称"` | ||
14 | - ParentId int64 `orm:"column(parent_id)" description:"父级id"` | ||
15 | - Relation string `orm:"column(relation);size(1000)" description:"父子级关系树"` | ||
16 | - CreateAt time.Time `orm:"column(create_at);type(timestamp)" description:"创建时间"` | ||
17 | - UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"` | ||
18 | - DeleteAt time.Time `orm:"column(delete_at);type(timestamp)" description:"删除时间"` | ||
19 | - EnableStatus string `orm:"column(enable_status);size(255)" description:"有效状态 1:有效 0:无效"` | ||
20 | - Level int `orm:"column(level)"` | ||
21 | - BusinessAdminId int64 `orm:"column(business_admin_id)"` | 11 | + Id int64 `orm:"column(id);auto" description:"职位表id"` |
12 | + CompanyId int64 `orm:"column(company_id)" description:"表company.id 公司编号"` | ||
13 | + Name string `orm:"column(name);size(100)" description:"职位名称"` | ||
14 | + ParentId int64 `orm:"column(parent_id)" description:"父级id"` | ||
15 | + Relation string `orm:"column(relation);size(1000)" description:"父子级关系树"` | ||
16 | + CreateAt time.Time `orm:"column(create_at);type(timestamp)" description:"创建时间"` | ||
17 | + UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"` | ||
18 | + DeleteAt time.Time `orm:"column(delete_at);type(timestamp)" description:"删除时间"` | ||
19 | + EnableStatus string `orm:"column(enable_status);size(255)" description:"有效状态 1:有效 0:无效"` | ||
20 | + Level int `orm:"column(level)"` | ||
21 | + BusinessPositionId int64 `orm:"column(business_position_id)"` | ||
22 | } | 22 | } |
23 | 23 | ||
24 | //关联企业总后台的id | 24 | //关联企业总后台的id |
@@ -107,7 +107,7 @@ func GetPositionByBusinessId(businessId int64) (v *Position, err error) { | @@ -107,7 +107,7 @@ func GetPositionByBusinessId(businessId int64) (v *Position, err error) { | ||
107 | o := orm.NewOrm() | 107 | o := orm.NewOrm() |
108 | v = &Position{} | 108 | v = &Position{} |
109 | err = o.QueryTable(&Position{}). | 109 | err = o.QueryTable(&Position{}). |
110 | - Filter("business_admin_id", businessId). | 110 | + Filter("business_position_id", businessId). |
111 | Filter("delete_at", 0). | 111 | Filter("delete_at", 0). |
112 | One(v) | 112 | One(v) |
113 | return v, err | 113 | return v, err |
1 | package platform | 1 | package platform |
2 | 2 | ||
3 | -import "errors" | 3 | +import ( |
4 | + "encoding/json" | ||
5 | + "errors" | ||
6 | + "fmt" | ||
7 | + "oppmg/common/log" | ||
8 | + "oppmg/models" | ||
9 | + | ||
10 | + "github.com/astaxie/beego/orm" | ||
11 | +) | ||
4 | 12 | ||
5 | // ModuleCompanytData 主管理平台发送过来的数据 | 13 | // ModuleCompanytData 主管理平台发送过来的数据 |
6 | type ModuleCompanytData struct { | 14 | type ModuleCompanytData struct { |
7 | - Id int64 `json:"id"` //id | ||
8 | - Name string `json:"name"` //公司名称名称 | ||
9 | - AdminId int64 `json:"admin_id"` //主管理员id | ||
10 | - Logo string `json:"logo"` | ||
11 | -} | ||
12 | - | ||
13 | -type DepartmentChargeData struct { | ||
14 | - Id int64 `json:"id"` | ||
15 | - Charge []int64 `json:"charge"` | 15 | + Id int64 `json:"id"` //id |
16 | + Name string `json:"name"` //公司名称名称 | ||
17 | + AdminId int64 `json:"admin_id"` //主管理员id | ||
18 | + Logo string `json:"logo"` | ||
19 | + Charge []int64 `json:"charge"` | ||
16 | } | 20 | } |
17 | 21 | ||
18 | var _ PlatformAction = ModuleCompanytData{} | 22 | var _ PlatformAction = ModuleCompanytData{} |
@@ -20,9 +24,70 @@ var _ PlatformAction = ModuleCompanytData{} | @@ -20,9 +24,70 @@ var _ PlatformAction = ModuleCompanytData{} | ||
20 | func (m ModuleCompanytData) DoAction(code string, jsondata []byte) error { | 24 | func (m ModuleCompanytData) DoAction(code string, jsondata []byte) error { |
21 | switch code { | 25 | switch code { |
22 | case "edit": | 26 | case "edit": |
27 | + var ( | ||
28 | + data ModuleCompanytData | ||
29 | + err error | ||
30 | + ) | ||
31 | + err = json.Unmarshal(jsondata, &data) | ||
32 | + if err != nil { | ||
33 | + return fmt.Errorf("数据解析失败:%s", err) | ||
34 | + } | ||
35 | + return UpdateCompanyData(data) | ||
23 | case "setCompanyCharge": | 36 | case "setCompanyCharge": |
37 | + var ( | ||
38 | + data ModuleCompanytData | ||
39 | + err error | ||
40 | + ) | ||
41 | + err = json.Unmarshal(jsondata, &data) | ||
42 | + if err != nil { | ||
43 | + return fmt.Errorf("数据解析失败:%s", err) | ||
44 | + } | ||
45 | + return SetCompanyCharge(data) | ||
24 | default: | 46 | default: |
25 | return errors.New("action not found") | 47 | return errors.New("action not found") |
26 | } | 48 | } |
49 | + // return nil | ||
50 | +} | ||
51 | + | ||
52 | +// SetCompanyCharge 更新公司那一级的部门的管理员 | ||
53 | +func SetCompanyCharge(data ModuleCompanytData) error { | ||
54 | + var ( | ||
55 | + err error | ||
56 | + companyData *models.Company | ||
57 | + departmentData *models.Department | ||
58 | + ) | ||
59 | + companyData, err = models.GetCompanyByUCenter(data.Id) | ||
60 | + if err != nil { | ||
61 | + log.Error("获取公司数据失败,user_center_id=%d,err:%s", data.Id, err) | ||
62 | + return errors.New("获取公司数据失败") | ||
63 | + } | ||
64 | + departmentData, err = models.GetTopDepartmentByCompany(companyData.Id) | ||
65 | + if err != nil { | ||
66 | + log.Error("获取公司一级部门数据失败,company_id=%d, err:%s", companyData.Id, err) | ||
67 | + return errors.New("获取公司一级部门数据失败") | ||
68 | + } | ||
69 | + // 获取公司管理员 | ||
70 | + o := orm.NewOrm() | ||
71 | + o.Begin() | ||
72 | + err = models.ChangeDepartmentCharge(data.Id, departmentData.Id, data.Charge, o) | ||
73 | + if err != nil { | ||
74 | + o.Rollback() | ||
75 | + log.Error("变更公司管理员失败,err:%s", err) | ||
76 | + return errors.New("变更公司管理员失败") | ||
77 | + } | ||
78 | + //更新department数据 | ||
79 | + bt, _ := json.Marshal(data.Charge) | ||
80 | + departmentData.Manages = string(bt) | ||
81 | + err = models.UpdateDepartmentById(departmentData, []string{"Manages"}, o) | ||
82 | + if err != nil { | ||
83 | + o.Rollback() | ||
84 | + log.Error("变更公司管理员失败,err:%s", err) | ||
85 | + return errors.New("变更公司管理员失败") | ||
86 | + } | ||
87 | + o.Commit() | ||
88 | + return nil | ||
89 | +} | ||
90 | + | ||
91 | +func UpdateCompanyData(data ModuleCompanytData) error { | ||
27 | return nil | 92 | return nil |
28 | } | 93 | } |
@@ -15,12 +15,13 @@ import ( | @@ -15,12 +15,13 @@ import ( | ||
15 | 15 | ||
16 | // ModuleDeparmentData 主管理平台发送过来的数据 | 16 | // ModuleDeparmentData 主管理平台发送过来的数据 |
17 | type ModuleDeparmentData struct { | 17 | type ModuleDeparmentData struct { |
18 | - Id int64 `json:"id"` //id | ||
19 | - Name string `json:"name"` //部门名称 | ||
20 | - ParentId int64 `json:"parent_id"` //父级id | ||
21 | - CompanyId int64 `json:"company_id"` | ||
22 | - Path string `json:"path"` | ||
23 | - Level int `json:"level"` | 18 | + Id int64 `json:"id"` //id |
19 | + Name string `json:"name"` //部门名称 | ||
20 | + ParentId int64 `json:"parent_id"` //父级id | ||
21 | + CompanyId int64 `json:"company_id"` | ||
22 | + Path string `json:"path"` | ||
23 | + Level int `json:"level"` | ||
24 | + Charge []int64 `json:"charge"` //部门主管 | ||
24 | } | 25 | } |
25 | 26 | ||
26 | var _ PlatformAction = ModuleDeparmentData{} | 27 | var _ PlatformAction = ModuleDeparmentData{} |
@@ -163,9 +164,9 @@ func departmentRelationUpdate(departmentUpdate models.Department, newparent mode | @@ -163,9 +164,9 @@ func departmentRelationUpdate(departmentUpdate models.Department, newparent mode | ||
163 | for i := range departmentSubset { | 164 | for i := range departmentSubset { |
164 | err = models.UpdateDepartmentById(departmentSubset[i], []string{"ParentId", "Relation"}, o) | 165 | err = models.UpdateDepartmentById(departmentSubset[i], []string{"ParentId", "Relation"}, o) |
165 | if err != nil { | 166 | if err != nil { |
166 | - log.Error("更新position发生错误,bussiness_admin_id=%d,id=%d,err:%s", departmentSubset[i].BusinessAdminId, departmentSubset[i].Id, err) | 167 | + log.Error("更新position发生错误,bussiness_admin_id=%d,id=%d,err:%s", departmentSubset[i].BusinessDepartmentId, departmentSubset[i].Id, err) |
167 | o.Rollback() | 168 | o.Rollback() |
168 | - return fmt.Errorf("更新position发生错误,bussiness_admin_id=%d", departmentSubset[i].BusinessAdminId) | 169 | + return fmt.Errorf("更新position发生错误,bussiness_admin_id=%d", departmentSubset[i].BusinessDepartmentId) |
169 | } | 170 | } |
170 | } | 171 | } |
171 | o.Commit() | 172 | o.Commit() |
@@ -164,9 +164,9 @@ func positionRelationUpdate(positionUpdate models.Position, newparent models.Pos | @@ -164,9 +164,9 @@ func positionRelationUpdate(positionUpdate models.Position, newparent models.Pos | ||
164 | for i := range positionSubset { | 164 | for i := range positionSubset { |
165 | err = models.UpdatePositionById(positionSubset[i], []string{"ParentId", "Relation"}, o) | 165 | err = models.UpdatePositionById(positionSubset[i], []string{"ParentId", "Relation"}, o) |
166 | if err != nil { | 166 | if err != nil { |
167 | - log.Error("更新position发生错误,bussiness_admin_id=%d,id=%d,err:%s", positionSubset[i].BusinessAdminId, positionSubset[i].Id, err) | 167 | + log.Error("更新position发生错误,bussiness_admin_id=%d,id=%d,err:%s", positionSubset[i].BusinessPositionId, positionSubset[i].Id, err) |
168 | o.Rollback() | 168 | o.Rollback() |
169 | - return fmt.Errorf("更新position发生错误,bussiness_admin_id=%d", positionSubset[i].BusinessAdminId) | 169 | + return fmt.Errorf("更新position发生错误,bussiness_admin_id=%d", positionSubset[i].BusinessPositionId) |
170 | } | 170 | } |
171 | } | 171 | } |
172 | o.Commit() | 172 | o.Commit() |
-
请 注册 或 登录 后发表评论