diff --git a/nxhs-service/src/main/java/cc/yunxi/config/WebMvcConfig.java b/nxhs-service/src/main/java/cc/yunxi/config/WebMvcConfig.java index cf94495..a0b1813 100644 --- a/nxhs-service/src/main/java/cc/yunxi/config/WebMvcConfig.java +++ b/nxhs-service/src/main/java/cc/yunxi/config/WebMvcConfig.java @@ -51,6 +51,7 @@ public class WebMvcConfig implements WebMvcConfigurer { "/qrcode/**.txt", "/wx/**",//微信消息推送验证 "/wx-pay/**",//微信支付 + "/recycle-order/notice",//接单通知 "/webSocketServer/**",//socket通信 "/doc.html", //设备柜接口 diff --git a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java index c14d82c..6d35373 100644 --- a/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java +++ b/nxhs-service/src/main/java/cc/yunxi/controller/RecycleOrderController.java @@ -7,6 +7,7 @@ import cc.yunxi.common.exception.BizIllegalException; import cc.yunxi.common.utils.BeanUtils; import cc.yunxi.common.utils.CollUtils; import cc.yunxi.common.utils.CommonUtil; +import cc.yunxi.domain.vo.socket.NoticeVo; import cc.yunxi.domain.dto.LocationDTO; import cc.yunxi.domain.dto.UserDTO; import cc.yunxi.domain.po.*; @@ -31,9 +32,9 @@ import cc.yunxi.enums.OrderTypeEnum; import cc.yunxi.enums.UserTypeEnum; import cc.yunxi.service.*; import cc.yunxi.utils.UserContext; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.log.Log; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -112,9 +113,10 @@ public class RecycleOrderController { orderCreateVO.setClientId(userDTO.getId()); String orderId = recycleOrderService.createOrder(orderCreateVO); - Enterprise enterprise = enterpriseService.getById(orderCreateVO.getRecycleStationId()); + RecycleStation station = recycleStationService.getStationById(orderCreateVO.getRecycleStationId()); + Enterprise enterprise = enterpriseService.getById(station.getEnterpriseId()); String mode = enterprise.getOrderTakingMode(); - if ("1".equals(mode)) {//派单模式 不发送通知 + if ("2".equals(mode)) {//派单模式 不发送通知 return CommonResult.success(orderId); } @@ -225,7 +227,7 @@ public class RecycleOrderController { cancel.setOrderNo(order.getOrderNumber()); cancel.setOrderStatus(order.getOrderStatus()); - cancel.setCancelOrderTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + cancel.setCancelOrderTime(DateUtil.now()); cancel.setClientPhone(order.getClientMobile()); if (OrderTypeEnum.SH_ORDER.equals(order.getOrderType())) { ClientAddress addressInfo = clientAddressService.getAddressInfo(order.getClientAddressId()); @@ -272,7 +274,7 @@ public class RecycleOrderController { taken.setOrderStatus(order.getOrderStatus()); taken.setTakeOrderUser(recycler.getStaffsName()); taken.setTakeUserPhone(recycler.getMobilePhone()); - taken.setTakeOrderTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + taken.setTakeOrderTime(DateUtil.now()); try { wsService.sendMsgToUser(taken); } catch (IOException e) { @@ -520,4 +522,28 @@ public class RecycleOrderController { } } + //派单通知 + @PostMapping("/notice") + public CommonResult notice(@RequestBody List ids) { + List orders = recycleOrderService.listByIds(ids); + for (RecycleOrder order : orders) { + Recycler recycler = recyclerService.getRecyclerById(order.getAssignStaffsId()); + OrderTaken taken = new OrderTaken(); + taken.setAppType(AppTypeEnum.client); + taken.setReceiveUserId(order.getClientId()); + taken.setMessageType(MessageTypeEnum.TAKEN); + + taken.setOrderStatus(order.getOrderStatus()); + taken.setOrderNo(order.getOrderNumber()); + taken.setTakeOrderUser(recycler.getStaffsName()); + taken.setTakeUserPhone(recycler.getMobilePhone()); + taken.setTakeOrderTime(DateUtil.now()); + try { + wsService.sendMsgToUser(taken); + } catch (IOException e) { + e.printStackTrace(); + } + } + return CommonResult.success("通知成功!"); + } } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/DeviceLocationVO.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/DeviceLocationVO.java index 0d2956e..fcb804f 100644 --- a/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/DeviceLocationVO.java +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/device/DeviceLocationVO.java @@ -4,6 +4,9 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; +import java.util.Map; + @Data @ApiModel(description = "投递柜 Response VO") public class DeviceLocationVO { @@ -39,5 +42,5 @@ public class DeviceLocationVO { private Integer useStatus; @ApiModelProperty("产品大类") - private String product; + private List> product; } diff --git a/nxhs-service/src/main/java/cc/yunxi/domain/vo/socket/NoticeVo.java b/nxhs-service/src/main/java/cc/yunxi/domain/vo/socket/NoticeVo.java new file mode 100644 index 0000000..2363e2a --- /dev/null +++ b/nxhs-service/src/main/java/cc/yunxi/domain/vo/socket/NoticeVo.java @@ -0,0 +1,15 @@ +package cc.yunxi.domain.vo.socket; + +import cc.yunxi.enums.OrderStatusEnum; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(description = "通知消息") +public class NoticeVo { + private String clientId; + private String orderNumber; + private OrderStatusEnum orderStatus; + private String staffsName; + private String mobilePhone; +} diff --git a/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleDeviceServiceImpl.java b/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleDeviceServiceImpl.java index c2c0811..d0a0d49 100644 --- a/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleDeviceServiceImpl.java +++ b/nxhs-service/src/main/java/cc/yunxi/service/impl/RecycleDeviceServiceImpl.java @@ -90,7 +90,8 @@ public class RecycleDeviceServiceImpl extends ServiceImpl list = this.list(new LambdaQueryWrapper<>(RecycleDevice.class) .isNotNull(RecycleDevice::getLatitude) - .isNotNull(RecycleDevice::getLongitude)); + .isNotNull(RecycleDevice::getLongitude) + .isNull(RecycleDevice::getDeleteMark)); if (CollUtils.isEmpty(list)) { return Collections.emptyList(); } @@ -116,7 +117,16 @@ public class RecycleDeviceServiceImpl extends ServiceImpl buckets = bucketMap.get(device.getDeviceCode()); - device.setProduct(buckets.stream().map(obj -> productCollect.get(obj.getProductCode())).collect(Collectors.joining(","))); + device.setProduct( + buckets.stream().map((bucket) -> { + Map map = new HashMap<>(); + map.put("bucketCode", bucket.getBucketCode()); + map.put("showName", bucket.getShowName()); + map.put("productCode", bucket.getProductCode()); + map.put("productName", productCollect.get(bucket.getProductCode())); + return map; + }).collect(Collectors.toList()) + ); } nearbyVOList.add(device); device.setDistance(distance);