caipin 4 years ago
parent
commit
a790fe1b84

+ 6 - 0
dao/group_dao.go

@@ -21,6 +21,12 @@ func NewGroupDao(engine *xorm.Engine) *GroupDao {
 	}
 	}
 }
 }
 
 
+// 新增
+func (d *GroupDao) Add(data *models.CmGroup) error {
+	_, err := d.engine.Insert(data)
+	return err
+}
+
 //获得全部管理员数据
 //获得全部管理员数据
 func (d *GroupDao) GetAll() (data []models.CmGroup, total int64) {
 func (d *GroupDao) GetAll() (data []models.CmGroup, total int64) {
 
 

+ 13 - 0
dao/project_account_dao.go

@@ -68,6 +68,19 @@ func (d *ProjectAccountDao) GetAccountProjectId(account string, projectId int) *
 	}
 	}
 }
 }
 
 
+func (d *ProjectAccountDao) GetAdmin(projectId int) *models.CmProjectAccount {
+	data := &models.CmProjectAccount{}
+	ok, err := d.engine.
+		Where("is_admin = 1 and project_id = ?", projectId).
+		Get(data)
+	if ok && err == nil {
+		return data
+	} else {
+		data.Id = 0
+		return data
+	}
+}
+
 //id获得数据
 //id获得数据
 func (d *ProjectAccountDao) Get(id int, projectId int) *models.CmProjectAccount {
 func (d *ProjectAccountDao) Get(id int, projectId int) *models.CmProjectAccount {
 	data := &models.CmProjectAccount{Id: id, ProjectId: projectId}
 	data := &models.CmProjectAccount{Id: id, ProjectId: projectId}

+ 4 - 1
datasource/dbhelper.go

@@ -44,9 +44,12 @@ func NewDbMaster() *xorm.Engine {
 	debug := GetEnvInfo("DEBUG")
 	debug := GetEnvInfo("DEBUG")
 	configFilePrefix := "config"
 	configFilePrefix := "config"
 	configFileName := fmt.Sprintf("%s-pro.yaml", configFilePrefix)
 	configFileName := fmt.Sprintf("%s-pro.yaml", configFilePrefix)
-	fmt.Println(debug)
+
 	if debug {
 	if debug {
+		fmt.Println("读取QA配置文件成功")
 		configFileName = fmt.Sprintf("%s-debug.yaml", configFilePrefix)
 		configFileName = fmt.Sprintf("%s-debug.yaml", configFilePrefix)
+	} else {
+		fmt.Println("读取PROD配置文件成功")
 	}
 	}
 
 
 	v := viper.New()
 	v := viper.New()

+ 17 - 5
services/group_service.go

@@ -7,7 +7,9 @@
 package services
 package services
 
 
 import (
 import (
+	"fmt"
 	"strconv"
 	"strconv"
+	"time"
 
 
 	"go.mod/comm"
 	"go.mod/comm"
 	"go.mod/conf"
 	"go.mod/conf"
@@ -20,11 +22,7 @@ import (
 //定义管理员Service接口
 //定义管理员Service接口
 type GroupService interface {
 type GroupService interface {
 	GetAll() (dataList []viewmodels.Group, total int64)
 	GetAll() (dataList []viewmodels.Group, total int64)
-	// CountAll() int64
-	// Get(id int) *viewmodels.Manager
-	// Update(data *models.CmManager, columns []string) error
-	// Create(data *models.CmManager) error
-	// Enable(id int, canLogin int) error
+	Add(dataVM viewmodels.Group) error
 }
 }
 
 
 //返回service操作类
 //返回service操作类
@@ -53,6 +51,20 @@ func (s *groupService) GetAll() (data []viewmodels.Group, total int64) {
 	return datalist, total
 	return datalist, total
 }
 }
 
 
+func (s *groupService) Add(dataVM viewmodels.Group) error {
+	project := &models.CmGroup{}
+	project.Name = dataVM.Name
+	// project.Permission = dataVM.Permission
+	project.Remark = dataVM.Remark
+	project.CreateTime = time.Now()
+
+	fmt.Println(dataVM.Permission)
+
+	// err := s.dao.Add(project)
+	// return err
+	return nil
+}
+
 // 构造视图层models
 // 构造视图层models
 func makeGroupVM(projectCM *models.CmGroup) viewmodels.Group {
 func makeGroupVM(projectCM *models.CmGroup) viewmodels.Group {
 	modelsVM := viewmodels.Group{}
 	modelsVM := viewmodels.Group{}

+ 53 - 1
services/project_account_service.go

@@ -38,6 +38,7 @@ type ProjectAccountService interface {
 	GetBidAccount(bidsectionId int, projectId int, projectAccountId int, name string) []viewmodels.ProjectAccount
 	GetBidAccount(bidsectionId int, projectId int, projectAccountId int, name string) []viewmodels.ProjectAccount
 	Search(name string, projectId int) []viewmodels.ProjectAccount
 	Search(name string, projectId int) []viewmodels.ProjectAccount
 	AddBs(viewAccount viewmodels.ProjectAccount, projectId int) error
 	AddBs(viewAccount viewmodels.ProjectAccount, projectId int) error
+	SaveBs(viewAccount viewmodels.ProjectAccount, id int, projectId int) error
 	Add(viewAccount viewmodels.ProjectAccount, projectId int) error
 	Add(viewAccount viewmodels.ProjectAccount, projectId int) error
 	Save(viewAccount viewmodels.ProjectAccount, id int, projectId int) error
 	Save(viewAccount viewmodels.ProjectAccount, id int, projectId int) error
 	SaveAccount(viewAccount viewmodels.ProjectAccount, id int, projectId int) error
 	SaveAccount(viewAccount viewmodels.ProjectAccount, id int, projectId int) error
@@ -301,6 +302,14 @@ func (s *projectAccountService) AddBs(viewAccount viewmodels.ProjectAccount, pro
 	}
 	}
 
 
 	account := models.CmProjectAccount{}
 	account := models.CmProjectAccount{}
+
+	if viewAccount.IsAdmin == 1 {
+		account.IsAdmin = 1
+		if err := s.updateAdminZero(projectId); err != nil {
+			return err
+		}
+	}
+
 	account.ProjectId = projectId
 	account.ProjectId = projectId
 	account.Account = viewAccount.Account
 	account.Account = viewAccount.Account
 	account.Password = comm.CreatePasswordSign(viewAccount.Password, viewAccount.Account)
 	account.Password = comm.CreatePasswordSign(viewAccount.Password, viewAccount.Account)
@@ -310,12 +319,55 @@ func (s *projectAccountService) AddBs(viewAccount viewmodels.ProjectAccount, pro
 	account.Mobile = viewAccount.Mobile
 	account.Mobile = viewAccount.Mobile
 	account.Telephone = viewAccount.Telephone
 	account.Telephone = viewAccount.Telephone
 	account.Enable = 1
 	account.Enable = 1
-	// account.IsAdmin = viewAccount.IsAdmin
 	account.CreateTime = time.Now()
 	account.CreateTime = time.Now()
 	err := s.dao.Add(&account)
 	err := s.dao.Add(&account)
 	return err
 	return err
 }
 }
 
 
+// 保存用户信息
+func (s *projectAccountService) SaveBs(viewAccount viewmodels.ProjectAccount, id int, projectId int) error {
+
+	account := models.CmProjectAccount{}
+	updateField := []string{"name", "company", "position", "telephone", "account_group"}
+	// 是否重新设置管理员
+	if viewAccount.IsAdmin == 1 {
+		account.IsAdmin = viewAccount.IsAdmin
+		updateField = append(updateField, "is_admin")
+
+		if err := s.updateAdminZero(projectId); err != nil {
+			return err
+		}
+	}
+
+	account.Id = id
+	account.ProjectId = projectId
+	account.Name = viewAccount.Name
+	account.Company = viewAccount.Company
+	account.Position = viewAccount.Position
+	account.Mobile = viewAccount.Mobile
+	account.Telephone = viewAccount.Telephone
+	account.AccountGroup = viewAccount.AccountGroup
+
+	err := s.dao.Update(&account, updateField)
+
+	return err
+}
+
+// 设置is_admin为0
+func (s *projectAccountService) updateAdminZero(projectId int) error {
+	dataDao := s.dao.GetAdmin(projectId)
+	if dataDao.Id != 0 {
+		updateData := models.CmProjectAccount{}
+		updateData.Id = dataDao.Id
+		updateData.ProjectId = projectId
+		updateData.IsAdmin = 0
+		if err := s.dao.Update(&updateData, []string{"is_admin"}); err != nil {
+			return errors.New("原管理员取消失败")
+		}
+	}
+	return nil
+}
+
 // 新增账号
 // 新增账号
 func (s *projectAccountService) Add(viewAccount viewmodels.ProjectAccount, projectId int) error {
 func (s *projectAccountService) Add(viewAccount viewmodels.ProjectAccount, projectId int) error {
 
 

+ 5 - 5
web/backstage/group_bs.go

@@ -48,10 +48,10 @@ func (c *GroupBs) PostAdd() {
 		return
 		return
 	}
 	}
 
 
-	// if err := c.GroupService.Add(data); err != nil {
-	// 	c.Ctx.JSON(iris.Map{"code": -1, "msg": err})
-	// 	return
-	// }
+	if err := c.GroupService.Add(data); err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg": err})
+		return
+	}
 
 
-	// c.Ctx.JSON(iris.Map{"code": 0, "msg": "新增成功"})
+	c.Ctx.JSON(iris.Map{"code": 0, "msg": "新增成功"})
 }
 }

+ 1 - 1
web/backstage/project_account_bs.go

@@ -203,7 +203,7 @@ func (c *ProjectAccountBs) PostSave() {
 		return
 		return
 	}
 	}
 
 
-	err = c.ServiceProjectAccount.Save(accountData, id, projectId)
+	err = c.ServiceProjectAccount.SaveBs(accountData, id, projectId)
 	if err != nil {
 	if err != nil {
 		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
 		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
 		return
 		return

+ 4 - 3
web/viewmodels/group.go

@@ -9,9 +9,10 @@ package viewmodels
 import validation "github.com/go-ozzo/ozzo-validation/v3"
 import validation "github.com/go-ozzo/ozzo-validation/v3"
 
 
 type Group struct {
 type Group struct {
-	Id     string `form:"id" json:"id" `
-	Name   string `form:"name" json:"name" `
-	Remark string `form:"remark" json:"remark" `
+	Id         string   `form:"id" json:"id" `
+	Name       string   `form:"name" json:"name" `
+	Remark     string   `form:"remark" json:"remark" `
+	Permission []string `form:"permission" json:"permission" `
 
 
 	CreateTime string `form:"createTime" json:"createTime" `
 	CreateTime string `form:"createTime" json:"createTime" `
 }
 }