From e86d554ee5476d89845f86a49864d990180542b5 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 18 七月 2025 20:52:13 +0800 Subject: [PATCH] 修改bug --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AppUserServiceImpl.java | 122 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 118 insertions(+), 4 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AppUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AppUserServiceImpl.java index 49bf2ad..9276ea6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AppUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AppUserServiceImpl.java @@ -4,28 +4,142 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.system.domain.Agreement; -import com.ruoyi.system.domain.User; -import com.ruoyi.system.mapper.AgreementMapper; -import com.ruoyi.system.mapper.AppUserMapper; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.exception.ServiceException; +import com.ruoyi.system.domain.*; +import com.ruoyi.system.mapper.*; import com.ruoyi.system.pojo.dto.AddAgreementDTO; import com.ruoyi.system.pojo.dto.AppUserPageDTO; +import com.ruoyi.system.pojo.dto.UpdateBalanceDTO; +import com.ruoyi.system.pojo.model.BuyerInfoAndOrder; import com.ruoyi.system.pojo.vo.AppUserPageVO; +import com.ruoyi.system.pojo.vo.AppUserVO; +import com.ruoyi.system.pojo.vo.InviteUser; import com.ruoyi.system.pojo.vo.SysDeptPageVO; import com.ruoyi.system.service.AgreementService; import com.ruoyi.system.service.AppUserService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.Duration; +import java.time.LocalDateTime; +import java.time.temporal.ChronoUnit; +import java.util.List; +import java.util.stream.Collectors; + +import static com.ruoyi.common.utils.SecurityUtils.getLoginUser; @Service public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, User> implements AppUserService { + @Resource + private OrderMapper orderMapper; + + @Resource + private CompanyMapper companyMapper; + + @Resource + private AccountDetailMapper accountDetailMapper; @Override public IPage<AppUserPageVO> getAppUserPage(AppUserPageDTO dto) { IPage<SysDeptPageVO> iPage = new Page<>(dto.getPageNum(), dto.getPageSize()); return this.baseMapper.getAppUserPage(iPage,dto); } + + @Override + public AppUserVO detail(String id) { + //1.基础信息 + AppUserVO vo=this.baseMapper.getDetailInfoById(id); + //2.计算待入账金额 + BigDecimal recorded=new BigDecimal("0.00"); + //2.1查询待处理中的订单 + List<BuyerInfoAndOrder> orders=companyMapper.getProcessingOrdersByUserId(id); + + //2.2计算订单金额 扣减超时订单金额 + for(BuyerInfoAndOrder order :orders) { + BigDecimal total = new BigDecimal("0.00"); + order.setPrice(order.getPrice()==null?BigDecimal.ZERO:order.getPrice()); + order.setCommissionPrice(order.getCommissionPrice()==null?BigDecimal.ZERO:order.getCommissionPrice()); + order.setCommissionPlatform(order.getCommissionPlatform()==null?BigDecimal.ZERO:order.getCommissionPlatform()); + total = total.add(order.getPrice()).subtract(order.getCommissionPrice()).subtract(order.getCommissionPlatform()); + System.out.println(total); + /*//扣减超时订单 + //到期时间 支付时间 + 预计时间 + 新增时间 + LocalDateTime end = order.getPayTime().plusDays(order.getEstimatedDays()).plusDays(order.getAddDay()); + LocalDateTime now = LocalDateTime.now();//计算扣费时间 + if (!now.isAfter(end)) { + recorded = recorded.add(total); + break; + } + // 计算两个时间点的差值(精确到秒) + long seconds = ChronoUnit.SECONDS.between(end, now); + // 向上取整:超过时间不满24小时按一天计算 + long days= (seconds + 86399) / 86400;//24小时 + //计算天数差 + BigDecimal dailyAmount = new BigDecimal("100.00"); + total = total.subtract((dailyAmount.multiply(BigDecimal.valueOf(days))));*/ + recorded = recorded.add(total); + } + + //2.3查询待处理中的分佣订单 + BigDecimal commissionPrice = orderMapper.getProcessingCommissionPriceByShareUserId(id); + //2.4累计 + recorded = recorded.add(commissionPrice); + vo.setRecorded(recorded); + //3.下级用户 + List<InviteUser> list = this.baseMapper.getInviteUserListByInviteId(id); + vo.setInviteUserList(list); + + List<AccountDetail> list1 = accountDetailMapper.selectList(new LambdaQueryWrapper<AccountDetail>().eq(AccountDetail::getCategory, 2).eq(AccountDetail::getStatus, 1).eq(AccountDetail::getUserId, id)); + BigDecimal reduce2 = list1.stream().map(AccountDetail::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add); + vo.setRecorded(reduce2); + return vo; + } + + @Override + public void frozen(String id) { + //查看用户是否存在 + User user = this.baseMapper.selectById(id); + if (null == user|| user.getIsDelete() != 0|| user.getStatus() == 3) { + throw new ServiceException("用户不存在"); + } + user.setStatus(user.getStatus()==1?2:1); + user.setUpdateTime(LocalDateTime.now()); + LoginUser loginUser = getLoginUser(); + user.setUpdateBy(loginUser.getUserId()); + this.baseMapper.updateById(user); + + } + + @Transactional + @Override + public void balance(UpdateBalanceDTO dto) { + User user = this.baseMapper.selectById(dto.getId()); + if (null == user|| user.getIsDelete() != 0|| user.getStatus() == 3) { + throw new ServiceException("用户不存在"); + } + //添加明细表 + AccountDetail accountDetail = new AccountDetail(); + accountDetail.setUserId(dto.getId()); + accountDetail.setType(dto.getType()); + accountDetail.setMoney(dto.getMoney()); + accountDetail.setCategory(6); + accountDetail.setRemark(dto.getRemark()); + accountDetailMapper.insert(accountDetail); + //修改用户余额 + if (dto.getType()==1){ + //加余额 + user.setBalance(user.getBalance().add(accountDetail.getMoney())); + }else { + //减余额 + user.setBalance(user.getBalance().subtract(accountDetail.getMoney())); + } + user.setUpdateTime(LocalDateTime.now()); + user.setUpdateBy(getLoginUser().getUserId()); + this.baseMapper.updateById(user); + } } -- Gitblit v1.7.1