| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |