From 92cf3c01450a499915aa8fe97cd32a8c657c011c Mon Sep 17 00:00:00 2001
From: 克 刘 <4345453@qq.com>
Date: Thu, 26 Mar 2020 21:05:16 +0800
Subject: [PATCH] 优化动态表名,扩展Mapper.xml传递动态表名

---
 kidgrow-demo/kidgrow-demo-order/src/main/resources/mapper/OrderInfoDetailMapper.xml                      |   13 +++
 kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/service/impl/OrderDetailServiceImpl.java |   50 ++++++++++++
 kidgrow-demo/kidgrow-demo-order/src/test/java/com/kidgrow/order/mapper/OrderInfoMapperTest.java          |   19 ++++
 kidgrow-config/src/main/resources/application-fat.properties                                             |    4 
 kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/model/OrderDetail.java                   |   26 ++++++
 kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/controller/OrderDetailController.java    |   49 ++++++++++++
 kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/service/IOrderDetailService.java         |   26 ++++++
 kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/mapper/OrderInfoDetailMapper.java        |   14 +++
 8 files changed, 199 insertions(+), 2 deletions(-)

diff --git a/kidgrow-config/src/main/resources/application-fat.properties b/kidgrow-config/src/main/resources/application-fat.properties
index 9a9cb8a..854f337 100644
--- a/kidgrow-config/src/main/resources/application-fat.properties
+++ b/kidgrow-config/src/main/resources/application-fat.properties
@@ -18,8 +18,8 @@
 kidgrow.druid.loginpwd=123456
 
 #eureka \u6CE8\u518C\u4E2D\u5FC3Url
-kidgrow.eureka.client.serviceUrl.defaultZone=http://172.17.97.143:9001/eureka/
-kidgrow.eureka.instance.hostname=172.17.97.143
+kidgrow.eureka.client.serviceUrl.defaultZone=http://182.92.99.224:9001/eureka/
+kidgrow.eureka.instance.hostname=182.92.99.224
 ##eureka client\u53D1\u9001\u5FC3\u8DF3\u7ED9server\u7AEF\u7684\u9891\u7387
 eureka.instance.lease-renewal-interval-in-seconds=30
 #eureka client\u95F4\u9694\u591A\u4E45\u53BB\u62C9\u53D6\u670D\u52A1\u6CE8\u518C\u4FE1\u606F\uFF0C\u9ED8\u8BA4\u4E3A30\u79D2\uFF0C\u5BF9\u4E8Eapi-gateway\uFF0C\u5982\u679C\u8981\u8FC5\u901F\u83B7\u53D6\u670D\u52A1\u6CE8\u518C\u72B6\u6001\uFF0C\u53EF\u4EE5\u7F29\u5C0F\u8BE5\u503C\uFF0C\u6BD4\u59825\u79D2
diff --git a/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/controller/OrderDetailController.java b/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/controller/OrderDetailController.java
new file mode 100644
index 0000000..9fda4bf
--- /dev/null
+++ b/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/controller/OrderDetailController.java
@@ -0,0 +1,49 @@
+package com.kidgrow.order.controller;
+
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.order.service.IOrderDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: <br>
+ * @Project: <br>
+ * @CreateDate: Created in 2020/3/26 18:27 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ */
+@Slf4j
+@RestController
+@RequestMapping("/orderdetail")
+@Api(tags = "")
+public class OrderDetailController {
+    @Autowired
+    private IOrderDetailService orderDetailService;
+
+    /**
+     * 列表
+     */
+    @ApiOperation(value = "查询列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"),
+            @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer")
+    })
+    @GetMapping
+    public PageResult list(@RequestParam Map<String, Object> params) {
+//        DynamicTableContextHolder.setDynamicTable("order_detail_2020");
+//        DynamicTableContextHolder.setDynamicTable("order_info_2020");
+
+        return orderDetailService.findList(params,"");
+    }
+}
diff --git a/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/mapper/OrderInfoDetailMapper.java b/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/mapper/OrderInfoDetailMapper.java
index bde544d..c19103a 100644
--- a/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/mapper/OrderInfoDetailMapper.java
+++ b/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/mapper/OrderInfoDetailMapper.java
@@ -1,7 +1,12 @@
 package com.kidgrow.order.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kidgrow.order.entity.OrderInfoDetail;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author liuke
@@ -9,4 +14,13 @@
  * @date 2019/11/22
  */
 public interface OrderInfoDetailMapper extends BaseMapper<OrderInfoDetail> {
+    /**
+     * 分页查询列表
+     * @param page
+     * @param params
+     * @return
+     */
+    List<OrderInfoDetail> findList(Page<OrderInfoDetail> page, @Param("p") Map<String, Object> params,@Param("tableTag") String tableTag);
+
+    List<OrderInfoDetail> findListAll(Page<OrderInfoDetail> page, @Param("p") Map<String, Object> params);
 }
diff --git a/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/model/OrderDetail.java b/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/model/OrderDetail.java
new file mode 100644
index 0000000..8ea2e97
--- /dev/null
+++ b/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/model/OrderDetail.java
@@ -0,0 +1,26 @@
+package com.kidgrow.order.model;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.kidgrow.common.model.SuperModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: <br>
+ * @Project: <br>
+ * @CreateDate: Created in 2020/3/26 18:17 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@TableName("order_detail_test")
+public class OrderDetail extends SuperModel {
+    private static final long serialVersionUID = 1L;
+
+    //
+    private Long testId;
+    //
+    private String name;
+}
diff --git a/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/service/IOrderDetailService.java b/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/service/IOrderDetailService.java
new file mode 100644
index 0000000..97d4949
--- /dev/null
+++ b/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/service/IOrderDetailService.java
@@ -0,0 +1,26 @@
+package com.kidgrow.order.service;
+
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.service.ISuperService;
+import com.kidgrow.order.entity.OrderInfoDetail;
+
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: <br>
+ * @Project: <br>
+ * @CreateDate: Created in 2020/3/26 18:16 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ */
+public interface IOrderDetailService extends ISuperService<OrderInfoDetail> {
+    /**
+     * 列表
+     * @param params
+     * @return
+     */
+    PageResult<OrderInfoDetail> findList(Map<String, Object> params,String tableTag);
+
+    PageResult<OrderInfoDetail> findListAll(Map<String, Object> params);
+}
diff --git a/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/service/impl/OrderDetailServiceImpl.java b/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/service/impl/OrderDetailServiceImpl.java
new file mode 100644
index 0000000..0346302
--- /dev/null
+++ b/kidgrow-demo/kidgrow-demo-order/src/main/java/com/kidgrow/order/service/impl/OrderDetailServiceImpl.java
@@ -0,0 +1,50 @@
+package com.kidgrow.order.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kidgrow.common.model.PageResult;
+import com.kidgrow.common.service.impl.SuperServiceImpl;
+import com.kidgrow.order.entity.OrderInfoDetail;
+import com.kidgrow.order.mapper.OrderInfoDetailMapper;
+import com.kidgrow.order.service.IOrderDetailService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: <br>
+ * @Project: <br>
+ * @CreateDate: Created in 2020/3/26 18:21 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ */
+@Slf4j
+@Service
+public class OrderDetailServiceImpl extends SuperServiceImpl<OrderInfoDetailMapper, OrderInfoDetail> implements IOrderDetailService {
+    /**
+     * 列表
+     * @param params
+     * @return
+     */
+    @Override
+    public PageResult<OrderInfoDetail> findList(Map<String, Object> params,String tableTag){
+        Page<OrderInfoDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
+        List<OrderInfoDetail> list  =  baseMapper.findList(page, params,tableTag);
+        return PageResult.<OrderInfoDetail>builder().data(list).code(0).count(page.getTotal()).build();
+    }
+
+    /**
+     * 列表
+     * @param params
+     * @return
+     */
+    @Override
+    public PageResult<OrderInfoDetail> findListAll(Map<String, Object> params){
+        Page<OrderInfoDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
+        List<OrderInfoDetail> list  =  baseMapper.findListAll(page, params);
+        return PageResult.<OrderInfoDetail>builder().data(list).code(0).count(page.getTotal()).build();
+    }
+}
diff --git a/kidgrow-demo/kidgrow-demo-order/src/main/resources/mapper/OrderInfoDetailMapper.xml b/kidgrow-demo/kidgrow-demo-order/src/main/resources/mapper/OrderInfoDetailMapper.xml
new file mode 100644
index 0000000..d9ee859
--- /dev/null
+++ b/kidgrow-demo/kidgrow-demo-order/src/main/resources/mapper/OrderInfoDetailMapper.xml
@@ -0,0 +1,13 @@
+<?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.kidgrow.order.mapper.OrderInfoDetailMapper">
+    <!--定义根据-OrderDetail当作查询条件返回对象集合-->
+    <select id="findList"  resultType="com.kidgrow.order.entity.OrderInfoDetail">
+        select t.* from order_detail${tableTag} t,order_info${tableTag} s where t.order_id=s.order_id
+    </select>
+
+    <select id="findListAll" resultType="com.kidgrow.order.entity.OrderInfoDetail">
+        select t.* from order_detail t,order_info s where t.order_id=s.order_id
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/kidgrow-demo/kidgrow-demo-order/src/test/java/com/kidgrow/order/mapper/OrderInfoMapperTest.java b/kidgrow-demo/kidgrow-demo-order/src/test/java/com/kidgrow/order/mapper/OrderInfoMapperTest.java
index 1c9f0d9..7888100 100644
--- a/kidgrow-demo/kidgrow-demo-order/src/test/java/com/kidgrow/order/mapper/OrderInfoMapperTest.java
+++ b/kidgrow-demo/kidgrow-demo-order/src/test/java/com/kidgrow/order/mapper/OrderInfoMapperTest.java
@@ -1,7 +1,9 @@
 package com.kidgrow.order.mapper;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.kidgrow.common.context.DynamicTableContextHolder;
 import com.kidgrow.order.entity.OrderInfo;
+import com.kidgrow.order.service.IOrderDetailService;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -9,6 +11,7 @@
 import org.springframework.test.context.junit4.SpringRunner;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -23,6 +26,8 @@
 public class OrderInfoMapperTest {
     @Autowired
     private OrderInfoMapper orderInfoMapper;
+    @Autowired
+    private IOrderDetailService orderDetailService;
 
     @Test
     public void getOrderInfo(){
@@ -45,4 +50,18 @@
 
 
     }
+
+    @Test
+    public void orderDetail(){
+        Map<String, Object> params=null;
+        params.put("page",1);
+        params.put("limit",10);
+        DynamicTableContextHolder.setDynamicTable("order_detail_2020");
+        DynamicTableContextHolder.setDynamicTable("order_info_2020");
+        orderDetailService.findList(params,"");
+
+        System.out.println(orderDetailService.findList(params,""));
+
+
+    }
 }
\ No newline at end of file

--
Gitblit v1.8.0