| | |
| | | package com.xiaopeng.order.service; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.xiaopeng.api.feignClient.operation.XpPricingClient; |
| | | import com.xiaopeng.api.feignClient.pushMessage.SubscribeMessageClient; |
| | | import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient; |
| | | import com.xiaopeng.api.model.operation.XpPricing; |
| | | import com.xiaopeng.api.model.order.XpOrder; |
| | | import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; |
| | | import com.xiaopeng.api.vo.pushMessage.SendSubscribeMessageVo; |
| | | import com.xiaopeng.common.core.domain.R; |
| | | import com.xiaopeng.common.core.enums.MessageTemplateEnum; |
| | | import com.xiaopeng.common.core.enums.OrderStatusEnum; |
| | | import com.xiaopeng.common.core.exception.ServiceException; |
| | | import com.xiaopeng.common.redis.service.RedisService; |
| | | import org.springframework.context.annotation.Lazy; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.time.LocalDateTime; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.concurrent.TimeUnit; |
| | | |
| | | @Service |
| | | public class BootCommonService { |
| | |
| | | @Resource |
| | | @Lazy |
| | | private IXpOrderService xpOrderService; |
| | | // @Override |
| | | @Resource |
| | | private RedisService redisService; |
| | | @Resource |
| | | private SubscribeMessageClient subscribeMessageClient; |
| | | |
| | | |
| | | public XpOrder getXpOrder(Long orderId) { |
| | | |
| | | XpOrder xpOrder = xpOrderService.getById(orderId); |
| | |
| | | } |
| | | return xpOrder; |
| | | } |
| | | // @Override |
| | | public XpVehicle getXpVehicle(Long vehicleId) { |
| | | |
| | | R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(vehicleId); |
| | |
| | | } |
| | | return xpVehicleR.getData(); |
| | | } |
| | | // @Override |
| | | public String getVehicleModelId(Long orderId) { |
| | | if(orderId!= null){ |
| | | XpOrder xpOrder = getXpOrder(orderId); |
| | |
| | | return null; |
| | | } |
| | | |
| | | // @Override |
| | | public XpPricing getPricingByCid(Long cityId, String vehicleModelId) { |
| | | R<XpPricing> xpPricingR = xpPricingClient.getPricingByCid(cityId,vehicleModelId); |
| | | if (xpPricingR.getCode() != R.SUCCESS || xpPricingR.getData() == null) { |
| | |
| | | } |
| | | return xpPricingR.getData(); |
| | | } |
| | | |
| | | // @Override |
| | | public XpPricing getXpPricing(Long orderId) { |
| | | if(orderId != null){ |
| | | XpOrder xpOrder = getXpOrder(orderId); |
| | |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | // @Override |
| | | public XpPricing getXpPricing(Long cityId, Long vehicleId) { |
| | | String vehicleModelId = null; |
| | | if(vehicleId != null){ |
| | |
| | | } |
| | | return getPricingByCid(cityId, vehicleModelId); |
| | | } |
| | | |
| | | // @Override |
| | | public XpPricing getXpPricing(Long cityId, Long orderId, Long vehicleId) { |
| | | String vehicleModelId = null; |
| | | if(vehicleId != null ){ |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 设置缓存订单状态 |
| | | * 并发送微信通知 |
| | | * @param xpOrderId 订单id |
| | | * @param order OrderStatusEnum 订单状态 |
| | | * oldStatus 订单旧状态 |
| | | */ |
| | | public void setCache_orderStatus(Long xpOrderId, XpOrder order ,OrderStatusEnum status) { |
| | | if(order == null){ |
| | | order = xpOrderService.getById(xpOrderId); |
| | | } |
| | | redisService.setCacheObject("ORDER_STATUS:" + xpOrderId, status.getCode(), 24L, TimeUnit.HOURS); |
| | | |
| | | SendSubscribeMessageVo vo = new SendSubscribeMessageVo(); |
| | | vo.setUserId(order.getAppUserId()); |
| | | String json = null; |
| | | if(order.getStatus() == OrderStatusEnum.PENDING_ORDER.getCode()){ |
| | | String plateNumber = null; |
| | | // 查询车辆 |
| | | XpVehicle xpVehicle = xpVehicleClient.queryById(order.getVehicleId()).getData(); |
| | | if(xpVehicle != null){ |
| | | plateNumber = xpVehicle.getPlateNumber(); |
| | | } |
| | | if(StrUtil.isNotBlank(plateNumber)){ |
| | | vo.setTemplateId(MessageTemplateEnum.E.getTemplateId()); |
| | | json = MessageTemplateEnum.E.getRemarks(); |
| | | json = json.replace("车牌号", plateNumber); |
| | | json = json.replace("报警时间", LocalDateTime.now().toString()); |
| | | } |
| | | }else{ |
| | | |
| | | vo.setTemplateId(MessageTemplateEnum.A.getTemplateId()); |
| | | json = MessageTemplateEnum.A.getRemarks(); |
| | | json = json.replace("订单编号", order.getOrderNumber()); |
| | | json = json.replace("订单状态", status.getDesc() ); |
| | | json = json.replace("订单状态", OrderStatusEnum.getDescByCode(order.getStatus())); |
| | | json = json.replace("备注", ""); |
| | | json = json.replace("时间", LocalDateTime.now().toString()); |
| | | vo.setPage(""); |
| | | } |
| | | if(StrUtil.isNotBlank(json)){ |
| | | vo.setJson(json); |
| | | subscribeMessageClient.sendSubscribeMessage(vo); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |