master
guochaojie 3 months ago
parent 71c19c5b3e
commit b075a7e393

@ -51,6 +51,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
"/qrcode/**.txt", "/qrcode/**.txt",
"/wx/**",//微信消息推送验证 "/wx/**",//微信消息推送验证
"/wx-pay/**",//微信支付 "/wx-pay/**",//微信支付
"/recycle-order/notice",//接单通知
"/webSocketServer/**",//socket通信 "/webSocketServer/**",//socket通信
"/doc.html", "/doc.html",
//设备柜接口 //设备柜接口

@ -7,6 +7,7 @@ import cc.yunxi.common.exception.BizIllegalException;
import cc.yunxi.common.utils.BeanUtils; import cc.yunxi.common.utils.BeanUtils;
import cc.yunxi.common.utils.CollUtils; import cc.yunxi.common.utils.CollUtils;
import cc.yunxi.common.utils.CommonUtil; import cc.yunxi.common.utils.CommonUtil;
import cc.yunxi.domain.vo.socket.NoticeVo;
import cc.yunxi.domain.dto.LocationDTO; import cc.yunxi.domain.dto.LocationDTO;
import cc.yunxi.domain.dto.UserDTO; import cc.yunxi.domain.dto.UserDTO;
import cc.yunxi.domain.po.*; import cc.yunxi.domain.po.*;
@ -31,9 +32,9 @@ import cc.yunxi.enums.OrderTypeEnum;
import cc.yunxi.enums.UserTypeEnum; import cc.yunxi.enums.UserTypeEnum;
import cc.yunxi.service.*; import cc.yunxi.service.*;
import cc.yunxi.utils.UserContext; import cc.yunxi.utils.UserContext;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.log.Log;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -112,9 +113,10 @@ public class RecycleOrderController {
orderCreateVO.setClientId(userDTO.getId()); orderCreateVO.setClientId(userDTO.getId());
String orderId = recycleOrderService.createOrder(orderCreateVO); 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(); String mode = enterprise.getOrderTakingMode();
if ("1".equals(mode)) {//派单模式 不发送通知 if ("2".equals(mode)) {//派单模式 不发送通知
return CommonResult.success(orderId); return CommonResult.success(orderId);
} }
@ -225,7 +227,7 @@ public class RecycleOrderController {
cancel.setOrderNo(order.getOrderNumber()); cancel.setOrderNo(order.getOrderNumber());
cancel.setOrderStatus(order.getOrderStatus()); 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()); cancel.setClientPhone(order.getClientMobile());
if (OrderTypeEnum.SH_ORDER.equals(order.getOrderType())) { if (OrderTypeEnum.SH_ORDER.equals(order.getOrderType())) {
ClientAddress addressInfo = clientAddressService.getAddressInfo(order.getClientAddressId()); ClientAddress addressInfo = clientAddressService.getAddressInfo(order.getClientAddressId());
@ -272,7 +274,7 @@ public class RecycleOrderController {
taken.setOrderStatus(order.getOrderStatus()); taken.setOrderStatus(order.getOrderStatus());
taken.setTakeOrderUser(recycler.getStaffsName()); taken.setTakeOrderUser(recycler.getStaffsName());
taken.setTakeUserPhone(recycler.getMobilePhone()); taken.setTakeUserPhone(recycler.getMobilePhone());
taken.setTakeOrderTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); taken.setTakeOrderTime(DateUtil.now());
try { try {
wsService.sendMsgToUser(taken); wsService.sendMsgToUser(taken);
} catch (IOException e) { } catch (IOException e) {
@ -520,4 +522,28 @@ public class RecycleOrderController {
} }
} }
//派单通知
@PostMapping("/notice")
public CommonResult notice(@RequestBody List<String> ids) {
List<RecycleOrder> 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("通知成功!");
}
} }

@ -4,6 +4,9 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List;
import java.util.Map;
@Data @Data
@ApiModel(description = "投递柜 Response VO") @ApiModel(description = "投递柜 Response VO")
public class DeviceLocationVO { public class DeviceLocationVO {
@ -39,5 +42,5 @@ public class DeviceLocationVO {
private Integer useStatus; private Integer useStatus;
@ApiModelProperty("产品大类") @ApiModelProperty("产品大类")
private String product; private List<Map<String,Object>> product;
} }

@ -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;
}

@ -90,7 +90,8 @@ public class RecycleDeviceServiceImpl extends ServiceImpl<RecycleDeviceMapper, R
log.info("查询附近的投递柜query:{}", location); log.info("查询附近的投递柜query:{}", location);
List<RecycleDevice> list = this.list(new LambdaQueryWrapper<>(RecycleDevice.class) List<RecycleDevice> list = this.list(new LambdaQueryWrapper<>(RecycleDevice.class)
.isNotNull(RecycleDevice::getLatitude) .isNotNull(RecycleDevice::getLatitude)
.isNotNull(RecycleDevice::getLongitude)); .isNotNull(RecycleDevice::getLongitude)
.isNull(RecycleDevice::getDeleteMark));
if (CollUtils.isEmpty(list)) { if (CollUtils.isEmpty(list)) {
return Collections.emptyList(); return Collections.emptyList();
} }
@ -116,7 +117,16 @@ public class RecycleDeviceServiceImpl extends ServiceImpl<RecycleDeviceMapper, R
if (distance <= maxDistance) { if (distance <= maxDistance) {
if (CollUtils.isNotEmpty(bucketMap) && bucketMap.containsKey(device.getDeviceCode())) { if (CollUtils.isNotEmpty(bucketMap) && bucketMap.containsKey(device.getDeviceCode())) {
List<RecycleBucket> buckets = bucketMap.get(device.getDeviceCode()); List<RecycleBucket> 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<String, Object> 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); nearbyVOList.add(device);
device.setDistance(distance); device.setDistance(distance);

Loading…
Cancel
Save