新增 交易记录报文中添加 绑定优惠券逻辑

This commit is contained in:
Lemon
2023-08-25 17:11:25 +08:00
parent 18548fb83d
commit 8fcffc1aa4
4 changed files with 68 additions and 2 deletions

View File

@@ -8,7 +8,9 @@ import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.ykc.OrderStatusEnum;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.enums.ykc.YKCChargingStopReasonEnum;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.BytesUtil;
import com.jsowell.common.util.Cp56Time2a.Cp56Time2aUtil;
import com.jsowell.common.util.DateUtils;
@@ -18,14 +20,19 @@ import com.jsowell.common.util.id.IdUtils;
import com.jsowell.netty.factory.YKCOperateFactory;
import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.ThirdPartyStationRelation;
import com.jsowell.pile.domain.ThirdpartyParkingConfig;
import com.jsowell.pile.dto.lutongyunting.BindCouponDTO;
import com.jsowell.pile.service.*;
import com.jsowell.pile.vo.base.ThirdPartyStationRelationVO;
import com.jsowell.pile.vo.web.PileStationVO;
import com.jsowell.thirdparty.lianlian.service.LianLianService;
import com.jsowell.thirdparty.lutongyunting.service.LTYTService;
import io.netty.channel.Channel;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Objects;
@@ -74,6 +81,15 @@ public class TransactionRecordsRequestHandler extends AbstractHandler {
@Autowired
private IMemberPlateNumberRelationService memberPlateNumberRelationService;
@Autowired
private IPileStationInfoService pileStationInfoService;
@Autowired
private LTYTService ltytService;
@Autowired
private IThirdPartyParkingConfigService thirdPartyParkingConfigService;
public static void main(String[] args) {
// 获取消息体
String msg = "000000000000000000000000000000008823000000030601a08c2e0d0404170000380d0404170000000000000000000000000000000000000000000000000000000000000000400d0300ee250000ee250000c84b000000000000000000000000000000000000e0bb040000cee1040000ee250000ee250000c84b00000000000000000000000000000000000000010000380d04041745a511101970000000";
@@ -614,8 +630,8 @@ public class TransactionRecordsRequestHandler extends AbstractHandler {
log.error("结算订单发生异常", e);
}
// 联联平台 推送订单信息 notification_orderInfo
try {
// 联联平台 推送订单信息 notification_orderInfo
// 查询该站点是否推送联联平台
ThirdPartyStationRelation relation = new ThirdPartyStationRelation();
relation.setStationId(Long.parseLong(orderBasicInfo.getStationId()));
@@ -636,5 +652,49 @@ public class TransactionRecordsRequestHandler extends AbstractHandler {
orderBasicInfoService.saveAbnormalOrder(data);
log.warn("充电桩传来的交易记录,根据交易流水号:{}查询不到订单,判定为可疑账单", transactionCode);
}
// 给车辆绑定优惠券
try {
String bindResult = bindCoupon(orderBasicInfo);
log.info("绑定优惠券 订单信息:{}, result;{}", orderBasicInfo, bindResult);
}catch (BusinessException e) {
log.error("绑定优惠券 error, code:{}, msg:{}", e.getCode(), e.getMessage());
} catch (Exception e) {
log.error("绑定优惠券 error,", e);
}
}
/**
* 绑定优惠券
* @param orderBasicInfo
* @return
* @throws UnsupportedEncodingException
*/
private String bindCoupon(OrderBasicInfo orderBasicInfo) throws UnsupportedEncodingException {
if (orderBasicInfo == null) {
return null;
}
// 如果该站点的停车场优惠券信息配置不为空,则需绑定一张优惠券
String stationId = orderBasicInfo.getStationId();
PileStationVO stationInfo = pileStationInfoService.getStationInfo(stationId);
if (StringUtils.isBlank(stationInfo.getParkingId())) {
return "该订单无需绑定优惠券";
}
ThirdpartyParkingConfig parkingInfo = thirdPartyParkingConfigService.selectByPrimaryKey(Integer.parseInt(stationInfo.getParkingId()));
if (parkingInfo == null) {
throw new BusinessException(ReturnCodeEnum.CODE_QUERY_PARKING_INFO_IS_NULL);
}
BindCouponDTO dto = BindCouponDTO.builder()
.appId(parkingInfo.getAppId())
.merchantId(parkingInfo.getParkingMerchantId())
.couponId(parkingInfo.getCouponId())
.secretKey(parkingInfo.getSecretKey())
.plateNumber(orderBasicInfo.getPlateNumber())
.plateColor(5) // 5-绿牌车
.build();
// 绑定优惠券
return ltytService.bindCoupon(dto);
}
}