業務功能需求:
- 根據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 {@Overridepublic 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);}
}