package cn.wisenergy.chnmuseum.party.web.controller; import cn.wisenergy.chnmuseum.party.common.util.DateUtil; import cn.wisenergy.chnmuseum.party.model.*; 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; 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; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * <pre> * 展板统计信息表 前端控制器 * </pre> * * @author Danny Lee * @since 2021-03-25 */ @Slf4j @RestController @RequestMapping("/tBoardStatistic") @Api(tags = {"展板统计信息表操作接口"}) public class TBoardStatisticController extends BaseController { @Resource private TBoardStatisticService tBoardStatisticService; // @ApiImplicitParams(value = { // @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"), // @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer") // }) @PostMapping("/getBoardSurvey") @RequiresPermissions("t:board:statistic:survey") @ApiOperation(value = "获取展板统计概况", notes = "获取展板统计概况") public Map<String, Object> getBoardSurvey(TBoardSurvey survey) { TBoardSurvey result = this.tBoardStatisticService.getBoardSurvey(survey); return getResult(result); } @ApiImplicitParams(value = { @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"), @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer") }) @PostMapping("/getBoardRankPageList") @RequiresPermissions("t:board:statistic:rankPage") @ApiOperation(value = "获取展板播放排行", notes = "获取展板播放排行") public Map<String, Object> getBoardRankPageList(TBoardPlayRank rank) { 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") @RequiresPermissions("t:board:statistic:trendPage") @ApiOperation(value = "获取展板播放趋势", notes = "获取展板播放趋势") public Map<String, Object> getBoardTrendPageList(TBoardPlayTrend trend) { // 如果查询日志为空,则默认当月 if (StringUtils.isEmpty(trend.getPlayDate())){ trend.setPlayDate(DateUtil.getCurrentDate("yyyyMM")); } Page<TBoardPlayTrend> page = this.tBoardStatisticService.getBoardTrendPageList(getPage(),trend); // 处理数据为展板趋势图 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()); } map.put("dateList",dateList); map.put("cntList",cntList); return getResult(map); } @ApiImplicitParams(value = { @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"), @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer") }) @PostMapping("/getBoardDistrictPageList") @RequiresPermissions("t:board:statistic:districtPage") @ApiOperation(value = "获取地区展板播统计", notes = "获取地区展板播统计") public Map<String, Object> getBoardDistrictPageList(TDistrictBoardStatistic district) { Page<TDistrictBoardStatistic> page = this.tBoardStatisticService.getBoardDistrictPageList(getPage(),district); for (TDistrictBoardStatistic tBoardStatistic : page.getRecords()) { } return getResult(page); } @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") @RequiresPermissions("t:board:statistic:provPlayList") @ApiOperation(value = "获取省级展板播放统计", notes = "获取省级展板播放统计") public Map<String, Object> getBoardProvincePlayTotalList(String organId) { List list = this.tBoardStatisticService.getBoardProvincePlayTotalList(organId); 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") @RequiresPermissions("t:board:statistic:districtPage") @ApiOperation(value = "获取互动频次统计信息", notes = "获取互动频次统计信息") public Map<String, Object> getInteractionFrequencyPageList(String frequencyDate) { if (StringUtils.isEmpty(frequencyDate)){ frequencyDate = DateUtil.getCurrentDate("yyyyMM"); } Page page = this.tBoardStatisticService.getInteractionFrequency(getPage(),frequencyDate); // 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); } // // @PostMapping("/batchSave") // @RequiresPermissions("t:board:statistic:batch:save") // @ApiOperation(value = "批量添加展板统计信息表", notes = "批量添加展板统计信息表") // public Map<String, Object> batchSaveTBoardStatistic(@Validated(value = {Add.class}) List<TBoardStatistic> tBoardStatisticList) { // // 保存业务节点信息 // boolean result = tBoardStatisticService.saveBatch(tBoardStatisticList); // // 返回操作结果 // if (result) { // return getSuccessResult(); // } else { // // 保存失败 // return getFailResult(); // } // } // // // // // @PostMapping("/save") // @RequiresPermissions("t:board:statistic:save") // @ApiOperation(value = "添加展板统计信息表", notes = "添加展板统计信息表") // public Map<String, Object> saveTBoardStatistic(@Validated(value = {Add.class}) TBoardStatistic tBoardStatistic) { // // 获取当前日期 // tBoardStatistic.setPlayDate(DateUtil.getCurrentDate("yyyyMMdd")); // // // 保存业务节点信息 // boolean result = tBoardStatisticService.save(tBoardStatistic); // // 返回操作结果 // if (result) { // return getSuccessResult(); // } else { // // 保存失败 // return getFailResult(); // } // } // // @PutMapping("/update") // @RequiresPermissions("t:board:statistic:update") // @ApiOperation(value = "修改展板统计信息表信息", notes = "修改展板统计信息表信息") // public Map<String, Object> updateTBoardStatistic(@Validated(value = {Update.class}) TBoardStatistic tBoardStatistic) { // boolean flag = tBoardStatisticService.updateById(tBoardStatistic); // if (flag) { // return getSuccessResult(); // } // return getFailResult(); // } // // @PutMapping("/updateAuditStatus/{id}") // @RequiresPermissions("t:board:statistic:update:audit:status") // @ApiOperation(value = "更新展板统计信息表审核状态", notes = "更新展板统计信息表审核状态") // @ApiImplicitParams(value = { // @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path"), // @ApiImplicitParam(name = "status", value = "状态", paramType = "query", dataType = "String") // }) // public Map<String, Object> updateStatus(@NotNull(message = "展板统计信息表ID不能为空") @PathVariable("id") String id, @RequestParam("status") AuditStatusEnum status) { // UpdateWrapper<TBoardStatistic> updateWrapper = new UpdateWrapper<>(); // updateWrapper.eq("id", id); // updateWrapper.eq("audit_status", status.name()); // boolean flag = tBoardStatisticService.update(updateWrapper); // if (flag) { // return getSuccessResult(); // } // return getFailResult(); // } // // @DeleteMapping("/delete/{id}") // @RequiresPermissions("t:board:statistic:delete") // @ApiOperation(value = "根据ID删除展板统计信息表", notes = "根据ID删除展板统计信息表") // @ApiImplicitParams(value = { // @ApiImplicitParam(name = "id", value = "标识ID", paramType = "path", dataType = "String") // }) // public Map<String, Object> deleteTBoardStatistic(@PathVariable("id") String id) { // boolean result = tBoardStatisticService.removeById(id); // if (result) { // return getSuccessResult(); // } // return getFailResult(); // } // // @GetMapping("/getList") // @RequiresPermissions("t:board:statistic:list") // @ApiOperation(value = "获取展板统计信息表全部列表(无分页)", notes = "获取展板统计信息表全部列表(无分页)") // @ApiImplicitParams(value = { // @ApiImplicitParam(name = "auditStatus", value = "审核状态", paramType = "query", dataType = "String") // }) // public Map<String, Object> getTBoardStatisticList(@RequestParam(value = "auditStatus", defaultValue = "APPROVED_FINAL", required = false) TBoardStatistic auditStatus) { // List<TBoardStatistic> tBoardStatisticList = tBoardStatisticService.list(); // return getResult(tBoardStatisticList); // } // // @ApiImplicitParams(value = { // @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"), // @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"), // @ApiImplicitParam(name = "nameOrCode", value = "名称或编码", paramType = "query", dataType = "String"), // @ApiImplicitParam(name = "startDate", value = "创建时间-开始", paramType = "query", dataType = "String"), // @ApiImplicitParam(name = "endDate", value = "创建时间-结束", paramType = "query", dataType = "String") // }) // @PostMapping("/getPageList") // @RequiresPermissions("t:board:statistic:page") // @ApiOperation(value = "获取展板统计信息表分页列表", notes = "获取展板统计信息表分页列表") // public Map<String, Object> getTBoardStatisticPageList(GenericPageParam genericPageParam) { // LambdaQueryWrapper<TBoardStatistic> queryWrapper = new LambdaQueryWrapper<>(); //// // 对名称或编码模糊查询 //// if (StringUtils.isNotBlank(genericPageParam.getNameOrCode())) { //// queryWrapper.like(TBoardStatistic::getName, genericPageParam.getNameOrCode()); //// } //// // 根据创建时间区间检索 //// if (genericPageParam.getStartDate() != null && genericPageParam.getEndDate() != null) { //// queryWrapper.ge(TBoardStatistic::getCreateTime, genericPageParam.getStartDate().atTime(0, 0, 0)) //// .le(TBoardStatistic::getCreateTime, genericPageParam.getEndDate().atTime(23, 59, 59)); //// } //// // 设置排序规则 //// queryWrapper.orderByDesc(TBoardStatistic::getCreateTime); //// // 设置查询内容 //// queryWrapper.select( //// TBoardStatistic::getId, //// TBoardStatistic::getName, //// TBoardStatistic::getAuditStatus, //// TBoardStatistic::getCreateTime, //// TBoardStatistic::getUpdateTime); // Page<TBoardStatistic> page = this.tBoardStatisticService.page(getPage(), queryWrapper); // for (TBoardStatistic tBoardStatistic : page.getRecords()) { // // } // return getResult(page); // } // // @ApiOperation(value = "获取展板统计信息表详情", notes = "获取展板统计信息表详情") // @ApiImplicitParams({ // @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path") // }) // @GetMapping("/get/{id}") // @RequiresPermissions("t:board:statistic:get:id") // public Map<String, Object> getById(@PathVariable("id") String id) { // TBoardStatistic tBoardStatistic = tBoardStatisticService.getById(id); // return getResult(tBoardStatistic); // } }