作者 tangxvhui

调整

... ... @@ -22,6 +22,7 @@ type Department struct {
UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"`
Manages string `orm:"column(managers)" description:"部门负责人id列表 json 数组 []"` //存user_company_id
IsTop int8 `orm:"column(is_top)" `
Level int `orm:"column(level)" `
}
func (t *Department) TableName() string {
... ...
... ... @@ -17,7 +17,7 @@ type Position struct {
UpdateAt time.Time `orm:"column(update_at);type(timestamp)" description:"更新时间"`
DeleteAt time.Time `orm:"column(delete_at);type(timestamp)" description:"删除时间"`
EnableStatus string `orm:"column(enable_status);size(255)" description:"有效状态 1:有效 0:无效"`
//关联企业总后台的id
Level int `orm:"column(level)"`
}
//关联企业总后台的id
... ...
... ... @@ -13,12 +13,12 @@ import (
// ModuleDeparmentData 主管理平台发送过来的数据
type ModuleDeparmentData struct {
Id int64 `json:"id"` //id
Name string `json:"name"` //部门名称
ParentId int64 `json:"parent_id"` //父级id
CompanyId int64 `json:"company_id"`
Relation string `json:"relation"`
Manages []int64 `json:"manages"`
Id int64 `json:"id"` //id
Name string `json:"name"` //部门名称
ParentId int64 `json:"parent_id"` //父级id
CompanyId int64 `json:"company_id"`
Path string `json:"path"`
Level int `json:"level"`
}
var _ PlatformAction = ModuleDeparmentData{}
... ... @@ -28,7 +28,7 @@ func (m ModuleDeparmentData) DoAction(code string, jsondata []byte) error {
switch code {
case "edit":
var (
data []ModuleDeparmentData
data ModuleDeparmentData
err error
)
err = json.Unmarshal(jsondata, &data)
... ... @@ -38,7 +38,7 @@ func (m ModuleDeparmentData) DoAction(code string, jsondata []byte) error {
return UpdateDepartmentData(data)
case "add":
var (
data []ModuleDeparmentData
data ModuleDeparmentData
err error
)
err = json.Unmarshal(jsondata, &data)
... ... @@ -68,80 +68,64 @@ func (m ModuleDeparmentData) DoAction(code string, jsondata []byte) error {
//同步 部门数据
//UpdateDepartmentData ....
func UpdateDepartmentData(data []ModuleDeparmentData) error {
func UpdateDepartmentData(data ModuleDeparmentData) error {
var (
departmentData *models.Department
err error
)
o := orm.NewOrm()
o.Begin()
for _, v := range data {
departmentData, err = models.GetDepartmentById(v.Id)
if err != nil {
e := fmt.Errorf("获取部门数据失败,err:%s", err)
log.Error(e.Error())
return errors.New("获取部门数据失败")
}
departmentData.Name = v.Name
departmentData.ParentId = v.ParentId
departmentData.Relation = v.Relation
if bt, err := json.Marshal(v.Manages); err == nil {
departmentData.Manages = string(bt)
}
err = models.UpdateDepartmentById(departmentData, []string{"Name", "Manage", "ParentId", "Relation"}, o)
if err != nil {
o.Rollback()
e := fmt.Errorf("更新部门数据失败,err:%s", err)
log.Error(e.Error())
return errors.New("更新部门数据失败")
}
departmentData, err = models.GetDepartmentById(data.Id)
if err != nil {
e := fmt.Errorf("获取部门数据失败,err:%s", err)
log.Error(e.Error())
return errors.New("获取部门数据失败")
}
departmentData.Name = data.Name
departmentData.ParentId = data.ParentId
departmentData.Relation = data.Path
departmentData.Level = data.Level
err = models.UpdateDepartmentById(departmentData, []string{"Name", "Manage", "ParentId", "Relation"})
if err != nil {
e := fmt.Errorf("更新部门数据失败,err:%s", err)
log.Error(e.Error())
return errors.New("更新部门数据失败")
}
o.Commit()
return nil
}
//AddDepartmentData ...
func AddDepartmentData(data []ModuleDeparmentData) error {
if len(data) == 0 {
return nil
}
func AddDepartmentData(data ModuleDeparmentData) error {
var (
companyinfo *models.Company
err error
)
companyinfo, err = models.GetCompanyByUCenter(data[0].CompanyId)
companyinfo, err = models.GetCompanyByUCenter(data.CompanyId)
if err != nil {
e := fmt.Errorf("获取公司数据失败,err:%s", err)
e := fmt.Errorf("获取公司数据失败,id=%d,err:%s", data.CompanyId, err)
log.Error(e.Error())
return errors.New("获取公司数据失败")
}
o := orm.NewOrm()
o.Begin()
var isRollback bool
for _, v := range data {
departmentData := &models.Department{
Id: v.Id,
CompanyId: companyinfo.Id,
Name: v.Name,
ParentId: v.ParentId,
Manages: "[]",
Relation: v.Relation, //TODO 格式转化
}
if bt, err := json.Marshal(v.Manages); err == nil {
departmentData.Manages = string(bt)
}
_, err = models.AddDepartment(departmentData, o)
if err != nil {
e := fmt.Errorf("存储部门数据失败,err:%s", err)
log.Error(e.Error())
isRollback = true
}
departmentData := &models.Department{
Id: data.Id,
CompanyId: companyinfo.Id,
Name: data.Name,
ParentId: data.ParentId,
Manages: "[]",
Relation: data.Path, //TODO 格式转化
Level: data.Level,
}
if isRollback {
o.Rollback()
return errors.New("存储部门数据失败")
_, err = models.AddDepartment(departmentData)
if err != nil {
e := fmt.Errorf("存储部门数据失败,err:%s", err)
log.Error(e.Error())
}
o.Commit()
return nil
}
... ...
... ... @@ -13,10 +13,11 @@ import (
type ModulePositionData struct {
Id int64 `json:"id"`
Name string `json:"nick_name"`
Name string `json:"name"`
ParentId int64 `json:"parent_id"`
CompanyId int64 `json:"company_id"`
Relation string `json:"relation"`
Path string `json:"path"`
Level int `json:"level"`
}
var _ PlatformAction = ModulePositionData{}
... ... @@ -27,7 +28,7 @@ func (m ModulePositionData) DoAction(code string, jsondata []byte) error {
case "edit":
var (
err error
data []ModulePositionData
data ModulePositionData
)
err = json.Unmarshal(jsondata, &data)
if err != nil {
... ... @@ -36,7 +37,7 @@ func (m ModulePositionData) DoAction(code string, jsondata []byte) error {
return UpdatePosition(data)
case "add":
var (
data []ModulePositionData
data ModulePositionData
err error
)
err = json.Unmarshal(jsondata, &data)
... ... @@ -47,17 +48,19 @@ func (m ModulePositionData) DoAction(code string, jsondata []byte) error {
case "delete":
var (
err error
ids []int64
)
ids := struct {
Ids []int64 `json:"ids"`
}{}
err = json.Unmarshal(jsondata, &ids)
if err != nil {
return fmt.Errorf("数据解析失败:%s", err)
}
if len(ids) == 0 {
return fmt.Errorf("参数错误")
if len(ids.Ids) == 0 {
return fmt.Errorf("没有删除项")
}
return DeletePosition(ids)
return DeletePosition(ids.Ids)
default:
return errors.New("action not found")
}
... ... @@ -73,29 +76,21 @@ func (m ModulePositionData) validate() error {
return nil
}
//同步职位数据
func UpdatePosition(data []ModulePositionData) error {
if len(data) == 0 {
return nil
//UpdatePosition 同步职位数据
//TODO 父级数据变更
func UpdatePosition(data ModulePositionData) error {
positioninfo, err := models.GetPositionById(data.Id)
if err != nil {
log.Error("获取职位数据失败:%s", err)
return fmt.Errorf("获取职位数据失败,Id=%d", data.Id)
}
o := orm.NewOrm()
o.Begin()
for _, v := range data {
positioninfo, err := models.GetPositionById(v.Id)
if err != nil {
log.Error("获取职位数据失败:%s", err)
return fmt.Errorf("获取职位数据失败,Id=%d", v.Id)
}
positioninfo.Name = v.Name
positioninfo.ParentId = v.ParentId
positioninfo.Relation = v.Relation
err = models.UpdatePositionById(positioninfo, []string{"Name", "ParentId", "Relation"}, o)
if err != nil {
o.Rollback()
return err
}
positioninfo.Name = data.Name
// positioninfo.ParentId = data.ParentId
// positioninfo.Relation = data.Path
err = models.UpdatePositionById(positioninfo, []string{"Name"})
if err != nil {
return err
}
o.Commit()
return nil
}
... ... @@ -152,42 +147,31 @@ func UpdatePosition(data []ModulePositionData) error {
// return nil
// }
func AddPosition(data []ModulePositionData) error {
if len(data) == 0 {
return nil
}
func AddPosition(data ModulePositionData) error {
var (
companyinfo *models.Company
err error
isRollback bool
)
companyinfo, err = models.GetCompanyByUCenter(data[0].CompanyId)
companyinfo, err = models.GetCompanyByUCenter(data.CompanyId)
if err != nil {
log.Error("获取公司数据失败:s%", err)
return errors.New("无效公司")
}
o := orm.NewOrm()
o.Begin()
for _, v := range data {
positioninfo := &models.Position{
Id: v.Id,
Name: v.Name,
ParentId: v.ParentId,
CompanyId: companyinfo.Id,
Relation: v.Relation, //TODO 格式转换
}
_, err = models.AddPosition(positioninfo)
if err != nil {
log.Error("添加职位失败:%s", err)
isRollback = true
break
}
positioninfo := &models.Position{
Id: data.Id,
Name: data.Name,
ParentId: data.ParentId,
CompanyId: companyinfo.Id,
Relation: data.Path, //TODO 格式转换
Level: data.Level,
}
if isRollback {
o.Rollback()
_, err = models.AddPosition(positioninfo)
if err != nil {
log.Error("添加职位失败:%s", err)
return errors.New("添加职位失败")
}
o.Commit()
return nil
}
... ...