Commit 48e2ecfa by huluobin

死锁

parent 1494fb28
...@@ -5,12 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -5,12 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gogirl.application.market.discount.IVipServeService; import com.gogirl.application.market.discount.IVipServeService;
import com.gogirl.application.order.serve.ScheduleManageService; import com.gogirl.application.order.serve.ScheduleManageService;
import com.gogirl.application.order.serve.ScheduleServeService;
import com.gogirl.application.user.customer.CustomerBalanceService; import com.gogirl.application.user.customer.CustomerBalanceService;
import com.gogirl.application.xcx.GogirlTokenService; import com.gogirl.application.xcx.GogirlTokenService;
import com.gogirl.assembler.PurchaseSkuDTOAssembler; import com.gogirl.assembler.PurchaseSkuDTOAssembler;
import com.gogirl.assembler.ScheduleManageDTOAssembler; import com.gogirl.assembler.ScheduleManageDTOAssembler;
import com.gogirl.domain.market.discount.VipServe; import com.gogirl.domain.market.discount.VipServe;
import com.gogirl.domain.order.serve.ScheduleManage; import com.gogirl.domain.order.serve.ScheduleManage;
import com.gogirl.domain.order.serve.ScheduleServe;
import com.gogirl.domain.product.serve.BaseProduce; import com.gogirl.domain.product.serve.BaseProduce;
import com.gogirl.domain.store.store.StoreTechnician; import com.gogirl.domain.store.store.StoreTechnician;
import com.gogirl.domain.xcx.GogirlToken; import com.gogirl.domain.xcx.GogirlToken;
...@@ -21,7 +23,6 @@ import com.gogirl.infrastructure.mapper.product.purchase.PurchaseSkuMapper; ...@@ -21,7 +23,6 @@ import com.gogirl.infrastructure.mapper.product.purchase.PurchaseSkuMapper;
import com.gogirl.infrastructure.mapper.product.serve.BaseProduceMapper; import com.gogirl.infrastructure.mapper.product.serve.BaseProduceMapper;
import com.gogirl.infrastructure.util.SessionUtils; import com.gogirl.infrastructure.util.SessionUtils;
import com.gogirl.infrastructure.util.lock.CustomerIdLock; import com.gogirl.infrastructure.util.lock.CustomerIdLock;
import com.gogirl.infrastructure.util.lock.ScheduleServeIdLock;
import com.gogirl.infrastructure.util.lock.ScheduledLock; import com.gogirl.infrastructure.util.lock.ScheduledLock;
import com.gogirl.shared.order.*; import com.gogirl.shared.order.*;
import com.gogirl.shared.product.LeisureScheduleServeQuery; import com.gogirl.shared.product.LeisureScheduleServeQuery;
...@@ -50,6 +51,7 @@ import java.util.stream.Collectors; ...@@ -50,6 +51,7 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class ScheduleManageController { public class ScheduleManageController {
private final ScheduleServeService scheduleServeService;
private final ScheduleManageService scheduleManageService; private final ScheduleManageService scheduleManageService;
private final GogirlTokenService gogirlTokenService; private final GogirlTokenService gogirlTokenService;
private final CustomerBalanceService customerBalanceService; private final CustomerBalanceService customerBalanceService;
...@@ -246,12 +248,17 @@ public class ScheduleManageController { ...@@ -246,12 +248,17 @@ public class ScheduleManageController {
@RequestParam Integer scheduleServeId, @RequestParam Integer scheduleServeId,
@RequestParam Integer status, @RequestParam Integer status,
@RequestParam Integer forceLeisureConfig) { @RequestParam Integer forceLeisureConfig) {
ScheduleServeIdLock lock = ScheduleServeIdLock.getInstance(); ScheduleServe scheduleServe = scheduleServeService.getById(scheduleServeId);
if (scheduleServe.getSchId() == null) {
throw new InvalidParameterException();
}
int scheduleId = scheduleServe.getSchId();
ScheduledLock lock = ScheduledLock.getInstance();
try { try {
lock.lock(scheduleServeId); lock.lock(scheduleId);
scheduleManageService.updateScheduledServeStatus(scheduleServeId, status, forceLeisureConfig); scheduleManageService.updateScheduledServeStatus(scheduleServeId, status, forceLeisureConfig);
} finally { } finally {
lock.unlock(scheduleServeId); lock.unlock(scheduleId);
} }
return JsonResult.success(); return JsonResult.success();
} }
......
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