liujie
2026-04-14 4493ed5c6fdf0bbea004c2b9314f3c5b29223a60
修改bug
3个文件已修改
58 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCollectAddrController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpAppUserCollectAddrService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCollectAddrServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCollectAddrController.java
@@ -9,12 +9,15 @@
import com.xiaopeng.unifiedverification.interceptor.XpClientCheck;
import io.swagger.annotations.ApiOperation;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
 * <p>
@@ -68,4 +71,21 @@
    /**
     * 根据用户id获取收藏点位id列表
     */
    @GetMapping("/logan/rt/v1/appUser/collectAddr/getPointIds")
    @ApiOperation(value = "根据用户id获取收藏点位id列表", tags = {"内部接口"})
    public R<List<Long>> getPointIdsByUserId(@RequestParam("uid") Long uid) {
        return R.ok(xpAppUserCollectAddrService.getPointIdsByUserId(uid));
    }
    /**
     * 根据用户id获取收藏场站id列表
     */
    @GetMapping("/logan/rt/v1/appUser/collectAddr/getStationIds")
    @ApiOperation(value = "根据用户id获取收藏场站id列表", tags = {"内部接口"})
    public R<List<Long>> getStationIdsByUserId(@RequestParam("uid") Long uid) {
        return R.ok(xpAppUserCollectAddrService.getStationIdsByUserId(uid));
    }
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpAppUserCollectAddrService.java
@@ -6,6 +6,7 @@
import com.xiaopeng.account.model.vo.XpAppUserCollectAddrVO;
import com.xiaopeng.api.model.account.XpAppUserCollectAddr;
import com.xiaopeng.common.core.web.page.PageInfo;
import java.util.List;
/**
 * <p>
@@ -36,4 +37,8 @@
     */
    PageInfo<XpAppUserCollectAddrVO> userCollectAddrList(XpUserCollectAddrListQuery query, String uid);
    List<Long> getPointIdsByUserId(Long uid);
    List<Long> getStationIdsByUserId(Long uid);
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCollectAddrServiceImpl.java
@@ -14,6 +14,10 @@
import com.xiaopeng.common.core.web.page.PageInfo;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
 * <p>
 * 用户收藏地址 服务实现类
@@ -27,6 +31,7 @@
    private static final int COLLECT_TYPE_ADD = 1;
    private static final int COLLECT_TYPE_CANCEL = 2;
    private static final int ITEM_TYPE_POINT = 1;
    private static final int ITEM_TYPE_STATION = 2;
    private static final int COLLECT_LIMIT = 50;
@@ -93,6 +98,28 @@
        return resultPage;
    }
    @Override
    public List<Long> getPointIdsByUserId(Long uid) {
        return this.list(buildUserCollectQuery(uid)
                        .eq(XpAppUserCollectAddr::getItemType, ITEM_TYPE_POINT))
                .stream()
                .map(XpAppUserCollectAddr::getPointId)
                .filter(Objects::nonNull)
                .distinct()
                .collect(Collectors.toList());
    }
    @Override
    public List<Long> getStationIdsByUserId(Long uid) {
        return this.list(buildUserCollectQuery(uid)
                        .eq(XpAppUserCollectAddr::getItemType, ITEM_TYPE_STATION))
                .stream()
                .map(XpAppUserCollectAddr::getStationId)
                .filter(Objects::nonNull)
                .distinct()
                .collect(Collectors.toList());
    }
    /**
     * 将前端传入的站点/场站目标解析成统一收藏目标。
     * 优先按 itemType 判断,未传时兼容旧逻辑按 pointId 处理。
@@ -132,6 +159,12 @@
        return wrapper;
    }
    private LambdaQueryWrapper<XpAppUserCollectAddr> buildUserCollectQuery(Long uid) {
        return new LambdaQueryWrapper<XpAppUserCollectAddr>()
                .eq(XpAppUserCollectAddr::getAppUserId, uid)
                .eq(XpAppUserCollectAddr::getDeleted, 0);
    }
    private boolean isStationItem(CollectAddrDTO dto) {
        return dto.getItemType() != null && dto.getItemType() == ITEM_TYPE_STATION;
    }