mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
update 地锁逻辑修改
This commit is contained in:
@@ -4,8 +4,10 @@ import com.alibaba.fastjson2.JSON;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.jsowell.adapay.service.AdapayService;
|
||||
import com.jsowell.common.constant.CacheConstants;
|
||||
import com.jsowell.common.constant.Constants;
|
||||
import com.jsowell.common.core.page.PageResponse;
|
||||
import com.jsowell.common.core.redis.RedisCache;
|
||||
import com.jsowell.common.enums.DelFlagEnum;
|
||||
import com.jsowell.common.enums.MemberWalletEnum;
|
||||
import com.jsowell.common.enums.uniapp.OccupyOrderPayStatusEnum;
|
||||
@@ -70,6 +72,9 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService {
|
||||
@Autowired
|
||||
private OrderPileOccupyService orderPileOccupyService;
|
||||
|
||||
@Autowired
|
||||
private RedisCache redisCache;
|
||||
|
||||
@Override
|
||||
public int deleteByPrimaryKey(Integer id) {
|
||||
return orderPileOccupyMapper.deleteByPrimaryKey(id);
|
||||
@@ -166,6 +171,13 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService {
|
||||
String memberId = dto.getMemberId();
|
||||
String pileSn = dto.getPileSn();
|
||||
String connectorCode = dto.getConnectorCode();
|
||||
|
||||
String redisKey = CacheConstants.GROUND_LOCK_OCCUPY_ORDER + pileSn + connectorCode;
|
||||
String cacheObject = redisCache.getCacheObject(redisKey);
|
||||
if (StringUtils.isNotBlank(cacheObject)) {
|
||||
throw new BusinessException(ReturnCodeEnum.CODE_HAS_OCCUPY_PILE_ORDER_ERROR);
|
||||
}
|
||||
|
||||
// 创建占桩订单
|
||||
OrderPileOccupy orderPileOccupy = new OrderPileOccupy();
|
||||
String occupyCode = "OP" + IdUtils.getOrderCode();
|
||||
@@ -184,6 +196,9 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService {
|
||||
orderPileOccupy.setDelFlag(DelFlagEnum.NORMAL.getValue());
|
||||
orderPileOccupyMapper.insertSelective(orderPileOccupy);
|
||||
|
||||
// 放缓存
|
||||
redisCache.setCacheObject(redisKey, occupyCode, CacheConstants.cache_expire_time_10d);
|
||||
|
||||
return orderPileOccupy.getOccupyCode();
|
||||
}
|
||||
|
||||
@@ -381,27 +396,29 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService {
|
||||
* @return
|
||||
*/
|
||||
public OrderPileOccupy getOccupiedOrder(String pileSn, String connectorCode) {
|
||||
List<OrderPileOccupy> list = orderPileOccupyMapper.queryOccupiedOrder(pileSn, connectorCode);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
return null;
|
||||
OrderPileOccupy result = null;
|
||||
|
||||
// 查缓存中的占桩订单编号
|
||||
String redisKey = CacheConstants.GROUND_LOCK_OCCUPY_ORDER + pileSn + connectorCode;
|
||||
String orderCode = redisCache.getCacheObject(redisKey);
|
||||
if (StringUtils.isNotBlank(orderCode)) {
|
||||
result = queryByOccupyCode(orderCode);
|
||||
} else {
|
||||
List<OrderPileOccupy> list = orderPileOccupyMapper.queryOccupiedOrder(pileSn, connectorCode);
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
if (list.size() > 1) {
|
||||
List<Integer> collect = list.stream().map(OrderPileOccupy::getId).collect(Collectors.toList());
|
||||
log.info("根据pileSn:{}, connectorCode:{}, 查询出多条占桩中的占桩订单, ids:{}", pileSn, connectorCode, collect);
|
||||
}
|
||||
result = list.get(0);
|
||||
}
|
||||
}
|
||||
if (list.size() > 1) {
|
||||
List<Integer> collect = list.stream().map(OrderPileOccupy::getId).collect(Collectors.toList());
|
||||
log.info("根据pileSn:{}, connectorCode:{}, 查询出多条占桩中的占桩订单, ids:{}", pileSn, connectorCode, collect);
|
||||
}
|
||||
return list.get(0);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remoteGroundLock(RemoteGroundLockDTO dto) {
|
||||
log.info("控制地锁升降并生成占桩订单 params:{}", JSON.toJSONString(dto));
|
||||
// 控制地锁升降
|
||||
RemoteControlGroundLockCommand command = new RemoteControlGroundLockCommand();
|
||||
command.setPileSn(dto.getPileSn());
|
||||
command.setConnectorCode(dto.getConnectorCode());
|
||||
command.setOperate(dto.getOperate());
|
||||
ykcPushCommandService.pushRemoteControlGroundLock(command);
|
||||
|
||||
// 如果是降锁生成占桩订单
|
||||
if (StringUtils.equals(dto.getOperate(), Constants.ZERO)) {
|
||||
// 生成占桩订单
|
||||
@@ -412,6 +429,13 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService {
|
||||
// 生成占桩订单(草稿单)
|
||||
orderPileOccupyService.generateOccupyPileOrder(generateOccupyOrderDTO);
|
||||
}
|
||||
|
||||
// 控制地锁升降
|
||||
RemoteControlGroundLockCommand command = new RemoteControlGroundLockCommand();
|
||||
command.setPileSn(dto.getPileSn());
|
||||
command.setConnectorCode(dto.getConnectorCode());
|
||||
command.setOperate(dto.getOperate());
|
||||
ykcPushCommandService.pushRemoteControlGroundLock(command);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -465,9 +489,11 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService {
|
||||
// 查询草稿状态的占桩订单
|
||||
OrderPileOccupy draftOccupyOrder = getDraftOccupyOrder(pileSn, connectorCode);
|
||||
// 关闭草稿订单
|
||||
draftOccupyOrder.setStatus(Constants.ONE);
|
||||
draftOccupyOrder.setPayStatus(Constants.TWO);
|
||||
updateByPrimaryKey(draftOccupyOrder);
|
||||
if (draftOccupyOrder != null) {
|
||||
draftOccupyOrder.setStatus(Constants.ONE);
|
||||
draftOccupyOrder.setPayStatus(Constants.TWO);
|
||||
updateByPrimaryKey(draftOccupyOrder);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user