admin
2020-05-13 60a099a7edfd81a3b10c766e113c019cdef6cd3d
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneyDailyCountServiceImpl.java
@@ -1,5 +1,7 @@
package com.yeshi.fanli.service.impl.order;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@@ -20,34 +22,63 @@
   @Resource
   private OrderMoneyDailyCountDao orderMoneyDailyCountDao;
   @Override
   @RequestSerializableByKeyService(key = "#record.uid")
   public void saveDailyCount(OrderMoneyDailyCount record) {
      if (record.getUid() == null || record.getCountDay() == null || StringUtil.isNullOrEmpty(record.getSourceType())) {
      if (record.getUid() == null || record.getCountDay() == null || record.getSourceType() == null) {
         return; // 参数不全
      }
      String gernalTime = TimeUtil.getGernalTime(record.getCountDay().getTime());
      String id = StringUtil.Md5(record.getUid() + record.getSourceType() + gernalTime);
      String id = StringUtil.Md5(record.getUid() + "#" + record.getSourceType().name() + "#" + gernalTime);
      // id
      record.setId(id);
      // 统计日期-年月日
      record.setCountDay(new Date(TimeUtil.convertDateToTemp(gernalTime)));
       OrderMoneyDailyCount dailyCount = orderMoneyDailyCountDao.getById(id);
      if (dailyCount == null) {
      SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy-MM");
      record.setYearMonth(formatMonth.format(record.getCountDay()));
      OrderMoneyDailyCount dailyCount = orderMoneyDailyCountDao.getById(id);
      if (dailyCount != null) {
         // 选择性更新
         orderMoneyDailyCountDao.save(record);
         orderMoneyDailyCountDao.updateSelective(record);
      } else {
         // 选择性插入
         orderMoneyDailyCountDao.updateSelective(record);
         if (record.getIncome() == null)
            record.setIncome(BigDecimal.valueOf(0));
         if (record.getIncomeTeam() == null)
            record.setIncomeTeam(BigDecimal.valueOf(0));
         if (record.getOrderNum() == null)
            record.setOrderNum(0);
         if (record.getOrderNumTeam() == null)
            record.setOrderNumTeam(0);
         orderMoneyDailyCountDao.save(record);
      }
   }
   @Override
   public List<OrderMoneyDailyCount> query(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.query(uid, minDay, maxDay);
   }
   @Override
   public List<OrderMoneyDailyCount> sumGroupBySourceType(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.sumGroupBySourceType(uid, minDay, maxDay);
   }
   @Override
   public List<OrderMoneyDailyCount> sumTeamGroupBySourceType(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.sumTeamGroupBySourceType(uid, minDay, maxDay);
   }
   @Override
   public List<OrderMoneyDailyCount> sumGroupByCountDay(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.sumGroupByCountDay(uid, minDay, maxDay);
   }
   @Override
   public List<OrderMoneyDailyCount> sumGroupByYearMonth(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.sumGroupByYearMonth(uid, minDay, maxDay);
   }
}