gongzuming
2024-11-12 24f7f046f8854d63839ad52d0cff34ea45a0f449
src/main/java/com/mzl/flower/service/point/CustomerPointService.java
@@ -15,6 +15,7 @@
import com.mzl.flower.mapper.point.CustomerPointDetailMapper;
import com.mzl.flower.mapper.point.CustomerPointMapper;
import com.mzl.flower.service.BaseService;
import com.mzl.flower.service.payment.RedisLockService;
import com.mzl.flower.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@@ -36,10 +37,13 @@
    private final CustomerPointDetailMapper customerPointDetailMapper;
    private final  RedisLockService redisLockService;
    public CustomerPointService(CustomerPointMapper customerPointMapper, CustomerPointDetailMapper customerPointDetailMapper) {
    public CustomerPointService(CustomerPointMapper customerPointMapper, CustomerPointDetailMapper customerPointDetailMapper, RedisLockService redisLockService) {
        this.customerPointMapper = customerPointMapper;
        this.customerPointDetailMapper = customerPointDetailMapper;
        this.redisLockService = redisLockService;
    }
    public Page<CustomerPointDTO> queryPage(QueryCustomerPointDTO dto, Page page) {
@@ -79,6 +83,11 @@
    }
    public void updateCustomerPoint(CustomerPointDetail detail) {
        boolean lock = redisLockService.getObjectLock("LOCK_KEY_CUSTOMER_POINT_", detail.getUserId());
        if(!lock){
            return;
        }
        try {
        CustomerPoint point = customerPointMapper.selectOne(new LambdaQueryWrapper<CustomerPoint>()
                .eq(CustomerPoint::getCustomerId, detail.getCustomerId()));
        boolean isAdd = false;
@@ -116,7 +125,9 @@
        }else{
            customerPointMapper.updateById(point);
        }
        }finally {
            redisLockService.releaseObjectLock("LOCK_KEY_CUSTOMER_POINT_", detail.getUserId());
        }
    }
    public void deductionPoint(ChangePointDTO dto) {