Преглед на файлове

Merge branch 'master' into master-merge

hurx преди 1 месец
родител
ревизия
498b93845f

+ 165 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/mini/MiniCustomerAddressController.java

@@ -0,0 +1,165 @@
+package org.dromara.customer.controller.mini;
+
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.enums.IsDefault;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.customer.domain.bo.CustomerShippingAddressBo;
+import org.dromara.customer.domain.vo.CustomerShippingAddressVo;
+import org.dromara.customer.service.ICustomerShippingAddressService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ *mini端 - 收货地址管理
+ *
+ * @author Claude
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/miniAddress")
+public class MiniCustomerAddressController extends BaseController {
+
+    private final ICustomerShippingAddressService customerShippingAddressService;
+
+    /**
+     *mini 查询当前企业的收货地址列表
+     * mini端用户只能查询自己企业的地址
+     */
+    @GetMapping("/list")
+    public TableDataInfo<CustomerShippingAddressVo> list(CustomerShippingAddressBo bo, PageQuery pageQuery) {
+        // 获取当前登录用户的企业ID
+        Long customerId = LoginHelper.getLoginUser().getCustomerId();
+        // 强制设置企业ID,防止越权访问
+        bo.setCustomerId(customerId);
+
+        return customerShippingAddressService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 获取收货地址详细信息
+     * mini端用户只能查询自己企业的地址
+     *
+     * @param id 主键
+     */
+    @GetMapping("/{id}")
+    public R<CustomerShippingAddressVo> getInfo(@NotNull(message = "主键不能为空")
+                                                @PathVariable("id") Long id) {
+        // 查询地址信息
+        CustomerShippingAddressVo vo = customerShippingAddressService.queryById(id);
+
+        // 验证地址是否属于当前用户的企业
+        if (vo != null) {
+            Long customerId = LoginHelper.getLoginUser().getCustomerId();
+            if (!customerId.equals(vo.getCustomerId())) {
+                return R.fail("无权访问该地址");
+            }
+        }
+
+        return R.ok(vo);
+    }
+
+    /**
+     *mini 新增收货地址
+     */
+    @Log(title = "PC端-收货地址", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody CustomerShippingAddressBo bo) {
+        // 获取当前登录用户的企业ID
+        Long customerId = LoginHelper.getLoginUser().getCustomerId();
+        // 强制设置企业ID,防止为其他企业添加地址
+        bo.setCustomerId(customerId);
+
+        return toAjax(customerShippingAddressService.insertByBo(bo));
+    }
+
+    /**
+     *mini 修改收货地址
+     */
+    @Log(title = "PC端-收货地址", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping()
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody CustomerShippingAddressBo bo) {
+        // 获取当前登录用户的企业ID
+        Long customerId = LoginHelper.getLoginUser().getCustomerId();
+
+        // 验证地址是否属于当前用户的企业
+        CustomerShippingAddressVo existingAddress = customerShippingAddressService.queryById(bo.getId());
+        if (existingAddress == null) {
+            return R.fail("地址不存在");
+        }
+        if (!customerId.equals(existingAddress.getCustomerId())) {
+            return R.fail("无权修改该地址");
+        }
+
+        // 强制设置企业ID
+        bo.setCustomerId(customerId);
+
+        return toAjax(customerShippingAddressService.updateByBo(bo));
+    }
+
+    /**
+     *mini 删除收货地址
+     *
+     * @param ids 主键串
+     */
+    @Log(title = "PC端-收货地址", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable("ids") Long[] ids) {
+        // 获取当前登录用户的企业ID
+        Long customerId = LoginHelper.getLoginUser().getCustomerId();
+
+        // 验证所有地址是否都属于当前用户的企业
+        for (Long id : ids) {
+            CustomerShippingAddressVo address = customerShippingAddressService.queryById(id);
+            if (address == null) {
+                return R.fail("地址ID " + id + " 不存在");
+            }
+            if (!customerId.equals(address.getCustomerId())) {
+                return R.fail("无权删除地址ID " + id);
+            }
+        }
+
+        return toAjax(customerShippingAddressService.deleteWithValidByIds(List.of(ids), true));
+    }
+
+    /**
+     *mini 设置默认地址
+     */
+    @Log(title = "PC端-收货地址", businessType = BusinessType.UPDATE)
+    @PutMapping("/default")
+    public R<Void> changeDefaultAddress(@RequestBody CustomerShippingAddressBo bo) {
+        // 获取当前登录用户的企业ID
+        Long customerId = LoginHelper.getLoginUser().getCustomerId();
+
+        // 验证地址是否属于当前用户的企业
+        CustomerShippingAddressVo address = customerShippingAddressService.queryById(bo.getId());
+        if (address == null) {
+            return R.fail("地址不存在");
+        }
+        if (!customerId.equals(address.getCustomerId())) {
+            return R.fail("无权设置该地址为默认");
+        }
+
+        // 强制设置企业ID
+        bo.setCustomerId(customerId);
+        bo.setDefaultAddress(IsDefault.Yes.getCode());
+
+        return toAjax(customerShippingAddressService.changeDefaultAddress(bo));
+    }
+}

+ 69 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/mini/MiniEnterpriseController.java

@@ -0,0 +1,69 @@
+package org.dromara.customer.controller.mini;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.customer.domain.bo.CustomerInfoBo;
+import org.dromara.customer.domain.vo.CustomerInfoVo;
+import org.dromara.customer.service.ICustomerInfoService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ *mini端 - 企业信息
+ *
+ * @author Claude
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/miniEnterprise")
+public class MiniEnterpriseController extends BaseController {
+
+    private final ICustomerInfoService customerInfoService;
+
+    /**
+     *mini 查询当前企业信息
+     *mini端用户只能查询自己所属企业的信息
+     */
+    @GetMapping("/info")
+    public R<CustomerInfoVo> getInfo() {
+        // 获取当前登录用户的企业ID
+        Long customerId = LoginHelper.getLoginUser().getCustomerId();
+        if (customerId == null) {
+            return R.fail("用户未登录或企业信息不存在");
+        }
+
+        // 查询企业信息
+        CustomerInfoVo vo = customerInfoService.queryById(customerId);
+        if (vo == null) {
+            return R.fail("企业信息不存在");
+        }
+
+        return R.ok(vo);
+    }
+
+    /**
+     *mini 修改当前企业信息
+     * mini端用户只能修改自己所属企业的信息
+     */
+    @Log(title = "PC端-企业信息", businessType = BusinessType.UPDATE)
+    @PutMapping("/updateEnterprise")
+    public R<Void> updateInfo(@Validated @RequestBody CustomerInfoBo bo) {
+        // 获取当前登录用户的企业ID
+        Long customerId = LoginHelper.getLoginUser().getCustomerId();
+        if (customerId == null) {
+            return R.fail("用户未登录或企业信息不存在");
+        }
+
+        // 强制设置企业ID,防止越权修改其他企业信息
+        bo.setId(customerId);
+
+        // 调用Service更新企业信息
+        boolean result = customerInfoService.pcUpdateCustomerInfo(bo);
+        return toAjax(result);
+    }
+}

+ 82 - 0
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/thirdparty/ThirdpartyAfterOrderController.java

@@ -0,0 +1,82 @@
+package org.dromara.external.controller.thirdparty;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyAfterOrderAddBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyAfterOrderBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyAfterOrderListBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartySetAfterStateBo;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyAfterOrderDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyAfterOrderStatusDto;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+/**
+ * 优易达(武汉)有限公司-售后接口
+ */
+@Tag(name = "售后接口")
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/thirdparty")
+public class ThirdpartyAfterOrderController {
+
+    /**
+     * 售后订单新增
+     */
+    @Operation(summary = "售后订单新增")
+    @PostMapping("/AfterOrder/addAfterOrder")
+    public R<String> addAfterOrder(@RequestBody ThirdpartyAfterOrderAddBo bo) {
+        // TODO: 实现售后订单新增逻辑
+        return R.ok("新增成功");
+    }
+
+    /**
+     * 售后订单状态查询
+     */
+    @Operation(summary = "售后订单状态查询")
+    @PostMapping("/AfterOrder/getAfterStatus")
+    public R<ThirdpartyAfterOrderStatusDto> getAfterStatus(@RequestBody ThirdpartyAfterOrderBo bo) {
+        // TODO: 实现售后订单状态查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 售后订单状态修改
+     */
+    @Operation(summary = "售后订单状态修改")
+    @PostMapping("/AfterOrder/setAfterState")
+    public R<String> setAfterState(@RequestBody ThirdpartySetAfterStateBo bo) {
+        // TODO: 实现售后订单状态修改逻辑
+        return R.ok();
+    }
+
+    /**
+     * 售后订单列表查询
+     */
+    @Operation(summary = "售后订单列表查询")
+    @PostMapping("/AfterOrder/getAfterOrderList")
+    public TableDataInfo<ThirdpartyAfterOrderDto> getAfterOrderList(@RequestBody ThirdpartyAfterOrderListBo bo, PageQuery pageQuery) {
+        // TODO: 实现售后订单列表查询逻辑
+        return TableDataInfo.build();
+    }
+
+    /**
+     * 售后订单查询
+     */
+    @Operation(summary = "售后订单查询")
+    @PostMapping("/AfterOrder/getAfterOrder")
+    public R<ThirdpartyAfterOrderDto> getAfterOrder(@RequestBody ThirdpartyAfterOrderBo bo) {
+        // TODO: 实现售后订单查询逻辑
+        return R.ok();
+    }
+}

+ 72 - 0
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/thirdparty/ThirdpartyCommonController.java

@@ -0,0 +1,72 @@
+package org.dromara.external.controller.thirdparty;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.R;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyProductBrandBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyProductUnitBo;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyAreaDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyProductBrandDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyProductCateDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyProductUnitDto;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+import java.util.List;
+
+/**
+ * 优易达(武汉)有限公司-公共数据接口
+ */
+@Tag(name = "公共数据")
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/thirdparty")
+public class ThirdpartyCommonController {
+
+    /**
+     * 获取区域地址
+     */
+    @Operation(summary = "获取区域地址")
+    @PostMapping("/Product/getSysArea")
+    public R<List<ThirdpartyAreaDto>> getSysArea() {
+        // TODO: 实现获取区域地址逻辑
+        return R.ok();
+    }
+
+    /**
+     * 产品分类查询
+     */
+    @Operation(summary = "产品分类查询")
+    @PostMapping("/product/getProductCates")
+    public R<List<ThirdpartyProductCateDto>> getProductCates() {
+        // TODO: 实现产品分类查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 产品品牌查询
+     */
+    @Operation(summary = "产品品牌查询")
+    @PostMapping("/product/getProductBrand")
+    public R<List<ThirdpartyProductBrandDto>> getProductBrand(@RequestBody ThirdpartyProductBrandBo bo) {
+        // TODO: 实现产品品牌查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 产品单位查询
+     */
+    @Operation(summary = "产品单位查询")
+    @PostMapping("/product/getProductUnit")
+    public R<ThirdpartyProductUnitDto> getProductUnit(@RequestBody ThirdpartyProductUnitBo bo) {
+        // TODO: 实现产品单位查询逻辑
+        return R.ok();
+    }
+}

+ 0 - 311
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/thirdparty/ThirdpartyController.java

@@ -1,311 +0,0 @@
-package org.dromara.external.controller.thirdparty;
-
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.external.api.thirdparty.domain.bo.*;
-import org.dromara.external.api.thirdparty.domain.dto.*;
-import org.springframework.validation.annotation.Validated;
-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.RestController;
-
-import java.util.List;
-
-/**
- * 第三方平台接口对接控制器
- * 优易达(武汉)有限公司-平台接口对接稳定V2.0
- * 时间:2026/1/5,19:03
- */
-@Slf4j
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/api/thirdparty")
-public class ThirdpartyController {
-
-    /**
-     * 产品列表查询
-     */
-    @PostMapping("/product/getListProducts")
-    public TableDataInfo<ThirdpartyProductDto> getListProducts(@RequestBody ThirdpartyProductBo bo, PageQuery pageQuery) {
-        // TODO: 实现产品列表查询逻辑
-        return TableDataInfo.build();
-    }
-
-    /**
-     * 产品表体接口
-     */
-    @PostMapping("/product/getProductBody")
-    public R<ThirdpartyProductDto> getProductBody(@RequestBody ThirdpartyProductDetailBo bo) {
-        // TODO: 实现产品表体查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 产品详情查询
-     */
-    @PostMapping("/product/getProductDetails")
-    public R<ThirdpartyProductDetailDto> getProductDetails(@RequestBody ThirdpartyProductDetailBo bo) {
-        // TODO: 实现产品详情查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 产品价格查询
-     */
-    @PostMapping("/product/getPrice")
-    public R<ThirdpartyProductPriceDto> getPrice(@RequestBody ThirdpartyProductDetailBo bo) {
-        // TODO: 实现产品价格查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 商品查询价格(批量)
-     */
-    @PostMapping("/product/getBatchPrice")
-    public R<List<ThirdpartyProductPriceDto>> getBatchPrice(@RequestBody ThirdpartyProductDetailBo bo) {
-        // TODO: 实现批量价格查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 商品库存查询
-     */
-    @PostMapping("/product/getProductStock")
-    public R<ThirdpartyProductStockDto> getProductStock(@RequestBody ThirdpartyProductStockBo bo) {
-        // TODO: 实现商品库存查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 产品状态查询
-     */
-    @PostMapping("/product/getStatus")
-    public R<ThirdpartyProductStatusDto> getStatus(@RequestBody ThirdpartyProductDetailBo bo) {
-        // TODO: 实现产品状态查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 产品品牌查询
-     */
-    @PostMapping("/product/getProductBrand")
-    public R<List<ThirdpartyProductBrandDto>> getProductBrand(@RequestBody ThirdpartyProductBrandBo bo) {
-        // TODO: 实现产品品牌查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 产品单位查询
-     */
-    @PostMapping("/product/getProductUnit")
-    public R<ThirdpartyProductUnitDto> getProductUnit(@RequestBody ThirdpartyProductUnitBo bo) {
-        // TODO: 实现产品单位查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 产品分类查询
-     */
-    @PostMapping("/product/getProductCates")
-    public R<List<ThirdpartyProductCateDto>> getProductCates() {
-        // TODO: 实现产品分类查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 获取区域地址
-     */
-    @PostMapping("/Product/getSysArea")
-    public R<List<ThirdpartyAreaDto>> getSysArea() {
-        // TODO: 实现获取区域地址逻辑
-        return R.ok();
-    }
-
-    /**
-     * 订单新增
-     */
-    @PostMapping("/order/addOrder")
-    public R<String> addOrder(@RequestBody ThirdpartyOrderAddBo bo) {
-        // TODO: 实现订单新增逻辑
-       //订单新增时 api传商品id跟数量 后台需要根据商品id查询返回商品价格
-        return R.ok();
-    }
-
-    /**
-     * 订单查询
-     */
-    @PostMapping("/order/getOrder")
-    public R<ThirdpartyOrderDto> getOrder(@RequestBody ThirdpartyOrderBo bo) {
-        // TODO: 实现订单查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 订单列表查询
-     */
-    @PostMapping("/order/getOrders")
-    public TableDataInfo<ThirdpartyOrderDto> getOrders(@RequestBody ThirdpartyOrderListBo bo, PageQuery pageQuery) {
-        // TODO: 实现订单列表查询逻辑
-        return TableDataInfo.build();
-    }
-
-    /**
-     * 主订单查询
-     */
-    @PostMapping("/order/getRootOrder")
-    public R<ThirdpartyRootOrderDto> getRootOrder(@RequestBody ThirdpartyRootOrderBo bo) {
-        // TODO: 实现主订单查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 订单状态查询
-     */
-    @PostMapping("/order/getOrderStatus")
-    public R<ThirdpartyOrderStatusDto> getOrderStatus(@RequestBody ThirdpartyOrderStatusBo bo) {
-        // TODO: 实现订单状态查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 撤销订单
-     */
-    @PostMapping("/order/confirmOrder")
-    public R<String> confirmOrder(@RequestBody ThirdpartyConfirmOrderBo bo) {
-        // TODO: 实现撤销订单逻辑
-        return R.ok();
-    }
-
-
-
-    /**
-     * 订单支付状态查询
-     */
-    @PostMapping("/order/getOrderPayState")
-    public R<ThirdpartyOrderPayStateDto> getOrderPayState(@RequestBody ThirdpartyOrderStatusBo bo) {
-        // TODO: 实现订单支付状态查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 订单支付状态写入
-     */
-    @PostMapping("/Order/setOrderPayState")
-    public R<String> setOrderPayState(@RequestBody ThirdpartySetOrderPayStateBo bo) {
-        // TODO: 实现订单支付状态写入逻辑
-        return R.ok();
-    }
-
-    /**
-     * 售后订单新增
-     */
-    @PostMapping("/AfterOrder/addAfterOrder")
-    public R<String> addAfterOrder(@RequestBody ThirdpartyAfterOrderAddBo bo) {
-        // TODO: 实现售后订单新增逻辑
-        return R.ok("新增成功");
-    }
-
-    /**
-     * 售后订单状态查询
-     */
-    @PostMapping("/AfterOrder/getAfterStatus")
-    public R<ThirdpartyAfterOrderStatusDto> getAfterStatus(@RequestBody ThirdpartyAfterOrderBo bo) {
-        // TODO: 实现售后订单状态查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 售后订单状态修改
-     */
-    @PostMapping("/AfterOrder/setAfterState")
-    public R<String> setAfterState(@RequestBody ThirdpartySetAfterStateBo bo) {
-        // TODO: 实现售后订单状态修改逻辑
-        return R.ok();
-    }
-
-    /**
-     * 售后订单列表查询
-     */
-    @PostMapping("/AfterOrder/getAfterOrderList")
-    public TableDataInfo<ThirdpartyAfterOrderDto> getAfterOrderList(@RequestBody ThirdpartyAfterOrderListBo bo, PageQuery pageQuery) {
-        // TODO: 实现售后订单列表查询逻辑
-        return TableDataInfo.build();
-    }
-
-    /**
-     * 售后订单查询
-     */
-    @PostMapping("/AfterOrder/getAfterOrder")
-    public R<ThirdpartyAfterOrderDto> getAfterOrder(@RequestBody ThirdpartyAfterOrderBo bo) {
-        // TODO: 实现售后订单查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 物流查询
-     */
-    @PostMapping("/Other/geTtracking")
-    public R<ThirdpartyTrackingDto> geTtracking(@RequestBody ThirdpartyTrackingBo bo) {
-        // TODO: 实现物流查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 物流状态查询
-     */
-    @PostMapping("/Other/getTrackingStatus")
-    public R<ThirdpartyTrackingStatusDto> getTrackingStatus(@RequestBody ThirdpartyTrackingStatusBo bo) {
-        // TODO: 实现物流状态查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 对账列表查询
-     */
-    @PostMapping("/Other/getReconList")
-    public TableDataInfo<ThirdpartyReconDto> getReconList(@RequestBody ThirdpartyReconListBo bo, PageQuery pageQuery) {
-        // TODO: 实现对账列表查询逻辑
-        return TableDataInfo.build();
-    }
-
-    /**
-     * 对账申请
-     */
-    @PostMapping("/Other/applyRecon")
-    public R<String> applyRecon(@RequestBody ThirdpartyApplyReconBo bo) {
-        // TODO: 实现对账申请逻辑
-        return R.ok();
-    }
-
-    /**
-     * 对账状态查询
-     */
-    @PostMapping("/Other/getReconState")
-    public R<ThirdpartyReconStateDto> getReconState(@RequestBody ThirdpartyReconStateBo bo) {
-        // TODO: 实现对账状态查询逻辑
-        return R.ok();
-    }
-
-    /**
-     * 申请开票
-     */
-    @PostMapping("/Other/orderInvoice")
-    public R<String> orderInvoice(@RequestBody ThirdpartyOrderInvoiceBo bo) {
-        // TODO: 实现申请开票逻辑
-        return R.ok();
-    }
-
-    /**
-     * 开票信息查询
-     */
-    @PostMapping("/Other/getOrderInvoice")
-    public R<ThirdpartyOrderInvoiceDto> getOrderInvoice(@RequestBody ThirdpartyOrderInvoiceBo bo) {
-        // TODO: 实现开票信息查询逻辑
-        return R.ok();
-    }
-}

+ 46 - 0
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/thirdparty/ThirdpartyInvoiceController.java

@@ -0,0 +1,46 @@
+package org.dromara.external.controller.thirdparty;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.R;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyOrderInvoiceBo;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyOrderInvoiceDto;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+/**
+ * 优易达(武汉)有限公司-开票接口
+ */
+@Tag(name = "开票接口")
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/thirdparty")
+public class ThirdpartyInvoiceController {
+
+    /**
+     * 申请开票
+     */
+    @Operation(summary = "申请开票")
+    @PostMapping("/Other/orderInvoice")
+    public R<String> orderInvoice(@RequestBody ThirdpartyOrderInvoiceBo bo) {
+        // TODO: 实现申请开票逻辑
+        return R.ok();
+    }
+
+    /**
+     * 开票信息查询
+     */
+    @Operation(summary = "开票信息查询")
+    @PostMapping("/Other/getOrderInvoice")
+    public R<ThirdpartyOrderInvoiceDto> getOrderInvoice(@RequestBody ThirdpartyOrderInvoiceBo bo) {
+        // TODO: 实现开票信息查询逻辑
+        return R.ok();
+    }
+}

+ 117 - 0
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/thirdparty/ThirdpartyOrderController.java

@@ -0,0 +1,117 @@
+package org.dromara.external.controller.thirdparty;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyConfirmOrderBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyOrderAddBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyOrderBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyOrderListBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyOrderStatusBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyRootOrderBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartySetOrderPayStateBo;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyOrderDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyOrderPayStateDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyOrderStatusDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyRootOrderDto;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+/**
+ * 优易达(武汉)有限公司-订单接口
+ */
+@Tag(name = "订单接口")
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/thirdparty")
+public class ThirdpartyOrderController {
+
+    /**
+     * 订单新增
+     */
+    @Operation(summary = "订单新增")
+    @PostMapping("/order/addOrder")
+    public R<String> addOrder(@RequestBody ThirdpartyOrderAddBo bo) {
+        // TODO: 实现订单新增逻辑
+        return R.ok();
+    }
+
+    /**
+     * 订单查询
+     */
+    @Operation(summary = "订单查询")
+    @PostMapping("/order/getOrder")
+    public R<ThirdpartyOrderDto> getOrder(@RequestBody ThirdpartyOrderBo bo) {
+        // TODO: 实现订单查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 订单列表查询
+     */
+    @Operation(summary = "订单列表查询")
+    @PostMapping("/order/getOrders")
+    public TableDataInfo<ThirdpartyOrderDto> getOrders(@RequestBody ThirdpartyOrderListBo bo, PageQuery pageQuery) {
+        // TODO: 实现订单列表查询逻辑
+        return TableDataInfo.build();
+    }
+
+    /**
+     * 主订单查询
+     */
+    @Operation(summary = "主订单查询")
+    @PostMapping("/order/getRootOrder")
+    public R<ThirdpartyRootOrderDto> getRootOrder(@RequestBody ThirdpartyRootOrderBo bo) {
+        // TODO: 实现主订单查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 订单状态查询
+     */
+    @Operation(summary = "订单状态查询")
+    @PostMapping("/order/getOrderStatus")
+    public R<ThirdpartyOrderStatusDto> getOrderStatus(@RequestBody ThirdpartyOrderStatusBo bo) {
+        // TODO: 实现订单状态查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 撤销订单
+     */
+    @Operation(summary = "撤销订单")
+    @PostMapping("/order/confirmOrder")
+    public R<String> confirmOrder(@RequestBody ThirdpartyConfirmOrderBo bo) {
+        // TODO: 实现撤销订单逻辑
+        return R.ok();
+    }
+
+    /**
+     * 订单支付状态查询
+     */
+    @Operation(summary = "订单支付状态查询")
+    @PostMapping("/order/getOrderPayState")
+    public R<ThirdpartyOrderPayStateDto> getOrderPayState(@RequestBody ThirdpartyOrderStatusBo bo) {
+        // TODO: 实现订单支付状态查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 订单支付状态写入
+     */
+    @Operation(summary = "订单支付状态写入")
+    @PostMapping("/Order/setOrderPayState")
+    public R<String> setOrderPayState(@RequestBody ThirdpartySetOrderPayStateBo bo) {
+        // TODO: 实现订单支付状态写入逻辑
+        return R.ok();
+    }
+}

+ 106 - 0
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/thirdparty/ThirdpartyProductController.java

@@ -0,0 +1,106 @@
+package org.dromara.external.controller.thirdparty;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyProductBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyProductDetailBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyProductStockBo;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyProductDetailDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyProductDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyProductPriceDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyProductStatusDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyProductStockDto;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+import java.util.List;
+
+/**
+ * 优易达(武汉)有限公司-产品接口
+ */
+@Tag(name = "产品接口")
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/thirdparty")
+public class ThirdpartyProductController {
+
+    /**
+     * 产品列表查询
+     */
+    @Operation(summary = "产品列表查询")
+    @PostMapping("/product/getListProducts")
+    public TableDataInfo<ThirdpartyProductDto> getListProducts(@RequestBody ThirdpartyProductBo bo, PageQuery pageQuery) {
+        // TODO: 实现产品列表查询逻辑
+        return TableDataInfo.build();
+    }
+
+    /**
+     * 产品表体接口
+     */
+    @Operation(summary = "产品表体接口")
+    @PostMapping("/product/getProductBody")
+    public R<ThirdpartyProductDto> getProductBody(@RequestBody ThirdpartyProductDetailBo bo) {
+        // TODO: 实现产品表体查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 产品详情查询
+     */
+    @Operation(summary = "产品详情查询")
+    @PostMapping("/product/getProductDetails")
+    public R<ThirdpartyProductDetailDto> getProductDetails(@RequestBody ThirdpartyProductDetailBo bo) {
+        // TODO: 实现产品详情查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 产品价格查询
+     */
+    @Operation(summary = "产品价格查询")
+    @PostMapping("/product/getPrice")
+    public R<ThirdpartyProductPriceDto> getPrice(@RequestBody ThirdpartyProductDetailBo bo) {
+        // TODO: 实现产品价格查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 商品查询价格(批量)
+     */
+    @Operation(summary = "商品查询价格(批量)")
+    @PostMapping("/product/getBatchPrice")
+    public R<List<ThirdpartyProductPriceDto>> getBatchPrice(@RequestBody ThirdpartyProductDetailBo bo) {
+        // TODO: 实现批量价格查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 商品库存查询
+     */
+    @Operation(summary = "商品库存查询")
+    @PostMapping("/product/getProductStock")
+    public R<ThirdpartyProductStockDto> getProductStock(@RequestBody ThirdpartyProductStockBo bo) {
+        // TODO: 实现商品库存查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 产品状态查询
+     */
+    @Operation(summary = "产品状态查询")
+    @PostMapping("/product/getStatus")
+    public R<ThirdpartyProductStatusDto> getStatus(@RequestBody ThirdpartyProductDetailBo bo) {
+        // TODO: 实现产品状态查询逻辑
+        return R.ok();
+    }
+}

+ 61 - 0
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/thirdparty/ThirdpartyReconController.java

@@ -0,0 +1,61 @@
+package org.dromara.external.controller.thirdparty;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyApplyReconBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyReconListBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyReconStateBo;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyReconDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyReconStateDto;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+/**
+ * 优易达(武汉)有限公司-对账接口
+ */
+@Tag(name = "对账接口")
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/thirdparty")
+public class ThirdpartyReconController {
+
+    /**
+     * 对账列表查询
+     */
+    @Operation(summary = "对账列表查询")
+    @PostMapping("/Other/getReconList")
+    public TableDataInfo<ThirdpartyReconDto> getReconList(@RequestBody ThirdpartyReconListBo bo, PageQuery pageQuery) {
+        // TODO: 实现对账列表查询逻辑
+        return TableDataInfo.build();
+    }
+
+    /**
+     * 对账申请
+     */
+    @Operation(summary = "对账申请")
+    @PostMapping("/Other/applyRecon")
+    public R<String> applyRecon(@RequestBody ThirdpartyApplyReconBo bo) {
+        // TODO: 实现对账申请逻辑
+        return R.ok();
+    }
+
+    /**
+     * 对账状态查询
+     */
+    @Operation(summary = "对账状态查询")
+    @PostMapping("/Other/getReconState")
+    public R<ThirdpartyReconStateDto> getReconState(@RequestBody ThirdpartyReconStateBo bo) {
+        // TODO: 实现对账状态查询逻辑
+        return R.ok();
+    }
+}

+ 48 - 0
ruoyi-modules/ruoyi-external/src/main/java/org/dromara/external/controller/thirdparty/ThirdpartyTrackingController.java

@@ -0,0 +1,48 @@
+package org.dromara.external.controller.thirdparty;
+
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.domain.R;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyTrackingBo;
+import org.dromara.external.api.thirdparty.domain.bo.ThirdpartyTrackingStatusBo;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyTrackingDto;
+import org.dromara.external.api.thirdparty.domain.dto.ThirdpartyTrackingStatusDto;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+/**
+ * 优易达(武汉)有限公司-物流接口
+ */
+@Tag(name = "物流接口")
+@Slf4j
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/thirdparty")
+public class ThirdpartyTrackingController {
+
+    /**
+     * 物流查询
+     */
+    @Operation(summary = "物流查询")
+    @PostMapping("/Other/geTtracking")
+    public R<ThirdpartyTrackingDto> geTtracking(@RequestBody ThirdpartyTrackingBo bo) {
+        // TODO: 实现物流查询逻辑
+        return R.ok();
+    }
+
+    /**
+     * 物流状态查询
+     */
+    @Operation(summary = "物流状态查询")
+    @PostMapping("/Other/getTrackingStatus")
+    public R<ThirdpartyTrackingStatusDto> getTrackingStatus(@RequestBody ThirdpartyTrackingStatusBo bo) {
+        // TODO: 实现物流状态查询逻辑
+        return R.ok();
+    }
+}