admin
2022-10-28 0e9b6603d4ae9d11c1fbc90257ce816c5807b8ff
app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java
@@ -6,16 +6,16 @@
import com.yeshi.makemoney.app.entity.SystemEnum;
import com.yeshi.makemoney.app.entity.goldcorn.GoldCornGetType;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Date;
import java.util.*;
import org.yeshi.utils.StringUtil;
import org.yeshi.utils.TimeUtil;
import org.yeshi.utils.bean.BeanUtil;
import java.util.List;
import com.yeshi.makemoney.app.dao.goldcorn.GoldCornGetFrequencyConfigDao;
import com.yeshi.makemoney.app.entity.goldcorn.GoldCornGetFrequencyConfig;
@@ -112,5 +112,28 @@
        return null;
    }
    @Override
    public List<GoldCornGetFrequencyConfig> listByTypes(List<GoldCornGetType> typeList, SystemEnum system, Date date) {
        Criteria[] ors = new Criteria[typeList.size()];
        for (int i = 0; i < ors.length; i++) {
            ors[i] = Criteria.where("type").is(typeList.get(i));
        }
        List<AggregationOperation> list = new ArrayList<>();
        list.add(Aggregation.match(new Criteria().orOperator(ors).and("validateTime").lte(date)));
        list.add(Aggregation.sort(Sort.Direction.DESC, "validateTime"));
        list.add(Aggregation.group("type").first("id").as("id"));
        list.add(Aggregation.lookup("goldCornGetFrequencyConfig", "id", "_id", "config"));
        list.add(Aggregation.project("config"));
        AggregationResults<Map> results = goldCornGetFrequencyConfigDao.aggregate(list, Map.class);
        List<GoldCornGetFrequencyConfig> resultList = new ArrayList<>();
        for (Map map : results.getMappedResults()) {
            List<GoldCornGetFrequencyConfig> config = (List<GoldCornGetFrequencyConfig>) map.get("config");
            resultList.addAll(config);
        }
        return resultList;
    }
}