|
@@ -12,12 +12,10 @@ import org.dromara.api.RemotePetService;
|
|
|
import org.dromara.api.domain.vo.RemoteCustomerVo;
|
|
import org.dromara.api.domain.vo.RemoteCustomerVo;
|
|
|
import org.dromara.api.domain.vo.RemotePetVo;
|
|
import org.dromara.api.domain.vo.RemotePetVo;
|
|
|
import org.dromara.common.core.constant.TenantConstants;
|
|
import org.dromara.common.core.constant.TenantConstants;
|
|
|
-import org.dromara.common.core.exception.ServiceException;
|
|
|
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
|
|
import org.dromara.common.mybatis.utils.WrapperUtils;
|
|
import org.dromara.common.mybatis.utils.WrapperUtils;
|
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
import org.dromara.common.satoken.utils.LoginHelper;
|
|
|
-import org.dromara.common.tenant.helper.TenantHelper;
|
|
|
|
|
import org.dromara.fulfiller.api.RemoteFulfillerService;
|
|
import org.dromara.fulfiller.api.RemoteFulfillerService;
|
|
|
import org.dromara.fulfiller.api.domain.vo.RemoteFulfillerVo;
|
|
import org.dromara.fulfiller.api.domain.vo.RemoteFulfillerVo;
|
|
|
import org.dromara.fulfiller.api.model.FulfillerLoginUser;
|
|
import org.dromara.fulfiller.api.model.FulfillerLoginUser;
|
|
@@ -26,11 +24,7 @@ import org.dromara.order.domain.SysSubOrder;
|
|
|
import org.dromara.order.domain.SysSubOrderLog;
|
|
import org.dromara.order.domain.SysSubOrderLog;
|
|
|
import org.dromara.order.domain.bo.*;
|
|
import org.dromara.order.domain.bo.*;
|
|
|
import org.dromara.order.domain.vo.*;
|
|
import org.dromara.order.domain.vo.*;
|
|
|
-import org.dromara.order.enums.OrderLogActionTypeEnum;
|
|
|
|
|
-import org.dromara.order.enums.OrderLogActionerTypeEnum;
|
|
|
|
|
-import org.dromara.order.enums.OrderLogTypeEnum;
|
|
|
|
|
-import org.dromara.order.enums.OrderStatusEnum;
|
|
|
|
|
-import org.dromara.order.mapper.SysOrderMapper;
|
|
|
|
|
|
|
+import org.dromara.order.enums.*;
|
|
|
import org.dromara.order.mapper.SysSubOrderLogMapper;
|
|
import org.dromara.order.mapper.SysSubOrderLogMapper;
|
|
|
import org.dromara.order.mapper.SysSubOrderMapper;
|
|
import org.dromara.order.mapper.SysSubOrderMapper;
|
|
|
import org.dromara.order.service.ISysSubOrderService;
|
|
import org.dromara.order.service.ISysSubOrderService;
|
|
@@ -121,19 +115,27 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
vo.setType(e.getType());
|
|
vo.setType(e.getType());
|
|
|
vo.setPet(e.getUsrPet());
|
|
vo.setPet(e.getUsrPet());
|
|
|
RemotePetVo pet = petMap.get(e.getUsrPet());
|
|
RemotePetVo pet = petMap.get(e.getUsrPet());
|
|
|
- vo.setPetName(pet.getName());
|
|
|
|
|
- vo.setPetBreed(pet.getBreed());
|
|
|
|
|
|
|
+ if (pet != null) {
|
|
|
|
|
+ vo.setPetName(pet.getName());
|
|
|
|
|
+ vo.setPetBreed(pet.getBreed());
|
|
|
|
|
+ }
|
|
|
vo.setCustomer(e.getUsrCustomer());
|
|
vo.setCustomer(e.getUsrCustomer());
|
|
|
RemoteCustomerVo customer = customerMap.get(e.getUsrCustomer());
|
|
RemoteCustomerVo customer = customerMap.get(e.getUsrCustomer());
|
|
|
- vo.setCustomerName(customer.getName());
|
|
|
|
|
|
|
+ if (customer != null) {
|
|
|
|
|
+ vo.setCustomerName(customer.getName());
|
|
|
|
|
+ }
|
|
|
vo.setToAddress(e.getToAddress());
|
|
vo.setToAddress(e.getToAddress());
|
|
|
vo.setSite(e.getStoreSite());
|
|
vo.setSite(e.getStoreSite());
|
|
|
vo.setStore(e.getStore());
|
|
vo.setStore(e.getStore());
|
|
|
RemoteStoreVo store = storeMap.get(e.getStore());
|
|
RemoteStoreVo store = storeMap.get(e.getStore());
|
|
|
- vo.setStoreName(store.getName());
|
|
|
|
|
|
|
+ if (store != null) {
|
|
|
|
|
+ vo.setStoreName(store.getName());
|
|
|
|
|
+ }
|
|
|
vo.setPlacer(e.getOrderPlacer());
|
|
vo.setPlacer(e.getOrderPlacer());
|
|
|
RemoteUserVo placer = userMap.get(e.getOrderPlacer());
|
|
RemoteUserVo placer = userMap.get(e.getOrderPlacer());
|
|
|
- vo.setPlacerUsername(placer.getUserName());
|
|
|
|
|
|
|
+ if (placer != null) {
|
|
|
|
|
+ vo.setPlacerUsername(placer.getUserName());
|
|
|
|
|
+ }
|
|
|
vo.setCreateTime(e.getCreateTime());
|
|
vo.setCreateTime(e.getCreateTime());
|
|
|
vo.setStatus(e.getStatus());
|
|
vo.setStatus(e.getStatus());
|
|
|
vo.setFulfiller(e.getFulfiller());
|
|
vo.setFulfiller(e.getFulfiller());
|
|
@@ -171,9 +173,12 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
log.setActioner(LoginHelper.getUserId());
|
|
log.setActioner(LoginHelper.getUserId());
|
|
|
log.setActionerType(OrderLogActionerTypeEnum.SYS_USER.getValue());
|
|
log.setActionerType(OrderLogActionerTypeEnum.SYS_USER.getValue());
|
|
|
log.setLogType(OrderLogTypeEnum.ORDER.getValue());
|
|
log.setLogType(OrderLogTypeEnum.ORDER.getValue());
|
|
|
- log.setActionType(OrderLogActionTypeEnum.DISPATCH.getValue());
|
|
|
|
|
- log.setTitle(OrderLogActionTypeEnum.DISPATCH.getLabel());
|
|
|
|
|
- log.setContent("指派给 " + fulfiller.getName());
|
|
|
|
|
|
|
+
|
|
|
|
|
+ OrderLogSystemStepEnum step = OrderLogSystemStepEnum.DISPATCH;
|
|
|
|
|
+ log.setStep(step.getStep());
|
|
|
|
|
+ log.setTitle(step.getTitle());
|
|
|
|
|
+ log.setContent(String.format(step.getContent(), fulfiller.getName()));
|
|
|
|
|
+
|
|
|
log.setTenantId(subOrder.getTenantId());
|
|
log.setTenantId(subOrder.getTenantId());
|
|
|
boolean logFlag = subOrderLogMapper.insert(log) == 0;
|
|
boolean logFlag = subOrderLogMapper.insert(log) == 0;
|
|
|
if (logFlag) {
|
|
if (logFlag) {
|
|
@@ -355,9 +360,10 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
orderLog.setActioner(LoginHelper.getUserId());
|
|
orderLog.setActioner(LoginHelper.getUserId());
|
|
|
orderLog.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
orderLog.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
|
orderLog.setLogType(OrderLogTypeEnum.ORDER.getValue());
|
|
orderLog.setLogType(OrderLogTypeEnum.ORDER.getValue());
|
|
|
- orderLog.setActionType(OrderLogActionTypeEnum.RECIEVED.getValue());
|
|
|
|
|
- orderLog.setTitle(OrderLogActionTypeEnum.RECIEVED.getLabel());
|
|
|
|
|
- orderLog.setContent("履约者已确认接单");
|
|
|
|
|
|
|
+ OrderLogSystemStepEnum step = OrderLogSystemStepEnum.RECIEVED;
|
|
|
|
|
+ orderLog.setStep(step.getStep());
|
|
|
|
|
+ orderLog.setTitle(step.getTitle());
|
|
|
|
|
+ orderLog.setContent(step.getContent());
|
|
|
orderLog.setTenantId(subOrder.getTenantId());
|
|
orderLog.setTenantId(subOrder.getTenantId());
|
|
|
|
|
|
|
|
SysSubOrderLog fulfillerLog = new SysSubOrderLog();
|
|
SysSubOrderLog fulfillerLog = new SysSubOrderLog();
|
|
@@ -365,9 +371,9 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
fulfillerLog.setActioner(LoginHelper.getUserId());
|
|
fulfillerLog.setActioner(LoginHelper.getUserId());
|
|
|
fulfillerLog.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
fulfillerLog.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
|
fulfillerLog.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
fulfillerLog.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
|
- fulfillerLog.setActionType(OrderLogActionTypeEnum.FULFILLER_RECIEVE.getValue());
|
|
|
|
|
- fulfillerLog.setTitle(OrderLogActionTypeEnum.FULFILLER_RECIEVE.getLabel());
|
|
|
|
|
- fulfillerLog.setContent("履约者 " + LoginHelper.getLoginUser().getNickname() + " 已确认接单,准备前往服务地点");
|
|
|
|
|
|
|
+ fulfillerLog.setStep(OrderLogFulfillerStepEnum.RECIEVED.getValue());
|
|
|
|
|
+ fulfillerLog.setTitle(OrderLogFulfillerStepEnum.RECIEVED.getTitle());
|
|
|
|
|
+ fulfillerLog.setContent(String.format(OrderLogFulfillerStepEnum.RECIEVED.getContent(), LoginHelper.getLoginUser().getNickname()));
|
|
|
fulfillerLog.setTenantId(subOrder.getTenantId());
|
|
fulfillerLog.setTenantId(subOrder.getTenantId());
|
|
|
|
|
|
|
|
boolean logFlag = subOrderLogMapper.insertBatch(Arrays.asList(orderLog, fulfillerLog));
|
|
boolean logFlag = subOrderLogMapper.insertBatch(Arrays.asList(orderLog, fulfillerLog));
|
|
@@ -410,21 +416,12 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (bo.getType().equals(OrderLogActionTypeEnum.FINISH_SERVICE.getValue())) {
|
|
|
|
|
- subOrder.setStatus(OrderStatusEnum.PENDING_CONFIRM.getValue());
|
|
|
|
|
- boolean flag = baseMapper.updateById(subOrder) == 0;
|
|
|
|
|
- if (flag) {
|
|
|
|
|
- throw new RuntimeException("修改订单状态失败");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
SysSubOrderLog log = new SysSubOrderLog();
|
|
SysSubOrderLog log = new SysSubOrderLog();
|
|
|
log.setSubOrderId(subOrder.getId());
|
|
log.setSubOrderId(subOrder.getId());
|
|
|
log.setActioner(LoginHelper.getUserId());
|
|
log.setActioner(LoginHelper.getUserId());
|
|
|
log.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
log.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
|
log.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
log.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
|
- log.setActionType(bo.getType());
|
|
|
|
|
|
|
+ log.setStep(bo.getStep());
|
|
|
log.setTitle(bo.getTitle());
|
|
log.setTitle(bo.getTitle());
|
|
|
log.setContent(bo.getContent());
|
|
log.setContent(bo.getContent());
|
|
|
log.setPhotos(bo.getPhotos().stream().map(String::valueOf).collect(Collectors.joining(",")));
|
|
log.setPhotos(bo.getPhotos().stream().map(String::valueOf).collect(Collectors.joining(",")));
|
|
@@ -434,38 +431,6 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
throw new RuntimeException("记录服务进度失败");
|
|
throw new RuntimeException("记录服务进度失败");
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- if (bo.getType().equals(OrderLogActionTypeEnum.FINISH_SERVICE.getValue())) {
|
|
|
|
|
- SysSubOrderLog waitingLog = new SysSubOrderLog();
|
|
|
|
|
- waitingLog.setSubOrderId(subOrder.getId());
|
|
|
|
|
- waitingLog.setActioner(LoginHelper.getUserId());
|
|
|
|
|
- waitingLog.setActionerType(OrderLogActionerTypeEnum.FULFILLER.getValue());
|
|
|
|
|
- waitingLog.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
|
|
|
- waitingLog.setActionType(OrderLogActionTypeEnum.WAITING_FOR_CONFIRM.getValue());
|
|
|
|
|
- waitingLog.setTitle("待商家确认");
|
|
|
|
|
- waitingLog.setContent("履约者已提交完成信息,等待商家确认订单");
|
|
|
|
|
- waitingLog.setTenantId(subOrder.getTenantId());
|
|
|
|
|
- boolean waitingLogFlag = subOrderLogMapper.insert(waitingLog) == 0;
|
|
|
|
|
- if (waitingLogFlag) {
|
|
|
|
|
- throw new RuntimeException("记录服务进度(待上架确认)失败");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (bo.getType().equals(OrderLogActionTypeEnum.ARRIVE_LOCK_ON.getValue())) {
|
|
|
|
|
- SysSubOrderLog systemLog = new SysSubOrderLog();
|
|
|
|
|
- systemLog.setSubOrderId(subOrder.getId());
|
|
|
|
|
- systemLog.setActioner(LoginHelper.getUserId());
|
|
|
|
|
- systemLog.setActionerType(OrderLogActionerTypeEnum.SYS_USER.getValue());
|
|
|
|
|
- systemLog.setLogType(OrderLogTypeEnum.ORDER.getValue());
|
|
|
|
|
- systemLog.setActionType(OrderLogActionTypeEnum.ARRIVED.getValue());
|
|
|
|
|
- systemLog.setTitle(OrderLogActionTypeEnum.ARRIVED.getLabel());
|
|
|
|
|
- systemLog.setContent("履约者已打卡");
|
|
|
|
|
- systemLog.setTenantId(subOrder.getTenantId());
|
|
|
|
|
- boolean systemFlag = subOrderLogMapper.insert(systemLog) == 0;
|
|
|
|
|
- if (systemFlag) {
|
|
|
|
|
- throw new RuntimeException("记录订单日志失败");
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -542,9 +507,19 @@ public class SysSubOrderServiceImpl implements ISysSubOrderService {
|
|
|
log.setSubOrderId(subOrder.getId());
|
|
log.setSubOrderId(subOrder.getId());
|
|
|
log.setActioner(LoginHelper.getUserId());
|
|
log.setActioner(LoginHelper.getUserId());
|
|
|
log.setActionerType(OrderLogActionerTypeEnum.SYS_USER.getValue());
|
|
log.setActionerType(OrderLogActionerTypeEnum.SYS_USER.getValue());
|
|
|
|
|
+
|
|
|
log.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
log.setLogType(OrderLogTypeEnum.FULFILLER.getValue());
|
|
|
- log.setActionType(OrderLogActionTypeEnum.FINISH.getValue());
|
|
|
|
|
- log.setTitle(OrderLogActionTypeEnum.FINISH.getLabel());
|
|
|
|
|
|
|
+ log.setStep(
|
|
|
|
|
+ // 动态取最后一步
|
|
|
|
|
+ subOrderLogMapper.selectOne(
|
|
|
|
|
+ Wrappers.lambdaQuery(SysSubOrderLog.class)
|
|
|
|
|
+ .eq(SysSubOrderLog::getActionerType, OrderLogActionerTypeEnum.FULFILLER.getValue())
|
|
|
|
|
+ .eq(SysSubOrderLog::getSubOrderId, bo.getId())
|
|
|
|
|
+ .orderByDesc(SysSubOrderLog::getStep)
|
|
|
|
|
+ .last("LIMIT 1")
|
|
|
|
|
+ )
|
|
|
|
|
+ .getStep() + 1
|
|
|
|
|
+ );
|
|
|
log.setContent("用户/商家已确认,服务圆满结束");
|
|
log.setContent("用户/商家已确认,服务圆满结束");
|
|
|
log.setTenantId(subOrder.getTenantId());
|
|
log.setTenantId(subOrder.getTenantId());
|
|
|
boolean logFlag = subOrderLogMapper.insert(log) == 0;
|
|
boolean logFlag = subOrderLogMapper.insert(log) == 0;
|