package com.panzhihua.service_community.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import com.panzhihua.common.utlis.DateUtils;
|
import com.panzhihua.common.utlis.SensitiveUtil;
|
import com.panzhihua.common.utlis.StringUtils;
|
import com.panzhihua.service_community.dao.ComPbMemberDAO;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO;
|
import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO;
|
import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg;
|
import com.panzhihua.common.model.vos.R;
|
import com.panzhihua.common.model.vos.community.bigscreen.*;
|
import com.panzhihua.service_community.dao.BigScreenDAO;
|
import com.panzhihua.service_community.service.BigScreenService;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
/**
|
* @ClasssName BigScreenService
|
* @Description TODO
|
* @Author cedoo
|
* @Date 2021/6/16
|
* @Version 1.0
|
**/
|
@Slf4j
|
@Service
|
public class BigScreenServiceImpl implements BigScreenService {
|
@Resource
|
private BigScreenDAO bigScreenDAO;
|
@Resource
|
private ComPbMemberDAO comPbMemberDAO;
|
|
@Override
|
public R partyOrgMembers(PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg) {
|
Page page = new Page<>();
|
page.setSize(pageBigScreenStatisticPartyOrg.getPageSize());
|
page.setCurrent(pageBigScreenStatisticPartyOrg.getPageNum());
|
IPage<BigScreenStatisticPartyOrg> rPage = bigScreenDAO.partyOrgMembers(page, pageBigScreenStatisticPartyOrg);
|
return R.ok(rPage);
|
}
|
|
@Override
|
public R<BigScreenStatisticAgeGender> ageGender(BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO) {
|
BigScreenStatisticAgeGender gender = bigScreenDAO.gender(bigScreenStatisticAgeGenderDTO);
|
BigScreenStatisticAgeGender age = bigScreenDAO.age(bigScreenStatisticAgeGenderDTO);
|
|
BigScreenStatisticAgeGender ageGender = new BigScreenStatisticAgeGender();
|
if(age!=null){
|
BeanUtils.copyProperties(age, ageGender);
|
ageGender.setManTotal(gender.getManTotal());
|
ageGender.setWomeTotal(gender.getWomeTotal());
|
|
/**
|
* 计算百分比
|
*/
|
Double manPer = 1.0 * ageGender.getManTotal() / (ageGender.getManTotal() + ageGender.getWomeTotal());
|
Double womenPer = 1.0 * ageGender.getWomeTotal() / (ageGender.getManTotal() + ageGender.getWomeTotal());
|
ageGender.setManPer(manPer);
|
ageGender.setWomenPer(womenPer);
|
|
Integer memTotal = ageGender.getThirtyTotal() + ageGender.getSixtyTotal() + ageGender.getBiggerTotal();
|
Double thrPer = 1.0 * ageGender.getThirtyTotal() / memTotal;
|
Double sixPer = 1.0 * ageGender.getSixtyTotal() / memTotal;
|
Double biggerPer = 1.0 * ageGender.getBiggerTotal() / memTotal;
|
ageGender.setThirtyPer(thrPer);
|
ageGender.setSixtyPer(sixPer);
|
ageGender.setBiggerPer(biggerPer);
|
}
|
|
return R.ok(ageGender);
|
}
|
|
@Override
|
public R<BigScreenStatisticPartyBuild> bigscreenPartybuild(Long communityId) {
|
return R.ok(bigScreenDAO.partybuild(communityId));
|
}
|
|
@Override
|
public R<List<PartyBuildingMemberVO>> bigscreenPartyactivitytopuser(Long communityId) {
|
List<PartyBuildingMemberVO> listRt = bigScreenDAO.bigscreenPartyactivitytopuser(communityId);
|
if (listRt == null || listRt.size() < 3) {
|
// 选择默认的党员列表
|
List<PartyBuildingMemberVO> defaultPartyactivity = bigScreenDAO.defaultPartyactivity(communityId);
|
listRt.addAll(defaultPartyactivity);
|
if (listRt.size() >= 3) {
|
listRt = listRt.subList(0, 3);
|
}
|
}
|
listRt.forEach(partyBuildingMemberVO -> {
|
if(StringUtils.isNotEmpty(partyBuildingMemberVO.getName())){
|
partyBuildingMemberVO.setName(SensitiveUtil.replaceName(partyBuildingMemberVO.getName()));
|
}
|
});
|
return R.ok(listRt);
|
}
|
|
@Override
|
public R<List<BigScreenStatisticPartyActivity>>
|
bigscreenPartyactivity(BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO) {
|
List<BigScreenStatisticPartyActivity> listR = new ArrayList<>();
|
if (bigScreenStatisticPartyActivityDTO.getType().equals(3)) {
|
listR = bigScreenDAO.partyactivity(bigScreenStatisticPartyActivityDTO);
|
} else if (bigScreenStatisticPartyActivityDTO.getType().equals(2)) {
|
listR = bigScreenDAO.partyactivityByWeek(bigScreenStatisticPartyActivityDTO);
|
}
|
return R.ok(listR);
|
}
|
|
@Override
|
public R partyActivityLine(Long communityId) {
|
List<BigScreenActivityLine> bigScreenActivityLines=this.getPastMonth();
|
bigScreenActivityLines.forEach(bigScreenActivityLine -> {
|
BigScreenActivityLine bigScreenActivityLine1=comPbMemberDAO.selectActivityCountMonth(communityId,bigScreenActivityLine.getX(),bigScreenActivityLine.getYear());
|
bigScreenActivityLine.setY(bigScreenActivityLine1.getY());
|
bigScreenActivityLine.setCountY(bigScreenActivityLine1.getCountY());
|
bigScreenActivityLine.setX(bigScreenActivityLine.getYear().substring(2,4)+"-"+bigScreenActivityLine.getX());
|
});
|
return R.ok(bigScreenActivityLines);
|
}
|
|
@Override
|
public R partyActivityTop(PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg) {
|
return R.ok(this.comPbMemberDAO.selectActivityTop(new Page(pageBigScreenStatisticPartyOrg.getPageNum(),pageBigScreenStatisticPartyOrg.getPageSize()),pageBigScreenStatisticPartyOrg.getCommunityId()));
|
}
|
|
@Override
|
public R serviceData(Long communityId) {
|
return R.ok(this.comPbMemberDAO.bigScreenServiceData(communityId));
|
}
|
|
@Override
|
public R serviceUser(Long communityId) {
|
return R.ok(this.comPbMemberDAO.bigScreenServiceUser(communityId));
|
}
|
|
public List<BigScreenActivityLine> getPoints(){
|
List<BigScreenActivityLine> bigScreenActivityLines=new ArrayList<>();
|
for(int i=1;i<=12;i++){
|
String aDate="";
|
if(i<10){
|
aDate = "0"+i;
|
}
|
else {
|
aDate=i+"";
|
}
|
BigScreenActivityLine bigScreenActivityLine=new BigScreenActivityLine();
|
bigScreenActivityLine.setX(aDate);
|
bigScreenActivityLines.add(bigScreenActivityLine);
|
}
|
return bigScreenActivityLines;
|
}
|
|
public List<BigScreenActivityLine> getPastMonth(){
|
List<BigScreenActivityLine> bigScreenActivityLines=new ArrayList<>();
|
for(int i=11;i>=0;i--){
|
BigScreenActivityLine bigScreenActivityLine=new BigScreenActivityLine();
|
String date=DateUtils.getDateFormatString(DateUtils.addMonth(new Date(),-i),"MM");
|
String year=DateUtils.getDateFormatString(DateUtils.addMonth(new Date(),-i),"yyyy");
|
bigScreenActivityLine.setX(date);
|
bigScreenActivityLine.setYear(year);
|
bigScreenActivityLines.add(bigScreenActivityLine);
|
}
|
return bigScreenActivityLines;
|
}
|
|
}
|