mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 11:35:12 +08:00
Merge branch 'dev' into dev-g
This commit is contained in:
@@ -41,6 +41,10 @@ public class GenerateOrderDTO extends BasicPileDTO{
|
||||
*/
|
||||
private String startMode;
|
||||
|
||||
private String vinCode;
|
||||
|
||||
private String logicCard;
|
||||
|
||||
/**
|
||||
* 支付方式 1-余额支付;3-白名单支付;4-微信支付;5-支付宝支付
|
||||
*/
|
||||
@@ -127,4 +131,9 @@ public class GenerateOrderDTO extends BasicPileDTO{
|
||||
* 启动时soc
|
||||
*/
|
||||
private String startSoc;
|
||||
|
||||
/**
|
||||
* 运营商id
|
||||
*/
|
||||
private String merchantId;
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.jsowell.pile.mapper;
|
||||
|
||||
import com.jsowell.pile.domain.MemberBasicInfo;
|
||||
import com.jsowell.pile.dto.QueryMemberInfoDTO;
|
||||
import com.jsowell.pile.vo.base.ConfirmStartChargingMemberVO;
|
||||
import com.jsowell.pile.vo.base.MerchantInfoVO;
|
||||
import com.jsowell.pile.vo.uniapp.customer.MemberVO;
|
||||
import com.jsowell.pile.vo.uniapp.customer.MerchantVipVO;
|
||||
@@ -127,4 +128,8 @@ public interface MemberBasicInfoMapper {
|
||||
* @return
|
||||
*/
|
||||
List<MemberVO> getMemberInfoByPlateNumber(@Param("plateNumber") String plateNumber);
|
||||
|
||||
ConfirmStartChargingMemberVO queryMemberInfoByCardCode(@Param("cardCode") String cardCode, @Param("merchantId") String merchantId);
|
||||
|
||||
ConfirmStartChargingMemberVO queryMemberInfoByVinCode(@Param("vinCode") String vinCode, @Param("merchantId") String merchantId);
|
||||
}
|
||||
|
||||
@@ -414,4 +414,6 @@ public interface OrderBasicInfoMapper {
|
||||
* @return
|
||||
*/
|
||||
List<OrderBasicInfo> getOrderBasicInfoByTimeInterval(@Param("stationIds") List<String> stationIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
}
|
||||
|
||||
List<SupStationStatsVO> queryOrderListByStationIdAndTime(@Param("stationId") String stationId , @Param("startTime") String startTime , @Param("endTime") String endTime);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.jsowell.pile.dto.CreateMerchantVipDTO;
|
||||
import com.jsowell.pile.dto.PlatformTesterDTO;
|
||||
import com.jsowell.pile.dto.QueryMemberInfoDTO;
|
||||
import com.jsowell.pile.dto.UniAppQueryMemberBalanceDTO;
|
||||
import com.jsowell.pile.vo.base.ConfirmStartChargingMemberVO;
|
||||
import com.jsowell.pile.vo.uniapp.customer.*;
|
||||
import com.jsowell.pile.vo.web.MemberDetailsVO;
|
||||
import com.jsowell.pile.vo.web.PlatformTesterVO;
|
||||
@@ -169,4 +170,8 @@ public interface MemberBasicInfoService {
|
||||
* @return
|
||||
*/
|
||||
MemberDetailsVO queryMemberDetails(UniAppQueryMemberBalanceDTO dto);
|
||||
|
||||
ConfirmStartChargingMemberVO queryMemberInfoByCardCode(String physicsCard, String merchantId, String stationId);
|
||||
|
||||
ConfirmStartChargingMemberVO queryByVinCode(String vinCode, String merchantId, String stationId);
|
||||
}
|
||||
|
||||
@@ -345,6 +345,8 @@ public interface OrderBasicInfoService{
|
||||
|
||||
Map<String, Object> generateOrderByCard(GenerateOrderDTO dto) throws Exception;
|
||||
|
||||
Map<String, Object> generateOrderByCardV2(GenerateOrderDTO dto) throws Exception;
|
||||
|
||||
/**
|
||||
* 联联平台 获取累计数据用
|
||||
* @param dto
|
||||
@@ -577,4 +579,14 @@ public interface OrderBasicInfoService{
|
||||
Map<String, Object> verifyMergeChargeOrder(VerifyMergeChargeOrderDTO dto) throws Exception;
|
||||
|
||||
List<OrderBasicInfo> getOrderBasicInfoByTimeInterval(List<String> stationIds, String startTime, String endTime);
|
||||
|
||||
|
||||
/**
|
||||
* 查询站点订单时间段用电量列表
|
||||
* @param stationId
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
List<SupStationStatsVO> queryOrderListByStationIdAndTime(String stationId , String startTime , String endTime);
|
||||
}
|
||||
|
||||
@@ -15,21 +15,16 @@ import com.jsowell.common.util.DateUtils;
|
||||
import com.jsowell.common.util.SecurityUtils;
|
||||
import com.jsowell.common.util.StringUtils;
|
||||
import com.jsowell.common.util.id.IdUtils;
|
||||
import com.jsowell.pile.domain.MemberBasicInfo;
|
||||
import com.jsowell.pile.domain.MemberPlateNumberRelation;
|
||||
import com.jsowell.pile.domain.MemberWalletInfo;
|
||||
import com.jsowell.pile.domain.MemberWalletLog;
|
||||
import com.jsowell.pile.domain.*;
|
||||
import com.jsowell.pile.dto.CreateMerchantVipDTO;
|
||||
import com.jsowell.pile.dto.PlatformTesterDTO;
|
||||
import com.jsowell.pile.dto.QueryMemberInfoDTO;
|
||||
import com.jsowell.pile.dto.UniAppQueryMemberBalanceDTO;
|
||||
import com.jsowell.pile.mapper.MemberBasicInfoMapper;
|
||||
import com.jsowell.pile.mapper.MemberPlateNumberRelationMapper;
|
||||
import com.jsowell.pile.mapper.MemberWalletInfoMapper;
|
||||
import com.jsowell.pile.mapper.MemberWalletLogMapper;
|
||||
import com.jsowell.pile.mapper.*;
|
||||
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.MerchantInfoVO;
|
||||
import com.jsowell.pile.vo.uniapp.customer.*;
|
||||
import com.jsowell.pile.vo.web.MemberDetailsVO;
|
||||
@@ -59,8 +54,8 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService {
|
||||
@Autowired
|
||||
private MemberBasicInfoMapper memberBasicInfoMapper;
|
||||
|
||||
// @Autowired
|
||||
// private MemberWalletInfoMapper memberWalletInfoMapper;
|
||||
@Autowired
|
||||
private PileStationWhitelistMapper pileStationWhitelistMapper;
|
||||
|
||||
@Autowired
|
||||
private MemberWalletInfoService memberWalletInfoService;
|
||||
@@ -773,4 +768,46 @@ public class MemberBasicInfoServiceImpl implements MemberBasicInfoService {
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据卡号查询会员信息
|
||||
* @param cardCode
|
||||
* @param merchantId
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ConfirmStartChargingMemberVO queryMemberInfoByCardCode(String cardCode, String merchantId, String stationId) {
|
||||
ConfirmStartChargingMemberVO memberVO = memberBasicInfoMapper.queryMemberInfoByCardCode(cardCode, merchantId);
|
||||
if (memberVO == null) {
|
||||
log.info("queryMemberInfoByCardCode查询为null, cardCode:{}, merchant:{}", cardCode, merchantId);
|
||||
return null;
|
||||
}
|
||||
BigDecimal principalBalance = memberVO.getPrincipalBalance() != null ? memberVO.getPrincipalBalance() : BigDecimal.ZERO;
|
||||
BigDecimal giftBalance = memberVO.getGiftBalance() != null ? memberVO.getGiftBalance() : BigDecimal.ZERO;
|
||||
memberVO.setTotalBalance(principalBalance.add(giftBalance));
|
||||
// 是否为平台测试员
|
||||
memberVO.setPlatformTesterFlag(selectPlatformTesterStatus(memberVO.getMemberId()).getStatus());
|
||||
// 查询会员在站点是否是白名单用户
|
||||
PileStationWhitelist whitelist = pileStationWhitelistMapper.queryWhitelistByMemberId(stationId, memberVO.getMemberId());
|
||||
memberVO.setStationWhiteListFlag(whitelist != null ? Constants.ONE : Constants.ZERO);
|
||||
return memberVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfirmStartChargingMemberVO queryByVinCode(String vinCode, String merchantId, String stationId) {
|
||||
ConfirmStartChargingMemberVO memberVO = memberBasicInfoMapper.queryMemberInfoByVinCode(vinCode, merchantId);
|
||||
if (memberVO == null) {
|
||||
log.info("queryMemberInfoByVinCode查询为null, vinCode:{}, merchant:{}", vinCode, merchantId);
|
||||
return null;
|
||||
}
|
||||
BigDecimal principalBalance = memberVO.getPrincipalBalance() != null ? memberVO.getPrincipalBalance() : BigDecimal.ZERO;
|
||||
BigDecimal giftBalance = memberVO.getGiftBalance() != null ? memberVO.getGiftBalance() : BigDecimal.ZERO;
|
||||
memberVO.setTotalBalance(principalBalance.add(giftBalance));
|
||||
// 是否为平台测试员
|
||||
memberVO.setPlatformTesterFlag(selectPlatformTesterStatus(memberVO.getMemberId()).getStatus());
|
||||
// 查询会员在站点是否是白名单用户
|
||||
PileStationWhitelist whitelist = pileStationWhitelistMapper.queryWhitelistByMemberId(stationId, memberVO.getMemberId());
|
||||
memberVO.setStationWhiteListFlag(whitelist != null ? Constants.ONE : Constants.ZERO);
|
||||
return memberVO;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3513,6 +3513,83 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成订单 返回交易流水号
|
||||
*
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> generateOrderByCardV2(GenerateOrderDTO dto) throws Exception {
|
||||
logger.info("充电桩主动申请启动充电生成订单 param:{}", JSON.toJSONString(dto));
|
||||
BigDecimal accountBalance = dto.getChargeAmount();
|
||||
String payMode = dto.getPayMode();
|
||||
// 判断当前用户是否为平台测试员
|
||||
// PlatformTesterVO platformTesterVO = memberBasicInfoService.selectPlatformTesterStatus(dto.getMemberId());
|
||||
// PileBasicInfo pileBasicInfo = pileBasicInfoService.selectPileBasicInfoBySN(dto.getPileSn());
|
||||
// PileStationWhitelist pileStationWhitelist = pileStationWhitelistService.queryWhitelistByMemberId(String.valueOf(pileBasicInfo.getStationId()), dto.getMemberId());
|
||||
|
||||
// 运营商id
|
||||
String merchantId = dto.getMerchantId();
|
||||
|
||||
dto.setChargeAmount(accountBalance);
|
||||
dto.setPayMode(payMode);
|
||||
/*
|
||||
生成订单
|
||||
*/
|
||||
OrderBasicInfo basicInfo = generateOrder(dto);
|
||||
if (basicInfo == null) {
|
||||
logger.info("充电桩主动申请启动充电生成订单 订单生成失败, memberId:{}, dto:{}", dto.getMemberId(), JSON.toJSONString(dto));
|
||||
return null;
|
||||
}
|
||||
// if (StringUtils.equals(StartModeEnum.AUTH_CARD.getValue(), dto.getStartMode())) {
|
||||
// // 将卡状态改为启动锁定
|
||||
// PileAuthCard pileAuthCard = PileAuthCard.builder()
|
||||
// .id(dto.getPileAuthCardInfo().getId())
|
||||
// .logicCard(dto.getPileAuthCardInfo().getLogicCard())
|
||||
// .status("2")
|
||||
// .build();
|
||||
// pileAuthCardService.updatePileAuthCard(pileAuthCard);
|
||||
// } else if (StringUtils.equals(StartModeEnum.VIN_CODE.getValue(), dto.getStartMode())) {
|
||||
// // 将vin码改成启动锁定 2023.11.4 站点白名单和测试员不需要锁定
|
||||
// if (!StringUtils.equals(OrderPayModeEnum.PAYMENT_OF_WHITELIST.getValue(), dto.getPayMode())) {
|
||||
// dto.getMemberPlateNumberRelation().setVinStatus("2");
|
||||
// }
|
||||
// }
|
||||
|
||||
// 组装结果集
|
||||
Map<String, Object> map = Maps.newHashMap();
|
||||
map.put("orderCode", basicInfo.getOrderCode());
|
||||
map.put("transactionCode", basicInfo.getTransactionCode());
|
||||
map.put("accountBalance", accountBalance);
|
||||
|
||||
logger.info("生成订单 result:{}", JSON.toJSONString(map));
|
||||
|
||||
// 支付订单
|
||||
PayOrderDTO payOrderDTO = PayOrderDTO.builder()
|
||||
.orderCode(basicInfo.getOrderCode())
|
||||
.payAmount(accountBalance)
|
||||
.payMode(dto.getPayMode())
|
||||
.memberId(dto.getMemberId())
|
||||
.startMode(dto.getStartMode())
|
||||
.build();
|
||||
|
||||
String mode = pileMerchantInfoService.getDelayModeByMerchantId(merchantId);
|
||||
// 获取处理逻辑
|
||||
AbstractProgramLogic orderLogic = ProgramLogicFactory.getProgramLogic(mode);
|
||||
orderLogic.payOrder(payOrderDTO); // 充电桩主动申请启动充电生成订单 使用支付
|
||||
|
||||
/*
|
||||
推送小程序启动充电消息
|
||||
通过memberId查询openId
|
||||
*/
|
||||
if (StringUtils.isNotBlank(dto.getMemberId())) {
|
||||
wxAppletRemoteService.startChargingSendMsg(dto.getMemberId(), basicInfo.getOrderCode());
|
||||
}
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 联联平台 获取累计数据用
|
||||
*
|
||||
@@ -4684,7 +4761,12 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
}
|
||||
if (StringUtils.equals(dto.getStartMode(), StartModeEnum.AUTH_CARD.getValue())) {
|
||||
// 鉴权卡启动
|
||||
orderBasicInfo.setLogicCard(dto.getPileAuthCardInfo().getLogicCard());
|
||||
if (dto.getPileAuthCardInfo() != null) {
|
||||
orderBasicInfo.setLogicCard(dto.getPileAuthCardInfo().getLogicCard());
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getLogicCard())) {
|
||||
orderBasicInfo.setLogicCard(dto.getLogicCard());
|
||||
}
|
||||
}
|
||||
if (StringUtils.equals(dto.getStartMode(), StartModeEnum.VIN_CODE.getValue())) {
|
||||
// vin启动
|
||||
@@ -4697,10 +4779,13 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
orderBasicInfo.setPlateNumber(memberPlateNumberRelation.getLicensePlateNumber());
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getStartSoc())) {
|
||||
orderBasicInfo.setStartSoc(dto.getStartSoc());
|
||||
if (StringUtils.isNotBlank(dto.getVinCode())) {
|
||||
orderBasicInfo.setVinCode(dto.getVinCode());
|
||||
}
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getStartSoc())) {
|
||||
orderBasicInfo.setStartSoc(dto.getStartSoc());
|
||||
}
|
||||
|
||||
/**
|
||||
* 预约时间
|
||||
@@ -4753,6 +4838,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
.orderDetail(orderDetail)
|
||||
.build();
|
||||
pileTransactionService.doCreateOrder(createOrderTransactionDTO);
|
||||
logger.info("订单保存成功-orderCode:{}, transactionCode:{}", orderCode, transactionCode);
|
||||
return orderBasicInfo;
|
||||
}
|
||||
|
||||
@@ -5314,5 +5400,10 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
public List<OrderBasicInfo> getOrderBasicInfoByTimeInterval(List<String> stationIds, String startTime, String endTime) {
|
||||
return orderBasicInfoMapper.getOrderBasicInfoByTimeInterval(stationIds, startTime, endTime);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SupStationStatsVO> queryOrderListByStationIdAndTime(String stationId , String startTime , String endTime) {
|
||||
return orderBasicInfoMapper.queryOrderListByStationIdAndTime(stationId, startTime, endTime);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.jsowell.pile.vo.base;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class ConfirmStartChargingMemberVO {
|
||||
/**
|
||||
* 会员ID
|
||||
*/
|
||||
private String memberId;
|
||||
|
||||
/**
|
||||
* 车牌号
|
||||
*/
|
||||
private String plateNumber;
|
||||
|
||||
/**
|
||||
* 本金金额
|
||||
*/
|
||||
private BigDecimal principalBalance;
|
||||
|
||||
/**
|
||||
* 赠送金额
|
||||
*/
|
||||
private BigDecimal giftBalance;
|
||||
|
||||
/**
|
||||
* 总账户余额
|
||||
*/
|
||||
private BigDecimal totalBalance;
|
||||
|
||||
/**
|
||||
* 平台测试员状态
|
||||
* 1-是;0-否
|
||||
*/
|
||||
private String platformTesterFlag;
|
||||
|
||||
/**
|
||||
* 站点白名单状态
|
||||
* 1-是;0-否
|
||||
*/
|
||||
private String stationWhiteListFlag;
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.jsowell.pile.vo.web;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class OrderCountByTimeVO {
|
||||
/**
|
||||
* 时间段
|
||||
*/
|
||||
private String timeSlot;
|
||||
|
||||
/**
|
||||
* 订单数量
|
||||
*/
|
||||
private Integer orderCount;
|
||||
|
||||
private String startTime;
|
||||
private String endTime;
|
||||
private Integer count ;
|
||||
}
|
||||
Reference in New Issue
Block a user