caipin vor 4 Jahren
Ursprung
Commit
b8d0352437

+ 61 - 2
dao/project_dao.go

@@ -7,6 +7,8 @@
 package dao
 
 import (
+	"strings"
+
 	"github.com/go-xorm/xorm"
 	"go.mod/models"
 	"go.mod/web/viewmodels"
@@ -51,6 +53,62 @@ func (d *ProjectDao) GetPage(page int, size int) []models.CmProject {
 	return datalist
 }
 
+func (d *ProjectDao) GetPageBsByStaffName(pageData viewmodels.ProjectPage, staffName string) (data []models.CmProject, total int64) {
+	datalist := make([]models.CmProject, 0)
+	page := pageData.Page
+	size := pageData.Size
+	if page == 1 {
+		page = 0
+	} else {
+		page--
+		page = page * size
+	}
+
+	Project := &models.CmProject{}
+
+	sql := ""
+	var args = make([]interface{}, 0)
+
+	if staffName != "" {
+		sql += "staff_name = ?"
+		args = append(args, staffName)
+	}
+
+	if pageData.Search != "" {
+		args = append(args, pageData.Search)
+		args = append(args, pageData.Search)
+		search := "(code like ? or  name like ?)"
+		sql = strings.Join([]string{sql, search}, " and ")
+	}
+
+	count, _ := d.engine.
+		Where(sql, args...).
+		Count(Project)
+	_ = d.engine.
+		Where(sql, args...).
+		Limit(size, page).
+		Find(&datalist)
+	return datalist, count
+
+	// if pageData.Search != "" {
+	// 	count, _ := d.engine.
+	// 		Where(" (code like ? or  name like ?) and staff_name = ? ", arr...).
+	// 		Count(Project)
+	// 	_ = d.engine.
+	// 		Where(" (code like ? or  name like ?)  and staff_name = ? ", pageData.Search, pageData.Search).
+	// 		Limit(size, page).
+	// 		Find(&datalist)
+	// 	return datalist, count
+	// }
+
+	// // Where("project_id = ? and bidsection_id =? and contracts_id=?", projectId, bidsectionId, contractsId).
+	// count, _ := d.engine.Count(Project)
+	// _ = d.engine.
+	// 	Limit(size, page).
+	// 	Find(&datalist)
+	// return datalist, count
+}
+
 func (d *ProjectDao) GetPageBs(pageData viewmodels.ProjectPage) (data []models.CmProject, total int64) {
 	datalist := make([]models.CmProject, 0)
 	page := pageData.Page
@@ -64,9 +122,10 @@ func (d *ProjectDao) GetPageBs(pageData viewmodels.ProjectPage) (data []models.C
 
 	Project := &models.CmProject{}
 
+	// 多余判断
 	InsideCategoryId := ""
-	if len(pageData.InsideCategoryId) > 0 {
-		InsideCategoryId = pageData.InsideCategoryId[0]
+	if pageData.InsideCategoryId != "" {
+		InsideCategoryId = pageData.InsideCategoryId
 	}
 
 	if InsideCategoryId != "" && pageData.Search != "" {

+ 2 - 3
services/backstage_service.go

@@ -8,7 +8,6 @@ package services
 
 import (
 	"errors"
-	"fmt"
 	"log"
 	"net/http"
 	"net/url"
@@ -200,7 +199,7 @@ func (s *backstageService) ValidCldStaff(loginData viewmodels.StaffCld, writer h
 	cld := lib.NewCld()
 	result, err := cld.LoginValid(loginData)
 
-	if managerData.Id != 0 && managerData.GroupId == 1 {
+	if managerData.Id != 0 && managerData.IsAdmin == 1 && managerData.Username == "admin" {
 		result.Data.UserName = "admin"
 		result.Data.Category = "admin"
 		managerData.CanLogin = 1
@@ -217,7 +216,7 @@ func (s *backstageService) ValidCldStaff(loginData viewmodels.StaffCld, writer h
 		if result.Code != 0 {
 			return nil, errors.New(result.Msg)
 		}
-		fmt.Println(result)
+
 		if managerData.Id == 0 {
 			// 写入管理表
 			manager := &models.CmManager{}

+ 4 - 3
services/manager_service.go

@@ -24,7 +24,7 @@ type ManagerService interface {
 	GetAll() (dataList []viewmodels.Manager, total int64)
 	CountAll() int64
 	Get(id int) *viewmodels.Manager
-	Update(id int, groupId int) error
+	Update(data viewmodels.Manager, id int, groupId int) error
 	Create(data *models.CmManager) error
 	Enable(id int, canLogin int) error
 }
@@ -66,7 +66,7 @@ func (s *managerService) Get(id int) *viewmodels.Manager {
 	return &data
 }
 
-func (s *managerService) Update(id int, groupId int) error {
+func (s *managerService) Update(data viewmodels.Manager, id int, groupId int) error {
 
 	// 1.查询是否有该权限组
 	groupDao := dao.NewGroupDao(datasource.InstanceDbMaster())
@@ -78,9 +78,10 @@ func (s *managerService) Update(id int, groupId int) error {
 	updateData := models.CmManager{}
 	updateData.Id = id
 	updateData.GroupId = groupId
+	updateData.IsAdmin = data.IsAdmin
 
 	// 要填写字段名称必须要更新的字段
-	if err := s.dao.Update(&updateData, []string{"group_id"}); err != nil {
+	if err := s.dao.Update(&updateData, []string{"group_id", "is_admin"}); err != nil {
 		fmt.Println(err)
 		return err
 	}

+ 21 - 3
services/project_service.go

@@ -8,6 +8,7 @@ package services
 
 import (
 	"errors"
+	"fmt"
 	"html"
 	"log"
 	"strconv"
@@ -35,7 +36,7 @@ type ProjectService interface {
 	Save(projectId int, projectVM viewmodels.Project) error
 	Add(projectVM viewmodels.Project) error
 	SaveBs(projectVM viewmodels.Project, id int) error
-	GetListBs(pageData viewmodels.ProjectPage) (data []viewmodels.Project, total int64)
+	GetListBs(pageData viewmodels.ProjectPage, staffName string) (data []viewmodels.Project, total int64)
 }
 
 //返回service操作类
@@ -147,12 +148,29 @@ func (s *projectService) GetList(page int, size int) []viewmodels.Project {
 }
 
 // 后端获得列表
-func (s *projectService) GetListBs(pageData viewmodels.ProjectPage) (data []viewmodels.Project, total int64) {
+func (s *projectService) GetListBs(pageData viewmodels.ProjectPage, staffName string) (data []viewmodels.Project, total int64) {
 	if pageData.Size > 100 {
 		pageData.Size = 100
 	}
 	datalist := make([]viewmodels.Project, 0)
-	projectData, count := s.dao.GetPageBs(pageData)
+	// 1.获得管理员信息
+	managerDao := dao.NewManagerDao(datasource.InstanceDbMaster())
+	managerData := managerDao.GetUserName(staffName)
+	if managerData.Id == 0 {
+		return datalist, 0
+	}
+
+	// 未启用--前端做完后启用
+	fmt.Println(staffName)
+	staffName = ""
+	//待启用
+	// if managerData.IsAdmin == 1 {
+	// 	staffName = ""
+	// }
+	//待启用
+
+	projectData, count := s.dao.GetPageBsByStaffName(pageData, staffName)
+
 	for _, data := range projectData {
 		projectVM := makeProjectVM(&data)
 		datalist = append(datalist, projectVM)

+ 1 - 1
web/backstage/manager_bs.go

@@ -110,7 +110,7 @@ func (c *ManagerBs) PostUpdate() {
 		return
 	}
 
-	if err := c.ServiceManager.Update(id, groupId); err != nil {
+	if err := c.ServiceManager.Update(data, id, groupId); err != nil {
 		c.Ctx.JSON(iris.Map{"code": -1, "msg": err})
 		return
 	}

+ 7 - 1
web/backstage/project_bs.go

@@ -50,8 +50,14 @@ func (c *ProjectBs) PostList() {
 		return
 	}
 
+	staffName, err := utils.GetBackstageKey(c.Ctx, "StaffName")
+	if err != nil {
+		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
+		return
+	}
+
 	// 获得项目信息
-	dataList, total := c.ServiceProject.GetListBs(pageData)
+	dataList, total := c.ServiceProject.GetListBs(pageData, staffName)
 	data := map[string]interface{}{
 		"items": dataList,
 		"total": total,

+ 1 - 0
web/viewmodels/manager.go

@@ -49,5 +49,6 @@ func (l Manager) ValidateUpdate() error {
 	return validation.ValidateStruct(&l,
 		validation.Field(&l.Id, validation.Required.Error("ID不能为空")),
 		validation.Field(&l.GroupId, validation.Required.Error("管理组ID不能为空")),
+		validation.Field(&l.IsAdmin, validation.In(0, 1).Error("数值类型不正确")),
 	)
 }

+ 5 - 5
web/viewmodels/project.go

@@ -43,11 +43,11 @@ type ProjectInfo struct {
 }
 
 type ProjectPage struct {
-	Page             int      `form:"page" json:"page"`
-	Size             int      `form:"size" json:"size"`
-	PageSize         int      `form:"pageSize" json:"pageSize"`
-	InsideCategoryId []string `form:"category" json:"category"`
-	Search           string   `form:"search" json:"search"`
+	Page             int    `form:"page" json:"page"`
+	Size             int    `form:"size" json:"size"`
+	PageSize         int    `form:"pageSize" json:"pageSize"`
+	InsideCategoryId string `form:"category" json:"category"`
+	Search           string `form:"search" json:"search"`
 }
 
 func (l ProjectPage) ValidatePage() error {