作者 tangxvhui

bug 修复

@@ -52,14 +52,17 @@ func (c PlatformController) CompanyAdminChance() { @@ -52,14 +52,17 @@ func (c PlatformController) CompanyAdminChance() {
52 if err := json.Unmarshal(c.Ctx.Input.RequestBody, &param); err != nil { 52 if err := json.Unmarshal(c.Ctx.Input.RequestBody, &param); err != nil {
53 e := fmt.Errorf("json 解析失败 err:%s", err) 53 e := fmt.Errorf("json 解析失败 err:%s", err)
54 log.Error(e.Error()) 54 log.Error(e.Error())
  55 + msg.Errno = "0"
55 msg.Errmsg = e.Error() 56 msg.Errmsg = e.Error()
56 return 57 return
57 } 58 }
58 err := platform.AdminChance(param.CompanyId, param.Phone) 59 err := platform.AdminChance(param.CompanyId, param.Phone)
59 if err != nil { 60 if err != nil {
60 log.Error("总后台调用CompanyAdminChance发生错误;%s", err) 61 log.Error("总后台调用CompanyAdminChance发生错误;%s", err)
  62 + msg.Errno = "-1"
61 msg.Errmsg = err.Error() 63 msg.Errmsg = err.Error()
62 } 64 }
  65 + msg.Errno = "0"
63 c.Data["json"] = msg 66 c.Data["json"] = msg
64 c.ServeJSON() 67 c.ServeJSON()
65 return 68 return
1 package platform 1 package platform
2 2
3 import ( 3 import (
  4 + "errors"
4 "fmt" 5 "fmt"
5 "oppmg/common/log" 6 "oppmg/common/log"
6 "oppmg/models" 7 "oppmg/models"
@@ -17,6 +18,7 @@ func AdminChance(companyid int64, phone string) error { @@ -17,6 +18,7 @@ func AdminChance(companyid int64, phone string) error {
17 err error 18 err error
18 newCharge *models.UserCompany 19 newCharge *models.UserCompany
19 oldCharge *models.UserCompany 20 oldCharge *models.UserCompany
  21 + defaultRole *models.Role
20 ) 22 )
21 companyData, err = models.GetCompanyByUCenter(companyid) 23 companyData, err = models.GetCompanyByUCenter(companyid)
22 if err != nil { 24 if err != nil {
@@ -30,6 +32,12 @@ func AdminChance(companyid int64, phone string) error { @@ -30,6 +32,12 @@ func AdminChance(companyid int64, phone string) error {
30 log.Error(err.Error()) 32 log.Error(err.Error())
31 return e 33 return e
32 } 34 }
  35 + defaultRole, err = models.GetCompanyDefaultRole(companyid)
  36 + if err != nil {
  37 + e := fmt.Errorf("变更主管理员角色失败:err:%s", err)
  38 + log.Error(e.Error())
  39 + return errors.New("变更主管理员角色失败")
  40 + }
33 newCharge, err = models.GetUserCompanyBy(userData.Id, companyData.Id) 41 newCharge, err = models.GetUserCompanyBy(userData.Id, companyData.Id)
34 if err != nil { 42 if err != nil {
35 e := fmt.Errorf("获取用户和公司的对应关系数据失败,user_id:%d,company_id:%d", userData.Id, companyData.Id) 43 e := fmt.Errorf("获取用户和公司的对应关系数据失败,user_id:%d,company_id:%d", userData.Id, companyData.Id)
@@ -52,8 +60,8 @@ func AdminChance(companyid int64, phone string) error { @@ -52,8 +60,8 @@ func AdminChance(companyid int64, phone string) error {
52 log.Error(e.Error()) 60 log.Error(e.Error())
53 return e 61 return e
54 } 62 }
55 - newCharge.ChargeStatus = models.USERCOMPANY_CHARGE_YES  
56 - oldCharge.ChargeStatus = models.USERCOMPANY_CHARGE_NO 63 + newCharge.AdminType = models.USERCOMPANY_ADMIN_MAIN
  64 + oldCharge.AdminType = models.USERCOMPANY_ADMIN_SUBSET
57 err = models.UpdateUserCompanyById(newCharge, []string{"ChargeStatus"}, o) 65 err = models.UpdateUserCompanyById(newCharge, []string{"ChargeStatus"}, o)
58 if err != nil { 66 if err != nil {
59 o.Rollback() 67 o.Rollback()
@@ -68,6 +76,20 @@ func AdminChance(companyid int64, phone string) error { @@ -68,6 +76,20 @@ func AdminChance(companyid int64, phone string) error {
68 log.Error(e.Error()) 76 log.Error(e.Error())
69 return e 77 return e
70 } 78 }
  79 + //更新主管理员角色
  80 + _, err = o.QueryTable(&models.UserRole{}).
  81 + Filter("role_id", defaultRole.Id).
  82 + Filter("company_id", companyid).
  83 + Filter("user_company_id", oldCharge.Id).
  84 + Filter("enable_status", models.USER_ROLE_ENABLE_YES).
  85 + Update(orm.Params{
  86 + "user_company_id": newCharge.Id,
  87 + })
  88 + if err != nil {
  89 + e := fmt.Errorf("变更主管理员角色失败:%s", err)
  90 + log.Error(e.Error())
  91 + return errors.New("变更主管理员角色失败")
  92 + }
71 o.Commit() 93 o.Commit()
72 return nil 94 return nil
73 } 95 }
@@ -118,6 +118,7 @@ func UpdateCompanyData(data ModuleCompanytData) error { @@ -118,6 +118,7 @@ func UpdateCompanyData(data ModuleCompanytData) error {
118 companyData *models.Company 118 companyData *models.Company
119 err error 119 err error
120 topDepartment *models.Department 120 topDepartment *models.Department
  121 + defaultRole *models.Role
121 ) 122 )
122 newCompanyData := data.Company 123 newCompanyData := data.Company
123 companyData, err = models.GetCompanyByUCenter(newCompanyData.AdminCompanyId) 124 companyData, err = models.GetCompanyByUCenter(newCompanyData.AdminCompanyId)
@@ -142,11 +143,17 @@ func UpdateCompanyData(data ModuleCompanytData) error { @@ -142,11 +143,17 @@ func UpdateCompanyData(data ModuleCompanytData) error {
142 log.Error("获取公司一级数据失败,company_id=%d,err:%s", companyData.Id, err) 143 log.Error("获取公司一级数据失败,company_id=%d,err:%s", companyData.Id, err)
143 return errors.New("获取公司一级数据失败") 144 return errors.New("获取公司一级数据失败")
144 } 145 }
  146 + defaultRole, err = models.GetCompanyDefaultRole(companyData.Id)
  147 + if err != nil {
  148 + e := fmt.Errorf("变更主管理员角色失败:err:%s", err)
  149 + log.Error(e.Error())
  150 + return errors.New("变更主管理员角色失败")
  151 + }
145 o := orm.NewOrm() 152 o := orm.NewOrm()
146 o.Begin() 153 o.Begin()
147 if data.User.Id != oldAdminData.Id { 154 if data.User.Id != oldAdminData.Id {
148 //更新公司主管理员 155 //更新公司主管理员
149 - oldAdminData.ChargeStatus = models.USERCOMPANY_CHARGE_NO 156 + oldAdminData.AdminType = models.USERCOMPANY_ADMIN_SUBSET
150 err = models.UpdateUserCompanyById(oldAdminData, []string{"ChargeStatus"}, o) 157 err = models.UpdateUserCompanyById(oldAdminData, []string{"ChargeStatus"}, o)
151 if err != nil { 158 if err != nil {
152 o.Rollback() 159 o.Rollback()
@@ -160,7 +167,7 @@ func UpdateCompanyData(data ModuleCompanytData) error { @@ -160,7 +167,7 @@ func UpdateCompanyData(data ModuleCompanytData) error {
160 log.Error("获取新的主管理员失败,user_company_id=%d,err:%s", data.User.Id, err) 167 log.Error("获取新的主管理员失败,user_company_id=%d,err:%s", data.User.Id, err)
161 return errors.New("获取新的主管理员") 168 return errors.New("获取新的主管理员")
162 } 169 }
163 - newAdminData.ChargeStatus = models.USERCOMPANY_CHARGE_YES 170 + newAdminData.AdminType = models.USERCOMPANY_ADMIN_MAIN
164 err = models.UpdateUserCompanyById(newAdminData, []string{"ChargeStatus"}, o) 171 err = models.UpdateUserCompanyById(newAdminData, []string{"ChargeStatus"}, o)
165 if err != nil { 172 if err != nil {
166 o.Rollback() 173 o.Rollback()
@@ -168,6 +175,20 @@ func UpdateCompanyData(data ModuleCompanytData) error { @@ -168,6 +175,20 @@ func UpdateCompanyData(data ModuleCompanytData) error {
168 return errors.New("变更主管理员失败") 175 return errors.New("变更主管理员失败")
169 } 176 }
170 companyData.AdminId = newAdminData.UserId 177 companyData.AdminId = newAdminData.UserId
  178 + //更新主管理员角色
  179 + _, err = o.QueryTable(&models.UserRole{}).
  180 + Filter("role_id", defaultRole.Id).
  181 + Filter("company_id", companyData.Id).
  182 + Filter("user_company_id", oldAdminData.Id).
  183 + Filter("enable_status", models.USER_ROLE_ENABLE_YES).
  184 + Update(orm.Params{
  185 + "user_company_id": newAdminData.Id,
  186 + })
  187 + if err != nil {
  188 + e := fmt.Errorf("变更主管理员角色失败:%s", err)
  189 + log.Error(e.Error())
  190 + return errors.New("变更主管理员角色失败")
  191 + }
171 } 192 }
172 companyData.Logo = newCompanyData.Logo 193 companyData.Logo = newCompanyData.Logo
173 companyData.Name = newCompanyData.Name 194 companyData.Name = newCompanyData.Name
@@ -185,6 +206,7 @@ func UpdateCompanyData(data ModuleCompanytData) error { @@ -185,6 +206,7 @@ func UpdateCompanyData(data ModuleCompanytData) error {
185 log.Error("更新公司一级部门数据失败:%s", err) 206 log.Error("更新公司一级部门数据失败:%s", err)
186 return errors.New("更新公司一级部门数据失败") 207 return errors.New("更新公司一级部门数据失败")
187 } 208 }
  209 +
188 o.Commit() 210 o.Commit()
189 return nil 211 return nil
190 } 212 }