diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/HaoKaProductController.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/HaoKaProductController.java index 1574484419..1847cda040 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/HaoKaProductController.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/product/HaoKaProductController.java @@ -95,14 +95,6 @@ public class HaoKaProductController { // ==================== 子表(产品对接上游配置) ==================== - @GetMapping("/superior-product-config/page") - @Operation(summary = "获得产品对接上游配置分页") - @Parameter(name = "haokaProductId", description = "产品ID") - @PreAuthorize("@ss.hasPermission('haoka:hao-ka-product:query')") - public CommonResult> getSuperiorProductConfigPage(PageParam pageReqVO, - @RequestParam("haokaProductId") Long haokaProductId) { - return success(haoKaProductService.getSuperiorProductConfigPage(pageReqVO, haokaProductId)); - } @PostMapping("/superior-product-config/create") @Operation(summary = "创建产品对接上游配置") @@ -128,12 +120,4 @@ public class HaoKaProductController { return success(true); } - @GetMapping("/superior-product-config/get") - @Operation(summary = "获得产品对接上游配置") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('haoka:hao-ka-product:query')") - public CommonResult getSuperiorProductConfig(@RequestParam("id") Long id) { - return success(haoKaProductService.getSuperiorProductConfig(id)); - } - -} \ No newline at end of file +} diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/SuperiorApiController.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/SuperiorApiController.java index b37d80244b..4270897f48 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/SuperiorApiController.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorapi/SuperiorApiController.java @@ -193,14 +193,6 @@ public class SuperiorApiController { // ==================== 子表(产品对接上游配置) ==================== - @GetMapping("/superior-product-config/page") - @Operation(summary = "获得产品对接上游配置分页") - @Parameter(name = "haokaSuperiorApiId", description = "ID") - @PreAuthorize("@ss.hasPermission('haoka:superior-api:query')") - public CommonResult> getSuperiorProductConfigPage(PageParam pageReqVO, - @RequestParam("haokaSuperiorApiId") Long haokaSuperiorApiId) { - return success(superiorApiService.getSuperiorProductConfigPage(pageReqVO, haokaSuperiorApiId)); - } @PostMapping("/superior-product-config/create") @Operation(summary = "创建产品对接上游配置") @@ -226,12 +218,4 @@ public class SuperiorApiController { return success(true); } - @GetMapping("/superior-product-config/get") - @Operation(summary = "获得产品对接上游配置") - @Parameter(name = "id", description = "编号", required = true) - @PreAuthorize("@ss.hasPermission('haoka:superior-api:query')") - public CommonResult getSuperiorProductConfig(@RequestParam("id") Long id) { - return success(superiorApiService.getSuperiorProductConfig(id)); - } - } diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/SuperiorProductConfigController.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/SuperiorProductConfigController.java index 4478da3b86..44f206daa1 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/SuperiorProductConfigController.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/SuperiorProductConfigController.java @@ -1,5 +1,11 @@ package cn.iocoder.yudao.module.haoka.controller.admin.superiorproductconfig; +import cn.iocoder.yudao.module.haoka.controller.admin.product.vo.HaoKaProductRespVO; +import cn.iocoder.yudao.module.haoka.controller.admin.superiorapi.vo.SuperiorApiRespVO; +import cn.iocoder.yudao.module.haoka.dal.dataobject.product.HaoKaProductDO; +import cn.iocoder.yudao.module.haoka.dal.dataobject.superiorapi.SuperiorApiDO; +import cn.iocoder.yudao.module.haoka.service.product.HaoKaProductService; +import cn.iocoder.yudao.module.haoka.service.superiorapi.SuperiorApiService; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -11,18 +17,22 @@ import io.swagger.v3.oas.annotations.Operation; import jakarta.validation.constraints.*; import jakarta.validation.*; import jakarta.servlet.http.*; + import java.util.*; import java.io.IOException; +import java.util.stream.Collectors; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; + import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; + import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*; import cn.iocoder.yudao.module.haoka.controller.admin.superiorproductconfig.vo.*; @@ -38,6 +48,11 @@ public class SuperiorProductConfigController { @Resource private SuperiorProductConfigService superiorProductConfigService; + @Resource + private SuperiorApiService superiorApiService; + @Resource + private HaoKaProductService haoKaProductService; + @PostMapping("/create") @Operation(summary = "创建产品对接上游配置") @PreAuthorize("@ss.hasPermission('haoka:superior-product-config:create')") @@ -68,7 +83,12 @@ public class SuperiorProductConfigController { @PreAuthorize("@ss.hasPermission('haoka:superior-product-config:query')") public CommonResult getSuperiorProductConfig(@RequestParam("id") Long id) { SuperiorProductConfigDO superiorProductConfig = superiorProductConfigService.getSuperiorProductConfig(id); - return success(BeanUtils.toBean(superiorProductConfig, SuperiorProductConfigRespVO.class)); + SuperiorApiDO superiorApi = superiorApiService.getSuperiorApi(superiorProductConfig.getHaokaSuperiorApiId()); + HaoKaProductDO haoKaProduct = haoKaProductService.getHaoKaProduct(superiorProductConfig.getHaokaProductId()); + SuperiorProductConfigRespVO bean = BeanUtils.toBean(superiorProductConfig, SuperiorProductConfigRespVO.class); + bean.setSuperiorApiRespVO(BeanUtils.toBean(superiorApi, SuperiorApiRespVO.class)); + bean.setHaoKaProductRespVO(BeanUtils.toBean(haoKaProduct, HaoKaProductRespVO.class)); + return success(bean); } @GetMapping("/page") @@ -76,7 +96,38 @@ public class SuperiorProductConfigController { @PreAuthorize("@ss.hasPermission('haoka:superior-product-config:query')") public CommonResult> getSuperiorProductConfigPage(@Valid SuperiorProductConfigPageReqVO pageReqVO) { PageResult pageResult = superiorProductConfigService.getSuperiorProductConfigPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, SuperiorProductConfigRespVO.class)); + if (pageResult.getList().isEmpty()){ + return success(BeanUtils.toBean(pageResult, SuperiorProductConfigRespVO.class)); + } + + Map superiorApi = superiorApiService + .listByIds(pageResult.getList() + .stream() + .map(SuperiorProductConfigDO::getHaokaSuperiorApiId) + .collect(Collectors.toList()) + ).stream().collect(Collectors.toMap(SuperiorApiDO::getId, obj -> obj)); + + Map haoKaProduct = haoKaProductService + .listByIds(pageResult.getList() + .stream() + .map(SuperiorProductConfigDO::getHaokaProductId) + .collect(Collectors.toList())) + .stream() + .collect(Collectors.toMap(HaoKaProductDO::getId, obj -> obj)); + + PageResult result = BeanUtils.toBean(pageResult, SuperiorProductConfigRespVO.class); + result.getList().forEach(one -> { + HaoKaProductDO source = haoKaProduct.get(one.getHaokaProductId()); + if (source != null) { + one.setHaoKaProductRespVO(BeanUtils.toBean(source, HaoKaProductRespVO.class)); + } + SuperiorApiDO superiorApiDO = superiorApi.get(one.getHaokaSuperiorApiId()); + if (superiorApiDO != null) { + one.setSuperiorApiRespVO(BeanUtils.toBean(superiorApiDO, SuperiorApiRespVO.class)); + } + }); + + return success(result); } @GetMapping("/export-excel") @@ -84,12 +135,12 @@ public class SuperiorProductConfigController { @PreAuthorize("@ss.hasPermission('haoka:superior-product-config:export')") @ApiAccessLog(operateType = EXPORT) public void exportSuperiorProductConfigExcel(@Valid SuperiorProductConfigPageReqVO pageReqVO, - HttpServletResponse response) throws IOException { + HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); List list = superiorProductConfigService.getSuperiorProductConfigPage(pageReqVO).getList(); // 导出 Excel ExcelUtils.write(response, "产品对接上游配置.xls", "数据", SuperiorProductConfigRespVO.class, - BeanUtils.toBean(list, SuperiorProductConfigRespVO.class)); + BeanUtils.toBean(list, SuperiorProductConfigRespVO.class)); } -} \ No newline at end of file +} diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigRespVO.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigRespVO.java index 68f74b0298..69c528ef28 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigRespVO.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/controller/admin/superiorproductconfig/vo/SuperiorProductConfigRespVO.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.haoka.controller.admin.superiorproductconfig.vo; +import cn.iocoder.yudao.module.haoka.controller.admin.product.vo.HaoKaProductRespVO; +import cn.iocoder.yudao.module.haoka.controller.admin.superiorapi.vo.SuperiorApiRespVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -22,6 +24,9 @@ public class SuperiorProductConfigRespVO { @ExcelProperty("上游接口ID") private Long haokaSuperiorApiId; + @ExcelIgnore + private SuperiorApiRespVO superiorApiRespVO; + @Schema(description = "对应上游编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "31755") @ExcelProperty("对应上游编码") private String superiorCode; @@ -30,6 +35,9 @@ public class SuperiorProductConfigRespVO { @ExcelProperty("产品ID") private Long haokaProductId; + @ExcelIgnore + private HaoKaProductRespVO haoKaProductRespVO; + @Schema(description = "是否已配置", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty(value = "是否已配置", converter = DictConvert.class) @DictFormat("infra_boolean_string") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中 diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/HaoKaProductService.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/HaoKaProductService.java index d3cd8dcfc5..6ba283a5d7 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/HaoKaProductService.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/HaoKaProductService.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.haoka.service.product; import java.util.*; + +import com.baomidou.mybatisplus.extension.service.IService; import jakarta.validation.*; import cn.iocoder.yudao.module.haoka.controller.admin.product.vo.*; import cn.iocoder.yudao.module.haoka.dal.dataobject.product.HaoKaProductDO; @@ -13,7 +15,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; * * @author 芋道源码 */ -public interface HaoKaProductService { +public interface HaoKaProductService extends IService { /** * 创建产品/渠道 @@ -55,15 +57,6 @@ public interface HaoKaProductService { // ==================== 子表(产品对接上游配置) ==================== - /** - * 获得产品对接上游配置分页 - * - * @param pageReqVO 分页查询 - * @param haokaProductId 产品ID - * @return 产品对接上游配置分页 - */ - PageResult getSuperiorProductConfigPage(PageParam pageReqVO, Long haokaProductId); - /** * 创建产品对接上游配置 * @@ -86,12 +79,6 @@ public interface HaoKaProductService { */ void deleteSuperiorProductConfig(Long id); - /** - * 获得产品对接上游配置 - * - * @param id 编号 - * @return 产品对接上游配置 - */ - SuperiorProductConfigDO getSuperiorProductConfig(Long id); -} \ No newline at end of file + +} diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/HaoKaProductServiceImpl.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/HaoKaProductServiceImpl.java index a7e0a61d73..b4646366b5 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/HaoKaProductServiceImpl.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/product/HaoKaProductServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.haoka.service.product; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -26,7 +27,7 @@ import static cn.iocoder.yudao.module.haoka.enums.ErrorCodeConstants.*; */ @Service @Validated -public class HaoKaProductServiceImpl implements HaoKaProductService { +public class HaoKaProductServiceImpl extends ServiceImpl implements HaoKaProductService { @Resource private HaoKaProductMapper haoKaProductMapper; @@ -81,11 +82,6 @@ public class HaoKaProductServiceImpl implements HaoKaProductService { // ==================== 子表(产品对接上游配置) ==================== - @Override - public PageResult getSuperiorProductConfigPage(PageParam pageReqVO, Long haokaProductId) { - return superiorProductConfigMapper.selectPageByHaokaProductId(pageReqVO, haokaProductId); - } - @Override public Long createSuperiorProductConfig(SuperiorProductConfigDO superiorProductConfig) { superiorProductConfigMapper.insert(superiorProductConfig); @@ -109,10 +105,7 @@ public class HaoKaProductServiceImpl implements HaoKaProductService { superiorProductConfigMapper.deleteById(id); } - @Override - public SuperiorProductConfigDO getSuperiorProductConfig(Long id) { - return superiorProductConfigMapper.selectById(id); - } + private void validateSuperiorProductConfigExists(Long id) { if (superiorProductConfigMapper.selectById(id) == null) { diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiService.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiService.java index b1c29c9bb0..540d7cbd8d 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiService.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiService.java @@ -1,6 +1,8 @@ package cn.iocoder.yudao.module.haoka.service.superiorapi; import java.util.*; + +import com.baomidou.mybatisplus.extension.service.IService; import jakarta.validation.*; import cn.iocoder.yudao.module.haoka.controller.admin.superiorapi.vo.*; import cn.iocoder.yudao.module.haoka.dal.dataobject.superiorapi.SuperiorApiDO; @@ -15,7 +17,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam; * * @author 芋道源码 */ -public interface SuperiorApiService { +public interface SuperiorApiService extends IService { /** * 创建上游API接口 diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiServiceImpl.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiServiceImpl.java index 662c80eae2..a8fde66b23 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiServiceImpl.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorapi/SuperiorApiServiceImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.haoka.service.superiorapi; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -31,7 +32,7 @@ import static cn.iocoder.yudao.module.haoka.enums.ErrorCodeConstants.*; */ @Service @Validated -public class SuperiorApiServiceImpl implements SuperiorApiService { +public class SuperiorApiServiceImpl extends ServiceImpl implements SuperiorApiService { @Resource private SuperiorApiMapper superiorApiMapper; diff --git a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorproductconfig/SuperiorProductConfigServiceImpl.java b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorproductconfig/SuperiorProductConfigServiceImpl.java index 062fc4cd5e..a437d4056d 100644 --- a/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorproductconfig/SuperiorProductConfigServiceImpl.java +++ b/yudao-module-haoka/yudao-module-haoka-biz/src/main/java/cn/iocoder/yudao/module/haoka/service/superiorproductconfig/SuperiorProductConfigServiceImpl.java @@ -1,11 +1,13 @@ package cn.iocoder.yudao.module.haoka.service.superiorproductconfig; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; import java.util.*; + import cn.iocoder.yudao.module.haoka.controller.admin.superiorproductconfig.vo.*; import cn.iocoder.yudao.module.haoka.dal.dataobject.superiorproductconfig.SuperiorProductConfigDO; import cn.iocoder.yudao.framework.common.pojo.PageResult; @@ -24,7 +26,9 @@ import static cn.iocoder.yudao.module.haoka.enums.ErrorCodeConstants.*; */ @Service @Validated -public class SuperiorProductConfigServiceImpl implements SuperiorProductConfigService { +public class SuperiorProductConfigServiceImpl + extends ServiceImpl + implements SuperiorProductConfigService { @Resource private SuperiorProductConfigMapper superiorProductConfigMapper; @@ -71,4 +75,4 @@ public class SuperiorProductConfigServiceImpl implements SuperiorProductConfigSe return superiorProductConfigMapper.selectPage(pageReqVO); } -} \ No newline at end of file +}