caipin 4 年 前
コミット
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) {
 

+ 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获得数据
 func (d *ProjectAccountDao) Get(id int, projectId int) *models.CmProjectAccount {
 	data := &models.CmProjectAccount{Id: id, ProjectId: projectId}

+ 4 - 1
datasource/dbhelper.go

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

+ 17 - 5
services/group_service.go

@@ -7,7 +7,9 @@
 package services
 
 import (
+	"fmt"
 	"strconv"
+	"time"
 
 	"go.mod/comm"
 	"go.mod/conf"
@@ -20,11 +22,7 @@ import (
 //定义管理员Service接口
 type GroupService interface {
 	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操作类
@@ -53,6 +51,20 @@ func (s *groupService) GetAll() (data []viewmodels.Group, total int64) {
 	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
 func makeGroupVM(projectCM *models.CmGroup) 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
 	Search(name string, projectId int) []viewmodels.ProjectAccount
 	AddBs(viewAccount viewmodels.ProjectAccount, projectId int) error
+	SaveBs(viewAccount viewmodels.ProjectAccount, id int, projectId int) error
 	Add(viewAccount viewmodels.ProjectAccount, projectId int) error
 	Save(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{}
+
+	if viewAccount.IsAdmin == 1 {
+		account.IsAdmin = 1
+		if err := s.updateAdminZero(projectId); err != nil {
+			return err
+		}
+	}
+
 	account.ProjectId = projectId
 	account.Account = 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.Telephone = viewAccount.Telephone
 	account.Enable = 1
-	// account.IsAdmin = viewAccount.IsAdmin
 	account.CreateTime = time.Now()
 	err := s.dao.Add(&account)
 	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 {
 

+ 5 - 5
web/backstage/group_bs.go

@@ -48,10 +48,10 @@ func (c *GroupBs) PostAdd() {
 		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
 	}
 
-	err = c.ServiceProjectAccount.Save(accountData, id, projectId)
+	err = c.ServiceProjectAccount.SaveBs(accountData, id, projectId)
 	if err != nil {
 		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
 		return

+ 4 - 3
web/viewmodels/group.go

@@ -9,9 +9,10 @@ package viewmodels
 import validation "github.com/go-ozzo/ozzo-validation/v3"
 
 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" `
 }