| | |
| | | |
| | | import java.lang.Exception; |
| | | import javax.annotation.Resource; |
| | | |
| | | 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.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; |
| | | import com.yeshi.makemoney.app.service.inter.goldcorn.GoldCornGetFrequencyConfigService; |
| | |
| | | import org.springframework.data.mongodb.core.query.Query; |
| | | |
| | | @Service |
| | | public class GoldCornGetFrequencyConfigServiceImpl implements GoldCornGetFrequencyConfigService{ |
| | | public class GoldCornGetFrequencyConfigServiceImpl implements GoldCornGetFrequencyConfigService { |
| | | |
| | | @Resource |
| | | private GoldCornGetFrequencyConfigDao goldCornGetFrequencyConfigDao; |
| | | @Resource |
| | | private GoldCornGetFrequencyConfigDao goldCornGetFrequencyConfigDao; |
| | | |
| | | @Override |
| | | public List<GoldCornGetFrequencyConfig> list(GoldCornGetFrequencyConfigQuery goldCornGetFrequencyConfigQuery, int page, int pageSize) { |
| | | DaoQuery daoQuery = new DaoQuery(); |
| | | try { |
| | | BeanUtil.copyProperties(goldCornGetFrequencyConfigQuery, daoQuery); |
| | | } catch (IllegalAccessException e) { |
| | | e.printStackTrace(); |
| | | @Override |
| | | public List<GoldCornGetFrequencyConfig> list(GoldCornGetFrequencyConfigQuery goldCornGetFrequencyConfigQuery, int page, int pageSize) { |
| | | DaoQuery daoQuery = new DaoQuery(); |
| | | daoQuery.type = goldCornGetFrequencyConfigQuery.getType(); |
| | | daoQuery.minValidateTime = goldCornGetFrequencyConfigQuery.toStartTime(); |
| | | daoQuery.maxValidateTime = goldCornGetFrequencyConfigQuery.toEndTime(); |
| | | daoQuery.start = (page - 1) * pageSize; |
| | | daoQuery.count = pageSize; |
| | | return goldCornGetFrequencyConfigDao.list(daoQuery); |
| | | } |
| | | daoQuery.start=(page-1)*pageSize; |
| | | daoQuery.count=pageSize; |
| | | return goldCornGetFrequencyConfigDao.list(daoQuery); |
| | | } |
| | | |
| | | @Override |
| | | public long count(GoldCornGetFrequencyConfigQuery goldCornGetFrequencyConfigQuery) { |
| | | DaoQuery daoQuery = new DaoQuery(); |
| | | try { |
| | | BeanUtil.copyProperties(goldCornGetFrequencyConfigQuery, daoQuery); |
| | | } catch (IllegalAccessException e) { |
| | | e.printStackTrace(); |
| | | @Override |
| | | public long count(GoldCornGetFrequencyConfigQuery goldCornGetFrequencyConfigQuery) { |
| | | DaoQuery daoQuery = new DaoQuery(); |
| | | daoQuery.type = goldCornGetFrequencyConfigQuery.getType(); |
| | | daoQuery.minValidateTime = goldCornGetFrequencyConfigQuery.toStartTime(); |
| | | daoQuery.maxValidateTime = goldCornGetFrequencyConfigQuery.toEndTime(); |
| | | return goldCornGetFrequencyConfigDao.count(daoQuery); |
| | | } |
| | | return goldCornGetFrequencyConfigDao.count(daoQuery); |
| | | } |
| | | |
| | | @Override |
| | | public GoldCornGetFrequencyConfig get(String id) { |
| | | Query query=new Query(); |
| | | query.addCriteria(Criteria.where("_id").is(id)); |
| | | return goldCornGetFrequencyConfigDao.findOne(query); |
| | | } |
| | | @Override |
| | | public GoldCornGetFrequencyConfig get(String id) { |
| | | Query query = new Query(); |
| | | query.addCriteria(Criteria.where("_id").is(id)); |
| | | return goldCornGetFrequencyConfigDao.findOne(query); |
| | | } |
| | | |
| | | @Override |
| | | public void add(GoldCornGetFrequencyConfig goldCornGetFrequencyConfig) throws Exception { |
| | | //查询主键ID是否存在 |
| | | if(goldCornGetFrequencyConfigDao.get(goldCornGetFrequencyConfig.getId())!=null){ |
| | | throw new Exception("已存在"); |
| | | } |
| | | @Override |
| | | public void add(GoldCornGetFrequencyConfig goldCornGetFrequencyConfig) throws Exception { |
| | | |
| | | if(goldCornGetFrequencyConfig.getCreateTime()==null){ |
| | | goldCornGetFrequencyConfig.setCreateTime(new Date()); |
| | | } |
| | | //保存 |
| | | goldCornGetFrequencyConfigDao.save(goldCornGetFrequencyConfig); |
| | | } |
| | | if (goldCornGetFrequencyConfig.getId() == null) { |
| | | goldCornGetFrequencyConfig.setId(goldCornGetFrequencyConfig.toId()); |
| | | } |
| | | |
| | | @Override |
| | | public void update(GoldCornGetFrequencyConfig goldCornGetFrequencyConfig) { |
| | | if(goldCornGetFrequencyConfig.getUpdateTime()==null){ |
| | | goldCornGetFrequencyConfig.setUpdateTime(new Date()); |
| | | } |
| | | //更新 |
| | | goldCornGetFrequencyConfigDao.updateSelective(goldCornGetFrequencyConfig); |
| | | } |
| | | //查询主键ID是否存在 |
| | | if (goldCornGetFrequencyConfigDao.get(goldCornGetFrequencyConfig.getId()) != null) { |
| | | throw new Exception("已存在"); |
| | | } |
| | | |
| | | @Override |
| | | public void delete(List<String> idList) { |
| | | for (String id : idList){ |
| | | goldCornGetFrequencyConfigDao.delete(id); |
| | | } |
| | | } |
| | | if (goldCornGetFrequencyConfig.getCreateTime() == null) { |
| | | goldCornGetFrequencyConfig.setCreateTime(new Date()); |
| | | } |
| | | //保存 |
| | | goldCornGetFrequencyConfigDao.save(goldCornGetFrequencyConfig); |
| | | } |
| | | |
| | | @Override |
| | | public void update(GoldCornGetFrequencyConfig goldCornGetFrequencyConfig) { |
| | | if (goldCornGetFrequencyConfig.getUpdateTime() == null) { |
| | | goldCornGetFrequencyConfig.setUpdateTime(new Date()); |
| | | } |
| | | //更新 |
| | | goldCornGetFrequencyConfigDao.updateSelective(goldCornGetFrequencyConfig); |
| | | } |
| | | |
| | | @Override |
| | | public void delete(List<String> idList) { |
| | | for (String id : idList) { |
| | | goldCornGetFrequencyConfigDao.delete(id); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public GoldCornGetFrequencyConfig getConfig(SystemEnum system, GoldCornGetType type, Date time) { |
| | | DaoQuery daoQuery = new DaoQuery(); |
| | | daoQuery.maxValidateTime = time; |
| | | daoQuery.type = type; |
| | | daoQuery.system = system; |
| | | daoQuery.count = 1; |
| | | daoQuery.sortList = Arrays.asList(new Sort.Order[]{Sort.Order.desc("validateTime")}); |
| | | |
| | | |
| | | List<GoldCornGetFrequencyConfig> list = goldCornGetFrequencyConfigDao.list(daoQuery); |
| | | if (list != null && list.size() > 0) { |
| | | return list.get(0); |
| | | } |
| | | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | } |