admin
2020-05-20 98b1a0affd69bbe63223c21fdd2c404e8bedfccb
fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderMoneyDailyCountServiceImpl.java
@@ -14,6 +14,7 @@
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.TimeUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService;
import com.yeshi.fanli.vo.order.OrderRankingVO;
@Service
public class OrderMoneyDailyCountServiceImpl implements OrderMoneyDailyCountService {
@@ -21,56 +22,121 @@
   @Resource
   private OrderMoneyDailyCountDao orderMoneyDailyCountDao;
   @Override
   @RequestSerializableByKeyService(key = "#record.uid")
   public void saveDailyCount(OrderMoneyDailyCount record) {
      if (record.getUid() == null || record.getCountDay() == null || record.getSourceType() == null) {
      if (record.getUid() == null || record.getCountDay() == null) {
         return; // 参数不全
      }
      String gernalTime = TimeUtil.getGernalTime(record.getCountDay().getTime());
      String id = StringUtil.Md5(record.getUid() + record.getSourceType().name() + gernalTime);
      // id
      String id = record.getUid() + "#";
      if (record.getSourceType() != null)
         id += record.getSourceType().name() + "#";
      id += gernalTime;
      id = StringUtil.Md5(id);
      record.setId(id);
      // 统计日期-年月日
      record.setCountDay(new Date(TimeUtil.convertDateToTemp(gernalTime)));
      SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy-MM");
      record.setYearMonth(formatMonth.format(record.getCountDay()) );
       OrderMoneyDailyCount dailyCount = orderMoneyDailyCountDao.getById(id);
      if (dailyCount == null) {
         // 选择性更新
         orderMoneyDailyCountDao.save(record);
      } else {
         // 选择性插入
      record.setYearMonth(formatMonth.format(record.getCountDay()));
      OrderMoneyDailyCount dailyCount = orderMoneyDailyCountDao.get(id);
      if (dailyCount != null) {
         orderMoneyDailyCountDao.updateSelective(record);
      } else {
         initData(record);
         record.setUpdateTime(new Date());
         orderMoneyDailyCountDao.save(record);
      }
   }
   private void initData(OrderMoneyDailyCount record) {
      if (record.getIncome() == null)
         record.setIncome(0);
      if (record.getIncomeTeam() == null)
         record.setIncomeTeam(0);
      if (record.getOrderNum() == null)
         record.setOrderNum(0);
      if (record.getOrderNumTeam() == null)
         record.setOrderNumTeam(0);
      if (record.getTeamReward() == null)
         record.setTeamReward(0);
      if (record.getTeamRewardNum() == null)
         record.setTeamRewardNum(0);
      if (record.getTeamSubsidy() == null)
         record.setTeamSubsidy(0);
      if (record.getTeamSubsidyNum() == null)
         record.setTeamSubsidyNum(0);
      if (record.getDirectOrderNum() == null)
         record.setDirectOrderNum(0);
      if (record.getInDirectOrderNum() == null)
         record.setInDirectOrderNum(0);
      if (record.getBeyondOrderNum() == null)
         record.setBeyondOrderNum(0);
   }
   @Override
   public List<OrderMoneyDailyCount> getByUid(Long uid) {
      return orderMoneyDailyCountDao.query(uid, null, null);
   }
   
   @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) {
   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) {
   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) {
   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);
   }
   @Override
   public List<OrderMoneyDailyCount> sumTeamGroupByCountDay(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.sumTeamGroupByCountDay(uid, minDay, maxDay);
   }
   @Override
   public List<OrderMoneyDailyCount> sumTeamGroupByYearMonth(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.sumTeamGroupByYearMonth(uid, minDay, maxDay);
   }
   
   @Override
   public List<OrderMoneyDailyCount>  sumGroupByYearMonth(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.sumGroupByYearMonth(uid, minDay, maxDay);
   public List<OrderMoneyDailyCount> sumTeamOrderNumGroupByCountDay(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.sumTeamOrderNumGroupByCountDay(uid, minDay, maxDay);
   }
   @Override
   public List<OrderMoneyDailyCount> sumTeamOrderNumGroupByYearMonth(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.sumTeamOrderNumGroupByYearMonth(uid, minDay, maxDay);
   }
   @Override
   public List<OrderMoneyDailyCount> sumTeamOrderNumGroupByUid(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.sumTeamOrderNumGroupByUid(uid, minDay, maxDay);
   }
   @Override
   public List<OrderRankingVO> getRankingByOrderNum(Long uid, Date minDay, Date maxDay) {
      return orderMoneyDailyCountDao.getRankingByOrderNum(uid, minDay, maxDay);
   }
}