Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

guomengjiao месяцев назад: 4
Родитель
Сommit
b3810835a6

+ 136 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/IndexController.java

@@ -0,0 +1,136 @@
+package com.ruoyi.web.controller.common;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.ruoyi.businessDayBill.domain.bo.BusinessDayBillBo;
+import com.ruoyi.businessDayBill.domain.bo.BusinessDayBillCountBo;
+import com.ruoyi.businessDayBill.domain.vo.BusinessDayBillVo;
+import com.ruoyi.businessDayBill.service.IBusinessDayBillService;
+import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.PageQuery;
+import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.common.core.validate.QueryGroup;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.onlineorder.domain.bo.OnlineOrderBo;
+import com.ruoyi.onlineorder.domain.vo.OnlineOrderVo;
+import com.ruoyi.onlineorder.service.IOnlineOrderService;
+import com.ruoyi.subsidy.enums.SubsidyCountType;
+import com.ruoyi.subsidy.service.ISubsidyQueueService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 首页Controller
+ *
+ * @author lubo
+ * @date 2025-11-18
+ */
+@Validated
+@Api(value = "首页", tags = {"首页管理"})
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/index")
+public class IndexController extends BaseController {
+
+    private final IOnlineOrderService iOnlineOrderService;
+    private final ISubsidyQueueService iSubsidyQueueService;
+    private final IBusinessDayBillService iBusinessDayBillService;
+
+    /**
+     * 平台顶部简单统计
+     */
+    @ApiOperation("平台顶部简单统计")
+    @GetMapping("/simpleStatistics")
+    public R<Map<String, Object>> simpleStatistics() {
+        HashMap<String, Object> map = new HashMap<>();
+        BusinessDayBillCountBo bo = new BusinessDayBillCountBo();
+        bo.setType("today");
+        BusinessDayBillVo statistics = iBusinessDayBillService.getStatistics(bo);
+        map.put("todayAmount", ObjectUtil.isNotNull( statistics)? statistics.getActualReceivePayment() : 0);
+        map.put("todayOrderNum", ObjectUtil.isNotNull( statistics)? statistics.getOnlineOrderNum()+statistics.getShopOrderNum() : 0);
+        map.put("queueCount", iSubsidyQueueService.validQueueCount(null,false));
+        return R.ok( map);
+    }
+
+    /**
+     * 商家顶部简单统计
+     */
+    @ApiOperation("商家顶部简单统计")
+    @GetMapping("/businessSimpleStatistics")
+    public R<Map<String, Object>> businessSimpleStatistics() {
+        HashMap<String, Object> map = new HashMap<>();
+        Long businessId = getBusinessId(true);
+        BusinessDayBillCountBo bo = new BusinessDayBillCountBo();
+        bo.setType("today");
+        bo.setBusinessId(businessId);
+        BusinessDayBillVo statistics = iBusinessDayBillService.getStatistics(bo);
+        map.put("todayAmount", ObjectUtil.isNotNull( statistics)? statistics.getActualReceivePayment() : 0);
+        map.put("todayOrderNum", ObjectUtil.isNotNull( statistics)? statistics.getOnlineOrderNum()+statistics.getShopOrderNum() : 0);
+        map.put("queueCount", iSubsidyQueueService.validQueueCount(businessId,false));
+        return R.ok( map);
+    }
+
+
+    @ApiOperation("商家账本周统计信息")
+    @GetMapping("/business-on-seven-day")
+    public R<List<BusinessDayBillVo>> businessOnSevenDay() {
+        BusinessDayBillBo build = BusinessDayBillBo.builder()
+            .businessId(getBusinessId(true))
+            .startTime(DateUtil.beginOfWeek(new Date()))
+            .endTime(DateUtil.endOfWeek(new Date()))
+            .build();
+        List<BusinessDayBillVo> businessDayBillVos = iBusinessDayBillService.queryList(build);
+        businessDayBillVos.forEach(BusinessDayBillVo::loadWeekValue);
+        return R.ok( businessDayBillVos);
+    }
+
+    @ApiOperation("商家账今年统计信息")
+    @GetMapping("/business-on-year")
+    public R<List<BusinessDayBillVo>> businessOnYear() {
+        BusinessDayBillCountBo build = new BusinessDayBillCountBo();
+        build.setBusinessId(getBusinessId(true));
+        build.setStartTime(DateUtil.beginOfYear(new Date()));
+        build.setEndTime(DateUtil.endOfYear(new Date()));
+        List<BusinessDayBillVo> businessDayBillVos = iBusinessDayBillService.onYear(build);
+        return R.ok( businessDayBillVos);
+    }
+
+    @ApiOperation("平台账本周统计信息")
+    @GetMapping("/platform-on-seven-day")
+    public R<List<BusinessDayBillVo>> platformOnSevenDay() {
+        BusinessDayBillCountBo build = new BusinessDayBillCountBo();
+        build.setStartTime(DateUtil.beginOfWeek(new Date()));
+        build.setEndTime(DateUtil.endOfWeek(new Date()));
+        List<BusinessDayBillVo> businessDayBillVos = iBusinessDayBillService.onDay(build);
+        businessDayBillVos.forEach(BusinessDayBillVo::loadWeekValue);
+        return R.ok( businessDayBillVos);
+    }
+
+    @ApiOperation("平台账今年统计信息")
+    @GetMapping("/platform-on-on-year")
+    public R<List<BusinessDayBillVo>> platformOnYear() {
+        BusinessDayBillCountBo build = new BusinessDayBillCountBo();
+        build.setStartTime(DateUtil.beginOfWeek(new Date()));
+        build.setEndTime(DateUtil.endOfWeek(new Date()));
+        List<BusinessDayBillVo> businessDayBillVos = iBusinessDayBillService.onYear(build);
+        return R.ok( businessDayBillVos);
+    }
+
+
+
+}

+ 12 - 0
ruoyi-business/src/main/java/com/ruoyi/businessDayBill/domain/vo/BusinessDayBillVo.java

@@ -3,6 +3,8 @@ package com.ruoyi.businessDayBill.domain.vo;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
+
+import cn.hutool.core.date.DateUtil;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
@@ -157,5 +159,15 @@ public class BusinessDayBillVo implements Serializable {
     @ApiModelProperty(value = "积分核销发发积分额")
     private BigDecimal pointVerifiedOrderAmount;
 
+    @ApiModelProperty(value = "周几")
+    private Integer weekValue;
+
+    public void loadWeekValue() {
+        if(billDay != null)
+        {
+            //把日期转换成星期几
+            weekValue = DateUtil.dayOfWeek(billDay);
+        }
+    }
 
 }

+ 7 - 0
ruoyi-business/src/main/java/com/ruoyi/businessDayBill/mapper/BusinessDayBillMapper.java

@@ -1,11 +1,14 @@
 package com.ruoyi.businessDayBill.mapper;
 
 import com.ruoyi.businessDayBill.domain.BusinessDayBill;
+import com.ruoyi.businessDayBill.domain.bo.BusinessDayBillBo;
 import com.ruoyi.businessDayBill.domain.bo.BusinessDayBillCountBo;
 import com.ruoyi.businessDayBill.domain.vo.BusinessDayBillVo;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 商家日账单Mapper接口
  *
@@ -15,4 +18,8 @@ import org.apache.ibatis.annotations.Param;
 public interface BusinessDayBillMapper extends BaseMapperPlus<BusinessDayBillMapper, BusinessDayBill, BusinessDayBillVo> {
 
     BusinessDayBillVo getStatistics(@Param("bo") BusinessDayBillCountBo bo);
+
+    List<BusinessDayBillVo> onYear(@Param("bo")BusinessDayBillCountBo bo);
+
+    List<BusinessDayBillVo> onDay(@Param("bo")BusinessDayBillCountBo build);
 }

+ 14 - 0
ruoyi-business/src/main/java/com/ruoyi/businessDayBill/service/IBusinessDayBillService.java

@@ -131,4 +131,18 @@ public interface IBusinessDayBillService {
      * @return 统计信息
      */
     BusinessDayBillVo getStatistics(BusinessDayBillCountBo bo);
+
+    /**
+     * 获取商家日账单按年统计信息
+     * @param bo 统计参数
+     * @return 统计信息
+     */
+    List<BusinessDayBillVo> onYear(BusinessDayBillCountBo build);
+
+    /**
+     * 获取商家日账单按天统计信息
+     * @param bo 统计参数
+     * @return 统计信息
+     */
+    List<BusinessDayBillVo> onDay(BusinessDayBillCountBo build);
 }

+ 11 - 4
ruoyi-business/src/main/java/com/ruoyi/businessDayBill/service/impl/BusinessDayBillServiceImpl.java

@@ -30,10 +30,7 @@ import com.ruoyi.businessDayBill.service.IBusinessDayBillService;
 import com.ruoyi.businessDayBill.exception.BusinessDayBillExceptionEnum;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.util.*;
 
 /**
  * 商家日账单Service业务层处理
@@ -322,5 +319,15 @@ public class BusinessDayBillServiceImpl implements IBusinessDayBillService {
         }
     }
 
+    @Override
+    public List<BusinessDayBillVo> onYear(BusinessDayBillCountBo bo) {
+        return this.baseMapper.onYear(bo);
+    }
+
+    @Override
+    public List<BusinessDayBillVo> onDay(BusinessDayBillCountBo build) {
+        return this.baseMapper.onDay(build);
+    }
+
 
 }

+ 86 - 18
ruoyi-business/src/main/resources/mapper/businessDayBill/BusinessDayBillMapper.xml

@@ -33,24 +33,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <select id="getStatistics" resultType="com.ruoyi.businessDayBill.domain.vo.BusinessDayBillVo">
-        select IFNULL(sum(actual_receive_payment), 0)      as actual_receive_payment,
-               IFNULL(sum(actual_credited), 0)             as actual_credited,
-               IFNULL(sum(user_use_point), 0)              as user_use_point,
-               IFNULL(sum(business_give_point), 0)         as business_give_point,
-               IFNULL(sum(today_settlement), 0)            as today_settlement,
-               IFNULL(sum(online_order_num), 0)            as online_order_num,
-               IFNULL(sum(shop_order_num), 0)              as shop_order_num,
-               IFNULL(sum(online_order_amount), 0)         as online_order_amount,
-               IFNULL(sum(shop_order_amount), 0)           as shop_order_amount,
-               IFNULL(sum(online_refund_order_num), 0)     as online_refund_order_num,
-               IFNULL(sum(shop_refund_order_num), 0)       as shop_refund_order_num,
-               IFNULL(sum(online_refund_order_amount), 0)  as online_refund_order_amount,
-               IFNULL(sum(shop_refund_order_amount), 0)    as shop_refund_order_amount,
-               IFNULL(sum(business_should_subsidy), 0)     as business_should_subsidy,
-               IFNULL(sum(platform_service_fee), 0)        as platform_service_fee,
-               IFNULL(sum(platform_income), 0)             as platform_income,
-               IFNULL(sum(point_verified_order_num), 0)    as point_verified_order_num,
-               IFNULL(sum(point_verified_order_amount), 0) as point_verified_order_amount
+        select
+        IFNULL(sum(actual_receive_payment), 0) as actual_receive_payment,
+        IFNULL(sum(actual_credited), 0) as actual_credited,
+        IFNULL(sum(user_use_point), 0) as user_use_point,
+        IFNULL(sum(business_give_point), 0) as business_give_point,
+        IFNULL(sum(today_settlement), 0) as today_settlement,
+        IFNULL(sum(online_order_num), 0) as online_order_num,
+        IFNULL(sum(shop_order_num), 0) as shop_order_num,
+        IFNULL(sum(online_order_amount), 0) as online_order_amount,
+        IFNULL(sum(shop_order_amount), 0) as shop_order_amount,
+        IFNULL(sum(online_refund_order_num), 0) as online_refund_order_num,
+        IFNULL(sum(shop_refund_order_num), 0) as shop_refund_order_num,
+        IFNULL(sum(online_refund_order_amount), 0) as online_refund_order_amount,
+        IFNULL(sum(shop_refund_order_amount), 0) as shop_refund_order_amount,
+        IFNULL(sum(business_should_subsidy), 0) as business_should_subsidy,
+        IFNULL(sum(platform_service_fee), 0) as platform_service_fee,
+        IFNULL(sum(platform_income), 0) as platform_income,
+        IFNULL(sum(point_verified_order_num), 0) as point_verified_order_num,
+        IFNULL(sum(point_verified_order_amount), 0) as point_verified_order_amount
         from tb_business_day_bill
         <where>
             <if test="bo.businessId!=null">
@@ -64,4 +65,71 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </if>
         </where>
     </select>
+
+    <select id="onYear" resultType="com.ruoyi.businessDayBill.domain.vo.BusinessDayBillVo">
+        select DATE_FORMAT(bill_day, '%Y-%m') AS year_month_value,
+        IFNULL(sum(actual_receive_payment), 0) as actual_receive_payment,
+        IFNULL(sum(actual_credited), 0) as actual_credited,
+        IFNULL(sum(user_use_point), 0) as user_use_point,
+        IFNULL(sum(business_give_point), 0) as business_give_point,
+        IFNULL(sum(today_settlement), 0) as today_settlement,
+        IFNULL(sum(online_order_num), 0) as online_order_num,
+        IFNULL(sum(shop_order_num), 0) as shop_order_num,
+        IFNULL(sum(online_order_amount), 0) as online_order_amount,
+        IFNULL(sum(shop_order_amount), 0) as shop_order_amount,
+        IFNULL(sum(online_refund_order_num), 0) as online_refund_order_num,
+        IFNULL(sum(shop_refund_order_num), 0) as shop_refund_order_num,
+        IFNULL(sum(online_refund_order_amount), 0) as online_refund_order_amount,
+        IFNULL(sum(shop_refund_order_amount), 0) as shop_refund_order_amount,
+        IFNULL(sum(business_should_subsidy), 0) as business_should_subsidy,
+        IFNULL(sum(platform_service_fee), 0) as platform_service_fee,
+        IFNULL(sum(platform_income), 0) as platform_income,
+        IFNULL(sum(point_verified_order_num), 0) as point_verified_order_num,
+        IFNULL(sum(point_verified_order_amount), 0) as point_verified_order_amount
+        FROM tb_business_day_bill
+        <where>
+            <if test="bo.businessId!=null">
+                and business_id = #{bo.businessId}
+            </if>
+            <if test="bo.startTime!=null">
+                and bill_day &gt;= #{bo.startTime}
+            </if>
+            <if test="bo.endTime!=null">
+                and bill_day &lt;= #{bo.endTime}
+            </if>
+        </where>
+        GROUP BY year_month_value
+    </select>
+
+    <select id="onDay" resultType="com.ruoyi.businessDayBill.domain.vo.BusinessDayBillVo">
+        select bill_day,day_value,
+               IFNULL(sum(actual_receive_payment), 0) as actual_receive_payment,
+               IFNULL(sum(actual_credited), 0) as actual_credited,
+               IFNULL(sum(user_use_point), 0) as user_use_point,
+               IFNULL(sum(business_give_point), 0) as business_give_point,
+               IFNULL(sum(today_settlement), 0) as today_settlement,
+               IFNULL(sum(online_order_num), 0) as online_order_num,
+               IFNULL(sum(shop_order_num), 0) as shop_order_num,
+               IFNULL(sum(online_order_amount), 0) as online_order_amount,
+               IFNULL(sum(shop_order_amount), 0) as shop_order_amount,
+               IFNULL(sum(online_refund_order_num), 0) as online_refund_order_num,
+               IFNULL(sum(shop_refund_order_num), 0) as shop_refund_order_num,
+               IFNULL(sum(online_refund_order_amount), 0) as online_refund_order_amount,
+               IFNULL(sum(shop_refund_order_amount), 0) as shop_refund_order_amount,
+               IFNULL(sum(business_should_subsidy), 0) as business_should_subsidy,
+               IFNULL(sum(platform_service_fee), 0) as platform_service_fee,
+               IFNULL(sum(platform_income), 0) as platform_income,
+               IFNULL(sum(point_verified_order_num), 0) as point_verified_order_num,
+               IFNULL(sum(point_verified_order_amount), 0) as point_verified_order_amount
+        from tb_business_day_bill
+        <where>
+            <if test="bo.startTime!=null">
+                and bill_day &gt;= #{bo.startTime}
+            </if>
+            <if test="bo.endTime!=null">
+                and bill_day &lt;= #{bo.endTime}
+            </if>
+        </where>
+        GROUP BY bill_day
+    </select>
 </mapper>

+ 1 - 1
ruoyi-line/src/main/java/com/ruoyi/subsidy/service/impl/SubsidyQueueServiceImpl.java

@@ -285,7 +285,7 @@ public class SubsidyQueueServiceImpl implements ISubsidyQueueService {
     @Override
     public Long validQueueCount(Long businessId, Boolean excludeCutIn) {
         return this.baseMapper.selectCount(new LambdaQueryWrapper<SubsidyQueue>()
-            .eq(SubsidyQueue::getCurrentBusinessId, businessId)
+            .eq(ObjectUtil.isNotNull(businessId),SubsidyQueue::getCurrentBusinessId, businessId)
             .eq(SubsidyQueue::getSubsidyStatus, SubsidyStatus.WAITING)
             .eq(excludeCutIn, SubsidyQueue::getCutIn, false)
         );