Browse Source

feat:权限判断

wangshan 2 years ago
parent
commit
3eedb5dca7

+ 10 - 4
jyBXCore/rpc/internal/logic/participatecontentlogic.go

@@ -61,10 +61,16 @@ func (l *ParticipateContentLogic) ParticipateContent(in *bxcore.ParticipateConte
 		return result, nil
 	}
 	//  查询
-	data := participateService.GetLastBidStatus(projectId)
-	formatData := participateService.ParticipateContentFormat(data)
+	data, err := participateService.GetLastBidStatus(projectId)
+	if err == nil {
+		formatData := participateService.ParticipateContentFormat(data)
+		return &bxcore.ParticipateContentRes{
+			ErrCode: 0,
+			Data:    &formatData,
+		}, nil
+	}
 	return &bxcore.ParticipateContentRes{
-		ErrCode: 0,
-		Data:    &formatData,
+		ErrCode: -1,
+		ErrMsg:  err.Error(),
 	}, nil
 }

+ 2 - 2
jyBXCore/rpc/internal/logic/participateinfologic.go

@@ -5,8 +5,8 @@ import (
 	"context"
 	IC "jyBXCore/rpc/init"
 	"jyBXCore/rpc/model/es"
+	"jyBXCore/rpc/model/mysql"
 	"jyBXCore/rpc/service"
-	"jyBXCore/rpc/util"
 	"time"
 
 	"jyBXCore/rpc/internal/svc"
@@ -75,7 +75,7 @@ func (l *ParticipateInfoLogic) ParticipateInfo(in *bxcore.ParticipateInfoReq) (*
 		existList := participateService.PersonalExistProject(projectIds)
 		formatData = participateService.DetailPersonalFormat(existList, isValid, bidendtime)
 	case service.PositionTypeEnt:
-		isAllow := util.IsALLow(in.EntId)
+		isAllow := mysql.IsALLow(in.EntId)
 		existList := participateService.EntExistProject(projectIds)                              // 查询出已经存在的
 		formatData = participateService.DetailEntFormat(existList, isValid, isAllow, bidendtime) // 格式化数据
 	}

+ 3 - 4
jyBXCore/rpc/internal/logic/participateshowlogic.go

@@ -2,14 +2,13 @@ package logic
 
 import (
 	"context"
+	"github.com/zeromicro/go-zero/core/logx"
 	IC "jyBXCore/rpc/init"
 	"jyBXCore/rpc/internal/svc"
 	"jyBXCore/rpc/model/es"
+	"jyBXCore/rpc/model/mysql"
 	"jyBXCore/rpc/service"
 	"jyBXCore/rpc/type/bxcore"
-	"jyBXCore/rpc/util"
-
-	"github.com/zeromicro/go-zero/core/logx"
 )
 
 type ParticipateShowLogic struct {
@@ -64,7 +63,7 @@ func (l *ParticipateShowLogic) ParticipateShow(in *bxcore.ParticipateShowReq) (*
 		existList := participateService.PersonalExistProject(projectIds)
 		formatList = participateService.ListPersonalFormat(existList, infoM)
 	case service.PositionTypeEnt:
-		isAllow := util.IsALLow(in.EntId)
+		isAllow := mysql.IsALLow(in.EntId)
 		existList := participateService.EntExistProject(projectIds)              // 查询出已经存在的
 		formatList = participateService.ListEntFormat(existList, infoM, isAllow) // 格式化数据
 	}

+ 8 - 0
jyBXCore/rpc/model/mysql/participateBid.go

@@ -680,6 +680,7 @@ func SingleParticipateList(in *bxcore.ParticipateListReq, conditionSql string) (
 func AdminParticipateList(in *bxcore.ParticipateListReq, conditionSql string) (data *bxcore.ParticipateData, err error) {
 	defer MC.Catch()
 	data = &bxcore.ParticipateData{
+		IsAllow: IsALLow(in.EntId),
 		NowTime: time.Now().Unix(),
 		Count:   0,
 		List:    []*bxcore.ParticipateList{},
@@ -961,3 +962,10 @@ func GetPersonInfo(entId, entUserId int64, participateMap map[int64]bool) []*bxc
 	}
 	return list
 }
+
+//是否允许多人参标
+func IsALLow(entId int64) bool {
+	return GetParticipateIsAllow(map[string]interface{}{
+		"i_entid": entId,
+	})
+}

+ 13 - 11
jyBXCore/rpc/service/participate.go

@@ -9,7 +9,6 @@ import (
 	"jyBXCore/rpc/model/es"
 	"jyBXCore/rpc/model/mysql"
 	"jyBXCore/rpc/type/bxcore"
-	"jyBXCore/rpc/util"
 	"strconv"
 	"strings"
 )
@@ -86,7 +85,7 @@ func ParticipateDo(in *bxcore.ParticipateActionReq) error {
 			return err
 		}
 		//是否允许多人参标
-		if isAllow := util.IsALLow(in.EntId); !isAllow {
+		if isAllow := mysql.IsALLow(in.EntId); !isAllow {
 			if ok := mysql.IsParticipatedByBidId(in); ok {
 				return fmt.Errorf("当前项目不允许多人参标")
 			}
@@ -124,7 +123,7 @@ func ParticipateDo(in *bxcore.ParticipateActionReq) error {
 			return fmt.Errorf("划转对象不能为空")
 		}
 		//是否保留原跟踪人?
-		isAllow := util.IsALLow(in.EntId)
+		isAllow := mysql.IsALLow(in.EntId)
 		if (in.IsRetain || len(strings.Split(in.ToEntUserId, ",")) > 1) && !isAllow {
 			//不允许多人参标,但是前端参数又是保留原参标人 互相矛盾
 			return fmt.Errorf("当前项目只允许一人参标")
@@ -192,14 +191,17 @@ func GetParticipatePersonInfo(in *bxcore.ParticipatePersonsReq) *bxcore.Particip
 		participateMap = map[int64]bool{}
 	)
 	if in.ProjectId != "" {
-		participateInfos := mysql.ParticipateProjectEnt(in.EntId, strings.Split(in.ProjectId, ","))
-		if participateInfos != nil && len(*participateInfos) > 0 {
-			participateInfo := (*participateInfos)[0]
-			personIds := MC.ObjToString(participateInfo["personIds"])
-			if personIds != "" {
-				for _, p := range strings.Split(personIds, ",") {
-					personId, _ := strconv.ParseInt(p, 10, 64)
-					participateMap[personId] = true
+		in.ProjectId = encrypt.DecodeArticleId2ByCheck(in.ProjectId)[0]
+		if in.ProjectId != "" {
+			participateInfos := mysql.ParticipateProjectEnt(in.EntId, strings.Split(in.ProjectId, ","))
+			if participateInfos != nil && len(*participateInfos) > 0 {
+				participateInfo := (*participateInfos)[0]
+				personIds := MC.ObjToString(participateInfo["personIds"])
+				if personIds != "" {
+					for _, p := range strings.Split(personIds, ",") {
+						personId, _ := strconv.ParseInt(p, 10, 64)
+						participateMap[personId] = true
+					}
 				}
 			}
 		}

+ 10 - 6
jyBXCore/rpc/service/participateBid.go

@@ -263,7 +263,7 @@ func (p *ParticipateBid) UpdateBidStatus(in *bxcore.UpdateBidStatusReq, projectI
 		defer pLock.Unlock()
 	}
 	// 如果查出来旧的 那么就需要做新旧对比
-	oldMap := p.GetLastBidStatus(projectId) // 查询出最新的招标状态信息
+	oldMap, _ := p.GetLastBidStatus(projectId) // 查询出最新的招标状态信息
 	// 新的
 	if in.BidStage == nil {
 		in.BidStage = []string{}
@@ -300,10 +300,12 @@ func (p *ParticipateBid) UpdateBidStatus(in *bxcore.UpdateBidStatusReq, projectI
 }
 
 // GetLastBidStatus 获取投标状态信息
-func (p *ParticipateBid) GetLastBidStatus(projectId string) map[string]interface{} {
-	rs := map[string]interface{}{}
-	// 查询项目投标信息 区分企业和个人
-	var result *[]map[string]interface{}
+func (p *ParticipateBid) GetLastBidStatus(projectId string) (map[string]interface{}, error) {
+	var (
+		rs = map[string]interface{}{}
+		// 查询项目投标信息 区分企业和个人
+		result *[]map[string]interface{}
+	)
 	switch p.PositionType {
 	case PositionTypeEnt:
 		result = mysql.GetBidContentEnt(projectId, p.EntId)
@@ -318,8 +320,10 @@ func (p *ParticipateBid) GetLastBidStatus(projectId string) map[string]interface
 				rs = *bidStatus
 			}
 		}
+	} else {
+		return rs, fmt.Errorf("暂无参标状态更新记录")
 	}
-	return rs
+	return rs, nil
 
 }
 func (p ParticipateBid) ParticipateContentFormat(data map[string]interface{}) (rs bxcore.ParticipateContentData) {

+ 0 - 8
jyBXCore/rpc/util/participate.go

@@ -1,7 +1,6 @@
 package util
 
 import (
-	"jyBXCore/rpc/model/mysql"
 	"sync"
 )
 
@@ -9,13 +8,6 @@ var (
 	PLock *ParticipateLock
 )
 
-//是否允许多人参标
-func IsALLow(entId int64) bool {
-	return mysql.GetParticipateIsAllow(map[string]interface{}{
-		"i_entid": entId,
-	})
-}
-
 type ParticipateLock struct {
 	sync.Mutex
 	UserLock map[string]*sync.Mutex