TBoardStatisticController.java 13.6 KB
Newer Older
yangtianyou's avatar
yangtianyou committed
1 2
package cn.wisenergy.chnmuseum.party.web.controller;

wzp's avatar
wzp committed
3 4 5
import cn.wisenergy.chnmuseum.party.common.log.MethodLog;
import cn.wisenergy.chnmuseum.party.common.log.OperModule;
import cn.wisenergy.chnmuseum.party.common.log.OperType;
yangtianyou's avatar
yangtianyou committed
6
import cn.wisenergy.chnmuseum.party.common.util.DateUtil;
yangtianyou's avatar
yangtianyou committed
7
import cn.wisenergy.chnmuseum.party.model.*;
yangtianyou's avatar
yangtianyou committed
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController;
import cn.wisenergy.chnmuseum.party.service.TBoardStatisticService;
import cn.wisenergy.chnmuseum.party.common.enums.AuditStatusEnum;
import cn.wisenergy.chnmuseum.party.common.validator.groups.Add;
import cn.wisenergy.chnmuseum.party.common.validator.groups.Update;
import cn.wisenergy.chnmuseum.party.common.vo.GenericPageParam;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;

import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
wzp's avatar
wzp committed
25
import org.apache.commons.lang3.time.DateUtils;
wzp's avatar
wzp committed
26
import org.apache.shiro.authz.annotation.RequiresAuthentication;
yangtianyou's avatar
yangtianyou committed
27 28 29 30 31 32
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
wzp's avatar
wzp committed
33 34
import java.text.ParseException;
import java.text.SimpleDateFormat;
wzp's avatar
wzp committed
35
import java.util.*;
yangtianyou's avatar
yangtianyou committed
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

/**
 * <pre>
 * 展板统计信息表 前端控制器
 * </pre>
 *
 * @author Danny Lee
 * @since 2021-03-25
 */
@Slf4j
@RestController
@RequestMapping("/tBoardStatistic")
@Api(tags = {"展板统计信息表操作接口"})
public class TBoardStatisticController extends BaseController {

    @Resource
    private TBoardStatisticService tBoardStatisticService;

yangtianyou's avatar
yangtianyou committed
54 55 56 57 58
//    @ApiImplicitParams(value = {
//            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
//            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer")
//    })
    @PostMapping("/getBoardSurvey")
wzp's avatar
wzp committed
59
//    @RequiresAuthentication  //@RequiresPermissions("t:board:statistic:survey")
yangtianyou's avatar
yangtianyou committed
60 61
    @ApiOperation(value = "获取展板统计概况", notes = "获取展板统计概况")
    public Map<String, Object> getBoardSurvey(TBoardSurvey survey) {
wzp's avatar
wzp committed
62 63 64
        TUser user = null;
        try {
            user = getcurUser();
wzp's avatar
wzp committed
65 66 67
            if (user.getRoleList().size()>0&&!user.getRoleList().contains("1")) {
                survey.setOrganCode(user.getOrgCode());
            }
wzp's avatar
wzp committed
68 69 70
        } catch (Exception e) {
            survey.setOrganCode(null);
        }
yangtianyou's avatar
yangtianyou committed
71 72 73 74
        TBoardSurvey result = this.tBoardStatisticService.getBoardSurvey(survey);

        return getResult(result);
    }
yangtianyou's avatar
yangtianyou committed
75 76 77 78 79 80

    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer")
    })
    @PostMapping("/getBoardRankPageList")
wzp's avatar
wzp committed
81
//    @RequiresAuthentication  //@RequiresPermissions("t:board:statistic:rankPage")
yangtianyou's avatar
yangtianyou committed
82 83
    @ApiOperation(value = "获取展板播放排行", notes = "获取展板播放排行")
    public Map<String, Object> getBoardRankPageList(TBoardPlayRank rank) {
wzp's avatar
wzp committed
84 85 86
        TUser user = null;
        try {
            user = getcurUser();
wzp's avatar
wzp committed
87 88 89
            if (user.getRoleList().size()>0&&!user.getRoleList().contains("1")) {
                rank.setOrganCode(user.getOrgCode());
            }
wzp's avatar
wzp committed
90 91 92
        } catch (Exception e) {
            rank.setOrganCode(null);
        }
yangtianyou's avatar
yangtianyou committed
93 94 95 96 97 98 99 100 101 102 103 104
        Page<TBoardPlayRank> page = this.tBoardStatisticService.getBoardRankPageList(getPage(),rank);
        for (TBoardPlayRank tBoardStatistic : page.getRecords()) {

        }
        return getResult(page);
    }

    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer")
    })
    @PostMapping("/getBoardTrendPageList")
wzp's avatar
wzp committed
105
//    @RequiresAuthentication  //@RequiresPermissions("t:board:statistic:trendPage")
yangtianyou's avatar
yangtianyou committed
106 107
    @ApiOperation(value = "获取展板播放趋势", notes = "获取展板播放趋势")
    public Map<String, Object> getBoardTrendPageList(TBoardPlayTrend trend) {
wzp's avatar
wzp committed
108 109 110
        TUser user = null;
        try {
            user = getcurUser();
wzp's avatar
wzp committed
111 112 113
            if (user.getRoleList().size()>0&&!user.getRoleList().contains("1")) {
                trend.setOrganCode(user.getOrgCode());
            }
wzp's avatar
wzp committed
114 115 116
        } catch (Exception e) {
            trend.setOrganCode(null);
        }
yangtianyou's avatar
yangtianyou committed
117
        // 如果查询日志为空,则默认当月
yangtianyou's avatar
yangtianyou committed
118
        if (StringUtils.isEmpty(trend.getPlayDate())){
yangtianyou's avatar
yangtianyou committed
119
            trend.setPlayDate(DateUtil.getCurrentDate("yyyyMM"));
yangtianyou's avatar
yangtianyou committed
120 121 122
        }

        Page<TBoardPlayTrend> page = this.tBoardStatisticService.getBoardTrendPageList(getPage(),trend);
yangtianyou's avatar
yangtianyou committed
123 124 125 126 127 128 129
        // 处理数据为展板趋势图
        Map map = new HashMap();
        List dateList = new ArrayList();
        List cntList = new ArrayList();
        for (TBoardPlayTrend t : page.getRecords()) {
            dateList.add(t.getPlayDate());
            cntList.add(t.getPlayNumber());
yangtianyou's avatar
yangtianyou committed
130
        }
wzp's avatar
wzp committed
131
        page.getRecords().sort(Comparator.comparing(TBoardPlayTrend::getPlayNumber).reversed());
yangtianyou's avatar
yangtianyou committed
132 133
        map.put("dateList",dateList);
        map.put("cntList",cntList);
wzp's avatar
wzp committed
134
        map.put("page",page);
yangtianyou's avatar
yangtianyou committed
135
        return getResult(map);
yangtianyou's avatar
yangtianyou committed
136 137 138 139 140 141 142 143
    }


    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer")
    })
    @PostMapping("/getBoardDistrictPageList")
wzp's avatar
wzp committed
144
//    @RequiresAuthentication  //@RequiresPermissions("t:board:statistic:districtPage")
yangtianyou's avatar
yangtianyou committed
145 146
    @ApiOperation(value = "获取地区展板播统计", notes = "获取地区展板播统计")
    public Map<String, Object> getBoardDistrictPageList(TDistrictBoardStatistic district) {
wzp's avatar
wzp committed
147 148 149
        TUser user = null;
        try {
            user = getcurUser();
wzp's avatar
wzp committed
150 151 152
            if (user.getRoleList().size()>0&&!user.getRoleList().contains("1")) {
                district.setOrganCode(user.getOrgCode());
            }
wzp's avatar
wzp committed
153 154 155
        } catch (Exception e) {
            district.setOrganCode(null);
        }
yangtianyou's avatar
yangtianyou committed
156 157 158 159 160 161 162

        Page<TDistrictBoardStatistic> page = this.tBoardStatisticService.getBoardDistrictPageList(getPage(),district);
        for (TDistrictBoardStatistic tBoardStatistic : page.getRecords()) {

        }
        return getResult(page);
    }
yangtianyou's avatar
yangtianyou committed
163 164 165 166 167 168 169

    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "organId", value = "统计机构", paramType = "query", dataType = "String")
    })
    @PostMapping("/getBoardProvincePlayTotalList")
wzp's avatar
wzp committed
170
//    @RequiresAuthentication  //@RequiresPermissions("t:board:statistic:provPlayList")
yangtianyou's avatar
yangtianyou committed
171 172
    @ApiOperation(value = "获取省级展板播放统计", notes = "获取省级展板播放统计")
    public Map<String, Object> getBoardProvincePlayTotalList(String organId) {
wzp's avatar
wzp committed
173
        String orgCode = null;
wzp's avatar
wzp committed
174 175
        try {
            TUser user = getcurUser();
wzp's avatar
wzp committed
176 177 178
            if (user.getRoleList().size()>0&&!user.getRoleList().contains("1")) {
                orgCode = user.getOrgCode();
            }
wzp's avatar
wzp committed
179 180 181 182
        } catch (Exception e) {
            orgCode = null;
        }
        List list = this.tBoardStatisticService.getBoardProvincePlayTotalList(organId,orgCode);
yangtianyou's avatar
yangtianyou committed
183 184 185 186 187 188 189 190 191
        return getResult(list);
    }

    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "frequencyDate", value = "互动统计时间 年:yyyy 月:yyyyMM,默认当月", paramType = "query", dataType = "String")
    })
    @PostMapping("/getInteractionFrequencyPageList")
wzp's avatar
wzp committed
192
//    @RequiresAuthentication  //@RequiresPermissions("t:board:statistic:districtPage")
yangtianyou's avatar
yangtianyou committed
193 194
    @ApiOperation(value = "获取互动频次统计信息", notes = "获取互动频次统计信息")
    public Map<String, Object> getInteractionFrequencyPageList(String frequencyDate) {
wzp's avatar
wzp committed
195
        String orgCode = null;
wzp's avatar
wzp committed
196 197
        try {
            TUser user = getcurUser();
wzp's avatar
wzp committed
198 199 200
            if (user.getRoleList().size()>0&&!user.getRoleList().contains("1")) {
                orgCode = user.getOrgCode();
            }
wzp's avatar
wzp committed
201 202 203
        } catch (Exception e) {
            orgCode = null;
        }
yangtianyou's avatar
yangtianyou committed
204 205 206 207
        if (StringUtils.isEmpty(frequencyDate)){
            frequencyDate = DateUtil.getCurrentDate("yyyyMM");
        }

wzp's avatar
wzp committed
208
        Page page = this.tBoardStatisticService.getInteractionFrequency(getPage(),frequencyDate,orgCode);
yangtianyou's avatar
yangtianyou committed
209 210 211 212 213 214 215 216 217 218 219 220 221 222
        //
        Map map = new HashMap();
        List organList = new ArrayList<>();
        List cntList = new ArrayList();
        for (Object o : page.getRecords()){
            Map m = (HashMap) o;
            organList.add(m.get("organName"));
            cntList.add(m.get("frequencyCnt"));
        }
        map.put("organList",organList);
        map.put("cntList",cntList);
        map.put("page",page);
        return getResult(map);
    }
yangtianyou's avatar
yangtianyou committed
223

wzp's avatar
wzp committed
224 225

    /**
wzp's avatar
wzp committed
226
     * 以下两个接口是pc端专用
wzp's avatar
wzp committed
227 228 229 230 231 232 233 234
     * @param trend
     * @return
     */
    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer")
    })
    @PostMapping("/getBoardPageList")
wzp's avatar
wzp committed
235
//    @RequiresAuthentication  //@RequiresPermissions("t:board:statistic:Page")
wzp's avatar
wzp committed
236
    @ApiOperation(value = "获取展板播放趋势Pc", notes = "获取展板播放趋势Pc")
wzp's avatar
wzp committed
237
//    @MethodLog(operModule = OperModule.TEND, operType = OperType.SELECT)
wzp's avatar
wzp committed
238
    public Map<String, Object> getBoardPageList(TBoardPlayTrend trend) throws ParseException {
wzp's avatar
wzp committed
239 240 241
        TUser user = null;
        try {
            user = getcurUser();
wzp's avatar
wzp committed
242 243 244
            if (user.getRoleList().size()>0&&!user.getRoleList().contains("1")) {
                trend.setOrganCode(user.getOrgCode());
            }
wzp's avatar
wzp committed
245 246 247
        } catch (Exception e) {
            trend.setOrganCode(null);
        }
wzp's avatar
wzp committed
248
        // 如果查询日志为空,则默认当月
wzp's avatar
wzp committed
249
        if (StringUtils.isEmpty(trend.getBeginDate())){
wzp's avatar
wzp committed
250 251
            trend.setBeginDate(DateUtil.getCurrentDate("yyyy")+"01");
            trend.setEndDate(DateUtil.getCurrentDate("yyyyMM"));
wzp's avatar
wzp committed
252
        }
wzp's avatar
wzp committed
253
        Page<TBoardPlayTrend> page = this.tBoardStatisticService.getBoardPageList(getPage(),trend);
wzp's avatar
wzp committed
254 255 256 257
        // 处理数据为展板趋势图
        Map map = new HashMap();
        List dateList = new ArrayList();
        List cntList = new ArrayList();
wzp's avatar
wzp committed
258

wzp's avatar
wzp committed
259 260 261 262
        for (TBoardPlayTrend t : page.getRecords()) {
            dateList.add(t.getPlayDate());
            cntList.add(t.getPlayNumber());
        }
wzp's avatar
wzp committed
263 264
        List<TBoardPlayTrend> list = page.getRecords();
        list.sort(Comparator.comparing(TBoardPlayTrend::getPlayNumber,Comparator.reverseOrder()).thenComparing(TBoardPlayTrend::getPlayDate,Comparator.reverseOrder()));
wzp's avatar
wzp committed
265 266 267
        if (list.size()>=10) {
            list = list.subList(0, 10);
        }
wzp's avatar
wzp committed
268
        page.setRecords(list);
wzp's avatar
wzp committed
269 270 271 272 273 274 275 276 277 278 279 280 281
        map.put("dateList",dateList);
        map.put("cntList",cntList);
        map.put("page",page);
        return getResult(map);
    }


    @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
            @ApiImplicitParam(name = "frequencyDate", value = "互动统计时间 年:yyyy 月:yyyyMM,默认当月", paramType = "query", dataType = "String")
    })
    @PostMapping("/getInteractionPageList")
wzp's avatar
wzp committed
282
//    @RequiresAuthentication  //@RequiresPermissions("t:interaction:statistic:districtPage")
wzp's avatar
wzp committed
283
    @ApiOperation(value = "获取互动频次统计信息pc", notes = "获取互动频次统计信息pc")
wzp's avatar
wzp committed
284
//    @MethodLog(operModule = OperModule.INTERACTION, operType = OperType.SELECT)
wzp's avatar
wzp committed
285
    public Map<String, Object> getInteractionPageList(String frequencyDate) {
wzp's avatar
wzp committed
286
        String orgCode = null;
wzp's avatar
wzp committed
287 288
        try {
            TUser user = getcurUser();
wzp's avatar
wzp committed
289 290 291
            if (user.getRoleList().size()>0&&!user.getRoleList().contains("1")) {
                orgCode = user.getOrgCode();
            }
wzp's avatar
wzp committed
292 293 294
        } catch (Exception e) {
            orgCode = null;
        }
wzp's avatar
wzp committed
295 296 297 298
        if (StringUtils.isEmpty(frequencyDate)){
            frequencyDate = DateUtil.getCurrentDate("yyyyMM");
        }

wzp's avatar
wzp committed
299
        Page page = this.tBoardStatisticService.getInteractionFrequency(getPage(),frequencyDate,orgCode);
wzp's avatar
wzp committed
300 301 302 303 304 305 306 307 308 309 310 311 312 313
        //
        Map map = new HashMap();
        List organList = new ArrayList<>();
        List cntList = new ArrayList();
        for (Object o : page.getRecords()){
            Map m = (HashMap) o;
            organList.add(m.get("organName"));
            cntList.add(m.get("frequencyCnt"));
        }
        map.put("organList",organList);
        map.put("cntList",cntList);
        map.put("page",page);
        return getResult(map);
    }
yangtianyou's avatar
yangtianyou committed
314 315
}