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