luofl
2025-02-24 8acc98732aba58ad5c710f92d72e6fa5bf888d11
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -863,5 +863,70 @@
        return R.ok(map);
    }
    /**
     * 获取指定用户的服务商
     * @param userId
     * @return
     */
    @GetMapping("/getServiceProvider")
    public R<Shop> getServiceProvider(Long userId){
        List<AppUser> allSuperiors = getAllSuperiors(userId);
        //当前绑定门店的店铺信息(服务商)
        Shop serviceProvider = null;
        for (AppUser allSuperior : allSuperiors) {
            List<Shop> shopList = shopService.lambdaQuery().eq(Shop::getAppUserId, allSuperior.getId()).eq(Shop::getDelFlag,0).list();
            if (!CollectionUtils.isEmpty(shopList)){
                serviceProvider = shopList.get(0);
                break;
            }
        }
        return R.ok(serviceProvider);
    }
    /**
     * 获取指定用户的高级服务商
     * @return
     */
    @GetMapping("/getSuperiorServiceProvider")
    public R<Shop> getSuperiorServiceProvider(Long userId){
        List<AppUser> allSuperiors = getAllSuperiors(userId);
        Long techerId = null;
        for (AppUser allSuperior : allSuperiors) {
            List<Shop> shopList = shopService.lambdaQuery().eq(Shop::getAppUserId, allSuperior.getId()).eq(Shop::getDelFlag,0).list();
            if (!CollectionUtils.isEmpty(shopList)){
                techerId = allSuperior.getId();
                break;
            }
        }
        if (techerId == null){
            return R.fail("暂无高级服务商");
        }
        List<AppUser> allSuperiors1 = getAllSuperiors(techerId);
        for (AppUser allSuperior : allSuperiors1) {
            List<Shop> shopList = shopService.lambdaQuery().eq(Shop::getAppUserId, allSuperior.getId()).eq(Shop::getDelFlag,0).list();
            if (!CollectionUtils.isEmpty(shopList)){
                return R.ok(shopList.get(0));
            }
        }
        return R.fail("暂无高级服务商");
    }
    public List<AppUser> getAllSuperiors(Long userId) {
        List<AppUser> allSuperiors = new ArrayList<>();
        // 获取当前用户的直接上级
        AppUser currentUser = appUserClient.getAppUserById(userId);
        if (currentUser != null && currentUser.getInviteUserId() != null) {
            AppUser superior = appUserClient.getAppUserById(currentUser.getInviteUserId());
            if (superior != null) {
                allSuperiors.add(superior); // 添加直接上级
                allSuperiors.addAll(getAllSuperiors(superior.getId())); // 递归添加上级的上级
            }
        }
        return allSuperiors;
    }
}