diff --git a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/OrderMapper.java b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/OrderMapper.java
index 0907820400c6041b34e292888baaf90b534c02d8..4069235044630c7685b7e12e66bfc232714a57ff 100644
--- a/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/OrderMapper.java
+++ b/wisenergy-mapper/src/main/java/cn/wisenergy/mapper/OrderMapper.java
@@ -18,4 +18,17 @@ public interface OrderMapper extends BaseMapper<OrderInfo> {
      * @return 订单列表
      */
     List<OrderInfo> getByRebateStatus(@Param("rebateStatus") Integer rebateStatus);
+
+    /**
+     * 有赞订单数据插入
+     */
+    void insertYouZanOrders(OrderInfo orderInfo);
+
+    /**
+     * 根据tid获取订单数据
+     * @param tid 有赞生成的订单id
+     * @return 一条订单数据
+     */
+    OrderInfo getByTid(@Param("tid")String tid);
+
 }
diff --git a/wisenergy-mapper/src/main/resources/mapper/OrderMapper.xml b/wisenergy-mapper/src/main/resources/mapper/OrderMapper.xml
index 5004851e4ced45c6f7002ce7f7249bad46de3ccc..5275052b7652cf6e36416bbbfc2c8c3536816908 100644
--- a/wisenergy-mapper/src/main/resources/mapper/OrderMapper.xml
+++ b/wisenergy-mapper/src/main/resources/mapper/OrderMapper.xml
@@ -95,4 +95,22 @@
         </where>
     </select>
 
+    <insert id="insertYouZanOrders" parameterType="cn.wisenergy.model.app.OrderInfo" keyProperty="id" useGeneratedKeys="true">
+        insert into
+        <include refid="table"/>
+        (<include refid="cols_exclude_id"/>)
+        value
+        (<include refid="vals"/>)
+    </insert>
+
+    <select id="getByTid" resultType="cn.wisenergy.model.app.OrderInfo">
+        SELECT
+        <include refid="cols_all"/>
+        from
+        <include refid="table"/>
+        <where>
+            tid=#{tid}
+        </where>
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/wisenergy-model/src/main/java/cn/wisenergy/model/app/OrderInfo.java b/wisenergy-model/src/main/java/cn/wisenergy/model/app/OrderInfo.java
index 710af0e230c279f7e1ac0bc081eb9fb8c261a60c..3d762d81875db625a062c2293044550ba61de5ff 100644
--- a/wisenergy-model/src/main/java/cn/wisenergy/model/app/OrderInfo.java
+++ b/wisenergy-model/src/main/java/cn/wisenergy/model/app/OrderInfo.java
@@ -85,13 +85,13 @@ public class OrderInfo {
      * 订单关闭类型
      */
     @ApiModelProperty(name = "closeType", value = "订单关闭类型")
-    private Date closeType;
+    private Integer closeType;
 
     /**
      * 退款状态
      */
     @ApiModelProperty(name = "refundState  ", value = "退款状态")
-    private Boolean refundState;
+    private Long refundState;
 
     /**
      * 交易完成时间
diff --git a/wisenergy-service/pom.xml b/wisenergy-service/pom.xml
index 79b1ecdeab26bef450b1028f7901f93ac6c66bb8..3fc63d5fc1f2d8e26445a7862ccfc008a46f0efd 100644
--- a/wisenergy-service/pom.xml
+++ b/wisenergy-service/pom.xml
@@ -72,6 +72,28 @@
             <artifactId>itext-asian</artifactId>
             <version>5.2.0</version>
         </dependency>
+
+        <!--有赞SDK-->
+        <dependency>
+            <groupId>com.youzan.cloud</groupId>
+            <artifactId>open-sdk-core</artifactId>
+            <version>1.0.7-RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>com.youzan.cloud</groupId>
+            <artifactId>open-sdk-gen</artifactId>
+            <version>1.0.7.78771202102051104-RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>com.youzan.cloud</groupId>
+            <artifactId>open-sdk-api</artifactId>
+            <version>1.0.7-RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>com.youzan.cloud</groupId>
+            <artifactId>open-sdk-common</artifactId>
+            <version>1.0.7-RELEASE</version>
+        </dependency>
     </dependencies>
 
     <!-- MAVEN构建 -->
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/OrderService.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/OrderService.java
index 838c1d6a0e37bb625f22644efc879faaff9f9c11..c1d71a4c6901edcf23bd236ec885767061319617 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/OrderService.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/OrderService.java
@@ -1,5 +1,8 @@
 package cn.wisenergy.service.app;
 
+import com.youzan.cloud.open.sdk.common.exception.SDKException;
+import com.youzan.cloud.open.sdk.gen.v4_0_0.model.YouzanTradesSoldGetResult;
+
 /**
 *@ Description: 订单接口定义
 *@ Author     : 86187
@@ -7,4 +10,7 @@ package cn.wisenergy.service.app;
  * @author 86187
  */
 public interface OrderService {
+    void getYouZanOrdersForCreateTime() throws SDKException;
+
+    void getYouZanOrdersForUpdateTime() throws SDKException;
 }
diff --git a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/OrderServiceImpl.java b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/OrderServiceImpl.java
index ce1a3bfa115c7def2f6e29d5866d6d9383198c01..3508b15d84e51a7c8acd8f42ab8cdf27397de136 100644
--- a/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/OrderServiceImpl.java
+++ b/wisenergy-service/src/main/java/cn/wisenergy/service/app/impl/OrderServiceImpl.java
@@ -4,12 +4,216 @@ import cn.wisenergy.mapper.OrderMapper;
 import cn.wisenergy.model.app.OrderInfo;
 import cn.wisenergy.service.app.OrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.youzan.cloud.open.sdk.common.exception.SDKException;
+import com.youzan.cloud.open.sdk.core.client.auth.Token;
+import com.youzan.cloud.open.sdk.core.client.core.DefaultYZClient;
+import com.youzan.cloud.open.sdk.core.oauth.model.OAuthToken;
+import com.youzan.cloud.open.sdk.core.oauth.token.TokenParameter;
+import com.youzan.cloud.open.sdk.gen.v4_0_0.model.YouzanTradesSoldGetResult;
+import com.youzan.cloud.open.sdk.gen.v4_0_1.api.YouzanTradesSoldGet;
+import com.youzan.cloud.open.sdk.gen.v4_0_1.model.YouzanTradesSoldGetParams;
+import javafx.scene.input.DataFormat;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 /**
- * @author 86187
- * @ Description: 订单接口业务实现
- * @ Author     : 86187
+ * @author zw
+ * @ Description: 定期获取有赞订单数据及更新订单状态
+ * @ Author     : zw
  * @ Date       : 2021/2/22 17:06
  */
+
+@Service
+@Slf4j
 public class OrderServiceImpl extends ServiceImpl<OrderMapper, OrderInfo> implements OrderService {
+
+    @Autowired
+    private OrderMapper orderMapper;
+    //有赞客户端
+    DefaultYZClient yzClient = new DefaultYZClient();
+    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+    Date startCreatedDate = null;
+    Date endCreatedDate = null;
+    Date startUpdateDate = null;
+    Date endUpdateDate = null;
+    Date date = new Date();
+    /**
+     * 根据订单的创建时间获取有赞的订单数据 插入本地数据库
+     *
+     * @return
+     * @throws SDKException
+     */
+    public void getYouZanOrdersForCreateTime() throws SDKException {
+        Token token = youzanToken();
+        YouzanTradesSoldGet youzanTradesSoldGet = new YouzanTradesSoldGet();
+        //创建参数对象,并设置参数
+        YouzanTradesSoldGetParams youzanTradesSoldGetParams = new YouzanTradesSoldGetParams();
+        OrderInfo orderInfo = new OrderInfo();
+        try {
+//            startCreatedDate = sdf.parse("2021-01-28 11:04:01");
+//            endCreatedDate = sdf.parse("2021-03-1 16:39:59");
+            //当前时间的前1分钟
+            startCreatedDate = sdf.parse(sdf.format(new Date(date.getTime()-(long) 80*24*60*60*1000)));
+            log.info("订单创建开始时间"+sdf.format(startCreatedDate));
+            endCreatedDate = sdf.parse(sdf.format(date));
+            log.info("订单创建结束时间"+sdf.format(endCreatedDate));
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        //设置查询条件 --> 根据订单创建时间获取
+        youzanTradesSoldGetParams.setStartCreated(startCreatedDate);
+        youzanTradesSoldGetParams.setEndCreated(endCreatedDate);
+        youzanTradesSoldGet.setAPIParams(youzanTradesSoldGetParams);
+        //执行查询
+        YouzanTradesSoldGetResult result = yzClient.invoke(youzanTradesSoldGet, token, YouzanTradesSoldGetResult.class);
+        List<YouzanTradesSoldGetResult.YouzanTradesSoldGetResultFullorderinfolist> fullOrderInfoList = result.getData().getFullOrderInfoList();
+        //遍历订单数据
+        for (YouzanTradesSoldGetResult.YouzanTradesSoldGetResultFullorderinfolist youzanTradesSoldGetResultFullorderinfolist : fullOrderInfoList) {
+
+            YouzanTradesSoldGetResult.YouzanTradesSoldGetResultBuyerinfo buyerInfo = youzanTradesSoldGetResultFullorderinfolist.getFullOrderInfo().getBuyerInfo();
+            List<YouzanTradesSoldGetResult.YouzanTradesSoldGetResultOrders> orders = youzanTradesSoldGetResultFullorderinfolist.getFullOrderInfo().getOrders();
+            YouzanTradesSoldGetResult.YouzanTradesSoldGetResultOrderinfo youzanOrderInfo = youzanTradesSoldGetResultFullorderinfolist.getFullOrderInfo().getOrderInfo();
+            YouzanTradesSoldGetResult.YouzanTradesSoldGetResultPayinfo payInfo = youzanTradesSoldGetResultFullorderinfolist.getFullOrderInfo().getPayInfo();
+
+            //item_id 字段 处理
+            List<String> itemList = new ArrayList<>();
+            for (YouzanTradesSoldGetResult.YouzanTradesSoldGetResultOrders order : orders) {
+                String itemId = order.getItemId().toString();
+                itemList.add(itemId);
+            }
+
+            orderInfo.setItemId(itemList.toString());
+            //有赞的outer_user_id
+            orderInfo.setBuyerId(buyerInfo.getOuterUserId());
+            //支付方式
+            orderInfo.setPayType(youzanOrderInfo.getPayType().toString());
+            //有赞update_time
+            orderInfo.setYouzanUpdateTime(youzanOrderInfo.getUpdateTime());
+            //tid
+            orderInfo.setTid(youzanOrderInfo.getTid());
+            //created 订单创建时间
+            orderInfo.setCreated(youzanOrderInfo.getCreated());
+            //team_type  店铺类型
+            orderInfo.setTeamType(youzanOrderInfo.getTeamType());
+            //pay_time
+            orderInfo.setPayTime(youzanOrderInfo.getPayTime());
+            //pay_type_str 支付渠道
+            orderInfo.setPayTypeStr(youzanOrderInfo.getPayTypeStr());
+            //close_type
+            orderInfo.setCloseType(youzanOrderInfo.getCloseType().intValue());
+            //refund_state 退款状态
+            orderInfo.setRefundState(youzanOrderInfo.getRefundState());
+            //success_time
+            orderInfo.setSuccessTime(youzanOrderInfo.getSuccessTime());
+            //payment
+            orderInfo.setPayment(new BigDecimal(payInfo.getPayment()));
+            //rebate_status  返佣状态
+            orderInfo.setRebateStatus(0);
+            //month_order_status  //当月订单处理状态
+            orderInfo.setMonthOrderStatus(0);
+            //monthly_task_status  //月度任务处理状态
+            orderInfo.setMonthlyTaskStatus(0);
+            log.info("根据创建时间获取有赞订单号:"+youzanOrderInfo.getTid());
+            orderMapper.insertYouZanOrders(orderInfo);
+        }
+    }
+
+    /**
+     * 根据订单的修改时间获取有赞的订单数据 修改本地数据库的相关订单数据
+     *
+     * @return
+     * @throws SDKException
+     */
+    public void getYouZanOrdersForUpdateTime() throws SDKException {
+        Token token = youzanToken();
+        YouzanTradesSoldGet youzanTradesSoldGet = new YouzanTradesSoldGet();
+        //创建参数对象,并设置参数
+        YouzanTradesSoldGetParams youzanTradesSoldGetParams = new YouzanTradesSoldGetParams();
+        OrderInfo orderInfo = new OrderInfo();
+        try {
+//            startUpdateDate = sdf.parse("2021-02-28 11:04:01");
+//            endUpdateDate = sdf.parse("2021-03-2 16:39:59");
+            startCreatedDate = sdf.parse(sdf.format(new Date(date.getTime()-(long) 80*24*60*60*1000)));
+            log.info("订单修改开始时间"+sdf.format(startUpdateDate));
+            startUpdateDate = sdf.parse(sdf.format(date));
+            log.info("订单修改结束时间"+sdf.format(endUpdateDate));
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        //设置查询条件 --> 根据订单修改时间获取
+        youzanTradesSoldGetParams.setStartUpdate(startUpdateDate);
+        youzanTradesSoldGetParams.setEndUpdate(endUpdateDate);
+        youzanTradesSoldGet.setAPIParams(youzanTradesSoldGetParams);
+        //调用有赞客户端进行查询
+        YouzanTradesSoldGetResult result = yzClient.invoke(youzanTradesSoldGet, token, YouzanTradesSoldGetResult.class);
+        List<YouzanTradesSoldGetResult.YouzanTradesSoldGetResultFullorderinfolist> fullOrderInfoList = result.getData().getFullOrderInfoList();
+        //遍历订单数据
+        for (YouzanTradesSoldGetResult.YouzanTradesSoldGetResultFullorderinfolist youzanTradesSoldGetResultFullorderinfolist : fullOrderInfoList) {
+            YouzanTradesSoldGetResult.YouzanTradesSoldGetResultOrderinfo youzanOrderInfo = youzanTradesSoldGetResultFullorderinfolist.getFullOrderInfo().getOrderInfo();
+            YouzanTradesSoldGetResult.YouzanTradesSoldGetResultPayinfo payInfo = youzanTradesSoldGetResultFullorderinfolist.getFullOrderInfo().getPayInfo();
+
+            log.info(youzanTradesSoldGetResultFullorderinfolist.toString());
+
+            //根据修改时间获取到的有赞订单数据的Tid
+            String tid = youzanOrderInfo.getTid();
+            OrderInfo orderByTid = orderMapper.getByTid(tid);
+
+            //确保是同一笔订单且订单的success_time=null是进行订单success_time状态修改
+            if (orderByTid != null && orderByTid.getSuccessTime() == null){
+                //支付方式
+                orderInfo.setPayType(youzanOrderInfo.getPayType().toString());
+                //有赞update_time
+                orderInfo.setYouzanUpdateTime(youzanOrderInfo.getUpdateTime());
+                //tid
+                orderInfo.setTid(youzanOrderInfo.getTid());
+                //pay_time
+                orderInfo.setPayTime(youzanOrderInfo.getPayTime());
+                //pay_type_str 支付渠道
+                orderInfo.setPayTypeStr(youzanOrderInfo.getPayTypeStr());
+                //close_type
+                orderInfo.setCloseType(youzanOrderInfo.getCloseType().intValue());
+                //refund_state 退款状态
+                orderInfo.setRefundState(youzanOrderInfo.getRefundState());
+                //success_time
+                orderInfo.setSuccessTime(youzanOrderInfo.getSuccessTime());
+                //payment
+                orderInfo.setPayment(new BigDecimal(payInfo.getPayment()));
+
+                log.info("根据修改时间获取有赞订单号:"+youzanOrderInfo.getTid());
+                //修改订单数据
+                orderMapper.updateById(orderInfo);
+            }
+        }
+    }
+
+    /**
+     * 有赞token获取
+     *
+     * @return
+     * @throws SDKException
+     */
+    public static Token youzanToken() throws SDKException {
+        DefaultYZClient yzClient = new DefaultYZClient();
+        TokenParameter tokenParameter = TokenParameter.self()
+                .clientId("92bc1c500ce7c248f3")
+                .clientSecret("3d65e88f5106e8ee78dbc5cf5ff45526")
+                .grantId("92488799")
+                .refresh(true)
+                .build();
+        OAuthToken oAuthToken = yzClient.getOAuthToken(tokenParameter);
+        String accessToken = oAuthToken.getAccessToken();
+        log.info(accessToken);
+
+        Token youzanToken = new Token(accessToken);
+        return youzanToken;
+    }
+
 }