From 0e9b6603d4ae9d11c1fbc90257ce816c5807b8ff Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 28 十月 2022 16:55:02 +0800
Subject: [PATCH] 批量添加结算消息

---
 app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java |  167 ++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 110 insertions(+), 57 deletions(-)

diff --git a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java
index a2c9f1d..3679453 100644
--- a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java
+++ b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java
@@ -2,10 +2,21 @@
 
 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;
@@ -16,71 +27,113 @@
 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;
+    }
 
 
 }
\ No newline at end of file

--
Gitblit v1.8.0