Merge remote-tracking branch 'origin/master'

This commit is contained in:
yangkang 2021-12-06 16:58:14 +08:00
commit ac86715062
72 changed files with 1429 additions and 718 deletions

View File

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

View File

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

View File

@ -49,10 +49,4 @@ public interface DistributionCashService extends IService<DistributionCash> {
*/
DistributionCash audit(@PathVariable String id, @RequestParam String result);
/**
* 待处理分销员提现申请数量
*
* @return 待处理分销员提现申请数量
*/
Integer newDistributionCash();
}

View File

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

View File

@ -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();
/**
* 更新商品上架状态状态

View File

@ -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;

View File

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

View File

@ -88,18 +88,5 @@ public interface MemberEvaluationService extends IService<MemberEvaluation> {
*/
EvaluationNumberVO getEvaluationNumber(String goodsId);
/**
* 获取今天新增的评价数量
*
* @return 今日评价数量
*/
Integer todayMemberEvaluation();
/**
* 获取等待回复评价数量
*
* @return 等待回复评价数量
*/
Integer getWaitReplyNum();
}

View File

@ -197,13 +197,6 @@ public interface MemberService extends IService<Member> {
*/
Boolean updateMemberStatus(List<String> memberIds, Boolean status);
/**
* 查看会员数据分布
*
* @return 会员数据分布
*/
List<MemberDistributionVO> distribution();
/**
* 根据条件查询会员总数
*

View File

@ -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);
}
/**
* 检测会员评价
*

View File

@ -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;
}
/**
* 根据手机号获取会员
*

View File

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

View File

@ -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);
}
/**
* 创建售后
*

View File

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

View File

@ -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);
/**
* 开具发票
*

View File

@ -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) {
//根据订单号查询发票信息

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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流量统计
*

View File

@ -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> {
/**
* 退款统计

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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> {
/**

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -66,14 +66,6 @@ public interface BillService extends IService<Bill> {
*/
boolean complete(String id);
/**
* 商家待结算数量
*
* @param billStatusEnum 结算单类型
* @return 待结算商家数量
*/
Integer billNum(BillStatusEnum billStatusEnum);
/**
* 下载结算单
* @response response

View File

@ -102,26 +102,6 @@ public interface StoreService extends IService<Store> {
*/
boolean applyThirdStep(StoreOtherInfoDTO storeOtherInfoDTO);
/**
* 获取待审核店铺数量
*
* @return 待审核店铺数量
*/
Integer auditNum();
/**
* 获取所有店铺数量
*
* @return 店铺总数
*/
Integer storeNum();
/**
* 获取今天的店铺数量
*
* @return 今天的店铺数量
*/
Integer todayStoreNum();
/**
* 更新店铺商品数量

View File

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

View File

@ -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) {
//获取店铺已上架已审核通过商品数量

View File

@ -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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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 = "获取首页查询数据")

View File

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

View File

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