Commit 471c1de3 authored by shangtx's avatar shangtx

feat: 完成订单

parent a016024c
......@@ -7,6 +7,7 @@ import com.onsiteservice.admin.service.order.AdminOrderService;
import com.onsiteservice.common.annotation.dict.Dict;
import com.onsiteservice.common.annotation.user.CurrentUserId;
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.ValuationServiceOrderDTO;
import com.onsiteservice.constant.enums.ServiceOrderOpSourceEnum;
......@@ -91,4 +92,13 @@ public class ServiceOrderController {
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,13 +270,20 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
throw new ServiceException(BizCodeEnum.SERVICE_ORDER_CANNOT_FINISH);
}
User user = userMapper.selectByPrimaryKey(userId);
// 既不是客户 又不是客服
WorkUser user;
if (sourceEnum == ServiceOrderOpSourceEnum.MINI_APP) {
var miniUser = userMapper.selectByPrimaryKey(userId);
boolean isUser = serviceOrder.getAccountNo().equals(userId);
boolean isAdmin = !Objects.isNull(user) && user.getRoleType().equals(ServiceUserTypeEnum.ADMIN.getId());
boolean isAdmin = !Objects.isNull(miniUser) && miniUser.getRoleType().equals(ServiceUserTypeEnum.ADMIN.getId());
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);
......@@ -286,7 +293,7 @@ public class ServiceOrderService extends AbstractMapper<ServiceOrder> {
int result = serviceOrderMapper.updateByPrimaryKeySelective(serviceOrder);
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);
}
......
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