promotion:code review 拼团相关的部分代码

This commit is contained in:
YunaiV 2023-10-07 22:47:45 +08:00
parent ec2c3e508a
commit c917f01d83
9 changed files with 22 additions and 13 deletions

View File

@ -52,11 +52,11 @@ public class AppActivityController {
@Operation(summary = "获得多个商品,近期参与的每个活动") // 每种活动只返回一个key SPU 编号 @Operation(summary = "获得多个商品,近期参与的每个活动") // 每种活动只返回一个key SPU 编号
@Parameter(name = "spuIds", description = "商品编号数组", required = true) @Parameter(name = "spuIds", description = "商品编号数组", required = true)
public CommonResult<Map<Long, List<AppActivityRespVO>>> getActivityListBySpuIds(@RequestParam("spuIds") List<Long> spuIds) { public CommonResult<Map<Long, List<AppActivityRespVO>>> getActivityListBySpuIds(@RequestParam("spuIds") List<Long> spuIds) {
if (CollUtil.isEmpty(spuIds)) { if (CollUtil.isEmpty(spuIds)) {
return success(MapUtil.empty()); return success(MapUtil.empty());
} }
// TODO @puhui999要避免这种 1+n 的查询
Map<Long, List<AppActivityRespVO>> map = new HashMap<>(spuIds.size()); Map<Long, List<AppActivityRespVO>> map = new HashMap<>(spuIds.size());
spuIds.forEach(spuId -> { spuIds.forEach(spuId -> {
map.put(spuId, getAppActivityRespVOList(spuId)); map.put(spuId, getAppActivityRespVOList(spuId));
@ -65,35 +65,38 @@ public class AppActivityController {
} }
private List<AppActivityRespVO> getAppActivityRespVOList(Long spuId) { private List<AppActivityRespVO> getAppActivityRespVOList(Long spuId) {
List<AppActivityRespVO> respList = new ArrayList<>(); List<AppActivityRespVO> activityList = new ArrayList<>();
// 拼团活动
CombinationActivityDO combination = combinationActivityService.getCombinationActivityBySpuId(spuId); CombinationActivityDO combination = combinationActivityService.getCombinationActivityBySpuId(spuId);
if (combination != null) { if (combination != null) {
respList.add(new AppActivityRespVO() activityList.add(new AppActivityRespVO()
.setId(combination.getId()) .setId(combination.getId())
.setType(PromotionTypeEnum.COMBINATION_ACTIVITY.getType()) .setType(PromotionTypeEnum.COMBINATION_ACTIVITY.getType())
.setName(combination.getName()) .setName(combination.getName())
.setStartTime(combination.getStartTime()) .setStartTime(combination.getStartTime())
.setEndTime(combination.getEndTime())); .setEndTime(combination.getEndTime()));
} }
// 秒杀活动
SeckillActivityDO seckill = seckillActivityService.getSeckillActivityBySpuId(spuId); SeckillActivityDO seckill = seckillActivityService.getSeckillActivityBySpuId(spuId);
if (seckill != null) { if (seckill != null) {
respList.add(new AppActivityRespVO() activityList.add(new AppActivityRespVO()
.setId(seckill.getId()) .setId(seckill.getId())
.setType(PromotionTypeEnum.SECKILL_ACTIVITY.getType()) .setType(PromotionTypeEnum.SECKILL_ACTIVITY.getType())
.setName(seckill.getName()) .setName(seckill.getName())
.setStartTime(seckill.getStartTime()) .setStartTime(seckill.getStartTime())
.setEndTime(seckill.getEndTime())); .setEndTime(seckill.getEndTime()));
} }
// 秒杀活动
BargainActivityDO bargain = bargainActivityService.getBargainActivityBySpuId(spuId); BargainActivityDO bargain = bargainActivityService.getBargainActivityBySpuId(spuId);
if (bargain != null) { if (bargain != null) {
respList.add(new AppActivityRespVO() activityList.add(new AppActivityRespVO()
.setId(bargain.getId()) .setId(bargain.getId())
.setType(PromotionTypeEnum.BARGAIN_ACTIVITY.getType()) .setType(PromotionTypeEnum.BARGAIN_ACTIVITY.getType())
.setName(bargain.getName()) .setName(bargain.getName())
.setStartTime(bargain.getStartTime()) .setStartTime(bargain.getStartTime())
.setEndTime(bargain.getEndTime())); .setEndTime(bargain.getEndTime()));
} }
return respList; return activityList;
} }
} }

View File

@ -76,6 +76,8 @@ public class CombinationRecordDO extends BaseDO {
* 用户编号 * 用户编号
*/ */
private Long userId; private Long userId;
// TODO @puhui999要不去掉这 2 个字段通过读取解决如果去掉相关接口都要处理下哈
/** /**
* 用户昵称 * 用户昵称
*/ */

View File

@ -83,6 +83,7 @@ public interface BargainActivityMapper extends BaseMapperX<BargainActivityDO> {
.last("LIMIT " + count)); .last("LIMIT " + count));
} }
// TODO @puhui999需要开启状态另外是不是可以 limit1不用 throwEx = false 处理呀另外时间要满足噢
default BargainActivityDO selectOne(Long spuId) { default BargainActivityDO selectOne(Long spuId) {
return selectOne(new LambdaQueryWrapperX<BargainActivityDO>() return selectOne(new LambdaQueryWrapperX<BargainActivityDO>()
.eq(BargainActivityDO::getSpuId, spuId) .eq(BargainActivityDO::getSpuId, spuId)

View File

@ -40,6 +40,7 @@ public interface CombinationActivityMapper extends BaseMapperX<CombinationActivi
.last("LIMIT " + count)); .last("LIMIT " + count));
} }
// TODO @puhui999需要开启状态另外是不是可以 limit1不用 throwEx = false 处理呀另外时间要满足噢
default CombinationActivityDO selectOne(Long spuId) { default CombinationActivityDO selectOne(Long spuId) {
return selectOne(new LambdaQueryWrapperX<CombinationActivityDO>() return selectOne(new LambdaQueryWrapperX<CombinationActivityDO>()
.eq(CombinationActivityDO::getSpuId, spuId) .eq(CombinationActivityDO::getSpuId, spuId)

View File

@ -84,8 +84,8 @@ public interface CombinationRecordMapper extends BaseMapperX<CombinationRecordDO
default List<CombinationRecordDO> selectListByActivityIdAndStatusAndHeadId(Long activityId, Integer status, default List<CombinationRecordDO> selectListByActivityIdAndStatusAndHeadId(Long activityId, Integer status,
Long headId, Integer count) { Long headId, Integer count) {
return selectList(new LambdaQueryWrapperX<CombinationRecordDO>() return selectList(new LambdaQueryWrapperX<CombinationRecordDO>()
.eq(CombinationRecordDO::getActivityId, activityId) .eqIfPresent(CombinationRecordDO::getActivityId, activityId)
.eq(CombinationRecordDO::getStatus, status) .eqIfPresent(CombinationRecordDO::getStatus, status)
.eq(CombinationRecordDO::getHeadId, headId) .eq(CombinationRecordDO::getHeadId, headId)
.orderByDesc(CombinationRecordDO::getId) .orderByDesc(CombinationRecordDO::getId)
.last("LIMIT " + count)); .last("LIMIT " + count));

View File

@ -56,6 +56,7 @@ public interface SeckillActivityMapper extends BaseMapperX<SeckillActivityDO> {
.apply(ObjectUtil.isNotNull(pageReqVO.getConfigId()), "FIND_IN_SET(" + pageReqVO.getConfigId() + ",config_ids) > 0")); .apply(ObjectUtil.isNotNull(pageReqVO.getConfigId()), "FIND_IN_SET(" + pageReqVO.getConfigId() + ",config_ids) > 0"));
} }
// TODO @puhui999需要开启状态另外是不是可以 limit1不用 throwEx = false 处理呀另外时间要满足噢
default SeckillActivityDO selectOne(Long spuId) { default SeckillActivityDO selectOne(Long spuId) {
return selectOne(new LambdaQueryWrapperX<SeckillActivityDO>() return selectOne(new LambdaQueryWrapperX<SeckillActivityDO>()
.eq(SeckillActivityDO::getSpuId, spuId) .eq(SeckillActivityDO::getSpuId, spuId)

View File

@ -67,6 +67,7 @@ public class CombinationRecordServiceImpl implements CombinationRecordService {
@Resource @Resource
private TradeOrderApi tradeOrderApi; private TradeOrderApi tradeOrderApi;
// TODO @芋艿在详细预览下
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateCombinationRecordStatusByUserIdAndOrderId(Integer status, Long userId, Long orderId) { public void updateCombinationRecordStatusByUserIdAndOrderId(Integer status, Long userId, Long orderId) {
@ -78,6 +79,7 @@ public class CombinationRecordServiceImpl implements CombinationRecordService {
recordMapper.updateById(record); recordMapper.updateById(record);
} }
// TODO @芋艿在详细预览下
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateRecordStatusAndStartTimeByUserIdAndOrderId(Integer status, Long userId, Long orderId, LocalDateTime startTime) { public void updateRecordStatusAndStartTimeByUserIdAndOrderId(Integer status, Long userId, Long orderId, LocalDateTime startTime) {

View File

@ -16,7 +16,7 @@ public enum TradeOrderOperateTypeEnum {
MEMBER_CREATE(1, "用户下单"), MEMBER_CREATE(1, "用户下单"),
ADMIN_UPDATE_PRICE(2, "订单价格 {oldPayPrice} 修改,实际支付金额为 {newPayPrice} 元"), ADMIN_UPDATE_PRICE(2, "订单价格 {oldPayPrice} 修改,实际支付金额为 {newPayPrice} 元"),
MEMBER_PAY(10, "用户付款成功"), MEMBER_PAY(10, "用户付款成功"),
SYSTEM_UP_ADDRESS(11, "订单 {orderId} 收货地址修改"), ADMIN_UPDATE_ADDRESS(11, "收货地址修改"),
ADMIN_DELIVERY(20, "已发货,快递公司:{deliveryName},快递单号:{logisticsNo}"), ADMIN_DELIVERY(20, "已发货,快递公司:{deliveryName},快递单号:{logisticsNo}"),
MEMBER_RECEIVE(30, "用户已收货"), MEMBER_RECEIVE(30, "用户已收货"),
SYSTEM_RECEIVE(31, "到期未收货,系统自动确认收货"), SYSTEM_RECEIVE(31, "到期未收货,系统自动确认收货"),

View File

@ -738,19 +738,18 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
} }
@Override @Override
@TradeOrderLog(operateType = TradeOrderOperateTypeEnum.SYSTEM_UP_ADDRESS) @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.ADMIN_UPDATE_ADDRESS)
public void updateOrderAddress(TradeOrderUpdateAddressReqVO reqVO) { public void updateOrderAddress(TradeOrderUpdateAddressReqVO reqVO) {
// 校验交易订单 // 校验交易订单
TradeOrderDO order = validateOrderExists(reqVO.getId()); TradeOrderDO order = validateOrderExists(reqVO.getId());
// TODO @puhui999是否需要校验订单是否发货 // TODO @puhui999是否需要校验订单是否发货
// TODO 发货后是否支持修改收货地址 // TODO 发货后是否支持修改收货地址回答发货后不允许修改
// 更新 // 更新
tradeOrderMapper.updateById(TradeOrderConvert.INSTANCE.convert(reqVO)); tradeOrderMapper.updateById(TradeOrderConvert.INSTANCE.convert(reqVO));
// 记录订单日志 // 记录订单日志
TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus(), TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), order.getStatus());
MapUtil.<String, Object>builder().put("orderId", order.getId()).build());
} }
@Override @Override