Explorar o código

代理区域统计

lishiqiang hai 3 semanas
pai
achega
81aef479d4
Modificáronse 29 ficheiros con 938 adicións e 0 borrados
  1. 2 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/distributor/vo/DistributorRespVO.java
  2. 3 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/distributor/vo/DistributorSaveReqVO.java
  3. 95 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaDistributorRegion/OtaDistributorRegionController.java
  4. 20 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaDistributorRegion/vo/OtaDistributorRegionPageReqVO.java
  5. 25 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaDistributorRegion/vo/OtaDistributorRegionRespVO.java
  6. 21 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaDistributorRegion/vo/OtaDistributorRegionSaveReqVO.java
  7. 95 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaRegion/OtaRegionController.java
  8. 32 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaRegion/vo/OtaRegionPageReqVO.java
  9. 41 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaRegion/vo/OtaRegionRespVO.java
  10. 33 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaRegion/vo/OtaRegionSaveReqVO.java
  11. 5 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/dataobject/distributor/DistributorDO.java
  12. 36 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/dataobject/otaDistributorRegion/OtaDistributorRegionDO.java
  13. 52 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/dataobject/otaRegion/OtaRegionDO.java
  14. 27 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/mysql/otaDistributorRegion/OtaDistributorRegionMapper.java
  15. 31 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/mysql/otaRegion/OtaRegionMapper.java
  16. 47 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributor/DistributorServiceImpl.java
  17. 55 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/otaDistributorRegion/OtaDistributorRegionService.java
  18. 74 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/otaDistributorRegion/OtaDistributorRegionServiceImpl.java
  19. 55 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/otaRegion/OtaRegionService.java
  20. 74 0
      ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/otaRegion/OtaRegionServiceImpl.java
  21. 12 0
      ship-module-ota/ship-module-ota-biz/src/main/resources/mapper/otaDistributorRegion/OtaDistributorRegionMapper.xml
  22. 12 0
      ship-module-ota/ship-module-ota-biz/src/main/resources/mapper/otaRegion/OtaRegionMapper.xml
  23. 37 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/TradeStaticController.java
  24. 24 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeStaticReqVO.java
  25. 3 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java
  26. 2 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java
  27. 5 0
      ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java
  28. 18 0
      ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml
  29. 2 0
      ship-server-web/src/main/resources/application.yaml

+ 2 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/distributor/vo/DistributorRespVO.java

@@ -170,5 +170,7 @@ public class DistributorRespVO {
     private String externalPoiIds;
     @Schema(description = "分销商编码-OA")
     private String custCode;
+    @Schema(description = "分销商区域代理")
+    private String regionAgency;
 
 }

+ 3 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/distributor/vo/DistributorSaveReqVO.java

@@ -115,4 +115,7 @@ public class DistributorSaveReqVO {
     @Schema(description = "分销商编码-OA")
     private String custCode;
 
+    @Schema(description = "分销商区域")
+    private String regionAgency;
+
 }

+ 95 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaDistributorRegion/OtaDistributorRegionController.java

@@ -0,0 +1,95 @@
+package com.yc.ship.module.ota.controller.admin.otaDistributorRegion;
+
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.validation.constraints.*;
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import com.yc.ship.framework.common.pojo.PageParam;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.CommonResult;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+import static com.yc.ship.framework.common.pojo.CommonResult.success;
+
+import com.yc.ship.framework.excel.core.util.ExcelUtils;
+
+import com.yc.ship.framework.apilog.core.annotation.ApiAccessLog;
+import static com.yc.ship.framework.apilog.core.enums.OperateTypeEnum.*;
+
+import com.yc.ship.module.ota.controller.admin.otaDistributorRegion.vo.*;
+import com.yc.ship.module.ota.dal.dataobject.otaDistributorRegion.OtaDistributorRegionDO;
+import com.yc.ship.module.ota.service.otaDistributorRegion.OtaDistributorRegionService;
+
+@Tag(name = "管理后台 - 旅行社与代理区域关联")
+@RestController
+@RequestMapping("/ota/distributor-region")
+@Validated
+public class OtaDistributorRegionController {
+
+    @Resource
+    private OtaDistributorRegionService distributorRegionService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建旅行社与代理区域关联")
+    @PreAuthorize("@ss.hasPermission('ota:distributor-region:create')")
+    public CommonResult<Long> createDistributorRegion(@Valid @RequestBody OtaDistributorRegionSaveReqVO createReqVO) {
+        return success(distributorRegionService.createDistributorRegion(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新旅行社与代理区域关联")
+    @PreAuthorize("@ss.hasPermission('ota:distributor-region:update')")
+    public CommonResult<Boolean> updateDistributorRegion(@Valid @RequestBody OtaDistributorRegionSaveReqVO updateReqVO) {
+        distributorRegionService.updateDistributorRegion(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除旅行社与代理区域关联")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('ota:distributor-region:delete')")
+    public CommonResult<Boolean> deleteDistributorRegion(@RequestParam("id") String id) {
+        distributorRegionService.deleteDistributorRegion(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得旅行社与代理区域关联")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('ota:distributor-region:query')")
+    public CommonResult<OtaDistributorRegionRespVO> getDistributorRegion(@RequestParam("id") String id) {
+        OtaDistributorRegionDO distributorRegion = distributorRegionService.getDistributorRegion(id);
+        return success(BeanUtils.toBean(distributorRegion, OtaDistributorRegionRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得旅行社与代理区域关联分页")
+    @PreAuthorize("@ss.hasPermission('ota:distributor-region:query')")
+    public CommonResult<PageResult<OtaDistributorRegionRespVO>> getDistributorRegionPage(@Valid OtaDistributorRegionPageReqVO pageReqVO) {
+        PageResult<OtaDistributorRegionDO> pageResult = distributorRegionService.getDistributorRegionPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, OtaDistributorRegionRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出旅行社与代理区域关联 Excel")
+    @PreAuthorize("@ss.hasPermission('ota:distributor-region:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportDistributorRegionExcel(@Valid OtaDistributorRegionPageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<OtaDistributorRegionDO> list = distributorRegionService.getDistributorRegionPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "旅行社与代理区域关联.xls", "数据", OtaDistributorRegionRespVO.class,
+                        BeanUtils.toBean(list, OtaDistributorRegionRespVO.class));
+    }
+
+}

+ 20 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaDistributorRegion/vo/OtaDistributorRegionPageReqVO.java

@@ -0,0 +1,20 @@
+package com.yc.ship.module.ota.controller.admin.otaDistributorRegion.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.yc.ship.framework.common.pojo.PageParam;
+
+@Schema(description = "管理后台 - 旅行社与代理区域关联分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OtaDistributorRegionPageReqVO extends PageParam {
+
+    @Schema(description = "分销商id", example = "12941")
+    private Long distributorId;
+
+    @Schema(description = "代理区域id", example = "6334")
+    private String distributorRegionId;
+
+}

+ 25 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaDistributorRegion/vo/OtaDistributorRegionRespVO.java

@@ -0,0 +1,25 @@
+package com.yc.ship.module.ota.controller.admin.otaDistributorRegion.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 旅行社与代理区域关联 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class OtaDistributorRegionRespVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24220")
+    @ExcelProperty("主键id")
+    private String id;
+
+    @Schema(description = "分销商id", example = "12941")
+    @ExcelProperty("分销商id")
+    private Long distributorId;
+
+    @Schema(description = "代理区域id", example = "6334")
+    @ExcelProperty("代理区域id")
+    private String distributorRegionId;
+
+}

+ 21 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaDistributorRegion/vo/OtaDistributorRegionSaveReqVO.java

@@ -0,0 +1,21 @@
+package com.yc.ship.module.ota.controller.admin.otaDistributorRegion.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import javax.validation.constraints.*;
+
+@Schema(description = "管理后台 - 旅行社与代理区域关联新增/修改 Request VO")
+@Data
+public class OtaDistributorRegionSaveReqVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "24220")
+    private String id;
+
+    @Schema(description = "分销商id", example = "12941")
+    private Long distributorId;
+
+    @Schema(description = "代理区域id", example = "6334")
+    private String distributorRegionId;
+
+}

+ 95 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaRegion/OtaRegionController.java

@@ -0,0 +1,95 @@
+package com.yc.ship.module.ota.controller.admin.otaRegion;
+
+import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.security.access.prepost.PreAuthorize;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.Operation;
+
+import javax.validation.constraints.*;
+import javax.validation.*;
+import javax.servlet.http.*;
+import java.util.*;
+import java.io.IOException;
+
+import com.yc.ship.framework.common.pojo.PageParam;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.CommonResult;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+import static com.yc.ship.framework.common.pojo.CommonResult.success;
+
+import com.yc.ship.framework.excel.core.util.ExcelUtils;
+
+import com.yc.ship.framework.apilog.core.annotation.ApiAccessLog;
+import static com.yc.ship.framework.apilog.core.enums.OperateTypeEnum.*;
+
+import com.yc.ship.module.ota.controller.admin.otaRegion.vo.*;
+import com.yc.ship.module.ota.dal.dataobject.otaRegion.OtaRegionDO;
+import com.yc.ship.module.ota.service.otaRegion.OtaRegionService;
+
+@Tag(name = "管理后台 - 地区编码")
+@RestController
+@RequestMapping("/ota/region")
+@Validated
+public class OtaRegionController {
+
+    @Resource
+    private OtaRegionService regionService;
+
+    @PostMapping("/create")
+    @Operation(summary = "创建地区编码")
+    @PreAuthorize("@ss.hasPermission('ota:region:create')")
+    public CommonResult<String> createRegion(@Valid @RequestBody OtaRegionSaveReqVO createReqVO) {
+        return success(regionService.createRegion(createReqVO));
+    }
+
+    @PutMapping("/update")
+    @Operation(summary = "更新地区编码")
+    @PreAuthorize("@ss.hasPermission('ota:region:update')")
+    public CommonResult<Boolean> updateRegion(@Valid @RequestBody OtaRegionSaveReqVO updateReqVO) {
+        regionService.updateRegion(updateReqVO);
+        return success(true);
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "删除地区编码")
+    @Parameter(name = "id", description = "编号", required = true)
+    @PreAuthorize("@ss.hasPermission('ota:region:delete')")
+    public CommonResult<Boolean> deleteRegion(@RequestParam("id") String id) {
+        regionService.deleteRegion(id);
+        return success(true);
+    }
+
+    @GetMapping("/get")
+    @Operation(summary = "获得地区编码")
+    @Parameter(name = "id", description = "编号", required = true, example = "1024")
+    @PreAuthorize("@ss.hasPermission('ota:region:query')")
+    public CommonResult<OtaRegionRespVO> getRegion(@RequestParam("id") String id) {
+        OtaRegionDO region = regionService.getRegion(id);
+        return success(BeanUtils.toBean(region, OtaRegionRespVO.class));
+    }
+
+    @GetMapping("/page")
+    @Operation(summary = "获得地区编码分页")
+    @PreAuthorize("@ss.hasPermission('ota:region:query')")
+    public CommonResult<PageResult<OtaRegionRespVO>> getRegionPage(@Valid OtaRegionPageReqVO pageReqVO) {
+        PageResult<OtaRegionDO> pageResult = regionService.getRegionPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, OtaRegionRespVO.class));
+    }
+
+    @GetMapping("/export-excel")
+    @Operation(summary = "导出地区编码 Excel")
+    @PreAuthorize("@ss.hasPermission('ota:region:export')")
+    @ApiAccessLog(operateType = EXPORT)
+    public void exportRegionExcel(@Valid OtaRegionPageReqVO pageReqVO,
+              HttpServletResponse response) throws IOException {
+        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<OtaRegionDO> list = regionService.getRegionPage(pageReqVO).getList();
+        // 导出 Excel
+        ExcelUtils.write(response, "地区编码.xls", "数据", OtaRegionRespVO.class,
+                        BeanUtils.toBean(list, OtaRegionRespVO.class));
+    }
+
+}

+ 32 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaRegion/vo/OtaRegionPageReqVO.java

@@ -0,0 +1,32 @@
+package com.yc.ship.module.ota.controller.admin.otaRegion.vo;
+
+import lombok.*;
+import java.util.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import com.yc.ship.framework.common.pojo.PageParam;
+
+@Schema(description = "管理后台 - 地区编码分页 Request VO")
+@Data
+@EqualsAndHashCode(callSuper = true)
+@ToString(callSuper = true)
+public class OtaRegionPageReqVO extends PageParam {
+
+    @Schema(description = "地区名称")
+    private String region;
+
+    @Schema(description = "省")
+    private String province;
+
+    @Schema(description = "市")
+    private String city;
+
+    @Schema(description = "区/县")
+    private String county;
+
+    @Schema(description = "区域级别 1.省 2.市 3.县")
+    private Integer level;
+
+    @Schema(description = "")
+    private String provinceCode;
+
+}

+ 41 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaRegion/vo/OtaRegionRespVO.java

@@ -0,0 +1,41 @@
+package com.yc.ship.module.ota.controller.admin.otaRegion.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import com.alibaba.excel.annotation.*;
+
+@Schema(description = "管理后台 - 地区编码 Response VO")
+@Data
+@ExcelIgnoreUnannotated
+public class OtaRegionRespVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26885")
+    @ExcelProperty("主键id")
+    private String id;
+
+    @Schema(description = "地区名称")
+    @ExcelProperty("地区名称")
+    private String region;
+
+    @Schema(description = "省")
+    @ExcelProperty("省")
+    private String province;
+
+    @Schema(description = "市")
+    @ExcelProperty("市")
+    private String city;
+
+    @Schema(description = "区/县")
+    @ExcelProperty("区/县")
+    private String county;
+
+    @Schema(description = "区域级别 1.省 2.市 3.县")
+    @ExcelProperty("区域级别 1.省 2.市 3.县")
+    private Integer level;
+
+    @Schema(description = "")
+    @ExcelProperty("")
+    private String provinceCode;
+
+}

+ 33 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/controller/admin/otaRegion/vo/OtaRegionSaveReqVO.java

@@ -0,0 +1,33 @@
+package com.yc.ship.module.ota.controller.admin.otaRegion.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.*;
+import java.util.*;
+import javax.validation.constraints.*;
+
+@Schema(description = "管理后台 - 地区编码新增/修改 Request VO")
+@Data
+public class OtaRegionSaveReqVO {
+
+    @Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "26885")
+    private String id;
+
+    @Schema(description = "地区名称")
+    private String region;
+
+    @Schema(description = "省")
+    private String province;
+
+    @Schema(description = "市")
+    private String city;
+
+    @Schema(description = "区/县")
+    private String county;
+
+    @Schema(description = "区域级别 1.省 2.市 3.县")
+    private Integer level;
+
+    @Schema(description = "")
+    private String provinceCode;
+
+}

+ 5 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/dataobject/distributor/DistributorDO.java

@@ -198,4 +198,9 @@ public class DistributorDO extends TenantBaseDO {
      * 系统用户ID
      */
     private Long userId;
+
+    /**
+     * 分销商区域
+     */
+    private String regionAgency;
 }

+ 36 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/dataobject/otaDistributorRegion/OtaDistributorRegionDO.java

@@ -0,0 +1,36 @@
+package com.yc.ship.module.ota.dal.dataobject.otaDistributorRegion;
+
+import lombok.*;
+import java.util.*;
+import com.baomidou.mybatisplus.annotation.*;
+import com.yc.ship.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 旅行社与代理区域关联 DO
+ *
+ * @author lsq
+ */
+@TableName("ota_distributor_region")
+@KeySequence("ota_distributor_region_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OtaDistributorRegionDO {
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 分销商id
+     */
+    private Long distributorId;
+    /**
+     * 代理区域id
+     */
+    private String distributorRegionId;
+
+}

+ 52 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/dataobject/otaRegion/OtaRegionDO.java

@@ -0,0 +1,52 @@
+package com.yc.ship.module.ota.dal.dataobject.otaRegion;
+
+import lombok.*;
+import java.util.*;
+import com.baomidou.mybatisplus.annotation.*;
+import com.yc.ship.framework.mybatis.core.dataobject.BaseDO;
+
+/**
+ * 地区编码 DO
+ *
+ * @author lsq
+ */
+@TableName("ota_region")
+@KeySequence("ota_region_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class OtaRegionDO {
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.INPUT)
+    private String id;
+    /**
+     * 地区名称
+     */
+    private String region;
+    /**
+     * 省
+     */
+    private String province;
+    /**
+     * 市
+     */
+    private String city;
+    /**
+     * 区/县
+     */
+    private String county;
+    /**
+     * 区域级别 1.省 2.市 3.县
+     */
+    private Integer level;
+    /**
+     * 
+     */
+    private String provinceCode;
+
+}

+ 27 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/mysql/otaDistributorRegion/OtaDistributorRegionMapper.java

@@ -0,0 +1,27 @@
+package com.yc.ship.module.ota.dal.mysql.otaDistributorRegion;
+
+import java.util.*;
+
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.module.ota.dal.dataobject.otaDistributorRegion.OtaDistributorRegionDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.yc.ship.module.ota.controller.admin.otaDistributorRegion.vo.*;
+
+/**
+ * 旅行社与代理区域关联 Mapper
+ *
+ * @author lsq
+ */
+@Mapper
+public interface OtaDistributorRegionMapper extends BaseMapperX<OtaDistributorRegionDO> {
+
+    default PageResult<OtaDistributorRegionDO> selectPage(OtaDistributorRegionPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<OtaDistributorRegionDO>()
+                .eqIfPresent(OtaDistributorRegionDO::getDistributorId, reqVO.getDistributorId())
+                .eqIfPresent(OtaDistributorRegionDO::getDistributorRegionId, reqVO.getDistributorRegionId())
+                .orderByDesc(OtaDistributorRegionDO::getId));
+    }
+
+}

+ 31 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/dal/mysql/otaRegion/OtaRegionMapper.java

@@ -0,0 +1,31 @@
+package com.yc.ship.module.ota.dal.mysql.otaRegion;
+
+import java.util.*;
+
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.yc.ship.framework.mybatis.core.mapper.BaseMapperX;
+import com.yc.ship.module.ota.dal.dataobject.otaRegion.OtaRegionDO;
+import org.apache.ibatis.annotations.Mapper;
+import com.yc.ship.module.ota.controller.admin.otaRegion.vo.*;
+
+/**
+ * 地区编码 Mapper
+ *
+ * @author lsq
+ */
+@Mapper
+public interface OtaRegionMapper extends BaseMapperX<OtaRegionDO> {
+
+    default PageResult<OtaRegionDO> selectPage(OtaRegionPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<OtaRegionDO>()
+                .eqIfPresent(OtaRegionDO::getRegion, reqVO.getRegion())
+                .eqIfPresent(OtaRegionDO::getProvince, reqVO.getProvince())
+                .eqIfPresent(OtaRegionDO::getCity, reqVO.getCity())
+                .eqIfPresent(OtaRegionDO::getCounty, reqVO.getCounty())
+                .eqIfPresent(OtaRegionDO::getLevel, reqVO.getLevel())
+                .eqIfPresent(OtaRegionDO::getProvinceCode, reqVO.getProvinceCode())
+                .orderByDesc(OtaRegionDO::getId));
+    }
+
+}

+ 47 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/distributor/DistributorServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -26,7 +27,10 @@ import com.yc.ship.module.ota.controller.admin.distributorauditlog.vo.Distributo
 import com.yc.ship.module.ota.api.dto.DistributorRespDTO;
 import com.yc.ship.module.ota.dal.dataobject.distributor.DistributorDO;
 import com.yc.ship.module.ota.dal.dataobject.distributortype.DistributorTypeDO;
+import com.yc.ship.module.ota.dal.dataobject.otaDistributorRegion.OtaDistributorRegionDO;
+import com.yc.ship.module.ota.dal.dataobject.otaRegion.OtaRegionDO;
 import com.yc.ship.module.ota.dal.mysql.distributor.DistributorMapper;
+import com.yc.ship.module.ota.dal.mysql.otaDistributorRegion.OtaDistributorRegionMapper;
 import com.yc.ship.module.ota.enums.DistributorTypeEnum;
 import com.yc.ship.module.ota.service.distributorauditlog.DistributorAuditLogService;
 import com.yc.ship.module.ota.service.distributortype.DistributorTypeService;
@@ -73,6 +77,9 @@ public class DistributorServiceImpl implements DistributorService {
     @Resource
     private DistributorMapper distributorMapper;
 
+    @Resource
+    private OtaDistributorRegionMapper otaDistributorRegionMapper;
+
     @Resource
     private AdminUserApi adminUserApi;
 
@@ -156,6 +163,25 @@ public class DistributorServiceImpl implements DistributorService {
         distributor.setAccountTenantId(tenantId);
         distributorMapper.insert(distributor);
         createDefaultDept(distributor);
+
+        String regionAgency = distributor.getRegionAgency();
+        List<OtaDistributorRegionDO> list = new ArrayList<>();
+        if (StringUtils.isNotBlank(regionAgency)){
+            String[] split = regionAgency.split(",");
+            if(split.length>0){
+                for (int i = 0; i < split.length; i++) {
+                    String s = split[i];
+                    OtaDistributorRegionDO otaDistributorRegionDO = new OtaDistributorRegionDO();
+                    otaDistributorRegionDO.setId(IdWorker.getId());
+                    otaDistributorRegionDO.setDistributorId(distributor.getId());
+                    otaDistributorRegionDO.setDistributorRegionId(s);
+                    list.add(otaDistributorRegionDO);
+                }
+            }
+        }
+        if(!list.isEmpty()) {
+            otaDistributorRegionMapper.insertBatch(list);
+        }
         // 返回
         return distributor.getId();
     }
@@ -226,6 +252,27 @@ public class DistributorServiceImpl implements DistributorService {
         }
         //修改信息
         distributorMapper.updateById(updateObj);
+
+        otaDistributorRegionMapper.delete(new QueryWrapper<OtaDistributorRegionDO>().eq("distributor_id", updateObj.getId()));
+        String regionAgency = updateObj.getRegionAgency();
+        List<OtaDistributorRegionDO> list = new ArrayList<>();
+        if (StringUtils.isNotBlank(regionAgency)){
+            String[] split = regionAgency.split(",");
+            if(split.length>0){
+                for (int i = 0; i < split.length; i++) {
+                    String s = split[i];
+                    OtaDistributorRegionDO otaDistributorRegionDO = new OtaDistributorRegionDO();
+                    otaDistributorRegionDO.setId(IdWorker.getId());
+                    otaDistributorRegionDO.setDistributorId(updateObj.getId());
+                    otaDistributorRegionDO.setDistributorRegionId(s);
+                    list.add(otaDistributorRegionDO);
+                }
+            }
+        }
+        if(!list.isEmpty()) {
+            otaDistributorRegionMapper.insertBatch(list);
+        }
+
     }
 
     @Override

+ 55 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/otaDistributorRegion/OtaDistributorRegionService.java

@@ -0,0 +1,55 @@
+package com.yc.ship.module.ota.service.otaDistributorRegion;
+
+import java.util.*;
+import javax.validation.*;
+import com.yc.ship.module.ota.controller.admin.otaDistributorRegion.vo.*;
+import com.yc.ship.module.ota.dal.dataobject.otaDistributorRegion.OtaDistributorRegionDO;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.PageParam;
+
+/**
+ * 旅行社与代理区域关联 Service 接口
+ *
+ * @author lsq
+ */
+public interface OtaDistributorRegionService {
+
+    /**
+     * 创建旅行社与代理区域关联
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    Long createDistributorRegion(@Valid OtaDistributorRegionSaveReqVO createReqVO);
+
+    /**
+     * 更新旅行社与代理区域关联
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateDistributorRegion(@Valid OtaDistributorRegionSaveReqVO updateReqVO);
+
+    /**
+     * 删除旅行社与代理区域关联
+     *
+     * @param id 编号
+     */
+    void deleteDistributorRegion(String id);
+
+    /**
+     * 获得旅行社与代理区域关联
+     *
+     * @param id 编号
+     * @return 旅行社与代理区域关联
+     */
+    OtaDistributorRegionDO getDistributorRegion(String id);
+
+    /**
+     * 获得旅行社与代理区域关联分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 旅行社与代理区域关联分页
+     */
+    PageResult<OtaDistributorRegionDO> getDistributorRegionPage(OtaDistributorRegionPageReqVO pageReqVO);
+
+}

+ 74 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/otaDistributorRegion/OtaDistributorRegionServiceImpl.java

@@ -0,0 +1,74 @@
+package com.yc.ship.module.ota.service.otaDistributorRegion;
+
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.yc.ship.module.ota.controller.admin.otaDistributorRegion.vo.*;
+import com.yc.ship.module.ota.dal.dataobject.otaDistributorRegion.OtaDistributorRegionDO;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.PageParam;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+
+import com.yc.ship.module.ota.dal.mysql.otaDistributorRegion.OtaDistributorRegionMapper;
+
+import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.yc.ship.module.ota.enums.ErrorCodeConstants.*;
+
+/**
+ * 旅行社与代理区域关联 Service 实现类
+ *
+ * @author lsq
+ */
+@Service
+@Validated
+public class OtaDistributorRegionServiceImpl implements OtaDistributorRegionService {
+
+    @Resource
+    private OtaDistributorRegionMapper distributorRegionMapper;
+
+    @Override
+    public Long createDistributorRegion(OtaDistributorRegionSaveReqVO createReqVO) {
+        // 插入
+        OtaDistributorRegionDO distributorRegion = BeanUtils.toBean(createReqVO, OtaDistributorRegionDO.class);
+        distributorRegionMapper.insert(distributorRegion);
+        // 返回
+        return distributorRegion.getId();
+    }
+
+    @Override
+    public void updateDistributorRegion(OtaDistributorRegionSaveReqVO updateReqVO) {
+        // 校验存在
+        validateDistributorRegionExists(updateReqVO.getId());
+        // 更新
+        OtaDistributorRegionDO updateObj = BeanUtils.toBean(updateReqVO, OtaDistributorRegionDO.class);
+        distributorRegionMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteDistributorRegion(String id) {
+        // 校验存在
+        validateDistributorRegionExists(id);
+        // 删除
+        distributorRegionMapper.deleteById(id);
+    }
+
+    private void validateDistributorRegionExists(String id) {
+        if (distributorRegionMapper.selectById(id) == null) {
+            throw exception(500,"不存在");
+        }
+    }
+
+    @Override
+    public OtaDistributorRegionDO getDistributorRegion(String id) {
+        return distributorRegionMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<OtaDistributorRegionDO> getDistributorRegionPage(OtaDistributorRegionPageReqVO pageReqVO) {
+        return distributorRegionMapper.selectPage(pageReqVO);
+    }
+
+}

+ 55 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/otaRegion/OtaRegionService.java

@@ -0,0 +1,55 @@
+package com.yc.ship.module.ota.service.otaRegion;
+
+import java.util.*;
+import javax.validation.*;
+import com.yc.ship.module.ota.controller.admin.otaRegion.vo.*;
+import com.yc.ship.module.ota.dal.dataobject.otaRegion.OtaRegionDO;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.PageParam;
+
+/**
+ * 地区编码 Service 接口
+ *
+ * @author lsq
+ */
+public interface OtaRegionService {
+
+    /**
+     * 创建地区编码
+     *
+     * @param createReqVO 创建信息
+     * @return 编号
+     */
+    String createRegion(@Valid OtaRegionSaveReqVO createReqVO);
+
+    /**
+     * 更新地区编码
+     *
+     * @param updateReqVO 更新信息
+     */
+    void updateRegion(@Valid OtaRegionSaveReqVO updateReqVO);
+
+    /**
+     * 删除地区编码
+     *
+     * @param id 编号
+     */
+    void deleteRegion(String id);
+
+    /**
+     * 获得地区编码
+     *
+     * @param id 编号
+     * @return 地区编码
+     */
+    OtaRegionDO getRegion(String id);
+
+    /**
+     * 获得地区编码分页
+     *
+     * @param pageReqVO 分页查询
+     * @return 地区编码分页
+     */
+    PageResult<OtaRegionDO> getRegionPage(OtaRegionPageReqVO pageReqVO);
+
+}

+ 74 - 0
ship-module-ota/ship-module-ota-biz/src/main/java/com/yc/ship/module/ota/service/otaRegion/OtaRegionServiceImpl.java

@@ -0,0 +1,74 @@
+package com.yc.ship.module.ota.service.otaRegion;
+
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+import com.yc.ship.module.ota.controller.admin.otaRegion.vo.*;
+import com.yc.ship.module.ota.dal.dataobject.otaRegion.OtaRegionDO;
+import com.yc.ship.framework.common.pojo.PageResult;
+import com.yc.ship.framework.common.pojo.PageParam;
+import com.yc.ship.framework.common.util.object.BeanUtils;
+
+import com.yc.ship.module.ota.dal.mysql.otaRegion.OtaRegionMapper;
+
+import static com.yc.ship.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static com.yc.ship.module.ota.enums.ErrorCodeConstants.*;
+
+/**
+ * 地区编码 Service 实现类
+ *
+ * @author lsq
+ */
+@Service
+@Validated
+public class OtaRegionServiceImpl implements OtaRegionService {
+
+    @Resource
+    private OtaRegionMapper regionMapper;
+
+    @Override
+    public String createRegion(OtaRegionSaveReqVO createReqVO) {
+        // 插入
+        OtaRegionDO region = BeanUtils.toBean(createReqVO, OtaRegionDO.class);
+        regionMapper.insert(region);
+        // 返回
+        return region.getId();
+    }
+
+    @Override
+    public void updateRegion(OtaRegionSaveReqVO updateReqVO) {
+        // 校验存在
+        validateRegionExists(updateReqVO.getId());
+        // 更新
+        OtaRegionDO updateObj = BeanUtils.toBean(updateReqVO, OtaRegionDO.class);
+        regionMapper.updateById(updateObj);
+    }
+
+    @Override
+    public void deleteRegion(String id) {
+        // 校验存在
+        validateRegionExists(id);
+        // 删除
+        regionMapper.deleteById(id);
+    }
+
+    private void validateRegionExists(String id) {
+        if (regionMapper.selectById(id) == null) {
+            throw exception(500,"不存在");
+        }
+    }
+
+    @Override
+    public OtaRegionDO getRegion(String id) {
+        return regionMapper.selectById(id);
+    }
+
+    @Override
+    public PageResult<OtaRegionDO> getRegionPage(OtaRegionPageReqVO pageReqVO) {
+        return regionMapper.selectPage(pageReqVO);
+    }
+
+}

+ 12 - 0
ship-module-ota/ship-module-ota-biz/src/main/resources/mapper/otaDistributorRegion/OtaDistributorRegionMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yc.ship.module.ota.dal.mysql.otaDistributorRegion.OtaDistributorRegionMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>

+ 12 - 0
ship-module-ota/ship-module-ota-biz/src/main/resources/mapper/otaRegion/OtaRegionMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yc.ship.module.ota.dal.mysql.otaRegion.OtaRegionMapper">
+
+    <!--
+        一般情况下,尽可能使用 Mapper 进行 CRUD 增删改查即可。
+        无法满足的场景,例如说多表关联查询,才使用 XML 编写 SQL。
+        代码生成器暂时只生成 Mapper XML 文件本身,更多推荐 MybatisX 快速开发插件来生成查询。
+        文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
+     -->
+
+</mapper>

+ 37 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/TradeStaticController.java

@@ -0,0 +1,37 @@
+package com.yc.ship.module.trade.controller.admin.order;
+
+import com.yc.ship.framework.common.pojo.CommonResult;
+import com.yc.ship.framework.operatelog.core.annotations.OperateLog;
+import com.yc.ship.module.trade.controller.admin.order.vo.order.TradeStaticReqVO;
+import com.yc.ship.module.trade.service.otc.OtcTradeOrderService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.slf4j.Slf4j;
+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 javax.annotation.Resource;
+import javax.validation.Valid;
+
+import static com.yc.ship.framework.operatelog.core.enums.OperateTypeEnum.API;
+
+
+@Slf4j
+@Validated
+@RequestMapping("/static")
+@RestController
+@Tag(name = "统计服务(带token)")
+public class TradeStaticController {
+    @Resource
+    private OtcTradeOrderService otcTradeOrderService;
+    @PostMapping("/regionStatic")
+    @Operation(summary = "代理区域统计")
+    @OperateLog(type = API)
+    public CommonResult<?> regionStatic(@Valid @RequestBody TradeStaticReqVO reqVO) {
+        return otcTradeOrderService.regionStatic(reqVO);
+    }
+
+}

+ 24 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/controller/admin/order/vo/order/TradeStaticReqVO.java

@@ -0,0 +1,24 @@
+package com.yc.ship.module.trade.controller.admin.order.vo.order;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+import static com.yc.ship.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+
+@Schema(description = "订单核销 Request VO")
+@Data
+public class TradeStaticReqVO {
+
+    @Schema(description = "开始时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private String startDate;
+
+    @Schema(description = "结束时间", example = "")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private String endDate;
+
+}

+ 3 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/dal/mysql/order/TradeOrderMapper.java

@@ -215,4 +215,7 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
                 .eqIfPresent(TradeOrderDO::getSourceId, reqVO.getDistributorId())
         );
     }
+
+    List<Map<String, Object>> regionStatic(@Param("vo") TradeStaticReqVO regionStatic);
+
 }

+ 2 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/OtcTradeOrderService.java

@@ -148,4 +148,6 @@ public interface OtcTradeOrderService {
      * @return
      */
     TradeOrderRespNewVO getOrderInfoNew(Long id);
+
+    CommonResult<?> regionStatic(TradeStaticReqVO reqVO);
 }

+ 5 - 0
ship-module-trade/ship-module-trade-biz/src/main/java/com/yc/ship/module/trade/service/otc/impl/OtcTradeOrderServiceImpl.java

@@ -2383,6 +2383,11 @@ public class OtcTradeOrderServiceImpl implements OtcTradeOrderService {
         return orderRespNewVO;
     }
 
+    @Override
+    public CommonResult<?> regionStatic(TradeStaticReqVO regionStatic) {
+        return CommonResult.success(tradeOrderMapper.regionStatic(regionStatic));
+    }
+
     private void markChangeOrder(Long orderId){
         String key =  String.format(KEY_MARK_CHANGE_ORDER,orderId);
         stringRedisTemplate.opsForValue().set(key,orderId.toString(),60, TimeUnit.MINUTES);

+ 18 - 0
ship-module-trade/ship-module-trade-biz/src/main/resources/mapper/order/TradeOrderMapper.xml

@@ -2388,4 +2388,22 @@
         </if>
         order by ts.create_time desc
     </select>
+
+    <select id="regionStatic"  resultType="java.util.Map">
+        select t4.id,t4.`name`,t6.province,t6.city,count(DISTINCT t3.id) num from trade_order t1 inner join trade_detail t2 on t1.id = t2.order_id
+        inner join trade_visitor t3 on t2.id = t3.detail_id
+        inner join ota_distributor t4 on t1.source_id = t4.id
+        inner join ota_distributor_region t5 on t4.id = t5.distributor_id
+        and (left(t3.credential_no,2) = t5.distributor_region_id or left(t3.credential_no,4) = t5.distributor_region_id)
+        inner join ota_region t6 on ((t5.distributor_region_id = province_code and LEVEL=1) or t5.distributor_region_id = left(t6.id,4) )
+        where t2.voucher_status in (1,2,3,4,6,8,9)
+        <if test="vo.startDate != null and vo.startDate!=''">
+            AND t2.use_date <![CDATA[ >= ]]> #{vo.startDate}
+        </if>
+        <if test="vo.endDate != null and vo.endDate!=''">
+            AND t2.use_date <![CDATA[ <= ]]> #{vo.endDate}
+        </if>
+        GROUP BY t4.id
+        order by num desc
+    </select>
 </mapper>

+ 2 - 0
ship-server-web/src/main/resources/application.yaml

@@ -317,6 +317,8 @@ yudao:
       - system_area_country
       - trade_mch_info
       - trade_order_jz
+      - ota_distributor_region
+      - ota_region
     ignore-caches:
       - user_role_ids
       - permission_menu_ids