package com.ydtech.modules.admin.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ydtech.modules.admin.dao.SysAmountAuditingMapper; import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity; import com.ydtech.modules.admin.model.po.SysUserAccount; import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo; import com.ydtech.modules.admin.service.SysAmountAuditingService; import com.ydtech.modules.admin.service.SysUserAccountService; import com.ydtech.utils.StringUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; @Service public class SysAmountAuditingServiceImpl extends ServiceImpl implements SysAmountAuditingService { @Autowired private SysUserAccountService sysUserAccountService; @Override @Transactional public void AmountReview(SysAmountAuditingVo sysAmountAuditingVo) { SysAmountAuditingEntity sysAmountAuditingEntity = new SysAmountAuditingEntity(); BigDecimal amount = sysAmountAuditingVo.getAmount(); String userId = sysAmountAuditingVo.getUserId(); SysUserAccount sysUserAccountEntity = new SysUserAccount(); // 用户扣减金额 if (StringUtils.isNotEmpty(userId)) { sysUserAccountEntity.setUserId(userId); SysUserAccount sysUserAccount = sysUserAccountService.getById(userId); if (ObjectUtils.isNotEmpty(sysUserAccount)) { String amountStatus = sysAmountAuditingVo.getAmountStatus(); if (StringUtils.isNotEmpty(amountStatus)) { if ("1".equals(amountStatus)) { BigDecimal handlingFee = sysUserAccount.getHandlingFee(); BigDecimal afterAmount = handlingFee.subtract(amount); sysUserAccountEntity.setHandlingFee(afterAmount); } else if ("2".equals(amountStatus)) { BigDecimal documentary = sysUserAccount.getDocumentary(); BigDecimal afterAmount = documentary.subtract(amount); sysUserAccountEntity.setHandlingFee(afterAmount); } else { BigDecimal promotion = sysUserAccount.getPromotion(); BigDecimal afterAmount = promotion.subtract(amount); sysUserAccountEntity.setHandlingFee(afterAmount); } } sysUserAccountService.updateById(sysUserAccountEntity); } sysAmountAuditingVo.setAuditingStatus("3"); BeanUtils.copyProperties(sysAmountAuditingVo, sysAmountAuditingEntity); baseMapper.updateById(sysAmountAuditingEntity); } } @Override public SysAmountAuditingEntity getByUserId(String userId) { return baseMapper.getByUserId(userId); } }