diff --git a/config/application.yml b/config/application.yml index 08f94a4f..08e4e29b 100644 --- a/config/application.yml +++ b/config/application.yml @@ -280,8 +280,6 @@ lili: notice-group: lili_notice_group notice-send-topic: lili_send_notice_topic notice-send-group: lili_send_notice_group - broadcast-topic: lili_broadcast_topic - broadcast-group: lili_broadcast_group rocketmq: name-server: 192.168.0.116:9876 producer: diff --git a/framework/src/main/java/cn/lili/modules/broadcast/serviceimpl/StudioServiceImpl.java b/framework/src/main/java/cn/lili/modules/broadcast/serviceimpl/StudioServiceImpl.java index ad3bf81b..1fb2271e 100644 --- a/framework/src/main/java/cn/lili/modules/broadcast/serviceimpl/StudioServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/broadcast/serviceimpl/StudioServiceImpl.java @@ -67,29 +67,28 @@ public class StudioServiceImpl extends ServiceImpl impleme studio.setStoreId(UserContext.getCurrentUser().getStoreId()); studio.setStatus(StudioStatusEnum.NEW.name()); //直播间添加成功发送直播间开启、关闭延时任务 - if(this.save(studio)){ + if (this.save(studio)) { //直播开启延时任务 - BroadcastMessage broadcastMessage = new BroadcastMessage(studio.getId(),StudioStatusEnum.START.name()); + BroadcastMessage broadcastMessage = new BroadcastMessage(studio.getId(), StudioStatusEnum.START.name()); TimeTriggerMsg timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.BROADCAST_EXECUTOR, - Long.parseLong(studio.getStartTime()), broadcastMessage, + Long.parseLong(studio.getStartTime()) * 1000L, broadcastMessage, DelayQueueTools.wrapperUniqueKey(DelayQueueType.BROADCAST, studio.getId()), rocketmqCustomProperties.getPromotionTopic()); // 发送促销活动开始的延时任务 - this.timeTrigger.addDelay(timeTriggerMsg, DateUtil.getDelayTime(Long.parseLong(studio.getStartTime()))); + this.timeTrigger.addDelay(timeTriggerMsg, DateUtil.getDelayTime(Long.parseLong(studio.getStartTime()) * 1000L)); //直播结束延时任务 - broadcastMessage = new BroadcastMessage(studio.getId(),StudioStatusEnum.END.name()); + broadcastMessage = new BroadcastMessage(studio.getId(), StudioStatusEnum.END.name()); timeTriggerMsg = new TimeTriggerMsg(TimeExecuteConstant.BROADCAST_EXECUTOR, - Long.parseLong(studio.getEndTime()), broadcastMessage, + Long.parseLong(studio.getEndTime()) * 1000L, broadcastMessage, DelayQueueTools.wrapperUniqueKey(DelayQueueType.BROADCAST, studio.getId()), rocketmqCustomProperties.getPromotionTopic()); // 发送促销活动开始的延时任务 - this.timeTrigger.addDelay(timeTriggerMsg, DateUtil.getDelayTime(Long.parseLong(studio.getEndTime()))); + this.timeTrigger.addDelay(timeTriggerMsg, DateUtil.getDelayTime(Long.parseLong(studio.getEndTime()) * 1000L)); } return true; } catch (Exception e) { - e.printStackTrace(); throw new ServiceException(ResultCode.ERROR); } @@ -97,29 +96,29 @@ public class StudioServiceImpl extends ServiceImpl impleme @Override public Boolean edit(Studio studio) { - Studio oldStudio=this.getById(studio.getId()); + Studio oldStudio = this.getById(studio.getId()); wechatLivePlayerUtil.editRoom(studio); - if(this.updateById(studio)){ + if (this.updateById(studio)) { // 发送更新延时任务 //直播间开始 - BroadcastMessage broadcastMessage = new BroadcastMessage(studio.getId(),StudioStatusEnum.START.name()); + BroadcastMessage broadcastMessage = new BroadcastMessage(studio.getId(), StudioStatusEnum.START.name()); this.timeTrigger.edit( TimeExecuteConstant.BROADCAST_EXECUTOR, broadcastMessage, Long.parseLong(oldStudio.getStartTime()), Long.parseLong(studio.getStartTime()), - DelayQueueTools.wrapperUniqueKey(DelayQueueType.BROADCAST,studio.getId()), + DelayQueueTools.wrapperUniqueKey(DelayQueueType.BROADCAST, studio.getId()), DateUtil.getDelayTime(Long.parseLong(studio.getStartTime())), rocketmqCustomProperties.getPromotionTopic()); //直播间结束 - broadcastMessage = new BroadcastMessage(studio.getId(),StudioStatusEnum.START.name()); + broadcastMessage = new BroadcastMessage(studio.getId(), StudioStatusEnum.START.name()); this.timeTrigger.edit( TimeExecuteConstant.BROADCAST_EXECUTOR, broadcastMessage, Long.parseLong(oldStudio.getEndTime()), Long.parseLong(studio.getEndTime()), - DelayQueueTools.wrapperUniqueKey(DelayQueueType.BROADCAST,studio.getId()), + DelayQueueTools.wrapperUniqueKey(DelayQueueType.BROADCAST, studio.getId()), DateUtil.getDelayTime(Long.parseLong(studio.getEndTime())), rocketmqCustomProperties.getPromotionTopic()); } @@ -188,7 +187,7 @@ public class StudioServiceImpl extends ServiceImpl impleme public IPage studioList(PageVO pageVO, Integer recommend, String status) { return this.page(PageUtil.initPage(pageVO), new QueryWrapper() .eq(recommend != null, "recommend", true) - .eq(status!=null,"status",status) + .eq(status != null, "status", status) .orderByDesc("create_time")); } @@ -196,8 +195,8 @@ public class StudioServiceImpl extends ServiceImpl impleme @Override public void updateStudioStatus(BroadcastMessage broadcastMessage) { this.update(new LambdaUpdateWrapper() - .eq(Studio::getId,broadcastMessage.getStudioId()) - .set(Studio::getStatus,broadcastMessage.getStatus())); + .eq(Studio::getId, broadcastMessage.getStudioId()) + .set(Studio::getStatus, broadcastMessage.getStatus())); } /** diff --git a/framework/src/main/java/cn/lili/modules/statistics/service/IndexStatisticsService.java b/framework/src/main/java/cn/lili/modules/statistics/service/IndexStatisticsService.java index 5ddbfa12..b22148c8 100644 --- a/framework/src/main/java/cn/lili/modules/statistics/service/IndexStatisticsService.java +++ b/framework/src/main/java/cn/lili/modules/statistics/service/IndexStatisticsService.java @@ -1,5 +1,7 @@ package cn.lili.modules.statistics.service; +import cn.lili.modules.statistics.model.dto.GoodsStatisticsQueryParam; +import cn.lili.modules.statistics.model.dto.StatisticsQueryParam; import cn.lili.modules.statistics.model.vo.*; import java.util.List; @@ -38,14 +40,14 @@ public interface IndexStatisticsService { * * @return 热卖商品TOP10 */ - List goodsStatisticsOfMonth(); + List goodsStatistics(GoodsStatisticsQueryParam statisticsQueryParam); /** * 查询热卖店铺TOP10 * * @return 当月的热卖店铺TOP10 */ - List storeStatisticsOfMonth(); + List storeStatistics(StatisticsQueryParam statisticsQueryParam); } diff --git a/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/GoodsStatisticsDataServiceImpl.java b/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/GoodsStatisticsDataServiceImpl.java index 03aa6a91..9dedc7e3 100644 --- a/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/GoodsStatisticsDataServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/GoodsStatisticsDataServiceImpl.java @@ -14,7 +14,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -39,7 +38,7 @@ public class GoodsStatisticsDataServiceImpl extends ServiceImpl(1, num); return this.baseMapper.getGoodsStatisticsData(page, queryWrapper); } @@ -62,10 +61,10 @@ public class GoodsStatisticsDataServiceImpl extends ServiceImpl map = orderStatisticsDataService.getOrderStatisticsPrice(); //今日下单数 - indexStatisticsVO.setTodayOrderNum(map.get("num") == null ? 0L : (Long)map.get("num")); + indexStatisticsVO.setTodayOrderNum(map.get("num") == null ? 0L : (Long) map.get("num")); //今日下单金额 indexStatisticsVO.setTodayOrderPrice(map.get("price") == null ? 0D : (Double) map.get("price")); @@ -234,20 +235,19 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService { } @Override - public List goodsStatisticsOfMonth() { - //获取查询参数 - GoodsStatisticsQueryParam goodsStatisticsQueryParam = getGoodsStatisticsQueryParam(); + public List goodsStatistics(GoodsStatisticsQueryParam statisticsQueryParam) { //查询商品 - return goodsStatisticsDataService.getGoodsStatisticsData(goodsStatisticsQueryParam, 10); + return goodsStatisticsDataService.getGoodsStatisticsData(statisticsQueryParam, 10); } @Override - public List storeStatisticsOfMonth() { + public List storeStatistics(StatisticsQueryParam statisticsQueryParam) { QueryWrapper queryWrapper = Wrappers.query(); - queryWrapper.between("create_time", cn.hutool.core.date.DateUtil.beginOfYear(new DateTime()), - cn.hutool.core.date.DateUtil.endOfYear(new DateTime())); + Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam); + Date startTime = dates[0], endTime = dates[1]; + queryWrapper.between("create_time", startTime, endTime); queryWrapper.orderByDesc("price"); @@ -288,7 +288,6 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService { if (UserContext.getCurrentUser().getRole().equals(UserEnums.STORE)) { goodsStatisticsQueryParam.setStoreId(UserContext.getCurrentUser().getStoreId()); } - goodsStatisticsQueryParam.setType(StatisticsQuery.PRICE.name()); DateTime dateTime = new DateTime(); goodsStatisticsQueryParam.setYear(dateTime.year()); goodsStatisticsQueryParam.setMonth(dateTime.monthBaseOne()); diff --git a/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/MemberStatisticsDataServiceImpl.java b/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/MemberStatisticsDataServiceImpl.java index 73909379..20774471 100644 --- a/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/MemberStatisticsDataServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/statistics/serviceimpl/MemberStatisticsDataServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil; import cn.lili.modules.statistics.mapper.MemberStatisticsDataMapper; import cn.lili.modules.statistics.model.dos.MemberStatisticsData; import cn.lili.modules.statistics.model.dto.StatisticsQueryParam; +import cn.lili.modules.statistics.model.enums.SearchTypeEnum; import cn.lili.modules.statistics.service.MemberStatisticsDataService; import cn.lili.modules.statistics.util.StatisticsDateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -11,6 +12,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -61,8 +63,23 @@ public class MemberStatisticsDataServiceImpl extends ServiceImpl statistics(StatisticsQueryParam statisticsQueryParam) { + Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam); Date startTime = dates[0], endTime = dates[1]; + + //如果统计今天,则自行构造数据 + if(statisticsQueryParam.getSearchType().equals(SearchTypeEnum.TODAY.name())){ + //构建数据,然后返回集合,提供给前端展示 + MemberStatisticsData memberStatisticsData = new MemberStatisticsData(); + memberStatisticsData.setMemberCount(this.memberCount(endTime)); + memberStatisticsData.setCreateDate(startTime); + memberStatisticsData.setActiveQuantity(this.activeQuantity(startTime)); + memberStatisticsData.setNewlyAdded(this.newlyAdded(startTime, endTime)); + List result = new ArrayList(); + result.add(memberStatisticsData); + return result; + } + QueryWrapper queryWrapper = Wrappers.query(); queryWrapper.between("create_date", startTime, endTime); diff --git a/manager-api/src/main/java/cn/lili/controller/statistics/IndexStatisticsManagerController.java b/manager-api/src/main/java/cn/lili/controller/statistics/IndexStatisticsManagerController.java index 97f8ff7c..1477776b 100644 --- a/manager-api/src/main/java/cn/lili/controller/statistics/IndexStatisticsManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/statistics/IndexStatisticsManagerController.java @@ -2,6 +2,9 @@ package cn.lili.controller.statistics; import cn.lili.common.enums.ResultUtil; import cn.lili.common.vo.ResultMessage; +import cn.lili.modules.statistics.model.dto.GoodsStatisticsQueryParam; +import cn.lili.modules.statistics.model.dto.StatisticsQueryParam; +import cn.lili.modules.statistics.model.enums.StatisticsQuery; import cn.lili.modules.statistics.model.vo.GoodsStatisticsDataVO; import cn.lili.modules.statistics.model.vo.IndexNoticeVO; import cn.lili.modules.statistics.model.vo.IndexStatisticsVO; @@ -46,14 +49,17 @@ public class IndexStatisticsManagerController { @ApiOperation(value = "获取首页查询热卖商品TOP10") @GetMapping("/goodsStatistics") - public ResultMessage> goodsStatistics() { - return ResultUtil.data(indexStatisticsService.goodsStatisticsOfMonth()); + public ResultMessage> goodsStatistics(GoodsStatisticsQueryParam goodsStatisticsQueryParam) { + + //按照金额查询 + goodsStatisticsQueryParam.setType(StatisticsQuery.PRICE.name()); + return ResultUtil.data(indexStatisticsService.goodsStatistics(goodsStatisticsQueryParam)); } @ApiOperation(value = "获取首页查询热卖店铺TOP10") @GetMapping("/storeStatistics") - public ResultMessage> storeStatistics() { - return ResultUtil.data(indexStatisticsService.storeStatisticsOfMonth()); + public ResultMessage> storeStatistics(StatisticsQueryParam statisticsQueryParam) { + return ResultUtil.data(indexStatisticsService.storeStatistics(statisticsQueryParam)); } @ApiOperation(value = "通知提示信息")