add 会员统计 折线图

This commit is contained in:
lijiarao
2024-03-14 12:04:10 +08:00
parent f83c106c09
commit ab421b27c1
7 changed files with 53 additions and 7 deletions
@@ -1,11 +1,14 @@
package com.jero.member.mapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.statistics.entity.MemberLineChartMap;
import com.jero.statistics.entity.MemberLineChartVO;
import org.apache.ibatis.annotations.Param;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -38,4 +41,6 @@ public interface TbMemberProjectSubitemMapper extends BaseMapper<TbMemberProject
@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);
}
@@ -103,4 +103,12 @@
and tmps.effective_date is not null
</where>
</select>
<select id="getByYear" resultType="com.jero.statistics.entity.MemberLineChartMap">
select year(ppr.payment_date) as year, sum(ppr.amount_received) as value
from tb_member_project_subitem tmps
LEFT JOIN pay_payment_record ppr on ppr.project_id = tmps.id
where year(ppr.payment_date) between #{startYear} and #{endYear}
group by year(ppr.payment_date)
</select>
</mapper>
@@ -93,5 +93,5 @@ public interface ITbMemberProjectSubitemService extends IService<TbMemberProject
void copyBatch(CopyMemberVO copyMemberVO);
MemberLineChartVO lineChart(String startYear, String endYear);
MemberLineChartVO lineChart(Integer startYear, Integer endYear);
}
@@ -33,6 +33,7 @@ import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
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.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
@@ -41,6 +42,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
@@ -353,8 +355,19 @@ public class TbMemberProjectSubitemServiceImpl extends ServiceImpl<TbMemberProje
}
@Override
public MemberLineChartVO lineChart(String startYear, String endYear) {
return null;
public MemberLineChartVO lineChart(Integer startYear, Integer endYear) {
MemberLineChartVO memberLineChartVO = new MemberLineChartVO();
List<MemberLineChartMap> byYear = tbMemberProjectSubitemMapper.getByYear(startYear, endYear);
Map<Integer, String> map = byYear.stream().collect(Collectors.toMap(MemberLineChartMap::getYear, MemberLineChartMap::getValue));
List<String> value = new ArrayList<>();
List<Integer> year = new ArrayList<>();
for (int i = startYear; i <= endYear; i++) {
year.add(i);
value.add(map.getOrDefault(i,"0"));
}
memberLineChartVO.setValue(value);
memberLineChartVO.setYear(year);
return memberLineChartVO;
}
private TbMemberProjectSubitem setCopyValue(TbMemberProjectSubitem memberProjectSubitem) {
@@ -37,8 +37,8 @@ public class MemberStatisticsController {
@ApiOperation(value = "折线图")
@GetMapping(value = "/lineChart")
public Result<MemberLineChartVO> lineChart(@RequestParam(name="startYear")String startYear,
@RequestParam(name="endYear")String 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);
}
@@ -0,0 +1,20 @@
package com.jero.statistics.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author liJiaRao
* @date 2022-09-01 16:48
*/
@Data
public class MemberLineChartMap {
@ApiModelProperty(value = "会费")
private String value;
@ApiModelProperty(value = "年份")
private Integer year;
}
@@ -11,10 +11,10 @@ import java.util.List;
*/
@Data
public class MemberLineChartVO {
@ApiModelProperty(value = "数量")
@ApiModelProperty(value = "会费")
private List<String> value;
@ApiModelProperty(value = "年份")
private List<String> year;
private List<Integer> year;
}