wkyuer 1 月之前
父节点
当前提交
bc44e32c36
共有 1 个文件被更改,包括 7 次插入2 次删除
  1. 7 2
      internal/logic/product/subvip/price.go

+ 7 - 2
internal/logic/product/subvip/price.go

@@ -80,7 +80,7 @@ func (p jySubVipProduct) GetPrice() (price int64, err error) {
 		}
 		price = thisPriceSetting.UnityPrice(gconv.Float64(p.OrderDetail.Filter.BuyCycle+p.OrderDetail.Filter.GiftCycle), cycleType, calNum, 0, p.OrderDetail.ReqSubject == 2)
 	case 3: //升级
-		oldFilter, _, entTime, _, err := common2.GetLinkVipCycleFilter(context.Background(), p.OrderDetail.LinkedOrderId)
+		oldFilter, startTime, entTime, _, err := common2.GetLinkVipCycleFilter(context.Background(), p.OrderDetail.LinkedOrderId)
 		if err != nil {
 			return 0, fmt.Errorf("查询关联订单异常")
 		}
@@ -108,7 +108,12 @@ func (p jySubVipProduct) GetPrice() (price int64, err error) {
 			return 0, gerror.NewCode(gcode.CodeValidationFailed, "价格格式配置异常")
 		}
 		count := p.OrderDetail.Filter.BuyAccountCount + p.OrderDetail.Filter.GiftAccountCount
-		month = utility.GetMonthDayNum(time.Now(), entTime)
+		if startTime.After(now) { //未生效单子升级
+			month = utility.GetMonthDayNum(time.Now(), entTime)
+		} else { //生效单子升级
+			month = utility.GetMonthDayNum(now, entTime)
+		}
+
 		if sVal1.UnitNum != areaTotalNum { //升级服务
 			_, mPrice, _, err = common2.OrderUnitPrice(p.OrderDetail.LinkedOrderId)
 			if err != nil {