mitao
2025-02-21 31573d6180d15ef65ed0df9c2732495f40b12663
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
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;
    }
 
}