This commit is contained in:
Lemon
2024-09-03 08:50:14 +08:00
43 changed files with 2604 additions and 1023 deletions

View File

@@ -1,6 +1,5 @@
package com.jsowell.pile.service.impl;
import com.alibaba.fastjson2.JSON;
import com.google.common.collect.Maps;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.core.redis.RedisCache;
@@ -25,17 +24,22 @@ public class AdapayCallbackRecordServiceImpl implements AdapayCallbackRecordServ
@Autowired
private RedisCache redisCache;
/**
* 接收到支付回调记录保存到数据库
* paymentId添加了唯一约束, 如果存在则报错
* @param callbackRecord
*/
@Override
public void saveAdapayCallbackRecord(AdapayCallbackRecord callbackRecord) {
AdapayCallbackRecord adapayCallbackRecord = selectByPaymentId(callbackRecord.getPaymentId());
if (adapayCallbackRecord != null) {
return;
}
try {
adapayCallbackRecordMapper.insert(callbackRecord);
} catch (Exception e) {
log.error("saveAdapayCallbackRecord:{}, error", JSON.toJSONString(callbackRecord), e);
}
// AdapayCallbackRecord adapayCallbackRecord = selectByPaymentId(callbackRecord.getPaymentId());
// if (adapayCallbackRecord != null) {
// return;
// }
// try {
// } catch (Exception e) {
// log.error("saveAdapayCallbackRecord:{}, error", JSON.toJSONString(callbackRecord), e);
// }
adapayCallbackRecordMapper.insert(callbackRecord);
}
/**

View File

@@ -3872,7 +3872,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService {
.payMode(OrderPayRecordEnum.WHITELIST_PAYMENT.getValue())
.payAmount(payAmount)
.acquirer(AcquirerEnum.LOCAL.getValue())
.createBy("system")
.createBy(Constants.SYSTEM)
.createTime(DateUtils.getNowDate())
.delFlag(DelFlagEnum.NORMAL.getValue())
.build();

View File

@@ -11,13 +11,11 @@ import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.DelFlagEnum;
import com.jsowell.common.enums.lianlian.LianLianPileStatusEnum;
import com.jsowell.common.enums.ykc.PileConnectorDataBaseStatusEnum;
import com.jsowell.common.enums.ykc.PileConnectorStatusEnum;
import com.jsowell.common.enums.ykc.PileStatusEnum;
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.enums.ykc.*;
import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.*;
import com.jsowell.pile.domain.*;
import com.jsowell.pile.domain.ebike.deviceupload.EBikeMessageCmd20;
import com.jsowell.pile.dto.*;
import com.jsowell.pile.mapper.PileBasicInfoMapper;
import com.jsowell.pile.service.*;
@@ -27,6 +25,8 @@ import com.jsowell.pile.thirdparty.ConnectorInfo;
import com.jsowell.pile.thirdparty.EquipmentInfo;
import com.jsowell.pile.thirdparty.ZDLConnectorInfo;
import com.jsowell.pile.thirdparty.ZDLEquipmentInfo;
import com.jsowell.pile.transaction.dto.PileTransactionDTO;
import com.jsowell.pile.transaction.service.TransactionService;
import com.jsowell.pile.util.UserUtils;
import com.jsowell.pile.vo.base.MerchantInfoVO;
import com.jsowell.pile.vo.base.PileInfoVO;
@@ -83,6 +83,9 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
@Autowired
private RedisCache redisCache;
@Autowired
private TransactionService pileTransactionService;
@Value("${baseurl.prefix}")
private String BASE_URL_PREFIX;
@@ -1249,4 +1252,59 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
wxAppletRemoteService.reservationStartupResultSendMsg(memberVO.getOpenId(), startTime, endTime, startUpResult, failReason);
}
}
/**
* 注册电单车桩
* @param message
*/
@Override
public void registrationEBikePile(EBikeMessageCmd20 message) {
// 根据物理id(桩编号)查询桩信息
PileBasicInfo pileBasicInfo = this.selectPileBasicInfoBySN(message.getPhysicalId() + "");
if (pileBasicInfo != null) {
return;
}
List<PileBasicInfo> basicInfoList = Lists.newArrayList();
List<PileConnectorInfo> connectorInfoList = Lists.newArrayList();
// 组装pile_basic_info表数据
PileBasicInfo basicInfo = new PileBasicInfo();
// 桩编号
String sn = message.getPhysicalId() + "";
basicInfo.setSn(sn);
basicInfo.setBusinessType(Constants.ONE); // 经营类型 1-运营桩2-个人桩
basicInfo.setSoftwareProtocol(Constants.THREE); // 软件协议
basicInfo.setMerchantId(Long.valueOf("1")); // 运营商id 默认1
basicInfo.setStationId(Long.valueOf("2")); // 站点id
basicInfo.setModelId(null); // 型号id
basicInfo.setProductionDate(new Date()); // 生产日期
basicInfo.setLicenceId(null); // TODO 证书编号
basicInfo.setSimId(null); // TODO sim卡
basicInfo.setRemark(null); // 备注
basicInfo.setCreateBy(Constants.SYSTEM); // 创建人
basicInfo.setDelFlag(DelFlagEnum.NORMAL.getValue()); // 删除标识
basicInfoList.add(basicInfo);
EBikeMessageCmd20.DeviceRegister deviceRegister = message.getDeviceRegister();
int portNumber = deviceRegister.getPortNumber();
PileConnectorInfo connectorInfo;
for (int i = 1; i < portNumber + 1; i++) {
// 组装pile_connector_info表数据
connectorInfo = new PileConnectorInfo();
connectorInfo.setPileSn(sn); // sn号
String connectorCode = String.format("%1$02d", i);
connectorInfo.setPileConnectorCode(sn + connectorCode); // 枪口号
connectorInfo.setStatus(Constants.ZERO); //状态,默认 0-离网
connectorInfo.setCreateBy(Constants.SYSTEM); // 创建人
connectorInfo.setDelFlag(DelFlagEnum.NORMAL.getValue()); // 删除标识
connectorInfoList.add(connectorInfo);
}
// 批量入库
PileTransactionDTO transactionDTO = PileTransactionDTO.builder()
.pileBasicInfoList(basicInfoList)
.pileConnectorInfoList(connectorInfoList)
.build();
pileTransactionService.doCreatePileTransaction(transactionDTO);
}
}

View File

@@ -455,6 +455,17 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
infoVO.setRatedPower(pileModelInfoVO.getRatedPower());
infoVO.setRatedCurrent(pileModelInfoVO.getRatedCurrent());
infoVO.setRatedVoltage(pileModelInfoVO.getRatedVoltage());
String chargePortType;
if (StringUtils.equals(Constants.TWO, pileModelInfoVO.getChargerPileType())) {
chargePortType = Constants.THREE;
} else {
if (StringUtils.equals(Constants.ONE, pileModelInfoVO.getSpeedType())) {
chargePortType = Constants.ONE;
} else {
chargePortType = Constants.TWO;
}
}
infoVO.setChargePortType(chargePortType);
}
connectorInfoList.add(infoVO);
}
@@ -682,14 +693,14 @@ public class PileConnectorInfoServiceImpl implements PileConnectorInfoService {
* @return true离线
*/
public boolean checkPileOffLine(String pileSn) {
// 获取桩最后连接时间,最后连接到平台的时间在1分钟之前,判定为离线
// 获取桩最后连接时间,最后连接到平台的时间在3分钟之前,判定为离线
String lastConnectionTime = redisCache.getCacheObject(CacheConstants.PILE_LAST_CONNECTION + pileSn);
if (StringUtils.isBlank(lastConnectionTime)) {
// 没有最后连接时间,返回离线
return true;
}
long l = DateUtils.intervalTime(lastConnectionTime, DateUtils.getDateTime());
return l >= 1L;
return l > 3L;
}
/**

View File

@@ -5,7 +5,6 @@ import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.PileMemberRelation;
import com.jsowell.pile.mapper.PileMemberRelationMapper;
import com.jsowell.pile.service.PileConnectorInfoService;
import com.jsowell.pile.service.PileMemberRelationService;
import com.jsowell.pile.vo.uniapp.customer.MemberVO;
import org.springframework.beans.factory.annotation.Autowired;
@@ -24,8 +23,6 @@ public class PileMemberRelationServiceImpl implements PileMemberRelationService
@Autowired
private PileMemberRelationMapper pileMemberRelationMapper;
@Autowired
private PileConnectorInfoService pileConnectorInfoService;
/**
* 查询桩与用户绑定关系
*

View File

@@ -581,7 +581,7 @@ public class PileReservationInfoServiceImpl implements PileReservationInfoServic
pileReservationInfo.setFreq("daily");
pileReservationInfo.setStatus(Constants.ZERO);
pileReservationInfo.setCreateTime(DateUtils.getNowDate());
pileReservationInfo.setCreateBy("system");
pileReservationInfo.setCreateBy(Constants.SYSTEM);
pileReservationInfo.setDelFlag(DelFlagEnum.NORMAL.getValue());
pileReservationInfoMapper.insert(pileReservationInfo);
log.info("未查询到个人桩预约信息, 初始化个人桩预约信息:{}", JSON.toJSONString(pileReservationInfo));