participatecontentlogic.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package logic
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "context"
  5. "jyBXCore/rpc/model/es"
  6. "jyBXCore/rpc/service"
  7. "jyBXCore/rpc/util"
  8. "jyBXCore/rpc/internal/svc"
  9. "jyBXCore/rpc/type/bxcore"
  10. "github.com/zeromicro/go-zero/core/logx"
  11. )
  12. type ParticipateContentLogic struct {
  13. ctx context.Context
  14. svcCtx *svc.ServiceContext
  15. logx.Logger
  16. }
  17. func NewParticipateContentLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ParticipateContentLogic {
  18. return &ParticipateContentLogic{
  19. ctx: ctx,
  20. svcCtx: svcCtx,
  21. Logger: logx.WithContext(ctx),
  22. }
  23. }
  24. // 获取投标状态信息
  25. func (l *ParticipateContentLogic) ParticipateContent(in *bxcore.ParticipateContentReq) (*bxcore.ParticipateContentRes, error) {
  26. // 验证权限
  27. result := &bxcore.ParticipateContentRes{
  28. ErrCode: -1,
  29. }
  30. b, entRoleId := util.IsAllowedParticipate(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntAccountId, in.EntId, in.EntUserId, in.PositionId, in.PositionType)
  31. if !b {
  32. result.ErrMsg = "暂无权限"
  33. return result, nil
  34. }
  35. participateService := service.NewParticipateBid(in.EntId, in.EntUserId, in.PositionType, in.PositionId)
  36. participateService.EntRoleId = entRoleId
  37. // 信息id解密
  38. infoList, _ := service.DecodeId(in.Sid)
  39. if len(infoList) == 0 {
  40. result.ErrMsg = "信息id无效"
  41. return result, nil
  42. }
  43. // 根据标讯id 查询项目信息
  44. projectInfos := es.GetProjectByInfoId(infoList)
  45. if projectInfos == nil || len(*projectInfos) == 0 {
  46. result.ErrCode = 0
  47. return result, nil
  48. }
  49. // 验证身份
  50. projectId := common.ObjToString((*projectInfos)[0]["_id"])
  51. if !participateService.CheckBidPower(projectId, false) {
  52. result.ErrMsg = "没有查看权限"
  53. return result, nil
  54. }
  55. // 查询
  56. data, err := participateService.GetLastBidStatus(projectId)
  57. if err == nil {
  58. formatData := participateService.ParticipateContentFormat(data)
  59. return &bxcore.ParticipateContentRes{
  60. ErrCode: 0,
  61. Data: &formatData,
  62. }, nil
  63. }
  64. return &bxcore.ParticipateContentRes{
  65. ErrCode: -1,
  66. ErrMsg: err.Error(),
  67. }, nil
  68. }