| | |
| | | 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 { |
| | |
| | | @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); |
| | | } |
| | | } |