diff --git a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java index 3d4d0db6e..687169a99 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java +++ b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java @@ -38,6 +38,9 @@ public class CacheConstants { // 支付确认列表 public static final String PAYMENT_CONFIRM_LIST = "payment_confirm_list:"; + // 订单分账信息 + public static final String CLEARING_BILL_DETAIL_BY_ORDER_CODE = "clearing_bill_detail_by_order_code:"; + // 会员余额退款正在进行中 public static final String MEMBER_BALANCE_REFUNDS_ARE_IN_PROGRESS = "member_balance_refunds_are_in_progress:"; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillDetailMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillDetailMapper.java index 19c385e0c..f930eb162 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillDetailMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/ClearingBillDetailMapper.java @@ -62,7 +62,7 @@ public interface ClearingBillDetailMapper { int batchInsert(@Param("list") List list); - ClearingBillDetail selectClearingBillCode(String orderCode); + List selectByOrderCodes(@Param("orderCodes") List orderCodes); // 根据清分编号删除 int deleteByClearingBillCode(@Param("clearingBillCode") String clearingBillCode); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillDetailService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillDetailService.java index c54551540..bb763e2e6 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillDetailService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/ClearingBillDetailService.java @@ -27,4 +27,6 @@ public interface ClearingBillDetailService{ int batchInsert(List list); + ClearingBillDetail selectByOrderCode(String orderCode); + } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillDetailServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillDetailServiceImpl.java index efa3a509c..804a90811 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillDetailServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/ClearingBillDetailServiceImpl.java @@ -1,11 +1,20 @@ package com.jsowell.pile.service.impl; +import com.google.common.collect.Lists; +import com.jsowell.common.constant.CacheConstants; +import com.jsowell.common.core.redis.RedisCache; import com.jsowell.pile.domain.ClearingBillDetail; import com.jsowell.pile.mapper.ClearingBillDetailMapper; import com.jsowell.pile.service.ClearingBillDetailService; +import org.apache.commons.collections4.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.function.Function; +import java.util.stream.Collectors; @Service public class ClearingBillDetailServiceImpl implements ClearingBillDetailService{ @@ -13,6 +22,9 @@ public class ClearingBillDetailServiceImpl implements ClearingBillDetailService{ @Resource private ClearingBillDetailMapper clearingBillDetailMapper; + @Autowired + private RedisCache redisCache; + @Override public int deleteByPrimaryKey(Integer id) { return clearingBillDetailMapper.deleteByPrimaryKey(id); @@ -68,4 +80,40 @@ public class ClearingBillDetailServiceImpl implements ClearingBillDetailService{ return clearingBillDetailMapper.batchInsert(list); } + @Override + public ClearingBillDetail selectByOrderCode(String orderCode) { + String redisKey = CacheConstants.CLEARING_BILL_DETAIL_BY_ORDER_CODE + orderCode; + ClearingBillDetail clearingBillDetail = redisCache.getCacheObject(redisKey); + if (clearingBillDetail == null) { + clearingBillDetail = clearingBillDetailMapper.selectByOrderCode(orderCode); + if (Objects.nonNull(clearingBillDetail)) { + redisCache.setCacheObject(redisKey, clearingBillDetail, CacheConstants.cache_expire_time_10d); + } + } + return clearingBillDetail; + } + + /** + * 根据订单编号list查询分账记录 + * @param orderCodes + * @return + */ + public List selectByOrderCodes(List orderCodes) { + if (CollectionUtils.isEmpty(orderCodes)) { + return Lists.newArrayList(); + } + List redisKeyList = Lists.newArrayList(); + for (String orderCode : orderCodes) { + redisKeyList.add(CacheConstants.CLEARING_BILL_DETAIL_BY_ORDER_CODE + orderCode); + } + // 批量从redis获取 + List resultList = redisCache.multiGet(redisKeyList); + if (CollectionUtils.isNotEmpty(resultList)) { + + + } + List billDetailList = clearingBillDetailMapper.selectByOrderCodes(orderCodes); + return billDetailList; + } + } 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 8c2b377ed..1d9ca981c 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 @@ -172,6 +172,9 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { @Autowired private IPileMsgRecordService pileMsgRecordService; + @Autowired + private ClearingBillDetailService clearingBillDetailService; + /** * 条件查询订单基本信息 * @@ -236,6 +239,19 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { orderListVO.setRealTimeAmount(new BigDecimal(realTimeMonitorData.getChargingAmount())); orderListVO.setRealTimeChargingDegree(realTimeMonitorData.getChargingDegree()); } + + // 计算充电时长 + String chargeStartTime = orderListVO.getChargeStartTime(); + String chargeEndTime = orderListVO.getChargeEndTime(); + if (StringUtils.isNotBlank(chargeStartTime) && StringUtils.isNotBlank(chargeEndTime)) { + orderListVO.setChargingTime(DateUtils.getDatePoor(DateUtils.parseDate(chargeEndTime), DateUtils.parseDate(chargeStartTime))); + } + + // 交易手续费 + ClearingBillDetail clearingBillDetail = clearingBillDetailService.selectByOrderCode(orderListVO.getOrderCode()); + if (Objects.nonNull(clearingBillDetail)) { + orderListVO.setFeeAmount(clearingBillDetail.getFeeAmt() + ""); + } } return orderListVOS; } diff --git a/jsowell-pile/src/main/resources/mapper/pile/ClearingBillDetailMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/ClearingBillDetailMapper.xml index ee2d8d5bd..69ba87bbc 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/ClearingBillDetailMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/ClearingBillDetailMapper.xml @@ -428,12 +428,15 @@ - select from clearing_bill_detail where del_flag = '0' - and order_code = #{orderCode,jdbcType=VARCHAR} + and order_code in + + #{orderCode,jdbcType=VARCHAR} +