反向业务判断逻辑

业务功能需求:

  • 根据id扣减用户余额
    包括:
  • 判断用户状态是否正常
  • 判断用户余额是否充足

正向逻辑:
判断用户为正常下,判断用户余额充足,进行余额扣减;
===》正向逻辑,多重嵌套,代码不美观。

负向逻辑:
判断用户状态为异常,退出;
判断用户余额不足,退出;
最后扣减余额。

代码示例:

package com.itheima.mp.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.itheima.mp.domain.po.User;
import com.itheima.mp.mapper.UserMapper;
import com.itheima.mp.service.IUserService;
import org.springframework.stereotype.Service;

@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
    @Override
    public void deductBalance(Long id, Integer money) {
        // 1.查询用户
        User user = getById(id);
        // 2.判断用户状态
        if (user == null || user.getStatus() == 2) {
            throw new RuntimeException("用户状态异常");
        }
        // 3.判断用户余额
        if (user.getBalance() < money) {
            throw new RuntimeException("用户余额不足");
        }
        // 4.扣减余额
        baseMapper.deductMoneyById(id, money);
    }
}

相关推荐

  1. 反向业务判断逻辑

    2024-07-10 00:58:05       22 阅读
  2. 业务逻辑业务安全

    2024-07-10 00:58:05       32 阅读
  3. 浅谈业务逻辑漏洞

    2024-07-10 00:58:05       38 阅读
  4. OpenCart程序结构与业务逻辑

    2024-07-10 00:58:05       51 阅读
  5. 云备份客户端业务实现逻辑

    2024-07-10 00:58:05       33 阅读
  6. 小程序项目业务逻辑回忆1

    2024-07-10 00:58:05       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 00:58:05       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 00:58:05       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 00:58:05       58 阅读
  4. Python语言-面向对象

    2024-07-10 00:58:05       69 阅读

热门阅读

  1. 决策树构建精要:算法步骤与实现细节

    2024-07-10 00:58:05       21 阅读
  2. 我们为什么要学数据库?

    2024-07-10 00:58:05       20 阅读
  3. redis的setnx实现分布式锁

    2024-07-10 00:58:05       30 阅读
  4. Bert 变种, T5模型

    2024-07-10 00:58:05       21 阅读
  5. Docker实战教程(一)

    2024-07-10 00:58:05       24 阅读
  6. Visual Studio编译优化选项

    2024-07-10 00:58:05       19 阅读
  7. Pywinauto:强大的Windows 应用程序测试工具

    2024-07-10 00:58:05       23 阅读
  8. Linux grep技巧 结合awk查询

    2024-07-10 00:58:05       16 阅读
  9. Appium:强大的移动应用测试工具

    2024-07-10 00:58:05       21 阅读