Commit 471c1de3 authored by shangtx's avatar shangtx

feat: 完成订单

parent a016024c
...@@ -7,6 +7,7 @@ import com.onsiteservice.admin.service.order.AdminOrderService; ...@@ -7,6 +7,7 @@ import com.onsiteservice.admin.service.order.AdminOrderService;
import com.onsiteservice.common.annotation.dict.Dict; import com.onsiteservice.common.annotation.dict.Dict;
import com.onsiteservice.common.annotation.user.CurrentUserId; import com.onsiteservice.common.annotation.user.CurrentUserId;
import com.onsiteservice.common.order.dto.DispatchServiceOrderDTO; import com.onsiteservice.common.order.dto.DispatchServiceOrderDTO;
import com.onsiteservice.common.order.dto.FinishServiceOrderDTO;
import com.onsiteservice.common.order.dto.SendServiceOrderDTO; import com.onsiteservice.common.order.dto.SendServiceOrderDTO;
import com.onsiteservice.common.order.dto.ValuationServiceOrderDTO; import com.onsiteservice.common.order.dto.ValuationServiceOrderDTO;
import com.onsiteservice.constant.enums.ServiceOrderOpSourceEnum; import com.onsiteservice.constant.enums.ServiceOrderOpSourceEnum;
...@@ -91,4 +92,13 @@ public class ServiceOrderController { ...@@ -91,4 +92,13 @@ public class ServiceOrderController {
return serviceOrderService.redispatch(dto, userId, ServiceOrderOpSourceEnum.WEB) == 1 ? success() : fail("修改派单失败"); return serviceOrderService.redispatch(dto, userId, ServiceOrderOpSourceEnum.WEB) == 1 ? success() : fail("修改派单失败");
} }
/**
* 未派单之前不能完成,已申请退款的也可以点击完成
*/
@ApiOperation(value = "完成订单")
@PostMapping("finish")
public Result finish(@RequestBody @NonNull @Validated FinishServiceOrderDTO dto, @CurrentUserId Long userId) {
return serviceOrderService.finishOrder(dto, userId, ServiceOrderOpSourceEnum.WEB) == 1 ? success() : fail("取消失败");
}
} }
...@@ -270,14 +270,21 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -270,14 +270,21 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_FINISH); throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_FINISH);
} }
User user = userMapper.selectByPrimaryKey(userId); WorkUser user;
// 既不是客户 又不是客服 if (sourceEnum == ServiceOrderOpSourceEnum.MINI_APP) {
boolean isUser = serviceOrder.getAccountNo().equals(userId); var miniUser = userMapper.selectByPrimaryKey(userId);
boolean isAdmin = !Objects.isNull(user) && user.getRoleType().equals(ServiceUserTypeEnum.ADMIN.getId()); boolean isUser = serviceOrder.getAccountNo().equals(userId);
if (!isUser && !isAdmin) { boolean isAdmin = !Objects.isNull(miniUser) && miniUser.getRoleType().equals(ServiceUserTypeEnum.ADMIN.getId());
throw new ServiceException(BizCodeEnum.NO_AUTH_FINISH_ORDER); if (!isUser && !isAdmin) {
throw new ServiceException(BizCodeEnum.NO_AUTH_FINISH_ORDER);
}
user = new WorkUser(miniUser.getId(), miniUser.getUserName(), isAdmin);
} else {
var sysUser = sysUserMapper.selectByPrimaryKey(userId);
user = new WorkUser(sysUser.getId(), sysUser.getRealName(), true);
} }
disableServiceWorkerAssign(serviceOrder, userId, null); disableServiceWorkerAssign(serviceOrder, userId, null);
serviceOrder.setOrderStatus(ServiceOrderStatusEnum.FINISH.getStatus()); serviceOrder.setOrderStatus(ServiceOrderStatusEnum.FINISH.getStatus());
...@@ -286,7 +293,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> { ...@@ -286,7 +293,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder); int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder);
if (result == 1) { if (result == 1) {
String description = String.format(ServiceOrderStatusEnum.FINISH.getMsg(), isUser ? ServiceUserTypeEnum.USER.getName() : ServiceUserTypeEnum.ADMIN.getName() + user.getUserName()); String description = String.format(ServiceOrderStatusEnum.FINISH.getMsg(), user.getIsAdmin() ? ServiceUserTypeEnum.ADMIN.getName() + user.getName() : ServiceUserTypeEnum.USER.getName());
recordComponent.recordProcess(serviceOrder.getId(), ServiceOrderStatusEnum.FINISH.getStatus(), description, sourceEnum, null, null, null); recordComponent.recordProcess(serviceOrder.getId(), ServiceOrderStatusEnum.FINISH.getStatus(), description, sourceEnum, null, null, null);
} }
......
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