updatebidstatuslogic.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package logic
  2. import (
  3. "app.yhyue.com/moapp/jybase/common"
  4. "context"
  5. IC "jyBXCore/rpc/init"
  6. "jyBXCore/rpc/model/es"
  7. "jyBXCore/rpc/service"
  8. "time"
  9. "jyBXCore/rpc/internal/svc"
  10. "jyBXCore/rpc/type/bxcore"
  11. "github.com/zeromicro/go-zero/core/logx"
  12. )
  13. type UpdateBidStatusLogic struct {
  14. ctx context.Context
  15. svcCtx *svc.ServiceContext
  16. logx.Logger
  17. }
  18. func NewUpdateBidStatusLogic(ctx context.Context, svcCtx *svc.ServiceContext) *UpdateBidStatusLogic {
  19. return &UpdateBidStatusLogic{
  20. ctx: ctx,
  21. svcCtx: svcCtx,
  22. Logger: logx.WithContext(ctx),
  23. }
  24. }
  25. // 投标状态更新
  26. func (l *UpdateBidStatusLogic) UpdateBidStatus(in *bxcore.UpdateBidStatusReq) (*bxcore.UpdateBidStatusRes, error) {
  27. result := &bxcore.UpdateBidStatusRes{
  28. ErrCode: -1,
  29. }
  30. // 1. 判断身份是否有权限 不是超级订阅也不是大会员 则直接返回不展示
  31. userInfo := IC.Middleground.PowerCheckCenter.Check(in.AppId, in.UserId, in.NewUserId, in.AccountId, in.EntId, in.PositionType, in.PositionId)
  32. // 不是超级订阅 也不是大会员
  33. if userInfo.Vip.Status <= 0 && userInfo.Member.Status <= 0 {
  34. result.ErrMsg = "没有权限"
  35. return result, nil
  36. }
  37. participateService := service.NewParticipateBid(in.EntId, in.EntUserId, in.PositionType, in.PositionId)
  38. participateService.EntRoleId = userInfo.Ent.EntRoleId
  39. // 信息id解密
  40. infoList, _ := service.DecodeId(in.Sid)
  41. if len(infoList) == 0 {
  42. result.ErrMsg = "信息id无效"
  43. return result, nil
  44. }
  45. // 根据标讯id 查询项目信息
  46. projectInfos := es.GetProjectByInfoId(infoList)
  47. if projectInfos == nil || len(*projectInfos) == 0 {
  48. result.ErrMsg = "未查询到项目信息"
  49. return result, nil
  50. }
  51. // 判断是否已经过了开标时间
  52. var isValid bool
  53. bidopentime := common.Int64All((*projectInfos)[0]["bidopentime"])
  54. projectId := common.ObjToString((*projectInfos)[0]["_id"])
  55. if time.Now().Unix() >= bidopentime || bidopentime == 0 {
  56. isValid = true
  57. }
  58. if !isValid {
  59. result.ErrMsg = "已经过开标时间,无法更新"
  60. return result, nil
  61. }
  62. // 验证身份
  63. if !participateService.CheckBidPower(projectId, true) {
  64. result.ErrMsg = "没有更新权限"
  65. return result, nil
  66. }
  67. // 2. 更新
  68. flag := participateService.UpdateBidStatus(in, projectId)
  69. if !flag {
  70. result.ErrMsg = "更新失败"
  71. } else {
  72. result.ErrCode = 0
  73. }
  74. result.Data = flag
  75. return result, nil
  76. }