From 6ec40dc71bdce4dd21ee8c6436a43b7fc20c422c Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 12 May 2021 14:34:00 +0800
Subject: [PATCH] conflect

---
 src/main/java/com/xcong/excoin/modules/yunding/service/YunDingService.java          |    2 +
 src/main/resources/mapper/yunding/YdOrderDao.xml                                    |   17 ++++++++
 src/main/java/com/xcong/excoin/modules/yunding/controller/YunDingController.java    |   13 ++++++
 src/main/java/com/xcong/excoin/quartz/job/YdPowerJob.java                           |   69 ++++++++++++++++++++++++++++++++++
 src/main/java/com/xcong/excoin/modules/yunding/dao/YdOrderDao.java                  |    3 +
 src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java |   10 +++++
 6 files changed, 114 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/yunding/controller/YunDingController.java b/src/main/java/com/xcong/excoin/modules/yunding/controller/YunDingController.java
index 3e01097..a3a1d29 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/controller/YunDingController.java
+++ b/src/main/java/com/xcong/excoin/modules/yunding/controller/YunDingController.java
@@ -90,6 +90,19 @@
     }
 
     /**
+     * 订单详情
+     */
+    @ApiOperation(value = "订单详情")
+    @ApiResponses({
+            @ApiResponse(code = 0, message = "success", response = YdOrderVo.class)
+    })
+    @GetMapping(value = "/getOrderInfo")
+    public Result getOrderInfo(@ApiParam(name = "id", value = "订单ID", required = true, example = "1")
+                                      @RequestParam(value = "id") Long id) {
+        return yunDingService.getOrderInfo(id);
+    }
+
+    /**
      *订单头部数据
      */
     @ApiOperation(value = "订单头部数据")
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/dao/YdOrderDao.java b/src/main/java/com/xcong/excoin/modules/yunding/dao/YdOrderDao.java
index 556bc66..d3604e0 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/dao/YdOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/yunding/dao/YdOrderDao.java
@@ -17,4 +17,7 @@
     List<YdOrderEntity> selectNeedReturnOrders();
 
     List<YdOrderEntity> selectAllValidOrders();
+    void UpdateByIdAndState(@Param("id")Long id, @Param("state")int state);
+
+    YdOrderVo selectOrderByMemberIdAndId(@Param("memberId")Long memberId, @Param("id")Long id);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java b/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
index 918e357..9123393 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
@@ -293,6 +293,16 @@
         return Result.ok(orderAllInfoVo);
     }
 
+    @Override
+    public Result getOrderInfo(Long id) {
+
+        log.info("获取订单详情");
+        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+        Long memberId = memberEntity.getId();
+        YdOrderVo ydOrderVo = ydOrderDao.selectOrderByMemberIdAndId(memberId,id);
+        return Result.ok(ydOrderVo);
+    }
+
     /**
      * 去加减币币账户余额,减少产品的剩余数目
      * @param memberId
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/service/YunDingService.java b/src/main/java/com/xcong/excoin/modules/yunding/service/YunDingService.java
index 3c7391a..a7eae46 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/service/YunDingService.java
+++ b/src/main/java/com/xcong/excoin/modules/yunding/service/YunDingService.java
@@ -22,4 +22,6 @@
     Result getOrderList(YdOrderListDto ydOrderListDto);
 
     Result findOrderAllInfo();
+
+    Result getOrderInfo(Long id);
 }
diff --git a/src/main/java/com/xcong/excoin/quartz/job/YdPowerJob.java b/src/main/java/com/xcong/excoin/quartz/job/YdPowerJob.java
new file mode 100644
index 0000000..8e22b46
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/quartz/job/YdPowerJob.java
@@ -0,0 +1,69 @@
+package com.xcong.excoin.quartz.job;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.xcong.excoin.modules.blackchain.service.DateUtil;
+import com.xcong.excoin.modules.yunding.dao.YdOrderDao;
+import com.xcong.excoin.modules.yunding.entity.YdOrderEntity;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@Component
+@ConditionalOnProperty(prefix = "app", name = "loop-job", havingValue = "true")
+public class YdPowerJob {
+
+
+    @Resource
+    private YdOrderDao ydOrderDao;
+
+    /**
+     * 产品生效
+     */
+    @Scheduled(cron = "0 0/1 * * * ?")
+    public void orderWork() {
+        QueryWrapper<YdOrderEntity> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("",YdOrderEntity.ORDER_STATE_READY);
+        List<YdOrderEntity> ydOrderEntities = ydOrderDao.selectList(objectQueryWrapper);
+        Date date = new Date();
+        if(CollUtil.isNotEmpty(ydOrderEntities)){
+            for(YdOrderEntity ydOrderEntity : ydOrderEntities){
+                Date workTime = ydOrderEntity.getWorkTime();
+                if(DateUtil.compare_date(date.toString(),workTime.toString()) == 1
+                        && ObjectUtil.isNotEmpty(workTime)){
+                    Long id = ydOrderEntity.getId();
+                    ydOrderDao.UpdateByIdAndState(id,YdOrderEntity.ORDER_STATE_WORK);
+                }
+            }
+        }
+    }
+
+    /**
+     * 产品终止
+     */
+    @Scheduled(cron = "0 0/1 * * * ?")
+    public void orderEnd() {
+        QueryWrapper<YdOrderEntity> objectQueryWrapper = new QueryWrapper<>();
+        objectQueryWrapper.eq("",YdOrderEntity.ORDER_STATE_WORK);
+        List<YdOrderEntity> ydOrderEntities = ydOrderDao.selectList(objectQueryWrapper);
+        Date date = new Date();
+        if(CollUtil.isNotEmpty(ydOrderEntities)){
+            for(YdOrderEntity ydOrderEntity : ydOrderEntities){
+                Date endTime = ydOrderEntity.getEndTime();
+                if(DateUtil.compare_date(date.toString(),endTime.toString()) == 1
+                        && ObjectUtil.isNotEmpty(endTime)) {
+                    Long id = ydOrderEntity.getId();
+                    ydOrderDao.UpdateByIdAndState(id,YdOrderEntity.ORDER_STATE_END);
+                }
+            }
+        }
+    }
+
+}
diff --git a/src/main/resources/mapper/yunding/YdOrderDao.xml b/src/main/resources/mapper/yunding/YdOrderDao.xml
index 031d756..8d37948 100644
--- a/src/main/resources/mapper/yunding/YdOrderDao.xml
+++ b/src/main/resources/mapper/yunding/YdOrderDao.xml
@@ -55,4 +55,21 @@
         where a.state=2
     </select>
 
+    <update id="UpdateByIdAndState">
+        UPDATE yd_order s
+        SET s.state = #{state}
+        WHERE
+            id = #{id}
+    </update>
+
+    <select id="selectOrderByMemberIdAndId" resultType="com.xcong.excoin.modules.yunding.vo.YdOrderVo">
+        SELECT
+        *
+        FROM
+        yd_order a
+        left join yd_product b on b.id = a.product_id
+        where a.member_id = #{memberId}
+        and a.id = #{id}
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1