| package cc.mrbird.febs.mall.quartz; | 
|   | 
| import cc.mrbird.febs.common.enumerates.AgentLevelEnum; | 
| import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; | 
| import cc.mrbird.febs.common.utils.MallUtils; | 
| import cc.mrbird.febs.mall.entity.MallMember; | 
| import cc.mrbird.febs.mall.entity.MallMoneyFlow; | 
| import cc.mrbird.febs.mall.mapper.MallMemberMapper; | 
| import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper; | 
| import cc.mrbird.febs.mall.service.IApiMallMemberService; | 
| import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; | 
| import cc.mrbird.febs.mall.service.impl.CommonService; | 
| import cn.hutool.core.collection.CollUtil; | 
| import cn.hutool.core.date.DateTime; | 
| import cn.hutool.core.date.DateUtil; | 
| import cn.hutool.core.util.StrUtil; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.scheduling.annotation.Scheduled; | 
| import org.springframework.stereotype.Component; | 
| import org.springframework.transaction.annotation.Transactional; | 
|   | 
| import java.math.BigDecimal; | 
| import java.math.RoundingMode; | 
| import java.util.Date; | 
| import java.util.List; | 
|   | 
| /** | 
|  * @author wzy | 
|  * @date 2021-09-28 | 
|  **/ | 
| @Slf4j | 
| @Component | 
| public class ProfitJob { | 
|   | 
|     @Autowired | 
|     private MallMoneyFlowMapper moneyFlowMapper; | 
|   | 
|     @Autowired | 
|     private MallMemberMapper memberMapper; | 
|   | 
|     @Autowired | 
|     private IApiMallMemberWalletService memberWalletService; | 
|   | 
|     @Autowired | 
|     private IApiMallMemberService memberService; | 
|   | 
|     @Scheduled(cron = "0 1 0 * * ?") | 
|     @Transactional(rollbackFor = Exception.class) | 
|     public void profitJob() { | 
|         log.info("推荐人返利执行"); | 
| //        DateTime yesterday = DateUtil.yesterday(); | 
| //        List<MallMoneyFlow> flows = moneyFlowMapper.selectMoneyFlowProfitByDate(yesterday); | 
| // | 
| //        if (CollUtil.isEmpty(flows)) { | 
| //            return; | 
| //        } | 
| // | 
| //        for (MallMoneyFlow flow : flows) { | 
| //            MallMember member = memberMapper.selectById(flow.getMemberId()); | 
| // | 
| //            List<MallMember> child = memberMapper.selectByIdAndNoLevel(member.getInviteId(), AgentLevelEnum.ZERO_LEVEL.name()); | 
| //            if (CollUtil.isEmpty(child)) { | 
| //                continue; | 
| //            } | 
| //            int size = child.size(); | 
| //            BigDecimal needReturn = flow.getAmount().multiply(BigDecimal.valueOf(0.1)); | 
| // | 
| //            String orderNo = MallUtils.getOrderNum("R"); | 
| //            String remarkFormat = "{}, 用户:{}, 利润分红: {}"; | 
| // | 
| //            BigDecimal returnMoney = needReturn.divide(BigDecimal.valueOf(size), 2, RoundingMode.DOWN); | 
| //            for (MallMember mallMember : child) { | 
| //                memberWalletService.addBalance(returnMoney, mallMember.getId()); | 
| // | 
| //                String remark = StrUtil.format(remarkFormat, DateUtil.format(yesterday, "yyyy-MM-dd"), member.getName(), returnMoney); | 
| //                memberService.addMoneyFlow(mallMember.getId(), returnMoney, MoneyFlowTypeEnum.PARENT_BONUS.getValue(), orderNo, null, remark, member.getId(), null); | 
| //            } | 
| // | 
| //            String remark = StrUtil.format(remarkFormat, DateUtil.format(yesterday, "yyyy-MM-dd"), member.getName(), needReturn); | 
| //            memberService.addMoneyFlow(member.getId(), needReturn.negate(), MoneyFlowTypeEnum.PARENT_BONUS.getValue(), orderNo, null, remark, null, null); | 
| //            memberWalletService.reduceBalance(needReturn, member.getId()); | 
| // | 
| //            moneyFlowMapper.updateIsReturnByMemberId(MallMoneyFlow.IS_RETURN_Y, flow.getMemberId()); | 
| //        } | 
|     } | 
| } |