diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java index f96e15688..8846c081c 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java @@ -688,22 +688,22 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler { OrderBasicInfo finalOrderBasicInfo = orderBasicInfo; // TODO 异步推送第三方平台订单信息 - CompletableFuture.runAsync(() -> { - try { - commonService.commonPushOrderInfo(finalOrderBasicInfo); - } catch (Exception e) { - log.error("推送第三方平台订单信息error, ", e); - } - }, thirdpartyTaskExecutor); - - // TODO 异步推送第三方平台订单信息V2 - CompletableFuture.runAsync(() -> { - try { - commonService.commonPushOrderInfoV2(finalOrderBasicInfo); - } catch (Exception e) { - log.error("推送第三方平台订单信息error, ", e); - } - }, thirdpartyTaskExecutor); +// CompletableFuture.runAsync(() -> { +// try { +// commonService.commonPushOrderInfo(finalOrderBasicInfo); +// } catch (Exception e) { +// log.error("推送第三方平台订单信息error, ", e); +// } +// }, thirdpartyTaskExecutor); +// +// // TODO 异步推送第三方平台订单信息V2 +// CompletableFuture.runAsync(() -> { +// try { +// commonService.commonPushOrderInfoV2(finalOrderBasicInfo); +// } catch (Exception e) { +// log.error("推送第三方平台订单信息error, ", e); +// } +// }, thirdpartyTaskExecutor); // TODO 异步推送充电订单算法平台 CompletableFuture.runAsync(() -> { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberGroupMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberGroupMapper.java index dd64d6c13..7d7475fd2 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberGroupMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberGroupMapper.java @@ -80,7 +80,7 @@ public interface MemberGroupMapper { MemberGroupVO queryByGroupCodeAndMemberId(@Param("groupCode") String groupCode, @Param("memberId") String memberId); - List queryMemberList(@Param("groupCode") String groupCode); + List queryMemberList(MemberGroupDTO dto); MemberGroup selectByGroupCode(String groupCode); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java index 88f74b7c4..2cb20b99a 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberBasicInfoServiceImpl.java @@ -25,6 +25,7 @@ import com.jsowell.pile.service.*; import com.jsowell.pile.util.MerchantUtils; import com.jsowell.pile.util.UserUtils; import com.jsowell.pile.vo.base.ConfirmStartChargingMemberVO; +import com.jsowell.pile.vo.base.MemberWalletVO; import com.jsowell.pile.vo.base.MerchantInfoVO; import com.jsowell.pile.vo.uniapp.customer.*; import com.jsowell.pile.vo.web.MemberDetailsVO; @@ -37,6 +38,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; /** @@ -449,11 +451,53 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService { merchantId = MerchantUtils.XIXIAO_MERCHANT_ID; } + // 计算用户注册天数 + String days = DateUtils.getPoorDays(new Date(), vo.getCreateTime()); + vo.setRegistrationDays(days); + + final String finalMerchantId = merchantId; + + // 使用 CompletableFuture 并行查询 + // 1. 查询单个钱包信息 + CompletableFuture walletInfoFuture = CompletableFuture.supplyAsync(() -> { + try { + return memberWalletInfoService.selectByMemberId(memberId, finalMerchantId); + } catch (Exception e) { + log.error("查询用户余额异常 memberId:{}, merchantId:{}", memberId, finalMerchantId, e); + return null; + } + }); + + // 2. 查询车牌号列表 + CompletableFuture> plateNumberFuture = CompletableFuture.supplyAsync(() -> { + MemberPlateNumberRelation query = new MemberPlateNumberRelation(); + query.setMemberId(memberId); + return memberPlateNumberRelationMapper.selectMemberPlateNumberRelationList(query); + }); + + // 3. 查询收藏站点列表 + CompletableFuture> stationIdsFuture = CompletableFuture.supplyAsync(() -> + memberStationRelationService.getStationIdListByMemberId(memberId) + ); + + // 4. 查询钱包列表 + CompletableFuture> walletListFuture = CompletableFuture.supplyAsync(() -> { + try { + return memberWalletInfoService.selectByMemberWalletList(memberId); + } catch (Exception e) { + log.error("查询会员钱包列表异常 memberId:{}", memberId, e); + return Lists.newArrayList(); + } + }); + + // 等待所有异步任务完成 + CompletableFuture.allOf(walletInfoFuture, plateNumberFuture, stationIdsFuture, walletListFuture).join(); + + // 处理钱包信息结果 try { - // BigDecimal totalAccountAmount = BigDecimal.ZERO; + MemberWalletInfo memberWalletInfo = walletInfoFuture.get(); BigDecimal principalBalance = BigDecimal.ZERO; BigDecimal giftBalance = BigDecimal.ZERO; - MemberWalletInfo memberWalletInfo = memberWalletInfoService.selectByMemberId(memberId, merchantId); if (memberWalletInfo != null) { if (memberWalletInfo.getPrincipalBalance() != null) { principalBalance = memberWalletInfo.getPrincipalBalance(); @@ -461,42 +505,60 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService { if (memberWalletInfo.getGiftBalance() != null) { giftBalance = memberWalletInfo.getGiftBalance(); } - // totalAccountAmount = memberWalletInfo.getPrincipalBalance(); vo.setMerchantId(memberWalletInfo.getMerchantId()); } - // 计算用户注册天数 - String days = DateUtils.getPoorDays(new Date(), vo.getCreateTime()); - vo.setRegistrationDays(days); vo.setPrincipalBalance(principalBalance); vo.setGiftBalance(giftBalance); - vo.setTotalBalance(vo.getPrincipalBalance().add(vo.getGiftBalance())); + vo.setTotalBalance(principalBalance.add(giftBalance)); } catch (Exception e) { - log.error("查询用户余额异常 memberId:{}, merchantId:{}", memberId, merchantId, e); + log.error("获取钱包信息结果异常 memberId:{}", memberId, e); + vo.setPrincipalBalance(BigDecimal.ZERO); + vo.setGiftBalance(BigDecimal.ZERO); + vo.setTotalBalance(BigDecimal.ZERO); } - // 查询用户车牌号 - MemberPlateNumberRelation memberPlateNumberRelation = new MemberPlateNumberRelation(); - memberPlateNumberRelation.setMemberId(memberId); - List list = memberPlateNumberRelationMapper.selectMemberPlateNumberRelationList(memberPlateNumberRelation); - List plateNumberList = new ArrayList<>(); - List vinCodeList = new ArrayList<>(); - for (MemberPlateNumberRelation relation : list) { - if (StringUtils.isNotBlank(relation.getLicensePlateNumber())) { - plateNumberList.add(relation.getLicensePlateNumber()); - } - if (StringUtils.isNotBlank(relation.getVinCode())) { - vinCodeList.add(relation.getVinCode()); + // 处理车牌号结果 + try { + List list = plateNumberFuture.get(); + List plateNumberList = new ArrayList<>(); + List vinCodeList = new ArrayList<>(); + for (MemberPlateNumberRelation relation : list) { + if (StringUtils.isNotBlank(relation.getLicensePlateNumber())) { + plateNumberList.add(relation.getLicensePlateNumber()); + } + if (StringUtils.isNotBlank(relation.getVinCode())) { + vinCodeList.add(relation.getVinCode()); + } } + vo.setPlateNumberList(plateNumberList); + vo.setVinCodeList(vinCodeList); + vo.setVehicleList(list); + } catch (Exception e) { + log.error("获取车牌号结果异常 memberId:{}", memberId, e); + vo.setPlateNumberList(Lists.newArrayList()); + vo.setVinCodeList(Lists.newArrayList()); + vo.setVehicleList(Lists.newArrayList()); } - vo.setPlateNumberList(plateNumberList); - vo.setVinCodeList(vinCodeList); - // 查询用户收藏的站点 - List stationIds = memberStationRelationService.getStationIdListByMemberId(memberId); - if (CollectionUtils.isEmpty(stationIds)) { + // 处理收藏站点结果 + try { + List stationIds = stationIdsFuture.get(); + if (CollectionUtils.isEmpty(stationIds)) { + vo.setCollectedStationIdList(Lists.newArrayList()); + } else { + vo.setCollectedStationIdList(stationIds); + } + } catch (Exception e) { + log.error("获取收藏站点结果异常 memberId:{}", memberId, e); vo.setCollectedStationIdList(Lists.newArrayList()); - }else { - vo.setCollectedStationIdList(stationIds); + } + + // 处理钱包列表结果 + try { + vo.setWalletList(walletListFuture.get()); + } catch (Exception e) { + log.error("获取钱包列表结果异常 memberId:{}", memberId, e); + vo.setWalletList(Lists.newArrayList()); } return vo; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberGroupServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberGroupServiceImpl.java index e0a50aafc..7e18ed938 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberGroupServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberGroupServiceImpl.java @@ -386,7 +386,10 @@ public class MemberGroupServiceImpl implements MemberGroupService { @Override public List queryMemberList(MemberGroupDTO dto) { - List list = memberGroupMapper.queryMemberList(dto.getGroupCode()); + if (dto.getGroupCode().isEmpty()){ + return null; + } + List list = memberGroupMapper.queryMemberList(dto); return list; } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberVO.java b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberVO.java index a97159352..0c8a05020 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberVO.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/vo/uniapp/customer/MemberVO.java @@ -9,6 +9,9 @@ import java.math.BigDecimal; import java.util.Date; import java.util.List; +import com.jsowell.pile.domain.MemberPlateNumberRelation; +import com.jsowell.pile.vo.base.MemberWalletVO; + /** * 用户信息VO * @@ -110,4 +113,14 @@ public class MemberVO { * 车牌号 */ private String plateNumber; + + /** + * 会员钱包列表(不同运营商) + */ + private List walletList; + + /** + * 车辆信息列表(车牌与VIN一一对应) + */ + private List vehicleList; } diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberGroupMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberGroupMapper.xml index cccf2984e..982fae8ed 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberGroupMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberGroupMapper.xml @@ -19,7 +19,7 @@ - + id, group_name, group_code, merchant_id, station_id, group_level, group_type, discount, create_by, create_time, update_by, update_time, del_flag @@ -165,8 +165,14 @@ FROM member_basic_info t1 JOIN member_group_relation t2 ON t2.member_id = t1.member_id and t2.del_flag = '0' - where - t2.group_code = #{groupCode,jdbcType=VARCHAR} + WHERE t1.del_flag = '0' + AND t2.group_code = #{groupCode} + + AND t1.mobile_number LIKE CONCAT('%', #{phoneNumber}, '%') + + + AND t2.member_id = #{memberId} + - \ No newline at end of file +