lanjianrong 4 anni fa
parent
commit
748c79820a

+ 2 - 2
dao/project_account_dao.go

@@ -56,8 +56,8 @@ func (d *ProjectAccountDao) GetAccount(account string) *models.CmProjectAccount
 }
 
 //id获得数据
-func (d *ProjectAccountDao) Get(id int, projectId int) *models.CmProjectAccount {
-	data := &models.CmProjectAccount{Id: id, ProjectId: projectId}
+func (d *ProjectAccountDao) Get(id int) *models.CmProjectAccount {
+	data := &models.CmProjectAccount{Id: id}
 	ok, err := d.engine.Get(data)
 	if ok && err == nil {
 		return data

+ 3 - 318
services/project_account_service.go

@@ -7,18 +7,12 @@
 package services
 
 import (
-	"encoding/json"
 	"errors"
 	"html"
 	"log"
-	"strconv"
-	"strings"
-	"time"
 
 	"github.com/kataras/iris/v12"
 	"go.mod/comm"
-	"go.mod/models"
-	"go.mod/web/utils"
 	"go.mod/web/viewmodels"
 
 	"go.mod/dao"
@@ -33,23 +27,7 @@ type ProjectAccountService interface {
 	ValidRuleAccount(ctx iris.Context) (viewmodels.ProjectAccount, error)
 	ValidGetPermission(ctx iris.Context) (viewmodels.Permission, error)
 	ValidRuleProjectId(ctx iris.Context) (viewmodels.ProjectAccount, error)
-	Get(accountId int, projectId int) *viewmodels.ProjectAccount
-	GetAll(projectId int) []viewmodels.ProjectAccount
-	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
-	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
-	Enable(id int, projectId int, enable int) error
-	ChangeAccount(id int, projectId int, viewAccount viewmodels.ProjectAccount) error
-	ChangeAccountBS(id int, projectId int, viewAccount viewmodels.ProjectAccount) error
-	GetProjectInfo(id int) (viewmodels.ProjectInfo, error)
-	Delete(id int, projectId int) error
-
-	ChangePassword(AccountData viewmodels.AccountPassword, projectId int, projectAccountId int) error
-
-	SaveAuth(permission viewmodels.Permission, projectId int, bidsectionId int, accountId int) error
+	Get(accountId int) *viewmodels.ProjectAccount
 }
 
 //返回service操作类
@@ -216,8 +194,8 @@ func (s *projectAccountService) ValidRuleProjectId(ctx iris.Context) (viewmodels
 }
 
 // 获得一个项目用户
-func (s *projectAccountService) Get(id int, projectId int) *viewmodels.ProjectAccount {
-	modelsAccount := s.dao.Get(id, projectId)
+func (s *projectAccountService) Get(id int) *viewmodels.ProjectAccount {
+	modelsAccount := s.dao.Get(id)
 	viewAccountData := viewmodels.ProjectAccount{}
 	if modelsAccount.Id == 0 {
 		viewAccountData.Id = "0"
@@ -227,296 +205,3 @@ func (s *projectAccountService) Get(id int, projectId int) *viewmodels.ProjectAc
 	viewAccountData = comm.MakeProjectAccountVM(modelsAccount)
 	return &viewAccountData
 }
-
-// 获得项目下所有账号信息
-func (s *projectAccountService) GetAll(projectId int) []viewmodels.ProjectAccount {
-	accountList := s.dao.GetAll(projectId)
-	accountListVM := make([]viewmodels.ProjectAccount, 0)
-	for _, data := range accountList {
-		//if data.IsAdmin != 1 {
-		account := comm.MakeProjectAccountVM(&data)
-		accountListVM = append(accountListVM, account)
-		//}
-	}
-	return accountListVM
-}
-
-// 获得标段下的账号
-func (s *projectAccountService) GetBidAccount(bidsectionId int, projectId int, projectAccountId int, name string) []viewmodels.ProjectAccount {
-	// 1.获得标段账号ID
-	bidAccountData := s.bidAccountDao.GetBidAccount(bidsectionId, projectId)
-
-	// 组合账号ID集合
-	idList := []string{}
-	// 管理员账号-可能不必要
-	// idList = append(idList, strconv.Itoa(projectAccountId))
-	for _, item := range bidAccountData {
-		idList = append(idList, strconv.Itoa(item.AccountId))
-	}
-	inId := strings.Join(idList, ",")
-
-	// 获得账号信息
-	accountData := s.dao.GetInId(inId, name)
-
-	// 2.获得账号权限
-	permissionData := s.permissionAccountDao.GetBidsectionId(bidsectionId)
-
-	// 格式化账号数据
-	accountListVM := make([]viewmodels.ProjectAccount, 0)
-	for _, data := range accountData {
-		account := comm.MakeProjectAccountVM(&data)
-		for _, item := range permissionData {
-			if data.Id == item.AccountId {
-				account.ContractPermission = item.ContractPermission
-				account.QualityPermission = item.QualityPermission
-				account.SafePermission = item.SafePermission
-				break
-			}
-		}
-		accountListVM = append(accountListVM, account)
-	}
-
-	return accountListVM
-}
-
-// 检索 账号姓名单位手机
-func (s *projectAccountService) Search(name string, projectId int) []viewmodels.ProjectAccount {
-	accountList := s.dao.Search(name, projectId)
-	accountListVM := make([]viewmodels.ProjectAccount, 0)
-	for _, data := range accountList {
-		account := comm.MakeProjectAccountVM(&data)
-		accountListVM = append(accountListVM, account)
-	}
-	return accountListVM
-}
-
-// 新增账号-后台
-func (s *projectAccountService) AddBs(viewAccount viewmodels.ProjectAccount, projectId int) error {
-
-	// 验证该项目下是否有同名账号
-	accountValid := s.dao.GetAccount(viewAccount.Account)
-	if accountValid.Id != 0 {
-		return errors.New("已存在相同的账号")
-	}
-
-	account := models.CmProjectAccount{}
-	account.ProjectId = projectId
-	account.Account = viewAccount.Account
-	account.Password = comm.CreatePasswordSign(viewAccount.Password, viewAccount.Account)
-	account.Name = viewAccount.Name
-	account.Company = viewAccount.Company
-	account.Position = viewAccount.Position
-	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) Add(viewAccount viewmodels.ProjectAccount, projectId int) error {
-
-	// 验证该项目下是否有同名账号
-	accountValid := s.dao.GetAccount(viewAccount.Account)
-	if accountValid.Id != 0 {
-		return errors.New("已存在相同的账号")
-	}
-
-	account := models.CmProjectAccount{}
-	account.ProjectId = projectId
-	account.Account = viewAccount.Account
-	account.Password = comm.CreatePasswordSign(viewAccount.Password, viewAccount.Account)
-	account.Name = viewAccount.Name
-	account.Company = viewAccount.Company
-	account.Position = viewAccount.Position
-	account.Mobile = viewAccount.Mobile
-	account.Telephone = viewAccount.Telephone
-	account.AccountGroup = viewAccount.AccountGroup
-	account.Enable = 1
-	account.CreateTime = time.Now()
-	err := s.dao.Add(&account)
-	return err
-}
-
-// 保存用户信息
-func (s *projectAccountService) Save(viewAccount viewmodels.ProjectAccount, id int, projectId int) error {
-
-	account := models.CmProjectAccount{}
-	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, []string{"Name", "Company", "Position", "Telephone", "AccountGroup"})
-
-	return err
-}
-
-func (s *projectAccountService) SaveAccount(viewAccount viewmodels.ProjectAccount, id int, projectId int) error {
-	account := models.CmProjectAccount{}
-	account.Id = id
-	account.ProjectId = projectId
-	account.Name = viewAccount.Name
-	account.Company = viewAccount.Company
-	account.Position = viewAccount.Position
-	account.Telephone = viewAccount.Telephone
-	err := s.dao.Update(&account, []string{"Name", "Company", "Position", "Telephone"})
-
-	return err
-}
-
-// 设置启用/禁止
-func (s *projectAccountService) Enable(id int, projectId int, enable int) error {
-
-	account := models.CmProjectAccount{}
-	account.Id = id
-	account.ProjectId = projectId
-	account.Enable = enable
-	err := s.dao.Update(&account, []string{"Enable"})
-
-	return err
-}
-
-// 删除账号
-func (s *projectAccountService) Delete(id int, projectId int) error {
-	account := models.CmProjectAccount{}
-	account.Id = id
-	account.ProjectId = projectId
-	err := s.dao.Delete(&account)
-
-	return err
-}
-
-// 更改账号或者密码
-func (s *projectAccountService) ChangeAccount(id int, projectId int, viewAccount viewmodels.ProjectAccount) error {
-	// 1.是否修改账号
-	field := []string{"Password"}
-	account := models.CmProjectAccount{}
-	account.Id = id
-	account.ProjectId = projectId
-
-	// 2.修改密码
-	account.Password = comm.CreatePasswordSign(viewAccount.Password, viewAccount.Account)
-
-	accountData := s.dao.Get(id, projectId)
-	if accountData.Account != viewAccount.Account {
-		account.Account = viewAccount.Account
-		field = append(field, "Account")
-	}
-
-	// 3.发送短信-TODO
-	utils.SendSMS()
-
-	s.dao.Update(&account, field)
-
-	return nil
-}
-
-// 更改账号或者密码-后台
-func (s *projectAccountService) ChangeAccountBS(id int, projectId int, viewAccount viewmodels.ProjectAccount) error {
-	// 1.是否修改账号
-	field := []string{"Password"}
-	account := models.CmProjectAccount{}
-	account.Id = id
-	account.ProjectId = projectId
-
-	// 2.修改密码
-	account.Password = comm.CreatePasswordSign(viewAccount.Password, viewAccount.Account)
-
-	accountData := s.dao.Get(id, projectId)
-	if accountData.Account != viewAccount.Account {
-		account.Account = viewAccount.Account
-		field = append(field, "Account")
-	}
-
-	s.dao.Update(&account, field)
-
-	return nil
-}
-
-// 更换密码
-func (s *projectAccountService) ChangePassword(AccountData viewmodels.AccountPassword, projectId int, projectAccountId int) error {
-	// 1.获得账号
-	accountData := s.dao.Get(projectAccountId, projectId)
-	// 2.比对密码
-	password := comm.CreatePasswordSign(AccountData.Password, accountData.Account)
-
-	if accountData.Password != password {
-		return errors.New("原密码输入不正确")
-	}
-
-	// 3修改密码
-	field := []string{"Password"}
-	account := models.CmProjectAccount{}
-	account.Id = projectAccountId
-	account.ProjectId = projectId
-	account.Password = comm.CreatePasswordSign(AccountData.NewPassword, accountData.Account)
-
-	err := s.dao.Update(&account, field)
-	if err != nil {
-		return errors.New("密码更新失败")
-	}
-	return nil
-}
-
-func (s *projectAccountService) GetProjectInfo(id int) (viewmodels.ProjectInfo, error) {
-	projectInfo, err := s.dao.FindById(id)
-
-	return projectInfo, err
-}
-
-// 保存权限设置
-func (s *projectAccountService) SaveAuth(permission viewmodels.Permission, projectId int, bidsectionId int, accountId int) error {
-	// 1.构造权限字符串
-	// 1-1.合同权限
-	contractPermission := map[string]int{
-		"add":    permission.ContractAdd,
-		"delete": permission.ContractDelete,
-		"access": permission.ContractAccess,
-	}
-	contractPermissionByte, err := json.Marshal(contractPermission)
-	if err != nil {
-		return errors.New("合同权限解析失败")
-	}
-	contractPermissionStr := string(contractPermissionByte)
-	// 1.2 安全巡检权限
-	safePermission := map[string]int{
-		"add":    permission.SafeAdd,
-		"delete": permission.SafeDelete,
-		"access": permission.SafeAccess,
-	}
-	safePermissionByte, err := json.Marshal(safePermission)
-	if err != nil {
-		return errors.New("合同权限解析失败")
-	}
-	safePermissionStr := string(safePermissionByte)
-	// 1.3 质量巡检权限
-	qualityPermission := map[string]int{
-		"add":    permission.QualityAdd,
-		"delete": permission.QualityDelete,
-		"access": permission.QualityAccess,
-	}
-	qualityPermissionByte, err := json.Marshal(qualityPermission)
-	if err != nil {
-		return errors.New("合同权限解析失败")
-	}
-	qualityPermissionStr := string(qualityPermissionByte)
-
-	// 2.保存权限
-	permissionAccount := models.CmPermissionAccount{}
-	permissionAccount.ProjectId = projectId
-	permissionAccount.BidsectionId = bidsectionId
-	permissionAccount.AccountId = accountId
-	permissionAccount.ContractPermission = contractPermissionStr
-	permissionAccount.SafePermission = safePermissionStr
-	permissionAccount.QualityPermission = qualityPermissionStr
-
-	err = s.permissionAccountDao.Update(&permissionAccount, []string{"ContractPermission", "SafePermission", "QualityPermission"})
-	return err
-}

+ 10 - 192
web/api/project_account_api.go

@@ -9,10 +9,9 @@ package api
 import (
 	"fmt"
 
+	"github.com/dgrijalva/jwt-go"
 	"github.com/kataras/iris/v12"
 	"go.mod/services"
-	"go.mod/web/utils"
-	"go.mod/web/viewmodels"
 )
 
 type ProjectAccountApi struct {
@@ -31,208 +30,27 @@ type ProjectAccountApi struct {
 func (c *ProjectAccountApi) Get() {
 
 	// 获得项目账号ID
-	projectAccountIdInt, err := utils.GetProjectAccountId(c.Ctx)
-	if err != nil {
-		c.Ctx.JSON(iris.Map{"code": -1, "msg": err})
-		return
-	}
-
-	// 获得项目ID
-	projectIdInt, err := utils.GetProjectId(c.Ctx)
-	if err != nil {
-		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
-		return
-	}
-
-	// 获得登陆用户
-	AccountData := c.ServiceProjectAccount.Get(projectAccountIdInt, projectIdInt)
-
-	c.Ctx.JSON(iris.Map{
-		"code": 0,
-		"msg":  "",
-		"data": AccountData,
-	})
-}
-
-// @Summary 获得项目账号列表
-// @Tags 项目账号相关
-// @Description 获得项目账号列表
-// @Security ApiKeyAuth
-// @Success 200 {string} string	"{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
-// @Router /api/projectAccount/list [get]
-func (c *ProjectAccountApi) GetList() {
-
-	// 获得项目ID
-	projectIdInt, err := utils.GetProjectId(c.Ctx)
-	if err != nil {
-		c.Ctx.JSON(iris.Map{"code": -1, "msg": err})
-		return
-	}
-
-	AccountData := c.ServiceProjectAccount.GetAll(projectIdInt)
-	c.Ctx.JSON(iris.Map{
-		"code": 0,
-		"msg":  "",
-		"data": AccountData,
-	})
-}
-
-// @Summary 获得项目账号组
-// @Tags 项目账号相关
-// @Description 获得项目账号组
-// @Security ApiKeyAuth
-// @Success 200 {string} string	"{code:0成功,-1参数类错误,-2服务端内部错误,msg:错误信息}"
-// @Router /api/projectAccount/group [get]
-func (c *ProjectAccountApi) GetGroup() {
-
-	// 获得检索关键字
-	// AccountData := viewmodels.ProjectAccount{}
-	// err := c.Ctx.ReadForm(&AccountData)
+	// projectAccountIdInt, err := utils.GetProjectAccountId(c.Ctx)
 	// if err != nil {
-	// 	c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("JSON转换异常, error=%s", err)})
+	// 	c.Ctx.JSON(iris.Map{"code": -1, "msg": err})
 	// 	return
 	// }
 
+	userInfo := c.Ctx.Values().Get("jwt").(*jwt.Token).Claims.(jwt.MapClaims)
+	fmt.Println(userInfo)
 	// 获得项目ID
-	// projectId, err := utils.GetProjectId(c.Ctx)
+	// projectIdInt, err := utils.GetProjectId(c.Ctx)
 	// if err != nil {
-	// 	c.Ctx.JSON(iris.Map{"code": -1, "msg": err})
+	// 	c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
 	// 	return
 	// }
 
-	// accountData := c.ServiceProjectAccount.GetAll(projectId)
-	// 检索
-	// accountData := c.ServiceProjectAccount.Search(AccountData.Name, projectId)
+	// 获得登陆用户
+	// AccountData := c.ServiceProjectAccount.Get(projectAccountIdInt)
 
-	groupDate := map[int]string{
-		1: "建设单位",
-		2: "监理单位",
-		3: "施工单位",
-		4: "设计单位",
-	}
 	c.Ctx.JSON(iris.Map{
 		"code": 0,
 		"msg":  "",
-		"data": groupDate,
-		// "accountData": accountData,
-	})
-}
-
-// @Summary 检索账号信息
-// @Tags 项目账号相关
-// @Description 检索字段:账号 姓名 单位 手机 前匹配
-// @Accept  json
-// @Produce  json
-// @Security ApiKeyAuth
-// @Param   name     body    string     true        "检索内容"
-// @Success 200 {object} viewmodels.ProjectAccount "{code:0成功,-1参数类错误,data:viewmodels.ProjectAccount,msg:错误信息}"
-// @Router /api/projectAccount/search [get]
-func (c *ProjectAccountApi) GetSearch() {
-	// 获得项目ID
-	projectIdInt, err := utils.GetProjectId(c.Ctx)
-	if err != nil {
-		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
-		return
-	}
-
-	// 获得检索关键字
-	AccountData := viewmodels.ProjectAccount{}
-	err = c.Ctx.ReadForm(&AccountData)
-	if err != nil {
-		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("JSON转换异常, error=%s", err)})
-		return
-	}
-
-	// 检索
-	dataList := c.ServiceProjectAccount.Search(AccountData.Name, projectIdInt)
-	c.Ctx.JSON(iris.Map{
-		"code": 0, "msg": "",
-		"data": dataList,
+		// "data": AccountData,
 	})
 }
-
-// @Summary 编辑账号
-// @Tags 项目账号相关
-// @Description 编辑账号
-// @Accept  json
-// @Produce  json
-// @Security ApiKeyAuth
-// @Param   id     body    string     true        "账号ID" default(PcqqGsn1O0jBSmLqkuOTwQ)
-// @Param   name     body    string     true        "姓名"
-// @Param   company     body    string     true        "公司"
-// @Param   position     body    string     true        "职位"
-// @Param   telephone     body    string     true        "座机"
-// @Success 200 {string} string "{code:0成功,-1参数类错误,data:viewmodels.ProjectAccount,msg:错误信息}"
-// @Router /api/projectAccount/account/save [post]
-func (c *ProjectAccountApi) PostAccountSave() {
-	// 验证内容
-	AccountData, err := c.ServiceProjectAccount.ValidRuleAccount(c.Ctx)
-	if err != nil {
-		ErrMsg := utils.FormValidError(err)
-		c.Ctx.JSON(iris.Map{"code": -1, "msg": ErrMsg})
-		return
-	} else {
-		// 获得更新账号ID
-		id, err := utils.GetDecryptId(AccountData.Id)
-		if err != nil {
-			c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
-			return
-		}
-		projectId, err := utils.GetProjectId(c.Ctx)
-		if err != nil {
-			c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
-			return
-		}
-
-		err = c.ServiceProjectAccount.SaveAccount(AccountData, id, projectId)
-		if err != nil {
-			c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
-			return
-		}
-		c.Ctx.JSON(iris.Map{"code": 0, "msg": "编辑成功"})
-	}
-}
-
-// @Summary 修改密码
-// @Tags 项目账号相关
-// @Description 编辑账号
-// @Accept  json
-// @Produce  json
-// @Security ApiKeyAuth
-// @Param   password     body    string     true        "密码"
-// @Param   newPassword     body    string     true        "新密码"
-// @Param   confirmPassword     body    string     true        "确认新密码"
-// @Success 200 {string} string "{code:0成功,-1参数类错误,data:viewmodels.ProjectAccount,msg:错误信息}"
-// @Router /api/projectAccount/change/password [post]
-func (c *ProjectAccountApi) PostChangePassword() {
-	// 验证内容
-	AccountData, err := c.ServiceProjectAccount.ValidRuleChangePassword(c.Ctx)
-	if err != nil {
-		ErrMsg := utils.FormValidError(err)
-		c.Ctx.JSON(iris.Map{"code": -1, "msg": ErrMsg})
-		return
-	} else {
-		if AccountData.ConfirmPassword != AccountData.NewPassword {
-			c.Ctx.JSON(iris.Map{"code": -1, "msg": "新密码和确认密码不一致"})
-			return
-		}
-		// 获得项目ID
-		projectId, err := utils.GetProjectId(c.Ctx)
-		if err != nil {
-			c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
-			return
-		}
-		// 获得项目账号ID
-		projectAccountId, err := utils.GetProjectAccountId(c.Ctx)
-		if err != nil {
-			c.Ctx.JSON(iris.Map{"code": -1, "msg": err})
-			return
-		}
-		err = c.ServiceProjectAccount.ChangePassword(AccountData, projectId, projectAccountId)
-		if err != nil {
-			c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
-			return
-		}
-		c.Ctx.JSON(iris.Map{"code": 0, "msg": "更新成功"})
-	}
-}

+ 3 - 1
web/routes/routes.go

@@ -11,6 +11,7 @@ import (
 	"go.mod/bootstrap"
 	"go.mod/services"
 	"go.mod/web/api"
+	"go.mod/web/middleware"
 )
 
 func Configure(b *bootstrap.Bootstrapper) {
@@ -34,12 +35,13 @@ func Configure(b *bootstrap.Bootstrapper) {
 
 	// 项目账号相关接口
 	apiProjectAccount := mvc.New(b.Party("/api/projectAccount"))
+	apiProjectAccount.Router.Use(middleware.JwtAuth().Serve)
 	apiProjectAccount.Register(ProjectAccountService)
 	apiProjectAccount.Handle(new(api.ProjectAccountApi))
 
 	// 合同管理
 	apiContract := mvc.New(b.Party("/api/contract"))
-	// apiContract.Router.Use(middleware.JwtAuth().Serve)
+	apiContract.Router.Use(middleware.JwtAuth().Serve)
 	apiContract.Register(ContractService)
 	// 中间件
 	apiContract.Handle(new(api.ContractApi))