Compare commits
2 Commits
999acc128e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 30c6e5bb78 | |||
| 3b4afd287e |
@@ -648,7 +648,7 @@ func (h *AssetHandler) resolveAssetPackageUsagePath(c *fiber.Ctx) (*dto.AssetRes
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ensureAssetPackageAdjuster(c *fiber.Ctx) error {
|
func ensureAssetPackageAdjuster(c *fiber.Ctx) error {
|
||||||
if middleware.GetUserIDFromContext(c.UserContext()) != 41 && middleware.GetUserIDFromContext(c.UserContext()) != 127 {
|
if middleware.GetUserIDFromContext(c.UserContext()) != 1124 && middleware.GetUserIDFromContext(c.UserContext()) != 127 {
|
||||||
return errors.New(errors.CodeForbidden, "无权限操作该资源或资源不存在")
|
return errors.New(errors.CodeForbidden, "无权限操作该资源或资源不存在")
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -1387,9 +1387,34 @@ func (s *Service) HasValidRechargeOrPaidOrder(ctx context.Context, assetType str
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if assetType == "card" || assetType == "device" {
|
||||||
|
return s.hasPaidPackageUsage(ctx, assetType, assetID, generation)
|
||||||
|
}
|
||||||
|
|
||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// hasPaidPackageUsage 检查资产在当前世代是否存在已支付订单购买且未退款的套餐权益
|
||||||
|
// 换货迁移只迁移套餐权益不迁移订单,订单仍挂在旧资产上,需要按套餐权益兜底判定
|
||||||
|
func (s *Service) hasPaidPackageUsage(ctx context.Context, assetType string, assetID uint, generation int) (bool, error) {
|
||||||
|
assetColumn := "tb_package_usage.iot_card_id"
|
||||||
|
if assetType == "device" {
|
||||||
|
assetColumn = "tb_package_usage.device_id"
|
||||||
|
}
|
||||||
|
|
||||||
|
var count int64
|
||||||
|
err := s.db.WithContext(ctx).Model(&model.PackageUsage{}).
|
||||||
|
Joins("JOIN tb_order ON tb_order.id = tb_package_usage.order_id AND tb_order.deleted_at IS NULL").
|
||||||
|
Where(assetColumn+" = ? AND tb_package_usage.generation = ?", assetID, generation).
|
||||||
|
Where("tb_package_usage.refund_id IS NULL").
|
||||||
|
Where("tb_order.payment_status = ?", model.PaymentStatusPaid).
|
||||||
|
Count(&count).Error
|
||||||
|
if err != nil {
|
||||||
|
return false, errors.Wrap(errors.CodeDatabaseError, err, "查询套餐权益订单失败")
|
||||||
|
}
|
||||||
|
return count > 0, nil
|
||||||
|
}
|
||||||
|
|
||||||
// packageStatusName 套餐状态码转中文名称
|
// packageStatusName 套餐状态码转中文名称
|
||||||
func packageStatusName(status int) string {
|
func packageStatusName(status int) string {
|
||||||
switch status {
|
switch status {
|
||||||
|
|||||||
Reference in New Issue
Block a user