package com.ydtech.modules.admin.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.ydtech.core.page.HttpResult; 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.modules.base.controller.BaseController; import com.ydtech.modules.fnc.entity.InsPlyIncome; import com.ydtech.modules.order.entity.BasePageResult; 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; import java.util.Date; import java.util.HashMap; import java.util.List; @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.setDocumentary(afterAmount); } else { BigDecimal promotion = sysUserAccount.getPromotion(); BigDecimal afterAmount = promotion.subtract(amount); sysUserAccountEntity.setPromotion(afterAmount); } } sysUserAccountService.updateById(sysUserAccountEntity); } sysAmountAuditingVo.setAuditingStatus("3"); sysAmountAuditingVo.setAuditingUserId(BaseController.getUser().getId()); sysAmountAuditingVo.setAuditingTime(new Date()); BeanUtils.copyProperties(sysAmountAuditingVo, sysAmountAuditingEntity); baseMapper.updateById(sysAmountAuditingEntity); } } @Override public SysAmountAuditingEntity getByUserId(String userId) { return baseMapper.getByUserId(userId); } @Override public HttpResult> queryByVo(SysAmountAuditingVo sysAmountAuditingVo) { try{ HashMap params = new HashMap<>(); PageInfo> pageHelper = null; PageHelper.startPage(sysAmountAuditingVo.getPageNum(),sysAmountAuditingVo.getPageSize()); params.put("pageNum",sysAmountAuditingVo.getPageNum()); params.put("pageSize",sysAmountAuditingVo.getPageSize()); if(ObjectUtils.isNotEmpty(sysAmountAuditingVo.getStartTime())){ params.put("startDate",sysAmountAuditingVo.getStartTime().toString()); } if(ObjectUtils.isNotEmpty(sysAmountAuditingVo.getEndTime())){ params.put("endDate",sysAmountAuditingVo.getEndTime().toString()); } if(StringUtils.isNotEmpty(sysAmountAuditingVo.getAuditingStatus())){ params.put("auditingStatus",sysAmountAuditingVo.getAuditingStatus()); } if(StringUtils.isNotEmpty(sysAmountAuditingVo.getId())){ params.put("id",sysAmountAuditingVo.getId()); } if(StringUtils.isNotEmpty(sysAmountAuditingVo.getAmountStatus())){ params.put("amountStatus",sysAmountAuditingVo.getAmountStatus()); } List list = baseMapper.queryPageOrderNew(params); pageHelper=new PageInfo(list); BasePageResult pageResult=new BasePageResult(sysAmountAuditingVo.getPageNum(), sysAmountAuditingVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list); return HttpResult.ok(pageResult); }catch (Exception e){ e.printStackTrace(); return HttpResult.error("查询异常"); } } @Override public BasePageResult queryAppPage(SysAmountAuditingVo sysAmountAuditingVo) { String id = BaseController.getUser().getId(); sysAmountAuditingVo.setUserId(id); Page page = new Page<>(sysAmountAuditingVo.getPageNum(), sysAmountAuditingVo.getPageSize()); QueryWrapper wrapper = new QueryWrapper<>(); Page sysUserAccountHistoryPage = baseMapper.queryPageOrder(sysAmountAuditingVo, page); return new BasePageResult<>(sysAmountAuditingVo.getPageNum(), page.getSize(), sysUserAccountHistoryPage.getTotal(), page.getPages(), sysUserAccountHistoryPage.getRecords()); } }