Pu Zhibing
2 天以前 4f9707811eef19b7c9f59d587d05208b40a23b54
增加redis锁
2个文件已修改
45 ■■■■■ 已修改文件
DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -84,6 +84,8 @@
    @Value("${callbackPath}")
    private String callbackPath;
    @Autowired
    private RedisUtil redisUtil;
    /**
@@ -94,6 +96,22 @@
     */
    @Override
    public ResultUtil saveData(Reassign reassign, Integer uid, Integer type) throws Exception {
        boolean lock = redisUtil.lock(reassign.getOrderId() + "_reassign", 10);
        if(!lock){
            int num1 = 1;
            while (num1 <= 10){
                Thread.sleep(3000);//等待3秒
                lock = redisUtil.lock(reassign.getOrderId() + "_reassign", 10);
                if(lock){
                    break;
                }else{
                    num1++;
                }
            }
        }
        ResultUtil resultUtil = ResultUtil.success();
        try {
        type = null == type ? 2 : type;//现目前微信只支持小程序支付
        String content = reassign.getRemark();
        if(ToolUtil.isNotEmpty(content)){
@@ -103,7 +121,6 @@
            }
        }
        reassign.setRemark(content);
        ResultUtil resultUtil = ResultUtil.success();
        Driver driver = driverService.selectById(uid);
        // TODO: 2020/11/12 司机端不控制重复提交(如果重复提交且未支付,直接将之前的数据删除)
//        Reassign query = reassignMapper.query(uid, null, null, null, 1);
@@ -231,6 +248,11 @@
//                }
            }
        }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            redisUtil.unlock(reassign.getOrderId() + "_reassign");
        }
        return resultUtil;
    }
UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -672,10 +672,24 @@
     */
    @Override
    public ResultUtil cancleOrderPrivateCar(Integer id, Integer payType, Integer cancleId, Integer type) throws Exception {
        boolean lock = redisUtil.lock(id + "_cancleOrder", 10);
        if(!lock){
            int num1 = 1;
            while (num1 <= 10){
                Thread.sleep(3000);//等待3秒
                lock = redisUtil.lock(id + "_cancleOrder", 10);
                if(lock){
                    break;
                }else{
                    num1++;
                }
            }
        }
        ResultUtil resultUtil = ResultUtil.success("");
        try {
        OrderPrivateCar orderPrivateCar = this.selectById(id);
        Integer uid = orderPrivateCar.getUserId();
        UserInfo userInfo = userInfoService.selectById(uid);
        ResultUtil resultUtil = ResultUtil.success("");
        if(null == orderPrivateCar){
            return ResultUtil.error("取消订单失败,订单信息有误", "");
@@ -814,6 +828,11 @@
                systemNoticeService.addSystemNotice(1, "您已使用余额成功支付取消订单费用,谢谢使用!", orderPrivateCar.getUserId(), 1);
            }
        }
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            redisUtil.unlock(id + "_cancleOrder");
        }
        return resultUtil;
    }