Merge remote-tracking branch 'origin/feature/mall_product' into feature/mall_product

# Conflicts:
#	sql/mysql/statistics.sql
This commit is contained in:
owen
2023-10-17 16:13:46 +08:00
25 changed files with 263 additions and 309 deletions

View File

@@ -92,21 +92,12 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
default TradeOrderDO selectOneByPickUpVerifyCode(String pickUpVerifyCode) {
return selectOne(TradeOrderDO::getPickUpVerifyCode, pickUpVerifyCode);
}
// TODO @puhui999selectByUserIdAndCombinationActivityIdAndStatus,这样更容易理解哈。
/**
* 只针对 combinationActivityId 的查询
*
* @param userId 用户编号
* @param activityId 拼团活动编号
* @param status 订单状态
* @return 交易订单
*/
default TradeOrderDO selectByUserIdAndActivityIdAndStatus(Long userId, Long activityId, Integer status) {
default TradeOrderDO selectByUserIdAndCombinationActivityIdAndStatus(Long userId, Long combinationActivityId, Integer status) {
return selectOne(new LambdaQueryWrapperX<TradeOrderDO>()
.eq(TradeOrderDO::getUserId, userId)
.eq(TradeOrderDO::getStatus, status)
.eq(TradeOrderDO::getCombinationActivityId, activityId)
.eq(TradeOrderDO::getCombinationActivityId, combinationActivityId)
);
}

View File

@@ -42,11 +42,11 @@ public interface TradeOrderQueryService {
* 获得指定用户,指定活动,指定状态的交易订单
*
* @param userId 用户编号
* @param activityId 活动编号
* @param combinationActivityId 活动编号
* @param status 订单状态
* @return 交易订单
*/
TradeOrderDO getActivityOrderByUserIdAndActivityIdAndStatus(Long userId, Long activityId, Integer status);
TradeOrderDO getOrderByUserIdAndStatusAndCombination(Long userId, Long combinationActivityId, Integer status);
/**
* 获得订单列表

View File

@@ -71,8 +71,8 @@ public class TradeOrderQueryServiceImpl implements TradeOrderQueryService {
}
@Override
public TradeOrderDO getActivityOrderByUserIdAndActivityIdAndStatus(Long userId, Long activityId, Integer status) {
return tradeOrderMapper.selectByUserIdAndActivityIdAndStatus(userId, activityId, status);
public TradeOrderDO getOrderByUserIdAndStatusAndCombination(Long userId, Long combinationActivityId, Integer status) {
return tradeOrderMapper.selectByUserIdAndCombinationActivityIdAndStatus(userId, combinationActivityId, status);
}
@Override

View File

@@ -49,7 +49,7 @@ public class TradeCombinationOrderHandler implements TradeOrderHandler {
order.getCombinationHeadId(), item.getSkuId(), item.getCount());
// 2. 校验该用户是否存在未支付的拼团活动订单,避免一个拼团可以下多个单子了
TradeOrderDO activityOrder = orderQueryService.getActivityOrderByUserIdAndActivityIdAndStatus(
TradeOrderDO activityOrder = orderQueryService.getOrderByUserIdAndStatusAndCombination(
order.getUserId(), order.getCombinationActivityId(), TradeOrderStatusEnum.UNPAID.getStatus());
if (activityOrder != null) {
throw exception(ORDER_CREATE_FAIL_EXIST_UNPAID);
@@ -69,9 +69,8 @@ public class TradeCombinationOrderHandler implements TradeOrderHandler {
CombinationRecordCreateRespDTO combinationRecord = combinationRecordApi.createCombinationRecord(
TradeOrderConvert.INSTANCE.convert(order, item));
// 3. 更新拼团相关信息到订单
// 为什么几个字段都要更新?原因是:
// 如果创建订单时自己是团长的情况下 combinationHeadId 是为 null 的,设置团长编号这个操作时在订单是否后创建拼团记录时才设置的。
// 3. 更新拼团相关信息到订单。为什么几个字段都要更新?
// 原因是:如果创建订单时自己是团长的情况下 combinationHeadId 是为 null 的,设置团长编号这个操作时在订单是否后创建拼团记录时才设置的。
orderUpdateService.updateOrderCombinationInfo(order.getId(), order.getCombinationActivityId(),
combinationRecord.getCombinationRecordId(), combinationRecord.getCombinationHeadId());
}