From 31c295ee90ff8256ec00598fbfd59c28e69918b1 Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Fri, 18 Aug 2023 12:02:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E5=8D=A0=E6=A1=A9=E8=AE=A2?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/api/uniapp/PileController.java | 36 ++++--------- ...num.java => OccupyOrderPayStatusEnum.java} | 6 +-- ...usEnum.java => OccupyOrderStatusEnum.java} | 6 +-- ...emoteControlGroundLockResponseHandler.java | 17 ++++-- .../jsowell/pile/dto/RemoteGroundLockDTO.java | 27 ++++++++++ .../pile/service/OrderPileOccupyService.java | 7 +++ .../impl/OrderPileOccupyServiceImpl.java | 53 ++++++++++++++----- 7 files changed, 104 insertions(+), 48 deletions(-) rename jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/{OrderPileOccupyPayStatusEnum.java => OccupyOrderPayStatusEnum.java} (82%) rename jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/{OrderPileOccupyStatusEnum.java => OccupyOrderStatusEnum.java} (83%) create mode 100644 jsowell-pile/src/main/java/com/jsowell/pile/dto/RemoteGroundLockDTO.java diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PileController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PileController.java index fd8c494b3..ea7fac4e2 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PileController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/PileController.java @@ -1,22 +1,18 @@ package com.jsowell.api.uniapp; import com.alibaba.fastjson2.JSONObject; -import com.google.common.collect.ImmutableMap; import com.jsowell.common.annotation.Anonymous; -import com.jsowell.common.constant.Constants; import com.jsowell.common.core.controller.BaseController; import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.response.RestApiResponse; import com.jsowell.common.util.StringUtils; -import com.jsowell.pile.domain.ykcCommond.RemoteControlGroundLockCommand; -import com.jsowell.pile.dto.GenerateOccupyOrderDTO; import com.jsowell.pile.dto.QueryConnectorListDTO; import com.jsowell.pile.dto.QueryStationDTO; +import com.jsowell.pile.dto.RemoteGroundLockDTO; import com.jsowell.pile.service.*; import com.jsowell.pile.vo.uniapp.BillingPriceVO; -import com.jsowell.pile.vo.uniapp.GroundLockInfoVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -149,33 +145,21 @@ public class PileController extends BaseController { /** * 远程遥控地锁指令 + 生成占桩订单 - * @param command - * @return */ @PostMapping("/remoteGroundLock") - public RestApiResponse remoteGroundLock(HttpServletRequest request, @RequestBody RemoteControlGroundLockCommand command) { - logger.info("遥控地锁指令 params:{}", JSONObject.toJSONString(command)); + public RestApiResponse remoteGroundLock(HttpServletRequest request, @RequestBody RemoteGroundLockDTO dto) { + logger.info("遥控地锁指令 params:{}", JSONObject.toJSONString(dto)); RestApiResponse response = null; try { - ykcPushCommandService.pushRemoteControlGroundLock(command); - if (StringUtils.equals(command.getOperate(), Constants.ONE)) { - // 升锁不生成占桩订单 - return new RestApiResponse<>(); + // 校验参数 + if (StringUtils.isBlank(dto.getPileSn()) || StringUtils.isBlank(dto.getConnectorCode()) + || StringUtils.isBlank(dto.getOperate())) { + throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); } // 获取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)); - } + dto.setMemberId(getMemberIdByAuthorization(request)); + orderPileOccupyService.remoteGroundLock(dto); + response = new RestApiResponse<>(); } catch (Exception e) { logger.error("遥控地锁指令 error, ", e); response = new RestApiResponse<>(e); diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OrderPileOccupyPayStatusEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OccupyOrderPayStatusEnum.java similarity index 82% rename from jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OrderPileOccupyPayStatusEnum.java rename to jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OccupyOrderPayStatusEnum.java index d184bcc2b..22863fb64 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OrderPileOccupyPayStatusEnum.java +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OccupyOrderPayStatusEnum.java @@ -6,7 +6,7 @@ package com.jsowell.common.enums.uniapp; * @author Lemon * @Date 2023/8/18 9:49 */ -public enum OrderPileOccupyPayStatusEnum { +public enum OccupyOrderPayStatusEnum { UN_PAY("0", "未支付"), PAYMENT_COMPLETION("1", "支付完成"), NO_PAYMENT_REQUIRED("2", "无需支付"), @@ -31,7 +31,7 @@ public enum OrderPileOccupyPayStatusEnum { this.value = value; } - OrderPileOccupyPayStatusEnum(String code, String value) { + OccupyOrderPayStatusEnum(String code, String value) { this.code = code; this.value = value; } @@ -42,7 +42,7 @@ public enum OrderPileOccupyPayStatusEnum { * @return */ public static String getValueByCode(String code) { - for (OrderPileOccupyPayStatusEnum item : OrderPileOccupyPayStatusEnum.values()) { + for (OccupyOrderPayStatusEnum item : OccupyOrderPayStatusEnum.values()) { if (item.getCode().equals(code)) { return item.getValue(); } diff --git a/jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OrderPileOccupyStatusEnum.java b/jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OccupyOrderStatusEnum.java similarity index 83% rename from jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OrderPileOccupyStatusEnum.java rename to jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OccupyOrderStatusEnum.java index 71c2e5cae..8d209b11f 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OrderPileOccupyStatusEnum.java +++ b/jsowell-common/src/main/java/com/jsowell/common/enums/uniapp/OccupyOrderStatusEnum.java @@ -6,7 +6,7 @@ package com.jsowell.common.enums.uniapp; * @author Lemon * @Date 2023/8/18 9:41 */ -public enum OrderPileOccupyStatusEnum { +public enum OccupyOrderStatusEnum { OCCUPIED("0", "占桩中"), ORDER_COMPLETE("1", "订单完成"), ORDER_HANG_UP("2", "订单挂起"), @@ -32,7 +32,7 @@ public enum OrderPileOccupyStatusEnum { this.value = value; } - OrderPileOccupyStatusEnum(String code, String value) { + OccupyOrderStatusEnum(String code, String value) { this.code = code; this.value = value; } @@ -43,7 +43,7 @@ public enum OrderPileOccupyStatusEnum { * @return */ public static String getValueByCode(String code) { - for (OrderPileOccupyStatusEnum item : OrderPileOccupyStatusEnum.values()) { + for (OccupyOrderStatusEnum item : OccupyOrderStatusEnum.values()) { if (item.getCode().equals(code)) { return item.getValue(); } diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/RemoteControlGroundLockResponseHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/RemoteControlGroundLockResponseHandler.java index 6f7dea0bf..3fe10e445 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/RemoteControlGroundLockResponseHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/RemoteControlGroundLockResponseHandler.java @@ -3,6 +3,7 @@ package com.jsowell.netty.handler; import com.alibaba.fastjson2.JSONObject; import com.jsowell.common.core.domain.ykc.YKCDataProtocol; import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode; +import com.jsowell.common.enums.uniapp.OccupyOrderStatusEnum; import com.jsowell.common.util.BytesUtil; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; @@ -71,18 +72,28 @@ public class RemoteControlGroundLockResponseHandler extends AbstractHandler{ if (StringUtils.equals(controlResult, "01")) { // 鉴权成功 + updateOrder(pileSn, connectorCode); } + return null; + } + + /** + * 降锁成功的时候调用 + * @param pileSn + * @param connectorCode + */ + private void updateOrder(String pileSn, String connectorCode) { // 查出占桩订单,将开始时间set进订单信息 OrderPileOccupy orderInfo = orderPileOccupyService.getOrderInfoByPile(pileSn, connectorCode); + if (orderInfo == null) { - return null; + return; } if (Objects.isNull(orderInfo.getStartTime())) { + orderInfo.setStatus(OccupyOrderStatusEnum.OCCUPIED.getValue()); orderInfo.setStartTime(DateUtils.getNowDate()); // 修改数据库 orderPileOccupyService.updateByPrimaryKey(orderInfo); } - - return null; } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/RemoteGroundLockDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/RemoteGroundLockDTO.java new file mode 100644 index 000000000..7de435dae --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/RemoteGroundLockDTO.java @@ -0,0 +1,27 @@ +package com.jsowell.pile.dto; + +import lombok.Data; + +@Data +public class RemoteGroundLockDTO { + /** + * 桩编号 + */ + private String pileSn; + + /** + * 枪口编号 + */ + private String connectorCode; + + /** + * 地锁操作 + * 0-降 1-升 + */ + private String operate; + + /** + * 会员id + */ + private String memberId; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderPileOccupyService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderPileOccupyService.java index 02231f390..e3739bb46 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderPileOccupyService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/OrderPileOccupyService.java @@ -4,6 +4,7 @@ import com.jsowell.pile.domain.OrderPileOccupy; import com.jsowell.pile.dto.PayOrderDTO; import com.jsowell.pile.dto.GenerateOccupyOrderDTO; import com.jsowell.pile.dto.QueryOccupyOrderDTO; +import com.jsowell.pile.dto.RemoteGroundLockDTO; import com.jsowell.pile.vo.uniapp.OrderPileOccupyVO; import java.util.List; @@ -71,4 +72,10 @@ public interface OrderPileOccupyService{ * @return */ OrderPileOccupy getOrderInfoByPile(String pileSn, String connectorCode); + + /** + * 控制地锁方法 + * @param dto + */ + void remoteGroundLock(RemoteGroundLockDTO dto); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPileOccupyServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPileOccupyServiceImpl.java index 3cb50cd34..7cad100cc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPileOccupyServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderPileOccupyServiceImpl.java @@ -5,20 +5,18 @@ import com.jsowell.adapay.service.AdapayService; import com.jsowell.common.constant.Constants; import com.jsowell.common.enums.DelFlagEnum; import com.jsowell.common.enums.MemberWalletEnum; +import com.jsowell.common.enums.uniapp.OccupyOrderPayStatusEnum; +import com.jsowell.common.enums.uniapp.OccupyOrderStatusEnum; import com.jsowell.common.enums.ykc.OrderPayModeEnum; import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.exception.BusinessException; -import com.jsowell.common.enums.uniapp.OrderPileOccupyPayStatusEnum; -import com.jsowell.common.enums.uniapp.OrderPileOccupyStatusEnum; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.PageUtils; import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.id.IdUtils; import com.jsowell.pile.domain.OrderPileOccupy; -import com.jsowell.pile.dto.PayOrderDTO; -import com.jsowell.pile.dto.GenerateOccupyOrderDTO; -import com.jsowell.pile.dto.QueryOccupyOrderDTO; -import com.jsowell.pile.dto.QueryOrderDTO; +import com.jsowell.pile.domain.ykcCommond.RemoteControlGroundLockCommand; +import com.jsowell.pile.dto.*; import com.jsowell.pile.mapper.OrderPileOccupyMapper; import com.jsowell.pile.service.*; import com.jsowell.pile.vo.base.PileInfoVO; @@ -28,6 +26,7 @@ import com.jsowell.pile.vo.web.BillingTemplateVO; import com.jsowell.pile.vo.web.OrderListVO; import com.jsowell.pile.vo.web.UpdateMemberBalanceDTO; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -58,6 +57,12 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService { @Resource private IMemberBasicInfoService memberBasicInfoService; + @Autowired + private YKCPushCommandService ykcPushCommandService; + + @Autowired + private OrderPileOccupyService orderPileOccupyService; + @Override public int deleteByPrimaryKey(Integer id) { return orderPileOccupyMapper.deleteByPrimaryKey(id); @@ -154,7 +159,7 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService { String occupyCode = "OP" + IdUtils.getOrderCode(); orderPileOccupy.setOccupyCode(occupyCode); orderPileOccupy.setMemberId(memberId); - orderPileOccupy.setStatus(OrderPileOccupyStatusEnum.DRAFT_ORDER.getCode()); // 占桩中 + orderPileOccupy.setStatus(OccupyOrderStatusEnum.DRAFT_ORDER.getCode()); // 占桩中 orderPileOccupy.setPayStatus(Constants.ZERO); // 未支付 orderPileOccupy.setPileSn(pileSn); PileInfoVO pileInfoVO = pileBasicInfoService.selectPileInfoBySn(pileSn); @@ -298,9 +303,9 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService { List list = orderPileOccupyMapper.getOccupyOrderInfo(memberId); for (OrderPileOccupyVO orderPileOccupyVO : list) { // 订单状态 - orderPileOccupyVO.setStatus(OrderPileOccupyStatusEnum.getValueByCode(orderPileOccupyVO.getStatus())); + orderPileOccupyVO.setStatus(OccupyOrderStatusEnum.getValueByCode(orderPileOccupyVO.getStatus())); // 支付状态 - orderPileOccupyVO.setPayStatus(OrderPileOccupyPayStatusEnum.getValueByCode(orderPileOccupyVO.getPayStatus())); + orderPileOccupyVO.setPayStatus(OccupyOrderPayStatusEnum.getValueByCode(orderPileOccupyVO.getPayStatus())); } return list; } @@ -315,6 +320,28 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService { public OrderPileOccupy getOrderInfoByPile(String pileSn, String connectorCode) { return orderPileOccupyMapper.getOrderInfoByPile(pileSn, connectorCode); } + + @Override + public void remoteGroundLock(RemoteGroundLockDTO 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)) { + // 生成占桩订单 + GenerateOccupyOrderDTO generateOccupyOrderDTO = new GenerateOccupyOrderDTO(); + generateOccupyOrderDTO.setMemberId(dto.getMemberId()); + generateOccupyOrderDTO.setPileSn(dto.getPileSn()); + generateOccupyOrderDTO.setConnectorCode(dto.getConnectorCode()); + // 生成占桩订单(草稿单) + orderPileOccupyService.generateOccupyPileOrder(generateOccupyOrderDTO); + } + } + /* * 支付占桩订单 * @@ -367,16 +394,16 @@ public class OrderPileOccupyServiceImpl implements OrderPileOccupyService { // 更新占桩订单状态 OrderPileOccupy orderPileOccupy = queryByOccupyCode(dto.getOrderCode()); - orderPileOccupy.setStatus(OrderPileOccupyStatusEnum.ORDER_COMPLETE.getValue()); - orderPileOccupy.setPayStatus(OrderPileOccupyPayStatusEnum.PAYMENT_COMPLETION.getValue()); + orderPileOccupy.setStatus(OccupyOrderStatusEnum.ORDER_COMPLETE.getValue()); + orderPileOccupy.setPayStatus(OccupyOrderPayStatusEnum.PAYMENT_COMPLETION.getValue()); updateByPrimaryKeySelective(orderPileOccupy); } private void whiteListPayOccupyPileOrder(PayOrderDTO dto) { // 更新占桩订单状态 OrderPileOccupy orderPileOccupy = queryByOccupyCode(dto.getOrderCode()); - orderPileOccupy.setStatus(OrderPileOccupyStatusEnum.ORDER_COMPLETE.getValue()); - orderPileOccupy.setPayStatus(OrderPileOccupyPayStatusEnum.NO_PAYMENT_REQUIRED.getValue()); + orderPileOccupy.setStatus(OccupyOrderStatusEnum.ORDER_COMPLETE.getValue()); + orderPileOccupy.setPayStatus(OccupyOrderPayStatusEnum.NO_PAYMENT_REQUIRED.getValue()); updateByPrimaryKeySelective(orderPileOccupy); } }