Commit 4f761774 authored by lining's avatar lining

feat: 重复发送订单接口逻辑调整

parent 261e4fdf
...@@ -16,7 +16,10 @@ import com.onsiteservice.constant.enums.ServiceUserTypeEnum; ...@@ -16,7 +16,10 @@ import com.onsiteservice.constant.enums.ServiceUserTypeEnum;
import com.onsiteservice.core.exception.ServiceException; import com.onsiteservice.core.exception.ServiceException;
import com.onsiteservice.dao.common.AbstractMapper; import com.onsiteservice.dao.common.AbstractMapper;
import com.onsiteservice.dao.component.RecordComponent; import com.onsiteservice.dao.component.RecordComponent;
import com.onsiteservice.dao.mapper.service.*; import com.onsiteservice.dao.mapper.service.ServiceOrderMapper;
import com.onsiteservice.dao.mapper.service.ServiceValuatorAssignMapper;
import com.onsiteservice.dao.mapper.service.ServiceWorkerAssignMapper;
import com.onsiteservice.dao.mapper.service.ServiceWorkerMapper;
import com.onsiteservice.dao.mapper.sys.SysParamMapper; import com.onsiteservice.dao.mapper.sys.SysParamMapper;
import com.onsiteservice.dao.mapper.sys.SysUserMapper; import com.onsiteservice.dao.mapper.sys.SysUserMapper;
import com.onsiteservice.dao.mapper.user.UserMapper; import com.onsiteservice.dao.mapper.user.UserMapper;
...@@ -27,17 +30,14 @@ import com.onsiteservice.entity.service.ServiceWorkerAssign; ...@@ -27,17 +30,14 @@ import com.onsiteservice.entity.service.ServiceWorkerAssign;
import com.onsiteservice.entity.sys.SysParam; import com.onsiteservice.entity.sys.SysParam;
import com.onsiteservice.entity.sys.SysUser; import com.onsiteservice.entity.sys.SysUser;
import com.onsiteservice.entity.user.User; import com.onsiteservice.entity.user.User;
import com.onsiteservice.util.aliyun.SmsUtils;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import tk.mybatis.mapper.entity.Condition; import tk.mybatis.mapper.entity.Condition;
import javax.annotation.Resource;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
...@@ -147,7 +147,11 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -147,7 +147,11 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
// 判断能发送的状态: 估价后可以发送,预约后可以发送 // 判断能发送的状态: 估价后可以发送,预约后可以发送
ServiceOrder serviceOrder = checkOrder(dto.getId(), null); ServiceOrder serviceOrder = checkOrder(dto.getId(), null);
if (!serviceOrder.getOrderStatus().equals(ServiceOrderStatusEnum.VALUATION.getStatus()) && !serviceOrder.getOrderStatus().equals(ServiceOrderStatusEnum.RESERVE.getStatus())) {
// 首次发送 或者 第一次的发送已经支付完成并且没有结束订单
boolean canSendOrder = serviceOrder.getOrderStatus() < ServiceOrderStatusEnum.SEND.getStatus()
|| (serviceOrder.getOrderStatus() >= ServiceOrderStatusEnum.PAY.getStatus() && (serviceOrder.getOrderStatus() < ServiceOrderStatusEnum.FINISH.getStatus()));
if (!canSendOrder) {
throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_SEND); throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_SEND);
} }
...@@ -192,7 +196,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -192,7 +196,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
WorkUser user = checkAuth(userId, BizCodeEnum.NO_AUTH_DISPATCH_ORDER, sourceEnum, Sets.newHashSet(ServiceUserTypeEnum.ADMIN)); WorkUser user = checkAuth(userId, BizCodeEnum.NO_AUTH_DISPATCH_ORDER, sourceEnum, Sets.newHashSet(ServiceUserTypeEnum.ADMIN));
ServiceOrder serviceOrder = checkOrder(dto.getId(), null); ServiceOrder serviceOrder = checkOrder(dto.getId(), null);
if (!serviceOrder.getOrderStatus().equals(ServiceOrderStatusEnum.PAY.getStatus())) { if (!serviceOrder.getOrderStatus().equals(ServiceOrderStatusEnum.PAY.getStatus()) || serviceOrder.getSkipWork()) {
throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_DISPATCH); throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_DISPATCH);
} }
...@@ -208,6 +212,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -208,6 +212,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
Condition c = buildOrderStatusCondition(serviceOrder); Condition c = buildOrderStatusCondition(serviceOrder);
serviceOrder.setOrderStatus(ServiceOrderStatusEnum.DISPATCH.getStatus()); serviceOrder.setOrderStatus(ServiceOrderStatusEnum.DISPATCH.getStatus());
serviceOrder.setModifyBy(userId); serviceOrder.setModifyBy(userId);
serviceOrder.setSkipWork(true);
int result = serviceOrderMapper.updateByConditionSelective(serviceOrder, c); int result = serviceOrderMapper.updateByConditionSelective(serviceOrder, c);
commonSmsService.dispatched(serviceOrder.getPhone(), user.getPhone(), serviceOrder.getServiceName()); commonSmsService.dispatched(serviceOrder.getPhone(), user.getPhone(), serviceOrder.getServiceName());
...@@ -265,7 +270,8 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -265,7 +270,8 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
log.info("finishOrder dto: {}, userId: {}", dto, userId); log.info("finishOrder dto: {}, userId: {}", dto, userId);
ServiceOrder serviceOrder = checkOrder(dto.getId(), null); ServiceOrder serviceOrder = checkOrder(dto.getId(), null);
if (!serviceOrder.getOrderStatus().equals(ServiceOrderStatusEnum.DISPATCH.getStatus())) { // if (!serviceOrder.getOrderStatus().equals(ServiceOrderStatusEnum.DISPATCH.getStatus())) {
if (!serviceOrder.getSkipWork()) {
throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_FINISH); throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_FINISH);
} }
......
...@@ -29,7 +29,6 @@ import org.springframework.web.bind.annotation.*; ...@@ -29,7 +29,6 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.validation.constraints.Positive; import javax.validation.constraints.Positive;
import java.util.Map; import java.util.Map;
import static com.onsiteservice.core.result.ResultGenerator.fail; import static com.onsiteservice.core.result.ResultGenerator.fail;
...@@ -109,7 +108,7 @@ public class ServiceOrderController { ...@@ -109,7 +108,7 @@ public class ServiceOrderController {
@ApiOperation(value = "发送订单") @ApiOperation(value = "发送订单")
@ApiIdempotent(interval = 3000L) @ApiIdempotent(interval = 3000L)
@PostMapping("send") @PostMapping("send")
public Result valuation(@RequestBody @NonNull @Validated SendServiceOrderDTO dto, @CurrentUserId Long userId) { public Result send(@RequestBody @NonNull @Validated SendServiceOrderDTO dto, @CurrentUserId Long userId) {
return serviceOrderService.sendOrder(dto, userId, ServiceOrderOpSourceEnum.MINI_APP) == 1 ? success() : fail("发送失败"); return serviceOrderService.sendOrder(dto, userId, ServiceOrderOpSourceEnum.MINI_APP) == 1 ? success() : fail("发送失败");
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment