mall:完善 cloud 的 api 调用

This commit is contained in:
YunaiV
2023-10-24 12:24:02 +08:00
parent 110b3476a8
commit b133cfa2a8
38 changed files with 239 additions and 136 deletions

View File

@@ -1,22 +1,25 @@
package cn.iocoder.yudao.module.trade.api.order;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.trade.api.order.dto.TradeOrderRespDTO;
import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
import cn.iocoder.yudao.module.trade.service.order.TradeOrderQueryService;
import cn.iocoder.yudao.module.trade.service.order.TradeOrderUpdateService;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Collection;
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
/**
* 订单 API 接口实现类
*
* @author HUIHUI
*/
@Service
@RestController // 提供 RESTful API 接口,给 Feign 调用
@Validated
public class TradeOrderApiImpl implements TradeOrderApi {
@@ -26,18 +29,19 @@ public class TradeOrderApiImpl implements TradeOrderApi {
private TradeOrderQueryService tradeOrderQueryService;
@Override
public List<TradeOrderRespDTO> getOrderList(Collection<Long> ids) {
return TradeOrderConvert.INSTANCE.convertList04(tradeOrderQueryService.getOrderList(ids));
public CommonResult<List<TradeOrderRespDTO>> getOrderList(Collection<Long> ids) {
return success(TradeOrderConvert.INSTANCE.convertList04(tradeOrderQueryService.getOrderList(ids)));
}
@Override
public TradeOrderRespDTO getOrder(Long id) {
return TradeOrderConvert.INSTANCE.convert(tradeOrderQueryService.getOrder(id));
public CommonResult<TradeOrderRespDTO> getOrder(Long id) {
return success(TradeOrderConvert.INSTANCE.convert(tradeOrderQueryService.getOrder(id)));
}
@Override
public void cancelPaidOrder(Long userId, Long orderId) {
public CommonResult<Boolean> cancelPaidOrder(Long userId, Long orderId) {
tradeOrderUpdateService.cancelPaidOrder(userId, orderId);
return success(true);
}
}

View File

@@ -67,7 +67,7 @@ public class TradeCombinationOrderHandler implements TradeOrderHandler {
// 2. 创建拼团记录
TradeOrderItemDO item = orderItems.get(0);
CombinationRecordCreateRespDTO combinationRecord = combinationRecordApi.createCombinationRecord(
TradeOrderConvert.INSTANCE.convert(order, item));
TradeOrderConvert.INSTANCE.convert(order, item)).getCheckedData();
// 3. 更新拼团相关信息到订单。为什么几个字段都要更新?
// 原因是:如果创建订单时自己是团长的情况下 combinationHeadId 是为 null 的,设置团长编号这个操作时在订单是否后创建拼团记录时才设置的。
@@ -81,7 +81,7 @@ public class TradeCombinationOrderHandler implements TradeOrderHandler {
return;
}
// 校验订单拼团是否成功
if (!combinationRecordApi.isCombinationRecordSuccess(order.getUserId(), order.getId())) {
if (!combinationRecordApi.isCombinationRecordSuccess(order.getUserId(), order.getId()).getCheckedData()) {
throw exception(ORDER_DELIVERY_FAIL_COMBINATION_RECORD_STATUS_NOT_SUCCESS);
}
}

View File

@@ -38,7 +38,7 @@ public class TradeBargainActivityPriceCalculator implements TradePriceCalculator
// 2. 校验是否可以参与砍价
TradePriceCalculateRespBO.OrderItem orderItem = result.getItems().get(0);
BargainValidateJoinRespDTO bargainActivity = bargainRecordApi.validateJoinBargain(
param.getUserId(), param.getBargainRecordId(), orderItem.getSkuId());
param.getUserId(), param.getBargainRecordId(), orderItem.getSkuId()).getCheckedData();
// 3.1 记录优惠明细
Integer discountPrice = orderItem.getPayPrice() - bargainActivity.getBargainPrice() * orderItem.getCount();

View File

@@ -37,7 +37,7 @@ public class TradeCombinationActivityPriceCalculator implements TradePriceCalcul
TradePriceCalculateRespBO.OrderItem orderItem = result.getItems().get(0);
CombinationValidateJoinRespDTO combinationActivity = combinationRecordApi.validateJoinCombination(
param.getUserId(), param.getCombinationActivityId(), param.getCombinationHeadId(),
orderItem.getSkuId(), orderItem.getCount());
orderItem.getSkuId(), orderItem.getCount()).getCheckedData();
// 3.1 记录优惠明细
Integer discountPrice = orderItem.getPayPrice() - combinationActivity.getCombinationPrice() * orderItem.getCount();

View File

@@ -45,7 +45,7 @@ public class TradeCouponPriceCalculator implements TradePriceCalculator {
return;
}
CouponRespDTO coupon = couponApi.validateCoupon(new CouponValidReqDTO()
.setId(param.getCouponId()).setUserId(param.getUserId()));
.setId(param.getCouponId()).setUserId(param.getUserId())).getCheckedData();
Assert.notNull(coupon, "校验通过的优惠劵({}),不能为空", param.getCouponId());
// 1.2 只有【普通】订单,才允许使用优惠劵
if (ObjectUtil.notEqual(result.getType(), TradeOrderTypeEnum.NORMAL.getType())) {

View File

@@ -41,7 +41,7 @@ public class TradeDiscountActivityPriceCalculator implements TradePriceCalculato
}
// 获得 SKU 对应的限时折扣活动
List<DiscountProductRespDTO> discountProducts = discountActivityApi.getMatchDiscountProductList(
convertSet(result.getItems(), TradePriceCalculateRespBO.OrderItem::getSkuId));
convertSet(result.getItems(), TradePriceCalculateRespBO.OrderItem::getSkuId)).getCheckedData();
if (CollUtil.isEmpty(discountProducts)) {
return;
}

View File

@@ -40,7 +40,7 @@ public class TradeRewardActivityPriceCalculator implements TradePriceCalculator
}
// 获得 SKU 对应的满减送活动
List<RewardActivityMatchRespDTO> rewardActivities = rewardActivityApi.getMatchRewardActivityList(
convertSet(result.getItems(), TradePriceCalculateRespBO.OrderItem::getSpuId));
convertSet(result.getItems(), TradePriceCalculateRespBO.OrderItem::getSpuId)).getCheckedData();
if (CollUtil.isEmpty(rewardActivities)) {
return;
}

View File

@@ -59,7 +59,7 @@ public class TradeSeckillActivityPriceCalculator implements TradePriceCalculator
private SeckillValidateJoinRespDTO validateJoinSeckill(Long userId, Long activityId, Long skuId, Integer count) {
// 1. 校验是否可以参与秒杀
SeckillValidateJoinRespDTO seckillActivity = seckillActivityApi.validateJoinSeckill(activityId, skuId, count);
SeckillValidateJoinRespDTO seckillActivity = seckillActivityApi.validateJoinSeckill(activityId, skuId, count).getCheckedData();
// 2. 校验总限购数量,目前只有 trade 有具体下单的数据,需要交给 trade 价格计算使用
int seckillProductCount = tradeOrderQueryService.getSeckillProductCount(userId, activityId);
if (seckillProductCount + count > seckillActivity.getTotalLimitCount()) {