Browse Source

fix: 缺失计算代码优化

chenjianhua 6 months ago
parent
commit
3bc2912d14

+ 0 - 160
service-manage/src/main/java/com/simuwang/manage/task/DataSynchronizationTask.java

@@ -1,160 +0,0 @@
-package com.simuwang.manage.task;
-
-import cn.hutool.core.date.DateUtil;
-import com.simuwang.base.common.util.DateUtils;
-import com.simuwang.base.common.util.StringUtil;
-import com.simuwang.base.mapper.core.CoreDistributionMapper;
-import com.simuwang.base.mapper.core.SrcNavMapper;
-import com.simuwang.base.mapper.daq.DistributionMapper;
-import com.simuwang.base.mapper.daq.NavMapper;
-import com.simuwang.base.mapper.daq.system.SysConfigMapper;
-import com.simuwang.base.pojo.dos.DistributionDO;
-import com.simuwang.base.pojo.dos.NavDO;
-import com.simuwang.base.pojo.dos.SysConfigDO;
-import com.simuwang.base.pojo.dos.core.CoreDistributionDO;
-import com.simuwang.base.pojo.dos.core.SrcNavDO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 数据同步
- * Author:   chenjianhua
- * Date:     2024/10/25 13:59
- * Description: ${DESCRIPTION}
- */
-@Component
-public class DataSynchronizationTask {
-
-    @Autowired
-    private NavMapper navMapper;
-
-    @Autowired
-    private SrcNavMapper srcNavMapper;
-
-    @Autowired
-    private SysConfigMapper sysConfigMapper;
-
-    @Autowired
-    private DistributionMapper distributionMapper;
-    @Autowired
-    private CoreDistributionMapper coreDistributionMapper;
-
-    private static final Integer maxNum = 100000;
-
-    public void synchronization() {
-        String startDate = sysConfigMapper.selectConfigByKey("last_data_synchronization_time");
-        if (StringUtil.isNull(startDate)) {
-            //沒有配置就新增一个
-            saveConfig();
-        }
-        String endDate = DateUtil.now();
-        long total = navMapper.countNavByTime(startDate, endDate);
-        if (total > maxNum) {
-            Map<String,Long> idMap = navMapper.selectMaxMinId(startDate, endDate);
-            Long minId = idMap.get("minId");
-            Long maxId = idMap.get("maxId");
-            long times = (maxId-minId)%maxNum==0?(maxId-minId)/maxNum:(maxId-minId)/maxNum+1;
-            long startIdx = minId;
-            for(int idx=1;idx <= times;idx++){
-                long endIdx = startIdx+idx*maxNum;
-                if(endIdx >= maxId){
-                    endIdx = maxId;
-                }
-                List<NavDO> navDOList = navMapper.selectNavListById(minId,maxId,startDate, endDate);
-                saveSrcNavList(navDOList);
-                startIdx = endIdx;
-            }
-            return;
-        }
-        List<NavDO> navDOList = navMapper.selectNavListByTime(startDate, endDate);
-        saveSrcNavList(navDOList);
-        //更新分红
-        List<DistributionDO> distributionDOList = distributionMapper.selectDistributeListByTime(startDate, endDate);
-        saveDistribute(distributionDOList);
-        //更新最后任务时间
-        updateConfig(endDate);
-    }
-
-    private void saveDistribute(List<DistributionDO> distributionDOList) {
-        List<CoreDistributionDO> coreDistributionDOList = new ArrayList<>();
-        for(DistributionDO distribution : distributionDOList){
-            CoreDistributionDO coreDistributionDO = new CoreDistributionDO();
-            coreDistributionDO.setDistribution(distribution.getDistribution());
-            coreDistributionDO.setDistributeDate(distribution.getDistributeDate());
-            coreDistributionDO.setDistributeType(distribution.getDistributeType());
-            coreDistributionDO.setFundId(distribution.getFundId());
-            coreDistributionDO.setCreateTime(distribution.getCreateTime());
-            coreDistributionDO.setUpdaterId(distribution.getUpdaterId());
-            coreDistributionDO.setCreatorId(distribution.getCreatorId());
-            coreDistributionDO.setUpdateTime(distribution.getUpdateTime());
-            coreDistributionDO.setIsvalid(distribution.getIsvalid());
-            coreDistributionDOList.add(coreDistributionDO);
-            if(coreDistributionDOList.size() >= 500){
-                coreDistributionMapper.saveCoreDistribution(coreDistributionDOList);
-                coreDistributionDOList.clear();
-            }
-        }
-        if(coreDistributionDOList.size() > 0){
-            coreDistributionMapper.saveCoreDistribution(coreDistributionDOList);
-            coreDistributionDOList.clear();
-        }
-    }
-
-    private void updateConfig(String endDate) {
-        SysConfigDO sysConfigDO = new SysConfigDO();
-        sysConfigDO.setConfigKey("last_data_synchronization_time");
-        sysConfigDO.setConfigName("数据同步最后时间");
-        sysConfigDO.setConfigValue(endDate);
-        sysConfigMapper.updateConfigByKey(sysConfigDO);
-    }
-
-    private void saveConfig() {
-        SysConfigDO sysConfigDO = new SysConfigDO();
-        sysConfigDO.setIsvalid(1);
-        sysConfigDO.setCreateTime(DateUtils.getNowDate());
-        sysConfigDO.setUpdateTime(DateUtils.getNowDate());
-        sysConfigDO.setConfigType("1");
-        sysConfigDO.setConfigKey("last_data_synchronization_time");
-        sysConfigDO.setConfigName("数据同步最后时间");
-        sysConfigDO.setConfigValue(DateUtil.now());
-        sysConfigDO.setRemark("数据同步最后时间");
-        sysConfigDO.setCreatorId(1);
-        sysConfigDO.setUpdaterId(1);
-        sysConfigMapper.insertConfig(sysConfigDO);
-    }
-
-    public void saveSrcNavList(List<NavDO> navDOList){
-        List<SrcNavDO> srcNavDOList = new ArrayList<>();
-        for (NavDO navDO : navDOList) {
-            SrcNavDO srcNavDO = new SrcNavDO();
-//            srcNavDO.setId(navDO.getId());
-            srcNavDO.setPriceDate(navDO.getPriceDate());
-            srcNavDO.setFundId(navDO.getFundId());
-            srcNavDO.setNav(navDO.getNav());
-            srcNavDO.setCumulativeNavCrawl(navDO.getCumulativeNavWithdrawal());
-            srcNavDO.setAppType(1);
-            srcNavDO.setNavSource(1);
-            srcNavDO.setCreateTime(navDO.getCreateTime());
-            srcNavDO.setUpdateTime(navDO.getUpdateTime());
-            srcNavDO.setCreatorId(navDO.getCreatorId());
-            srcNavDO.setUpdaterId(navDO.getUpdaterId());
-            srcNavDO.setIsvisible(1);
-            srcNavDO.setSourceId(1);
-            srcNavDO.setIsvalid(navDO.getIsvalid());
-            srcNavDO.setNavMark(null);
-            srcNavDOList.add(srcNavDO);
-            if(srcNavDOList.size() >= 500){
-                srcNavMapper.saveSrcNav(srcNavDOList);
-                srcNavDOList.clear();
-            }
-        }
-        if(srcNavDOList.size() > 0){
-            srcNavMapper.saveSrcNav(srcNavDOList);
-            srcNavDOList.clear();
-        }
-    }
-}