新增 占桩订单相关接口

This commit is contained in:
Lemon
2023-08-18 11:40:23 +08:00
parent 74af1bba60
commit 00cfd77eeb
8 changed files with 105 additions and 8 deletions

View File

@@ -32,7 +32,7 @@ public class OccupyOrderController extends BaseController {
private OrderPileOccupyService orderPileOccupyService; private OrderPileOccupyService orderPileOccupyService;
/** /**
* 查询站点占桩费率 * todo 查询站点占桩费率
* @param stationId * @param stationId
* @return * @return
*/ */
@@ -81,7 +81,12 @@ public class OccupyOrderController extends BaseController {
return response; return response;
} }
// 查询占桩订单列表页 /**
* 查询占桩订单列表页
* https://api.jsowellcloud.com/uniapp/occupyOrder/getOccupyOrderInfo
* @param request
* @return
*/
@GetMapping("/getOccupyOrderInfo") @GetMapping("/getOccupyOrderInfo")
public RestApiResponse<?> getOccupyOrderInfo(HttpServletRequest request) { public RestApiResponse<?> getOccupyOrderInfo(HttpServletRequest request) {
// 获取memberId // 获取memberId

View File

@@ -1,7 +1,9 @@
package com.jsowell.api.uniapp; package com.jsowell.api.uniapp;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.google.common.collect.ImmutableMap;
import com.jsowell.common.annotation.Anonymous; import com.jsowell.common.annotation.Anonymous;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.controller.BaseController;
import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.core.page.PageResponse;
import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.enums.ykc.ReturnCodeEnum;
@@ -9,6 +11,7 @@ import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.response.RestApiResponse; import com.jsowell.common.response.RestApiResponse;
import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.StringUtils;
import com.jsowell.pile.domain.ykcCommond.RemoteControlGroundLockCommand; import com.jsowell.pile.domain.ykcCommond.RemoteControlGroundLockCommand;
import com.jsowell.pile.dto.GenerateOccupyOrderDTO;
import com.jsowell.pile.dto.QueryConnectorListDTO; import com.jsowell.pile.dto.QueryConnectorListDTO;
import com.jsowell.pile.dto.QueryStationDTO; import com.jsowell.pile.dto.QueryStationDTO;
import com.jsowell.pile.service.*; import com.jsowell.pile.service.*;
@@ -45,6 +48,9 @@ public class PileController extends BaseController {
@Autowired @Autowired
private IPileMerchantInfoService pileMerchantInfoService; private IPileMerchantInfoService pileMerchantInfoService;
@Autowired
private OrderPileOccupyService orderPileOccupyService;
/** /**
* 查询充电站信息列表(主页) * 查询充电站信息列表(主页)
@@ -142,16 +148,34 @@ public class PileController extends BaseController {
} }
/** /**
* 远程遥控地锁指令 * 远程遥控地锁指令 + 生成占桩订单
* @param command * @param command
* @return * @return
*/ */
@PostMapping("/remoteGroundLock") @PostMapping("/remoteGroundLock")
public RestApiResponse<?> remoteGroundLock(@RequestBody RemoteControlGroundLockCommand command) { public RestApiResponse<?> remoteGroundLock(HttpServletRequest request, @RequestBody RemoteControlGroundLockCommand command) {
logger.info("遥控地锁指令 params:{}", JSONObject.toJSONString(command)); logger.info("遥控地锁指令 params:{}", JSONObject.toJSONString(command));
RestApiResponse<?> response = null; RestApiResponse<?> response = null;
try { try {
ykcPushCommandService.pushRemoteControlGroundLock(command); ykcPushCommandService.pushRemoteControlGroundLock(command);
if (StringUtils.equals(command.getOperate(), Constants.ONE)) {
// 升锁不生成占桩订单
return new RestApiResponse<>();
}
// 获取memberId
String memberId = getMemberIdByAuthorization(request);
if (StringUtils.isEmpty(memberId)) {
throw new BusinessException(ReturnCodeEnum.CODE_TOKEN_ERROR);
}
GenerateOccupyOrderDTO dto = new GenerateOccupyOrderDTO();
dto.setMemberId(memberId);
dto.setPileSn(command.getPileSn());
dto.setConnectorCode(command.getConnectorCode());
// 生成占桩订单(草稿单)
String occupyOrderCode = orderPileOccupyService.generateOccupyPileOrder(dto);
if (StringUtils.isNotBlank(occupyOrderCode)) {
response = new RestApiResponse<>(ImmutableMap.of("occupyOrderCode", occupyOrderCode));
}
} catch (Exception e) { } catch (Exception e) {
logger.error("遥控地锁指令 error, ", e); logger.error("遥控地锁指令 error, ", e);
response = new RestApiResponse<>(e); response = new RestApiResponse<>(e);

View File

@@ -10,6 +10,7 @@ public enum OrderPileOccupyStatusEnum {
OCCUPIED("0", "占桩中"), OCCUPIED("0", "占桩中"),
ORDER_COMPLETE("1", "订单完成"), ORDER_COMPLETE("1", "订单完成"),
ORDER_HANG_UP("2", "订单挂起"), ORDER_HANG_UP("2", "订单挂起"),
DRAFT_ORDER("9", "草稿单"),
; ;
private String code; private String code;

View File

@@ -4,12 +4,19 @@ import com.alibaba.fastjson2.JSONObject;
import com.jsowell.common.core.domain.ykc.YKCDataProtocol; import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode; import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
import com.jsowell.common.util.BytesUtil; import com.jsowell.common.util.BytesUtil;
import com.jsowell.common.util.DateUtils;
import com.jsowell.common.util.StringUtils;
import com.jsowell.common.util.YKCUtils; import com.jsowell.common.util.YKCUtils;
import com.jsowell.netty.factory.YKCOperateFactory; import com.jsowell.netty.factory.YKCOperateFactory;
import com.jsowell.pile.domain.OrderPileOccupy;
import com.jsowell.pile.service.OrderPileOccupyService;
import io.netty.channel.Channel; import io.netty.channel.Channel;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Objects;
/** /**
* 充电桩返回遥控地锁升锁与降锁数据(上行) * 充电桩返回遥控地锁升锁与降锁数据(上行)
* *
@@ -19,6 +26,11 @@ import org.springframework.stereotype.Component;
@Slf4j @Slf4j
@Component @Component
public class RemoteControlGroundLockResponseHandler extends AbstractHandler{ public class RemoteControlGroundLockResponseHandler extends AbstractHandler{
@Autowired
private OrderPileOccupyService orderPileOccupyService;
private final String type = YKCUtils.frameType2Str(YKCFrameTypeCode.CHARGING_PILE_RESPOND_GROUND_LOCK_LIFTING_CODE.getBytes()); private final String type = YKCUtils.frameType2Str(YKCFrameTypeCode.CHARGING_PILE_RESPOND_GROUND_LOCK_LIFTING_CODE.getBytes());
@Override @Override
@@ -56,7 +68,21 @@ public class RemoteControlGroundLockResponseHandler extends AbstractHandler{
log.info("===充电桩返回遥控地锁升锁与降锁数据(上行)=== result: 桩编号:{}, 枪号:{}, 地锁控制返回标志: 1 鉴权成功; 0 鉴权失败){}", log.info("===充电桩返回遥控地锁升锁与降锁数据(上行)=== result: 桩编号:{}, 枪号:{}, 地锁控制返回标志: 1 鉴权成功; 0 鉴权失败){}",
pileSn, connectorCode, controlResult); pileSn, connectorCode, controlResult);
if (StringUtils.equals(controlResult, "01")) {
// 鉴权成功
}
// 查出占桩订单将开始时间set进订单信息
OrderPileOccupy orderInfo = orderPileOccupyService.getOrderInfoByPile(pileSn, connectorCode);
if (orderInfo == null) {
return null;
}
if (Objects.isNull(orderInfo.getStartTime())) {
orderInfo.setStartTime(DateUtils.getNowDate());
// 修改数据库
orderPileOccupyService.updateByPrimaryKey(orderInfo);
}
return null; return null;
} }
} }

View File

@@ -91,4 +91,12 @@ public interface OrderPileOccupyMapper {
* @return * @return
*/ */
List<OrderPileOccupyVO> getOccupyOrderInfo(String memberId); List<OrderPileOccupyVO> getOccupyOrderInfo(String memberId);
/**
* 根据桩编号、枪口号查询最近一条占桩订单
* @param pileSn
* @param connectorCode
* @return
*/
OrderPileOccupy getOrderInfoByPile(@Param("pileSn") String pileSn, @Param("connectorCode") String connectorCode);
} }

View File

@@ -58,4 +58,12 @@ public interface OrderPileOccupyService{
* @return * @return
*/ */
List<OrderPileOccupyVO> getOccupyOrderInfo(String memberId); List<OrderPileOccupyVO> getOccupyOrderInfo(String memberId);
/**
* 根据桩编号、枪口号查询最近一条占桩订单
* @param pileSn
* @param connectorCode
* @return
*/
OrderPileOccupy getOrderInfoByPile(String pileSn, String connectorCode);
} }

View File

@@ -138,7 +138,7 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService{
String occupyCode = "OP" + IdUtils.getOrderCode(); String occupyCode = "OP" + IdUtils.getOrderCode();
orderPileOccupy.setOccupyCode(occupyCode); orderPileOccupy.setOccupyCode(occupyCode);
orderPileOccupy.setMemberId(memberId); orderPileOccupy.setMemberId(memberId);
orderPileOccupy.setStatus(Constants.ZERO); // 占桩中 orderPileOccupy.setStatus(OrderPileOccupyStatusEnum.DRAFT_ORDER.getCode()); // 占桩中
orderPileOccupy.setPayStatus(Constants.ZERO); // 未支付 orderPileOccupy.setPayStatus(Constants.ZERO); // 未支付
orderPileOccupy.setPileSn(pileSn); orderPileOccupy.setPileSn(pileSn);
PileInfoVO pileInfoVO = pileBasicInfoService.selectPileInfoBySn(pileSn); PileInfoVO pileInfoVO = pileBasicInfoService.selectPileInfoBySn(pileSn);
@@ -147,7 +147,7 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService{
} }
orderPileOccupy.setConnectorCode(connectorCode); orderPileOccupy.setConnectorCode(connectorCode);
orderPileOccupy.setPileConnectorCode(pileSn + connectorCode); orderPileOccupy.setPileConnectorCode(pileSn + connectorCode);
orderPileOccupy.setStartTime(DateUtils.getNowDate()); // orderPileOccupy.setStartTime(DateUtils.getNowDate());
orderPileOccupy.setDelFlag(DelFlagEnum.NORMAL.getValue()); orderPileOccupy.setDelFlag(DelFlagEnum.NORMAL.getValue());
orderPileOccupyMapper.insertSelective(orderPileOccupy); orderPileOccupyMapper.insertSelective(orderPileOccupy);
@@ -287,5 +287,16 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService{
return list; return list;
} }
/**
* 根据桩编号、枪口号查询最近一条占桩订单
* @param pileSn
* @param connectorCode
* @return
*/
@Override
public OrderPileOccupy getOrderInfoByPile(String pileSn, String connectorCode) {
return orderPileOccupyMapper.getOrderInfoByPile(pileSn, connectorCode);
}
} }

View File

@@ -844,7 +844,7 @@
t1.status, t1.status,
t1.station_id as stationId, t1.station_id as stationId,
t2.station_name as stationName, t2.station_name as stationName,
t1.start_time as startime, t1.start_time as startTime,
t1.end_time as endTime, t1.end_time as endTime,
t1.pay_status as payStatus, t1.pay_status as payStatus,
t1.order_amount as orderAmount t1.order_amount as orderAmount
@@ -854,4 +854,18 @@
where where
member_id = #{memberId,jdbcType=VARCHAR} member_id = #{memberId,jdbcType=VARCHAR}
</select> </select>
<select id="getOrderInfoByPile" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from
order_pile_occupy
where
pile_sn = #{pileSn,jdbcType=VARCHAR}
and
connector_code = #{connectorCode,jdbcType=VARCHAR}
order by
create_time DESC
limit 1
</select>
</mapper> </mapper>