|
@@ -8,6 +8,8 @@ package dao
|
|
|
|
|
|
import (
|
|
|
"errors"
|
|
|
+ "log"
|
|
|
+ "time"
|
|
|
|
|
|
"github.com/go-xorm/xorm"
|
|
|
"go.mod/models"
|
|
@@ -151,14 +153,103 @@ func (d *ProjectAccountDao) Search(name string, projectId int) []models.CmProjec
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func (d *ProjectAccountDao) JlSync(accountList []map[string]interface{}) error {
|
|
|
- // for _, data := range accountList {
|
|
|
- // //if data.IsAdmin != 1 {
|
|
|
- // account := comm.MakeProjectAccountVM(&data)
|
|
|
+// 同步计量账号
|
|
|
+func (d *ProjectAccountDao) JlSync(accountList []map[string]interface{}, projectId int) error {
|
|
|
+
|
|
|
+ var (
|
|
|
+ accountName string
|
|
|
+ err error
|
|
|
+ flag bool
|
|
|
+ accountItemId int
|
|
|
+ )
|
|
|
+
|
|
|
+ accountListNow := make([]models.CmProjectAccount, 0)
|
|
|
+ err = d.engine.
|
|
|
+ Where("project_id=? ", projectId).
|
|
|
+ Find(&accountListNow)
|
|
|
+
|
|
|
+ session := d.engine.NewSession()
|
|
|
+ defer session.Close()
|
|
|
+ err = session.Begin()
|
|
|
+ if err != nil {
|
|
|
+ return errors.New("同步出错-db")
|
|
|
+ }
|
|
|
+
|
|
|
+ // 库里没有账号数据,全部新增
|
|
|
+ if len(accountListNow) == 0 {
|
|
|
+ for _, item := range accountList {
|
|
|
+ accountGroup := int(item["accountGroup"].(float64))
|
|
|
+ // 新增
|
|
|
+ account := &models.CmProjectAccount{}
|
|
|
+ account.JlAuth = 1
|
|
|
+ account.ProjectId = projectId
|
|
|
+ account.Account = item["account"].(string)
|
|
|
+ account.Password = "JL"
|
|
|
+ account.AccountGroup = accountGroup
|
|
|
+ account.Name = item["name"].(string)
|
|
|
+ account.Company = item["company"].(string)
|
|
|
+ account.Position = item["role"].(string)
|
|
|
+ account.Mobile = item["mobile"].(string)
|
|
|
+ account.Telephone = item["telephone"].(string)
|
|
|
+ account.Enable = 1
|
|
|
+ account.CreateTime = time.Now()
|
|
|
+ if _, err = session.Insert(account); err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ log.Println("同步计量账号新增 error=", err)
|
|
|
+ return errors.New("创建账号出错")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 有数据 存在的授权,不存新增
|
|
|
+ } else {
|
|
|
+ for _, item := range accountList {
|
|
|
+ accountGroup := int(item["accountGroup"].(float64))
|
|
|
+ accountName = item["account"].(string)
|
|
|
+ flag = false
|
|
|
+ for _, accountItem := range accountListNow {
|
|
|
+ // 已存在相同账号
|
|
|
+ if accountItem.Account == accountName {
|
|
|
+ accountItemId = accountItem.Id
|
|
|
+ flag = true
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if flag {
|
|
|
+ if _, err = session.Exec("UPDATE cm_project_account SET `jl_auth` = 1 where id = ? ", accountItemId); err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ log.Println("同步计量账号 授权 error=", err)
|
|
|
+ return errors.New("账号授权出错")
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 新增
|
|
|
+ account := &models.CmProjectAccount{}
|
|
|
+ account.JlAuth = 1
|
|
|
+ account.ProjectId = projectId
|
|
|
+ account.Account = accountName
|
|
|
+ account.Password = "JL"
|
|
|
+ account.AccountGroup = accountGroup
|
|
|
+ account.Name = item["name"].(string)
|
|
|
+ account.Company = item["company"].(string)
|
|
|
+ account.Position = item["role"].(string)
|
|
|
+ account.Mobile = item["mobile"].(string)
|
|
|
+ account.Telephone = item["telephone"].(string)
|
|
|
+ account.Enable = 1
|
|
|
+ account.CreateTime = time.Now()
|
|
|
+ if _, err = session.Insert(account); err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ log.Println("同步计量账号新增 error=", err)
|
|
|
+ return errors.New("创建账号出错")
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 过滤已存在的账号-项目但没有授权的,设置为授权
|
|
|
+
|
|
|
+ if err = session.Commit(); err != nil {
|
|
|
+ session.Rollback()
|
|
|
+ return errors.New("移动出错-db")
|
|
|
+ }
|
|
|
|
|
|
- // accountListVM = append(accountListVM, account)
|
|
|
- // //}
|
|
|
- // }
|
|
|
return nil
|
|
|
}
|
|
|
|