package com.yeshi.fanli.service.impl.order;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.fanli.dao.order.OrderMoneyDailyCountDao;
|
import com.yeshi.fanli.entity.order.OrderMoneyDailyCount;
|
import com.yeshi.fanli.service.inter.order.OrderMoneyDailyCountService;
|
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) {
|
return; // 参数不全
|
}
|
String gernalTime = TimeUtil.getGernalTime(record.getCountDay().getTime());
|
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.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) {
|
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);
|
}
|
|
@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> 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);
|
}
|
}
|