Socket发送消息

master
guochaojie 5 months ago
parent 58dc560a15
commit 5a8cf11d5f

@ -25,9 +25,7 @@ import cc.yunxi.domain.vo.recycleorder.tmorder.TMRecycleOrderRespVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailRespVO;
import cc.yunxi.domain.vo.recycler.RecyclerSimpleVO;
import cc.yunxi.domain.vo.recyclestation.RecycleStationSimpleVO;
import cc.yunxi.domain.vo.socket.AppTypeEnum;
import cc.yunxi.domain.vo.socket.MessageTypeEnum;
import cc.yunxi.domain.vo.socket.OrderNew;
import cc.yunxi.domain.vo.socket.*;
import cc.yunxi.enums.OrderStatusEnum;
import cc.yunxi.enums.OrderTypeEnum;
import cc.yunxi.enums.UserTypeEnum;
@ -110,25 +108,34 @@ public class RecycleOrderController {
UserDTO userDTO = UserContext.getUser();
orderCreateVO.setClientId(userDTO.getId());
String orderId = recycleOrderService.createOrder(orderCreateVO);
//todo 通知回收员
// 通知回收员
List<Recycler> recyclers = recyclerService.getRecyclerByStationId(orderCreateVO.getRecycleStationId());
if (recyclers.size() > 0) {
OrderNew message = new OrderNew();
message.setMessageType(MessageTypeEnum.BOOKING);//消息类型
message.setAppType(AppTypeEnum.recycler);//发送到哪里
message.setReceiveUserId(userDTO.getId());//接收人
message.setReceiveUserId("");//接收人
message.setOrderNo("1223");//订单号
message.setOrderNo(orderId);//订单号
message.setOrderStatus(OrderStatusEnum.PENDING);
message.setReserveTime("");
message.setClientPhone("13183060802");
message.setGoodsType("1");
message.setClientAddress("这是地址");
message.setEstimatedWeight(10.2);
message.setReserveTime(orderCreateVO.getAppointmentTimeStart() + "~" + orderCreateVO.getAppointmentTimeEnd());
// message.setGoodsType("1");
ClientAddress addressInfo = clientAddressService.getAddressInfo(orderCreateVO.getClientAddressId());
message.setClientPhone(addressInfo.getReceiveMobilePhone());
message.setClientAddress(addressInfo.getReceiveStreet() + addressInfo.getReceiveHouseNumber());
message.setEstimatedWeight(orderCreateVO.getPredictWeight());
try {
for (Recycler recycler : recyclers) {
message.setReceiveUserId(recycler.getId());
wsService.sendMsgToUser(message);
}
} catch (IOException e) {
e.printStackTrace();
}
}
return CommonResult.success(orderId);
}
@ -200,7 +207,29 @@ public class RecycleOrderController {
UserDTO userDTO = UserContext.getUser();
orderCancelVO.setClientId(userDTO.getId());
recycleOrderService.cancelOrder(orderCancelVO);
//todo 通知回收员
// 通知回收员
String id = orderCancelVO.getId();
RecycleOrder order = recycleOrderService.getOrderById(id, false);
ClientAddress addressInfo = clientAddressService.getAddressInfo(order.getClientAddressId());
OrderCancel cancel = new OrderCancel();
cancel.setMessageType(MessageTypeEnum.CANCEL);
cancel.setAppType(AppTypeEnum.recycler);
cancel.setReceiveUserId(order.getStaffsId());
cancel.setOrderNo(order.getOrderNumber());
cancel.setOrderStatus(order.getOrderStatus());
cancel.setCancelOrderTime(LocalDateTime.now());
cancel.setClientPhone(order.getClientMobile());
cancel.setClientAddress(addressInfo.getReceiveStreet());
try {
wsService.sendMsgToUser(cancel);
} catch (IOException e) {
e.printStackTrace();
}
return CommonResult.success(true);
}
@ -211,7 +240,22 @@ public class RecycleOrderController {
UserDTO userDTO = UserContext.getUser();
orderTakingVO.setStaffsId(userDTO.getId());
recycleOrderService.takingOrder(orderTakingVO);
//todo 通知用户
// 通知散户用户
RecycleOrder order = recycleOrderService.getById(orderTakingVO.getId());
Recycler recycler = recyclerService.getById(order.getStaffsId());
OrderTaken taken = new OrderTaken();
taken.setMessageType(MessageTypeEnum.TAKEN);
taken.setAppType(AppTypeEnum.client);
taken.setReceiveUserId(order.getClientId());
taken.setOrderNo(order.getOrderNumber());
taken.setOrderStatus(order.getOrderStatus());
taken.setTakeOrderUser(order.getStaffsName());
taken.setTakeUserPhone(recycler.getMobilePhone());
taken.setTakeOrderTime(LocalDateTime.now());
return CommonResult.success(true);
}
@ -223,7 +267,7 @@ public class RecycleOrderController {
UserDTO userDTO = UserContext.getUser();
orderReachVO.setStaffsId(userDTO.getId());
recycleOrderService.reachOrder(orderReachVO);
// todo 通知用户
// todo 通知用户 不必要
return CommonResult.success(true);
}
@ -234,7 +278,27 @@ public class RecycleOrderController {
UserDTO userDTO = UserContext.getUser();
orderFinishVO.setStaffsId(userDTO.getId());
recycleOrderService.finishOrder(orderFinishVO);
//todo 通知用户
// 通知散户用户
RecycleOrder order = recycleOrderService.getById(orderFinishVO.getId());
Recycler recycler = recyclerService.getById(order.getStaffsId());
OrderFinish finish = new OrderFinish();
finish.setMessageType(MessageTypeEnum.FINISH);
finish.setAppType(AppTypeEnum.client);
finish.setReceiveUserId(order.getClientId());
finish.setOrderNo(order.getOrderNumber());
finish.setOrderStatus(order.getOrderStatus());
finish.setRealMoney(order.getOrderAmount());
finish.setTakeOrderUser(recycler.getStaffsName());
finish.setTakeUserPhone(recycler.getMobilePhone());
try {
wsService.sendMsgToUser(finish);
} catch (IOException e) {
e.printStackTrace();
}
return CommonResult.success(true);
}

@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@Data
@ApiModel("新订单")
public class OrderCancel extends SocketMessage{
@ -13,10 +15,10 @@ public class OrderCancel extends SocketMessage{
@ApiModelProperty("订单状态")
private OrderStatusEnum orderStatus;
@ApiModelProperty("取消时间")
private String cancelOrderTime;
private LocalDateTime cancelOrderTime;
@ApiModelProperty("预约人号码")
private String orderPhone;
private String clientPhone;
@ApiModelProperty("预约地址")
private String orderAddress;
private String clientAddress;
}

@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@ApiModel("新订单")
@Data
public class OrderFinish extends SocketMessage{
@ -12,24 +14,12 @@ public class OrderFinish extends SocketMessage{
private String orderNo;
@ApiModelProperty("订单状态")
private OrderStatusEnum orderStatus;
@ApiModelProperty("商品类型")
private String goodsType;
@ApiModelProperty("预约时间")
private String orderTime;
@ApiModelProperty("预约人号码")
private String orderPhone;
@ApiModelProperty("预约地址")
private String orderAddress;
@ApiModelProperty("预计重量")
private String orderWeight;
@ApiModelProperty("实际重量")
private String realWeight;
@ApiModelProperty("实际金额")
private BigDecimal realMoney;
@ApiModelProperty("接单人")
private String takeOrderUser;
@ApiModelProperty("接单时间")
private String takeOrderTime;
@ApiModelProperty("接单人电话")
private String takeUserPhone;
@ApiModelProperty("完成时间")
private String finishTime;
@ApiModelProperty("实际金额")
private String realMoney;
}

@ -1,6 +1,7 @@
package cc.yunxi.domain.vo.socket;
import cc.yunxi.enums.OrderStatusEnum;
import cc.yunxi.enums.ProductWeightEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -21,5 +22,5 @@ public class OrderNew extends SocketMessage{
@ApiModelProperty("预约地址")
private String clientAddress;
@ApiModelProperty("预计重量")
private double estimatedWeight;
private ProductWeightEnum estimatedWeight;
}

@ -5,17 +5,19 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
@ApiModel("新订单")
@Data
public class OrderTaken extends SocketMessage{
public class OrderTaken extends SocketMessage {
@ApiModelProperty("订单号")
private String orderNo;
@ApiModelProperty("订单状态")
private OrderStatusEnum orderStatus;
@ApiModelProperty("接单人")
private String takeOrderUser;
@ApiModelProperty("接单时间")
private String takeOrderTime;
@ApiModelProperty("接单人电话")
private String takeUserPhone;
@ApiModelProperty("接单时间")
private LocalDateTime takeOrderTime;
}

@ -42,6 +42,9 @@ public interface IRecyclerService extends IService<Recycler> {
*/
List<Recycler> getRecyclerByIds(Collection<String> recyclerIds);
List<Recycler> getRecyclerByStationId(String stationId);
/**
* openid
* @param openid

@ -16,6 +16,9 @@ import cc.yunxi.domain.vo.recycleorder.tmorder.TMRecycleOrderFinishVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailCreateVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailSaveVO;
import cc.yunxi.domain.vo.recycleorderdetail.RecycleOrderDetailUpdateVO;
import cc.yunxi.domain.vo.socket.AppTypeEnum;
import cc.yunxi.domain.vo.socket.MessageTypeEnum;
import cc.yunxi.domain.vo.socket.OrderNew;
import cc.yunxi.enums.*;
import cc.yunxi.mapper.RecycleOrderMapper;
import cc.yunxi.service.*;
@ -33,6 +36,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@ -69,6 +73,9 @@ public class RecycleOrderServiceImpl extends ServiceImpl<RecycleOrderMapper, Rec
@Resource
private IEnterpriseService enterpriseService;
@Resource
private IWsService wsService;
/**
*
* UNPROCESSED | FINISHED | CANCELED

@ -102,6 +102,14 @@ public class RecyclerServiceImpl extends ServiceImpl<RecyclerMapper, Recycler> i
return list(wrapperX);
}
@Override
public List<Recycler> getRecyclerByStationId(String stationId) {
LambdaQueryWrapperX<Recycler> wrapperX = new LambdaQueryWrapperX<>();
if(StrUtil.isEmpty(stationId)) return CollUtils.emptyList();
wrapperX.eq(Recycler::getStationId, stationId);
return list(wrapperX);
}
@Override
@Transactional

Loading…
Cancel
Save