瀏覽代碼

计算平台和用户的消费分统计

Yangzw 6 月之前
父節點
當前提交
734aa04a58

+ 7 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/consumptiontopuplog/ConsumptionTopUpLogController.java

@@ -70,4 +70,11 @@ public class ConsumptionTopUpLogController {
     public CommonResult<ConsumptionInfoVO> isFirstConsumption(@RequestParam("userId") Long userId) {
         return success(consumptionTopUpLogService.isFirstConsumption(userId));
     }
+
+    @GetMapping("/ptTopUpWithUserTopUpList")
+    @Operation(summary = "获取平台充值和用户充值记录")
+    @PreAuthorize("@ss.hasPermission('distri:consumption-top-up-log:query')")
+    public CommonResult<PtTopUpWithUserTopUpRespVO> ptTopUpWithUserTopUpList() {
+        return success(consumptionTopUpLogService.ptTopUpWithUserTopUpList());
+    }
 }

+ 19 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/consumptiontopuplog/vo/PtTopUpWithUserTopUpRespVO.java

@@ -0,0 +1,19 @@
+package cn.newfeifan.mall.module.distri.controller.admin.consumptiontopuplog.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Builder;
+import lombok.Data;
+
+import java.util.List;
+
+@Schema(description = "管理后台 - 平台充值和用户充值记录")
+@Data
+@Builder
+public class PtTopUpWithUserTopUpRespVO {
+
+    @Schema(description = "总数")
+    private Long totalConsumptionPoints;
+
+    @Schema(description = "集合")
+    private List<TopUpRespVO> topUpList;
+}

+ 21 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/controller/admin/consumptiontopuplog/vo/TopUpRespVO.java

@@ -0,0 +1,21 @@
+package cn.newfeifan.mall.module.distri.controller.admin.consumptiontopuplog.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+import static cn.newfeifan.mall.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
+import static cn.newfeifan.mall.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;
+
+@Schema(description = "管理后台 - 充值记录")
+@Data
+public class TopUpRespVO {
+    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY, timezone = TIME_ZONE_DEFAULT)
+    @Schema(description = "日期", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private LocalDate date;
+
+    @Schema(description = "数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    private Long consumptionPoints;
+}

+ 5 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/dal/mysql/consumptiontopuplog/ConsumptionTopUpLogMapper.java

@@ -8,6 +8,8 @@ import cn.newfeifan.mall.module.distri.dal.dataobject.consumptiontopuplog.Consum
 import org.apache.ibatis.annotations.Mapper;
 import cn.newfeifan.mall.module.distri.controller.admin.consumptiontopuplog.vo.*;
 
+import java.util.List;
+
 /**
  * 平台消费分充值记录 Mapper
  *
@@ -27,4 +29,7 @@ public interface ConsumptionTopUpLogMapper extends BaseMapperX<ConsumptionTopUpL
                 .orderByDesc(ConsumptionTopUpLogDO::getId));
     }
 
+    List<TopUpRespVO> ptTopUpWithUserTopUpList();
+
+    Long getTotalConsumptionPoints();
 }

+ 6 - 6
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/consumptiontopuplog/ConsumptionTopUpLogService.java

@@ -28,12 +28,6 @@ public interface ConsumptionTopUpLogService {
      */
     void updateConsumptionTopUpLog(@Valid ConsumptionTopUpLogSaveReqVO updateReqVO);
 
-    /**
-     * 删除平台消费分充值记录
-     *
-     * @param id 编号
-     */
-    void deleteConsumptionTopUpLog(Long id);
 
     /**
      * 获得平台消费分充值记录
@@ -64,4 +58,10 @@ public interface ConsumptionTopUpLogService {
      * @return 充值记录
      */
     List<ConsumptionTopUpLogDO> selectList();
+
+    /**
+     * 获取平台充值记录和用户充值记录
+     * @return 充值记录总和
+     */
+    PtTopUpWithUserTopUpRespVO ptTopUpWithUserTopUpList();
 }

+ 8 - 8
feifan-module-distri/feifan-module-distri-biz/src/main/java/cn/newfeifan/mall/module/distri/service/consumptiontopuplog/ConsumptionTopUpLogServiceImpl.java

@@ -134,14 +134,6 @@ public class ConsumptionTopUpLogServiceImpl implements ConsumptionTopUpLogServic
         consumptionTopUpLogMapper.updateById(updateObj);
     }
 
-    @Override
-    public void deleteConsumptionTopUpLog(Long id) {
-        // 校验存在
-        validateConsumptionTopUpLogExists(id);
-        // 删除
-        consumptionTopUpLogMapper.deleteById(id);
-    }
-
     private void validateConsumptionTopUpLogExists(Long id) {
         if (consumptionTopUpLogMapper.selectById(id) == null) {
             throw exception(CONSUMPTION_TOP_UP_LOG_NOT_EXISTS);
@@ -181,5 +173,13 @@ public class ConsumptionTopUpLogServiceImpl implements ConsumptionTopUpLogServic
         return consumptionTopUpLogMapper.selectList();
     }
 
+    @Override
+    public PtTopUpWithUserTopUpRespVO ptTopUpWithUserTopUpList() {
+        return PtTopUpWithUserTopUpRespVO.builder()
+                .topUpList(consumptionTopUpLogMapper.ptTopUpWithUserTopUpList())
+                .totalConsumptionPoints(consumptionTopUpLogMapper.getTotalConsumptionPoints())
+                .build();
+    }
+
 
 }

+ 35 - 0
feifan-module-distri/feifan-module-distri-biz/src/main/resources/mapper/consumptiontopuplog/ConsumptionTopUpLogMapper.xml

@@ -9,4 +9,39 @@
         文档可见:https://www.zhongxing.cn/MyBatis/x-plugins/
      -->
 
+    <select id="ptTopUpWithUserTopUpList"
+            resultType="cn.newfeifan.mall.module.distri.controller.admin.consumptiontopuplog.vo.TopUpRespVO">
+        SELECT
+            DATE(combined.date) AS date,
+            SUM(combined.conut) AS consumptionPoints
+        FROM (
+            SELECT
+            DATE(create_time) AS date,
+            sum(consumption_points) AS conut
+            FROM distri_consumption_top_up_log GROUP BY date(create_time)
+            UNION ALL
+            SELECT
+            DATE(create_time) AS create_time,
+            sum(top_up_consumption_points) AS conut
+            FROM distri_user_top_up_consumption_points_order GROUP BY date(create_time)
+            ) AS combined
+        GROUP BY DATE(combined.date)
+        HAVING SUM(combined.conut) > 0
+        ORDER BY date
+
+    </select>
+    <select id="getTotalConsumptionPoints" resultType="java.lang.Long">
+        SELECT
+            SUM(consumption_points) total
+        FROM
+            (SELECT
+                 consumption_points
+             FROM
+                 distri_consumption_top_up_log
+             UNION ALL
+             SELECT
+                 top_up_consumption_points AS consumption_points
+             FROM
+                 distri_user_top_up_consumption_points_order) AS combined;
+    </select>
 </mapper>

+ 2 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/app/order/vo/AppTradeOrderDetailRespVO.java

@@ -147,4 +147,6 @@ public class AppTradeOrderDetailRespVO {
 
     @Schema(description = "支付积分", example = "10000")
     private Long payIntegral;
+    @Schema(description = "本订单使用消费分", example = "36")
+    private Long payConsumptionPoints;
 }