From ccbd86bc5f747b748b5bde257a789d748b8cefbb Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 11 Sep 2025 17:41:35 +0800 Subject: [PATCH] ``` refactor(service): 在设置活动类别名称前增加非空检查在AdminHappyActivityServiceImpl.java中,对happyActivity的categoryId进行了非空检查,并且确认categoryMap中包含该categoryId后,再设置其categoryName。这样可以避免因为空值或不存在的键导致的潜在异常。 ``` --- src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java | 89 ++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 84 insertions(+), 5 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java index 737c688..45e798e 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminHappyActivityServiceImpl.java @@ -12,8 +12,11 @@ import cc.mrbird.febs.mall.service.IAdminHappyActivityService; import cc.mrbird.febs.mall.vo.AdminMallGoodsCommentVo; import cc.mrbird.febs.mall.vo.activity.AdminActivityCommentVo; +import cc.mrbird.febs.mall.vo.activity.AdminHappyActivityOrderCheckVo; +import cc.mrbird.febs.rabbit.producter.AgentProducer; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -25,10 +28,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; @Slf4j @@ -44,6 +44,7 @@ private final HappyActivityOrderItemMapper happyActivityOrderItemMapper; private final HappyFollowMapper happyFollowMapper; private final MallMemberMapper mallMemberMapper; + private final AgentProducer agentProducer; @Override public IPage<HappyActivityCategory> getGroupList(AdminHappyActivityCategoryDto dto, QueryRequest request) { @@ -158,7 +159,11 @@ Map<Long, HappyActivityCategory> categoryMap = happyActivityCategories.stream().collect(Collectors.toMap(HappyActivityCategory::getId, happyActivityCategory -> happyActivityCategory)); for (HappyActivity happyActivity : records){ - happyActivity.setCategoryName(categoryMap.get(happyActivity.getCategoryId()).getName()); + if(ObjectUtil.isNotNull(happyActivity.getCategoryId()) + && categoryMap.containsKey(happyActivity.getCategoryId()) + ){ + happyActivity.setCategoryName(categoryMap.get(happyActivity.getCategoryId()).getName()); + } } } } @@ -223,6 +228,8 @@ happyActivity.setBackImg(dto.getBackImg()); happyActivity.setVoteCnt(dto.getVoteCnt()); happyActivity.setAddState(dto.getAddState()); + happyActivity.setScoreCnt(dto.getScoreCnt()); + happyActivity.setGrowthCnt(dto.getGrowthCnt()); this.baseMapper.updateById(happyActivity); return new FebsResponse().success().message("操作成功"); @@ -389,6 +396,7 @@ if(CollUtil.isNotEmpty(happyActivityOrderItems)){ happyActivityOrderItems.forEach(happyActivityOrderItem -> { happyActivityOrderItem.setState(StateUpDownEnum.UP.getCode()); + happyActivityOrderItem.setUpdatedTime(DateUtil.date()); happyActivityOrderItemMapper.updateById(happyActivityOrderItem); }); } @@ -445,4 +453,75 @@ happyActivityCommentMapper.updateById(happyActivityComment); return new FebsResponse().success().message("操作成功"); } + + @Override + public List<HappyActivityOrder> getOrderListForExport(Map<String, String> params) { + LambdaQueryWrapper<HappyActivityOrder> queryWrapper = new LambdaQueryWrapper<>(); + if(ObjectUtil.isNotEmpty(params.get("activityId"))){ + queryWrapper.eq(HappyActivityOrder::getActivityId, Long.valueOf(params.get("activityId"))); + } + List<Integer> stateList = Arrays.asList(StateUpDownEnum.ORDER_STATE_WAIT_USE.getCode(), StateUpDownEnum.ORDER_STATE_USED.getCode()); + queryWrapper.in(HappyActivityOrder::getState, stateList); + queryWrapper.eq(HappyActivityOrder::getDeleteFlag, StateUpDownEnum.DOWN.getCode()); + queryWrapper.orderByDesc(HappyActivityOrder::getState); + queryWrapper.orderByDesc(HappyActivityOrder::getId); + List<HappyActivityOrder> happyActivityOrders = happyActivityOrderMapper.selectList(queryWrapper); + + if(CollUtil.isNotEmpty(happyActivityOrders)){ + Set<Long> collect = happyActivityOrders.stream().map(HappyActivityOrder::getMemberId).collect(Collectors.toSet()); + List<MallMember> mallMembers = mallMemberMapper.selectList( + new LambdaQueryWrapper<MallMember>() + .select(MallMember::getId,MallMember::getName) + .in(MallMember::getId, collect) + ); + Map<Long, MallMember> mallMemberMap = mallMembers.stream().collect(Collectors.toMap(MallMember::getId, mallMember -> mallMember)); + + happyActivityOrders.forEach(happyActivityOrder -> { + MallMember mallMember = mallMemberMap.get(happyActivityOrder.getMemberId()); + if (ObjectUtil.isNotEmpty(mallMember)){ + happyActivityOrder.setName(mallMember.getName()); + }else{ + happyActivityOrder.setName(""); + } + }); + } + return happyActivityOrders; + } + + @Override + public IPage<AdminHappyActivityOrderCheckVo> activityOrderCheckList(AdminHappyActivityOrderCheckDto dto, QueryRequest request) { + + Page<AdminHappyActivityOrderCheckVo> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AdminHappyActivityOrderCheckVo> adminHappyActivityOrderCheckVoIPage = this.baseMapper.activityOrderCheckList(page, dto); + return adminHappyActivityOrderCheckVoIPage; + } + + @Override + public FebsResponse checkOrderItem(List<Long> ids) { + if (CollUtil.isEmpty(ids)){ + return new FebsResponse().fail().message("请选择需要核销的订单"); + } + + List<HappyActivityOrderItem> happyActivityOrderItems = happyActivityOrderItemMapper.selectList( + new LambdaQueryWrapper<HappyActivityOrderItem>() + .in(HappyActivityOrderItem::getId, ids) + .eq(HappyActivityOrderItem::getState, StateUpDownEnum.DOWN.getCode()) + ); + if(CollUtil.isNotEmpty(happyActivityOrderItems)){ + happyActivityOrderItems.forEach(happyActivityOrderItem -> { + happyActivityOrderItem.setState(StateUpDownEnum.UP.getCode()); + happyActivityOrderItem.setUpdatedTime(DateUtil.date()); + happyActivityOrderItemMapper.updateById(happyActivityOrderItem); + + + agentProducer.sendCheckActivityItem(happyActivityOrderItem.getOrderId()); + }); + } + return new FebsResponse().success().message("操作成功"); + } + + @Override + public List<AdminHappyActivityOrderCheckVo> getOrderCheckListForExport(Map<String, String> params) { + return this.baseMapper.getOrderCheckListForExport(Long.valueOf(params.get("activityId"))); + } } -- Gitblit v1.9.1