add 会员统计 饼图
This commit is contained in:
+7
@@ -106,6 +106,13 @@ public class DictAspect {
|
||||
items.add(item);
|
||||
}
|
||||
((IPage) ((Result) result).getResult()).setRecords(items);
|
||||
}else if (((Result) result).getResult() instanceof List){
|
||||
List<JSONObject> 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();
|
||||
|
||||
+8
@@ -39,8 +39,16 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper<TbMemberProject
|
||||
|
||||
List<TbMemberProjectSubitem> getAllTakeEffectByCompanyId(@Param("companyId") String companyId);
|
||||
|
||||
/**
|
||||
* 获得所有有效的会员
|
||||
* @return
|
||||
*/
|
||||
List<TbMemberProjectSubitem> 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<MemberLineChartMap> getByYear(@Param("startYear") Integer startYear, @Param("endYear") Integer endYear);
|
||||
|
||||
IPage<TbMemberProjectSubitem> pieChartPage(Page<TbMemberProjectSubitem> page, @Param(Constants.WRAPPER) QueryWrapper<TbMemberProjectSubitem> queryWrapper);
|
||||
}
|
||||
|
||||
+21
@@ -111,4 +111,25 @@
|
||||
where year(ppr.payment_date) between #{startYear} and #{endYear}
|
||||
group by year(ppr.payment_date)
|
||||
</select>
|
||||
|
||||
<select id="getAllTakeEffect" resultMap="TbMemberProjectSubitemResultMap">
|
||||
SELECT t1.*
|
||||
FROM tb_member_project_subitem t1
|
||||
INNER JOIN (
|
||||
SELECT max(invalidation_date), id
|
||||
FROM tb_member_project_subitem
|
||||
where invalidation_date >= current_date
|
||||
GROUP BY company_id) AS t2 ON t2.id = t1.id
|
||||
</select>
|
||||
|
||||
<select id="pieChartPage" resultMap="TbMemberProjectSubitemResultMap">
|
||||
SELECT t1.*
|
||||
FROM tb_member_project_subitem t1
|
||||
INNER JOIN (
|
||||
SELECT max(invalidation_date), id
|
||||
FROM tb_member_project_subitem
|
||||
where invalidation_date >= current_date
|
||||
GROUP BY company_id) AS t2 ON t2.id = t1.id
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
+5
@@ -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<TbMemberProject
|
||||
void copyBatch(CopyMemberVO copyMemberVO);
|
||||
|
||||
MemberLineChartVO lineChart(Integer startYear, Integer endYear);
|
||||
|
||||
List<MemberPieChartVO> pieChart();
|
||||
|
||||
IPage<TbMemberProjectSubitem> pieChartPage(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper);
|
||||
}
|
||||
|
||||
+28
-1
@@ -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<TbMemberProje
|
||||
private IPayMailBillProjectService payMailBillProjectService;
|
||||
@Resource
|
||||
private IPayMailBillService payMailBillService;
|
||||
@Resource
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
|
||||
/**
|
||||
* 保存
|
||||
@@ -370,7 +375,29 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
|
||||
return memberLineChartVO;
|
||||
}
|
||||
|
||||
private TbMemberProjectSubitem setCopyValue(TbMemberProjectSubitem memberProjectSubitem) {
|
||||
@Override
|
||||
public List<MemberPieChartVO> pieChart() {
|
||||
|
||||
List<TbMemberProjectSubitem> allTakeEffect = tbMemberProjectSubitemMapper.getAllTakeEffect();
|
||||
Map<Integer, List<TbMemberProjectSubitem>> collect = allTakeEffect.stream().collect(Collectors.groupingBy(TbMemberProjectSubitem::getMemberNature));
|
||||
List<DictModel> dictModels = sysBaseAPI.queryDictItemsByCode("member_nature");
|
||||
List<MemberPieChartVO> 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<TbMemberProjectSubitem> pieChartPage(Page<TbMemberProjectSubitem> page, QueryWrapper<TbMemberProjectSubitem> queryWrapper) {
|
||||
return baseMapper.pieChartPage(page,queryWrapper);
|
||||
}
|
||||
|
||||
private TbMemberProjectSubitem setCopyValue(TbMemberProjectSubitem memberProjectSubitem) {
|
||||
TbMemberProjectSubitem tbMemberProjectSubitem = new TbMemberProjectSubitem();
|
||||
tbMemberProjectSubitem.setMemberNo(memberProjectSubitem.getMemberNo());
|
||||
tbMemberProjectSubitem.setCompanyId(memberProjectSubitem.getCompanyId());
|
||||
|
||||
+27
-8
@@ -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<MemberLineChartVO> lineChart(@RequestParam(name="startYear")Integer startYear,
|
||||
@RequestParam(name="endYear")Integer endYear) {
|
||||
MemberLineChartVO lineChartVO = memberProjectSubitemService.lineChart(startYear,endYear);
|
||||
public Result<MemberLineChartVO> 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<List<MemberPieChartVO>> 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<List<MemberPieChartVO>> pieChart() {
|
||||
List<MemberPieChartVO> pieChart = memberProjectSubitemService.pieChart();
|
||||
return Result.OK(pieChart);
|
||||
}
|
||||
|
||||
@ApiOperation(value="饼图-分页列表查询")
|
||||
@GetMapping(value = "/pieChartPage")
|
||||
public Result<IPage<TbMemberProjectSubitem>> queryPageList(TbMemberProjectSubitem tbMemberProjectSubitem,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
QueryWrapper<TbMemberProjectSubitem> queryWrapper = QueryGenerator.initQueryWrapper(tbMemberProjectSubitem, req.getParameterMap());
|
||||
Page<TbMemberProjectSubitem> page = new Page<>(pageNo, pageSize);
|
||||
IPage<TbMemberProjectSubitem> 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);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-4
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user