From 8235bb3cebd773ba6fe29719cba7706858bbc2ee Mon Sep 17 00:00:00 2001
From: liuhaonan <konodioda2333@vip.qq.com>
Date: 星期五, 01 四月 2022 14:20:09 +0800
Subject: [PATCH] 订单

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/goods_detail.java       |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/amount.java             |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/pay/PayCallBackController.java         |  117 ++++++++++++++
 ximon-admin/pom.xml                                                                    |    5 
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java     |   18 +-
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java    |   45 +++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/promotion_detail.java   |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightController.java        |   19 ++
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mOrderService.java           |   49 ++++++
 ximon-admin/src/main/java/com/sandu/ximon/admin/security/LocalDateStringConverter.java |   41 +++++
 pom.xml                                                                                |   17 ++
 /dev/null                                                                              |   21 --
 ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/WxOrderDto.java         |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/scene_info.java         |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/pay/OrderStatusEnums.java              |   40 +++++
 dao/src/main/java/com/sandu/ximon/dao/domain/LightReportData.java                      |   22 ++
 ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/payer.java              |    2 
 dao/pom.xml                                                                            |    6 
 ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wx/WxFastPayService.java           |   18 +-
 dao/src/main/java/com/sandu/ximon/dao/bo/LightReportDataBo.java                        |    2 
 20 files changed, 380 insertions(+), 52 deletions(-)

diff --git a/dao/pom.xml b/dao/pom.xml
index d8c4559..bb68578 100644
--- a/dao/pom.xml
+++ b/dao/pom.xml
@@ -19,6 +19,10 @@
 			<groupId>com.sandu.ximon</groupId>
 			<artifactId>sandu-common</artifactId>
 		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+        </dependency>
+    </dependencies>
 
 </project>
diff --git a/dao/src/main/java/com/sandu/ximon/dao/bo/LightReportDataBo.java b/dao/src/main/java/com/sandu/ximon/dao/bo/LightReportDataBo.java
index b086376..7027c3b 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/bo/LightReportDataBo.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/bo/LightReportDataBo.java
@@ -1,5 +1,6 @@
 package com.sandu.ximon.dao.bo;
 
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.sandu.ximon.dao.domain.LightReportData;
 import lombok.Data;
 
@@ -10,5 +11,6 @@
 @Data
 public class LightReportDataBo extends LightReportData {
 
+    @ExcelProperty("鐏潌鍚嶇О")
     private String poleName;
 }
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/LightReportData.java b/dao/src/main/java/com/sandu/ximon/dao/domain/LightReportData.java
index 101b032..9ab8359 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/LightReportData.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/domain/LightReportData.java
@@ -1,11 +1,15 @@
 package com.sandu.ximon.dao.domain;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.time.LocalDateTime;
+
+import javafx.util.converter.LocalDateStringConverter;
 import lombok.Data;
 
 /**
@@ -19,83 +23,101 @@
      * 
      */
     @TableId(type = IdType.AUTO)
+
+    @ExcelProperty("id")
     private Long lightReportDataId;
 
     /**
      * 璁惧mac
      */
+    @ExcelProperty("璁惧mac")
     private String deviceCode;
 
     /**
      * 甯傜數鐢靛帇
      */
+    @ExcelProperty("甯傜數鐢靛帇")
     private Double voltage;
 
     /**
      * 甯傜數鐢垫祦
      */
+    @ExcelProperty("甯傜數鐢垫祦")
     private Double electricCurrent;
 
     /**
      * 璁惧娓╁害
      */
+    @ExcelProperty("璁惧娓╁害")
     private Double deviceTemperature;
 
     /**
      * 鍔熺巼鍥犵礌
      */
+    @ExcelProperty("鍔熺巼鍥犵礌")
     private Double powerFactor;
 
     /**
      * 鏈夊姛鍔熺巼
      */
+    @ExcelProperty("鏈夊姛鍔熺巼")
     private Double activePower;
 
     /**
      * 鏃犲姛鍔熺巼
      */
+    @ExcelProperty("鏃犲姛鍔熺巼")
     private Double reactivePower;
 
     /**
      * 鐏�1浜害鐧惧垎姣旓紝0-100
      */
+    @ExcelProperty("鐏�1浜害鐧惧垎姣旓紝0-100")
     private Integer lightPercent;
 
     /**
      * 鐏�2浜害鐧惧垎姣�
      */
+    @ExcelProperty("鐏�2浜害鐧惧垎姣�")
     private Integer light2Percent;
 
     /**
      * 鏈�杩戜竴娆′寒鐏椂闂�
      */
+    @ExcelProperty("鏈�杩戜竴娆′寒鐏椂闂�")
     private Long recentlyLightSec;
 
     /**
      * 鎬讳寒鐏椂闂�
      */
+    @ExcelProperty("鎬讳寒鐏椂闂�")
     private Long totalLightSec;
 
     /**
      * 鏈�杩戜竴娆$敤鐢甸噺
      */
+    @ExcelProperty("鏈�杩戜竴娆$敤鐢甸噺")
     private Double recentlyUsingPower;
 
     /**
      * 鎬荤敤鐢甸噺
      */
+    @ExcelProperty("鎬荤敤鐢甸噺")
     private Double totalUsingPower;
 
     /**
      * 鍒涘缓鏃堕棿
      */
+//    @ExcelProperty(value = "鍒涘缓鏃堕棿",converter = LocalDateStringConverter.class)
     private LocalDateTime createTime;
 
     /**
      * 
      */
+    @ExcelProperty("鏇存柊鏃堕棿")
     private LocalDateTime updateTime;
 
     @TableField(exist = false)
+    @ExcelIgnore
     private static final long serialVersionUID = 1L;
 }
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/SingleLampData.java b/dao/src/main/java/com/sandu/ximon/dao/domain/SingleLampData.java
deleted file mode 100644
index 48a4338..0000000
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/SingleLampData.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package com.sandu.ximon.dao.domain;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import lombok.Data;
-
-/**
- * 鍗曠伅鐩戞帶鏁版嵁琛�
- * @TableName single_lamp_data
- */
-@TableName(value ="single_lamp_data")
-@Data
-public class SingleLampData implements Serializable {
-    /**
-     * 
-     */
-    @TableId(type = IdType.AUTO)
-    private Long id;
-
-    /**
-     * 
-     */
-    private Long userId;
-
-    /**
-     * 鐏潌鍚嶇О
-     */
-    private String lampName;
-
-    /**
-     * 甯傜數鐢靛帇
-     */
-    private Double mainsVoltage;
-
-    /**
-     * 甯傜數鐢垫祦
-     */
-    private Double mainsCurrent;
-
-    /**
-     * 璁惧娓╁害
-     */
-    private Double temperature;
-
-    /**
-     * 鍔熺巼鍥犳暟
-     */
-    private Double powerFactor;
-
-    /**
-     * IMEI鍙�
-     */
-    private String imei;
-
-    /**
-     * ICCID鍙�
-     */
-    private String iccId;
-
-    /**
-     * 鏈夊姛鍔熺巼
-     */
-    private Integer activePower;
-
-    /**
-     * 鏈浜伅鏃堕棿
-     */
-    private LocalDateTime lightingTime;
-
-    /**
-     * 鏈鐢ㄧ數閲�
-     */
-    private Double electricityEonsumption;
-
-    /**
-     * 鎬荤敤鐢甸噺
-     */
-    private Double totalElectricityEonsumption;
-
-    /**
-     * 鐏潌浜害
-     */
-    private Double lightPoleBrightness;
-
-    /**
-     * 鏇存柊鏃堕棿
-     */
-    private LocalDateTime updateTime;
-
-    @TableField(exist = false)
-    private static final long serialVersionUID = 1L;
-}
\ No newline at end of file
diff --git a/dao/src/main/java/com/sandu/ximon/dao/domain/SingleLampFault.java b/dao/src/main/java/com/sandu/ximon/dao/domain/SingleLampFault.java
deleted file mode 100644
index 63ecc16..0000000
--- a/dao/src/main/java/com/sandu/ximon/dao/domain/SingleLampFault.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.sandu.ximon.dao.domain;
-
-import lombok.Data;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-
-/**
- * 鍗曠伅鏁呴殰    ---------------------/澶ф鍙笉瑕�
- */
-@Data
-public class SingleLampFault  implements Serializable {
-
-    private Long id;
-
-    private Long userId;
-
-    private String lampName;
-
-    /*甯傜數鐢垫祦*/
-    private Double mainsCurrent;
-
-    /*甯傜數鐢靛帇*/
-    private Double mainsVoltage;
-
-    /*璁惧娓╁害*/
-    private Double temperature;
-
-    /*鍔熺巼鍥犳暟*/
-    private Double powerFactor;
-
-    /*鏈夊姛鍔熺巼*/
-    private Integer activePower;
-
-    /*鏃犲姛鍔熺巼*/
-
-    private Integer reactivePower;
-
-    /*鐏潌浜害*/
-    private Double lightPoleBrightness;
-
-    /*鏇存柊鏃堕棿*/
-    private LocalDateTime updateTime;
-}
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/SingleLampDataMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/SingleLampDataMapper.java
deleted file mode 100644
index b2a5ef7..0000000
--- a/dao/src/main/java/com/sandu/ximon/dao/mapper/SingleLampDataMapper.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.sandu.ximon.dao.mapper;
-
-import com.sandu.ximon.dao.domain.SingleLampData;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * @Entity com.sandu.ximon.dao.domain.SingleLampData
- */
-@Mapper
-public interface SingleLampDataMapper extends BaseMapper<SingleLampData> {
-
-}
-
-
-
-
diff --git a/dao/src/main/resources/mapper/SingleLampDataMapper.xml b/dao/src/main/resources/mapper/SingleLampDataMapper.xml
deleted file mode 100644
index 08b1097..0000000
--- a/dao/src/main/resources/mapper/SingleLampDataMapper.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?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.sandu.ximon.dao.mapper.SingleLampDataMapper">
-
-    <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.SingleLampData">
-            <id property="id" column="id" jdbcType="BIGINT"/>
-            <result property="userId" column="user_id" jdbcType="BIGINT"/>
-            <result property="lampName" column="lamp_name" jdbcType="VARCHAR"/>
-            <result property="mainsVoltage" column="mains_voltage" jdbcType="DOUBLE"/>
-            <result property="mainsCurrent" column="mains_current" jdbcType="DOUBLE"/>
-            <result property="temperature" column="temperature" jdbcType="DOUBLE"/>
-            <result property="powerFactor" column="power_factor" jdbcType="DOUBLE"/>
-            <result property="imei" column="imei" jdbcType="VARCHAR"/>
-            <result property="iccId" column="icc_Id" jdbcType="VARCHAR"/>
-            <result property="activePower" column="active_power" jdbcType="INTEGER"/>
-            <result property="lightingTime" column="lighting_time" jdbcType="TIMESTAMP"/>
-            <result property="electricityEonsumption" column="electricity_eonsumption" jdbcType="DOUBLE"/>
-            <result property="totalElectricityEonsumption" column="total_electricity_eonsumption" jdbcType="DOUBLE"/>
-            <result property="lightPoleBrightness" column="light_pole_brightness" jdbcType="DOUBLE"/>
-            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
-    </resultMap>
-
-
-</mapper>
diff --git a/pom.xml b/pom.xml
index f221799..b0cf6d4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -110,6 +110,23 @@
                 <artifactId>jfinal-utils</artifactId>
                 <version>0.2</version>
             </dependency>
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>easyexcel</artifactId>
+                <version>2.2.10</version>
+            </dependency>
+            <!--xls-->
+            <dependency>
+                <groupId>org.apache.poi</groupId>
+                <artifactId>poi</artifactId>
+                <version>3.17</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.poi</groupId>
+                <artifactId>poi-ooxml</artifactId>
+                <version>3.17</version>
+            </dependency>
+
         </dependencies>
     </dependencyManagement>
 
diff --git a/ximon-admin/pom.xml b/ximon-admin/pom.xml
index 0f402f6..a21feac 100644
--- a/ximon-admin/pom.xml
+++ b/ximon-admin/pom.xml
@@ -62,6 +62,11 @@
             <artifactId>jfinal-utils</artifactId>
             <version>0.2</version>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>2.2.10</version>
+        </dependency>
         <!--闃块噷浜戠墿鑱旂綉 -->
     </dependencies>
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
index 2bff464..f6f6a66 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3mOrderController.java
@@ -205,17 +205,17 @@
             throw new BusinessException("璇疯緭鍏ユ纭殑璁㈠崟id");
         }
         C3mOrder order = c3mOrderService.getById(param.getOrderId());
-        if((OrderType.ALIPAY.getCode()).equals(order.getOrderType())){
-            return ResponseUtil.success(AliPayUtils.alipayQuery(order.getOutTradeNo(),param.getPoleId()));
-        }else if((OrderType.WXPAY.getCode()).equals(order.getOrderType())){
-
-
+        if (order == null) {
+            throw new BusinessException("璁㈠崟涓嶅瓨鍦�");
+        }
+        if ((OrderType.ALIPAY.getCode()).equals(order.getOrderType())) {
+            return ResponseUtil.success(AliPayUtils.alipayQuery(order.getOutTradeNo(), param.getPoleId()));
+        } else if ((OrderType.WXPAY.getCode()).equals(order.getOrderType())) {
+            return ResponseUtil.success(wxPayService.WxOrderQuery(param.getPoleId(), order.getOutTradeNo()));
+        } else {
+            return ResponseUtil.success("鏀粯鏂瑰紡寮傚父");
         }
 
-        return ResponseUtil.success(null);
     }
-
-
-
 
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightController.java
index 9683856..edbeb8e 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/LightController.java
@@ -58,15 +58,30 @@
     @GetMapping("/report/list")
     public ResponseVO<Object> listReportData(BaseConditionVO conditionVO, @RequestParam(required = false) String keyword, @RequestParam(required = false) String deviceCode) {
         List<LightReportDataBo> list = lightReportDataService.listReportData(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword, deviceCode);
-        return ResponseUtil.successPage(list);
+        return ResponseUtil.success(list);
+    }
+
+    /**
+     * 瀵煎嚭Excel
+     * @param conditionVO
+     * @param keyword
+     * @param deviceCode
+     * @return
+     */
+    @GetMapping("/report/exportList")
+    public ResponseVO<Object> exportList(BaseConditionVO conditionVO, @RequestParam(required = false) String keyword, @RequestParam(required = false) String deviceCode) {
+        String url = lightReportDataService.exportList(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword, deviceCode);
+        return ResponseUtil.success(url);
     }
 
     @GetMapping("/error/list")
     public ResponseVO<Object> listReportError(BaseConditionVO conditionVO, @RequestParam(required = false) String keyword) {
         List<LightReportErrorBo> list = lightReportErrorService.listReportError(conditionVO.getPageNo(), conditionVO.getPageSize(), keyword);
-        return ResponseUtil.successPage(list);
+        return ResponseUtil.success(list);
     }
 
+
+
     // 浜害鎺у埗
     @PostMapping("/control")
     public ResponseVO<Object> controlBrightness(@RequestBody @Validated List<LightControlParam> paramList) {
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/WxOrderDto.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/WxOrderDto.java
similarity index 96%
rename from ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/WxOrderDto.java
rename to ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/WxOrderDto.java
index b3301fe..83e4b1d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/WxOrderDto.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/WxOrderDto.java
@@ -1,4 +1,4 @@
-package com.sandu.ximon.admin.dto.wxquery;
+package com.sandu.ximon.admin.dto.wxquerydto;
 
 import lombok.Data;
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/amount.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/amount.java
similarity index 87%
rename from ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/amount.java
rename to ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/amount.java
index a496fc0..64596b4 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/amount.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/amount.java
@@ -1,4 +1,4 @@
-package com.sandu.ximon.admin.dto.wxquery;
+package com.sandu.ximon.admin.dto.wxquerydto;
 
 import lombok.Data;
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/goods_detail.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/goods_detail.java
similarity index 88%
rename from ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/goods_detail.java
rename to ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/goods_detail.java
index 126e0b7..8b0984a 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/goods_detail.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/goods_detail.java
@@ -1,4 +1,4 @@
-package com.sandu.ximon.admin.dto.wxquery;
+package com.sandu.ximon.admin.dto.wxquerydto;
 
 import lombok.Data;
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/payer.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/payer.java
similarity index 77%
rename from ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/payer.java
rename to ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/payer.java
index 651f0a7..8cf6410 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/payer.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/payer.java
@@ -1,4 +1,4 @@
-package com.sandu.ximon.admin.dto.wxquery;
+package com.sandu.ximon.admin.dto.wxquerydto;
 
 import lombok.Data;
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/promotion_detail.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/promotion_detail.java
similarity index 92%
rename from ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/promotion_detail.java
rename to ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/promotion_detail.java
index ed792cf..48d12c2 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/promotion_detail.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/promotion_detail.java
@@ -1,4 +1,4 @@
-package com.sandu.ximon.admin.dto.wxquery;
+package com.sandu.ximon.admin.dto.wxquerydto;
 
 import lombok.Data;
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/scene_info.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/scene_info.java
similarity index 76%
rename from ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/scene_info.java
rename to ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/scene_info.java
index 6530a3a..d18cbba 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquery/scene_info.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/dto/wxquerydto/scene_info.java
@@ -1,4 +1,4 @@
-package com.sandu.ximon.admin.dto.wxquery;
+package com.sandu.ximon.admin.dto.wxquerydto;
 
 import lombok.Data;
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/pay/OrderStatusEnums.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/pay/OrderStatusEnums.java
new file mode 100644
index 0000000..fffd59e
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/pay/OrderStatusEnums.java
@@ -0,0 +1,40 @@
+package com.sandu.ximon.admin.pay;
+
+public enum OrderStatusEnums {
+    /**
+     * 璁㈠崟鐘舵�侊紝// 鏈敮浠�(0)锛屽凡鏀粯(1),宸查��娆�(2),閫�娆句腑(3),閫�娆惧け璐�(4),璁㈠崟瀹屾垚(5)
+     */
+    UNPAID(0, "鏈粯娆�"),
+    PAID(1, "宸蹭粯娆�"),
+    REFUNDED(2, "宸查��娆�"),
+    REFUNDING(3, "閫�娆句腑"),
+    REFUND_FAILUE(4, "閫�娆惧け璐�"),
+    FINISH(5,"璁㈠崟瀹屾垚")
+    ;
+
+    private final Integer code;
+    private final String message;
+
+    public static String getValue(Integer code) {
+        for (OrderStatusEnums ut : OrderStatusEnums.values()) {
+            if (ut.getCode().equals(code)) {
+                return ut.message;
+            }
+        }
+        return null;
+    }
+
+    OrderStatusEnums(Integer code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/pay/PayCallBackController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/pay/PayCallBackController.java
new file mode 100644
index 0000000..019ab85
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/pay/PayCallBackController.java
@@ -0,0 +1,117 @@
+package com.sandu.ximon.admin.pay;
+
+import com.alipay.api.AlipayApiException;
+import com.alipay.api.internal.util.AlipaySignature;
+import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
+import com.sandu.common.security.annotation.AnonymousAccess;
+import com.sandu.ximon.admin.pay.alipay.UsrAlipayConfigService;
+import com.sandu.ximon.admin.service.C3mOrderService;
+import com.sandu.ximon.dao.domain.AliConfigEntity;
+import com.sandu.ximon.dao.domain.C3mOrder;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/callback/pay")
+@Slf4j
+public class PayCallBackController {
+
+
+    private final C3mOrderService userOrderService;
+    private final UsrAlipayConfigService alipayConfigService;
+   // private final UserPayRecordService userPayRecordService;
+
+    /**
+     * 寰俊鏀粯鍥炶皟
+     *
+     * @param xmlData
+     * @return
+     */
+    @AnonymousAccess
+    @RequestMapping("wechatCallback")
+    public Object wechatNotify(@RequestBody String xmlData) {
+        return userOrderService.payWechatNotify(xmlData);
+    }
+
+    /**
+     * 鏀粯瀹濇敮浠樺洖璋�
+     *
+     * @return
+     */
+    @AnonymousAccess
+    @RequestMapping("alipayCallback")
+    public Object alipayCallback(HttpServletRequest request) {
+        log.info("杩欓噷鏄敮浠樺疂鍥炶皟");
+        //鑾峰彇鏀粯瀹漃OST杩囨潵鍙嶉淇℃伅
+        Map<String, String> params = new HashMap<String, String>();
+        Map requestParams = request.getParameterMap();
+        for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {
+            String name = (String) iter.next();
+            String[] values = (String[]) requestParams.get(name);
+            String valueStr = "";
+            for (int i = 0; i < values.length; i++) {
+                valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
+            }
+            //涔辩爜瑙e喅锛岃繖娈典唬鐮佸湪鍑虹幇涔辩爜鏃朵娇鐢ㄣ��
+            //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
+            params.put(name, valueStr);
+        }
+        log.info(params.toString());
+        String orderSn = params.get("out_trade_no");
+        C3mOrder userOrder = userOrderService.getByOrderSn(orderSn);
+//        Long poleId = userOrder.getPoleId();
+        AliConfigEntity aliConfig = alipayConfigService.getConfigByPoleId(userOrder.getPoleId());
+        //鍒囪alipaypublickey鏄敮浠樺疂鐨勫叕閽ワ紝璇峰幓open.alipay.com瀵瑰簲搴旂敤涓嬫煡鐪嬨��
+        //boolean AlipaySignature.rsaCheckV1(Map<String, String> params, String publicKey, String charset, String sign_type)
+        boolean flag = false;
+        try {
+            flag = AlipaySignature.rsaCheckV1(params, aliConfig.getPublicKey(), "UTF-8", "RSA2");
+        } catch (AlipayApiException e) {
+            e.printStackTrace();
+        }
+        if (flag) {
+            if (!"TRADE_SUCCESS".equals(params.get("trade_status"))) {
+                return "success";
+            }
+
+            if (userOrder == null) {
+                return "璁㈠崟涓嶅瓨鍦�";
+            }
+            // 妫�鏌ヨ繖涓鍗曟槸鍚﹀凡缁忓鐞嗚繃
+            if (!OrderStatusEnums.UNPAID.getCode().equals(userOrder.getOrderStatus())) {
+                return WxPayNotifyResponse.success("璁㈠崟宸茬粡澶勭悊鎴愬姛!");
+            }
+            String transactionId = params.get("out_trade_no");
+            C3mOrder update = new C3mOrder();
+            update.setOrderId(userOrder.getOrderId());
+            update.setOutTradeNo(transactionId);
+            update.setPayTimestamp(new Date().getTime());
+            update.setOrderStatus(OrderStatusEnums.PAID.getCode());
+
+            if (!userOrderService.updateById(update)) {
+                return WxPayNotifyResponse.fail("鏇存柊鏁版嵁宸插け鏁�");
+            }
+
+//            UserPayRecord userPayRecord = new UserPayRecord();
+//            userPayRecord.setOrderId(userOrder.getId());
+//            userPayRecord.setPayAmount(userOrder.getTotalPrice());
+//            userPayRecord.setPayDate(userOrder.getPayTime());
+//            userPayRecord.setPayType(PayTypeEnums.ALIPAY.getCode());
+//            userPayRecord.setUserId(userOrder.getUserId());
+//            userPayRecordService.save(userPayRecord);
+            return "success";
+        }
+        return null;
+    }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wx/WxFastPayService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wx/WxFastPayService.java
index 27346f7..84e9cec 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wx/WxFastPayService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/pay/wx/WxFastPayService.java
@@ -15,8 +15,7 @@
 import com.github.binarywang.wxpay.service.WxPayService;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.util.IpUtil;
-import com.sandu.ximon.admin.dto.YSY_AccessTokenDto;
-import com.sandu.ximon.admin.dto.wxquery.WxOrderDto;
+import com.sandu.ximon.admin.dto.wxquerydto.WxOrderDto;
 import com.sandu.ximon.admin.pay.wxpay.UsrWxPayConfigService;
 import com.sandu.ximon.dao.domain.WxConfigEntity;
 import lombok.AllArgsConstructor;
@@ -128,15 +127,18 @@
      * @param outTradeNo
      * @return
      */
-    private Object WxOrderQuery(Long poleId,String outTradeNo){
+    public boolean WxOrderQuery(Long poleId,String outTradeNo){
         WxConfigEntity wxConfig = wxPayConfigService.getConfigByPoleId(poleId);
         if(wxConfig==null){
             throw new BusinessException("鑾峰彇寰俊鏀粯閰嶇疆澶辫触");
         }
         String s = HttpUtil.get(WECHAT_ORDER_QUETY_URL + outTradeNo + WECHAT_ORDER_QUETY + wxConfig.getMchId());//WxOrderDto
         WxOrderDto wxOrderDto = JSON.parseObject(s, WxOrderDto.class);
+        if(("SUCCESS").equals(wxOrderDto.getTrade_state())){
+            return true;
+        }
 
-        return  wxOrderDto.getTrade_state();
+        return  false;
     }
 
     /**
@@ -162,7 +164,7 @@
         return sign;
     }
 
-    public WxPayOrderNotifyResult parseOrderNotifyResult(WxPayService wxPayService, String xmlData) {
+    public WxPayOrderNotifyResult parseOrderNotifyResult(String xmlData) {
         try {
             return wxPayService.parseOrderNotifyResult(xmlData);
         } catch (WxPayException e) {
@@ -171,7 +173,7 @@
         }
     }
 
-    public WxPayRefundNotifyResult parseRefundNotifyResult(WxPayService wxPayService, String xmlData) {
+    public WxPayRefundNotifyResult parseRefundNotifyResult( String xmlData) {
         try {
             return wxPayService.parseRefundNotifyResult(xmlData);
         } catch (WxPayException e) {
@@ -189,7 +191,7 @@
      * @param callbackUrl
      * @return
      */
-    public boolean refundOrder(WxPayService wxPayService, String orderId, String refundSn, Integer refundFee, String callbackUrl) {
+    public boolean refundOrder( String orderId, String refundSn, Integer refundFee, String callbackUrl) {
         WxPayRefundRequest refundRequest = new WxPayRefundRequest();
         refundRequest.setOutTradeNo(orderId);
         refundRequest.setOutRefundNo(refundSn);
@@ -214,7 +216,7 @@
     /**
      * 鐢熸垚浜岀淮鐮佷粯娆�
      */
-    public String generateQRCodePay(WxPayService wxPayService, String body,
+    public String generateQRCodePay( String body,
                                     String orderId, int totalFee, String callbackUrl) {
         WxPayUnifiedOrderRequest wxPayUnifiedOrderRequest = new WxPayUnifiedOrderRequest();
         wxPayUnifiedOrderRequest.setBody(body);
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/security/LocalDateStringConverter.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/security/LocalDateStringConverter.java
new file mode 100644
index 0000000..087a08d
--- /dev/null
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/security/LocalDateStringConverter.java
@@ -0,0 +1,41 @@
+package com.sandu.ximon.admin.security;
+
+import com.alibaba.excel.converters.Converter;
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.GlobalConfiguration;
+import com.alibaba.excel.metadata.property.ExcelContentProperty;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+/**
+ * 鑷畾涔塋ocalDateStringConverter
+ * 鐢ㄤ簬瑙e喅浣跨敤easyexcel瀵煎嚭琛ㄦ牸鏃跺�欙紝榛樿涓嶆敮鎸丩ocalDateTime鏃ユ湡鏍煎紡
+ *
+ * 鍦ㄩ渶瑕佺殑灞炴�т笂娣诲姞娉ㄨВ @ExcelProperty(value = "鍏ヨ亴鏃堕棿", converter = LocalDateStringConverter.class)
+ */
+
+public class LocalDateStringConverter implements Converter<LocalDateTime> {
+    @Override
+    public Class supportJavaTypeKey() {
+        return LocalDateTime.class;
+    }
+
+    @Override
+    public CellDataTypeEnum supportExcelTypeKey() {
+        return CellDataTypeEnum.STRING;
+    }
+
+    @Override
+    public LocalDateTime convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        return LocalDateTime.parse(cellData.getStringValue(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+    }
+
+    @Override
+    public CellData convertToExcelData(LocalDateTime localDateTime, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        String format = formatter.format(localDateTime);
+        return new CellData(format);
+    }
+}
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mOrderService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mOrderService.java
index 29b6dac..5ad1e67 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mOrderService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3mOrderService.java
@@ -1,9 +1,14 @@
 package com.sandu.ximon.admin.service;
 
 import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
+import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.service.impl.BaseServiceImpl;
 import com.sandu.ximon.admin.config.C3mRedisConfig;
+import com.sandu.ximon.admin.pay.OrderStatusEnums;
 import com.sandu.ximon.admin.pay.wx.WxFastPayService;
 import com.sandu.ximon.admin.security.SecurityUtils;
 import com.sandu.ximon.admin.security.order.OrderQueryListener;
@@ -21,7 +26,9 @@
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
 import java.util.Date;
+import java.util.List;
 
 /**
  * @Author liuhaonan
@@ -133,8 +140,50 @@
         );
         //  鎺ㄩ�佸埌鑷姩鏌ヨ妯″潡锛岃繘琛屾壂鎻忓惎鍔�
         orderQueryListener.startScan(OrderScanType.C3M.getType());
+        if(b){
+            save(c3mOrderEntity);
+        }
         return b ? c3mOrderEntity : null;
     }
 
+    /**
+     * 寰俊鏀粯鍥炶皟
+     */
+    public Object payWechatNotify(String xmlData) {
+        WxPayOrderNotifyResult wxPayOrderNotifyResult = fastPayService.parseOrderNotifyResult(xmlData);
+        String orderSn = wxPayOrderNotifyResult.getOutTradeNo();
+        String transactionId = wxPayOrderNotifyResult.getOutTradeNo();
+        C3mOrder userOrder = getByOrderSn(orderSn);
+        if (userOrder == null) {
+            return WxPayNotifyResponse.fail("璁㈠崟涓嶅瓨鍦� sn=" + orderSn);
+        }
+
+        // 妫�鏌ヨ繖涓鍗曟槸鍚﹀凡缁忓鐞嗚繃
+        if (!OrderStatusEnums.UNPAID.getCode().equals(userOrder.getOrderStatus())) {
+            return WxPayNotifyResponse.success("璁㈠崟宸茬粡澶勭悊鎴愬姛!");
+        }
+        userOrder.setOutTradeNo(transactionId);
+        userOrder.setPayTimestamp(new Date().getTime());
+        userOrder.setOrderStatus(OrderStatusEnums.PAID.getCode());
+        if (!updateById(userOrder)) {
+            return WxPayNotifyResponse.fail("鏇存柊鏁版嵁宸插け鏁�");
+        }
+
+//        UserPayRecord userPayRecord = new UserPayRecord();
+//        userPayRecord.setOrderId(userOrder.getId());
+//        userPayRecord.setPayAmount(userOrder.getTotalPrice());
+//        userPayRecord.setPayType(PayTypeEnums.WECHAT.getCode());
+//        userPayRecord.setPayDate(userOrder.getPayTime());
+//        userPayRecord.setUserId(userOrder.getUserId());
+//        userPayRecordService.save(userPayRecord);
+
+        return WxPayNotifyResponse.success("鏇存柊鏁版嵁鎴愬姛");
+    }
+
+
+    public C3mOrder getByOrderSn(String orderSn) {
+        LambdaQueryWrapper<C3mOrder> wrapper = Wrappers.lambdaQuery(C3mOrder.class).eq(C3mOrder::getOutTradeNo, orderSn).last("limit 1");
+        return getOne(wrapper);
+    }
 
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
index 3ce83ab..dfe8f31 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightReportDataService.java
@@ -1,16 +1,25 @@
 package com.sandu.ximon.admin.service;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.RandomUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.github.pagehelper.PageHelper;
+import com.sandu.common.file.config.FileProperties;
 import com.sandu.common.service.impl.BaseServiceImpl;
-import com.sandu.ximon.admin.dto.LightDataDto;
+import com.sandu.common.util.ResUtils;
 import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5LightHeartbeatReportInnerFrame;
-import com.sandu.ximon.dao.bo.LightBo;
 import com.sandu.ximon.dao.bo.LightReportDataBo;
 import com.sandu.ximon.dao.domain.LightReportData;
 import com.sandu.ximon.dao.mapper.LightReportDataMapper;
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
 import org.springframework.beans.BeanUtils;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
 import java.util.List;
 
 /**
@@ -19,8 +28,10 @@
  * 鐏笂鎶ユ暟鎹� service
  */
 @Service
+@AllArgsConstructor
 public class LightReportDataService extends BaseServiceImpl<LightReportDataMapper, LightReportData> {
 
+    private final FileProperties properties;
 
     /**
      * 淇濆瓨涓婃姤鐨勭伅蹇冭烦鏁版嵁
@@ -37,6 +48,7 @@
 
     /**
      * 鑾峰彇鎸囧畾璁惧鐮佹渶鏂扮殑涓�澶╀笂鎶ユ暟鎹�
+     *
      * @param deviceCodeList 璁惧鐮佸垪琛�
      * @return 涓婃姤鏁版嵁
      */
@@ -46,11 +58,34 @@
 
     /**
      * 鑾峰彇涓婃姤鏁版嵁
-     * @param keyword 鍏抽敭璇�
+     *
+     * @param keyword    鍏抽敭璇�
      * @param deviceCode 璁惧鐮�
      */
     public List<LightReportDataBo> listReportData(int pageNo, int pageSize, String keyword, String deviceCode) {
-        PageHelper.startPage(pageNo,pageSize);
-        return baseMapper.listReportData(keyword,deviceCode);
+        PageHelper.startPage(pageNo, pageSize);
+        return baseMapper.listReportData(keyword, deviceCode);
+    }
+
+    @SneakyThrows
+    public String exportList(int pageNo, int pageSize, String keyword, String deviceCode) {
+        PageHelper.startPage(pageNo, pageSize);
+        List<LightReportDataBo> list = baseMapper.listReportData(keyword, deviceCode);
+
+        File file = new File(properties.getUploadRootPath() + "export" + File.separator + RandomUtil.randomString(12) + ".xlsx");
+//        File file = new File(properties.getUploadRootPath() + "export" + File.separator + RandomUtil.randomString(12) + ".xlsx");
+//        ClassPathResource cpr = new ClassPathResource("public/exportOrder.xlsx");
+//        FileUtil.mkParentDirs(file);
+//
+//        ExcelWriter excelWriter = EasyExcel.write(file).withTemplate(cpr.getInputStream()).build();
+//        WriteSheet writeSheet = EasyExcel.writerSheet().build();
+//        excelWriter.fill(list, writeSheet);
+//        excelWriter.finish();
+
+        EasyExcel.write(file, LightReportDataBo.class).sheet("妯℃澘").doWrite(list);
+        String url = file.getPath().replace(properties.getUploadRootPath(), "");
+       return ResUtils.addPrefix(url);
+
+       // return list;
     }
 }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/SingleLampDataService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/SingleLampDataService.java
deleted file mode 100644
index 3a370c8..0000000
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/SingleLampDataService.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.sandu.ximon.admin.service;
-
-import com.sandu.common.domain.BaseMapper;
-import com.sandu.common.service.impl.BaseServiceImpl;
-import com.sandu.ximon.dao.domain.SingleLampData;
-import com.sandu.ximon.dao.mapper.SingleLampDataMapper;
-import lombok.AllArgsConstructor;
-import org.springframework.stereotype.Service;
-
-/**
- * 鍗曠伅鏁版嵁
- */
-@Service
-@AllArgsConstructor
-public class SingleLampDataService extends BaseServiceImpl<SingleLampDataMapper, SingleLampData> {
-
-    private final SingleLampDataMapper singleLampDataMapper;
-
-
-
-}

--
Gitblit v1.9.3