diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/weixin/WeiXinPayTradeStatus.java b/jsowell-common/src/main/java/com/jsowell/common/enums/weixin/WeiXinPayTradeStatus.java
index 8f20d844f..b2f2773a5 100644
--- a/jsowell-common/src/main/java/com/jsowell/common/enums/weixin/WeiXinPayTradeStatus.java
+++ b/jsowell-common/src/main/java/com/jsowell/common/enums/weixin/WeiXinPayTradeStatus.java
@@ -1,13 +1,5 @@
package com.jsowell.common.enums.weixin;
-/**
- * 微信支付交易状态
- * WeiXinPayTradeStatus
- * 创建人:小威
- * 时间:2015年12月1日-下午4:37:55
- *
- * @version 1.0.0
- */
public enum WeiXinPayTradeStatus {
SUCCESS("SUCCESS", "交易成功"),
FAIL("FAIL", "交易失败");
diff --git a/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java b/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java
index 6783a10b2..781f0b147 100644
--- a/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java
+++ b/jsowell-common/src/main/java/com/jsowell/common/util/DateUtils.java
@@ -218,6 +218,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
/**
* 计算相差天数 (会显示负值)
+ *
* @param endDate
* @param nowDate
* @return
@@ -574,6 +575,14 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
return simpleDateFormat.format(date);
}
+ public static String formatDateTime(LocalDateTime localDateTime) {
+ if (localDateTime == null) {
+ return "";
+ }
+ Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
+ return formatDateTime(date);
+ }
+
@Data
@AllArgsConstructor
@NoArgsConstructor
@@ -788,11 +797,12 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
/**
* 秒 转 天时分秒
+ * 时分秒HoursMinutesSeconds
*
* @param mss 秒数
* @return xx天xx小时xx分钟xx秒
*/
- public static String formatDateTime(long mss) {
+ public static String formatHoursMinutesSeconds(long mss) {
String DateTimes = null;
long days = mss / (60 * 60 * 24);
long hours = (mss % (60 * 60 * 24)) / (60 * 60);
@@ -828,7 +838,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
if (time.compareTo(beginTime) == 0 || time.compareTo(endTime) == 0) {
return true;
}
- if (beginTime.isBefore(time) && endTime.isAfter(time)){
+ if (beginTime.isBefore(time) && endTime.isAfter(time)) {
return true;
}
return false;
diff --git a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java
index 8880812e2..4b073bc33 100644
--- a/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java
+++ b/jsowell-pile/src/main/java/com/jsowell/adapay/service/AdapayService.java
@@ -1,37 +1,8 @@
package com.jsowell.adapay.service;
-import com.alibaba.fastjson2.JSON;
-import com.google.common.collect.Maps;
-import com.huifu.adapay.core.exception.BaseAdaPayException;
-import com.huifu.adapay.model.Payment;
import org.springframework.stereotype.Service;
-import java.util.Map;
-
@Service
public class AdapayService {
- /**
- * 创建交易对象
- * createTransactionObject
- */
- public void createTransactionObject() {
- // 请求参数
- Map paymentParams = Maps.newHashMap();
- paymentParams.put("app_id", "app_d0c80cb1-ffc8-48cb-a030-fe9bec823aaa");
- paymentParams.put("order_no", "2023050911410199622174123");
- paymentParams.put("pay_channel", "wx_lite");
- paymentParams.put("pay_amt", "0.01");
- paymentParams.put("currency", "cny");
- paymentParams.put("goods_title", "测试商品");
- paymentParams.put("goods_desc", "用于支付流程测试的商品");
- // paymentParams.put("div_members", [{"amount":"0.05", "fee_flag":"Y", "member_id":"member_id_test"}]);
- // 调用创建方法,获取 Payment对象_
- try {
- Map response = Payment.create(paymentParams);
- System.out.println("response:" + JSON.toJSONString(response));
- } catch (BaseAdaPayException e) {
- e.printStackTrace();
- }
- }
}
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/SettleOrderReport.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/SettleOrderReport.java
new file mode 100644
index 000000000..380e8a8f7
--- /dev/null
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/SettleOrderReport.java
@@ -0,0 +1,233 @@
+package com.jsowell.pile.domain;
+
+import com.jsowell.common.annotation.Excel;
+import com.jsowell.common.core.domain.BaseEntity;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+import java.math.BigDecimal;
+
+/**
+ * 结算订单报对象 settle_order_report
+ *
+ * @author jsowell
+ * @date 2023-06-05
+ */
+public class SettleOrderReport extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ private Long id;
+
+ /**
+ * 运营商id
+ */
+ @Excel(name = "运营商id")
+ private String merchantId;
+
+ /**
+ * 站点id
+ */
+ @Excel(name = "站点id")
+ private String stationId;
+
+ /**
+ * 用电度数
+ */
+ @Excel(name = "用电度数")
+ private BigDecimal useElectricity;
+
+ /**
+ * 充电次数
+ */
+ @Excel(name = "充电次数")
+ private String chargeNum;
+
+ /**
+ * 充电时长
+ */
+ @Excel(name = "充电时长")
+ private String chargeTime;
+
+ /**
+ * 电费金额
+ */
+ @Excel(name = "电费金额")
+ private BigDecimal electricityAmount;
+
+ /**
+ * 服务费金额
+ */
+ @Excel(name = "服务费金额")
+ private BigDecimal serviceAmount;
+
+ /**
+ * 收入金额
+ */
+ @Excel(name = "收入金额")
+ private BigDecimal totalAmount;
+
+ /**
+ * 虚拟金额
+ */
+ @Excel(name = "虚拟金额")
+ private BigDecimal virtualAmount;
+
+ /**
+ * 交易日期
+ */
+ @Excel(name = "交易日期")
+ private String tradeDate;
+
+ /**
+ * 交易金额
+ */
+ @Excel(name = "交易金额")
+ private BigDecimal tradeAmount;
+
+ /**
+ * 交易手续费
+ */
+ @Excel(name = "交易手续费")
+ private BigDecimal tradeFee;
+
+ /**
+ * 删除标识(0-正常;1-删除)
+ */
+ private String delFlag;
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setMerchantId(String merchantId) {
+ this.merchantId = merchantId;
+ }
+
+ public String getMerchantId() {
+ return merchantId;
+ }
+
+ public void setStationId(String stationId) {
+ this.stationId = stationId;
+ }
+
+ public String getStationId() {
+ return stationId;
+ }
+
+ public void setUseElectricity(BigDecimal useElectricity) {
+ this.useElectricity = useElectricity;
+ }
+
+ public BigDecimal getUseElectricity() {
+ return useElectricity;
+ }
+
+ public void setChargeNum(String chargeNum) {
+ this.chargeNum = chargeNum;
+ }
+
+ public String getChargeNum() {
+ return chargeNum;
+ }
+
+ public void setChargeTime(String chargeTime) {
+ this.chargeTime = chargeTime;
+ }
+
+ public String getChargeTime() {
+ return chargeTime;
+ }
+
+ public void setElectricityAmount(BigDecimal electricityAmount) {
+ this.electricityAmount = electricityAmount;
+ }
+
+ public BigDecimal getElectricityAmount() {
+ return electricityAmount;
+ }
+
+ public void setServiceAmount(BigDecimal serviceAmount) {
+ this.serviceAmount = serviceAmount;
+ }
+
+ public BigDecimal getServiceAmount() {
+ return serviceAmount;
+ }
+
+ public void setTotalAmount(BigDecimal totalAmount) {
+ this.totalAmount = totalAmount;
+ }
+
+ public BigDecimal getTotalAmount() {
+ return totalAmount;
+ }
+
+ public void setVirtualAmount(BigDecimal virtualAmount) {
+ this.virtualAmount = virtualAmount;
+ }
+
+ public BigDecimal getVirtualAmount() {
+ return virtualAmount;
+ }
+
+ public void setTradeDate(String tradeDate) {
+ this.tradeDate = tradeDate;
+ }
+
+ public String getTradeDate() {
+ return tradeDate;
+ }
+
+ public void setTradeAmount(BigDecimal tradeAmount) {
+ this.tradeAmount = tradeAmount;
+ }
+
+ public BigDecimal getTradeAmount() {
+ return tradeAmount;
+ }
+
+ public void setTradeFee(BigDecimal tradeFee) {
+ this.tradeFee = tradeFee;
+ }
+
+ public BigDecimal getTradeFee() {
+ return tradeFee;
+ }
+
+ public void setDelFlag(String delFlag) {
+ this.delFlag = delFlag;
+ }
+
+ public String getDelFlag() {
+ return delFlag;
+ }
+
+ @Override
+ public String toString() {
+ return new ToStringBuilder(this, ToStringStyle.JSON_STYLE)
+ .append("id", getId())
+ .append("merchantId", getMerchantId())
+ .append("stationId", getStationId())
+ .append("useElectricity", getUseElectricity())
+ .append("chargeNum", getChargeNum())
+ .append("chargeTime", getChargeTime())
+ .append("electricityAmount", getElectricityAmount())
+ .append("serviceAmount", getServiceAmount())
+ .append("totalAmount", getTotalAmount())
+ .append("virtualAmount", getVirtualAmount())
+ .append("tradeDate", getTradeDate())
+ .append("tradeAmount", getTradeAmount())
+ .append("tradeFee", getTradeFee())
+ .append("createTime", getCreateTime())
+ .append("delFlag", getDelFlag())
+ .toString();
+ }
+}
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java
new file mode 100644
index 000000000..03dc51a25
--- /dev/null
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/SettleOrderReportMapper.java
@@ -0,0 +1,63 @@
+package com.jsowell.pile.mapper;
+
+import com.jsowell.pile.domain.SettleOrderReport;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 结算订单报Mapper接口
+ *
+ * @author jsowell
+ * @date 2023-06-05
+ */
+@Repository
+public interface SettleOrderReportMapper {
+ /**
+ * 查询结算订单报
+ *
+ * @param id 结算订单报主键
+ * @return 结算订单报
+ */
+ public SettleOrderReport selectSettleOrderReportById(Long id);
+
+ /**
+ * 查询结算订单报列表
+ *
+ * @param settleOrderReport 结算订单报
+ * @return 结算订单报集合
+ */
+ public List selectSettleOrderReportList(SettleOrderReport settleOrderReport);
+
+ /**
+ * 新增结算订单报
+ *
+ * @param settleOrderReport 结算订单报
+ * @return 结果
+ */
+ public int insertSettleOrderReport(SettleOrderReport settleOrderReport);
+
+ /**
+ * 修改结算订单报
+ *
+ * @param settleOrderReport 结算订单报
+ * @return 结果
+ */
+ public int updateSettleOrderReport(SettleOrderReport settleOrderReport);
+
+ /**
+ * 删除结算订单报
+ *
+ * @param id 结算订单报主键
+ * @return 结果
+ */
+ public int deleteSettleOrderReportById(Long id);
+
+ /**
+ * 批量删除结算订单报
+ *
+ * @param ids 需要删除的数据主键集合
+ * @return 结果
+ */
+ public int deleteSettleOrderReportByIds(Long[] ids);
+}
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java
index ac92a06bc..ef5fc306e 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IOrderBasicInfoService.java
@@ -265,4 +265,9 @@ public interface IOrderBasicInfoService {
* @param dto
*/
void refundForBalanceWithAdapay(WeChatRefundDTO dto);
+
+ /**
+ * 生成订单日报
+ */
+ void generateDailyOrderReports(String stationId);
}
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java
new file mode 100644
index 000000000..886b17fa9
--- /dev/null
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/ISettleOrderReportService.java
@@ -0,0 +1,61 @@
+package com.jsowell.pile.service;
+
+import com.jsowell.pile.domain.SettleOrderReport;
+
+import java.util.List;
+
+/**
+ * 结算订单报Service接口
+ *
+ * @author jsowell
+ * @date 2023-06-05
+ */
+public interface ISettleOrderReportService {
+ /**
+ * 查询结算订单报
+ *
+ * @param id 结算订单报主键
+ * @return 结算订单报
+ */
+ public SettleOrderReport selectSettleOrderReportById(Long id);
+
+ /**
+ * 查询结算订单报列表
+ *
+ * @param settleOrderReport 结算订单报
+ * @return 结算订单报集合
+ */
+ public List selectSettleOrderReportList(SettleOrderReport settleOrderReport);
+
+ /**
+ * 新增结算订单报
+ *
+ * @param settleOrderReport 结算订单报
+ * @return 结果
+ */
+ public int insertSettleOrderReport(SettleOrderReport settleOrderReport);
+
+ /**
+ * 修改结算订单报
+ *
+ * @param settleOrderReport 结算订单报
+ * @return 结果
+ */
+ public int updateSettleOrderReport(SettleOrderReport settleOrderReport);
+
+ /**
+ * 批量删除结算订单报
+ *
+ * @param ids 需要删除的结算订单报主键集合
+ * @return 结果
+ */
+ public int deleteSettleOrderReportByIds(Long[] ids);
+
+ /**
+ * 删除结算订单报信息
+ *
+ * @param id 结算订单报主键
+ * @return 结果
+ */
+ public int deleteSettleOrderReportById(Long id);
+}
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
index 704ed6be1..bbee5b5f6 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java
@@ -56,7 +56,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
+import java.time.LocalDate;
import java.time.LocalDateTime;
+import java.time.LocalTime;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
@@ -137,6 +139,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
@Autowired
private IMemberTransactionRecordService memberTransactionRecordService;
+ @Autowired
+ private ISettleOrderReportService settleOrderReportService;
+
/**
* 条件查询订单基本信息
*
@@ -1835,4 +1840,68 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService {
// 也许需要多笔支付订单才够退款
}
+
+ @Override
+ public void generateDailyOrderReports(String stationId) {
+ // 查询站点前一天完成的订单
+ QueryOrderDTO dto = new QueryOrderDTO();
+ dto.setStationId(stationId);
+ LocalDate yesterday = LocalDate.now().plusDays(-1);
+ dto.setStartTime(DateUtils.formatDateTime(LocalDateTime.of(yesterday, LocalTime.MIN)));
+ dto.setEndTime(DateUtils.formatDateTime(LocalDateTime.of(yesterday, LocalTime.MAX)));
+ List orderListVOS = orderBasicInfoMapper.selectOrderBasicInfoList(dto);
+ if (CollectionUtils.isEmpty(orderListVOS)) {
+ return;
+ }
+ // 统计出日报信息
+ BigDecimal useElectricity = BigDecimal.ZERO;
+ int chargeNum = 0;
+ long chargeTime = 0L;
+ BigDecimal totalElectricityAmount = BigDecimal.ZERO;
+ BigDecimal totalServiceAmount = BigDecimal.ZERO;
+ BigDecimal totalOrderAmount = BigDecimal.ZERO;
+ BigDecimal totalVirtualAmount = BigDecimal.ZERO;
+ BigDecimal totalSettleAmount = BigDecimal.ZERO;
+ for (OrderListVO vo : orderListVOS) {
+ BigDecimal chargingDegree = new BigDecimal(vo.getChargingDegree());
+ if (chargingDegree.compareTo(BigDecimal.ZERO) <= 0) {
+ // 只统计用电量大于0的
+ continue;
+ }
+ // 充电度数
+ useElectricity = useElectricity.add(chargingDegree);
+ // 充电次数
+ chargeNum += chargeNum;
+ // 充电时间
+ long l = DateUtils.intervalTime(vo.getChargeStartTime(), vo.getChargeEndTime());
+ chargeTime += l;
+ // 电费金额
+ totalElectricityAmount = totalElectricityAmount.add(vo.getTotalElectricityAmount());
+ // 服务费金额
+ totalServiceAmount = totalServiceAmount.add(vo.getTotalServiceAmount());
+ // 订单金额
+ totalOrderAmount = totalOrderAmount.add(new BigDecimal(vo.getOrderAmount()));
+ // 虚拟金额
+ totalVirtualAmount = totalVirtualAmount.add(new BigDecimal(vo.getVirtualAmount()));
+ // 结算金额
+ totalSettleAmount = totalSettleAmount.add(new BigDecimal(vo.getSettleAmount()));
+ }
+ // 保存到数据库
+ SettleOrderReport settleOrderReport = new SettleOrderReport();
+ settleOrderReport.setMerchantId("");
+ settleOrderReport.setStationId(stationId);
+ settleOrderReport.setUseElectricity(useElectricity);
+ settleOrderReport.setChargeNum(chargeNum + "");
+ settleOrderReport.setChargeTime(chargeTime + "");
+ settleOrderReport.setElectricityAmount(totalElectricityAmount);
+ settleOrderReport.setServiceAmount(totalServiceAmount);
+ settleOrderReport.setTotalAmount(totalOrderAmount);
+ settleOrderReport.setVirtualAmount(totalVirtualAmount);
+ settleOrderReport.setTradeDate(yesterday.toString());
+ // 计算手续费 = 结算金额 * 0.55%
+ BigDecimal tradeFee = totalSettleAmount.multiply(new BigDecimal("0.0055"));
+ settleOrderReport.setTradeFee(tradeFee);
+ settleOrderReport.setTradeAmount(totalSettleAmount.subtract(tradeFee));
+ settleOrderReportService.insertSettleOrderReport(settleOrderReport);
+ }
}
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java
new file mode 100644
index 000000000..7111d5b4c
--- /dev/null
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/SettleOrderReportServiceImpl.java
@@ -0,0 +1,89 @@
+package com.jsowell.pile.service.impl;
+
+import com.jsowell.common.util.DateUtils;
+import com.jsowell.pile.domain.SettleOrderReport;
+import com.jsowell.pile.mapper.SettleOrderReportMapper;
+import com.jsowell.pile.service.ISettleOrderReportService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 结算订单报Service业务层处理
+ *
+ * @author jsowell
+ * @date 2023-06-05
+ */
+@Service
+public class SettleOrderReportServiceImpl implements ISettleOrderReportService {
+ @Autowired
+ private SettleOrderReportMapper settleOrderReportMapper;
+
+ /**
+ * 查询结算订单报
+ *
+ * @param id 结算订单报主键
+ * @return 结算订单报
+ */
+ @Override
+ public SettleOrderReport selectSettleOrderReportById(Long id) {
+ return settleOrderReportMapper.selectSettleOrderReportById(id);
+ }
+
+ /**
+ * 查询结算订单报列表
+ *
+ * @param settleOrderReport 结算订单报
+ * @return 结算订单报
+ */
+ @Override
+ public List selectSettleOrderReportList(SettleOrderReport settleOrderReport) {
+ return settleOrderReportMapper.selectSettleOrderReportList(settleOrderReport);
+ }
+
+ /**
+ * 新增结算订单报
+ *
+ * @param settleOrderReport 结算订单报
+ * @return 结果
+ */
+ @Override
+ public int insertSettleOrderReport(SettleOrderReport settleOrderReport) {
+ settleOrderReport.setCreateTime(DateUtils.getNowDate());
+ return settleOrderReportMapper.insertSettleOrderReport(settleOrderReport);
+ }
+
+ /**
+ * 修改结算订单报
+ *
+ * @param settleOrderReport 结算订单报
+ * @return 结果
+ */
+ @Override
+ public int updateSettleOrderReport(SettleOrderReport settleOrderReport) {
+ return settleOrderReportMapper.updateSettleOrderReport(settleOrderReport);
+ }
+
+ /**
+ * 批量删除结算订单报
+ *
+ * @param ids 需要删除的结算订单报主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSettleOrderReportByIds(Long[] ids) {
+ return settleOrderReportMapper.deleteSettleOrderReportByIds(ids);
+ }
+
+ /**
+ * 删除结算订单报信息
+ *
+ * @param id 结算订单报主键
+ * @return 结果
+ */
+ @Override
+ public int deleteSettleOrderReportById(Long id) {
+ return settleOrderReportMapper.deleteSettleOrderReportById(id);
+ }
+}
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WechatPayServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WechatPayServiceImpl.java
index b70670ff9..8de8f3f13 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WechatPayServiceImpl.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/WechatPayServiceImpl.java
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Maps;
import com.jsowell.common.enums.MemberWalletEnum;
+import com.jsowell.common.enums.weixin.WeiXinPayTradeStatus;
import com.jsowell.common.enums.ykc.ActionTypeEnum;
import com.jsowell.common.enums.ykc.PayModeEnum;
import com.jsowell.common.enums.ykc.PaymentInstitutionsEnum;
@@ -144,6 +145,32 @@ public class WechatPayServiceImpl implements WechatPayService {
return amLong.toString();
}
+ public static void main(String[] args) {
+ String s = "{\n" +
+ " \"mchid\": \"1632405339\",\n" +
+ " \"appid\": \"wxbb3e0d474569481d\",\n" +
+ " \"out_trade_no\": \"823422832569454592\",\n" +
+ " \"transaction_id\": \"4200001841202305301676160680\",\n" +
+ " \"trade_type\": \"JSAPI\",\n" +
+ " \"trade_state\": \"SUCCESS\",\n" +
+ " \"trade_state_desc\": \"支付成功\",\n" +
+ " \"bank_type\": \"OTHERS\",\n" +
+ " \"attach\": \"{\\\"memberId\\\":\\\"82507801\\\",\\\"orderCode\\\":\\\"C27473779928\\\",\\\"type\\\":\\\"order\\\"}\",\n" +
+ " \"success_time\": \"2023-05-30T15:15:20+08:00\",\n" +
+ " \"payer\": {\n" +
+ " \"openid\": \"o4REX5FPLsLOxM2x9ig2MHuuHPqU\"\n" +
+ " },\n" +
+ " \"amount\": {\n" +
+ " \"total\": 5000,\n" +
+ " \"payer_total\": 5000,\n" +
+ " \"currency\": \"CNY\",\n" +
+ " \"payer_currency\": \"CNY\"\n" +
+ " }\n" +
+ "}";
+ WechatPayNotifyResource wechatPayNotifyResource = JSON.parseObject(s, WechatPayNotifyResource.class);
+ System.out.println(wechatPayNotifyResource);
+ }
+
/**
* 微信支付回调
* @param request
@@ -186,7 +213,7 @@ public class WechatPayServiceImpl implements WechatPayService {
//6:获取微信支付返回的信息
WechatPayNotifyResource wechatPayNotifyResource = JSON.parseObject(decryptToString, WechatPayNotifyResource.class);
//7: 支付状态的判断 如果是success就代表支付成功
- if (StringUtils.equals(wechatPayNotifyResource.getTrade_state(), "SUCCESS")) {
+ if (StringUtils.equals(wechatPayNotifyResource.getTrade_state(), WeiXinPayTradeStatus.SUCCESS.getValue())) {
// 8:获取支付的交易单号,流水号,和附属参数
String out_trade_no = wechatPayNotifyResource.getOut_trade_no();
// 微信支付单号
diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderListVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderListVO.java
index 134a9a3a8..2d9495284 100644
--- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderListVO.java
+++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/web/OrderListVO.java
@@ -6,6 +6,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
+import java.math.BigDecimal;
+
/**
* 后管订单列表页面
*
@@ -184,4 +186,14 @@ public class OrderListVO {
* 支付机构
*/
private String paymentInstitutions;
+
+ /**
+ * 电费金额
+ */
+ private BigDecimal totalElectricityAmount;
+
+ /**
+ * 服务费金额
+ */
+ private BigDecimal totalServiceAmount;
}
diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml
index bb1f103e5..76c976551 100644
--- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml
+++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml
@@ -178,7 +178,11 @@
t1.charge_start_time as chargeStartTime,
t1.charge_end_time as chargeEndTime,
t1.create_time as createTime,
+ t1.virtual_amount as virtualAmount,
+ t1.settle_amount as settleAmount,
t4.total_used_electricity as chargingDegree,
+ t4.total_electricity_amount as totalElectricityAmount,
+ t4.total_service_amount as totalServiceAmount,
t5.payment_institutions as paymentInstitutions
from order_basic_info t1
left join member_basic_info t2 on t1.member_id = t2.member_id
diff --git a/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml
new file mode 100644
index 000000000..ee6ccc9bd
--- /dev/null
+++ b/jsowell-pile/src/main/resources/mapper/pile/SettleOrderReportMapper.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, merchant_id, station_id, use_electricity, charge_num, charge_time, electricity_amount, service_amount, total_amount, virtual_amount, trade_date, trade_amount, trade_fee, create_time, del_flag from settle_order_report
+
+
+
+
+
+
+
+ insert into settle_order_report
+
+ id,
+ merchant_id,
+ station_id,
+ use_electricity,
+ charge_num,
+ charge_time,
+ electricity_amount,
+ service_amount,
+ total_amount,
+ virtual_amount,
+ trade_date,
+ trade_amount,
+ trade_fee,
+ create_time,
+ del_flag,
+
+
+ #{id},
+ #{merchantId},
+ #{stationId},
+ #{useElectricity},
+ #{chargeNum},
+ #{chargeTime},
+ #{electricityAmount},
+ #{serviceAmount},
+ #{totalAmount},
+ #{virtualAmount},
+ #{tradeDate},
+ #{tradeAmount},
+ #{tradeFee},
+ #{createTime},
+ #{delFlag},
+
+
+
+
+ update settle_order_report
+
+ merchant_id = #{merchantId},
+ station_id = #{stationId},
+ use_electricity = #{useElectricity},
+ charge_num = #{chargeNum},
+ charge_time = #{chargeTime},
+ electricity_amount = #{electricityAmount},
+ service_amount = #{serviceAmount},
+ total_amount = #{totalAmount},
+ virtual_amount = #{virtualAmount},
+ trade_date = #{tradeDate},
+ trade_amount = #{tradeAmount},
+ trade_fee = #{tradeFee},
+ create_time = #{createTime},
+ del_flag = #{delFlag},
+
+ where id = #{id}
+
+
+
+ delete from settle_order_report where id = #{id}
+
+
+
+ delete from settle_order_report where id in
+
+ #{id}
+
+
+
\ No newline at end of file