admin
2021-06-30 a3304721c2e45e0f2ebd3139fdd623353f2ac72a
service-lijin/src/main/java/com/ks/lijin/service/manager/LijinOrderManager.java
@@ -1,11 +1,26 @@
package com.ks.lijin.service.manager;
import com.ks.lijin.dao.TaoBaoOrderRecordDao;
import com.ks.lijin.mapper.LiJinExpendRecordMapper;
import com.ks.lijin.mapper.LiJinProviderAccountMapper;
import com.ks.lijin.pojo.DO.LiJinExpendRecord;
import com.ks.lijin.pojo.DO.LiJinProviderTaoKeAccount;
import com.ks.lijin.pojo.DO.TaoBaoOrderRecord;
import com.ks.lijin.pojo.DTO.taobao.TaoKeAppInfo;
import com.ks.lijin.pojo.DTO.taobao.TaoLiJinReportDTO;
import com.ks.lijin.service.LiJinProviderAccountService;
import com.ks.lijin.utils.taobao.TaoKeApiUtil;
import com.ks.vip.exception.LijinBalanceException;
import com.ks.vip.pojo.DO.UserLijinRecord;
import com.ks.vip.service.LijinBalanceService;
import com.ks.vip.service.LijinRecordService;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Component;
import org.yeshi.utils.TimeUtil;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
 * 礼金订单管理
@@ -18,6 +33,18 @@
    @Resource
    private LijinDangerGoodsManager lijinDangerGoodsManager;
    @Resource
    private LiJinExpendRecordMapper liJinExpendRecordMapper;
    @Resource
    private LiJinProviderAccountMapper liJinProviderAccountMapper;
    @Reference(version = "1.0", check = false)
    private LijinBalanceService lijinBalanceService;
    @Reference(version = "1.0", check = false)
    private LijinRecordService lijinRecordService;
    /**
     * 保存淘宝订单
@@ -44,4 +71,58 @@
    }
    public void syncOnGoingLijin() {
        long now = System.currentTimeMillis();
        Date maxCreateTime = new Date(now - 1000 * 60 * 2);
        Date minCreateTime = new Date(maxCreateTime.getTime() - 1000 * 60 * 60 * 24L);
        long count = liJinExpendRecordMapper.countOnGoingLijin(minCreateTime, maxCreateTime);
        int page = (int) (count % 100 == 0 ? count / 100 : count / 100 + 1);
        for (int i = 0; i < page; i++) {
            List<LiJinExpendRecord> recordList = liJinExpendRecordMapper.listOnGoingLijin(minCreateTime, maxCreateTime, 100 * i, 100);
            if (recordList != null) {
                for (LiJinExpendRecord record : recordList) {
                    LiJinProviderTaoKeAccount account = liJinProviderAccountMapper.selectByPrimaryKey(record.getAccountId());
                    TaoLiJinReportDTO reportDTO = TaoKeApiUtil.taolijinReport(record.getRightsId(), new TaoKeAppInfo(account.getAppKey(), account.getAppSecret(), account.getPid()));
                    if (reportDTO != null) {
                        //有数据
                        if (reportDTO.getFp_refund_num() != null || reportDTO.getRefund_num() != null || reportDTO.getUnfreeze_num() != null || reportDTO.getUse_num() != null || reportDTO.getWin_num() != null) {
                            LiJinExpendRecord update = new LiJinExpendRecord(record.getId());
                            update.setRefundAmount(reportDTO.getRefund_amount());
                            update.setRefundNum(reportDTO.getRefund_num());
                            update.setUnfreezeAmount(reportDTO.getUnfreeze_amount());
                            update.setUnfreezeNum(reportDTO.getUnfreeze_num());
                            update.setUseAmount(reportDTO.getUse_amount());
                            update.setUseNum(reportDTO.getUse_num());
                            update.setWinAmount(reportDTO.getUse_amount());
                            update.setWinNum(reportDTO.getWin_num());
                            update.setUpdateTime(new Date());
                            update.setPreCommissionAmount(reportDTO.getPre_commission_amount());
                            liJinExpendRecordMapper.updateByPrimaryKeySelective(update);
                        }
                        //判断是否为当天创建
                        if (!TimeUtil.getGernalTime(now, "yyyyMMdd").equalsIgnoreCase(TimeUtil.getGernalTime(record.getCreateTime().getTime(), "yyyyMMdd"))) {
                            //不是当天创建的,而且没有使用
                            if (reportDTO.getUse_num() == null || reportDTO.getUse_num() == 0) {
                                UserLijinRecord record1 = lijinRecordService.getRecord(record.getUid(), UserLijinRecord.TYPE_ADD, UserLijinRecord.Category.createGoodsLijin.name(), record.getId() + "");
                                if (record1 != null) {
                                    continue;
                                }
                                try {
                                    lijinBalanceService.addLijin(record.getUid(), record.getMoney(), "未抵退回", UserLijinRecord.Category.createGoodsLijin.name(), record.getId() + "");
                                } catch (LijinBalanceException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}