Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
ac86715062
@ -1,7 +1,7 @@
|
||||
package cn.lili.timetask.handler.impl.statistics;
|
||||
|
||||
import cn.lili.modules.statistics.entity.dos.MemberStatisticsData;
|
||||
import cn.lili.modules.statistics.service.MemberStatisticsDataService;
|
||||
import cn.lili.modules.statistics.service.MemberStatisticsService;
|
||||
import cn.lili.timetask.handler.EveryDayExecute;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -24,7 +24,7 @@ public class MemberStatisticsExecute implements EveryDayExecute {
|
||||
* 会员统计
|
||||
*/
|
||||
@Autowired
|
||||
private MemberStatisticsDataService memberStatisticsDataService;
|
||||
private MemberStatisticsService memberStatisticsService;
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
@ -43,11 +43,11 @@ public class MemberStatisticsExecute implements EveryDayExecute {
|
||||
calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) - 1);
|
||||
startTime = calendar.getTime();
|
||||
MemberStatisticsData memberStatisticsData = new MemberStatisticsData();
|
||||
memberStatisticsData.setMemberCount(memberStatisticsDataService.memberCount(endTime));
|
||||
memberStatisticsData.setMemberCount(memberStatisticsService.memberCount(endTime));
|
||||
memberStatisticsData.setCreateDate(startTime);
|
||||
memberStatisticsData.setActiveQuantity(memberStatisticsDataService.activeQuantity(startTime));
|
||||
memberStatisticsData.setNewlyAdded(memberStatisticsDataService.newlyAdded(startTime, endTime));
|
||||
memberStatisticsDataService.save(memberStatisticsData);
|
||||
memberStatisticsData.setActiveQuantity(memberStatisticsService.activeQuantity(startTime));
|
||||
memberStatisticsData.setNewlyAdded(memberStatisticsService.newlyAdded(startTime, endTime));
|
||||
memberStatisticsService.save(memberStatisticsData);
|
||||
} catch (Exception e) {
|
||||
log.error("每日会员统计功能异常:", e);
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import cn.lili.cache.Cache;
|
||||
import cn.lili.cache.CachePrefix;
|
||||
import cn.lili.common.utils.BeanUtil;
|
||||
import cn.lili.modules.statistics.entity.dos.PlatformViewData;
|
||||
import cn.lili.modules.statistics.service.PlatformViewDataService;
|
||||
import cn.lili.modules.statistics.service.PlatformViewService;
|
||||
import cn.lili.timetask.handler.EveryDayExecute;
|
||||
import lombok.Data;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -37,7 +37,7 @@ public class PageViewStatisticsExecute implements EveryDayExecute {
|
||||
* 平台PV统计
|
||||
*/
|
||||
@Autowired
|
||||
private PlatformViewDataService platformViewDataService;
|
||||
private PlatformViewService platformViewService;
|
||||
|
||||
@Override
|
||||
public void execute() {
|
||||
@ -123,7 +123,7 @@ public class PageViewStatisticsExecute implements EveryDayExecute {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
void batchSave(List<String> pvKeys, List<String> uvKeys, List<PlatformViewData> platformViewData) {
|
||||
log.debug("批量保存流量数据,共计【{}】条", platformViewData.size());
|
||||
platformViewDataService.saveBatch(platformViewData);
|
||||
platformViewService.saveBatch(platformViewData);
|
||||
//批量删除缓存key
|
||||
cache.multiDel(pvKeys);
|
||||
cache.multiDel(uvKeys);
|
||||
|
@ -49,10 +49,4 @@ public interface DistributionCashService extends IService<DistributionCash> {
|
||||
*/
|
||||
DistributionCash audit(@PathVariable String id, @RequestParam String result);
|
||||
|
||||
/**
|
||||
* 待处理分销员提现申请数量
|
||||
*
|
||||
* @return 待处理分销员提现申请数量
|
||||
*/
|
||||
Integer newDistributionCash();
|
||||
}
|
@ -157,11 +157,4 @@ public class DistributionCashServiceImpl extends ServiceImpl<DistributionCashMap
|
||||
throw new ServiceException(ResultCode.DISTRIBUTION_CASH_NOT_EXIST);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer newDistributionCash() {
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
queryWrapper.eq("distribution_cash_status", WithdrawStatusEnum.APPLY.name());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
}
|
@ -93,21 +93,6 @@ public interface GoodsService extends IService<Goods> {
|
||||
*/
|
||||
boolean auditGoods(List<String> goodsIds, GoodsAuthEnum goodsAuthEnum);
|
||||
|
||||
/**
|
||||
* 获取所有的已上架的商品数量
|
||||
*
|
||||
* @param goodsAuthEnum 商品审核枚举
|
||||
* @param goodsStatusEnum 商品状态枚举
|
||||
* @return 所有的已上架的商品数量
|
||||
*/
|
||||
Integer goodsNum(GoodsStatusEnum goodsStatusEnum, GoodsAuthEnum goodsAuthEnum);
|
||||
|
||||
/**
|
||||
* 获取今天的已上架的商品数量
|
||||
*
|
||||
* @return 今天的已上架的商品数量
|
||||
*/
|
||||
Integer todayUpperNum();
|
||||
|
||||
/**
|
||||
* 更新商品上架状态状态
|
||||
|
@ -277,33 +277,6 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer goodsNum(GoodsStatusEnum goodsStatusEnum, GoodsAuthEnum goodsAuthEnum) {
|
||||
LambdaQueryWrapper<Goods> queryWrapper = Wrappers.lambdaQuery();
|
||||
|
||||
queryWrapper.eq(Goods::getDeleteFlag, false);
|
||||
|
||||
if (goodsStatusEnum != null) {
|
||||
queryWrapper.eq(Goods::getMarketEnable, goodsStatusEnum.name());
|
||||
}
|
||||
if (goodsAuthEnum != null) {
|
||||
queryWrapper.eq(Goods::getIsAuth, goodsAuthEnum.name());
|
||||
}
|
||||
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||
queryWrapper.eq(CharSequenceUtil.equals(currentUser.getRole().name(), UserEnums.STORE.name()),
|
||||
Goods::getStoreId, currentUser.getStoreId());
|
||||
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer todayUpperNum() {
|
||||
LambdaQueryWrapper<Goods> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(Goods::getMarketEnable, GoodsStatusEnum.UPPER.name());
|
||||
queryWrapper.ge(Goods::getCreateTime, DateUtil.beginOfDay(new DateTime()));
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean updateGoodsMarketAble(List<String> goodsIds, GoodsStatusEnum goodsStatusEnum, String underReason) {
|
||||
boolean result;
|
||||
|
@ -28,13 +28,6 @@ public interface MemberMapper extends BaseMapper<Member> {
|
||||
@Select("select m.mobile from li_member m")
|
||||
List<String> getAllMemberMobile();
|
||||
|
||||
/**
|
||||
* 获取会员分布列表
|
||||
* @return 会员分布列表
|
||||
*/
|
||||
@Select("select client_enum,count(0) as num from li_member group by client_enum")
|
||||
List<MemberDistributionVO> distribution();
|
||||
|
||||
@Select("select * from li_member ${ew.customSqlSegment}")
|
||||
IPage<MemberVO> pageByMemberVO(IPage<MemberVO> page, @Param(Constants.WRAPPER) Wrapper<Member> queryWrapper);
|
||||
}
|
@ -88,18 +88,5 @@ public interface MemberEvaluationService extends IService<MemberEvaluation> {
|
||||
*/
|
||||
EvaluationNumberVO getEvaluationNumber(String goodsId);
|
||||
|
||||
/**
|
||||
* 获取今天新增的评价数量
|
||||
*
|
||||
* @return 今日评价数量
|
||||
*/
|
||||
Integer todayMemberEvaluation();
|
||||
|
||||
/**
|
||||
* 获取等待回复评价数量
|
||||
*
|
||||
* @return 等待回复评价数量
|
||||
*/
|
||||
Integer getWaitReplyNum();
|
||||
|
||||
}
|
@ -197,13 +197,6 @@ public interface MemberService extends IService<Member> {
|
||||
*/
|
||||
Boolean updateMemberStatus(List<String> memberIds, Boolean status);
|
||||
|
||||
/**
|
||||
* 查看会员数据分布
|
||||
*
|
||||
* @return 会员数据分布
|
||||
*/
|
||||
List<MemberDistributionVO> distribution();
|
||||
|
||||
/**
|
||||
* 根据条件查询会员总数
|
||||
*
|
||||
|
@ -195,20 +195,6 @@ public class MemberEvaluationServiceImpl extends ServiceImpl<MemberEvaluationMap
|
||||
return evaluationNumberVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer todayMemberEvaluation() {
|
||||
return this.count(new LambdaQueryWrapper<MemberEvaluation>().ge(MemberEvaluation::getCreateTime, DateUtil.beginOfDay(new DateTime())));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getWaitReplyNum() {
|
||||
QueryWrapper<MemberEvaluation> queryWrapper = Wrappers.query();
|
||||
queryWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),
|
||||
"store_id", UserContext.getCurrentUser().getStoreId());
|
||||
queryWrapper.eq("reply_status", false);
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测会员评价
|
||||
*
|
||||
|
@ -423,13 +423,6 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
|
||||
|
||||
return this.update(updateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MemberDistributionVO> distribution() {
|
||||
List<MemberDistributionVO> memberDistributionVOS = this.baseMapper.distribution();
|
||||
return memberDistributionVOS;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据手机号获取会员
|
||||
*
|
||||
|
@ -129,13 +129,6 @@ public interface AfterSaleService extends IService<AfterSale> {
|
||||
*/
|
||||
AfterSale cancel(String afterSaleSn);
|
||||
|
||||
/**
|
||||
* 获取待处理售后数量
|
||||
*
|
||||
* @param serviceType 售后类型
|
||||
* @return 待处理售后数量
|
||||
*/
|
||||
Integer applyNum(String serviceType);
|
||||
|
||||
/**
|
||||
* 根据售后单号获取店铺退货收货地址信息
|
||||
@ -145,12 +138,4 @@ public interface AfterSaleService extends IService<AfterSale> {
|
||||
*/
|
||||
StoreAfterSaleAddressDTO getStoreAfterSaleAddressDTO(String sn);
|
||||
|
||||
/**
|
||||
* 获取统计的售后
|
||||
*
|
||||
* @param statisticsQueryParam 统计搜索参数
|
||||
* @param pageVO 分页
|
||||
* @return 售后分页列表
|
||||
*/
|
||||
IPage<AfterSale> getStatistics(StatisticsQueryParam statisticsQueryParam, PageVO pageVO);
|
||||
}
|
@ -367,33 +367,11 @@ public class AfterSaleServiceImpl extends ServiceImpl<AfterSaleMapper, AfterSale
|
||||
throw new ServiceException(ResultCode.AFTER_SALES_CANCEL_ERROR);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer applyNum(String serviceType) {
|
||||
AuthUser authUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||
LambdaQueryWrapper<AfterSale> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(AfterSale::getServiceStatus, AfterSaleStatusEnum.APPLY.name());
|
||||
queryWrapper.eq(CharSequenceUtil.isNotEmpty(serviceType), AfterSale::getServiceType, serviceType);
|
||||
queryWrapper.eq(CharSequenceUtil.equals(authUser.getRole().name(), UserEnums.STORE.name()),
|
||||
AfterSale::getStoreId, authUser.getStoreId());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoreAfterSaleAddressDTO getStoreAfterSaleAddressDTO(String sn) {
|
||||
return storeDetailService.getStoreAfterSaleAddressDTO(OperationalJudgment.judgment(this.getBySn(sn)).getStoreId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<AfterSale> getStatistics(StatisticsQueryParam statisticsQueryParam, PageVO pageVO) {
|
||||
|
||||
LambdaQueryWrapper<AfterSale> queryWrapper = new LambdaQueryWrapper<>();
|
||||
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
|
||||
queryWrapper.between(AfterSale::getCreateTime, dates[0], dates[1]);
|
||||
queryWrapper.eq(CharSequenceUtil.isNotEmpty(statisticsQueryParam.getStoreId()), AfterSale::getStoreId, statisticsQueryParam.getStoreId());
|
||||
|
||||
return this.page(PageUtil.initPage(pageVO), queryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建售后
|
||||
*
|
||||
|
@ -31,27 +31,6 @@ public interface OrderMapper extends BaseMapper<Order> {
|
||||
@Update({"update li_order set order_status = #{status} where sn = #{orderSn}"})
|
||||
void updateStatus(String status, String orderSn);
|
||||
|
||||
/**
|
||||
* 查询订单简短信息分页
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 简短订单分页
|
||||
*/
|
||||
@Select("select o.sn,o.flow_price,o.create_time,o.order_status,o.pay_status,o.payment_method,o.payment_time,o.member_name,o.store_name as store_name,o.store_id as store_id,o.client_type,o.order_type,o.deliver_status " +
|
||||
",GROUP_CONCAT(oi.goods_id) as group_goods_id," +
|
||||
" GROUP_CONCAT(oi.sku_id) as group_sku_id," +
|
||||
" GROUP_CONCAT(oi.num) as group_num" +
|
||||
",GROUP_CONCAT(oi.image) as group_images" +
|
||||
",GROUP_CONCAT(oi.goods_name) as group_name " +
|
||||
",GROUP_CONCAT(oi.after_sale_status) as group_after_sale_status" +
|
||||
",GROUP_CONCAT(oi.complain_status) as group_complain_status" +
|
||||
",GROUP_CONCAT(oi.comment_status) as group_comment_status" +
|
||||
",GROUP_CONCAT(oi.sn) as group_order_items_sn " +
|
||||
",GROUP_CONCAT(oi.goods_price) as group_goods_price " +
|
||||
" FROM li_order o INNER JOIN li_order_item AS oi on o.sn = oi.order_sn ${ew.customSqlSegment} ")
|
||||
IPage<OrderSimpleVO> queryByParams(IPage<OrderSimpleVO> page, @Param(Constants.WRAPPER) Wrapper<OrderSimpleVO> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询导出订单DTO列表
|
||||
*
|
||||
@ -74,4 +53,25 @@ public interface OrderMapper extends BaseMapper<Order> {
|
||||
@Select("select * from li_order ${ew.customSqlSegment} ")
|
||||
IPage<PaymentLog> queryPaymentLogs(IPage<PaymentLog> page, @Param(Constants.WRAPPER) Wrapper<PaymentLog> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询订单简短信息分页
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 简短订单分页
|
||||
*/
|
||||
@Select("select o.sn,o.flow_price,o.create_time,o.order_status,o.pay_status,o.payment_method,o.payment_time,o.member_name,o.store_name as store_name,o.store_id as store_id,o.client_type,o.order_type,o.deliver_status " +
|
||||
",GROUP_CONCAT(oi.goods_id) as group_goods_id," +
|
||||
" GROUP_CONCAT(oi.sku_id) as group_sku_id," +
|
||||
" GROUP_CONCAT(oi.num) as group_num" +
|
||||
",GROUP_CONCAT(oi.image) as group_images" +
|
||||
",GROUP_CONCAT(oi.goods_name) as group_name " +
|
||||
",GROUP_CONCAT(oi.after_sale_status) as group_after_sale_status" +
|
||||
",GROUP_CONCAT(oi.complain_status) as group_complain_status" +
|
||||
",GROUP_CONCAT(oi.comment_status) as group_comment_status" +
|
||||
",GROUP_CONCAT(oi.sn) as group_order_items_sn " +
|
||||
",GROUP_CONCAT(oi.goods_price) as group_goods_price " +
|
||||
" FROM li_order o INNER JOIN li_order_item AS oi on o.sn = oi.order_sn ${ew.customSqlSegment} ")
|
||||
IPage<OrderSimpleVO> queryByParams(IPage<OrderSimpleVO> page, @Param(Constants.WRAPPER) Wrapper<OrderSimpleVO> queryWrapper);
|
||||
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
package cn.lili.modules.order.order.service;
|
||||
|
||||
import cn.lili.common.vo.PageVO;
|
||||
import cn.lili.modules.member.entity.dto.MemberAddressDTO;
|
||||
import cn.lili.modules.order.cart.entity.dto.TradeDTO;
|
||||
import cn.lili.modules.order.order.entity.dos.Order;
|
||||
@ -10,13 +9,10 @@ import cn.lili.modules.order.order.entity.dto.OrderSearchParams;
|
||||
import cn.lili.modules.order.order.entity.vo.OrderDetailVO;
|
||||
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
|
||||
import cn.lili.modules.order.order.entity.vo.PaymentLog;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.system.entity.vo.Traces;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
@ -190,16 +186,6 @@ public interface OrderService extends IService<Order> {
|
||||
*/
|
||||
void deleteOrder(String sn);
|
||||
|
||||
/**
|
||||
* 获取统计的订单
|
||||
*
|
||||
* @param statisticsQueryParam
|
||||
* @param pageVO
|
||||
* @return
|
||||
*/
|
||||
IPage<OrderSimpleVO> getStatistics(StatisticsQueryParam statisticsQueryParam, PageVO pageVO);
|
||||
|
||||
|
||||
/**
|
||||
* 开具发票
|
||||
*
|
||||
|
@ -481,21 +481,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
||||
this.orderItemService.update(orderItemLambdaUpdateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<OrderSimpleVO> getStatistics(StatisticsQueryParam statisticsQueryParam, PageVO pageVO) {
|
||||
|
||||
QueryWrapper<OrderSimpleVO> queryWrapper = new QueryWrapper<>();
|
||||
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
|
||||
queryWrapper.between("o.create_time", dates[0], dates[1]);
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(statisticsQueryParam.getStoreId()),
|
||||
"o.store_id", statisticsQueryParam.getStoreId());
|
||||
|
||||
queryWrapper.eq("o.delete_flag", false);
|
||||
queryWrapper.groupBy("o.id");
|
||||
queryWrapper.orderByDesc("o.id");
|
||||
return this.baseMapper.queryByParams(PageUtil.initPage(pageVO), queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean invoice(String sn) {
|
||||
//根据订单号查询发票信息
|
||||
|
@ -13,41 +13,41 @@ import lombok.Data;
|
||||
public class OrderOverviewVO {
|
||||
|
||||
@ApiModelProperty(value = "UV人次")
|
||||
private Integer uvNum = 0;
|
||||
private Long uvNum;
|
||||
|
||||
/**
|
||||
* 下单统计
|
||||
*/
|
||||
@ApiModelProperty(value = "下单数量")
|
||||
private Long orderNum = 0L;
|
||||
private Long orderNum;
|
||||
|
||||
@ApiModelProperty(value = "下单人数")
|
||||
private Long orderMemberNum = 0L;
|
||||
private Long orderMemberNum;
|
||||
|
||||
@ApiModelProperty(value = "下单金额")
|
||||
private Double orderAmount = 0D;
|
||||
private Double orderAmount;
|
||||
|
||||
/**
|
||||
* 付款统计
|
||||
*/
|
||||
@ApiModelProperty(value = "付款订单数量")
|
||||
private Long paymentOrderNum = 0L;
|
||||
private Long paymentOrderNum;
|
||||
|
||||
@ApiModelProperty(value = "付款人数")
|
||||
private Long paymentsNum = 0L;
|
||||
private Long paymentsNum;
|
||||
|
||||
@ApiModelProperty(value = "付款金额")
|
||||
private Double paymentAmount = 0D;
|
||||
private Double paymentAmount;
|
||||
|
||||
|
||||
/**
|
||||
* 退单统计
|
||||
*/
|
||||
@ApiModelProperty(value = "退单笔数")
|
||||
private Long refundOrderNum = 0L;
|
||||
private Long refundOrderNum;
|
||||
|
||||
@ApiModelProperty(value = "退单金额")
|
||||
private Double refundOrderPrice = 0D;
|
||||
private Double refundOrderPrice;
|
||||
|
||||
/**
|
||||
* 转换率
|
||||
@ -61,5 +61,66 @@ public class OrderOverviewVO {
|
||||
@ApiModelProperty(value = "整体转换率")
|
||||
private String overallConversionRate;
|
||||
|
||||
|
||||
public Long getUvNum() {
|
||||
if (uvNum == null) {
|
||||
return 0L;
|
||||
}
|
||||
return uvNum;
|
||||
}
|
||||
|
||||
public Long getOrderNum() {
|
||||
if (orderNum == null) {
|
||||
return 0L;
|
||||
}
|
||||
return orderNum;
|
||||
}
|
||||
|
||||
public Long getOrderMemberNum() {
|
||||
if (orderMemberNum == null) {
|
||||
return 0L;
|
||||
}
|
||||
return orderMemberNum;
|
||||
}
|
||||
|
||||
public Double getOrderAmount() {
|
||||
if (orderAmount == null) {
|
||||
return 0D;
|
||||
}
|
||||
return orderAmount;
|
||||
}
|
||||
|
||||
public Long getPaymentOrderNum() {
|
||||
if (paymentOrderNum == null) {
|
||||
return 0L;
|
||||
}
|
||||
return paymentOrderNum;
|
||||
}
|
||||
|
||||
public Long getPaymentsNum() {
|
||||
if (paymentsNum == null) {
|
||||
return 0L;
|
||||
}
|
||||
return paymentsNum;
|
||||
}
|
||||
|
||||
public Double getPaymentAmount() {
|
||||
if (paymentAmount == null) {
|
||||
return 0D;
|
||||
}
|
||||
return paymentAmount;
|
||||
}
|
||||
|
||||
public Long getRefundOrderNum() {
|
||||
if (refundOrderNum == null) {
|
||||
return 0L;
|
||||
}
|
||||
return refundOrderNum;
|
||||
}
|
||||
|
||||
public Double getRefundOrderPrice() {
|
||||
if (refundOrderPrice == null) {
|
||||
return 0D;
|
||||
}
|
||||
return refundOrderPrice;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
package cn.lili.modules.statistics.mapper;
|
||||
|
||||
import cn.lili.modules.goods.entity.dos.Goods;
|
||||
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* 售后统计数据处理层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/11/17 7:34 下午
|
||||
*/
|
||||
public interface AfterSaleStatisticsMapper extends BaseMapper<AfterSale> {
|
||||
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package cn.lili.modules.statistics.mapper;
|
||||
|
||||
|
||||
import cn.lili.modules.store.entity.dos.Bill;
|
||||
import cn.lili.modules.store.entity.vos.BillListVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
/**
|
||||
* 结算单数据处理层
|
||||
*
|
||||
* @author Chopper
|
||||
* @since 2020/11/17 4:27 下午
|
||||
*/
|
||||
public interface BillStatisticsMapper extends BaseMapper<Bill> {
|
||||
|
||||
/**
|
||||
* 查询结算单分页
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 结算单分页
|
||||
*/
|
||||
@Select("select b.id,b.sn,b.start_time,b.end_time,b.bill_status,b.store_name,b.bill_price,b.create_time from li_bill as b ${ew.customSqlSegment}")
|
||||
IPage<BillListVO> queryBillPage(IPage<BillListVO> page, @Param(Constants.WRAPPER) Wrapper<BillListVO> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询订单结算
|
||||
*
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 结算单
|
||||
*/
|
||||
@Select("SELECT SUM( final_price ) AS orderPrice,SUM( commission_price ) AS commissionPrice" +
|
||||
",SUM( distribution_rebate ) AS distributionCommission,SUM( site_coupon_commission ) AS siteCouponCommission" +
|
||||
",SUM( point_settlement_price ) AS pointSettlementPrice " +
|
||||
",SUM( kanjia_settlement_price ) AS kanjiaSettlementPrice " +
|
||||
",SUM( bill_price ) AS billPrice " +
|
||||
"FROM li_store_flow ${ew.customSqlSegment}")
|
||||
Bill getOrderBill(@Param(Constants.WRAPPER) QueryWrapper<Bill> queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询退款结算单
|
||||
*
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 结算单
|
||||
*/
|
||||
@Select("SELECT SUM( final_price ) AS refundPrice,SUM( commission_price ) AS refundCommissionPrice" +
|
||||
",SUM( distribution_rebate ) AS distributionRefundCommission,SUM( site_coupon_commission ) AS siteCouponRefundCommission" +
|
||||
",SUM( bill_price ) AS billPrice FROM li_store_flow ${ew.customSqlSegment}")
|
||||
Bill getRefundBill(@Param(Constants.WRAPPER) QueryWrapper<Bill> queryWrapper);
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package cn.lili.modules.statistics.mapper;
|
||||
|
||||
import cn.lili.modules.distribution.entity.dos.DistributionCash;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* 分销佣金数据统计
|
||||
*
|
||||
* @author pikachu
|
||||
* @since 2020-03-26 18:45:56
|
||||
*/
|
||||
public interface DistributionCashStatisticsMapper extends BaseMapper<DistributionCash> {
|
||||
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package cn.lili.modules.statistics.mapper;
|
||||
|
||||
import cn.lili.modules.goods.entity.dos.Goods;
|
||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品统计数据处理层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/11/17 7:34 下午
|
||||
*/
|
||||
public interface GoodsStatisticsMapper extends BaseMapper<Goods> {
|
||||
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package cn.lili.modules.statistics.mapper;
|
||||
|
||||
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
||||
import cn.lili.modules.member.entity.vo.MemberEvaluationListVO;
|
||||
import cn.lili.modules.member.entity.vo.StoreRatingVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 会员商品评价数据处理层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020-02-25 14:10:16
|
||||
*/
|
||||
public interface MemberEvaluationStatisticsMapper extends BaseMapper<MemberEvaluation> {
|
||||
|
||||
|
||||
/**
|
||||
* 会员评价分页
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 会员评价分页
|
||||
*/
|
||||
@Select("select me.* from li_member_evaluation as me ${ew.customSqlSegment}")
|
||||
IPage<MemberEvaluationListVO> getMemberEvaluationList(IPage<MemberEvaluationListVO> page, @Param(Constants.WRAPPER) Wrapper<MemberEvaluationListVO> queryWrapper);
|
||||
|
||||
/**
|
||||
* 评价数量
|
||||
*
|
||||
* @param goodsId 商品ID
|
||||
* @return 会员评价
|
||||
*/
|
||||
@Select("select grade,count(1) as num from li_member_evaluation Where goods_id=#{goodsId} and status='OPEN' GROUP BY grade")
|
||||
List<Map<String, Object>> getEvaluationNumber(String goodsId);
|
||||
|
||||
/**
|
||||
* 获取店铺评分
|
||||
*
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 店铺评分
|
||||
*/
|
||||
@Select("SELECT round( AVG( delivery_score ), 2 ) AS delivery_score" +
|
||||
",round( AVG( description_score ), 2 ) AS description_score" +
|
||||
",round( AVG( service_score ), 2 ) AS service_score " +
|
||||
"FROM li_member_evaluation ${ew.customSqlSegment}")
|
||||
StoreRatingVO getStoreRatingVO(@Param(Constants.WRAPPER) Wrapper<MemberEvaluation> queryWrapper);
|
||||
|
||||
/**
|
||||
* 商品会员评价数量
|
||||
*
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 评价数量
|
||||
*/
|
||||
@Select("SELECT goods_id,COUNT(goods_id) AS num FROM li_member_evaluation GROUP BY goods_id")
|
||||
List<Map<String, Object>> memberEvaluationNum(@Param(Constants.WRAPPER) Wrapper<MemberEvaluation> queryWrapper);
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package cn.lili.modules.statistics.mapper;
|
||||
|
||||
import cn.lili.modules.member.entity.vo.MemberDistributionVO;
|
||||
import cn.lili.modules.statistics.entity.dos.MemberStatisticsData;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
@ -7,13 +8,15 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 会员统计数据处理层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/11/17 7:34 下午
|
||||
*/
|
||||
public interface MemberStatisticsDataMapper extends BaseMapper<MemberStatisticsData> {
|
||||
public interface MemberStatisticsMapper extends BaseMapper<MemberStatisticsData> {
|
||||
|
||||
/**
|
||||
* 获取会员统计数量
|
||||
@ -24,4 +27,11 @@ public interface MemberStatisticsDataMapper extends BaseMapper<MemberStatisticsD
|
||||
@Select("SELECT COUNT(0) FROM li_member ${ew.customSqlSegment}")
|
||||
Integer customSqlQuery(@Param(Constants.WRAPPER) Wrapper queryWrapper);
|
||||
|
||||
|
||||
/**
|
||||
* 获取会员分布列表
|
||||
* @return 会员分布列表
|
||||
*/
|
||||
@Select("select client_enum,count(0) as num from li_member group by client_enum")
|
||||
List<MemberDistributionVO> distribution();
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package cn.lili.modules.statistics.mapper;
|
||||
|
||||
import cn.lili.modules.order.order.entity.dos.OrderComplaint;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* 订单投诉数据处理层
|
||||
*
|
||||
* @author paulG
|
||||
* @since 2020/12/5
|
||||
**/
|
||||
public interface OrderComplaintStatisticsMapper extends BaseMapper<OrderComplaint> {
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
package cn.lili.modules.statistics.mapper;
|
||||
|
||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderStatisticsDataVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单统计数据处理层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/11/17 7:34 下午
|
||||
*/
|
||||
public interface OrderStatisticsDataMapper extends BaseMapper<StoreFlow> {
|
||||
|
||||
/**
|
||||
* 获取订单统计数据
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 订单统计列表
|
||||
*/
|
||||
@Select("SELECT DATE_FORMAT(create_time,'%Y-%m-%d') AS create_time,sum(flow_price) AS price FROM li_order " +
|
||||
" ${ew.customSqlSegment}")
|
||||
List<OrderStatisticsDataVO> getOrderStatisticsData(@Param(Constants.WRAPPER) Wrapper queryWrapper);
|
||||
|
||||
/**
|
||||
* 订单数量
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 订单数量
|
||||
*/
|
||||
@Select("SELECT count(0) FROM li_order ${ew.customSqlSegment}")
|
||||
Integer count(@Param(Constants.WRAPPER) Wrapper queryWrapper);
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package cn.lili.modules.statistics.mapper;
|
||||
|
||||
import cn.lili.modules.order.order.entity.dos.Order;
|
||||
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderStatisticsDataVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 订单统计数据处理层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/11/17 7:34 下午
|
||||
*/
|
||||
public interface OrderStatisticsMapper extends BaseMapper<Order> {
|
||||
|
||||
/**
|
||||
* 获取订单统计数据
|
||||
*
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 订单统计列表
|
||||
*/
|
||||
@Select("SELECT DATE_FORMAT(create_time,'%Y-%m-%d') AS create_time,sum(flow_price) AS price FROM li_order " +
|
||||
" ${ew.customSqlSegment}")
|
||||
List<OrderStatisticsDataVO> getOrderStatisticsData(@Param(Constants.WRAPPER) Wrapper queryWrapper);
|
||||
|
||||
/**
|
||||
* 订单数量
|
||||
*
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 订单数量
|
||||
*/
|
||||
@Select("SELECT count(0) FROM li_order ${ew.customSqlSegment}")
|
||||
Integer count(@Param(Constants.WRAPPER) Wrapper queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询订单简短信息分页
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 查询条件
|
||||
* @return 简短订单分页
|
||||
*/
|
||||
@Select("select o.sn,o.flow_price,o.create_time,o.order_status,o.pay_status,o.payment_method,o.payment_time,o.member_name,o.store_name as store_name,o.store_id as store_id,o.client_type,o.order_type,o.deliver_status " +
|
||||
",GROUP_CONCAT(oi.goods_id) as group_goods_id," +
|
||||
" GROUP_CONCAT(oi.sku_id) as group_sku_id," +
|
||||
" GROUP_CONCAT(oi.num) as group_num" +
|
||||
",GROUP_CONCAT(oi.image) as group_images" +
|
||||
",GROUP_CONCAT(oi.goods_name) as group_name " +
|
||||
",GROUP_CONCAT(oi.after_sale_status) as group_after_sale_status" +
|
||||
",GROUP_CONCAT(oi.complain_status) as group_complain_status" +
|
||||
",GROUP_CONCAT(oi.comment_status) as group_comment_status" +
|
||||
",GROUP_CONCAT(oi.sn) as group_order_items_sn " +
|
||||
",GROUP_CONCAT(oi.goods_price) as group_goods_price " +
|
||||
" FROM li_order o INNER JOIN li_order_item AS oi on o.sn = oi.order_sn ${ew.customSqlSegment} ")
|
||||
IPage<OrderSimpleVO> queryByParams(IPage<OrderSimpleVO> page, @Param(Constants.WRAPPER) Wrapper<OrderSimpleVO> queryWrapper);
|
||||
|
||||
}
|
@ -13,7 +13,7 @@ import org.apache.ibatis.annotations.Select;
|
||||
* @author Bulbasaur
|
||||
* @since 2020/11/17 7:34 下午
|
||||
*/
|
||||
public interface PlatformViewDataMapper extends BaseMapper<PlatformViewData> {
|
||||
public interface PlatformViewMapper extends BaseMapper<PlatformViewData> {
|
||||
/**
|
||||
* UV流量统计
|
||||
*
|
@ -15,7 +15,7 @@ import org.apache.ibatis.annotations.Select;
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/10 11:22
|
||||
*/
|
||||
public interface RefundOrderStatisticsDataMapper extends BaseMapper<StoreFlow> {
|
||||
public interface RefundOrderStatisticsMapper extends BaseMapper<StoreFlow> {
|
||||
|
||||
/**
|
||||
* 退款统计
|
@ -0,0 +1,14 @@
|
||||
package cn.lili.modules.statistics.mapper;
|
||||
|
||||
import cn.lili.modules.promotion.entity.dos.Seckill;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Update;
|
||||
|
||||
/**
|
||||
* 秒杀活动统计
|
||||
*
|
||||
* @author Chopper
|
||||
* @since 2020/8/21
|
||||
*/
|
||||
public interface SeckillStatisticsMapper extends BaseMapper<Seckill> {
|
||||
}
|
@ -3,6 +3,7 @@ package cn.lili.modules.statistics.mapper;
|
||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.StoreStatisticsDataVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@ -18,7 +19,7 @@ import java.util.List;
|
||||
* @author Bulbasaur
|
||||
* @since 2020/11/17 7:34 下午
|
||||
*/
|
||||
public interface GoodsStatisticsDataMapper extends BaseMapper<StoreFlow> {
|
||||
public interface StoreFlowStatisticsMapper extends BaseMapper<StoreFlow> {
|
||||
|
||||
/**
|
||||
* 商品统计
|
||||
@ -38,4 +39,17 @@ public interface GoodsStatisticsDataMapper extends BaseMapper<StoreFlow> {
|
||||
*/
|
||||
@Select("SELECT category_id,category_name,SUM(price) AS price,SUM(num) AS num FROM li_store_flow ${ew.customSqlSegment}")
|
||||
List<CategoryStatisticsDataVO> getCateGoryStatisticsData(@Param(Constants.WRAPPER) Wrapper<CategoryStatisticsDataVO> queryWrapper);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 店铺统计列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 查询参数
|
||||
* @return 店铺统计列表
|
||||
*/
|
||||
@Select("SELECT store_id AS storeId,store_name AS storeName,SUM(final_price) AS price,SUM(num) AS num FROM li_store_flow ${ew.customSqlSegment}")
|
||||
List<StoreStatisticsDataVO> getStoreStatisticsData(IPage<GoodsStatisticsDataVO> page, @Param(Constants.WRAPPER) Wrapper<GoodsStatisticsDataVO> queryWrapper);
|
||||
|
||||
}
|
@ -3,6 +3,7 @@ package cn.lili.modules.statistics.mapper;
|
||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.StoreStatisticsDataVO;
|
||||
import cn.lili.modules.store.entity.dos.Store;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
@ -18,16 +19,6 @@ import java.util.List;
|
||||
* @author Bulbasaur
|
||||
* @since 2020/11/17 7:34 下午
|
||||
*/
|
||||
public interface StoreStatisticsDataMapper extends BaseMapper<StoreFlow> {
|
||||
|
||||
/**
|
||||
* 店铺统计列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 查询参数
|
||||
* @return 店铺统计列表
|
||||
*/
|
||||
@Select("SELECT store_id AS storeId,store_name AS storeName,SUM(final_price) AS price,SUM(num) AS num FROM li_store_flow ${ew.customSqlSegment}")
|
||||
List<StoreStatisticsDataVO> getStoreStatisticsData(IPage<GoodsStatisticsDataVO> page, @Param(Constants.WRAPPER) Wrapper<GoodsStatisticsDataVO> queryWrapper);
|
||||
public interface StoreStatisticsMapper extends BaseMapper<Store> {
|
||||
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.common.vo.PageVO;
|
||||
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* 售后统计业务层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:06
|
||||
*/
|
||||
public interface AfterSaleStatisticsService extends IService<AfterSale> {
|
||||
|
||||
/**
|
||||
* 获取待处理售后数量
|
||||
*
|
||||
* @param serviceType 售后类型
|
||||
* @return 待处理售后数量
|
||||
*/
|
||||
Integer applyNum(String serviceType);
|
||||
|
||||
/**
|
||||
* 获取统计的售后
|
||||
*
|
||||
* @param statisticsQueryParam 统计搜索参数
|
||||
* @param pageVO 分页
|
||||
* @return 售后分页列表
|
||||
*/
|
||||
IPage<AfterSale> getStatistics(StatisticsQueryParam statisticsQueryParam, PageVO pageVO);
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.modules.store.entity.dos.Bill;
|
||||
import cn.lili.modules.store.entity.enums.BillStatusEnum;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* 结算单统计
|
||||
*
|
||||
* @author Chopper
|
||||
* @since 2020/11/17 4:28 下午
|
||||
*/
|
||||
public interface BillStatisticsService extends IService<Bill> {
|
||||
|
||||
/**
|
||||
* 商家待结算数量
|
||||
*
|
||||
* @param billStatusEnum 结算单类型
|
||||
* @return 待结算商家数量
|
||||
*/
|
||||
Integer billNum(BillStatusEnum billStatusEnum);
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.common.vo.PageVO;
|
||||
import cn.lili.modules.distribution.entity.dos.DistributionCash;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* 分销佣金统计
|
||||
*
|
||||
* @author pikachu
|
||||
* @since 2020-03-14 23:04:56
|
||||
*/
|
||||
public interface DistributionCashStatisticsService extends IService<DistributionCash> {
|
||||
|
||||
/**
|
||||
* 待处理分销员提现申请数量
|
||||
*
|
||||
* @return 待处理分销员提现申请数量
|
||||
*/
|
||||
Integer newDistributionCash();
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品统计业务层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:06
|
||||
*/
|
||||
public interface GoodsStatisticsDataService extends IService<StoreFlow> {
|
||||
|
||||
/**
|
||||
* 查询热卖商品
|
||||
* 查询TOP100的商品
|
||||
*
|
||||
* @param goodsStatisticsQueryParam 查询参数
|
||||
* @param num 数量
|
||||
* @return
|
||||
*/
|
||||
List<GoodsStatisticsDataVO> getGoodsStatisticsData(GoodsStatisticsQueryParam goodsStatisticsQueryParam, Integer num);
|
||||
|
||||
/**
|
||||
* 查询行业统计
|
||||
* 根据商品一级分类ID查询
|
||||
*
|
||||
* @param goodsStatisticsQueryParam 查询参数
|
||||
* @return
|
||||
*/
|
||||
List<CategoryStatisticsDataVO> getCategoryStatisticsData(GoodsStatisticsQueryParam goodsStatisticsQueryParam);
|
||||
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.modules.goods.entity.dos.Goods;
|
||||
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
|
||||
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
|
||||
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品统计业务层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:06
|
||||
*/
|
||||
public interface GoodsStatisticsService extends IService<Goods> {
|
||||
|
||||
/**
|
||||
* 获取所有的已上架的商品数量
|
||||
*
|
||||
* @param goodsAuthEnum 商品审核枚举
|
||||
* @param goodsStatusEnum 商品状态枚举
|
||||
* @return 所有的已上架的商品数量
|
||||
*/
|
||||
Integer goodsNum(GoodsStatusEnum goodsStatusEnum, GoodsAuthEnum goodsAuthEnum);
|
||||
|
||||
/**
|
||||
* 获取今天的已上架的商品数量
|
||||
*
|
||||
* @return 今天的已上架的商品数量
|
||||
*/
|
||||
Integer todayUpperNum();
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* 会员商品评价统计
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020-02-25 14:10:16
|
||||
*/
|
||||
public interface MemberEvaluationStatisticsService extends IService<MemberEvaluation> {
|
||||
|
||||
/**
|
||||
* 获取今天新增的评价数量
|
||||
*
|
||||
* @return 今日评价数量
|
||||
*/
|
||||
Integer todayMemberEvaluation();
|
||||
|
||||
/**
|
||||
* 获取等待回复评价数量
|
||||
*
|
||||
* @return 等待回复评价数量
|
||||
*/
|
||||
Integer getWaitReplyNum();
|
||||
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.modules.member.entity.vo.MemberDistributionVO;
|
||||
import cn.lili.modules.statistics.entity.dos.MemberStatisticsData;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
@ -13,7 +14,7 @@ import java.util.List;
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:06
|
||||
*/
|
||||
public interface MemberStatisticsDataService extends IService<MemberStatisticsData> {
|
||||
public interface MemberStatisticsService extends IService<MemberStatisticsData> {
|
||||
|
||||
/**
|
||||
* 获取会员数量
|
||||
@ -61,4 +62,13 @@ public interface MemberStatisticsDataService extends IService<MemberStatisticsDa
|
||||
* @return
|
||||
*/
|
||||
List<MemberStatisticsData> statistics(StatisticsQueryParam statisticsQueryParam);
|
||||
|
||||
|
||||
/**
|
||||
* 查看会员数据分布
|
||||
*
|
||||
* @return 会员数据分布
|
||||
*/
|
||||
List<MemberDistributionVO> distribution();
|
||||
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.modules.order.order.entity.dos.OrderComplaint;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* 交易投诉统计
|
||||
*
|
||||
* @author paulG
|
||||
* @since 2020/12/4
|
||||
**/
|
||||
public interface OrderComplaintStatisticsService extends IService<OrderComplaint> {
|
||||
|
||||
/**
|
||||
* 待处理投诉数量
|
||||
*
|
||||
* @return 待处理投诉数量
|
||||
*/
|
||||
Integer waitComplainNum();
|
||||
}
|
@ -1,9 +1,12 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||
import cn.lili.common.vo.PageVO;
|
||||
import cn.lili.modules.order.order.entity.dos.Order;
|
||||
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderOverviewVO;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderStatisticsDataVO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
@ -15,7 +18,7 @@ import java.util.Map;
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:06
|
||||
*/
|
||||
public interface OrderStatisticsDataService extends IService<StoreFlow> {
|
||||
public interface OrderStatisticsService extends IService<Order> {
|
||||
|
||||
/**
|
||||
* 订单统计概览
|
||||
@ -32,14 +35,6 @@ public interface OrderStatisticsDataService extends IService<StoreFlow> {
|
||||
*/
|
||||
Map<String, Object> getStoreOrderStatisticsPrice();
|
||||
|
||||
|
||||
/**
|
||||
* 查询今日付款统计
|
||||
*
|
||||
* @return 订单统计金额
|
||||
*/
|
||||
Map<String, Object> getOrderStatisticsPrice();
|
||||
|
||||
/**
|
||||
* 获取订单总数量
|
||||
*
|
||||
@ -56,4 +51,12 @@ public interface OrderStatisticsDataService extends IService<StoreFlow> {
|
||||
*/
|
||||
List<OrderStatisticsDataVO> statisticsChart(StatisticsQueryParam statisticsQueryParam);
|
||||
|
||||
/**
|
||||
* 获取统计的订单
|
||||
*
|
||||
* @param statisticsQueryParam
|
||||
* @param pageVO
|
||||
* @return
|
||||
*/
|
||||
IPage<OrderSimpleVO> getStatistics(StatisticsQueryParam statisticsQueryParam, PageVO pageVO);
|
||||
}
|
@ -15,7 +15,7 @@ import java.util.List;
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:06
|
||||
*/
|
||||
public interface PlatformViewDataService extends IService<PlatformViewData> {
|
||||
public interface PlatformViewService extends IService<PlatformViewData> {
|
||||
|
||||
|
||||
/**
|
@ -0,0 +1,22 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.modules.promotion.entity.dos.Seckill;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* 秒杀统计
|
||||
*
|
||||
* @author Chopper
|
||||
* @since 2020/11/18 9:45 上午
|
||||
*/
|
||||
public interface SeckillStatisticsService extends IService<Seckill> {
|
||||
|
||||
|
||||
/**
|
||||
* 获取当前可参与的活动数量
|
||||
*
|
||||
* @return 可参与活动数量
|
||||
*/
|
||||
Integer getApplyNum();
|
||||
|
||||
}
|
@ -0,0 +1,69 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderOverviewVO;
|
||||
import cn.lili.modules.statistics.entity.vo.StoreStatisticsDataVO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 流水统计业务层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:06
|
||||
*/
|
||||
public interface StoreFlowStatisticsService extends IService<StoreFlow> {
|
||||
|
||||
/**
|
||||
* 查询热卖商品
|
||||
* 查询TOP100的商品
|
||||
*
|
||||
* @param goodsStatisticsQueryParam 查询参数
|
||||
* @param num 数量
|
||||
* @return
|
||||
*/
|
||||
List<GoodsStatisticsDataVO> getGoodsStatisticsData(GoodsStatisticsQueryParam goodsStatisticsQueryParam, Integer num);
|
||||
|
||||
/**
|
||||
* 查询行业统计
|
||||
* 根据商品一级分类ID查询
|
||||
*
|
||||
* @param goodsStatisticsQueryParam 查询参数
|
||||
* @return
|
||||
*/
|
||||
List<CategoryStatisticsDataVO> getCategoryStatisticsData(GoodsStatisticsQueryParam goodsStatisticsQueryParam);
|
||||
|
||||
/**
|
||||
* 店铺流水 根据店铺 统计
|
||||
*
|
||||
* @param page
|
||||
* @param queryWrapper
|
||||
* @return
|
||||
*/
|
||||
List<StoreStatisticsDataVO> getStoreStatisticsData(Page page, QueryWrapper queryWrapper);
|
||||
|
||||
/**
|
||||
* 查询今日付款统计
|
||||
*
|
||||
* @return 订单统计金额
|
||||
*/
|
||||
Map<String, Object> getOrderStatisticsPrice();
|
||||
|
||||
/**
|
||||
* 订单统计,数据概览
|
||||
*
|
||||
* @param dates
|
||||
* @param orderOverviewVO
|
||||
* @param statisticsQueryParam
|
||||
*/
|
||||
void overview(Date[] dates, OrderOverviewVO orderOverviewVO, StatisticsQueryParam statisticsQueryParam);
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package cn.lili.modules.statistics.service;
|
||||
|
||||
import cn.lili.modules.goods.entity.dos.Goods;
|
||||
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
|
||||
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
|
||||
import cn.lili.modules.store.entity.dos.Store;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
/**
|
||||
* 店铺统计业务层
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:06
|
||||
*/
|
||||
public interface StoreStatisticsService extends IService<Store> {
|
||||
|
||||
/**
|
||||
* 获取待审核店铺数量
|
||||
*
|
||||
* @return 待审核店铺数量
|
||||
*/
|
||||
Integer auditNum();
|
||||
|
||||
/**
|
||||
* 获取所有店铺数量
|
||||
*
|
||||
* @return 店铺总数
|
||||
*/
|
||||
Integer storeNum();
|
||||
|
||||
/**
|
||||
* 获取今天的店铺数量
|
||||
*
|
||||
* @return 今天的店铺数量
|
||||
*/
|
||||
Integer todayStoreNum();
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.lili.common.security.AuthUser;
|
||||
import cn.lili.common.security.context.UserContext;
|
||||
import cn.lili.common.security.enums.UserEnums;
|
||||
import cn.lili.common.vo.PageVO;
|
||||
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||
import cn.lili.modules.order.trade.entity.enums.AfterSaleStatusEnum;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.mapper.AfterSaleStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.AfterSaleStatisticsService;
|
||||
import cn.lili.modules.statistics.util.StatisticsDateUtil;
|
||||
import cn.lili.mybatis.util.PageUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 售后统计业务层实现
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:30
|
||||
*/
|
||||
@Service
|
||||
public class AfterSaleStatisticsServiceImpl extends ServiceImpl<AfterSaleStatisticsMapper, AfterSale> implements AfterSaleStatisticsService {
|
||||
|
||||
|
||||
@Override
|
||||
public Integer applyNum(String serviceType) {
|
||||
AuthUser authUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||
LambdaQueryWrapper<AfterSale> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(AfterSale::getServiceStatus, AfterSaleStatusEnum.APPLY.name());
|
||||
queryWrapper.eq(CharSequenceUtil.isNotEmpty(serviceType), AfterSale::getServiceType, serviceType);
|
||||
queryWrapper.eq(CharSequenceUtil.equals(authUser.getRole().name(), UserEnums.STORE.name()),
|
||||
AfterSale::getStoreId, authUser.getStoreId());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public IPage<AfterSale> getStatistics(StatisticsQueryParam statisticsQueryParam, PageVO pageVO) {
|
||||
|
||||
LambdaQueryWrapper<AfterSale> queryWrapper = new LambdaQueryWrapper<>();
|
||||
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
|
||||
queryWrapper.between(AfterSale::getCreateTime, dates[0], dates[1]);
|
||||
queryWrapper.eq(CharSequenceUtil.isNotEmpty(statisticsQueryParam.getStoreId()), AfterSale::getStoreId, statisticsQueryParam.getStoreId());
|
||||
|
||||
return this.page(PageUtil.initPage(pageVO), queryWrapper);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.lili.common.security.context.UserContext;
|
||||
import cn.lili.common.security.enums.UserEnums;
|
||||
import cn.lili.common.utils.StringUtils;
|
||||
import cn.lili.modules.statistics.mapper.BillStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.BillStatisticsService;
|
||||
import cn.lili.modules.store.entity.dos.Bill;
|
||||
import cn.lili.modules.store.entity.enums.BillStatusEnum;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 结算单统计
|
||||
*
|
||||
* @author Chopper
|
||||
* @since 2020/11/17 4:28 下午
|
||||
*/
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class BillStatisticsServiceImpl extends ServiceImpl<BillStatisticsMapper, Bill> implements BillStatisticsService {
|
||||
|
||||
|
||||
@Override
|
||||
public Integer billNum(BillStatusEnum billStatusEnum) {
|
||||
LambdaUpdateWrapper<Bill> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
|
||||
lambdaUpdateWrapper.eq(Bill::getBillStatus, billStatusEnum.name());
|
||||
lambdaUpdateWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),
|
||||
Bill::getStoreId, UserContext.getCurrentUser().getStoreId());
|
||||
return this.count(lambdaUpdateWrapper);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.lili.modules.distribution.entity.dos.DistributionCash;
|
||||
import cn.lili.modules.statistics.mapper.DistributionCashStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.DistributionCashStatisticsService;
|
||||
import cn.lili.modules.wallet.entity.enums.WithdrawStatusEnum;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
|
||||
/**
|
||||
* 分销佣金统计层实现
|
||||
*
|
||||
* @author pikachu
|
||||
* @since 2020-03-126 18:04:56
|
||||
*/
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class DistributionCashStatisticsServiceImpl extends ServiceImpl<DistributionCashStatisticsMapper, DistributionCash>
|
||||
implements DistributionCashStatisticsService {
|
||||
|
||||
|
||||
@Override
|
||||
public Integer newDistributionCash() {
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
queryWrapper.eq("distribution_cash_status", WithdrawStatusEnum.APPLY.name());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.lili.common.utils.StringUtils;
|
||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||
import cn.lili.modules.order.order.entity.enums.FlowTypeEnum;
|
||||
import cn.lili.modules.statistics.mapper.GoodsStatisticsDataMapper;
|
||||
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.enums.StatisticsQuery;
|
||||
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.service.GoodsStatisticsDataService;
|
||||
import cn.lili.modules.statistics.util.StatisticsDateUtil;
|
||||
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 org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 商品统计业务层实现
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:30
|
||||
*/
|
||||
@Service
|
||||
public class GoodsStatisticsDataServiceImpl extends ServiceImpl<GoodsStatisticsDataMapper, StoreFlow> implements GoodsStatisticsDataService {
|
||||
|
||||
@Override
|
||||
public List<GoodsStatisticsDataVO> getGoodsStatisticsData(GoodsStatisticsQueryParam goodsStatisticsQueryParam, Integer num) {
|
||||
//获取查询条件
|
||||
QueryWrapper queryWrapper = getQueryWrapper(goodsStatisticsQueryParam);
|
||||
//根据商品分组
|
||||
queryWrapper.groupBy("goods_id");
|
||||
queryWrapper.groupBy("goods_name");
|
||||
|
||||
queryWrapper.eq(!StringUtils.isEmpty(goodsStatisticsQueryParam.getStoreId()), "store_id", goodsStatisticsQueryParam.getStoreId());
|
||||
//查询前X记录
|
||||
Page page = new Page<GoodsStatisticsDataVO>(1, num);
|
||||
return this.baseMapper.getGoodsStatisticsData(page, queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CategoryStatisticsDataVO> getCategoryStatisticsData(GoodsStatisticsQueryParam goodsStatisticsQueryParam) {
|
||||
//获取查询条件
|
||||
QueryWrapper queryWrapper = getQueryWrapper(goodsStatisticsQueryParam);
|
||||
//根据分类分组
|
||||
queryWrapper.groupBy("category_id");
|
||||
return this.baseMapper.getCateGoryStatisticsData(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
private QueryWrapper getQueryWrapper(GoodsStatisticsQueryParam goodsStatisticsQueryParam) {
|
||||
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
//判断搜索类型是:年、月
|
||||
Date[] date = StatisticsDateUtil.getDateArray(goodsStatisticsQueryParam);
|
||||
queryWrapper.between("create_time", date[0], date[1]);
|
||||
|
||||
//判断是按照数量统计还是按照金额统计
|
||||
if (goodsStatisticsQueryParam.getType().equals(StatisticsQuery.PRICE.name())) {
|
||||
queryWrapper.orderByDesc("price");
|
||||
} else {
|
||||
queryWrapper.orderByDesc("num");
|
||||
}
|
||||
//设置为付款查询
|
||||
queryWrapper.eq("flow_type", FlowTypeEnum.PAY.name());
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.text.CharSequenceUtil;
|
||||
import cn.lili.common.security.AuthUser;
|
||||
import cn.lili.common.security.context.UserContext;
|
||||
import cn.lili.common.security.enums.UserEnums;
|
||||
import cn.lili.modules.goods.entity.dos.Goods;
|
||||
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
|
||||
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
|
||||
import cn.lili.modules.statistics.mapper.GoodsStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.GoodsStatisticsService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* 商品统计业务层实现
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:30
|
||||
*/
|
||||
@Service
|
||||
public class GoodsStatisticsServiceImpl extends ServiceImpl<GoodsStatisticsMapper, Goods> implements GoodsStatisticsService {
|
||||
|
||||
@Override
|
||||
public Integer goodsNum(GoodsStatusEnum goodsStatusEnum, GoodsAuthEnum goodsAuthEnum) {
|
||||
LambdaQueryWrapper<Goods> queryWrapper = Wrappers.lambdaQuery();
|
||||
|
||||
queryWrapper.eq(Goods::getDeleteFlag, false);
|
||||
|
||||
if (goodsStatusEnum != null) {
|
||||
queryWrapper.eq(Goods::getMarketEnable, goodsStatusEnum.name());
|
||||
}
|
||||
if (goodsAuthEnum != null) {
|
||||
queryWrapper.eq(Goods::getIsAuth, goodsAuthEnum.name());
|
||||
}
|
||||
AuthUser currentUser = Objects.requireNonNull(UserContext.getCurrentUser());
|
||||
queryWrapper.eq(CharSequenceUtil.equals(currentUser.getRole().name(), UserEnums.STORE.name()),
|
||||
Goods::getStoreId, currentUser.getStoreId());
|
||||
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer todayUpperNum() {
|
||||
LambdaQueryWrapper<Goods> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(Goods::getMarketEnable, GoodsStatusEnum.UPPER.name());
|
||||
queryWrapper.ge(Goods::getCreateTime, DateUtil.beginOfDay(new DateTime()));
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
}
|
@ -5,18 +5,11 @@ import cn.hutool.core.date.DateTime;
|
||||
import cn.lili.common.security.context.UserContext;
|
||||
import cn.lili.common.security.enums.UserEnums;
|
||||
import cn.lili.common.utils.BeanUtil;
|
||||
import cn.lili.modules.distribution.service.DistributionCashService;
|
||||
import cn.lili.modules.goods.entity.enums.GoodsAuthEnum;
|
||||
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
|
||||
import cn.lili.modules.goods.service.GoodsService;
|
||||
import cn.lili.modules.member.service.MemberEvaluationService;
|
||||
import cn.lili.modules.order.order.entity.enums.FlowTypeEnum;
|
||||
import cn.lili.modules.order.order.entity.enums.OrderStatusEnum;
|
||||
import cn.lili.modules.order.aftersale.service.AfterSaleService;
|
||||
import cn.lili.modules.order.order.service.OrderComplaintService;
|
||||
import cn.lili.modules.order.trade.entity.enums.AfterSaleTypeEnum;
|
||||
import cn.lili.modules.promotion.service.SeckillService;
|
||||
import cn.lili.modules.statistics.mapper.StoreStatisticsDataMapper;
|
||||
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.enums.SearchTypeEnum;
|
||||
@ -24,8 +17,6 @@ import cn.lili.modules.statistics.entity.vo.*;
|
||||
import cn.lili.modules.statistics.service.*;
|
||||
import cn.lili.modules.statistics.util.StatisticsDateUtil;
|
||||
import cn.lili.modules.store.entity.enums.BillStatusEnum;
|
||||
import cn.lili.modules.store.service.BillService;
|
||||
import cn.lili.modules.store.service.StoreService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@ -50,84 +41,79 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService {
|
||||
* 订单统计
|
||||
*/
|
||||
@Autowired
|
||||
private OrderStatisticsDataService orderStatisticsDataService;
|
||||
private OrderStatisticsService orderStatisticsService;
|
||||
/**
|
||||
* 会员统计
|
||||
*/
|
||||
@Autowired
|
||||
private MemberStatisticsDataService memberStatisticsDataService;
|
||||
private MemberStatisticsService memberStatisticsService;
|
||||
/**
|
||||
* 商品统计
|
||||
*/
|
||||
@Autowired
|
||||
private GoodsStatisticsDataService goodsStatisticsDataService;
|
||||
private GoodsStatisticsService goodsStatisticsService;
|
||||
/**
|
||||
* 店铺统计
|
||||
* 商品统计
|
||||
*/
|
||||
@Autowired
|
||||
private StoreStatisticsDataMapper storeStatisticsDataMapper;
|
||||
/**
|
||||
* 商品
|
||||
*/
|
||||
@Autowired
|
||||
private GoodsService goodsService;
|
||||
private StoreFlowStatisticsService storeFlowStatisticsService;
|
||||
/**
|
||||
* 店铺
|
||||
*/
|
||||
@Autowired
|
||||
private StoreService storeService;
|
||||
private StoreStatisticsService storeStatisticsService;
|
||||
/**
|
||||
* 店铺
|
||||
*/
|
||||
@Autowired
|
||||
private MemberEvaluationService memberEvaluationService;
|
||||
private MemberEvaluationStatisticsService memberEvaluationStatisticsService;
|
||||
/**
|
||||
* 售后
|
||||
*/
|
||||
@Autowired
|
||||
private AfterSaleService afterSaleService;
|
||||
private AfterSaleStatisticsService afterSaleStatisticsService;
|
||||
/**
|
||||
* 投诉
|
||||
*/
|
||||
@Autowired
|
||||
private OrderComplaintService orderComplaintService;
|
||||
private OrderComplaintStatisticsService orderComplaintStatisticsService;
|
||||
/**
|
||||
* 分销员提现
|
||||
*/
|
||||
@Autowired
|
||||
private DistributionCashService distributionCashService;
|
||||
private DistributionCashStatisticsService distributionCashStatisticsService;
|
||||
/**
|
||||
* 平台PV统计
|
||||
*/
|
||||
@Autowired
|
||||
private PlatformViewDataService platformViewDataService;
|
||||
private PlatformViewService platformViewService;
|
||||
/**
|
||||
* 结算单
|
||||
*/
|
||||
@Autowired
|
||||
private BillService billService;
|
||||
private BillStatisticsService billStatisticsService;
|
||||
/**
|
||||
* 秒杀活动
|
||||
*/
|
||||
@Autowired
|
||||
private SeckillService seckillService;
|
||||
private SeckillStatisticsService seckillStatisticsService;
|
||||
|
||||
@Override
|
||||
public IndexNoticeVO indexNotice() {
|
||||
|
||||
IndexNoticeVO indexNoticeVO = new IndexNoticeVO();
|
||||
//商品审核
|
||||
indexNoticeVO.setGoods(goodsService.goodsNum(null, GoodsAuthEnum.TOBEAUDITED));
|
||||
indexNoticeVO.setGoods(goodsStatisticsService.goodsNum(null, GoodsAuthEnum.TOBEAUDITED));
|
||||
//店铺入驻审核
|
||||
indexNoticeVO.setStore(storeService.auditNum());
|
||||
indexNoticeVO.setStore(storeStatisticsService.auditNum());
|
||||
//售后申请
|
||||
indexNoticeVO.setRefund(afterSaleService.applyNum(null));
|
||||
indexNoticeVO.setRefund(afterSaleStatisticsService.applyNum(null));
|
||||
//投诉审核
|
||||
indexNoticeVO.setComplain(orderComplaintService.waitComplainNum());
|
||||
indexNoticeVO.setComplain(orderComplaintStatisticsService.waitComplainNum());
|
||||
//分销员提现审核
|
||||
indexNoticeVO.setDistributionCash(distributionCashService.newDistributionCash());
|
||||
indexNoticeVO.setDistributionCash(distributionCashStatisticsService.newDistributionCash());
|
||||
//待处理商家结算
|
||||
indexNoticeVO.setWaitPayBill(billService.billNum(BillStatusEnum.CHECK));
|
||||
indexNoticeVO.setWaitPayBill(billStatisticsService.billNum(BillStatusEnum.CHECK));
|
||||
return indexNoticeVO;
|
||||
}
|
||||
|
||||
@ -138,31 +124,31 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService {
|
||||
IndexStatisticsVO indexStatisticsVO = new IndexStatisticsVO();
|
||||
|
||||
//获取总订单数量
|
||||
indexStatisticsVO.setOrderNum(orderStatisticsDataService.orderNum(null));
|
||||
indexStatisticsVO.setOrderNum(orderStatisticsService.orderNum(null));
|
||||
//获取总会员数量
|
||||
indexStatisticsVO.setMemberNum(memberStatisticsDataService.getMemberCount());
|
||||
indexStatisticsVO.setMemberNum(memberStatisticsService.getMemberCount());
|
||||
//获取总上架商品数量
|
||||
indexStatisticsVO.setGoodsNum(goodsService.goodsNum(GoodsStatusEnum.UPPER, GoodsAuthEnum.PASS));
|
||||
indexStatisticsVO.setGoodsNum(goodsStatisticsService.goodsNum(GoodsStatusEnum.UPPER, GoodsAuthEnum.PASS));
|
||||
//获取总店铺数量
|
||||
indexStatisticsVO.setStoreNum(storeService.storeNum());
|
||||
indexStatisticsVO.setStoreNum(storeStatisticsService.storeNum());
|
||||
|
||||
//下单统计
|
||||
Map<String, Object> map = orderStatisticsDataService.getOrderStatisticsPrice();
|
||||
Map<String, Object> map = storeFlowStatisticsService.getOrderStatisticsPrice();
|
||||
//今日下单数
|
||||
indexStatisticsVO.setTodayOrderNum(map.get("num") == null ? 0L : (Long) map.get("num"));
|
||||
//今日下单金额
|
||||
indexStatisticsVO.setTodayOrderPrice(map.get("price") == null ? 0D : (Double) map.get("price"));
|
||||
|
||||
//今日新增会员数量
|
||||
indexStatisticsVO.setTodayMemberNum(memberStatisticsDataService.todayMemberNum());
|
||||
indexStatisticsVO.setTodayMemberNum(memberStatisticsService.todayMemberNum());
|
||||
//今日新增商品数量
|
||||
indexStatisticsVO.setTodayGoodsNum(goodsService.todayUpperNum());
|
||||
indexStatisticsVO.setTodayGoodsNum(goodsStatisticsService.todayUpperNum());
|
||||
//今日新增店铺数量
|
||||
indexStatisticsVO.setTodayStoreNum(storeService.todayStoreNum());
|
||||
indexStatisticsVO.setTodayStoreNum(storeStatisticsService.todayStoreNum());
|
||||
//今日新增评论数量
|
||||
indexStatisticsVO.setTodayMemberEvaluation(memberEvaluationService.todayMemberEvaluation());
|
||||
indexStatisticsVO.setTodayMemberEvaluation(memberEvaluationStatisticsService.todayMemberEvaluation());
|
||||
//当前在线人数
|
||||
indexStatisticsVO.setCurrentNumberPeopleOnline(platformViewDataService.online());
|
||||
indexStatisticsVO.setCurrentNumberPeopleOnline(platformViewService.online());
|
||||
|
||||
|
||||
//流量统计
|
||||
@ -170,19 +156,19 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService {
|
||||
|
||||
//今日uv
|
||||
queryParam.setSearchType(SearchTypeEnum.TODAY.name());
|
||||
indexStatisticsVO.setTodayUV(platformViewDataService.countUv(queryParam));
|
||||
indexStatisticsVO.setTodayUV(platformViewService.countUv(queryParam));
|
||||
|
||||
// 昨日访问数UV
|
||||
queryParam.setSearchType(SearchTypeEnum.YESTERDAY.name());
|
||||
indexStatisticsVO.setYesterdayUV(platformViewDataService.countUv(queryParam));
|
||||
indexStatisticsVO.setYesterdayUV(platformViewService.countUv(queryParam));
|
||||
|
||||
// 前七日访问数UV
|
||||
queryParam.setSearchType(SearchTypeEnum.LAST_SEVEN.name());
|
||||
indexStatisticsVO.setLastSevenUV(platformViewDataService.countUv(queryParam));
|
||||
indexStatisticsVO.setLastSevenUV(platformViewService.countUv(queryParam));
|
||||
|
||||
// 三十日访问数UV
|
||||
queryParam.setSearchType(SearchTypeEnum.LAST_THIRTY.name());
|
||||
indexStatisticsVO.setLastThirtyUV(platformViewDataService.countUv(queryParam));
|
||||
indexStatisticsVO.setLastThirtyUV(platformViewService.countUv(queryParam));
|
||||
|
||||
|
||||
return indexStatisticsVO;
|
||||
@ -195,9 +181,9 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService {
|
||||
StoreIndexStatisticsVO storeIndexStatisticsVO = new StoreIndexStatisticsVO();
|
||||
|
||||
//商品总数量
|
||||
storeIndexStatisticsVO.setGoodsNum(goodsService.goodsNum(GoodsStatusEnum.UPPER, null));
|
||||
storeIndexStatisticsVO.setGoodsNum(goodsStatisticsService.goodsNum(GoodsStatusEnum.UPPER, null));
|
||||
//订单总数量、订单总金额
|
||||
Map<String, Object> map = orderStatisticsDataService.getStoreOrderStatisticsPrice();
|
||||
Map<String, Object> map = orderStatisticsService.getStoreOrderStatisticsPrice();
|
||||
storeIndexStatisticsVO.setOrderNum(Convert.toInt(map.get("num").toString()));
|
||||
storeIndexStatisticsVO.setOrderPrice(map.get("price") != null ? Double.parseDouble(map.get("price").toString()) : 0.0);
|
||||
|
||||
@ -205,34 +191,34 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService {
|
||||
StatisticsQueryParam queryParam = new StatisticsQueryParam();
|
||||
queryParam.setSearchType(SearchTypeEnum.TODAY.name());
|
||||
queryParam.setStoreId(storeId);
|
||||
PlatformViewVO platformViewVO = platformViewDataService.list(queryParam).get(0);
|
||||
PlatformViewVO platformViewVO = platformViewService.list(queryParam).get(0);
|
||||
storeIndexStatisticsVO.setStoreUV(platformViewVO.getUvNum().intValue());
|
||||
|
||||
//待付款订单数量
|
||||
storeIndexStatisticsVO.setUnPaidOrder(orderStatisticsDataService.orderNum(OrderStatusEnum.UNPAID.name()));
|
||||
storeIndexStatisticsVO.setUnPaidOrder(orderStatisticsService.orderNum(OrderStatusEnum.UNPAID.name()));
|
||||
//待发货订单数量
|
||||
storeIndexStatisticsVO.setUnDeliveredOrder(orderStatisticsDataService.orderNum(OrderStatusEnum.UNDELIVERED.name()));
|
||||
storeIndexStatisticsVO.setUnDeliveredOrder(orderStatisticsService.orderNum(OrderStatusEnum.UNDELIVERED.name()));
|
||||
//待收货订单数量
|
||||
storeIndexStatisticsVO.setDeliveredOrder(orderStatisticsDataService.orderNum(OrderStatusEnum.DELIVERED.name()));
|
||||
storeIndexStatisticsVO.setDeliveredOrder(orderStatisticsService.orderNum(OrderStatusEnum.DELIVERED.name()));
|
||||
|
||||
//待处理退货数量
|
||||
storeIndexStatisticsVO.setReturnGoods(afterSaleService.applyNum(AfterSaleTypeEnum.RETURN_GOODS.name()));
|
||||
storeIndexStatisticsVO.setReturnGoods(afterSaleStatisticsService.applyNum(AfterSaleTypeEnum.RETURN_GOODS.name()));
|
||||
//待处理退款数量
|
||||
storeIndexStatisticsVO.setReturnMoney(afterSaleService.applyNum(AfterSaleTypeEnum.RETURN_MONEY.name()));
|
||||
storeIndexStatisticsVO.setReturnMoney(afterSaleStatisticsService.applyNum(AfterSaleTypeEnum.RETURN_MONEY.name()));
|
||||
//待回复评价数量
|
||||
storeIndexStatisticsVO.setMemberEvaluation(memberEvaluationService.getWaitReplyNum());
|
||||
storeIndexStatisticsVO.setMemberEvaluation(memberEvaluationStatisticsService.getWaitReplyNum());
|
||||
//待处理投诉数量
|
||||
storeIndexStatisticsVO.setComplaint(orderComplaintService.waitComplainNum());
|
||||
storeIndexStatisticsVO.setComplaint(orderComplaintStatisticsService.waitComplainNum());
|
||||
|
||||
//待上架商品数量
|
||||
storeIndexStatisticsVO.setWaitUpper(goodsService.goodsNum(GoodsStatusEnum.DOWN, null));
|
||||
storeIndexStatisticsVO.setWaitUpper(goodsStatisticsService.goodsNum(GoodsStatusEnum.DOWN, null));
|
||||
//待审核商品数量
|
||||
storeIndexStatisticsVO.setWaitAuth(goodsService.goodsNum(null, GoodsAuthEnum.TOBEAUDITED));
|
||||
storeIndexStatisticsVO.setWaitAuth(goodsStatisticsService.goodsNum(null, GoodsAuthEnum.TOBEAUDITED));
|
||||
|
||||
//可参与秒杀活动数量
|
||||
storeIndexStatisticsVO.setSeckillNum(seckillService.getApplyNum());
|
||||
storeIndexStatisticsVO.setSeckillNum(seckillStatisticsService.getApplyNum());
|
||||
//待处理商家结算
|
||||
storeIndexStatisticsVO.setWaitPayBill(billService.billNum(BillStatusEnum.OUT));
|
||||
storeIndexStatisticsVO.setWaitPayBill(billStatisticsService.billNum(BillStatusEnum.OUT));
|
||||
|
||||
return storeIndexStatisticsVO;
|
||||
}
|
||||
@ -240,7 +226,7 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService {
|
||||
@Override
|
||||
public List<GoodsStatisticsDataVO> goodsStatistics(GoodsStatisticsQueryParam statisticsQueryParam) {
|
||||
//查询商品
|
||||
return goodsStatisticsDataService.getGoodsStatisticsData(statisticsQueryParam, 10);
|
||||
return storeFlowStatisticsService.getGoodsStatisticsData(statisticsQueryParam, 10);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -261,7 +247,7 @@ public class IndexStatisticsServiceImpl implements IndexStatisticsService {
|
||||
//查询前十条记录
|
||||
Page page = new Page<StoreStatisticsDataVO>(1, 10);
|
||||
|
||||
return storeStatisticsDataMapper.getStoreStatisticsData(page, queryWrapper);
|
||||
return storeFlowStatisticsService.getStoreStatisticsData(page, queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
|
@ -0,0 +1,43 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.lili.common.security.context.UserContext;
|
||||
import cn.lili.common.security.enums.UserEnums;
|
||||
import cn.lili.common.utils.StringUtils;
|
||||
import cn.lili.modules.member.entity.dos.MemberEvaluation;
|
||||
import cn.lili.modules.statistics.mapper.MemberEvaluationStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.MemberEvaluationStatisticsService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 会员商品评价业务层实现
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020-02-25 14:10:16
|
||||
*/
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class MemberEvaluationStatisticsServiceImpl extends ServiceImpl<MemberEvaluationStatisticsMapper, MemberEvaluation> implements MemberEvaluationStatisticsService {
|
||||
|
||||
|
||||
@Override
|
||||
public Integer todayMemberEvaluation() {
|
||||
return this.count(new LambdaQueryWrapper<MemberEvaluation>().ge(MemberEvaluation::getCreateTime, DateUtil.beginOfDay(new DateTime())));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer getWaitReplyNum() {
|
||||
QueryWrapper<MemberEvaluation> queryWrapper = Wrappers.query();
|
||||
queryWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),
|
||||
"store_id", UserContext.getCurrentUser().getStoreId());
|
||||
queryWrapper.eq("reply_status", false);
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
}
|
@ -1,11 +1,12 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.lili.modules.statistics.mapper.MemberStatisticsDataMapper;
|
||||
import cn.lili.modules.member.entity.vo.MemberDistributionVO;
|
||||
import cn.lili.modules.statistics.entity.dos.MemberStatisticsData;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.enums.SearchTypeEnum;
|
||||
import cn.lili.modules.statistics.service.MemberStatisticsDataService;
|
||||
import cn.lili.modules.statistics.mapper.MemberStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.MemberStatisticsService;
|
||||
import cn.lili.modules.statistics.util.StatisticsDateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
@ -23,7 +24,7 @@ import java.util.List;
|
||||
* @since 2020/12/9 18:33
|
||||
*/
|
||||
@Service
|
||||
public class MemberStatisticsDataServiceImpl extends ServiceImpl<MemberStatisticsDataMapper, MemberStatisticsData> implements MemberStatisticsDataService {
|
||||
public class MemberStatisticsServiceImpl extends ServiceImpl<MemberStatisticsMapper, MemberStatisticsData> implements MemberStatisticsService {
|
||||
|
||||
@Override
|
||||
public Integer getMemberCount() {
|
||||
@ -85,4 +86,13 @@ public class MemberStatisticsDataServiceImpl extends ServiceImpl<MemberStatistic
|
||||
|
||||
return list(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<MemberDistributionVO> distribution() {
|
||||
List<MemberDistributionVO> memberDistributionVOS = this.baseMapper.distribution();
|
||||
return memberDistributionVOS;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.lili.common.security.context.UserContext;
|
||||
import cn.lili.common.security.enums.UserEnums;
|
||||
import cn.lili.common.utils.StringUtils;
|
||||
import cn.lili.modules.order.aftersale.entity.enums.ComplaintStatusEnum;
|
||||
import cn.lili.modules.order.order.entity.dos.OrderComplaint;
|
||||
import cn.lili.modules.statistics.mapper.OrderComplaintStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.OrderComplaintStatisticsService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 交易投诉业务层实现
|
||||
*
|
||||
* @author paulG
|
||||
* @since 2020/12/5
|
||||
**/
|
||||
@Service
|
||||
public class OrderComplaintStatisticsServiceImpl extends ServiceImpl<OrderComplaintStatisticsMapper, OrderComplaint> implements OrderComplaintStatisticsService {
|
||||
|
||||
@Override
|
||||
public Integer waitComplainNum() {
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
queryWrapper.ne("complain_status", ComplaintStatusEnum.COMPLETE.name());
|
||||
queryWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),
|
||||
"store_id", UserContext.getCurrentUser().getStoreId());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,188 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.lili.common.security.context.UserContext;
|
||||
import cn.lili.common.security.enums.UserEnums;
|
||||
import cn.lili.common.utils.CurrencyUtil;
|
||||
import cn.lili.common.utils.StringUtils;
|
||||
import cn.lili.common.vo.PageVO;
|
||||
import cn.lili.modules.order.order.entity.dos.Order;
|
||||
import cn.lili.modules.order.order.entity.enums.FlowTypeEnum;
|
||||
import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
|
||||
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderOverviewVO;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.mapper.OrderStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.OrderStatisticsService;
|
||||
import cn.lili.modules.statistics.service.PlatformViewService;
|
||||
import cn.lili.modules.statistics.service.StoreFlowStatisticsService;
|
||||
import cn.lili.modules.statistics.util.StatisticsDateUtil;
|
||||
import cn.lili.mybatis.util.PageUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 订单统计业务层实现
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 17:16
|
||||
*/
|
||||
@Service
|
||||
public class OrderStatisticsServiceImpl extends ServiceImpl<OrderStatisticsMapper, Order> implements OrderStatisticsService {
|
||||
|
||||
/**
|
||||
* 平台PV统计
|
||||
*/
|
||||
@Autowired
|
||||
private PlatformViewService platformViewService;
|
||||
|
||||
@Autowired
|
||||
private StoreFlowStatisticsService storeFlowStatisticsService;
|
||||
|
||||
@Override
|
||||
public OrderOverviewVO overview(StatisticsQueryParam statisticsQueryParam) {
|
||||
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
|
||||
|
||||
OrderOverviewVO orderOverviewVO = new OrderOverviewVO();
|
||||
|
||||
/**
|
||||
* 组织统计初始化
|
||||
*/
|
||||
storeFlowStatisticsService.overview(dates, orderOverviewVO, statisticsQueryParam);
|
||||
//访客数
|
||||
Integer uv = platformViewService.countUv(statisticsQueryParam);
|
||||
if (uv != null) {
|
||||
orderOverviewVO.setUvNum(uv.longValue());
|
||||
}
|
||||
|
||||
//数据运算(转换率,比例相关)
|
||||
conversionRateOperation(orderOverviewVO);
|
||||
return orderOverviewVO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 运算转换率
|
||||
*
|
||||
* @param orderOverviewVO 订单统计视图
|
||||
*/
|
||||
private void conversionRateOperation(OrderOverviewVO orderOverviewVO) {
|
||||
|
||||
//下单转换率 订单数/UV
|
||||
Double orderConversionRate = CurrencyUtil.div(orderOverviewVO.getOrderNum(), orderOverviewVO.getUvNum(), 4);
|
||||
if (orderConversionRate > 1) {
|
||||
orderConversionRate = 1d;
|
||||
}
|
||||
orderOverviewVO.setOrderConversionRate(CurrencyUtil.mul(orderConversionRate, 100) + "%");
|
||||
//付款转换率 付款订单数/订单数
|
||||
Double paymentsConversionRate = CurrencyUtil.div(orderOverviewVO.getPaymentOrderNum(), orderOverviewVO.getOrderNum(), 4);
|
||||
if (paymentsConversionRate > 1) {
|
||||
paymentsConversionRate = 1d;
|
||||
}
|
||||
orderOverviewVO.setPaymentsConversionRate(CurrencyUtil.mul(paymentsConversionRate, 100) + "%");
|
||||
//整体转换率 付款数/UV
|
||||
Double overallConversionRate = CurrencyUtil.div(orderOverviewVO.getPaymentOrderNum(), orderOverviewVO.getUvNum(), 4);
|
||||
if (overallConversionRate > 1) {
|
||||
overallConversionRate = 1d;
|
||||
}
|
||||
orderOverviewVO.setOverallConversionRate(CurrencyUtil.mul(overallConversionRate, 100) + "%");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getStoreOrderStatisticsPrice() {
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),
|
||||
"store_id", UserContext.getCurrentUser().getStoreId());
|
||||
queryWrapper.select("SUM(final_price) AS price , COUNT(0) AS num");
|
||||
return this.getMap(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Integer orderNum(String orderStatus) {
|
||||
LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper();
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(orderStatus), Order::getOrderStatus, orderStatus);
|
||||
queryWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),
|
||||
Order::getStoreId, UserContext.getCurrentUser().getStoreId());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderStatisticsDataVO> statisticsChart(StatisticsQueryParam statisticsQueryParam) {
|
||||
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
//已支付
|
||||
queryWrapper.eq("pay_status", PayStatusEnum.PAID.name());
|
||||
//选择商家判定
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(statisticsQueryParam.getStoreId()), "store_id", statisticsQueryParam.getStoreId());
|
||||
// 查询时间区间
|
||||
queryWrapper.between("create_time", dates[0], dates[1]);
|
||||
// 格式化时间
|
||||
queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m-%d')");
|
||||
List<OrderStatisticsDataVO> orderStatisticsDataVOS = this.baseMapper.getOrderStatisticsData(queryWrapper);
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(dates[0]);
|
||||
|
||||
List<OrderStatisticsDataVO> result = new ArrayList<>();
|
||||
//时间判定,将数据填充好
|
||||
//如果当前的时间,在结束时间之前
|
||||
while (calendar.getTime().before(dates[1])) {
|
||||
OrderStatisticsDataVO item = null;
|
||||
//判定是否已经有这一天的数据
|
||||
for (OrderStatisticsDataVO orderStatisticsDataVO : orderStatisticsDataVOS) {
|
||||
if (orderStatisticsDataVO.getCreateTime().equals(calendar.getTime())) {
|
||||
item = orderStatisticsDataVO;
|
||||
}
|
||||
}
|
||||
//如果数据不存在,则进行数据填充
|
||||
if (item == null) {
|
||||
item = new OrderStatisticsDataVO();
|
||||
item.setPrice(0d);
|
||||
item.setCreateTime(calendar.getTime());
|
||||
}
|
||||
result.add(item);
|
||||
//增加时间
|
||||
calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<OrderSimpleVO> getStatistics(StatisticsQueryParam statisticsQueryParam, PageVO pageVO) {
|
||||
|
||||
QueryWrapper<OrderSimpleVO> queryWrapper = new QueryWrapper<>();
|
||||
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
|
||||
queryWrapper.between("o.create_time", dates[0], dates[1]);
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(statisticsQueryParam.getStoreId()),
|
||||
"o.store_id", statisticsQueryParam.getStoreId());
|
||||
|
||||
queryWrapper.eq("o.delete_flag", false);
|
||||
queryWrapper.groupBy("o.id");
|
||||
queryWrapper.orderByDesc("o.id");
|
||||
return this.baseMapper.queryByParams(PageUtil.initPage(pageVO), queryWrapper);
|
||||
}
|
||||
|
||||
private QueryWrapper getQueryWrapper(StatisticsQueryParam statisticsQueryParam) {
|
||||
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
|
||||
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
|
||||
queryWrapper.between("create_time", dates[0], dates[1]);
|
||||
|
||||
//设置店铺ID
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(statisticsQueryParam.getStoreId()), "store_id", statisticsQueryParam.getStoreId());
|
||||
|
||||
|
||||
//设置为付款查询
|
||||
queryWrapper.eq("flow_type", FlowTypeEnum.PAY.name());
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
||||
}
|
@ -2,21 +2,21 @@ package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.lili.cache.Cache;
|
||||
import cn.lili.cache.CachePrefix;
|
||||
import cn.lili.common.enums.ClientTypeEnum;
|
||||
import cn.lili.common.enums.ResultCode;
|
||||
import cn.lili.common.exception.ServiceException;
|
||||
import cn.lili.common.properties.StatisticsProperties;
|
||||
import cn.lili.common.security.enums.UserEnums;
|
||||
import cn.lili.common.utils.CurrencyUtil;
|
||||
import cn.lili.common.properties.StatisticsProperties;
|
||||
import cn.lili.common.enums.ClientTypeEnum;
|
||||
import cn.lili.modules.member.entity.vo.MemberDistributionVO;
|
||||
import cn.lili.modules.member.service.MemberService;
|
||||
import cn.lili.modules.statistics.mapper.PlatformViewDataMapper;
|
||||
import cn.lili.modules.statistics.entity.dos.PlatformViewData;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.enums.SearchTypeEnum;
|
||||
import cn.lili.modules.statistics.entity.vo.OnlineMemberVO;
|
||||
import cn.lili.modules.statistics.entity.vo.PlatformViewVO;
|
||||
import cn.lili.modules.statistics.service.PlatformViewDataService;
|
||||
import cn.lili.modules.statistics.mapper.PlatformViewMapper;
|
||||
import cn.lili.modules.statistics.service.MemberStatisticsService;
|
||||
import cn.lili.modules.statistics.service.PlatformViewService;
|
||||
import cn.lili.modules.statistics.util.StatisticsDateUtil;
|
||||
import cn.lili.modules.statistics.util.StatisticsSuffix;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@ -42,7 +42,8 @@ import java.util.List;
|
||||
* 2021/1/18 12:07
|
||||
*/
|
||||
@Service
|
||||
public class PlatformViewDataServiceImpl extends ServiceImpl<PlatformViewDataMapper, PlatformViewData> implements PlatformViewDataService {
|
||||
public class PlatformViewServiceImpl extends ServiceImpl<PlatformViewMapper, PlatformViewData> implements PlatformViewService {
|
||||
|
||||
/**
|
||||
* 在线人数统计
|
||||
*/
|
||||
@ -52,7 +53,7 @@ public class PlatformViewDataServiceImpl extends ServiceImpl<PlatformViewDataMap
|
||||
* 会员
|
||||
*/
|
||||
@Autowired
|
||||
private MemberService memberService;
|
||||
private MemberStatisticsService memberStatisticsService;
|
||||
/**
|
||||
* 缓存
|
||||
*/
|
||||
@ -62,7 +63,7 @@ public class PlatformViewDataServiceImpl extends ServiceImpl<PlatformViewDataMap
|
||||
* 平台流量统计
|
||||
*/
|
||||
@Resource
|
||||
private PlatformViewDataMapper platformViewDataMapper;
|
||||
private PlatformViewMapper platformViewMapper;
|
||||
|
||||
@Override
|
||||
public Long online() {
|
||||
@ -84,7 +85,7 @@ public class PlatformViewDataServiceImpl extends ServiceImpl<PlatformViewDataMap
|
||||
if (null != object) {
|
||||
return (List<MemberDistributionVO>) cache.get(CachePrefix.MEMBER_DISTRIBUTION.getPrefix());
|
||||
}
|
||||
List<MemberDistributionVO> memberDistributionVOS = memberService.distribution();
|
||||
List<MemberDistributionVO> memberDistributionVOS = memberStatisticsService.distribution();
|
||||
|
||||
//统计总数
|
||||
int count = 0;
|
||||
@ -249,7 +250,7 @@ public class PlatformViewDataServiceImpl extends ServiceImpl<PlatformViewDataMap
|
||||
} else {
|
||||
queryWrapper.eq("store_id", -1);
|
||||
}
|
||||
return platformViewDataMapper.count(queryWrapper);
|
||||
return platformViewMapper.count(queryWrapper);
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ import cn.lili.common.utils.StringUtils;
|
||||
import cn.lili.common.vo.PageVO;
|
||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||
import cn.lili.modules.order.order.entity.enums.FlowTypeEnum;
|
||||
import cn.lili.modules.statistics.mapper.RefundOrderStatisticsDataMapper;
|
||||
import cn.lili.modules.statistics.mapper.RefundOrderStatisticsMapper;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.enums.TimeTypeEnum;
|
||||
import cn.lili.modules.statistics.entity.vo.RefundOrderStatisticsDataVO;
|
||||
@ -24,7 +24,7 @@ import org.springframework.stereotype.Service;
|
||||
* @since 2020/12/10 11:30
|
||||
*/
|
||||
@Service
|
||||
public class RefundOrderStatisticsServiceImpl extends ServiceImpl<RefundOrderStatisticsDataMapper, StoreFlow> implements RefundOrderStatisticsService {
|
||||
public class RefundOrderStatisticsServiceImpl extends ServiceImpl<RefundOrderStatisticsMapper, StoreFlow> implements RefundOrderStatisticsService {
|
||||
|
||||
@Override
|
||||
public IPage<RefundOrderStatisticsDataVO> getRefundOrderStatisticsData(PageVO pageVO, StatisticsQueryParam statisticsQueryParam) {
|
||||
|
@ -0,0 +1,33 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.lili.modules.promotion.entity.dos.Seckill;
|
||||
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
|
||||
import cn.lili.modules.statistics.mapper.SeckillStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.SeckillStatisticsService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
* 秒杀活动统计
|
||||
*
|
||||
* @author Chopper
|
||||
* @since 2020/8/21
|
||||
*/
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class SeckillStatisticsServiceImpl extends ServiceImpl<SeckillStatisticsMapper, Seckill> implements SeckillStatisticsService {
|
||||
|
||||
|
||||
@Override
|
||||
public Integer getApplyNum() {
|
||||
LambdaQueryWrapper<Seckill> queryWrapper = Wrappers.lambdaQuery();
|
||||
//秒杀申请时间未超过当前时间
|
||||
queryWrapper.ge(Seckill::getApplyEndTime, cn.hutool.core.date.DateUtil.date());
|
||||
queryWrapper.eq(Seckill::getPromotionStatus, PromotionStatusEnum.NEW.name());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
}
|
@ -3,57 +3,92 @@ package cn.lili.modules.statistics.serviceimpl;
|
||||
import cn.lili.common.security.AuthUser;
|
||||
import cn.lili.common.security.context.UserContext;
|
||||
import cn.lili.common.security.enums.UserEnums;
|
||||
import cn.lili.common.utils.CurrencyUtil;
|
||||
import cn.lili.common.utils.DateUtil;
|
||||
import cn.lili.common.utils.StringUtils;
|
||||
import cn.lili.modules.order.order.entity.dos.Order;
|
||||
import cn.lili.modules.order.order.entity.dos.StoreFlow;
|
||||
import cn.lili.modules.order.order.entity.enums.FlowTypeEnum;
|
||||
import cn.lili.modules.order.order.entity.enums.PayStatusEnum;
|
||||
import cn.lili.modules.order.order.service.OrderService;
|
||||
import cn.lili.modules.statistics.mapper.OrderStatisticsDataMapper;
|
||||
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.enums.StatisticsQuery;
|
||||
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderOverviewVO;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.service.OrderStatisticsDataService;
|
||||
import cn.lili.modules.statistics.service.PlatformViewDataService;
|
||||
import cn.lili.modules.statistics.entity.vo.StoreStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.mapper.StoreFlowStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.OrderStatisticsService;
|
||||
import cn.lili.modules.statistics.service.StoreFlowStatisticsService;
|
||||
import cn.lili.modules.statistics.util.StatisticsDateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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 org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 订单统计业务层实现
|
||||
* 商品统计业务层实现
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 17:16
|
||||
* @since 2020/12/9 11:30
|
||||
*/
|
||||
@Service
|
||||
public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsDataMapper, StoreFlow> implements OrderStatisticsDataService {
|
||||
/**
|
||||
* 平台PV统计
|
||||
*/
|
||||
public class StoreFlowStatisticsServiceImpl extends ServiceImpl<StoreFlowStatisticsMapper, StoreFlow> implements StoreFlowStatisticsService {
|
||||
|
||||
|
||||
@Autowired
|
||||
private PlatformViewDataService platformViewDataService;
|
||||
/**
|
||||
* 订单
|
||||
*/
|
||||
@Autowired
|
||||
private OrderService orderService;
|
||||
private OrderStatisticsService orderStatisticsService;
|
||||
@Override
|
||||
public List<GoodsStatisticsDataVO> getGoodsStatisticsData(GoodsStatisticsQueryParam goodsStatisticsQueryParam, Integer num) {
|
||||
//获取查询条件
|
||||
QueryWrapper queryWrapper = getQueryWrapper(goodsStatisticsQueryParam);
|
||||
//根据商品分组
|
||||
queryWrapper.groupBy("goods_id");
|
||||
queryWrapper.groupBy("goods_name");
|
||||
|
||||
queryWrapper.eq(!StringUtils.isEmpty(goodsStatisticsQueryParam.getStoreId()), "store_id", goodsStatisticsQueryParam.getStoreId());
|
||||
//查询前X记录
|
||||
Page page = new Page<GoodsStatisticsDataVO>(1, num);
|
||||
return this.baseMapper.getGoodsStatisticsData(page, queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OrderOverviewVO overview(StatisticsQueryParam statisticsQueryParam) {
|
||||
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
|
||||
public List<CategoryStatisticsDataVO> getCategoryStatisticsData(GoodsStatisticsQueryParam goodsStatisticsQueryParam) {
|
||||
//获取查询条件
|
||||
QueryWrapper queryWrapper = getQueryWrapper(goodsStatisticsQueryParam);
|
||||
//根据分类分组
|
||||
queryWrapper.groupBy("category_id");
|
||||
return this.baseMapper.getCateGoryStatisticsData(queryWrapper);
|
||||
}
|
||||
|
||||
OrderOverviewVO orderOverviewVO = new OrderOverviewVO();
|
||||
//访客数
|
||||
orderOverviewVO.setUvNum(platformViewDataService.countUv(statisticsQueryParam));
|
||||
@Override
|
||||
public List<StoreStatisticsDataVO> getStoreStatisticsData(Page page, QueryWrapper queryWrapper) {
|
||||
return this.baseMapper.getStoreStatisticsData(page, queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getOrderStatisticsPrice() {
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
//支付订单
|
||||
queryWrapper.eq("flow_type", FlowTypeEnum.PAY.name());
|
||||
|
||||
//商家查询,则增加商家判定
|
||||
AuthUser authUser = UserContext.getCurrentUser();
|
||||
if (authUser.getRole().equals(UserEnums.STORE)) {
|
||||
queryWrapper.eq("store_id", authUser.getStoreId());
|
||||
}
|
||||
//大于今天凌晨
|
||||
queryWrapper.ge("create_time", cn.lili.common.utils.DateUtil.startOfTodDayTime());
|
||||
|
||||
queryWrapper.select("SUM(final_price) AS price , COUNT(0) AS num");
|
||||
return this.getMap(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void overview(Date[] dates, OrderOverviewVO orderOverviewVO, StatisticsQueryParam statisticsQueryParam) {
|
||||
//下单统计
|
||||
initOrder(dates, orderOverviewVO, statisticsQueryParam);
|
||||
|
||||
@ -62,37 +97,6 @@ public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsD
|
||||
|
||||
//退单统计
|
||||
initAfterSale(dates, orderOverviewVO, statisticsQueryParam);
|
||||
|
||||
//数据运算(转换率,比例相关)
|
||||
conversionRateOperation(orderOverviewVO);
|
||||
return orderOverviewVO;
|
||||
}
|
||||
|
||||
/**
|
||||
* 运算转换率
|
||||
*
|
||||
* @param orderOverviewVO 订单统计视图
|
||||
*/
|
||||
private void conversionRateOperation(OrderOverviewVO orderOverviewVO) {
|
||||
|
||||
//下单转换率 订单数/UV
|
||||
Double orderConversionRate = CurrencyUtil.div(orderOverviewVO.getOrderNum(), orderOverviewVO.getUvNum(), 4);
|
||||
if (orderConversionRate > 1) {
|
||||
orderConversionRate = 1d;
|
||||
}
|
||||
orderOverviewVO.setOrderConversionRate(CurrencyUtil.mul(orderConversionRate, 100) + "%");
|
||||
//付款转换率 付款订单数/订单数
|
||||
Double paymentsConversionRate = CurrencyUtil.div(orderOverviewVO.getPaymentOrderNum(), orderOverviewVO.getOrderNum(), 4);
|
||||
if (paymentsConversionRate > 1) {
|
||||
paymentsConversionRate = 1d;
|
||||
}
|
||||
orderOverviewVO.setPaymentsConversionRate(CurrencyUtil.mul(paymentsConversionRate, 100) + "%");
|
||||
//整体转换率 付款数/UV
|
||||
Double overallConversionRate = CurrencyUtil.div(orderOverviewVO.getPaymentOrderNum(), orderOverviewVO.getUvNum(), 4);
|
||||
if (overallConversionRate > 1) {
|
||||
overallConversionRate = 1d;
|
||||
}
|
||||
orderOverviewVO.setOverallConversionRate(CurrencyUtil.mul(overallConversionRate, 100) + "%");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -113,7 +117,7 @@ public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsD
|
||||
//查询流水金额和订单数量
|
||||
queryWrapper.select("SUM(flow_price) AS price , COUNT(0) AS num");
|
||||
//获取查询结果
|
||||
Map order = orderService.getMap(queryWrapper);
|
||||
Map order = orderStatisticsService.getMap(queryWrapper);
|
||||
//赋予订单数和流水金额
|
||||
orderOverviewVO.setOrderNum(order != null && order.containsKey("num") ? (Long) order.get("num") : 0L);
|
||||
orderOverviewVO.setOrderAmount(order != null && order.containsKey("price") ? (double) order.get("price") : 0L);
|
||||
@ -129,7 +133,7 @@ public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsD
|
||||
//查询下单人数的sql
|
||||
queryWrapper.select("count(DISTINCT member_id) AS num");
|
||||
//获取查询结果
|
||||
Map memberNum = orderService.getMap(queryWrapper);
|
||||
Map memberNum = this.getMap(queryWrapper);
|
||||
//写入下单人数
|
||||
orderOverviewVO.setOrderMemberNum(memberNum != null && memberNum.containsKey("num") ? (Long) memberNum.get("num") : 0L);
|
||||
}
|
||||
@ -191,96 +195,27 @@ public class OrderStatisticsDataServiceImpl extends ServiceImpl<OrderStatisticsD
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getStoreOrderStatisticsPrice() {
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
queryWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),
|
||||
"store_id", UserContext.getCurrentUser().getStoreId());
|
||||
queryWrapper.select("SUM(final_price) AS price , COUNT(0) AS num");
|
||||
return this.getMap(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getOrderStatisticsPrice() {
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
//支付订单
|
||||
queryWrapper.eq("flow_type", FlowTypeEnum.PAY.name());
|
||||
|
||||
//商家查询,则增加商家判定
|
||||
AuthUser authUser = UserContext.getCurrentUser();
|
||||
if (authUser.getRole().equals(UserEnums.STORE)) {
|
||||
queryWrapper.eq("store_id", authUser.getStoreId());
|
||||
}
|
||||
//大于今天凌晨
|
||||
queryWrapper.ge("create_time", DateUtil.startOfTodDayTime());
|
||||
|
||||
queryWrapper.select("SUM(final_price) AS price , COUNT(0) AS num");
|
||||
return this.getMap(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer orderNum(String orderStatus) {
|
||||
LambdaQueryWrapper<Order> queryWrapper = new LambdaQueryWrapper();
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(orderStatus), Order::getOrderStatus, orderStatus);
|
||||
queryWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),
|
||||
Order::getStoreId, UserContext.getCurrentUser().getStoreId());
|
||||
return orderService.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderStatisticsDataVO> statisticsChart(StatisticsQueryParam statisticsQueryParam) {
|
||||
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
|
||||
QueryWrapper queryWrapper = new QueryWrapper();
|
||||
//已支付
|
||||
queryWrapper.eq("pay_status", PayStatusEnum.PAID.name());
|
||||
//选择商家判定
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(statisticsQueryParam.getStoreId()), "store_id", statisticsQueryParam.getStoreId());
|
||||
// 查询时间区间
|
||||
queryWrapper.between("create_time", dates[0], dates[1]);
|
||||
// 格式化时间
|
||||
queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m-%d')");
|
||||
List<OrderStatisticsDataVO> orderStatisticsDataVOS = this.baseMapper.getOrderStatisticsData(queryWrapper);
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTime(dates[0]);
|
||||
|
||||
List<OrderStatisticsDataVO> result = new ArrayList<>();
|
||||
//时间判定,将数据填充好
|
||||
//如果当前的时间,在结束时间之前
|
||||
while (calendar.getTime().before(dates[1])) {
|
||||
OrderStatisticsDataVO item = null;
|
||||
//判定是否已经有这一天的数据
|
||||
for (OrderStatisticsDataVO orderStatisticsDataVO : orderStatisticsDataVOS) {
|
||||
if (orderStatisticsDataVO.getCreateTime().equals(calendar.getTime())) {
|
||||
item = orderStatisticsDataVO;
|
||||
}
|
||||
}
|
||||
//如果数据不存在,则进行数据填充
|
||||
if (item == null) {
|
||||
item = new OrderStatisticsDataVO();
|
||||
item.setPrice(0d);
|
||||
item.setCreateTime(calendar.getTime());
|
||||
}
|
||||
result.add(item);
|
||||
//增加时间
|
||||
calendar.set(Calendar.DAY_OF_MONTH, calendar.get(Calendar.DAY_OF_MONTH) + 1);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private QueryWrapper getQueryWrapper(StatisticsQueryParam statisticsQueryParam) {
|
||||
/**
|
||||
* 组织查询条件
|
||||
*
|
||||
* @param goodsStatisticsQueryParam
|
||||
* @return
|
||||
*/
|
||||
private QueryWrapper getQueryWrapper(GoodsStatisticsQueryParam goodsStatisticsQueryParam) {
|
||||
|
||||
QueryWrapper queryWrapper = Wrappers.query();
|
||||
//判断搜索类型是:年、月
|
||||
Date[] date = StatisticsDateUtil.getDateArray(goodsStatisticsQueryParam);
|
||||
queryWrapper.between("create_time", date[0], date[1]);
|
||||
|
||||
Date[] dates = StatisticsDateUtil.getDateArray(statisticsQueryParam);
|
||||
queryWrapper.between("create_time", dates[0], dates[1]);
|
||||
|
||||
//设置店铺ID
|
||||
queryWrapper.eq(StringUtils.isNotEmpty(statisticsQueryParam.getStoreId()), "store_id", statisticsQueryParam.getStoreId());
|
||||
|
||||
|
||||
//判断是按照数量统计还是按照金额统计
|
||||
if (goodsStatisticsQueryParam.getType().equals(StatisticsQuery.PRICE.name())) {
|
||||
queryWrapper.orderByDesc("price");
|
||||
} else {
|
||||
queryWrapper.orderByDesc("num");
|
||||
}
|
||||
//设置为付款查询
|
||||
queryWrapper.eq("flow_type", FlowTypeEnum.PAY.name());
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
@ -0,0 +1,46 @@
|
||||
package cn.lili.modules.statistics.serviceimpl;
|
||||
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.lili.modules.statistics.mapper.StoreStatisticsMapper;
|
||||
import cn.lili.modules.statistics.service.StoreStatisticsService;
|
||||
import cn.lili.modules.store.entity.dos.Store;
|
||||
import cn.lili.modules.store.entity.enums.StoreStatusEnum;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 商品统计业务层实现
|
||||
*
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 11:30
|
||||
*/
|
||||
@Service
|
||||
public class StoreStatisticsServiceImpl extends ServiceImpl<StoreStatisticsMapper, Store> implements StoreStatisticsService {
|
||||
|
||||
|
||||
@Override
|
||||
public Integer auditNum() {
|
||||
LambdaQueryWrapper<Store> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(Store::getStoreDisable, StoreStatusEnum.APPLYING.name());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer storeNum() {
|
||||
LambdaQueryWrapper<Store> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(Store::getStoreDisable, StoreStatusEnum.OPEN.name());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer todayStoreNum() {
|
||||
LambdaQueryWrapper<Store> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(Store::getStoreDisable, StoreStatusEnum.OPEN.name());
|
||||
queryWrapper.ge(Store::getCreateTime, DateUtil.beginOfDay(new DateTime()));
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
}
|
@ -66,14 +66,6 @@ public interface BillService extends IService<Bill> {
|
||||
*/
|
||||
boolean complete(String id);
|
||||
|
||||
/**
|
||||
* 商家待结算数量
|
||||
*
|
||||
* @param billStatusEnum 结算单类型
|
||||
* @return 待结算商家数量
|
||||
*/
|
||||
Integer billNum(BillStatusEnum billStatusEnum);
|
||||
|
||||
/**
|
||||
* 下载结算单
|
||||
* @response response
|
||||
|
@ -102,26 +102,6 @@ public interface StoreService extends IService<Store> {
|
||||
*/
|
||||
boolean applyThirdStep(StoreOtherInfoDTO storeOtherInfoDTO);
|
||||
|
||||
/**
|
||||
* 获取待审核店铺数量
|
||||
*
|
||||
* @return 待审核店铺数量
|
||||
*/
|
||||
Integer auditNum();
|
||||
|
||||
/**
|
||||
* 获取所有店铺数量
|
||||
*
|
||||
* @return 店铺总数
|
||||
*/
|
||||
Integer storeNum();
|
||||
|
||||
/**
|
||||
* 获取今天的店铺数量
|
||||
*
|
||||
* @return 今天的店铺数量
|
||||
*/
|
||||
Integer todayStoreNum();
|
||||
|
||||
/**
|
||||
* 更新店铺商品数量
|
||||
|
@ -201,15 +201,6 @@ public class BillServiceImpl extends ServiceImpl<BillMapper, Bill> implements Bi
|
||||
return this.update(lambdaUpdateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer billNum(BillStatusEnum billStatusEnum) {
|
||||
LambdaUpdateWrapper<Bill> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
|
||||
lambdaUpdateWrapper.eq(Bill::getBillStatus, billStatusEnum.name());
|
||||
lambdaUpdateWrapper.eq(StringUtils.equals(UserContext.getCurrentUser().getRole().name(), UserEnums.STORE.name()),
|
||||
Bill::getStoreId, UserContext.getCurrentUser().getStoreId());
|
||||
return this.count(lambdaUpdateWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void download(HttpServletResponse response, String id) {
|
||||
|
||||
|
@ -272,29 +272,6 @@ public class StoreServiceImpl extends ServiceImpl<StoreMapper, Store> implements
|
||||
store.setStoreLogo(storeOtherInfoDTO.getStoreLogo());
|
||||
return this.updateById(store);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer auditNum() {
|
||||
LambdaQueryWrapper<Store> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(Store::getStoreDisable, StoreStatusEnum.APPLYING.name());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer storeNum() {
|
||||
LambdaQueryWrapper<Store> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(Store::getStoreDisable, StoreStatusEnum.OPEN.name());
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer todayStoreNum() {
|
||||
LambdaQueryWrapper<Store> queryWrapper = Wrappers.lambdaQuery();
|
||||
queryWrapper.eq(Store::getStoreDisable, StoreStatusEnum.OPEN.name());
|
||||
queryWrapper.ge(Store::getCreateTime, DateUtil.beginOfDay(new DateTime()));
|
||||
return this.count(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateStoreGoodsNum(String storeId) {
|
||||
//获取店铺已上架已审核通过商品数量
|
||||
|
@ -2,7 +2,7 @@ package cn.lili.test;
|
||||
|
||||
import cn.lili.modules.order.order.entity.dos.OrderItem;
|
||||
import cn.lili.modules.order.order.service.OrderItemService;
|
||||
import cn.lili.modules.statistics.serviceimpl.OrderStatisticsDataServiceImpl;
|
||||
import cn.lili.modules.statistics.serviceimpl.OrderStatisticsServiceImpl;
|
||||
import org.junit.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -28,7 +28,7 @@ public class RedisLimiterHelperTest {
|
||||
private OrderItemService orderItemService;
|
||||
|
||||
@Autowired
|
||||
private OrderStatisticsDataServiceImpl orderStatisticsDataService;
|
||||
private OrderStatisticsServiceImpl orderStatisticsDataService;
|
||||
|
||||
|
||||
@Test
|
||||
|
@ -5,7 +5,7 @@ import cn.lili.common.vo.ResultMessage;
|
||||
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.CategoryStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.service.GoodsStatisticsDataService;
|
||||
import cn.lili.modules.statistics.service.StoreFlowStatisticsService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -21,22 +21,22 @@ import java.util.List;
|
||||
* @author Bulbasaur
|
||||
* @since 2020/12/9 19:04
|
||||
*/
|
||||
@Api(tags = "管理端,商品统计接口")
|
||||
@Api(tags = "管理端,商品流水统计接口")
|
||||
@RestController
|
||||
@RequestMapping("/manager/statistics/goods")
|
||||
public class GoodsStatisticsManagerController {
|
||||
@Autowired
|
||||
private GoodsStatisticsDataService goodsStatisticsDataService;
|
||||
private StoreFlowStatisticsService storeFlowStatisticsService;
|
||||
|
||||
@ApiOperation(value = "获取统计列表,排行前一百的数据")
|
||||
@GetMapping
|
||||
public ResultMessage<List<GoodsStatisticsDataVO>> getByPage(GoodsStatisticsQueryParam goodsStatisticsQueryParam) {
|
||||
return ResultUtil.data(goodsStatisticsDataService.getGoodsStatisticsData(goodsStatisticsQueryParam, 100));
|
||||
return ResultUtil.data(storeFlowStatisticsService.getGoodsStatisticsData(goodsStatisticsQueryParam, 100));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取行业统计列表")
|
||||
@GetMapping("/getCategoryByPage")
|
||||
public ResultMessage<List<CategoryStatisticsDataVO>> getCategoryByPage(GoodsStatisticsQueryParam goodsStatisticsQueryParam) {
|
||||
return ResultUtil.data(goodsStatisticsDataService.getCategoryStatisticsData(goodsStatisticsQueryParam));
|
||||
return ResultUtil.data(storeFlowStatisticsService.getCategoryStatisticsData(goodsStatisticsQueryParam));
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import cn.lili.common.enums.ResultUtil;
|
||||
import cn.lili.common.vo.ResultMessage;
|
||||
import cn.lili.modules.statistics.entity.dos.MemberStatisticsData;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.service.MemberStatisticsDataService;
|
||||
import cn.lili.modules.statistics.service.MemberStatisticsService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -25,11 +25,11 @@ import java.util.List;
|
||||
@RequestMapping("/manager/statistics/member")
|
||||
public class MemberStatisticsManagerController {
|
||||
@Autowired
|
||||
private MemberStatisticsDataService memberStatisticsDataService;
|
||||
private MemberStatisticsService memberStatisticsService;
|
||||
|
||||
@ApiOperation(value = "获取会员统计")
|
||||
@GetMapping
|
||||
public ResultMessage<List<MemberStatisticsData>> getByList(StatisticsQueryParam statisticsQueryParam) {
|
||||
return ResultUtil.data(memberStatisticsDataService.statistics(statisticsQueryParam));
|
||||
return ResultUtil.data(memberStatisticsService.statistics(statisticsQueryParam));
|
||||
}
|
||||
}
|
||||
|
@ -5,12 +5,11 @@ import cn.lili.common.vo.PageVO;
|
||||
import cn.lili.common.vo.ResultMessage;
|
||||
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
|
||||
import cn.lili.modules.order.aftersale.service.AfterSaleService;
|
||||
import cn.lili.modules.order.order.service.OrderService;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderOverviewVO;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.service.OrderStatisticsDataService;
|
||||
import cn.lili.modules.statistics.service.AfterSaleStatisticsService;
|
||||
import cn.lili.modules.statistics.service.OrderStatisticsService;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -34,17 +33,15 @@ import java.util.List;
|
||||
@RequestMapping("/manager/statistics/order")
|
||||
public class OrderStatisticsManagerController {
|
||||
@Autowired
|
||||
private OrderStatisticsDataService orderStatisticsDataService;
|
||||
private OrderStatisticsService orderStatisticsService;
|
||||
@Autowired
|
||||
private OrderService orderService;
|
||||
@Autowired
|
||||
private AfterSaleService afterSaleService;
|
||||
private AfterSaleStatisticsService afterSaleStatisticsService;
|
||||
|
||||
@ApiOperation(value = "订单概览统计")
|
||||
@GetMapping("/overview")
|
||||
public ResultMessage<OrderOverviewVO> overview(StatisticsQueryParam statisticsQueryParam) {
|
||||
try {
|
||||
return ResultUtil.data(orderStatisticsDataService.overview(statisticsQueryParam));
|
||||
return ResultUtil.data(orderStatisticsService.overview(statisticsQueryParam));
|
||||
} catch (Exception e) {
|
||||
log.error("订单概览统计错误",e);
|
||||
}
|
||||
@ -55,7 +52,7 @@ public class OrderStatisticsManagerController {
|
||||
@GetMapping
|
||||
public ResultMessage<List<OrderStatisticsDataVO>> statisticsChart(StatisticsQueryParam statisticsQueryParam) {
|
||||
try {
|
||||
return ResultUtil.data(orderStatisticsDataService.statisticsChart(statisticsQueryParam));
|
||||
return ResultUtil.data(orderStatisticsService.statisticsChart(statisticsQueryParam));
|
||||
} catch (Exception e) {
|
||||
log.error("订单图表统计",e);
|
||||
}
|
||||
@ -67,7 +64,7 @@ public class OrderStatisticsManagerController {
|
||||
@GetMapping("/order")
|
||||
public ResultMessage<IPage<OrderSimpleVO>> order(StatisticsQueryParam statisticsQueryParam, PageVO pageVO) {
|
||||
try {
|
||||
return ResultUtil.data(orderService.getStatistics(statisticsQueryParam, pageVO));
|
||||
return ResultUtil.data(orderStatisticsService.getStatistics(statisticsQueryParam, pageVO));
|
||||
} catch (Exception e) {
|
||||
log.error("订单统计",e);
|
||||
}
|
||||
@ -78,6 +75,6 @@ public class OrderStatisticsManagerController {
|
||||
@ApiOperation(value = "退单统计")
|
||||
@GetMapping("/refund")
|
||||
public ResultMessage<IPage<AfterSale>> refund(StatisticsQueryParam statisticsQueryParam, PageVO pageVO) {
|
||||
return ResultUtil.data(afterSaleService.getStatistics(statisticsQueryParam, pageVO));
|
||||
return ResultUtil.data(afterSaleStatisticsService.getStatistics(statisticsQueryParam, pageVO));
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ import cn.lili.modules.member.entity.vo.MemberDistributionVO;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.OnlineMemberVO;
|
||||
import cn.lili.modules.statistics.entity.vo.PlatformViewVO;
|
||||
import cn.lili.modules.statistics.service.PlatformViewDataService;
|
||||
import cn.lili.modules.statistics.service.PlatformViewService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -27,31 +27,31 @@ import java.util.List;
|
||||
@RequestMapping("/manager/statistics/view")
|
||||
public class ViewStatisticsManagerController {
|
||||
@Autowired
|
||||
private PlatformViewDataService platformViewDataService;
|
||||
private PlatformViewService platformViewService;
|
||||
|
||||
@ApiOperation(value = "流量数据 表单获取")
|
||||
@GetMapping("/list")
|
||||
public ResultMessage<List<PlatformViewVO>> getByPage(StatisticsQueryParam queryParam) {
|
||||
return ResultUtil.data(platformViewDataService.list(queryParam));
|
||||
return ResultUtil.data(platformViewService.list(queryParam));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "当前在线人数")
|
||||
@GetMapping("/online/current")
|
||||
public ResultMessage<Long> currentNumberPeopleOnline() {
|
||||
return ResultUtil.data(platformViewDataService.online());
|
||||
return ResultUtil.data(platformViewService.online());
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation(value = "会员分布")
|
||||
@GetMapping("/online/distribution")
|
||||
public ResultMessage<List<MemberDistributionVO>> memberDistribution() {
|
||||
return ResultUtil.data(platformViewDataService.memberDistribution());
|
||||
return ResultUtil.data(platformViewService.memberDistribution());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "在线人数历史(默认48小时)")
|
||||
@GetMapping("/online/history")
|
||||
public ResultMessage<List<OnlineMemberVO>> history() {
|
||||
return ResultUtil.data(platformViewDataService.statisticsOnline());
|
||||
return ResultUtil.data(platformViewService.statisticsOnline());
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import cn.lili.common.security.context.UserContext;
|
||||
import cn.lili.common.vo.ResultMessage;
|
||||
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.service.GoodsStatisticsDataService;
|
||||
import cn.lili.modules.statistics.service.StoreFlowStatisticsService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -31,13 +31,13 @@ public class GoodsStatisticsStoreController {
|
||||
* 商品统计
|
||||
*/
|
||||
@Autowired
|
||||
private GoodsStatisticsDataService goodsStatisticsDataService;
|
||||
private StoreFlowStatisticsService storeFlowStatisticsService;
|
||||
|
||||
@ApiOperation(value = "获取统计列表,排行前一百的数据")
|
||||
@GetMapping
|
||||
public ResultMessage<List<GoodsStatisticsDataVO>> getByPage(GoodsStatisticsQueryParam statisticsQueryParam) {
|
||||
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
|
||||
statisticsQueryParam.setStoreId(storeId);
|
||||
return ResultUtil.data(goodsStatisticsDataService.getGoodsStatisticsData(statisticsQueryParam, 100));
|
||||
return ResultUtil.data(storeFlowStatisticsService.getGoodsStatisticsData(statisticsQueryParam, 100));
|
||||
}
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ import cn.lili.common.vo.ResultMessage;
|
||||
import cn.lili.modules.statistics.entity.dto.GoodsStatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.GoodsStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.entity.vo.StoreIndexStatisticsVO;
|
||||
import cn.lili.modules.statistics.service.GoodsStatisticsDataService;
|
||||
import cn.lili.modules.statistics.service.IndexStatisticsService;
|
||||
import cn.lili.modules.statistics.service.StoreFlowStatisticsService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -33,7 +33,7 @@ public class IndexStatisticsStoreController {
|
||||
* 热卖商品统计
|
||||
*/
|
||||
@Autowired
|
||||
private GoodsStatisticsDataService goodsStatisticsDataService;
|
||||
private StoreFlowStatisticsService storeFlowStatisticsService;
|
||||
/**
|
||||
* 首页统计
|
||||
*/
|
||||
@ -45,7 +45,7 @@ public class IndexStatisticsStoreController {
|
||||
public ResultMessage<List<GoodsStatisticsDataVO>> getByPage(GoodsStatisticsQueryParam statisticsQueryParam) {
|
||||
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
|
||||
statisticsQueryParam.setStoreId(storeId);
|
||||
return ResultUtil.data(goodsStatisticsDataService.getGoodsStatisticsData(statisticsQueryParam, 100));
|
||||
return ResultUtil.data(storeFlowStatisticsService.getGoodsStatisticsData(statisticsQueryParam, 100));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "获取首页查询数据")
|
||||
|
@ -6,12 +6,11 @@ import cn.lili.common.vo.PageVO;
|
||||
import cn.lili.common.vo.ResultMessage;
|
||||
import cn.lili.modules.order.aftersale.entity.dos.AfterSale;
|
||||
import cn.lili.modules.order.order.entity.vo.OrderSimpleVO;
|
||||
import cn.lili.modules.order.aftersale.service.AfterSaleService;
|
||||
import cn.lili.modules.order.order.service.OrderService;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderOverviewVO;
|
||||
import cn.lili.modules.statistics.entity.vo.OrderStatisticsDataVO;
|
||||
import cn.lili.modules.statistics.service.OrderStatisticsDataService;
|
||||
import cn.lili.modules.statistics.service.AfterSaleStatisticsService;
|
||||
import cn.lili.modules.statistics.service.OrderStatisticsService;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -36,21 +35,16 @@ import java.util.Objects;
|
||||
@RequestMapping("/store/statistics/order")
|
||||
public class OrderStatisticsStoreController {
|
||||
|
||||
/**
|
||||
* 订单
|
||||
*/
|
||||
@Autowired
|
||||
private OrderService orderService;
|
||||
/**
|
||||
* 售后
|
||||
*/
|
||||
@Autowired
|
||||
private AfterSaleService afterSaleService;
|
||||
private AfterSaleStatisticsService afterSaleStatisticsService;
|
||||
/**
|
||||
* 订单统计
|
||||
*/
|
||||
@Autowired
|
||||
private OrderStatisticsDataService orderStatisticsDataService;
|
||||
private OrderStatisticsService orderStatisticsService;
|
||||
|
||||
@ApiOperation(value = "订单概览统计")
|
||||
@GetMapping("/overview")
|
||||
@ -58,7 +52,7 @@ public class OrderStatisticsStoreController {
|
||||
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
|
||||
try {
|
||||
statisticsQueryParam.setStoreId(storeId);
|
||||
return ResultUtil.data(orderStatisticsDataService.overview(statisticsQueryParam));
|
||||
return ResultUtil.data(orderStatisticsService.overview(statisticsQueryParam));
|
||||
} catch (Exception e) {
|
||||
log.error("订单概览统计错误", e);
|
||||
}
|
||||
@ -71,7 +65,7 @@ public class OrderStatisticsStoreController {
|
||||
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
|
||||
try {
|
||||
statisticsQueryParam.setStoreId(storeId);
|
||||
return ResultUtil.data(orderStatisticsDataService.statisticsChart(statisticsQueryParam));
|
||||
return ResultUtil.data(orderStatisticsService.statisticsChart(statisticsQueryParam));
|
||||
} catch (Exception e) {
|
||||
log.error("订单图表统计错误", e);
|
||||
}
|
||||
@ -85,7 +79,7 @@ public class OrderStatisticsStoreController {
|
||||
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
|
||||
try {
|
||||
statisticsQueryParam.setStoreId(storeId);
|
||||
return ResultUtil.data(orderService.getStatistics(statisticsQueryParam, pageVO));
|
||||
return ResultUtil.data(orderStatisticsService.getStatistics(statisticsQueryParam, pageVO));
|
||||
} catch (Exception e) {
|
||||
log.error("订单统计错误", e);
|
||||
}
|
||||
@ -98,6 +92,6 @@ public class OrderStatisticsStoreController {
|
||||
public ResultMessage<IPage<AfterSale>> refund(StatisticsQueryParam statisticsQueryParam, PageVO pageVO) {
|
||||
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
|
||||
statisticsQueryParam.setStoreId(storeId);
|
||||
return ResultUtil.data(afterSaleService.getStatistics(statisticsQueryParam, pageVO));
|
||||
return ResultUtil.data(afterSaleStatisticsService.getStatistics(statisticsQueryParam, pageVO));
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ import cn.lili.common.security.context.UserContext;
|
||||
import cn.lili.common.vo.ResultMessage;
|
||||
import cn.lili.modules.statistics.entity.dto.StatisticsQueryParam;
|
||||
import cn.lili.modules.statistics.entity.vo.PlatformViewVO;
|
||||
import cn.lili.modules.statistics.service.PlatformViewDataService;
|
||||
import cn.lili.modules.statistics.service.PlatformViewService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -27,13 +27,13 @@ import java.util.Objects;
|
||||
@RequestMapping("/store/statistics/view")
|
||||
public class ViewStatisticsStoreController {
|
||||
@Autowired
|
||||
private PlatformViewDataService platformViewDataService;
|
||||
private PlatformViewService platformViewService;
|
||||
|
||||
@ApiOperation(value = "流量数据 表单获取")
|
||||
@GetMapping("/list")
|
||||
public ResultMessage<List<PlatformViewVO>> getByPage(StatisticsQueryParam queryParam) {
|
||||
String storeId = Objects.requireNonNull(UserContext.getCurrentUser()).getStoreId();
|
||||
queryParam.setStoreId(storeId);
|
||||
return ResultUtil.data(platformViewDataService.list(queryParam));
|
||||
return ResultUtil.data(platformViewService.list(queryParam));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user