| | |
| | | package com.oying.modules.sh.service.impl; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.oying.exception.BadRequestException; |
| | | import com.oying.modules.sh.domain.OrderOperationLog; |
| | | import com.oying.modules.sh.domain.vo.OrderResponse; |
| | | import com.oying.modules.sh.mapper.OrderMapper; |
| | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public void create(OrderResponse response, OrderStatusEnum statusEnum, String cardName) { |
| | | public synchronized void create(OrderResponse response, OrderStatusEnum statusEnum, String cardName) { |
| | | String userType = ConstantsKey.BUYER; |
| | | String username = null; |
| | | Timestamp time = new Timestamp(System.currentTimeMillis()); |
| | | switch (statusEnum) { |
| | | case NINE: |
| | | if (response.getOrder().getOrderStatus().equals(OrderStatusEnum.NINE.getKey())) { |
| | | throw new BadRequestException("订单已取消"); |
| | | } |
| | | if (response.getOrder().getOrderStatus() > OrderStatusEnum.TWO.getKey()) { |
| | | throw new BadRequestException(OrderStatusEnum.getValue(response.getOrder().getOrderStatus())); |
| | | } |
| | | case ZERO: |
| | | case ONE: |
| | | case EIGHT: |
| | | case NINE: |
| | | userType = ConstantsKey.BUYER; |
| | | break; |
| | | case TWO: |
| | | username = response.getOrder().getUsername(); |
| | | OrderOperationLog log1 = new OrderOperationLog(); |
| | | log1.setOrderNum(response.getOrder().getOrderNum()); |
| | | log1.setUsername(username); |
| | | log1.setUserType(userType); |
| | | log1.setOperation(OrderStatusEnum.ONE.getKey()); |
| | | log1.setOperationDescribe(OrderStatusEnum.ONE.getValue()); |
| | | log1.setRemark(username + ":" + time + ">" + OrderStatusEnum.ONE.getValue() + ":" + response.getOrder().getOrderNum()); |
| | | Map<String, Object> map1 = new LinkedHashMap<>(); |
| | | response.getOrder().setOrderStatus(OrderStatusEnum.ONE.getKey()); |
| | | response.getOrder().setOrderStatusDescribe(OrderStatusEnum.ONE.getValue()); |
| | | map1.put("order", response.getOrder()); |
| | | map1.put("address", response.getAddress()); |
| | | log1.setSnapshotData(JSON.toJSONString(map1)); |
| | | log1.setOperationTime(time); |
| | | orderOperationLogMapper.insert(log1); |
| | | response.getOrder().setOrderStatus(OrderStatusEnum.TWO.getKey()); |
| | | response.getOrder().setOrderStatusDescribe(OrderStatusEnum.TWO.getValue()); |
| | | case FOUR: |
| | | userType = ConstantsKey.MERCHANT; |
| | | break; |
| | |
| | | case SIX: |
| | | case SEVEN: |
| | | userType = ConstantsKey.RIDER; |
| | | username = SecurityUtils.getCurrentUsername(); |
| | | OrderOperationLog log2 = new OrderOperationLog(); |
| | | log2.setOrderNum(response.getOrder().getOrderNum()); |
| | | log2.setUsername(username); |
| | | log2.setUserType(userType); |
| | | log2.setOperation(statusEnum.getKey()); |
| | | log2.setOperationDescribe(statusEnum.getValue()); |
| | | log2.setRemark(username + ":" + time + ">" + statusEnum.getValue() + ":" + response.getOrder().getOrderNum()); |
| | | Map<String, Object> map2 = new LinkedHashMap<>(); |
| | | map2.put("order", response.getOrder()); |
| | | map2.put("address", response.getAddress()); |
| | | log2.setSnapshotData(JSON.toJSONString(map2)); |
| | | log2.setOperationTime(time); |
| | | orderOperationLogMapper.insert(log2); |
| | | orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue()); |
| | | statusEnum = OrderStatusEnum.EIGHT; |
| | | break; |
| | | default: |
| | | } |
| | | String username = SecurityUtils.getCurrentUsername(); |
| | | Timestamp time = new Timestamp(System.currentTimeMillis()); |
| | | if (username == null) { |
| | | username = SecurityUtils.getCurrentUsername(); |
| | | } |
| | | OrderOperationLog resources = new OrderOperationLog(); |
| | | resources.setOrderNum(response.getOrder().getOrderNum()); |
| | | resources.setUsername(username); |
| | |
| | | resources.setOperation(statusEnum.getKey()); |
| | | resources.setOperationDescribe(statusEnum.getValue()); |
| | | resources.setRemark(username + ":" + time + ">" + statusEnum.getValue() + ":" + response.getOrder().getOrderNum()); |
| | | resources.setSnapshotData(JSON.toJSONString(response)); |
| | | Map<String, Object> map = new LinkedHashMap<>(); |
| | | map.put("order", response.getOrder()); |
| | | map.put("address", response.getAddress()); |
| | | resources.setSnapshotData(JSON.toJSONString(map)); |
| | | resources.setOperationTime(time); |
| | | orderOperationLogMapper.insert(resources); |
| | | orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue()); |