Commit 48e2ecfa by huluobin

死锁

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