mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-05-03 01:20:15 +08:00
新增 0xA1并充相关逻辑
This commit is contained in:
@@ -35,6 +35,21 @@ public class OrderBasicInfo {
|
||||
*/
|
||||
private String orderStatus;
|
||||
|
||||
/**
|
||||
* 订单类型(1-普通订单;2-并充订单)
|
||||
*/
|
||||
private String orderType;
|
||||
|
||||
/**
|
||||
* 并充订单序号
|
||||
*/
|
||||
private String mergeChargeNumber;
|
||||
|
||||
/**
|
||||
* 主枪枪编号
|
||||
*/
|
||||
private String mainConnectorCode;
|
||||
|
||||
/**
|
||||
* 会员id
|
||||
*/
|
||||
|
||||
@@ -88,6 +88,26 @@ public class GenerateOrderDTO extends BasicPileDTO{
|
||||
*/
|
||||
private MemberPlateNumberRelation MemberPlateNumberRelation;
|
||||
|
||||
/**
|
||||
* 鉴权成功标识
|
||||
*/
|
||||
private boolean verifyFlag;
|
||||
|
||||
/**
|
||||
* 订单类型(1-普通订单;2-并充订单)
|
||||
*/
|
||||
private String orderType;
|
||||
|
||||
/**
|
||||
* 并充序号(并充启动时有值)
|
||||
*/
|
||||
private String mergeChargeNumber;
|
||||
|
||||
/**
|
||||
* 主枪枪编码(并充启动时有值)
|
||||
*/
|
||||
private String mainConnectorCode;
|
||||
|
||||
/**
|
||||
* 车牌号码
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.jsowell.pile.dto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 鉴权并充订单DTO
|
||||
*
|
||||
* @author Lemon
|
||||
* @Date 2025/6/12 14:32:38
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class VerifyMergeChargeOrderDTO {
|
||||
// 桩编号
|
||||
private String pileSn;
|
||||
|
||||
// 枪号
|
||||
private String connectorCode;
|
||||
|
||||
// 枪口编号
|
||||
private String pileConnectorCode;
|
||||
|
||||
// 启动方式
|
||||
// 0x01 表示通过刷卡启动充电
|
||||
// 0x03 表示vin码启动充电
|
||||
private String startMode;
|
||||
|
||||
// 物理卡号
|
||||
private String physicsCard;
|
||||
|
||||
// vin
|
||||
private String vinCode;
|
||||
|
||||
// 主辅枪标记
|
||||
// 0x00 主枪
|
||||
// 0x01 辅枪
|
||||
private String connectorMark;
|
||||
|
||||
// 并充序号
|
||||
// 由桩生成:年月日时分秒,多个枪并充时上送并充序号一致,表示为同一次并充操作
|
||||
private String mergeChargeNumber;
|
||||
}
|
||||
@@ -566,4 +566,11 @@ public interface OrderBasicInfoService{
|
||||
* @param dto
|
||||
*/
|
||||
void setOrderSupplementAmount(OrderSupplementAmountDTO dto);
|
||||
|
||||
/**
|
||||
* 鉴权并充订单
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> verifyMergeChargeOrder(VerifyMergeChargeOrderDTO dto) throws Exception;
|
||||
}
|
||||
|
||||
@@ -4542,6 +4542,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
.orderCode(orderCode)
|
||||
.transactionCode(transactionCode)
|
||||
.orderStatus(OrderStatusEnum.NOT_START.getValue())
|
||||
.orderType(OrderTypeEnum.NORMAL_ORDER.getValue()) // 订单类型(1-普通订单;2-并充订单)
|
||||
.memberId(dto.getMemberId())
|
||||
.stationId(stationId)
|
||||
.merchantId(merchantId)
|
||||
@@ -4558,6 +4559,18 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
.settleAmount(BigDecimal.ZERO)
|
||||
.startType(dto.getStartType())
|
||||
.build();
|
||||
if (StringUtils.equals(OrderTypeEnum.MERGE_CHARGE_ORDER.getValue(), dto.getOrderType())) {
|
||||
// 并充订单
|
||||
orderBasicInfo.setOrderType(dto.getOrderType());
|
||||
if (StringUtils.isNotBlank(dto.getMergeChargeNumber())) {
|
||||
// 并充订单序号
|
||||
orderBasicInfo.setMergeChargeNumber(dto.getMergeChargeNumber());
|
||||
}
|
||||
if (StringUtils.isNotBlank(dto.getMainConnectorCode())) {
|
||||
// 主枪枪编号
|
||||
orderBasicInfo.setMainConnectorCode(dto.getMainConnectorCode());
|
||||
}
|
||||
}
|
||||
if (StringUtils.equals(dto.getStartMode(), StartModeEnum.AUTH_CARD.getValue())) {
|
||||
// 鉴权卡启动
|
||||
orderBasicInfo.setLogicCard(dto.getPileAuthCardInfo().getLogicCard());
|
||||
@@ -5122,5 +5135,55 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
|
||||
logger.info("设置订单待补缴金额, orderCode:{}, supplementAmount:{}, 备注:{}", dto.getOrderCode(), dto.getSupplementAmount(), dto.getRemark());
|
||||
}
|
||||
|
||||
/**
|
||||
* 鉴权并充订单
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> verifyMergeChargeOrder(VerifyMergeChargeOrderDTO dto) throws Exception {
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
|
||||
GenerateOrderDTO generateOrderDTO = new GenerateOrderDTO();
|
||||
generateOrderDTO.setPileSn(dto.getPileSn());
|
||||
generateOrderDTO.setConnectorCode(dto.getConnectorCode());
|
||||
generateOrderDTO.setMergeChargeNumber(dto.getMergeChargeNumber());
|
||||
|
||||
// 判断是否为主枪
|
||||
if (StringUtils.equals(Constants.DOUBLE_ZERO, dto.getConnectorMark())) {
|
||||
// 主枪
|
||||
generateOrderDTO.setMainConnectorCode(dto.getPileConnectorCode());
|
||||
}
|
||||
// 区分是卡还是vin充电
|
||||
String startMode = dto.getStartMode();
|
||||
if (StringUtils.equals(Constants.ZERO_ONE, startMode)) {
|
||||
// 刷卡鉴权
|
||||
// 根据卡号查询用户信息
|
||||
String physicsCard = dto.getPhysicsCard();
|
||||
PileAuthCard pileAuthCardInfo = pileAuthCardService.selectCardInfoByLogicCard(physicsCard);
|
||||
if (pileAuthCardInfo == null) {
|
||||
// 未查到此卡信息
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_THIS_CARD_HAS_NO_INFO);
|
||||
}
|
||||
generateOrderDTO.setPileAuthCardInfo(pileAuthCardInfo);
|
||||
generateOrderDTO.setStartMode(StartModeEnum.AUTH_CARD.getValue());
|
||||
generateOrderDTO.setMemberId(pileAuthCardInfo.getMemberId());
|
||||
}else if (StringUtils.equals(Constants.ZERO_THREE, startMode)) {
|
||||
// vin鉴权
|
||||
// 根据vin查询绑定用户信息
|
||||
String vinCode = dto.getVinCode();
|
||||
MemberPlateNumberRelation memberInfo = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(vinCode);
|
||||
if (memberInfo == null) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_THIS_VIN_INFO_IS_NULL);
|
||||
}
|
||||
generateOrderDTO.setMemberPlateNumberRelation(memberInfo);
|
||||
generateOrderDTO.setStartMode(StartModeEnum.VIN_CODE.getValue());
|
||||
generateOrderDTO.setMemberId(memberInfo.getMemberId());
|
||||
}
|
||||
// 鉴权通过,生成订单启动充电
|
||||
map = generateOrderByCard(generateOrderDTO);
|
||||
|
||||
return map;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -182,7 +182,10 @@
|
||||
from member_wallet_info
|
||||
where del_flag = '0'
|
||||
and member_id = #{memberId,jdbcType=INTEGER}
|
||||
and merchant_id = #{merchantId,jdbcType=VARCHAR}
|
||||
<if test="merchantId != null">
|
||||
and merchant_id = #{merchantId,jdbcType=VARCHAR}
|
||||
</if>
|
||||
|
||||
</select>
|
||||
|
||||
<select id="selectByMemberWalletList" resultMap="BaseResultMap">
|
||||
|
||||
@@ -8,6 +8,9 @@
|
||||
<result column="order_code" jdbcType="VARCHAR" property="orderCode"/>
|
||||
<result column="transaction_code" jdbcType="VARCHAR" property="transactionCode"/>
|
||||
<result column="order_status" jdbcType="VARCHAR" property="orderStatus"/>
|
||||
<result column="order_type" jdbcType="VARCHAR" property="orderType"/>
|
||||
<result column="merge_charge_number" jdbcType="VARCHAR" property="mergeChargeNumber"/>
|
||||
<result column="main_connector_code" jdbcType="VARCHAR" property="mainConnectorCode"/>
|
||||
<result column="member_id" jdbcType="VARCHAR" property="memberId"/>
|
||||
<result column="station_id" jdbcType="VARCHAR" property="stationId"/>
|
||||
<result column="merchant_id" jdbcType="VARCHAR" property="merchantId"/>
|
||||
@@ -50,7 +53,7 @@
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, order_code, transaction_code, order_status, member_id, station_id, merchant_id,
|
||||
id, order_code, transaction_code, order_status, order_type, merge_charge_number, main_connector_code, member_id, station_id, merchant_id,
|
||||
pile_sn, connector_code, pile_connector_code, logic_card, vin_code, start_mode, third_party_type,
|
||||
pay_mode, pay_status, pay_amount, pay_time, plate_number, order_amount, virtual_amount,
|
||||
group_code, discount_amount, settle_amount, actual_received_amount, remedial_amount, charge_start_time, charge_end_time,
|
||||
@@ -73,7 +76,7 @@
|
||||
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.jsowell.pile.domain.OrderBasicInfo"
|
||||
useGeneratedKeys="true">
|
||||
<!--@mbg.generated-->
|
||||
insert into order_basic_info (order_code, transaction_code, order_status,
|
||||
insert into order_basic_info (order_code, transaction_code, order_status, order_type, merge_charge_number, main_connector_code,
|
||||
member_id, station_id, merchant_id,
|
||||
pile_sn, connector_code, pile_connector_code,
|
||||
logic_card, vin_code, start_mode,
|
||||
@@ -89,6 +92,7 @@
|
||||
update_by, update_time, del_flag
|
||||
)
|
||||
values (#{orderCode,jdbcType=VARCHAR}, #{transactionCode,jdbcType=VARCHAR}, #{orderStatus,jdbcType=VARCHAR},
|
||||
#{orderType,jdbcType=VARCHAR}, #{mergeChargeNumber,jdbcType=VARCHAR}, #{mainConnectorCode,jdbcType=VARCHAR},
|
||||
#{memberId,jdbcType=VARCHAR}, #{stationId,jdbcType=VARCHAR}, #{merchantId,jdbcType=VARCHAR},
|
||||
#{pileSn,jdbcType=VARCHAR}, #{connectorCode,jdbcType=VARCHAR}, #{pileConnectorCode,jdbcType=VARCHAR},
|
||||
#{logicCard,jdbcType=VARCHAR}, #{vinCode,jdbcType=VARCHAR}, #{startMode,jdbcType=VARCHAR},
|
||||
@@ -118,6 +122,15 @@
|
||||
<if test="orderStatus != null">
|
||||
order_status,
|
||||
</if>
|
||||
<if test="orderType != null">
|
||||
order_type,
|
||||
</if>
|
||||
<if test="mergeChargeNumber != null">
|
||||
merge_charge_number,
|
||||
</if>
|
||||
<if test="mainConnectorCode != null">
|
||||
main_connector_code,
|
||||
</if>
|
||||
<if test="memberId != null">
|
||||
member_id,
|
||||
</if>
|
||||
@@ -246,6 +259,15 @@
|
||||
<if test="orderStatus != null">
|
||||
#{orderStatus,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="orderType != null">
|
||||
#{orderType,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="mergeChargeNumber != null">
|
||||
#{mergeChargeNumber,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="mainConnectorCode != null">
|
||||
#{mainConnectorCode,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="memberId != null">
|
||||
#{memberId,jdbcType=VARCHAR},
|
||||
</if>
|
||||
@@ -378,6 +400,15 @@
|
||||
<if test="orderStatus != null">
|
||||
order_status = #{orderStatus,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="orderType != null">
|
||||
order_type = #{orderType,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="mergeChargeNumber != null">
|
||||
merge_charge_number = #{mergeChargeNumber,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="mainConnectorCode != null">
|
||||
main_connector_code = #{mainConnectorCode,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="memberId != null">
|
||||
member_id = #{memberId,jdbcType=VARCHAR},
|
||||
</if>
|
||||
@@ -504,6 +535,9 @@
|
||||
set order_code = #{orderCode,jdbcType=VARCHAR},
|
||||
transaction_code = #{transactionCode,jdbcType=VARCHAR},
|
||||
order_status = #{orderStatus,jdbcType=VARCHAR},
|
||||
order_type = #{orderType,jdbcType=VARCHAR},
|
||||
merge_charge_number = #{mergeChargeNumber,jdbcType=VARCHAR},
|
||||
main_connector_code = #{mainConnectorCode,jdbcType=VARCHAR},
|
||||
member_id = #{memberId,jdbcType=VARCHAR},
|
||||
station_id = #{stationId,jdbcType=VARCHAR},
|
||||
merchant_id = #{merchantId,jdbcType=VARCHAR},
|
||||
@@ -564,6 +598,21 @@
|
||||
when id = #{item.id,jdbcType=INTEGER} then #{item.orderStatus,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="order_type = case" suffix="end,">
|
||||
<foreach collection="list" index="index" item="item">
|
||||
when id = #{item.id,jdbcType=INTEGER} then #{item.orderType,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="merge_charge_number = case" suffix="end,">
|
||||
<foreach collection="list" index="index" item="item">
|
||||
when id = #{item.id,jdbcType=INTEGER} then #{item.mergeChargeNumber,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="main_connector_code = case" suffix="end,">
|
||||
<foreach collection="list" index="index" item="item">
|
||||
when id = #{item.id,jdbcType=INTEGER} then #{item.mainConnectorCode,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="member_id = case" suffix="end,">
|
||||
<foreach collection="list" index="index" item="item">
|
||||
when id = #{item.id,jdbcType=INTEGER} then #{item.memberId,jdbcType=VARCHAR}
|
||||
@@ -790,6 +839,27 @@
|
||||
</if>
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="order_type = case" suffix="end,">
|
||||
<foreach collection="list" index="index" item="item">
|
||||
<if test="item.orderType != null">
|
||||
when id = #{item.id,jdbcType=INTEGER} then #{item.orderType,jdbcType=VARCHAR}
|
||||
</if>
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="merge_charge_number = case" suffix="end,">
|
||||
<foreach collection="list" index="index" item="item">
|
||||
<if test="item.mergeChargeNumber != null">
|
||||
when id = #{item.id,jdbcType=INTEGER} then #{item.mergeChargeNumber,jdbcType=VARCHAR}
|
||||
</if>
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="main_connector_code = case" suffix="end,">
|
||||
<foreach collection="list" index="index" item="item">
|
||||
<if test="item.mainConnectorCode != null">
|
||||
when id = #{item.id,jdbcType=INTEGER} then #{item.mainConnectorCode,jdbcType=VARCHAR}
|
||||
</if>
|
||||
</foreach>
|
||||
</trim>
|
||||
<trim prefix="member_id = case" suffix="end,">
|
||||
<foreach collection="list" index="index" item="item">
|
||||
<if test="item.memberId != null">
|
||||
@@ -1072,7 +1142,7 @@
|
||||
<insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
|
||||
<!--@mbg.generated-->
|
||||
insert into order_basic_info
|
||||
(order_code, transaction_code, order_status, member_id, station_id, merchant_id,
|
||||
(order_code, transaction_code, order_status, order_type, merge_charge_number, main_connector_code, member_id, station_id, merchant_id,
|
||||
pile_sn, connector_code, pile_connector_code, logic_card, vin_code, start_mode,
|
||||
third_party_type, pay_mode, pay_status, pay_amount, pay_time, plate_number, order_amount,
|
||||
virtual_amount, group_code, discount_amount, settle_amount, actual_received_amount, remedial_amount, charge_start_time,
|
||||
@@ -1083,7 +1153,7 @@
|
||||
values
|
||||
<foreach collection="list" item="item" separator=",">
|
||||
(#{item.orderCode,jdbcType=VARCHAR}, #{item.transactionCode,jdbcType=VARCHAR},
|
||||
#{item.orderStatus,jdbcType=VARCHAR},
|
||||
#{item.orderStatus,jdbcType=VARCHAR}, #{item.orderType,jdbcType=VARCHAR}, #{item.mergeChargeNumber,jdbcType=VARCHAR}, #{item.mainConnectorCode,jdbcType=VARCHAR},
|
||||
#{item.memberId,jdbcType=VARCHAR}, #{item.stationId,jdbcType=VARCHAR}, #{item.merchantId,jdbcType=VARCHAR},
|
||||
#{item.pileSn,jdbcType=VARCHAR}, #{item.connectorCode,jdbcType=VARCHAR},
|
||||
#{item.pileConnectorCode,jdbcType=VARCHAR},
|
||||
@@ -1120,6 +1190,9 @@
|
||||
order_code,
|
||||
transaction_code,
|
||||
order_status,
|
||||
order_type,
|
||||
merge_charge_number,
|
||||
main_connector_code,
|
||||
member_id,
|
||||
station_id,
|
||||
merchant_id,
|
||||
@@ -1168,6 +1241,9 @@
|
||||
#{orderCode,jdbcType=VARCHAR},
|
||||
#{transactionCode,jdbcType=VARCHAR},
|
||||
#{orderStatus,jdbcType=VARCHAR},
|
||||
#{orderType,jdbcType=VARCHAR},
|
||||
#{mergeChargeNumber,jdbcType=VARCHAR},
|
||||
#{mainConnectorCode,jdbcType=VARCHAR},
|
||||
#{memberId,jdbcType=VARCHAR},
|
||||
#{stationId,jdbcType=VARCHAR},
|
||||
#{merchantId,jdbcType=VARCHAR},
|
||||
@@ -1216,6 +1292,9 @@
|
||||
order_code = #{orderCode,jdbcType=VARCHAR},
|
||||
transaction_code = #{transactionCode,jdbcType=VARCHAR},
|
||||
order_status = #{orderStatus,jdbcType=VARCHAR},
|
||||
order_type = #{orderType,jdbcType=VARCHAR},
|
||||
merge_charge_number = #{mergeChargeNumber,jdbcType=VARCHAR},
|
||||
main_connector_code = #{mainConnectorCode,jdbcType=VARCHAR},
|
||||
member_id = #{memberId,jdbcType=VARCHAR},
|
||||
station_id = #{stationId,jdbcType=VARCHAR},
|
||||
merchant_id = #{merchantId,jdbcType=VARCHAR},
|
||||
@@ -1274,6 +1353,15 @@
|
||||
<if test="orderStatus != null">
|
||||
order_status,
|
||||
</if>
|
||||
<if test="orderType != null">
|
||||
order_type,
|
||||
</if>
|
||||
<if test="mergeChargeNumber != null">
|
||||
merge_charge_number,
|
||||
</if>
|
||||
<if test="mainConnectorCode != null">
|
||||
main_connector_code,
|
||||
</if>
|
||||
<if test="memberId != null">
|
||||
member_id,
|
||||
</if>
|
||||
@@ -1406,6 +1494,15 @@
|
||||
<if test="orderStatus != null">
|
||||
#{orderStatus,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="orderType != null">
|
||||
#{orderType,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="mergeChargeNumber != null">
|
||||
#{mergeChargeNumber,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="mainConnectorCode != null">
|
||||
#{mainConnectorCode,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="memberId != null">
|
||||
#{memberId,jdbcType=VARCHAR},
|
||||
</if>
|
||||
@@ -1538,6 +1635,15 @@
|
||||
<if test="orderStatus != null">
|
||||
order_status = #{orderStatus,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="orderType != null">
|
||||
order_type = #{orderType,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="mergeChargeNumber != null">
|
||||
merge_charge_number = #{mergeChargeNumber,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="mainConnectorCode != null">
|
||||
main_connector_code = #{mainConnectorCode,jdbcType=VARCHAR},
|
||||
</if>
|
||||
<if test="memberId != null">
|
||||
member_id = #{memberId,jdbcType=VARCHAR},
|
||||
</if>
|
||||
|
||||
Reference in New Issue
Block a user