业务功能需求:
- 根据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);
}
}