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