From da80439fcc39ee88a112de8cdf6de99cedd3cebb Mon Sep 17 00:00:00 2001 From: csc <869898671@qq.com> Date: Mon, 20 Oct 2025 01:13:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E9=A1=B5=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/service/api/statistics/statistics.ts | 20 ++ cds-fontend-2025.V1/src/views/home/index.vue | 192 ++++++++++-------- .../src/views/home/modules/card-data-mkt.vue | 64 +++--- .../dromara/mps/mapper/MpsMarketMapper.java | 5 +- .../mapper/MarketingPerformanceMapper.java | 17 ++ .../controller/StatisticsController.java | 70 ++++++- .../HomePageMarketingPerformanceSummary.java | 54 +++++ .../domain/vo/RecentActivityVo.java | 24 +++ .../system/mapper/SysOperLogMapper.java | 12 ++ .../resources/mapper/mps/MpsMarketMapper.xml | 2 +- .../report/MarketingPerformanceMapper.xml | 18 ++ .../mapper/system/SysOperLogMapper.xml | 14 +- 12 files changed, 362 insertions(+), 130 deletions(-) create mode 100644 cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/domain/vo/HomePageMarketingPerformanceSummary.java create mode 100644 cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/domain/vo/RecentActivityVo.java diff --git a/cds-fontend-2025.V1/src/service/api/statistics/statistics.ts b/cds-fontend-2025.V1/src/service/api/statistics/statistics.ts index b6ae785..e614738 100644 --- a/cds-fontend-2025.V1/src/service/api/statistics/statistics.ts +++ b/cds-fontend-2025.V1/src/service/api/statistics/statistics.ts @@ -55,3 +55,23 @@ export function getSummaryPieData(startDate: string,endDate: string) { params: {startDate,endDate} }); } + +/** + * 最近活动 getRecentActivity + */ +export function getRecentActivity() { + return request({ + url: '/common/statistics/getRecentActivity', + method: 'get' + }); +} + +/** + * getPricingSummary + */ +export function getPricingSummary() { + return request({ + url: '/common/statistics/getPricingSummary', + method: 'get' + }); +} diff --git a/cds-fontend-2025.V1/src/views/home/index.vue b/cds-fontend-2025.V1/src/views/home/index.vue index 7294861..e15db9d 100644 --- a/cds-fontend-2025.V1/src/views/home/index.vue +++ b/cds-fontend-2025.V1/src/views/home/index.vue @@ -1,33 +1,14 @@ @@ -325,9 +344,10 @@ onMounted(() => { +
-
- - 本日 - - - 本周 - - - 本月 - -
+ + + + + + + + + + + + + + + + + + + + + + + -
- -
+ + + + + + + + +
diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/mapper/MpsMarketMapper.java b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/mapper/MpsMarketMapper.java index c97fa3d..c533228 100644 --- a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/mapper/MpsMarketMapper.java +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/mps/mapper/MpsMarketMapper.java @@ -4,7 +4,6 @@ import org.dromara.mps.domain.MpsMarket; import org.dromara.mps.domain.vo.MpsMarketVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; @@ -29,6 +28,10 @@ public interface MpsMarketMapper extends BaseMapperPlus /** * 按照客户身份证号去重后查询数量 */ + @DataPermission({ + @DataColumn(key = "deptName", value = "create_dept"), + @DataColumn(key = "userName", value = "create_by") + }) Integer selectCountByCustId( @Param("startDate") String startDate, @Param("endDate") String endDate); diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/report/mapper/MarketingPerformanceMapper.java b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/report/mapper/MarketingPerformanceMapper.java index 280a815..3c40ced 100644 --- a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/report/mapper/MarketingPerformanceMapper.java +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/report/mapper/MarketingPerformanceMapper.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; +import org.dromara.statistics.domain.vo.HomePageMarketingPerformanceSummary; import java.util.Collection; import java.util.List; @@ -46,4 +47,20 @@ public interface MarketingPerformanceMapper extends BaseMapperPlus selectExportList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + /** + * homePageMarketingPerformanceSummary + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "create_dept"), + @DataColumn(key = "userName", value = "create_by") + }) + HomePageMarketingPerformanceSummary homePageMarketingPerformanceSummary(); + + @DataPermission({ + @DataColumn(key = "deptName", value = "create_dept"), + @DataColumn(key = "userName", value = "create_by") + }) + default MarketingPerformance homePageSelectOne(Wrapper queryWrapper){ + return this.selectOne(queryWrapper); + } } diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/controller/StatisticsController.java b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/controller/StatisticsController.java index c652a50..a512413 100644 --- a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/controller/StatisticsController.java +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/controller/StatisticsController.java @@ -7,7 +7,11 @@ import org.dromara.business.mapper.BusinessSubcategoryMapper; import org.dromara.common.core.domain.R; import org.dromara.mps.domain.MpsMarket; import org.dromara.mps.mapper.MpsMarketMapper; +import org.dromara.report.domain.MarketingPerformance; +import org.dromara.report.mapper.MarketingPerformanceMapper; import org.dromara.statistics.domain.vo.*; +import org.dromara.system.domain.vo.SysOperLogVo; +import org.dromara.system.mapper.SysOperLogMapper; import org.dromara.system.mapper.SysUserMapper; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; @@ -19,6 +23,7 @@ import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.*; +import java.util.stream.Collectors; /** * 统计分析控制器 @@ -36,6 +41,8 @@ public class StatisticsController { private final SysUserMapper sysUserMapper; private final MpsMarketMapper mpsMarketMapper; private final BusinessSubcategoryMapper businessSubcategoryMapper; + private final SysOperLogMapper sysOperLogMapper; + private final MarketingPerformanceMapper marketingPerformanceMapper; // 日期格式化器 private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("MM/dd"); @@ -44,12 +51,20 @@ public class StatisticsController { // 营销人员卡片数据 @GetMapping("/getMktCardData") public R getMktCardData(String startDate, String endDate) { - System.out.println(startDate + " " + endDate); MktCardVo mktCardVo = new MktCardVo(); - mktCardVo.setMpsCount(1765); // 总计件量 - mktCardVo.setMpsAmt(new BigDecimal(1026.12)); // 总计价额 - mktCardVo.setBusiCount(16); // 产品种类 - mktCardVo.setCustomerCount(66); // 客户数量 + + LambdaQueryWrapper mp = new LambdaQueryWrapper<>(); + mp.select(MarketingPerformance::getRecordDate, MarketingPerformance::getTotalCount, MarketingPerformance::getTotalAmount); + //查询出日期最近的一条 + mp.orderByDesc(MarketingPerformance::getRecordDate); + mp.last("limit 1"); + MarketingPerformance marketingPerformance = marketingPerformanceMapper.homePageSelectOne(mp); + mktCardVo.setMpsCount(Math.toIntExact(marketingPerformance == null ? 0L : marketingPerformance.getTotalCount())); // 总计件量 + mktCardVo.setMpsAmt(marketingPerformance == null ? BigDecimal.ZERO : marketingPerformance.getTotalAmount()); // 总计价额 + Long busiCount = businessSubcategoryMapper.selectCount(new LambdaQueryWrapper<>()); + mktCardVo.setBusiCount(Math.toIntExact(busiCount)); // 产品种类 + Integer customerCount = mpsMarketMapper.selectCountByCustId(startDate, endDate); + mktCardVo.setCustomerCount(Math.toIntExact(customerCount)); // 客户数量 return R.ok(mktCardVo); } @@ -142,12 +157,11 @@ public class StatisticsController { // 汇总卡片数据接口 @GetMapping("/getSummaryCardData") public R> getSummaryCardData(String startDate, String endDate) { - System.out.println("获取汇总卡片数据: " + startDate + " 至 " + endDate); // 计算日期范围天数 - LocalDate start = LocalDate.parse(startDate); - LocalDate end = LocalDate.parse(endDate); - long days = ChronoUnit.DAYS.between(start, end) + 1; +// LocalDate start = LocalDate.parse(startDate); +// LocalDate end = LocalDate.parse(endDate); +// long days = ChronoUnit.DAYS.between(start, end) + 1; Map data = new HashMap<>(); @@ -258,4 +272,42 @@ public class StatisticsController { return R.ok(data); } + + //最近活动 + @GetMapping("/getRecentActivity") + public R> getRecentActivity() { + + List sysOperLogVos = sysOperLogMapper.selectRecentOperLog(); + List recentActivityVos = sysOperLogVos.stream().map(sysOperLogVo -> { + RecentActivityVo recentActivityVo = new RecentActivityVo(); + recentActivityVo.setUser(sysOperLogVo.getOperName()); + recentActivityVo.setAction(sysOperLogVo.getTitle()+" "+convertHttpMethodToChinese(sysOperLogVo.getRequestMethod())); + recentActivityVo.setTime(sysOperLogVo.getOperTime()); + return recentActivityVo; + }).collect(Collectors.toList()); + + return R.ok(recentActivityVos); + } + + /** + * 将http请求方法转换成中文 + */ + private String convertHttpMethodToChinese(String httpMethod) { + return switch (httpMethod) { + case "GET" -> "查询"; + case "POST" -> "添加"; + case "PUT" -> "修改"; + case "DELETE" -> "删除"; + default -> httpMethod; + }; + } + + /** + * 计价汇总 + */ + @GetMapping("/getPricingSummary") + public R getPricingSummary() { + HomePageMarketingPerformanceSummary summary = marketingPerformanceMapper.homePageMarketingPerformanceSummary(); + return R.ok(summary); + } } diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/domain/vo/HomePageMarketingPerformanceSummary.java b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/domain/vo/HomePageMarketingPerformanceSummary.java new file mode 100644 index 0000000..d3e2d77 --- /dev/null +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/domain/vo/HomePageMarketingPerformanceSummary.java @@ -0,0 +1,54 @@ +package org.dromara.statistics.domain.vo; + +import lombok.Data; + +/** + * 首页营销计价统计 + */ +@Data +public class HomePageMarketingPerformanceSummary { + /** + * 代收业务 + */ + String daishou; + /** + * 其他 + */ + String qita; + /** + * 外汇业务 + */ + String waihui; + /** + * 季节性计价 + */ + String jijie; + /** + * 慧农通业务 + */ + String hnt; + /** + * 智e通业务 + */ + String zyt; + /** + * 理财业务 + */ + String licai; + /** + * 社保卡业务 + */ + String shebaoka; + /** + * 综合收单业务 + */ + String zhsd; + /** + * 缴费业务 + */ + String jiaofei; + /** + * total + */ + String total; +} diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/domain/vo/RecentActivityVo.java b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/domain/vo/RecentActivityVo.java new file mode 100644 index 0000000..a9377a5 --- /dev/null +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/statistics/domain/vo/RecentActivityVo.java @@ -0,0 +1,24 @@ +package org.dromara.statistics.domain.vo; + +import lombok.Data; + +import java.util.Date; + +/** + * 主页,最近活动 + */ +@Data +public class RecentActivityVo { + /** + * 用户 + */ + private String user; + /** + * 操作 + */ + private String action; + /** + * 时间 + */ + private Date time; +} diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java index 5d20404..4547f22 100644 --- a/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/java/org/dromara/system/mapper/SysOperLogMapper.java @@ -1,9 +1,13 @@ package org.dromara.system.mapper; +import org.dromara.common.mybatis.annotation.DataColumn; +import org.dromara.common.mybatis.annotation.DataPermission; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.system.domain.SysOperLog; import org.dromara.system.domain.vo.SysOperLogVo; +import java.util.List; + /** * 操作日志 数据层 * @@ -11,4 +15,12 @@ import org.dromara.system.domain.vo.SysOperLogVo; */ public interface SysOperLogMapper extends BaseMapperPlus { + /** + * 查询最近10条操作记录 + */ + @DataPermission({ + @DataColumn(key = "deptName", value = "user.dept_id"), + @DataColumn(key = "userName", value = "user.user_id") + }) + List selectRecentOperLog(); } diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/resources/mapper/mps/MpsMarketMapper.xml b/cds-platform-2025.V1/cds-modules/cds-system/src/main/resources/mapper/mps/MpsMarketMapper.xml index 87a3626..435f883 100644 --- a/cds-platform-2025.V1/cds-modules/cds-system/src/main/resources/mapper/mps/MpsMarketMapper.xml +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/resources/mapper/mps/MpsMarketMapper.xml @@ -89,7 +89,7 @@ + select sum(traffic_fine_collection_amount + electricity_fee_collection_amount + water_fee_collection_amount) as daishou, + sum(online_payment_amount + magnetic_to_ic_card_amount + new_bank_card_amount + zhi_e_pay_amount + housing_fund_customer_amount + new_housing_fund_customer_amount) as qita, + sum(new_foreign_account_amount) as waihui, + sum(heat_fee_collection_amount) as jijie, + sum(huinong_farmer_amount + huinong_buyer_amount) as hnt, + sum(zhi_e_individual_amount + zhi_e_inactive_amount + zhi_e_enterprise_amount + corporate_mobile_bank_amount) as zyt, + sum(new_personal_wealth_amount + new_corporate_wealth_amount + wealth_sales_amount + fixed_term_wealth_amount) as licai, + sum(new_social_card_amount + loan_customer_social_card_amount + employee_social_card_amount + activated_social_card_amount + e_social_card_amount + medical_e_voucher_amount) as shebaoka, + sum(new_merchant_first_month_amount + new_merchant_retention_quarter_amount + existing_merchant_retention_amount) as zhsd, + sum(new_party_fee_unit_amount + new_union_fee_unit_amount + new_property_fee_unit_amount + new_meal_fee_unit_amount) as jiaofei, + sum(total_amount) as total + from marketing_performance + where record_date = (select max(record_date) from marketing_performance) + + diff --git a/cds-platform-2025.V1/cds-modules/cds-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/cds-platform-2025.V1/cds-modules/cds-system/src/main/resources/mapper/system/SysOperLogMapper.xml index 5ef14ee..d483eb3 100644 --- a/cds-platform-2025.V1/cds-modules/cds-system/src/main/resources/mapper/system/SysOperLogMapper.xml +++ b/cds-platform-2025.V1/cds-modules/cds-system/src/main/resources/mapper/system/SysOperLogMapper.xml @@ -3,5 +3,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + +