跟新订单统计为实时跟新
This commit is contained in:
@ -1,46 +1,32 @@
|
|||||||
package cn.iocoder.yudao.module.member.job;
|
package cn.iocoder.yudao.module.member.job;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjUtil;
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
|
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
|
||||||
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderMapper;
|
|
||||||
import cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderService;
|
import cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
public class StatisticsSpaceCapsuleOrderJob implements JobHandler {
|
public class StatisticsSpaceCapsuleOrderJob implements JobHandler {
|
||||||
@Resource
|
@Resource
|
||||||
private StatisticsSpaceCapsuleOrderMapper statisticsSpaceCapsuleOrderMapper;
|
private StatisticsSpaceCapsuleOrderService capsuleOrderService;
|
||||||
@Resource
|
|
||||||
private StatisticsSpaceCapsuleOrderService statisticsSpaceCapsuleOrderService;
|
|
||||||
@Override
|
@Override
|
||||||
@TenantIgnore
|
@TenantIgnore
|
||||||
public String execute(String param) throws Exception {
|
public String execute(String param) throws Exception {
|
||||||
log.info("开始进行定时统计================》");
|
log.info("开始进行定时统计================》");
|
||||||
DateTime date = DateUtil.date();
|
capsuleOrderService.init();
|
||||||
DateTime dateTime = DateUtil.offsetDay(date, -1);
|
return "初始化太空舱订单成功";
|
||||||
//获取开始时间
|
|
||||||
DateTime startTime = DateUtil.beginOfDay(dateTime);
|
|
||||||
//结束时间
|
|
||||||
DateTime endTime = DateUtil.endOfDay(dateTime);
|
|
||||||
List<StatisticsSpaceCapsuleOrderDO> statistics = statisticsSpaceCapsuleOrderService.statistics(startTime, endTime);
|
|
||||||
if(ObjUtil.isNotEmpty(statistics)){
|
|
||||||
log.info("定时统计数量{}",statistics.size());
|
|
||||||
statisticsSpaceCapsuleOrderMapper.insertBatch(statistics);
|
|
||||||
return "定时统计数量"+ statistics.size();
|
|
||||||
}else{
|
|
||||||
return "没有定时统计数量";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,11 @@
|
|||||||
package cn.iocoder.yudao.module.member.service.orderspacecapsule;
|
package cn.iocoder.yudao.module.member.service.orderspacecapsule;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DatePattern;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||||
import cn.hutool.core.lang.UUID;
|
import cn.hutool.core.lang.UUID;
|
||||||
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.hutool.extra.qrcode.QrCodeUtil;
|
import cn.hutool.extra.qrcode.QrCodeUtil;
|
||||||
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpRequest;
|
||||||
import cn.hutool.json.JSONConfig;
|
import cn.hutool.json.JSONConfig;
|
||||||
@ -15,15 +18,20 @@ import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
|||||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.*;
|
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.*;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.orderspacecapsule.OrderSpaceCapsuleDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.orderspacecapsule.OrderSpaceCapsuleDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.spacecapsule.SpaceCapsuleDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.spacecapsule.SpaceCapsuleDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.orderspacecapsule.OrderSpaceCapsuleMapper;
|
import cn.iocoder.yudao.module.member.dal.mysql.orderspacecapsule.OrderSpaceCapsuleMapper;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.mysql.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderMapper;
|
||||||
import cn.iocoder.yudao.module.member.enums.*;
|
import cn.iocoder.yudao.module.member.enums.*;
|
||||||
import cn.iocoder.yudao.module.member.service.amount.DeductionService;
|
import cn.iocoder.yudao.module.member.service.amount.DeductionService;
|
||||||
import cn.iocoder.yudao.module.member.service.carteenmoney.CarteenMoneyService;
|
import cn.iocoder.yudao.module.member.service.carteenmoney.CarteenMoneyService;
|
||||||
import cn.iocoder.yudao.module.member.service.spacecapsule.SpaceCapsuleService;
|
import cn.iocoder.yudao.module.member.service.spacecapsule.SpaceCapsuleService;
|
||||||
|
import cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderService;
|
||||||
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
|
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
|
||||||
import cn.iocoder.yudao.module.system.api.carteen.CarteenApi;
|
import cn.iocoder.yudao.module.system.api.carteen.CarteenApi;
|
||||||
|
import cn.iocoder.yudao.module.system.api.carteen.dto.CarteenRespDto;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
@ -42,6 +50,7 @@ import java.math.BigDecimal;
|
|||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.temporal.ChronoUnit;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -60,6 +69,8 @@ public class OrderSpaceCapsuleServiceImpl implements OrderSpaceCapsuleService {
|
|||||||
@Resource
|
@Resource
|
||||||
private OrderSpaceCapsuleMapper orderSpaceCapsuleMapper;
|
private OrderSpaceCapsuleMapper orderSpaceCapsuleMapper;
|
||||||
@Resource
|
@Resource
|
||||||
|
private StatisticsSpaceCapsuleOrderService statisticsSpaceCapsuleOrderService;
|
||||||
|
@Resource
|
||||||
private DeductionService deductionService;
|
private DeductionService deductionService;
|
||||||
@Resource
|
@Resource
|
||||||
private SpaceCapsuleService spaceCapsuleService;
|
private SpaceCapsuleService spaceCapsuleService;
|
||||||
@ -131,7 +142,7 @@ public class OrderSpaceCapsuleServiceImpl implements OrderSpaceCapsuleService {
|
|||||||
updateObj.setOrderEndTime(LocalDateTime.now());
|
updateObj.setOrderEndTime(LocalDateTime.now());
|
||||||
}else if(updateObj.getStatus().equals(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode())){
|
}else if(updateObj.getStatus().equals(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode())){
|
||||||
updateObj.setSpaceCapsuleId(spaceCapsule.getId());
|
updateObj.setSpaceCapsuleId(spaceCapsule.getId());
|
||||||
updateObj.setOrderEndTime(LocalDateTime.now());
|
updateObj.setOrderEndTime(LocalDateTimeUtil.offset(updateObj.getOrderStartTime(), (long) updateObj.getComboNum() *updateObj.getComboMinutes(), ChronoUnit.MINUTES));
|
||||||
updateSpaceCapsuleStatus(spaceCapsule, SpaceCapsuleEnum.SPACE_CAPSULE_ENUM_FREE_TIME.getCode());
|
updateSpaceCapsuleStatus(spaceCapsule, SpaceCapsuleEnum.SPACE_CAPSULE_ENUM_FREE_TIME.getCode());
|
||||||
}else if(updateObj.getStatus().equals(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_IN_USE.getCode())){
|
}else if(updateObj.getStatus().equals(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_IN_USE.getCode())){
|
||||||
if(currentStatus.equals(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_UNUSED.getCode())
|
if(currentStatus.equals(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_UNUSED.getCode())
|
||||||
@ -145,6 +156,10 @@ public class OrderSpaceCapsuleServiceImpl implements OrderSpaceCapsuleService {
|
|||||||
}
|
}
|
||||||
// 更新数据库
|
// 更新数据库
|
||||||
orderSpaceCapsuleMapper.updateById(updateObj);
|
orderSpaceCapsuleMapper.updateById(updateObj);
|
||||||
|
//单独处理
|
||||||
|
if(updateObj.getStatus().equals(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode()) || updateObj.getStatus().equals(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_REFUNDED.getCode()) ){
|
||||||
|
statisticsSpaceCapsuleOrderService.updateStatistics(updateObj);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 处理退款逻辑
|
// 处理退款逻辑
|
||||||
private void handleRefund(OrderSpaceCapsuleDO updateObj, Integer currentStatus) {
|
private void handleRefund(OrderSpaceCapsuleDO updateObj, Integer currentStatus) {
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
package cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder;
|
package cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsVo;
|
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsVo;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderNameRespVO;
|
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderNameRespVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderPageReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderSaveReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.orderspacecapsule.OrderSpaceCapsuleDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -58,4 +60,11 @@ public interface StatisticsSpaceCapsuleOrderService {
|
|||||||
List<StatisticsSpaceCapsuleOrderDO> statistics(Date startTime,Date endTime);
|
List<StatisticsSpaceCapsuleOrderDO> statistics(Date startTime,Date endTime);
|
||||||
OrderSpaceCapsuleStatisticsVo compDayMon(Long carteenId,String type,Date time);
|
OrderSpaceCapsuleStatisticsVo compDayMon(Long carteenId,String type,Date time);
|
||||||
List<SpaceCapsuleOrderNameRespVO> getStatisticsSpaceCapsuleOrder(SpaceCapsuleOrderReqVO vo);
|
List<SpaceCapsuleOrderNameRespVO> getStatisticsSpaceCapsuleOrder(SpaceCapsuleOrderReqVO vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实时跟新太空舱统计
|
||||||
|
* @param vo
|
||||||
|
*/
|
||||||
|
void updateStatistics(OrderSpaceCapsuleDO vo);
|
||||||
|
void init();
|
||||||
}
|
}
|
@ -1,14 +1,18 @@
|
|||||||
package cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder;
|
package cn.iocoder.yudao.module.member.service.statisticsspacecapsuleorder;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.date.*;
|
import cn.hutool.core.date.*;
|
||||||
|
import cn.hutool.core.util.ObjUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsComVo;
|
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsComVo;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsVo;
|
import cn.iocoder.yudao.module.member.controller.admin.orderspacecapsule.vo.OrderSpaceCapsuleStatisticsVo;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderNameRespVO;
|
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderNameRespVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.SpaceCapsuleOrderReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderPageReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderSaveReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.statisticsspacecapsuleorder.vo.StatisticsSpaceCapsuleOrderSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.orderspacecapsule.OrderSpaceCapsuleDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.spacecapsule.SpaceCapsuleDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.spacecapsule.SpaceCapsuleDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.statisticsspacecapsuleorder.StatisticsSpaceCapsuleOrderDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.orderspacecapsule.OrderSpaceCapsuleMapper;
|
import cn.iocoder.yudao.module.member.dal.mysql.orderspacecapsule.OrderSpaceCapsuleMapper;
|
||||||
@ -18,6 +22,7 @@ import cn.iocoder.yudao.module.member.enums.SpaceCapsuleOrderEnum;
|
|||||||
import cn.iocoder.yudao.module.member.service.orderspacecapsule.OrderSpaceCapsuleServiceImpl;
|
import cn.iocoder.yudao.module.member.service.orderspacecapsule.OrderSpaceCapsuleServiceImpl;
|
||||||
import cn.iocoder.yudao.module.system.api.carteen.CarteenApi;
|
import cn.iocoder.yudao.module.system.api.carteen.CarteenApi;
|
||||||
import cn.iocoder.yudao.module.system.api.carteen.dto.CarteenRespDto;
|
import cn.iocoder.yudao.module.system.api.carteen.dto.CarteenRespDto;
|
||||||
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
@ -43,8 +48,6 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa
|
|||||||
private SpaceCapsuleMapper spaceCapsuleMapper;
|
private SpaceCapsuleMapper spaceCapsuleMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private StatisticsSpaceCapsuleOrderMapper statisticsSpaceCapsuleOrderMapper;
|
private StatisticsSpaceCapsuleOrderMapper statisticsSpaceCapsuleOrderMapper;
|
||||||
@Resource
|
|
||||||
private OrderSpaceCapsuleServiceImpl orderSpaceCapsuleService;
|
|
||||||
@Override
|
@Override
|
||||||
public Long createStatisticsSpaceCapsuleOrder(StatisticsSpaceCapsuleOrderSaveReqVO createReqVO) {
|
public Long createStatisticsSpaceCapsuleOrder(StatisticsSpaceCapsuleOrderSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
@ -90,7 +93,7 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa
|
|||||||
List<CarteenRespDto> carteenList = carteenApi.getCarteenList();
|
List<CarteenRespDto> carteenList = carteenApi.getCarteenList();
|
||||||
List<StatisticsSpaceCapsuleOrderDO> list=new ArrayList<>();
|
List<StatisticsSpaceCapsuleOrderDO> list=new ArrayList<>();
|
||||||
for (CarteenRespDto dto : carteenList) {
|
for (CarteenRespDto dto : carteenList) {
|
||||||
Long id = dto.getId();
|
Long id = dto.getId();
|
||||||
OrderSpaceCapsuleStatisticsVo vo = orderSpaceCapsuleMapper.compDay(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(), startTime, endTime, id);
|
OrderSpaceCapsuleStatisticsVo vo = orderSpaceCapsuleMapper.compDay(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(), startTime, endTime, id);
|
||||||
vo.setRemark(DateUtil.format(startTime,DatePattern.NORM_DATE_PATTERN));
|
vo.setRemark(DateUtil.format(startTime,DatePattern.NORM_DATE_PATTERN));
|
||||||
StatisticsSpaceCapsuleOrderDO bean = BeanUtils.toBean(vo, StatisticsSpaceCapsuleOrderDO.class);
|
StatisticsSpaceCapsuleOrderDO bean = BeanUtils.toBean(vo, StatisticsSpaceCapsuleOrderDO.class);
|
||||||
@ -126,8 +129,64 @@ public class StatisticsSpaceCapsuleOrderServiceImpl implements StatisticsSpaceCa
|
|||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateStatistics(OrderSpaceCapsuleDO vo) {
|
||||||
|
DateTime date = DateUtil.date();
|
||||||
|
DateTime start = DateUtil.beginOfDay(date);
|
||||||
|
DateTime end = DateUtil.endOfDay(date);
|
||||||
|
StatisticsSpaceCapsuleOrderDO orderDO = statisticsSpaceCapsuleOrderMapper.selectOne(new LambdaQueryWrapperX<StatisticsSpaceCapsuleOrderDO>()
|
||||||
|
.eq(StatisticsSpaceCapsuleOrderDO::getCarteenId, vo.getCarteenId())
|
||||||
|
.between(StatisticsSpaceCapsuleOrderDO::getCreateTime, start, end)
|
||||||
|
.last(" limit 1")
|
||||||
|
);
|
||||||
|
if(ObjUtil.isNotEmpty(orderDO)){
|
||||||
|
OrderSpaceCapsuleDO orderSpaceCapsuleDO = orderSpaceCapsuleMapper.selectById(vo.getId());
|
||||||
|
updateStatistics(orderDO,orderSpaceCapsuleDO);
|
||||||
|
statisticsSpaceCapsuleOrderMapper.updateById(orderDO);
|
||||||
|
}else{
|
||||||
|
CarteenRespDto carteenById = carteenApi.getCarteenById(vo.getCarteenId());
|
||||||
|
StatisticsSpaceCapsuleOrderDO statisticsSpaceCapsuleOrderDO = getStatisticsSpaceCapsuleOrderDO(carteenById);
|
||||||
|
statisticsSpaceCapsuleOrderMapper.insert(statisticsSpaceCapsuleOrderDO);
|
||||||
|
this.updateStatistics(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public void updateStatistics( StatisticsSpaceCapsuleOrderDO orderDO,OrderSpaceCapsuleDO vo) {
|
||||||
|
//进行运算加
|
||||||
|
orderDO.setTotalMoney(orderDO.getTotalMoney().add(vo.getMoney()));
|
||||||
|
orderDO.setTotalOrder(orderDO.getTotalOrder()+1);
|
||||||
|
orderDO.setTotalMinute(orderDO.getTotalMinute().add(new BigDecimal(vo.getComboMinutes()*vo.getComboNum())));
|
||||||
|
orderDO.setRefundMoney(orderDO.getRefundMoney().add(vo.getRefundMoney() == null ? BigDecimal.ZERO:vo.getRefundMoney()));
|
||||||
|
orderDO.setTotalPackageSum(orderDO.getTotalPackageSum()+vo.getComboNum());
|
||||||
|
orderDO.setTotalCustomer(orderDO.getTotalCustomer()+1);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void init() {
|
||||||
|
List<StatisticsSpaceCapsuleOrderDO> list=new ArrayList<>();
|
||||||
|
for (CarteenRespDto carteenRespDto : carteenApi.getCarteenList()) {
|
||||||
|
StatisticsSpaceCapsuleOrderDO orderDO = getStatisticsSpaceCapsuleOrderDO(carteenRespDto);
|
||||||
|
list.add(orderDO);
|
||||||
|
}
|
||||||
|
if(CollUtil.isNotEmpty(list)) {
|
||||||
|
statisticsSpaceCapsuleOrderMapper.insertBatch(list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private static StatisticsSpaceCapsuleOrderDO getStatisticsSpaceCapsuleOrderDO(CarteenRespDto carteenRespDto) {
|
||||||
|
DateTime date = DateUtil.date();
|
||||||
|
StatisticsSpaceCapsuleOrderDO orderDO=new StatisticsSpaceCapsuleOrderDO();
|
||||||
|
orderDO.setTotalMoney(BigDecimal.ZERO);
|
||||||
|
orderDO.setTotalOrder(0);
|
||||||
|
orderDO.setTotalMinute(BigDecimal.ZERO);
|
||||||
|
orderDO.setCarteenId(carteenRespDto.getId());
|
||||||
|
orderDO.setRefundMoney(BigDecimal.ZERO);
|
||||||
|
orderDO.setTotalPackageSum(0);
|
||||||
|
orderDO.setCarteenName(carteenRespDto.getStoresName());
|
||||||
|
orderDO.setRemark(DateUtil.format(date, DatePattern.NORM_DATE_PATTERN));
|
||||||
|
orderDO.setTotalCustomer(0);
|
||||||
|
return orderDO;
|
||||||
|
}
|
||||||
public SpaceCapsuleOrderNameRespVO getStatisticsSpaceCapsuleOrder1(Long id,Date start,Date end){
|
public SpaceCapsuleOrderNameRespVO getStatisticsSpaceCapsuleOrder1(Long id,Date start,Date end){
|
||||||
return orderSpaceCapsuleMapper.compDay1(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(),start,end,id);
|
return orderSpaceCapsuleMapper.compDay1(SpaceCapsuleOrderEnum.SPACE_CAPSULE_ORDER_ENUM_DONE.getCode(),start,end,id);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 日报
|
* 日报
|
||||||
|
Reference in New Issue
Block a user