From 4f12dd8bf8f221648df4755841c3e1a28193c308 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Thu, 14 Mar 2024 15:15:11 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E4=BC=9A=E5=91=98=E7=BB=9F=E8=AE=A1=20?= =?UTF-8?q?=E9=A5=BC=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jero/common/aspect/DictAspect.java | 7 ++++ .../mapper/TbMemberProjectSubitemMapper.java | 8 +++++ .../xml/TbMemberProjectSubitemMapper.xml | 21 +++++++++++ .../ITbMemberProjectSubitemService.java | 5 +++ .../TbMemberProjectSubitemServiceImpl.java | 29 ++++++++++++++- .../MemberStatisticsController.java | 35 ++++++++++++++----- .../statistics/entity/MemberPieChartVO.java | 6 ++-- 7 files changed, 98 insertions(+), 13 deletions(-) diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/aspect/DictAspect.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/aspect/DictAspect.java index 49595a80..bda3db8a 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/aspect/DictAspect.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/aspect/DictAspect.java @@ -106,6 +106,13 @@ public class DictAspect { items.add(item); } ((IPage) ((Result) result).getResult()).setRecords(items); + }else if (((Result) result).getResult() instanceof List){ + List items = new ArrayList<>(); + for (Object record :(List) ((Result) result).getResult()) { + JSONObject item = translate(record); + items.add(item); + } + ((Result) result).setResult(items); }else { Object record = (Object) ((Result) result).getResult(); ObjectMapper mapper = new ObjectMapper(); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java index 6c3164dc..8648b96d 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/TbMemberProjectSubitemMapper.java @@ -39,8 +39,16 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper getAllTakeEffectByCompanyId(@Param("companyId") String companyId); + /** + * 获得所有有效的会员 + * @return + */ + List getAllTakeEffect(); + @Select("SELECT IFNULL(MAX(SUBSTRING(member_no,13)),'0') + 1 FROM tb_member_project_subitem WHERE member_no LIKE concat(#{date},'%')") Integer getMaxMemberNo(@Param("date") String date); List getByYear(@Param("startYear") Integer startYear, @Param("endYear") Integer endYear); + + IPage pieChartPage(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml index 8e95018b..f77bce26 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/mapper/xml/TbMemberProjectSubitemMapper.xml @@ -111,4 +111,25 @@ where year(ppr.payment_date) between #{startYear} and #{endYear} group by year(ppr.payment_date) + + + + \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java index c867d50c..ed6be03b 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/ITbMemberProjectSubitemService.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.jero.member.vo.CopyMemberVO; import com.jero.member.vo.EditMemberBenefitsVO; import com.jero.statistics.entity.MemberLineChartVO; +import com.jero.statistics.entity.MemberPieChartVO; import java.util.List; @@ -94,4 +95,8 @@ public interface ITbMemberProjectSubitemService extends IService pieChart(); + + IPage pieChartPage(Page page, QueryWrapper queryWrapper); } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java index b327377a..9b513a48 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/member/service/impl/TbMemberProjectSubitemServiceImpl.java @@ -13,6 +13,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.enums.PaymentStatusEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.service.RolePermissionService; +import com.jero.common.system.api.ISysBaseAPI; +import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.LoginUser; import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.service.IPayIncomeContractAssociatedService; @@ -35,6 +37,7 @@ import com.jero.payment.service.impl.PayConfirmPaymentRecordService; import com.jero.project.common.PayProjectCommon; import com.jero.statistics.entity.MemberLineChartMap; import com.jero.statistics.entity.MemberLineChartVO; +import com.jero.statistics.entity.MemberPieChartVO; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import org.apache.shiro.SecurityUtils; @@ -85,6 +88,8 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl pieChart() { + + List allTakeEffect = tbMemberProjectSubitemMapper.getAllTakeEffect(); + Map> collect = allTakeEffect.stream().collect(Collectors.groupingBy(TbMemberProjectSubitem::getMemberNature)); + List dictModels = sysBaseAPI.queryDictItemsByCode("member_nature"); + List memberPieChartVOList = new ArrayList<>(); + for (DictModel dictModel : dictModels) { + MemberPieChartVO memberPieChartVO = new MemberPieChartVO(); + String value = dictModel.getValue(); + memberPieChartVO.setMemberNature(value); + memberPieChartVO.setValue(collect.getOrDefault(Integer.valueOf(value),new ArrayList<>()).size()+""); + memberPieChartVOList.add(memberPieChartVO); + } + return memberPieChartVOList; + } + + @Override + public IPage pieChartPage(Page page, QueryWrapper queryWrapper) { + return baseMapper.pieChartPage(page,queryWrapper); + } + + private TbMemberProjectSubitem setCopyValue(TbMemberProjectSubitem memberProjectSubitem) { TbMemberProjectSubitem tbMemberProjectSubitem = new TbMemberProjectSubitem(); tbMemberProjectSubitem.setMemberNo(memberProjectSubitem.getMemberNo()); tbMemberProjectSubitem.setCompanyId(memberProjectSubitem.getCompanyId()); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/MemberStatisticsController.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/MemberStatisticsController.java index 8339f1aa..ab681415 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/MemberStatisticsController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/controller/MemberStatisticsController.java @@ -1,12 +1,18 @@ package com.jero.statistics.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.DictPoint; +import com.jero.common.system.query.QueryGenerator; +import com.jero.common.util.PasswordUtil; import com.jero.index.vo.LineChartVO; import com.jero.index.vo.PieChartVO; import com.jero.meeting.service.IPayMeetingService; import com.jero.meeting.service.IPayMeetingSituationService; +import com.jero.member.entity.TbMemberProjectSubitem; import com.jero.member.service.ITbMemberProjectSubitemService; import com.jero.payment.service.impl.PayConfirmPaymentRecordService; import com.jero.statistics.entity.MeetingPackStatisticsSearch; @@ -37,19 +43,32 @@ public class MemberStatisticsController { @ApiOperation(value = "折线图") @GetMapping(value = "/lineChart") - public Result lineChart(@RequestParam(name="startYear")Integer startYear, - @RequestParam(name="endYear")Integer endYear) { - MemberLineChartVO lineChartVO = memberProjectSubitemService.lineChart(startYear,endYear); + public Result lineChart(@RequestParam(name = "startYear") Integer startYear, + @RequestParam(name = "endYear") Integer endYear) { + MemberLineChartVO lineChartVO = memberProjectSubitemService.lineChart(startYear, endYear); return Result.OK(lineChartVO); } @ApiOperation(value = "饼图") @GetMapping(value = "/pieChart") - public Result> incomeClassificationStatistics(@RequestParam(name="type", defaultValue = "1")Integer type, - @RequestParam(name="departCode",required = false)String departCode, - @RequestParam(name="year",required = false)String year) { - - return Result.OK(); + public Result> pieChart() { + List pieChart = memberProjectSubitemService.pieChart(); + return Result.OK(pieChart); + } + @ApiOperation(value="饼图-分页列表查询") + @GetMapping(value = "/pieChartPage") + public Result> queryPageList(TbMemberProjectSubitem tbMemberProjectSubitem, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(tbMemberProjectSubitem, req.getParameterMap()); + Page page = new Page<>(pageNo, pageSize); + IPage pageList = memberProjectSubitemService.pieChartPage(page, queryWrapper); + for (TbMemberProjectSubitem record : pageList.getRecords()) { + record.setEmail(PasswordUtil.decrypt(record.getEmail())); + record.setMobile(PasswordUtil.decrypt(record.getMobile())); + } + return Result.OK(pageList); } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MemberPieChartVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MemberPieChartVO.java index 1f1a0a8d..2d3a33a8 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MemberPieChartVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/statistics/entity/MemberPieChartVO.java @@ -10,11 +10,9 @@ import lombok.Data; */ @Data public class MemberPieChartVO { - @Dict(dicCode = "payment_charge_use") + @Dict(dicCode = "member_nature") @ApiModelProperty(value = "分类") - private String name; + private String memberNature; @ApiModelProperty(value = "值") private String value; - @ApiModelProperty(value = "金额") - private String money; }