Эх сурвалжийг харах

京东订单,详情,退货单,详情,字典初始化,状态更新

1018653686@qq.com 1 жил өмнө
parent
commit
d681b4c9b4
50 өөрчлөгдсөн 1617 нэмэгдсэн , 198 устгасан
  1. 0 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/a-json/BlessingCoverApi.json
  2. 17 9
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdApiController.java
  3. 2 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdBackDetailsController.java
  4. 7 4
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdBackQualityDetailsController.java
  5. 3 4
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdBackQualityWaitController.java
  6. 7 4
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdInfoController.java
  7. 80 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdSalesReturnsController.java
  8. 80 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdSalesReturnsDetailController.java
  9. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdSalesReturnsDetailDto.java
  10. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdSalesReturnsDetailSelectDto.java
  11. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdSalesReturnsDto.java
  12. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdSalesReturnsSelectDto.java
  13. 3 4
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdBackQualityDetails.java
  14. 3 4
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdBackQualityWait.java
  15. 3 2
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdInfo.java
  16. 109 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdSalesReturns.java
  17. 93 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdSalesReturnsDetail.java
  18. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/CommonDictData.java
  19. 0 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/JdOrderVo.java
  20. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/JdSalesReturnsDetailVo.java
  21. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/JdSalesReturnsVo.java
  22. 1 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdBackDetailsMapper.java
  23. 1 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdBackMapper.java
  24. 1 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdBackQualityDetailsMapper.java
  25. 1 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdBackQualityWaitMapper.java
  26. 1 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdInfoMapper.java
  27. 1 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdOrderDetailsMapper.java
  28. 1 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdOrderMapper.java
  29. 32 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdSalesReturnsDetailMapper.java
  30. 32 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdSalesReturnsMapper.java
  31. 2 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdApiService.java
  32. 4 4
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdBackQualityDetailsService.java
  33. 0 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdBackQualityWaitService.java
  34. 4 4
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdInfoService.java
  35. 52 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdSalesReturnsDetailService.java
  36. 52 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdSalesReturnsService.java
  37. 9 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/constants/InitDictConstant.java
  38. 7 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/constants/JdParamConstant.java
  39. 31 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/factory/JdClientFactory.java
  40. 24 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/Example.java
  41. 550 134
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdApiServiceImpl.java
  42. 1 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdBackDetailsServiceImpl.java
  43. 7 7
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdInfoServiceImpl.java
  44. 1 1
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdOrderDetailsServiceImpl.java
  45. 66 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdSalesReturnsDetailServiceImpl.java
  46. 66 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdSalesReturnsServiceImpl.java
  47. 0 6
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/websocket/JdWebSocket.java
  48. 30 0
      hx-victoriatourist/src/main/resources/mapper/jd/JdInfoMapper.xml
  49. 54 0
      hx-victoriatourist/src/main/resources/mapper/jd/JdSalesReturnsDetailMapper.xml
  50. 60 0
      hx-victoriatourist/src/main/resources/mapper/jd/JdSalesReturnsMapper.xml

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/a-json/BlessingCoverApi.json


+ 17 - 9
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdApiController.java

@@ -1,21 +1,18 @@
 package com.fjhx.victoriatourist.controller.jd;
 
-import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpStatus;
-import com.alibaba.fastjson2.JSONObject;
 import com.fjhx.victoriatourist.service.jd.JdApiService;
-import com.ruoyi.system.utils.ConfigUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.view.RedirectView;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
-import java.util.Map;
 
 
 /**
@@ -33,6 +30,7 @@ public class JdApiController {
 
     @Autowired
     private JdApiService jdApiService;
+    private static String DOMAIN = "http://127.0.0.1:80";
 
     /**
      * 京东登录回调
@@ -42,6 +40,7 @@ public class JdApiController {
         log.info("京东回调code:{},state:{}", code, state);
         if (StrUtil.isBlank(code) || StrUtil.isBlank(state)){
             response.sendError(HttpStatus.HTTP_BAD_REQUEST, "参数错误");
+            return;
         }
         //获取token并且入库
         try{
@@ -49,20 +48,29 @@ public class JdApiController {
         }catch (Exception e){
             log.error("京东获取token异常", e);
             response.sendError(HttpStatus.HTTP_INTERNAL_ERROR, e.getMessage());
+            return;
         }
-        response.sendRedirect("http://127.0.0.1:80/callback.html");
+        response.sendRedirect(DOMAIN + "/callback.html");
     }
 
 
     @RequestMapping("/build2LoginUrl")
     @ResponseBody
     public String build2LoginUrl(){
-        String url = jdApiService.build2LoginUrl();
-//        String url = "http://127.0.0.1:80/testLogin.html?"+ IdUtil.getSnowflakeNextIdStr();
+//        String url = jdApiService.build2LoginUrl();
+        String url = DOMAIN + "/testLogin.html?"+ IdUtil.getSnowflakeNextIdStr();
 
         return url;
     }
 
 
 
+
+    @GetMapping("/test")
+    @ResponseBody
+    public String test(){
+//        String url = jdApiService.build2LoginUrl();
+        jdApiService.test();
+        return "123123";
+    }
 }

+ 2 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdBackDetailsController.java

@@ -1,6 +1,7 @@
 package com.fjhx.victoriatourist.controller.jd;
 
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 
 /**

+ 7 - 4
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdBackQualityDetailsController.java

@@ -1,13 +1,16 @@
 package com.fjhx.victoriatourist.controller.jd;
 
-import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityDetailsVo;
-import com.fjhx.victoriatourist.entity.jd.dto.JdBackQualityDetailsSelectDto;
 import com.fjhx.victoriatourist.entity.jd.dto.JdBackQualityDetailsDto;
-import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdBackQualityDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityDetailsVo;
 import com.fjhx.victoriatourist.service.jd.JdBackQualityDetailsService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import org.springframework.beans.factory.annotation.Autowired;
+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;
 

+ 3 - 4
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdBackQualityWaitController.java

@@ -1,13 +1,12 @@
 package com.fjhx.victoriatourist.controller.jd;
 
-import com.fjhx.victoriatourist.entity.jd.bo.JdBackQualityWaitExcelBo;
-import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityDetailsVo;
-import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityWaitVo;
+import com.fjhx.victoriatourist.entity.jd.bo.JdBackQualityWaitExcelBo;
 import com.fjhx.victoriatourist.entity.jd.dto.JdBackQualityWaitSelectDto;
+import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityWaitVo;
 import com.fjhx.victoriatourist.service.jd.JdBackQualityWaitService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;

+ 7 - 4
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdInfoController.java

@@ -1,13 +1,16 @@
 package com.fjhx.victoriatourist.controller.jd;
 
-import org.springframework.web.bind.annotation.*;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
-import com.fjhx.victoriatourist.entity.jd.dto.JdInfoSelectDto;
 import com.fjhx.victoriatourist.entity.jd.dto.JdInfoDto;
-import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdInfoSelectDto;
+import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
 import com.fjhx.victoriatourist.service.jd.JdInfoService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
 import org.springframework.beans.factory.annotation.Autowired;
+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;
 

+ 80 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdSalesReturnsController.java

@@ -0,0 +1,80 @@
+package com.fjhx.victoriatourist.controller.jd;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsSelectDto;
+import com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsVo;
+import com.fjhx.victoriatourist.service.jd.JdSalesReturnsService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ * <p>
+ * 京东售后退货 前端控制器
+ * </p>
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@RestController
+@RequestMapping("/jdSalesReturns")
+public class JdSalesReturnsController {
+
+    @Autowired
+    private JdSalesReturnsService jdSalesReturnsService;
+
+    /**
+     * 京东售后退货列表
+     */
+    @PostMapping("/list")
+    public List<JdSalesReturnsVo> list(@RequestBody JdSalesReturnsSelectDto dto) {
+        return jdSalesReturnsService.getList(dto);
+    }
+
+    /**
+     * 京东售后退货分页
+     */
+    @PostMapping("/page")
+    public Page<JdSalesReturnsVo> page(@RequestBody JdSalesReturnsSelectDto dto) {
+        return jdSalesReturnsService.getPage(dto);
+    }
+
+    /**
+     * 京东售后退货明细
+     */
+    @PostMapping("/detail")
+    public JdSalesReturnsVo detail(@RequestBody BaseSelectDto dto) {
+        return jdSalesReturnsService.detail(dto.getId());
+    }
+
+    /**
+     * 京东售后退货新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody JdSalesReturnsDto jdSalesReturnsDto) {
+        jdSalesReturnsService.add(jdSalesReturnsDto);
+    }
+
+    /**
+     * 京东售后退货编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody JdSalesReturnsDto jdSalesReturnsDto) {
+        jdSalesReturnsService.edit(jdSalesReturnsDto);
+    }
+
+    /**
+     * 京东售后退货删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        jdSalesReturnsService.delete(dto.getId());
+    }
+
+}

+ 80 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/jd/JdSalesReturnsDetailController.java

@@ -0,0 +1,80 @@
+package com.fjhx.victoriatourist.controller.jd;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsDetailDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsDetailSelectDto;
+import com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsDetailVo;
+import com.fjhx.victoriatourist.service.jd.JdSalesReturnsDetailService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ * <p>
+ * 京东售后退货明细 前端控制器
+ * </p>
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@RestController
+@RequestMapping("/jdSalesReturnsDetail")
+public class JdSalesReturnsDetailController {
+
+    @Autowired
+    private JdSalesReturnsDetailService jdSalesReturnsDetailService;
+
+    /**
+     * 京东售后退货明细列表
+     */
+    @PostMapping("/list")
+    public List<JdSalesReturnsDetailVo> list(@RequestBody JdSalesReturnsDetailSelectDto dto) {
+        return jdSalesReturnsDetailService.getList(dto);
+    }
+
+    /**
+     * 京东售后退货明细分页
+     */
+    @PostMapping("/page")
+    public Page<JdSalesReturnsDetailVo> page(@RequestBody JdSalesReturnsDetailSelectDto dto) {
+        return jdSalesReturnsDetailService.getPage(dto);
+    }
+
+    /**
+     * 京东售后退货明细明细
+     */
+    @PostMapping("/detail")
+    public JdSalesReturnsDetailVo detail(@RequestBody BaseSelectDto dto) {
+        return jdSalesReturnsDetailService.detail(dto.getId());
+    }
+
+    /**
+     * 京东售后退货明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody JdSalesReturnsDetailDto jdSalesReturnsDetailDto) {
+        jdSalesReturnsDetailService.add(jdSalesReturnsDetailDto);
+    }
+
+    /**
+     * 京东售后退货明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody JdSalesReturnsDetailDto jdSalesReturnsDetailDto) {
+        jdSalesReturnsDetailService.edit(jdSalesReturnsDetailDto);
+    }
+
+    /**
+     * 京东售后退货明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        jdSalesReturnsDetailService.delete(dto.getId());
+    }
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdSalesReturnsDetailDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.jd.dto;
+
+import com.fjhx.victoriatourist.entity.jd.po.JdSalesReturnsDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 京东售后退货明细新增编辑入参实体
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@Getter
+@Setter
+public class JdSalesReturnsDetailDto extends JdSalesReturnsDetail {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdSalesReturnsDetailSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.jd.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 京东售后退货明细列表查询入参实体
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@Getter
+@Setter
+public class JdSalesReturnsDetailSelectDto extends BaseSelectDto {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdSalesReturnsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.jd.dto;
+
+import com.fjhx.victoriatourist.entity.jd.po.JdSalesReturns;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 京东售后退货新增编辑入参实体
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@Getter
+@Setter
+public class JdSalesReturnsDto extends JdSalesReturns {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/dto/JdSalesReturnsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.jd.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 京东售后退货列表查询入参实体
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@Getter
+@Setter
+public class JdSalesReturnsSelectDto extends BaseSelectDto {
+
+}

+ 3 - 4
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdBackQualityDetails.java

@@ -1,13 +1,12 @@
 package com.fjhx.victoriatourist.entity.jd.po;
 
-import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.math.BigDecimal;
-import java.util.Date;
+import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * <p>
  * 京东退货质检明细

+ 3 - 4
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdBackQualityWait.java

@@ -1,13 +1,12 @@
 package com.fjhx.victoriatourist.entity.jd.po;
 
-import com.ruoyi.common.core.domain.BasePo;
 import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.math.BigDecimal;
-import java.util.Date;
+import com.ruoyi.common.core.domain.BasePo;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * <p>
  * 京东退货待质检

+ 3 - 2
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdInfo.java

@@ -1,11 +1,12 @@
 package com.fjhx.victoriatourist.entity.jd.po;
 
-import com.ruoyi.common.core.domain.BaseIdPo;
 import com.baomidou.mybatisplus.annotation.TableName;
-import java.util.Date;
+import com.ruoyi.common.core.domain.BaseIdPo;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.util.Date;
+
 /**
  * <p>
  * 京东基本信息表

+ 109 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdSalesReturns.java

@@ -0,0 +1,109 @@
+package com.fjhx.victoriatourist.entity.jd.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 京东售后退货
+ * </p>
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@Getter
+@Setter
+@TableName("jd_sales_returns")
+public class JdSalesReturns extends BasePo {
+
+    /**
+     * 退货总金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 		(-100 财务驳回 100 待推送财务 200 待财务结算 300 财务已结算 400 无需结算 0 未结算 1 已结算)
+     */
+    private Integer financeStatus;
+
+    /**
+     * 机构
+     */
+    private String orgName;
+
+    /**
+     * 备件库库房
+     */
+    private Integer storeId;
+
+    /**
+     * 出库类型(100 直退 200 非直退 300 出检)
+     */
+    private Integer outType;
+
+    /**
+     * 备件库机构
+     */
+    private Integer orgId;
+
+    /**
+     * 支付方式(100 抵退款 200 银行转账 300 现金 400 现金转账)
+     */
+    private String payType;
+
+    /**
+     * 		商品总数量
+     */
+    private Integer wareCount;
+
+    /**
+     * 		审核状态(100 审核通过 200 待采销审核 300 待质控审核 -100 驳回 0 待审核 1 已审核 2 待采销审核(老备件库) 3 待质控审核(老备件库) -1 驳回(老备件库) -2 撤销)
+     */
+    private String statusName;
+
+    /**
+     * 		采销员
+     */
+    private String salesPin;
+
+    /**
+     * 备件库库房名称
+     */
+    private String storeName;
+
+    /**
+     * 申请日期
+     */
+    private Date applyDateTime;
+
+    /**
+     * 出库单号
+     */
+    private Integer outNo;
+
+    /**
+     * 退货单号
+     */
+    private Integer refundId;
+
+    /**
+     * 供应商名称
+     */
+    private String providerName;
+
+    /**
+     * 出库描述
+     */
+    private String outTypeDesc;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+}

+ 93 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/po/JdSalesReturnsDetail.java

@@ -0,0 +1,93 @@
+package com.fjhx.victoriatourist.entity.jd.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 京东售后退货明细
+ * </p>
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@Getter
+@Setter
+@TableName("jd_sales_returns_detail")
+public class JdSalesReturnsDetail extends BasePo {
+
+    /**
+     * 售后退货id
+     */
+    private Long returnsId;
+
+    /**
+     * 商品编号
+     */
+    private Integer wareId;
+
+    /**
+     * 确认收货时间
+     */
+    private String signTime;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 备件条码
+     */
+    private String partCode;
+
+    /**
+     * 商品名称
+     */
+    private String wareName;
+
+    /**
+     * 平台原始订单号
+     */
+    private String saleOrdId;
+
+    /**
+     * 运单号
+     */
+    private String shipCode;
+
+    /**
+     * 确认收货人
+     */
+    private String confirmReceiptPeople;
+
+    /**
+     * 退货价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 合作渠道名称
+     */
+    private String channelName;
+
+    /**
+     * 订单业务模式模型
+     */
+    private String saleModeCd;
+
+    /**
+     * 合作渠道id
+     */
+    private String channelId;
+
+    /**
+     * 订单渠道类型
+     */
+    private String thirdBiz;
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/CommonDictData.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.jd.vo;
+
+import lombok.Data;
+
+@Data
+public class CommonDictData {
+    String key;
+    String value;
+
+
+    public CommonDictData(){
+    }
+    public CommonDictData(String key, String value){
+        this.key = key;
+        this.value = value;
+    }
+}

+ 0 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/JdOrderVo.java

@@ -1,6 +1,5 @@
 package com.fjhx.victoriatourist.entity.jd.vo;
 
-import com.fjhx.area.service.SetCustomizeAreaId;
 import com.fjhx.area.service.SetCustomizeAreaName;
 import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
 import lombok.Getter;

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/JdSalesReturnsDetailVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.jd.vo;
+
+import com.fjhx.victoriatourist.entity.jd.po.JdSalesReturnsDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 京东售后退货明细列表查询返回值实体
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@Getter
+@Setter
+public class JdSalesReturnsDetailVo extends JdSalesReturnsDetail {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/jd/vo/JdSalesReturnsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.jd.vo;
+
+import com.fjhx.victoriatourist.entity.jd.po.JdSalesReturns;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 京东售后退货列表查询返回值实体
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@Getter
+@Setter
+public class JdSalesReturnsVo extends JdSalesReturns {
+
+}

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdBackDetailsMapper.java

@@ -1,7 +1,7 @@
 package com.fjhx.victoriatourist.mapper.jd;
 
-import com.fjhx.victoriatourist.entity.jd.po.JdBackDetails;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.victoriatourist.entity.jd.po.JdBackDetails;
 
 
 /**

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdBackMapper.java

@@ -1,8 +1,8 @@
 package com.fjhx.victoriatourist.mapper.jd;
 
-import com.fjhx.victoriatourist.entity.jd.po.JdBack;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.po.JdBack;
 import com.fjhx.victoriatourist.entity.jd.vo.JdBackVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdBackQualityDetailsMapper.java

@@ -1,8 +1,8 @@
 package com.fjhx.victoriatourist.mapper.jd;
 
-import com.fjhx.victoriatourist.entity.jd.po.JdBackQualityDetails;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.po.JdBackQualityDetails;
 import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityDetailsVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdBackQualityWaitMapper.java

@@ -1,8 +1,8 @@
 package com.fjhx.victoriatourist.mapper.jd;
 
-import com.fjhx.victoriatourist.entity.jd.po.JdBackQualityWait;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.po.JdBackQualityWait;
 import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityWaitVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdInfoMapper.java

@@ -1,8 +1,8 @@
 package com.fjhx.victoriatourist.mapper.jd;
 
-import com.fjhx.victoriatourist.entity.jd.po.JdInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.po.JdInfo;
 import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdOrderDetailsMapper.java

@@ -1,7 +1,7 @@
 package com.fjhx.victoriatourist.mapper.jd;
 
-import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
 
 
 /**

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdOrderMapper.java

@@ -1,8 +1,8 @@
 package com.fjhx.victoriatourist.mapper.jd;
 
-import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
 import com.fjhx.victoriatourist.entity.jd.vo.JdOrderVo;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import org.apache.ibatis.annotations.Param;

+ 32 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdSalesReturnsDetailMapper.java

@@ -0,0 +1,32 @@
+package com.fjhx.victoriatourist.mapper.jd;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.po.JdSalesReturnsDetail;
+import com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsDetailVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 京东售后退货明细 Mapper 接口
+ * </p>
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+public interface JdSalesReturnsDetailMapper extends BaseMapper<JdSalesReturnsDetail> {
+
+    /**
+     * 京东售后退货明细列表
+     */
+    List<JdSalesReturnsDetailVo> getList(@Param("ew") IWrapper<JdSalesReturnsDetail> wrapper);
+
+    /**
+     * 京东售后退货明细分页
+     */
+    Page<JdSalesReturnsDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<JdSalesReturnsDetail> wrapper);
+
+}

+ 32 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/jd/JdSalesReturnsMapper.java

@@ -0,0 +1,32 @@
+package com.fjhx.victoriatourist.mapper.jd;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.po.JdSalesReturns;
+import com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 京东售后退货 Mapper 接口
+ * </p>
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+public interface JdSalesReturnsMapper extends BaseMapper<JdSalesReturns> {
+
+    /**
+     * 京东售后退货列表
+     */
+    List<JdSalesReturnsVo> getList(@Param("ew") IWrapper<JdSalesReturns> wrapper);
+
+    /**
+     * 京东售后退货分页
+     */
+    Page<JdSalesReturnsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<JdSalesReturns> wrapper);
+
+}

+ 2 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdApiService.java

@@ -8,4 +8,6 @@ public interface JdApiService {
     void getAccessTokenByCode(String code);
 
     String build2LoginUrl();
+
+    void test();
 }

+ 4 - 4
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdBackQualityDetailsService.java

@@ -1,11 +1,11 @@
 package com.fjhx.victoriatourist.service.jd;
 
-import com.fjhx.victoriatourist.entity.jd.po.JdBackQualityDetails;
-import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityDetailsVo;
-import com.fjhx.victoriatourist.entity.jd.dto.JdBackQualityDetailsSelectDto;
 import com.fjhx.victoriatourist.entity.jd.dto.JdBackQualityDetailsDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdBackQualityDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.jd.po.JdBackQualityDetails;
+import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityDetailsVo;
+import com.ruoyi.common.core.service.BaseService;
 
 import java.util.List;
 

+ 0 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdBackQualityWaitService.java

@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.victoriatourist.entity.jd.bo.JdBackQualityWaitExcelBo;
 import com.fjhx.victoriatourist.entity.jd.dto.JdBackQualityWaitSelectDto;
 import com.fjhx.victoriatourist.entity.jd.po.JdBackQualityWait;
-import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityDetailsVo;
 import com.fjhx.victoriatourist.entity.jd.vo.JdBackQualityWaitVo;
 import com.ruoyi.common.core.service.BaseService;
 import org.springframework.web.multipart.MultipartFile;

+ 4 - 4
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdInfoService.java

@@ -1,11 +1,11 @@
 package com.fjhx.victoriatourist.service.jd;
 
-import com.fjhx.victoriatourist.entity.jd.po.JdInfo;
-import com.ruoyi.common.core.service.BaseService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
-import com.fjhx.victoriatourist.entity.jd.dto.JdInfoSelectDto;
 import com.fjhx.victoriatourist.entity.jd.dto.JdInfoDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdInfoSelectDto;
+import com.fjhx.victoriatourist.entity.jd.po.JdInfo;
+import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
+import com.ruoyi.common.core.service.BaseService;
 
 import java.util.List;
 

+ 52 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdSalesReturnsDetailService.java

@@ -0,0 +1,52 @@
+package com.fjhx.victoriatourist.service.jd;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsDetailDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsDetailSelectDto;
+import com.fjhx.victoriatourist.entity.jd.po.JdSalesReturnsDetail;
+import com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsDetailVo;
+import com.ruoyi.common.core.service.BaseService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 京东售后退货明细 服务类
+ * </p>
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+public interface JdSalesReturnsDetailService extends BaseService<JdSalesReturnsDetail> {
+
+    /**
+     * 京东售后退货明细列表
+     */
+    List<JdSalesReturnsDetailVo> getList(JdSalesReturnsDetailSelectDto dto);
+
+    /**
+     * 京东售后退货明细分页
+     */
+    Page<JdSalesReturnsDetailVo> getPage(JdSalesReturnsDetailSelectDto dto);
+
+    /**
+     * 京东售后退货明细明细
+     */
+    JdSalesReturnsDetailVo detail(Long id);
+
+    /**
+     * 京东售后退货明细新增
+     */
+    void add(JdSalesReturnsDetailDto jdSalesReturnsDetailDto);
+
+    /**
+     * 京东售后退货明细编辑
+     */
+    void edit(JdSalesReturnsDetailDto jdSalesReturnsDetailDto);
+
+    /**
+     * 京东售后退货明细删除
+     */
+    void delete(Long id);
+
+}

+ 52 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/JdSalesReturnsService.java

@@ -0,0 +1,52 @@
+package com.fjhx.victoriatourist.service.jd;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsSelectDto;
+import com.fjhx.victoriatourist.entity.jd.po.JdSalesReturns;
+import com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsVo;
+import com.ruoyi.common.core.service.BaseService;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 京东售后退货 服务类
+ * </p>
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+public interface JdSalesReturnsService extends BaseService<JdSalesReturns> {
+
+    /**
+     * 京东售后退货列表
+     */
+    List<JdSalesReturnsVo> getList(JdSalesReturnsSelectDto dto);
+
+    /**
+     * 京东售后退货分页
+     */
+    Page<JdSalesReturnsVo> getPage(JdSalesReturnsSelectDto dto);
+
+    /**
+     * 京东售后退货明细
+     */
+    JdSalesReturnsVo detail(Long id);
+
+    /**
+     * 京东售后退货新增
+     */
+    void add(JdSalesReturnsDto jdSalesReturnsDto);
+
+    /**
+     * 京东售后退货编辑
+     */
+    void edit(JdSalesReturnsDto jdSalesReturnsDto);
+
+    /**
+     * 京东售后退货删除
+     */
+    void delete(Long id);
+
+}

+ 9 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/constants/InitDictConstant.java

@@ -0,0 +1,9 @@
+package com.fjhx.victoriatourist.service.jd.constants;
+
+public class InitDictConstant {
+    public static final String PREFIX = "jd_";
+    public static final String DELIVERY_CENTER = PREFIX + "delivery_center";
+    public static final String DELIVERY_CENTER_LABEL = "配送中心";
+    /**启用**/
+    public static final int ENABLE = 1;
+}

+ 7 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/constants/JdParamConstant.java

@@ -0,0 +1,7 @@
+package com.fjhx.victoriatourist.service.jd.constants;
+
+public class JdParamConstant {
+    public static final String appKey = "ECCD5CE82A501C7E0D8BB41C030C447D";
+    public static final String appSecret = "5b55c3f3eb874b0d8746ff28e7f91f64";
+    public static String SERVER_URL = "http://api.jd.com/routerjson";
+}

+ 31 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/factory/JdClientFactory.java

@@ -0,0 +1,31 @@
+package com.fjhx.victoriatourist.service.jd.factory;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
+import com.fjhx.victoriatourist.service.jd.JdInfoService;
+import com.fjhx.victoriatourist.service.jd.constants.JdParamConstant;
+import com.jd.open.api.sdk.DefaultJdClient;
+import com.jd.open.api.sdk.JdClient;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+@Component
+public class JdClientFactory {
+    @Resource
+    JdInfoService jdInfoService;
+    private JdClient jdClient = null;
+
+
+    public JdClient getJdClient() {
+        if(ObjectUtil.isNull(jdClient)){
+            JdInfoVo jdInfoVo = jdInfoService.getOne();
+            if(StrUtil.isBlank(jdInfoVo.getAccessToken())){
+                throw new RuntimeException("京东accessToken为空");
+            }
+            jdClient = new DefaultJdClient(JdParamConstant.SERVER_URL, jdInfoVo.getAccessToken(), JdParamConstant.appKey, JdParamConstant.appSecret);
+        }
+        return jdClient;
+    }
+}

+ 24 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/Example.java

@@ -0,0 +1,24 @@
+package com.fjhx.victoriatourist.service.jd.impl;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+
+public class Example {
+    public static void main(String[] args) {
+        DateTime dateTime = DateUtil.offsetHour(DateUtil.date(), -1);
+        System.out.println(dateTime);
+    }
+
+    public static void modifyValue(Integer value) {
+        System.out.println("Inside method: value = " + value);
+        
+        // 这里尝试修改 Integer 对象的值,但是这是不允许的
+        // value = value + 10; // 会引发编译错误
+
+        // 在方法内部修改对象的属性,调用者可以看到这个修改
+        // 但是请注意,这并非是修改 Integer 本身的值
+        value = value + 10;
+
+        System.out.println("Inside method after modification: value = " + value);
+    }
+}

+ 550 - 134
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdApiServiceImpl.java

@@ -1,22 +1,40 @@
 package com.fjhx.victoriatourist.service.jd.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.thread.ThreadUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson2.JSONObject;
-import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.item.entity.product.po.ProductInfo;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.tenant.entity.dict.dto.DictTenantDataDto;
+import com.fjhx.tenant.entity.dict.dto.DictTenantTypeDto;
+import com.fjhx.tenant.entity.dict.po.DictTenantData;
+import com.fjhx.tenant.entity.dict.po.DictTenantType;
+import com.fjhx.tenant.service.dict.DictTenantDataService;
+import com.fjhx.tenant.service.dict.DictTenantTypeService;
 import com.fjhx.victoriatourist.entity.jd.dto.JdInfoDto;
-import com.fjhx.victoriatourist.entity.jd.dto.JdInfoSelectDto;
 import com.fjhx.victoriatourist.entity.jd.po.JdBack;
 import com.fjhx.victoriatourist.entity.jd.po.JdBackDetails;
 import com.fjhx.victoriatourist.entity.jd.po.JdOrder;
 import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
+import com.fjhx.victoriatourist.entity.jd.vo.CommonDictData;
 import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
 import com.fjhx.victoriatourist.service.jd.*;
+import com.fjhx.victoriatourist.service.jd.constants.InitDictConstant;
+import com.fjhx.victoriatourist.service.jd.constants.JdParamConstant;
+import com.fjhx.victoriatourist.service.jd.factory.JdClientFactory;
 import com.jd.open.api.sdk.DefaultJdClient;
 import com.jd.open.api.sdk.JdClient;
+import com.jd.open.api.sdk.domain.supplier.PoCommonForJosWebService.response.getcomponentlist.Component;
+import com.jd.open.api.sdk.domain.supplier.PoCommonForJosWebService.response.getwaredeliverdistinctlist.WarehouseDto;
 import com.jd.open.api.sdk.domain.supplier.PoQueryForJosWebService.response.getdetailbyorderid.JOSDetailResultDto;
 import com.jd.open.api.sdk.domain.supplier.PoQueryForJosWebService.response.getdetailbyorderid.PurchaseAllocationDetailDto;
 import com.jd.open.api.sdk.domain.supplier.PoQueryForJosWebService.response.getpurchaseorderlist.JOSOrderResultDto;
@@ -24,15 +42,10 @@ import com.jd.open.api.sdk.domain.supplier.PoQueryForJosWebService.response.getp
 import com.jd.open.api.sdk.domain.supplier.ReturnOrderForJosWebService.response.detail.DetailResultDto;
 import com.jd.open.api.sdk.domain.supplier.ReturnOrderForJosWebService.response.get.RoDto;
 import com.jd.open.api.sdk.domain.supplier.ReturnOrderForJosWebService.response.get.RoResultDto;
-import com.jd.open.api.sdk.request.supplier.VcGetReturnOrderDetailRequest;
-import com.jd.open.api.sdk.request.supplier.VcGetdetailbyorderidRequest;
-import com.jd.open.api.sdk.request.supplier.VcGetpurchaseorderlistRequest;
-import com.jd.open.api.sdk.request.supplier.VcReturnOrderListPageGetRequest;
-import com.jd.open.api.sdk.response.supplier.VcGetReturnOrderDetailResponse;
-import com.jd.open.api.sdk.response.supplier.VcGetdetailbyorderidResponse;
-import com.jd.open.api.sdk.response.supplier.VcGetpurchaseorderlistResponse;
-import com.jd.open.api.sdk.response.supplier.VcReturnOrderListPageGetResponse;
-import com.ruoyi.system.utils.ConfigUtil;
+import com.jd.open.api.sdk.request.supplier.*;
+import com.jd.open.api.sdk.response.AbstractResponse;
+import com.jd.open.api.sdk.response.supplier.*;
+import com.ruoyi.common.utils.SecurityUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.io.IOUtils;
 import org.apache.http.HttpEntity;
@@ -49,7 +62,6 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
-import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -57,10 +69,8 @@ import java.util.stream.Collectors;
 @Service
 public class JdApiServiceImpl implements JdApiService {
 
-    private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-    private static final String appKey = "ECCD5CE82A501C7E0D8BB41C030C447D";
-    private static final String appSecret = "5b55c3f3eb874b0d8746ff28e7f91f64";
-    private static final String redirect_uri = "/open/jd/callback";
+    private static final String DOMAIN = "http://www.victoriatourist.ltd/prod-api";
+    private static final String redirect_uri = DOMAIN + "/open/jd/callback";
     private final String tenantId = "prod".equals(SpringUtil.getActiveProfile()) ? "wdly" : "wdlytest";
     private static final String ACCESS_TOKEN = "access_token";
     private static final String REFRESH_TOKEN = "refresh_token";
@@ -74,7 +84,19 @@ public class JdApiServiceImpl implements JdApiService {
     @Autowired
     private JdBackDetailsService jdBackDetailsService;
     @Resource
+    private JdSalesReturnsService jdSalesReturnsService;
+    @Resource
+    private JdSalesReturnsDetailService jdSalesReturnsDetailService;
+    @Resource
     private JdInfoService jdInfoService;
+    @Resource
+    private JdClientFactory jdClientFactory;
+    @Resource
+    private ProductInfoService productInfoService;
+    @Resource
+    private DictTenantTypeService dictTenantTypeService;
+    @Resource
+    private DictTenantDataService dictTenantDataService;
 
     /**
      * 获取AccessToken
@@ -83,10 +105,11 @@ public class JdApiServiceImpl implements JdApiService {
     public void getAccessTokenByCode(String code) {
         //获取AccessToken并存入数据库
         String path = "https://open-oauth.jd.com/oauth2/access_token?app_key=%s&app_secret=%s&grant_type=authorization_code&code=%s";
-        path = String.format(path, appKey, appSecret, code);
+        path = String.format(path, JdParamConstant.appKey, JdParamConstant.appSecret, code);
         try {
             JSONObject responseJson = getJSON(new HttpGet(path));
-            dealJdResponse(responseJson);
+            System.out.println(responseJson);
+            dealJdTokenResponse(responseJson);
         } catch (Exception e) {
             log.error("获取AccessToken出错:" + e.getMessage(), e);
         }
@@ -98,10 +121,27 @@ public class JdApiServiceImpl implements JdApiService {
     public String build2LoginUrl() {
         String url = "https://open-oauth.jd.com/oauth2/to_login?app_key=%s&response_type=code&redirect_uri=%s&state=%s&scope=snsapi_base";
         //TODO redirect_uri需要加上项目的域名
-        url = String.format(url, appKey, redirect_uri, DateUtil.format(new Date(), "yyyyMMddHHmmss"));
+        url = String.format(url, JdParamConstant.appKey, redirect_uri, DateUtil.format(new Date(), "yyyyMMddHHmmss"));
         return url;
     }
 
+    @Override
+    public void test() {
+//        SecurityUtils.setTenantId(tenantId);
+//        List<ProductInfo> list = productInfoService.list(q->q.eq(ProductInfo::getName,"44"));
+//        SecurityUtils.clearTenantId();
+        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+        SecurityUtils.setTenantId(tenantId);
+        DictTenantTypeDto dto = new DictTenantTypeDto();
+        dto.setCode("123");
+        dto.setTenantId(tenantId);
+        dictTenantTypeService.add(dto);
+        SecurityUtils.clearTenantId();
+        DynamicDataSourceContextHolder.poll();
+
+        System.out.println(123);
+    }
+
     /**
      * 刷新Token
      */
@@ -115,16 +155,15 @@ public class JdApiServiceImpl implements JdApiService {
             return;
         }
         String path = "https://open-oauth.jd.com/oauth2/refresh_token?app_key=%s&app_secret=%s&grant_type=refresh_token&refresh_token=%s";
-        path = String.format(path, appKey, appSecret, jdInfoVo.getRefreshToken());
+        path = String.format(path, JdParamConstant.appKey,JdParamConstant.appSecret, jdInfoVo.getRefreshToken());
         try {
             JSONObject responseJson = getJSON(new HttpGet(path));
-            dealJdResponse(responseJson);
+            dealJdTokenResponse(responseJson);
         } catch (Exception e) {
             log.error("刷新AccessToken出错:" + e.getMessage(), e);
         }
     }
 
-//    @DSTransactional
     //每小时执行一次
     @Scheduled(cron = "0 0 0/1  * * ? ")
     //每分钟执行一次
@@ -147,146 +186,466 @@ public class JdApiServiceImpl implements JdApiService {
     }
 
     /**
-     * 获取京东订单信息分页
+     * 开始京东订单采集
+     * @author hj
+     * @date 2023/12/13 22:30
      */
-    private JOSOrderResultDto getJdOrderInfo(Integer pageIndex, Integer pageSize, Date startTime, Date endTime, JdClient client) throws Exception {
-        VcGetpurchaseorderlistRequest request = new VcGetpurchaseorderlistRequest();
-        request.setCreatedDateStart(startTime);
-        request.setCreatedDateEnd(endTime);
-        request.setPageIndex(pageIndex);
-        request.setPageSize(pageSize);
-        VcGetpurchaseorderlistResponse response = client.execute(request);
-        return response.getJosOrderResultDto();
+    public void startJdOrder(){
+        JdClient jdClient = jdClientFactory.getJdClient();
+        while (true){
+            JdInfoVo jdInfoVo = jdInfoService.getOne();
+            boolean online = jdInfoVo.getOnline() > 0 ? true : false;
+            if(!online){
+                log.info("京东已经下线");
+                ThreadUtil.safeSleep(10000);
+                continue;
+            }
+            //开始校验是否符合条件
+            if (ObjectUtil.isNull(jdInfoVo.getInitQueryDate())) {
+                log.error("请线配置京东初始化查询时间");
+                ThreadUtil.safeSleep(10000);
+                continue;
+            }
+            try {
+                getJdOrderList(jdClient, jdInfoVo);
+            }catch (Exception e){
+                log.error("获取京东订单列表出错:" + e.getMessage(), e);
+            }
+            ThreadUtil.safeSleep(10000);
+        }
     }
 
+
+
     /**
-     * 获取京东订单
+     * 开始京东退货单采集
+     * @author hj
+     * @date 2023/12/13 22:30
      */
-    private void getJdOrder(JdClient client) throws Exception {
-        //获取开始同步的时间
-        Date startTime = sdf.parse("2023-11-01 00:00:00");
-        Date endTime = new Date();
-        //根据下单时间获取数据库里最后一个订单
-        JdOrder lastJdOrder = jdOrderService.getOne(q -> q.isNotNull(JdOrder::getCreatedDate).orderByDesc(JdOrder::getCreatedDate));
-        if (ObjectUtil.isNotEmpty(lastJdOrder)) {
-            //将最后一个下单时间减1个小时设置为开始时间
-            startTime = calculateTime(lastJdOrder.getCreatedDate(),Calendar.HOUR_OF_DAY, -1);
+    public void startJdBackOrder(){
+        JdClient jdClient = jdClientFactory.getJdClient();
+        while (true){
+            JdInfoVo jdInfoVo = jdInfoService.getOne();
+            boolean online = jdInfoVo.getOnline() > 0 ? true : false;
+            if(!online){
+                log.info("京东已经下线");
+                ThreadUtil.safeSleep(10000);
+                continue;
+            }
+            //开始校验是否符合条件
+            if (ObjectUtil.isNull(jdInfoVo.getInitQueryDate())) {
+                log.error("请线配置京东初始化查询时间");
+                ThreadUtil.safeSleep(10000);
+                continue;
+            }
+            try {
+                getJdBackOrder(jdClient, jdInfoVo);
+            }catch (Exception e){
+                log.error("获取京东订单列表出错:" + e.getMessage(), e);
+            }
+            ThreadUtil.safeSleep(10000);
         }
-        //计算总页数
-        Integer recordCount = getJdOrderInfo(1, 1, startTime, endTime, client).getRecordCount();
-        int pageSize = 50;
-        int pageCount = (recordCount + pageSize - 1) / pageSize;
+    }
 
-        List<PurchaseOrderDto> purchaseOrderList = new ArrayList<>();
-        //数据返回订单是倒序反过来按正顺保存
-        for (int i = pageCount; i > 0; i--) {
-            JOSOrderResultDto josOrderResultDto = getJdOrderInfo(i, pageSize, startTime, endTime, client);
-            List<PurchaseOrderDto> purchaseOrderList1 = josOrderResultDto.getPurchaseOrderList();
-            //京东回来的数据是按时间倒序的,使用reverse方法将list中的数据翻转为正序
-            Collections.reverse(purchaseOrderList1);
-            purchaseOrderList.addAll(purchaseOrderList1);
+    private static final Map<String, String> componentDictTypeMap = new HashMap<String, String>(){{
+        put("confirmState", "回告状态");
+        put("orderAttribute", "订单属性");
+        put("Status", "删除状态");
+        put("BackExplanationType", "图书回告不满足原因");
+        put("OrderState", "订单状态");
+    }};
+
+
+    /**
+     * 初始化租户字典表
+     */
+    public void initTenantDict(){
+        JdClient jdClient = jdClientFactory.getJdClient();
+        handleDeliveryCenter(jdClient);
+        handleComponent(jdClient);
+    }
+
+    //订单状态:审核不通过/供应商驳回/已完成
+    private static final ArrayList<String> notIn = new ArrayList<String>(){{
+        add("confirmState");
+        add("orderAttribute");
+        add("Status");
+    }};
+
+    /**
+     * 刷新京东状态
+     * @param
+     */
+    public void refreshJdState(){
+        JdClient jdClient = jdClientFactory.getJdClient();
+        while (true){
+            JdInfoVo jdInfoVo = jdInfoService.getOne();
+            boolean online = jdInfoVo.getOnline() > 0 ? true : false;
+            if(!online){
+                log.info("京东已经下线");
+                ThreadUtil.safeSleep(10000);
+                continue;
+            }
+            //开始校验是否符合条件
+            if (ObjectUtil.isNull(jdInfoVo.getInitQueryDate())) {
+                log.error("请线配置京东初始化查询时间");
+                ThreadUtil.safeSleep(10000);
+                continue;
+            }
+            try {
+                handleRefreshDate(jdClient);
+            }catch (Exception e){
+                log.error("获取京东订单列表出错:" + e.getMessage(), e);
+            }
+            ThreadUtil.safeSleep(10000);
         }
+    }
 
-        //处理数据(过滤已存在的数据)
-        List<Long> jdOrderIds = purchaseOrderList.stream().map(PurchaseOrderDto::getOrderId).collect(Collectors.toList());
-        //获取已同步的京东订单id
-        List<Long> jdOrderIds1 = jdOrderService.listObject(JdOrder::getOrderId, q -> q.in(JdOrder::getOrderId, jdOrderIds));
 
-        //过滤出未同步的数据
-        List<PurchaseOrderDto> purchaseOrderListFilter = purchaseOrderList.stream().filter(item -> !jdOrderIds1.contains(item.getOrderId())).collect(Collectors.toList());
+    public void handleRefreshDate(JdClient jdClient) throws Exception {
+        //1.查询列表订单状态不为审核不通过/供应商驳回/已完成
+        int pageIndex = 1;
+        long totalPage = 1;
+        int pageSize = 30;
+        Page<JdOrder> page = new Page<>(1, 30);
+        do{
+            Page<JdOrder> jdOrderPage = jdOrderService.page(page, q->q.notIn(JdOrder::getState, notIn).orderByAsc(JdOrder::getCreatedDate));
+            //2.按每30个订单查询京东订单状态
+            totalPage = jdOrderPage.getTotal();
+            List<JdOrder> records = jdOrderPage.getRecords();
+            List<Long> orderIds = records.stream().map(JdOrder::getOrderId).collect(Collectors.toList());
+            JOSOrderResultDto josOrderResultDto = getJdOrderInfo(pageIndex, pageSize + 20, records.get(0).getCreatedDate(), DateUtil.offsetDay(records.get(0).getCreatedDate(), 90), jdClient, orderIds);
+            List<PurchaseOrderDto> purchaseOrderList = josOrderResultDto.getPurchaseOrderList();
+            //3.更新订单信息
+            for (PurchaseOrderDto purchaseOrderDto : purchaseOrderList) {
+                jdOrderService.lambdaUpdate().eq(JdOrder::getOrderId, purchaseOrderDto.getOrderId());
+            }
+        }while (pageIndex <= totalPage);
+    }
 
-        //转为系统自己的实体类
-        List<JdOrder> jdOrderList = BeanUtil.copyToList(purchaseOrderListFilter, JdOrder.class);
-        //赋值租户id
-        jdOrderList.forEach(item -> item.setTenantId(tenantId));
-        //将数据存储到库
-        jdOrderService.saveBatch(jdOrderList);
+    /**
+     * 处理回告状态、订单属性、删除状态、图书回告不满足原因、订单状态
+     * @author hj
+     * @date 2023/12/13 21:56
+     * @param jdClient 
+     */
+    private void handleComponent(JdClient jdClient) {
+        componentDictTypeMap.forEach((k,v)->{
+            VcGetcomponentlistRequest request=new VcGetcomponentlistRequest();
+            DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+            SecurityUtils.setTenantId(tenantId);
+            try {
+                request.setType(k);
+                VcGetcomponentlistResponse response=jdClient.execute(request);
+
+                DictTenantType dictTenantType = handleDictType(k, v);
+
+                List<CommonDictData> commonDictDataList = new ArrayList<>();
+                List<Component> arg89 = response.getArg89();
+                for (Component component : arg89) {
+                    commonDictDataList.add(new CommonDictData(component.getKey(), component.getName()));
+                }
+                handleDictData(commonDictDataList, dictTenantType);
 
-        //获取明细
-        List<JdOrderDetails> jdOrderDetailsList = new ArrayList<>();
-        for (JdOrder jdOrder : jdOrderList) {
-            VcGetdetailbyorderidRequest request = new VcGetdetailbyorderidRequest();
-            request.setOrderId(jdOrder.getOrderId());
-            request.setIsPage(false);
-            VcGetdetailbyorderidResponse response = client.execute(request);
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+            SecurityUtils.clearTenantId();
+            DynamicDataSourceContextHolder.poll();
+        });
+    }
 
-            JOSDetailResultDto josDetailResultDto = response.getJosDetailResultDto();
-            List<PurchaseAllocationDetailDto> purchaseAllocationDetailList = josDetailResultDto.getPurchaseAllocationDetailList();
 
-            List<JdOrderDetails> jdOrderDetails = BeanUtil.copyToList(purchaseAllocationDetailList, JdOrderDetails.class);
-            jdOrderDetails.forEach(item -> item.setJdOrderId(jdOrder.getId()));
+    /**
+     * 处理配送中心字典转换
+     * @author hj
+     * @date 2023/12/13 21:55
+     * @param jdClient 
+     */
+    public void handleDeliveryCenter(JdClient jdClient){
+        //获取京东仓库,并存入字典表
+        VcGetwaredeliverdistinctlistRequest request=new VcGetwaredeliverdistinctlistRequest();
+        DynamicDataSourceContextHolder.push(SourceConstant.BASE);
+        SecurityUtils.setTenantId(tenantId);
+        try {
+            VcGetwaredeliverdistinctlistResponse response = jdClient.execute(request);
+
+            DictTenantType dictTenantType = handleDictType(InitDictConstant.DELIVERY_CENTER, InitDictConstant.DELIVERY_CENTER_LABEL);
+            //处理字典数据表
+            //删除全部数据
+            List<WarehouseDto> warehouseList = response.getJosWarehouseResultDto().getWarehouseList();
+            List<CommonDictData> commonDictDataList = new ArrayList<>();
+            for (WarehouseDto warehouseDto : warehouseList) {
+                commonDictDataList.add(new CommonDictData(StrUtil.toString(warehouseDto.getDeliverCenterId()), warehouseDto.getDeliverCenterName()));
+            }
+            handleDictData(commonDictDataList, dictTenantType);
+        } catch (Exception e) {
+            log.error("转换配送中心到字典出现异常",e);
+        }
+        SecurityUtils.clearTenantId();
+        DynamicDataSourceContextHolder.poll();
+    }
 
-            jdOrderDetailsList.addAll(jdOrderDetails);
+    private void handleDictData(List<CommonDictData> commonDictDataList, DictTenantType dictTenantType) {
+        dictTenantDataService.lambdaUpdate().eq(DictTenantData::getDictCode, dictTenantType.getCode()).remove();
+        int sort = 10;
+        List<DictTenantData> dataList = new ArrayList<>();
+        for (CommonDictData commonDictData : commonDictDataList) {
+            DictTenantDataDto dictTenantDataDto = new DictTenantDataDto();
+            dictTenantDataDto.setDictCode(dictTenantType.getCode());
+            dictTenantDataDto.setDictKey(StrUtil.toString(commonDictData.getKey()));
+            dictTenantDataDto.setDictValue(commonDictData.getValue());
+            dictTenantDataDto.setTenantId(tenantId);
+            dictTenantDataDto.setSort(sort);
+            sort = sort + 10;
+            dataList.add(dictTenantDataDto);
         }
-        //赋值租户id
-        jdOrderList.forEach(item -> item.setTenantId(tenantId));
-        jdOrderDetailsService.saveBatch(jdOrderDetailsList);
+        dictTenantDataService.saveBatch(dataList);
     }
 
+    /**
+     * 处理字典类型表
+     * @author hj
+     * @date 2023/12/13 22:03
+     * @param code
+     * @param name
+     */
+    private DictTenantType handleDictType(String code, String name){
+        DictTenantType dictTenantType = new DictTenantType();
+        List<DictTenantType> deliveryCenters = dictTenantTypeService.list(q -> q.eq(DictTenantType::getTenantId, tenantId).eq(DictTenantType::getCode, code));
+        //处理字典类型表
+        if(CollectionUtil.isNotEmpty(deliveryCenters)){
+            dictTenantType = deliveryCenters.get(0);
+        }else {
+            dictTenantType.setCode(code);
+            dictTenantType.setName(name);
+            dictTenantType.setTenantId(tenantId);
+            dictTenantType.setStatus(InitDictConstant.ENABLE);
+            DictTenantTypeDto dictTenantTypeDto = BeanUtil.copyProperties(dictTenantType, DictTenantTypeDto.class);
+            dictTenantTypeService.add(dictTenantTypeDto);
+            dictTenantType.setId(dictTenantTypeDto.getId());
+        }
+        return dictTenantType;
+    }
 
     /**
-     * 获取京东退货单信息分页
+     * 获取京东订单
      */
-    private static RoResultDto getJdBackOrderInfo(Integer pageIndex, Integer pageSize, Date startTime, Date endTime, JdClient client) throws Exception {
-        VcReturnOrderListPageGetRequest request = new VcReturnOrderListPageGetRequest();
-        request.setCreateDateBegin(startTime);
-        request.setCreateDateEnd(endTime);
-        request.setPageSize(pageIndex);
-        request.setPageIndex(pageSize);
-        VcReturnOrderListPageGetResponse response = client.execute(request);
-        return response.getRoResultDto();
+    private void getJdOrderList(JdClient client, JdInfoVo jdInfoVo) throws Exception {
+        int pageIndex = 1;
+        int totalPage = 1;
+        int pageSize = 50;
+        do{
+            //获取开始同步的时间
+            Date startTime = jdInfoVo.getInitQueryDate();
+            Date endTime = new Date();
+            //根据下单时间获取数据库里最后一个订单
+            JdOrder lastJdOrder = jdOrderService.getOne(q -> q.isNotNull(JdOrder::getCreatedDate).orderByDesc(JdOrder::getCreatedDate));
+            if (ObjectUtil.isNotEmpty(lastJdOrder)) {
+                //将最后一个下单时间减1个小时设置为开始时间
+                startTime = DateUtil.offsetHour(lastJdOrder.getCreatedDate(), -1);
+            }
+            //计算总页数
+            JOSOrderResultDto josOrderResultDto = getJdOrderInfo(pageIndex, pageSize, startTime, endTime, client, null);
+            totalPage = (josOrderResultDto.getRecordCount()/pageSize)+(josOrderResultDto.getRecordCount()%pageSize>0?1:0);
+
+            //数据返回订单是倒序反过来按正顺保存
+            List<PurchaseOrderDto> purchaseOrderList = josOrderResultDto.getPurchaseOrderList();
+            //京东回来的数据是按时间倒序的,使用reverse方法将list中的数据翻转为正序
+            Collections.reverse(purchaseOrderList);
+
+            //处理数据(过滤已存在的数据)
+            List<Long> jdOrderIds = purchaseOrderList.stream().map(PurchaseOrderDto::getOrderId).collect(Collectors.toList());
+            //获取已同步的京东订单id
+            List<Long> jdOrderIds1 = jdOrderService.listObject(JdOrder::getOrderId, q -> q.in(JdOrder::getOrderId, jdOrderIds));
+            //过滤出未同步的数据
+            List<PurchaseOrderDto> purchaseOrderListFilter = purchaseOrderList.stream().filter(item -> !jdOrderIds1.contains(item.getOrderId())).collect(Collectors.toList());
+            //转为系统自己的实体类
+            List<JdOrder> jdOrderList = BeanUtil.copyToList(purchaseOrderListFilter, JdOrder.class);
+            //赋值租户id
+            jdOrderList.forEach(item -> item.setTenantId(tenantId));
+            //将数据存储到库
+            jdOrderService.saveBatch(jdOrderList);
+            //获取明细
+            List<JdOrderDetails> jdOrderDetailsList = new ArrayList<>();
+            for (JdOrder jdOrder : jdOrderList) {
+                VcGetdetailbyorderidRequest request = new VcGetdetailbyorderidRequest();
+                request.setOrderId(jdOrder.getOrderId());
+                request.setIsPage(false);
+                VcGetdetailbyorderidResponse response = client.execute(request);
+                JOSDetailResultDto josDetailResultDto = response.getJosDetailResultDto();
+                List<PurchaseAllocationDetailDto> purchaseAllocationDetailList = josDetailResultDto.getPurchaseAllocationDetailList();
+                List<JdOrderDetails> jdOrderDetails = BeanUtil.copyToList(purchaseAllocationDetailList, JdOrderDetails.class);
+                jdOrderDetails.forEach(item -> {
+                    item.setJdOrderId(jdOrder.getId());
+                    //产品编码
+                    Long wareId = item.getWareId();
+                    List<ProductInfo> list = productInfoService.lambdaQuery().eq(ProductInfo::getCustomCode, wareId).list();
+                    if(CollectionUtil.isEmpty(list)){
+                        //TODO 没有产品触发异常;
+                    }else {
+                        item.setProductId(list.get(0).getId());
+                    }
+                });
+                jdOrderDetailsList.addAll(jdOrderDetails);
+            }
+//            //赋值租户id
+//            jdOrderList.forEach(item -> item.setTenantId(tenantId));
+            jdOrderDetailsService.saveBatch(jdOrderDetailsList);
+            pageIndex++;
+        } while (pageIndex <= totalPage);
     }
 
+
+
     /**
      * 获取京东退货订单
      */
-    private void getJdBackOrder(JdClient client) throws Exception {
-        //获取开始同步的时间
-        //获取开始同步的时间
-        Date startTime = sdf.parse("2023-11-01 00:00:00");
-        Date endTime = new Date();
-        //根据下单时间获取数据库里最后一个订单
-        JdBack lastJdBack = jdBackService.getOne(q -> q.isNotNull(JdBack::getCreateDate).orderByDesc(JdBack::getCreateDate));
-        if (ObjectUtil.isNotEmpty(lastJdBack)) {
-            //将最后一个下单时间减1个小时设置为开始时间
-            startTime = calculateTime(lastJdBack.getCreateDate(),Calendar.HOUR_OF_DAY, -1);
-        }
-
-        //获取数据总页数
-        RoResultDto jdBackOrderInfo = getJdBackOrderInfo(1, 1, startTime, endTime, client);
-        Integer recordCount = jdBackOrderInfo.getRecordCount();
+    private void getJdBackOrder(JdClient client, JdInfoVo jdInfoVo) throws Exception {
+        int pageIndex = 1;
+        int totalPage = 1;
         int pageSize = 50;
-        int pageCount = (recordCount + pageSize - 1) / pageSize;
-        //获取最后一页数据
-        RoResultDto jdBackOrderInfo1 = getJdBackOrderInfo(pageCount, pageSize, startTime, endTime, client);
-        List<RoDto> roDtoList = jdBackOrderInfo1.getRoDtoList();
-        //京东回来的数据是按时间倒序的,使用reverse方法将list中的数据翻转为正序
-        Collections.reverse(roDtoList);
-
-        //过滤出不在数据库里的新数据
-        List<Long> returnIds = roDtoList.stream().map(RoDto::getReturnId).collect(Collectors.toList());
-        List<Long> existReturnIds = jdBackService.listObject(JdBack::getReturnId, q -> q.in(JdBack::getReturnId, returnIds));
-        roDtoList = roDtoList.stream().filter(item -> !existReturnIds.contains(item.getReturnId())).collect(Collectors.toList());
-        //转成我们自己的实体类
-        List<JdBack> jdBackList = BeanUtil.copyToList(roDtoList, JdBack.class);
-        jdBackService.saveBatch(jdBackList);
-        //获取明细
-        List<JdBackDetails> JdBackDetailsList = new ArrayList<>();
-        for (JdBack jdBack : jdBackList) {
-            VcGetReturnOrderDetailRequest request = new VcGetReturnOrderDetailRequest();
-            request.setReturnId(jdBack.getReturnId());
-            VcGetReturnOrderDetailResponse response = client.execute(request);
-            DetailResultDto detailResultDto = response.getDetailResultDto();
-
-            List<JdBackDetails> jdBackDetails = BeanUtil.copyToList(detailResultDto.getDetailDtoList(), JdBackDetails.class);
-            jdBackDetails.forEach(item -> item.setJdBackId(jdBack.getId()));
-            JdBackDetailsList.addAll(jdBackDetails);
+        do {
+            Date startTime = jdInfoVo.getInitQueryDate();
+            Date endTime = new Date();
+            //根据下单时间获取数据库里最后一个订单
+            JdBack lastJdBack = jdBackService.getOne(q -> q.isNotNull(JdBack::getCreateDate).orderByDesc(JdBack::getCreateDate));
+            if (ObjectUtil.isNotEmpty(lastJdBack)) {
+                //将最后一个下单时间减1个小时设置为开始时间
+                startTime = DateUtil.offsetHour(lastJdBack.getCreateDate(), -1);
+            }
+            //计算总页数
+            RoResultDto jdBackOrderInfo = getJdBackInfo(pageIndex, pageSize, startTime, endTime, client);
+            totalPage = (jdBackOrderInfo.getRecordCount()/pageSize)+(jdBackOrderInfo.getRecordCount()%pageSize>0?1:0);
+            Integer recordCount = jdBackOrderInfo.getRecordCount();
+            List<RoDto> roDtoList = jdBackOrderInfo.getRoDtoList();
+            //京东回来的数据是按时间倒序的,使用reverse方法将list中的数据翻转为正序
+            Collections.reverse(roDtoList);
+
+            //过滤出不在数据库里的新数据
+            List<Long> returnIds = roDtoList.stream().map(RoDto::getReturnId).collect(Collectors.toList());
+            List<Long> existReturnIds = jdBackService.listObject(JdBack::getReturnId, q -> q.in(JdBack::getReturnId, returnIds));
+            roDtoList = roDtoList.stream().filter(item -> !existReturnIds.contains(item.getReturnId())).collect(Collectors.toList());
+            //转成我们自己的实体类
+            List<JdBack> jdBackList = BeanUtil.copyToList(roDtoList, JdBack.class);
+            jdBackService.saveBatch(jdBackList);
+//            //获取明细
+            List<JdBackDetails> JdBackDetailsList = new ArrayList<>();
+            for (JdBack jdBack : jdBackList) {
+                VcGetReturnOrderDetailRequest request = new VcGetReturnOrderDetailRequest();
+                request.setReturnId(jdBack.getReturnId());
+                VcGetReturnOrderDetailResponse response = client.execute(request);
+                DetailResultDto detailResultDto = response.getDetailResultDto();
+
+                List<JdBackDetails> jdBackDetails = BeanUtil.copyToList(detailResultDto.getDetailDtoList(), JdBackDetails.class);
+                jdBackDetails.forEach(item -> {
+                    item.setJdBackId(jdBack.getId());
+                    //产品编码
+                    Long wareId = item.getWareId();
+                    List<ProductInfo> list = productInfoService.lambdaQuery().eq(ProductInfo::getCustomCode, wareId).list();
+                    if(CollectionUtil.isEmpty(list)){
+                        //TODO 没有产品触发异常;
+                    }else {
+                        item.setProductId(list.get(0).getId());
+                    }
+                });
+                JdBackDetailsList.addAll(jdBackDetails);
+            }
+            jdBackDetailsService.saveBatch(JdBackDetailsList);
+            pageIndex++;
+        } while (pageIndex <= totalPage);
+
+    }
+
+
+
+    public void startJdSalesReturns(){
+        JdClient jdClient = jdClientFactory.getJdClient();
+        while (true){
+            JdInfoVo jdInfoVo = jdInfoService.getOne();
+            boolean online = jdInfoVo.getOnline() > 0 ? true : false;
+            if(!online){
+                log.info("京东已经下线");
+                ThreadUtil.safeSleep(10000);
+                continue;
+            }
+            //开始校验是否符合条件
+            if (ObjectUtil.isNull(jdInfoVo.getInitQueryDate())) {
+                log.error("请线配置京东初始化查询时间");
+                ThreadUtil.safeSleep(10000);
+                continue;
+            }
+            try {
+                getJdBackOrder(jdClient, jdInfoVo);
+            }catch (Exception e){
+                log.error("获取京东订单列表出错:" + e.getMessage(), e);
+            }
+            ThreadUtil.safeSleep(30000);
         }
-        jdBackDetailsService.saveBatch(JdBackDetailsList);
     }
 
 
     /**
+     * 获取京东退货订单
+     */
+    /*private void getJdSalesReturns(JdClient client, JdInfoVo jdInfoVo) throws Exception {
+        int pageIndex = 1;
+        int totalPage = 1;
+        int pageSize = 50;
+        do {
+            Date startTime = jdInfoVo.getInitQueryDate();
+            Date endTime = new Date();
+            //根据下单时间获取数据库里最后一个订单
+            JdSalesReturns jdSalesReturns = jdSalesReturnsService.getOne(q -> q.isNotNull(JdSalesReturns::getCreateTime).orderByDesc(JdSalesReturns::getCreateTime));
+            if (ObjectUtil.isNotEmpty(jdSalesReturns)) {
+                //将最后一个下单时间减1个小时设置为开始时间
+                startTime = DateUtil.offsetHour(jdSalesReturns.getCreateTime(), -1);
+            }
+            //计算总页数
+            RoResultDto jdSalesReturnsInfo = getJdSalesReturnsInfo(pageIndex, pageSize, startTime, endTime, client);
+            totalPage = (jdSalesReturnsInfo.getRecordCount()/pageSize)+(jdSalesReturnsInfo.getRecordCount()%pageSize>0?1:0);
+            Integer recordCount = jdSalesReturnsInfo.getRecordCount();
+            List<RoDto> roDtoList = jdSalesReturnsInfo.getRoDtoList();
+            //京东回来的数据是按时间倒序的,使用reverse方法将list中的数据翻转为正序
+            Collections.reverse(roDtoList);
+
+            //过滤出不在数据库里的新数据
+            List<Long> returnIds = roDtoList.stream().map(RoDto::getReturnId).collect(Collectors.toList());
+            List<Long> existReturnIds = jdSalesReturnsService.listObject(JdSalesReturns::getRefundId, q -> q.in(JdSalesReturns::getRefundId, returnIds));
+            roDtoList = roDtoList.stream().filter(item -> !existReturnIds.contains(item.getReturnId())).collect(Collectors.toList());
+            //转成我们自己的实体类
+            List<JdBack> jdBackList = BeanUtil.copyToList(roDtoList, JdBack.class);
+            jdBackService.saveBatch(jdBackList);
+//            //获取明细
+            List<JdBackDetails> JdBackDetailsList = new ArrayList<>();
+            for (JdBack jdBack : jdBackList) {
+                VcGetReturnOrderDetailRequest request = new VcGetReturnOrderDetailRequest();
+                request.setReturnId(jdBack.getReturnId());
+                VcGetReturnOrderDetailResponse response = client.execute(request);
+                DetailResultDto detailResultDto = response.getDetailResultDto();
+
+                List<JdBackDetails> jdBackDetails = BeanUtil.copyToList(detailResultDto.getDetailDtoList(), JdBackDetails.class);
+                jdBackDetails.forEach(item -> {
+                    item.setJdBackId(jdBack.getId());
+                    //产品编码
+                    Long wareId = item.getWareId();
+                    List<ProductInfo> list = productInfoService.lambdaQuery().eq(ProductInfo::getCustomCode, wareId).list();
+                    if(CollectionUtil.isEmpty(list)){
+                        //TODO 没有产品触发异常;
+                    }else {
+                        item.setProductId(list.get(0).getId());
+                    }
+                });
+                JdBackDetailsList.addAll(jdBackDetails);
+            }
+            jdBackDetailsService.saveBatch(JdBackDetailsList);
+            pageIndex++;
+        } while (pageIndex <= totalPage);
+
+    }*/
+
+
+    /**
      * 请求API工具方法
      */
     private static JSONObject getJSON(HttpRequestBase httpRequestBase) throws IOException {
@@ -336,9 +695,9 @@ public class JdApiServiceImpl implements JdApiService {
      * 处理jd返回对象
      * @author hj
      * @date 2023/12/10 22:07
-     * @param responseJson 
+     * @param responseJson
      */
-    private void dealJdResponse(JSONObject responseJson) {
+    private void dealJdTokenResponse(JSONObject responseJson) {
         if (ObjectUtil.isNotEmpty(responseJson.getString(ACCESS_TOKEN)) && ObjectUtil.isNotEmpty(responseJson.getString(REFRESH_TOKEN))) {
             log.info("成功获取AccessToken并保存" + responseJson);
             JdInfoVo jdInfoVo = jdInfoService.getOne();
@@ -350,10 +709,67 @@ public class JdApiServiceImpl implements JdApiService {
         }
     }
 
-    public static void main(String[] args) throws Exception {
-        JdClient client = new DefaultJdClient("http://api.jd.com/routerjson", "a1f79f4670fd43a28fa2de02abd86f03ytfm", appKey, appSecret);
 
 
+
+
+
+    /**
+     * 获取京东订单信息分页
+     */
+    private JOSOrderResultDto getJdOrderInfo(Integer pageIndex, Integer pageSize, Date startTime, Date endTime, JdClient client, List<Long> orderIds) throws Exception {
+        VcGetpurchaseorderlistRequest request = new VcGetpurchaseorderlistRequest();
+        request.setCreatedDateStart(startTime);
+        request.setCreatedDateEnd(endTime);
+        request.setPageIndex(pageIndex);
+        request.setPageSize(pageSize);
+        if(CollectionUtil.isNotEmpty(orderIds)){
+            request.setOrderIds(orderIds.stream().map(o->StrUtil.toString(orderIds)).collect(Collectors.joining(",")));
+        }
+        VcGetpurchaseorderlistResponse response = client.execute(request);
+        validSuccess(response, "获取京东订单信息分页");
+        return response.getJosOrderResultDto();
+    }
+
+    /**
+     * 获取京东退货单信息分页
+     */
+    private RoResultDto getJdBackInfo(Integer pageIndex, Integer pageSize, Date startTime, Date endTime, JdClient client) throws Exception {
+        VcReturnOrderListPageGetRequest request = new VcReturnOrderListPageGetRequest();
+        request.setCreateDateBegin(startTime);
+        request.setCreateDateEnd(endTime);
+        request.setPageSize(pageIndex);
+        request.setPageIndex(pageSize);
+        VcReturnOrderListPageGetResponse response = client.execute(request);
+        validSuccess(response, "获取京东退货单信息分页");
+        return response.getRoResultDto();
+    }
+
+    /**
+     * 获取京东退货售后单信息分页
+     */
+/*    private RoResultDto getJdSalesReturnsInfo(Integer pageIndex, Integer pageSize, Date startTime, Date endTime, JdClient client) throws Exception {
+        EdiwsRoRefundInfoListRequest request=new EdiwsRoRefundInfoListRequest();
+        request.setCreateDateBegin(startTime);
+        request.setCreateDateEnd(endTime);
+        request.setPageSize(pageIndex);
+        request.setPageIndex(pageSize);
+        VcReturnOrderListPageGetResponse response = client.execute(request);
+        validSuccess(response, "获取京东退货单信息分页");
+        return response.getRoResultDto();
+    }*/
+
+
+    void validSuccess(AbstractResponse response, String method){
+        String code = response.getCode();
+        if(!"200".equals(code)){
+            log.error("获取{}失败:{}", method ,response.getZhDesc());
+            throw new RuntimeException("获取"+ method +"失败:" + response.getZhDesc());
+        }
+    }
+
+    public static void main(String[] args) throws Exception {
+        JdClient client = new DefaultJdClient("http://api.jd.com/routerjson", "a1f79f4670fd43a28fa2de02abd86f03ytfm", JdParamConstant.appKey, JdParamConstant.appSecret);
     }
 
 }

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdBackDetailsServiceImpl.java

@@ -1,9 +1,9 @@
 package com.fjhx.victoriatourist.service.jd.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.victoriatourist.entity.jd.po.JdBackDetails;
 import com.fjhx.victoriatourist.mapper.jd.JdBackDetailsMapper;
 import com.fjhx.victoriatourist.service.jd.JdBackDetailsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 

+ 7 - 7
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdInfoServiceImpl.java

@@ -1,17 +1,17 @@
 package com.fjhx.victoriatourist.service.jd.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.victoriatourist.entity.jd.dto.JdInfoDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdInfoSelectDto;
 import com.fjhx.victoriatourist.entity.jd.po.JdInfo;
+import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
 import com.fjhx.victoriatourist.mapper.jd.JdInfoMapper;
 import com.fjhx.victoriatourist.service.jd.JdInfoService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
-import com.fjhx.victoriatourist.entity.jd.dto.JdInfoSelectDto;
 import com.ruoyi.common.utils.wrapper.IWrapper;
-import com.fjhx.victoriatourist.entity.jd.dto.JdInfoDto;
-import cn.hutool.core.bean.BeanUtil;
+import org.springframework.stereotype.Service;
 
 import java.util.List;
 

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdOrderDetailsServiceImpl.java

@@ -1,9 +1,9 @@
 package com.fjhx.victoriatourist.service.jd.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.victoriatourist.entity.jd.po.JdOrderDetails;
 import com.fjhx.victoriatourist.mapper.jd.JdOrderDetailsMapper;
 import com.fjhx.victoriatourist.service.jd.JdOrderDetailsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 

+ 66 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdSalesReturnsDetailServiceImpl.java

@@ -0,0 +1,66 @@
+package com.fjhx.victoriatourist.service.jd.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsDetailDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsDetailSelectDto;
+import com.fjhx.victoriatourist.entity.jd.po.JdSalesReturnsDetail;
+import com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsDetailVo;
+import com.fjhx.victoriatourist.mapper.jd.JdSalesReturnsDetailMapper;
+import com.fjhx.victoriatourist.service.jd.JdSalesReturnsDetailService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 京东售后退货明细 服务实现类
+ * </p>
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@Service
+public class JdSalesReturnsDetailServiceImpl extends ServiceImpl<JdSalesReturnsDetailMapper, JdSalesReturnsDetail> implements JdSalesReturnsDetailService {
+
+    @Override
+    public List<JdSalesReturnsDetailVo> getList(JdSalesReturnsDetailSelectDto dto) {
+        IWrapper<JdSalesReturnsDetail> wrapper = getWrapper();
+        wrapper.orderByDesc("jsrd", JdSalesReturnsDetail::getId);
+        List<JdSalesReturnsDetailVo> list = this.baseMapper.getList(wrapper);
+        return list;
+    }
+
+    @Override
+    public Page<JdSalesReturnsDetailVo> getPage(JdSalesReturnsDetailSelectDto dto) {
+        IWrapper<JdSalesReturnsDetail> wrapper = getWrapper();
+        wrapper.orderByDesc("jsrd", JdSalesReturnsDetail::getId);
+        Page<JdSalesReturnsDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public JdSalesReturnsDetailVo detail(Long id) {
+        JdSalesReturnsDetail JdSalesReturnsDetail = this.getById(id);
+        JdSalesReturnsDetailVo result = BeanUtil.toBean(JdSalesReturnsDetail, JdSalesReturnsDetailVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(JdSalesReturnsDetailDto jdSalesReturnsDetailDto) {
+        this.save(jdSalesReturnsDetailDto);
+    }
+
+    @Override
+    public void edit(JdSalesReturnsDetailDto jdSalesReturnsDetailDto) {
+        this.updateById(jdSalesReturnsDetailDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 66 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/impl/JdSalesReturnsServiceImpl.java

@@ -0,0 +1,66 @@
+package com.fjhx.victoriatourist.service.jd.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsDto;
+import com.fjhx.victoriatourist.entity.jd.dto.JdSalesReturnsSelectDto;
+import com.fjhx.victoriatourist.entity.jd.po.JdSalesReturns;
+import com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsVo;
+import com.fjhx.victoriatourist.mapper.jd.JdSalesReturnsMapper;
+import com.fjhx.victoriatourist.service.jd.JdSalesReturnsService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 京东售后退货 服务实现类
+ * </p>
+ *
+ * @author hj
+ * @since 2023-12-12
+ */
+@Service
+public class JdSalesReturnsServiceImpl extends ServiceImpl<JdSalesReturnsMapper, JdSalesReturns> implements JdSalesReturnsService {
+
+    @Override
+    public List<JdSalesReturnsVo> getList(JdSalesReturnsSelectDto dto) {
+        IWrapper<JdSalesReturns> wrapper = getWrapper();
+        wrapper.orderByDesc("jsr", JdSalesReturns::getId);
+        List<JdSalesReturnsVo> list = this.baseMapper.getList(wrapper);
+        return list;
+    }
+
+    @Override
+    public Page<JdSalesReturnsVo> getPage(JdSalesReturnsSelectDto dto) {
+        IWrapper<JdSalesReturns> wrapper = getWrapper();
+        wrapper.orderByDesc("jsr", JdSalesReturns::getId);
+        Page<JdSalesReturnsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public JdSalesReturnsVo detail(Long id) {
+        JdSalesReturns JdSalesReturns = this.getById(id);
+        JdSalesReturnsVo result = BeanUtil.toBean(JdSalesReturns, JdSalesReturnsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(JdSalesReturnsDto jdSalesReturnsDto) {
+        this.save(jdSalesReturnsDto);
+    }
+
+    @Override
+    public void edit(JdSalesReturnsDto jdSalesReturnsDto) {
+        this.updateById(jdSalesReturnsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 0 - 6
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/jd/websocket/JdWebSocket.java

@@ -1,22 +1,16 @@
 package com.fjhx.victoriatourist.service.jd.websocket;
 
-import cn.hutool.core.collection.CollectionUtil;
 import com.alibaba.fastjson2.JSONObject;
 import com.fjhx.socket.core.WebSocketServer;
 import com.fjhx.socket.core.event.WebSocketOnMessageEvent;
 import com.fjhx.socket.core.event.WebSocketOnOpenEvent;
-import com.fjhx.victoriatourist.entity.jd.dto.JdInfoSelectDto;
 import com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo;
 import com.fjhx.victoriatourist.service.jd.JdInfoService;
 import org.springframework.context.event.EventListener;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
-import org.springframework.stereotype.Service;
 
-import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
 import java.io.IOException;
-import java.util.List;
 import java.util.Random;
 
 @Component

+ 30 - 0
hx-victoriatourist/src/main/resources/mapper/jd/JdInfoMapper.xml

@@ -0,0 +1,30 @@
+<?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.fjhx.victoriatourist.mapper.jd.JdInfoMapper">
+    <select id="getList" resultType="com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo">
+        select
+            ji.id,
+            ji.access_token,
+            ji.refresh_token,
+            ji.online,
+            ji.last_refresh_time,
+            ji.init_query_date,
+            ji.expire_time
+        from jd_info ji
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.jd.vo.JdInfoVo">
+        select
+            ji.id,
+            ji.access_token,
+            ji.refresh_token,
+            ji.online,
+            ji.last_refresh_time,
+            ji.init_query_date,
+            ji.expire_time
+        from jd_info ji
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 54 - 0
hx-victoriatourist/src/main/resources/mapper/jd/JdSalesReturnsDetailMapper.xml

@@ -0,0 +1,54 @@
+<?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.fjhx.victoriatourist.mapper.jd.JdSalesReturnsDetailMapper">
+    <select id="getList" resultType="com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsDetailVo">
+        select
+            jsrd.id,
+            jsrd.returns_id,
+            jsrd.create_user,
+            jsrd.create_time,
+            jsrd.update_user,
+            jsrd.update_time,
+            jsrd.ware_id,
+            jsrd.sign_time,
+            jsrd.remark,
+            jsrd.part_code,
+            jsrd.ware_name,
+            jsrd.sale_ord_id,
+            jsrd.ship_code,
+            jsrd.confirm_receipt_people,
+            jsrd.price,
+            jsrd.channel_name,
+            jsrd.sale_mode_cd,
+            jsrd.channel_id,
+            jsrd.third_biz
+        from jd_sales_returns_detail jsrd
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsDetailVo">
+        select
+            jsrd.id,
+            jsrd.returns_id,
+            jsrd.create_user,
+            jsrd.create_time,
+            jsrd.update_user,
+            jsrd.update_time,
+            jsrd.ware_id,
+            jsrd.sign_time,
+            jsrd.remark,
+            jsrd.part_code,
+            jsrd.ware_name,
+            jsrd.sale_ord_id,
+            jsrd.ship_code,
+            jsrd.confirm_receipt_people,
+            jsrd.price,
+            jsrd.channel_name,
+            jsrd.sale_mode_cd,
+            jsrd.channel_id,
+            jsrd.third_biz
+        from jd_sales_returns_detail jsrd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 60 - 0
hx-victoriatourist/src/main/resources/mapper/jd/JdSalesReturnsMapper.xml

@@ -0,0 +1,60 @@
+<?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.fjhx.victoriatourist.mapper.jd.JdSalesReturnsMapper">
+    <select id="getList" resultType="com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsVo">
+        select
+            jsr.id,
+            jsr.create_user,
+            jsr.create_time,
+            jsr.update_user,
+            jsr.update_time,
+            jsr.amount,
+            jsr.finance_status,
+            jsr.org_name,
+            jsr.store_id,
+            jsr.out_type,
+            jsr.org_id,
+            jsr.pay_type,
+            jsr.ware_count,
+            jsr.status_name,
+            jsr.sales_pin,
+            jsr.store_name,
+            jsr.apply_date_time,
+            jsr.out_no,
+            jsr.refund_id,
+            jsr.provider_name,
+            jsr.out_type_desc,
+            jsr.contacts
+        from jd_sales_returns jsr
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getPage" resultType="com.fjhx.victoriatourist.entity.jd.vo.JdSalesReturnsVo">
+        select
+            jsr.id,
+            jsr.create_user,
+            jsr.create_time,
+            jsr.update_user,
+            jsr.update_time,
+            jsr.amount,
+            jsr.finance_status,
+            jsr.org_name,
+            jsr.store_id,
+            jsr.out_type,
+            jsr.org_id,
+            jsr.pay_type,
+            jsr.ware_count,
+            jsr.status_name,
+            jsr.sales_pin,
+            jsr.store_name,
+            jsr.apply_date_time,
+            jsr.out_no,
+            jsr.refund_id,
+            jsr.provider_name,
+            jsr.out_type_desc,
+            jsr.contacts
+        from jd_sales_returns jsr
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно