Sfoglia il codice sorgente

锁定订单bug修改

785834757 1 anno fa
parent
commit
0f9548eba3

+ 6 - 0
src/main/java/com/ydtech/modules/fnc/controller/CarSettleController.java

@@ -90,6 +90,12 @@ public class CarSettleController extends BaseController {
         return insOrdersService.getByCompanyId(orderNo, "accountingUser");
     }
 
+    @PostMapping("/lockFeeDetail")
+    @ApiOperation(value = "[2]锁定费用明细")
+    public HttpResult<OrderVo> lockFeeDetail(@RequestSingleParam(value = "orderNo") @Valid String orderNo) {
+        return insOrdersService.lockFeeDetail(orderNo);
+    }
+
     @PostMapping("/validateFeeDetail")
     @ApiOperation(value = "[2]校验查询费用明细是否占单")
     public HttpResult<OrderVo> validateFeeDetail(@RequestSingleParam(value = "orderNo") @Valid String orderNo) {

+ 2 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersService.java

@@ -101,6 +101,8 @@ public interface InsOrdersService extends IService<InsOrders> {
      */
     HttpResult<OrderVo> getByCompanyId(String companyId, String userId);
 
+    HttpResult lockFeeDetail(String orderNo);
+
     HttpResult validateFeeDetail(String companyId, String userId);
 
     HttpResult liftFeeDetail(String companyId);

+ 13 - 8
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -901,14 +901,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     @Override
     public HttpResult<OrderVo> getByCompanyId(@NotBlank(message = "子订单不能为空") String companyId, String userId) {
-        //获取缓存内的锁的订单
-        String orderUserId = redisTemplate.opsForValue().get("FEE_AUDIT:" + companyId);
-        if(Objects.nonNull(orderUserId)){
-            if(!BaseController.getUserId().equals(orderUserId)){
-                throw new SystemException("订单正在审核中,请稍后再试");
-            }
-        }
-        redisTemplate.opsForValue().set("FEE_AUDIT:"+companyId, BaseController.getUserId(),1800, TimeUnit.SECONDS);
         OrderVo orderAndAreaCompany = baseMapper.getOrderAndAreaCompany(companyId);
         //查询子订单的数据是否存在
         InsAreaCompanyInfo insAreaCompanyInfo = insAreaCompanyInfoMapper.selectOne(new LambdaQueryWrapper<InsAreaCompanyInfo>()
@@ -1121,6 +1113,19 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         feeDisplayService.setUpFeePresentationFormat(orderAndAreaCompany);
         return HttpResult.ok("success", orderAndAreaCompany);
     }
+    
+    @Override
+    public HttpResult lockFeeDetail(String orderNo){
+        //获取缓存内的锁的订单
+        String orderUserId = redisTemplate.opsForValue().get("FEE_AUDIT:" + orderNo);
+        if(Objects.nonNull(orderUserId)){
+            if(!BaseController.getUserId().equals(orderUserId)){
+                throw new SystemException("订单正在审核中,请稍后再试");
+            }
+        }
+        redisTemplate.opsForValue().set("FEE_AUDIT:"+orderNo, BaseController.getUserId(),1800, TimeUnit.SECONDS);
+        return HttpResult.ok("锁定订单");
+    }
 
     @Override
     public HttpResult validateFeeDetail(@NotBlank(message = "子订单不能为空") String companyId, String userId) {