Commit 12f2edff authored by yangtianyou's avatar yangtianyou

展板播放记录统计

parent 819f410b
package cn.wisenergy.chnmuseum.party.mapper; package cn.wisenergy.chnmuseum.party.mapper;
import cn.wisenergy.chnmuseum.party.model.TBoardPlayRank; import cn.wisenergy.chnmuseum.party.model.*;
import cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend;
import cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.wisenergy.chnmuseum.party.model.TBoardStatistic;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* <pre> * <pre>
...@@ -27,8 +25,35 @@ public interface TBoardStatisticMapper extends BaseMapper<TBoardStatistic> { ...@@ -27,8 +25,35 @@ public interface TBoardStatisticMapper extends BaseMapper<TBoardStatistic> {
public List<TBoardPlayTrend> getBoardTrendPageList(Page<TBoardPlayTrend> page, TBoardPlayTrend trend); public List<TBoardPlayTrend> getBoardTrendPageList(Page<TBoardPlayTrend> page, TBoardPlayTrend trend);
public List<TDistrictBoardStatistic> getBoardDistrictPageList(Page<TDistrictBoardStatistic> page, TDistrictBoardStatistic trend); public List<TDistrictBoardStatistic> getBoardDistrictPageList(Page<TDistrictBoardStatistic> page, TDistrictBoardStatistic district);
/**
* 获取展板播放总量
* @param survey
* @return
*/
Integer getBoardPlayTotal(TBoardSurvey survey);
/**
* 获取展板总量
* @param survey
* @return
*/
Integer getBoardTotal(TBoardSurvey survey);
/**
* 获取播放展板的机构总量
* @param survey
* @return
*/
Integer getOrganTotal(TBoardSurvey survey);
/**
* 获取互动总量
* @param survey
* @return
*/
Integer getInteractionTotal(TBoardSurvey survey);
List<Map> getInteractionFrequency(Page page,@Param("frequencyDate") String frequencyDate);
} }
...@@ -47,7 +47,7 @@ public class TBoardPlayTrend implements Serializable { ...@@ -47,7 +47,7 @@ public class TBoardPlayTrend implements Serializable {
@TableField("play_number") @TableField("play_number")
private Integer playNumber; private Integer playNumber;
@ApiModelProperty("播放时间 yyyy 统计周期为年 yyyyMM 统计周期为月") @ApiModelProperty("统计时间 yyyy:统计周期为年 yyyyMM:统计周期为月,默认统计当月yyyyMM ")
@TableField(exist = false) @TableField(exist = false)
private String playDate; private String playDate;
......
package cn.wisenergy.chnmuseum.party.model;
import cn.wisenergy.chnmuseum.party.common.validator.groups.Add;
import cn.wisenergy.chnmuseum.party.common.validator.groups.Update;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* <p>
* 展板统计概览
* </p>
*
* @author Danny Lee
* @since 2021-03-26
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "展板统计概览", description = "展板统计概览")
public class TBoardSurvey implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty("统计时间 年:yyyy 或 月: yyyyMM")
private String statisticDate;
@ApiModelProperty("地区")
private String areaId;
@ApiModelProperty("机构id")
private String organId;
@ApiModelProperty("展板总播放量")
private Integer playCnt;
@ApiModelProperty("组织单位量")
private Integer orgCnt;
@ApiModelProperty("展板数量")
private Integer boardCnt;
@ApiModelProperty("互动总量")
private Integer interactionCnt;
}
...@@ -42,6 +42,11 @@ public class TDistrictBoardStatistic implements Serializable { ...@@ -42,6 +42,11 @@ public class TDistrictBoardStatistic implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty("播放次数")
@TableField("play_date")
private String playDate;
@ApiModelProperty("播放次数") @ApiModelProperty("播放次数")
@TableField("play_number") @TableField("play_number")
private Integer playNumber; private Integer playNumber;
......
package cn.wisenergy.chnmuseum.party.service; package cn.wisenergy.chnmuseum.party.service;
import cn.wisenergy.chnmuseum.party.model.TBoardPlayRank; import cn.wisenergy.chnmuseum.party.model.*;
import cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend;
import cn.wisenergy.chnmuseum.party.model.TBoardStatistic;
import cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -50,5 +48,21 @@ public interface TBoardStatisticService extends IService<TBoardStatistic> { ...@@ -50,5 +48,21 @@ public interface TBoardStatisticService extends IService<TBoardStatistic> {
*/ */
Page<TDistrictBoardStatistic> getBoardDistrictPageList(Page<TDistrictBoardStatistic> page, TDistrictBoardStatistic district); Page<TDistrictBoardStatistic> getBoardDistrictPageList(Page<TDistrictBoardStatistic> page, TDistrictBoardStatistic district);
/**
* 获取展板统计概览
* @param survey
* @return
*/
TBoardSurvey getBoardSurvey(@Param("survey") TBoardSurvey survey);
/**
* 获取互动频次统计
* @param page
* @param frequencyDate
* @return
*/
Page getInteractionFrequency(Page page,String frequencyDate);
List getBoardProvincePlayTotalList(String organId);
} }
...@@ -6,6 +6,7 @@ import cn.wisenergy.chnmuseum.party.common.util.RedisUtil; ...@@ -6,6 +6,7 @@ import cn.wisenergy.chnmuseum.party.common.util.RedisUtil;
import cn.wisenergy.chnmuseum.party.core.annotations.RedisLock; import cn.wisenergy.chnmuseum.party.core.annotations.RedisLock;
import cn.wisenergy.chnmuseum.party.model.*; import cn.wisenergy.chnmuseum.party.model.*;
import cn.wisenergy.chnmuseum.party.mapper.TBoardStatisticMapper; import cn.wisenergy.chnmuseum.party.mapper.TBoardStatisticMapper;
import cn.wisenergy.chnmuseum.party.service.TAreaService;
import cn.wisenergy.chnmuseum.party.service.TBoardStatisticService; import cn.wisenergy.chnmuseum.party.service.TBoardStatisticService;
import cn.wisenergy.chnmuseum.party.service.TUserService; import cn.wisenergy.chnmuseum.party.service.TUserService;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
...@@ -43,6 +44,9 @@ public class TBoardStatisticServiceImpl extends ServiceImpl<TBoardStatisticMappe ...@@ -43,6 +44,9 @@ public class TBoardStatisticServiceImpl extends ServiceImpl<TBoardStatisticMappe
@Autowired @Autowired
private TUserService userService; private TUserService userService;
@Autowired
private TAreaService areaService;
@Autowired @Autowired
private RedisUtil redisUtil; private RedisUtil redisUtil;
@Autowired @Autowired
...@@ -86,8 +90,9 @@ public class TBoardStatisticServiceImpl extends ServiceImpl<TBoardStatisticMappe ...@@ -86,8 +90,9 @@ public class TBoardStatisticServiceImpl extends ServiceImpl<TBoardStatisticMappe
} }
@Override @Override
public Page<TBoardPlayTrend> getBoardTrendPageList(Page<TBoardPlayTrend> page, TBoardPlayTrend rank) { public Page<TBoardPlayTrend> getBoardTrendPageList(Page<TBoardPlayTrend> page, TBoardPlayTrend trend) {
page.setRecords(boardStatisticMapper.getBoardTrendPageList(page,rank));
page.setRecords(boardStatisticMapper.getBoardTrendPageList(page,trend));
return page; return page;
} }
...@@ -98,6 +103,48 @@ public class TBoardStatisticServiceImpl extends ServiceImpl<TBoardStatisticMappe ...@@ -98,6 +103,48 @@ public class TBoardStatisticServiceImpl extends ServiceImpl<TBoardStatisticMappe
return page; return page;
} }
@Override
public TBoardSurvey getBoardSurvey(TBoardSurvey survey){
// 获取展板播放量
survey.setPlayCnt(boardStatisticMapper.getBoardPlayTotal(survey));
// 获取展板总数
survey.setBoardCnt(boardStatisticMapper.getBoardTotal(survey));
// 获取播放展板的机构总数
survey.setOrgCnt(boardStatisticMapper.getOrganTotal(survey));
// 获取互动总数
survey.setInteractionCnt(boardStatisticMapper.getInteractionTotal(survey));
return survey;
}
@Override
public Page getInteractionFrequency(Page page,String frequencyDate){
page.setRecords(boardStatisticMapper.getInteractionFrequency(page,frequencyDate));
return page;
}
@Override
public List getBoardProvincePlayTotalList(String organId){
// 获取省份信息
QueryWrapper qw = new QueryWrapper();
qw.eq("type","P");
List<TArea> provlist = areaService.list(qw);
// 遍历省份,统计各省播放量
TBoardSurvey survey = new TBoardSurvey();
String dateStr = DateUtil.getCurrentDate("yyyyMM");
survey.setStatisticDate(dateStr);
survey.setOrganId(organId);
List list = new ArrayList();
// 根据省份查询播放量
for(TArea prov : provlist){
Map map = new HashMap();
survey.setAreaId(prov.getId().toString().substring(0,2));
Integer cnt = boardStatisticMapper.getBoardPlayTotal(survey);
map.put("name",prov.getName());
map.put("value",cnt == null ? 0 : cnt);
list.add(map);
}
return list;
}
/** /**
* 更新展板统计信息 * 更新展板统计信息
......
package cn.wisenergy.chnmuseum.party.web.controller; //package cn.wisenergy.chnmuseum.party.web.controller;
//
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; //import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; //import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; //import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController; //import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController;
import cn.wisenergy.chnmuseum.party.model.TBoardPlayRank; //import cn.wisenergy.chnmuseum.party.model.TBoardPlayRank;
import cn.wisenergy.chnmuseum.party.service.TBoardPlayRankService; //import cn.wisenergy.chnmuseum.party.service.TBoardPlayRankService;
import cn.wisenergy.chnmuseum.party.common.enums.AuditStatusEnum; //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.Add;
import cn.wisenergy.chnmuseum.party.common.validator.groups.Update; //import cn.wisenergy.chnmuseum.party.common.validator.groups.Update;
import cn.wisenergy.chnmuseum.party.common.vo.GenericPageParam; //import cn.wisenergy.chnmuseum.party.common.vo.GenericPageParam;
//
import io.swagger.annotations.Api; //import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; //import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; //import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; //import io.swagger.annotations.ApiOperation;
//
import lombok.extern.slf4j.Slf4j; //import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; //import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions; //import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.validation.annotation.Validated; //import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; //import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller; //import org.springframework.stereotype.Controller;
//
import javax.annotation.Resource; //import javax.annotation.Resource;
import javax.validation.constraints.NotNull; //import javax.validation.constraints.NotNull;
import java.util.List; //import java.util.List;
import java.util.Map; //import java.util.Map;
//
/** ///**
* <pre> // * <pre>
* 展板播放排行 前端控制器 // * 展板播放排行 前端控制器
* </pre> // * </pre>
* // *
* @author Danny Lee // * @author Danny Lee
* @since 2021-03-26 // * @since 2021-03-26
*/ // */
@Slf4j //@Slf4j
@RestController //@RestController
@RequestMapping("/tBoardPlayRank") //@RequestMapping("/tBoardPlayRank")
@Api(tags = {"展板播放排行操作接口"}) //@Api(tags = {"展板播放排行操作接口"})
public class TBoardPlayRankController extends BaseController { //public class TBoardPlayRankController extends BaseController {
//
@Resource // @Resource
private TBoardPlayRankService tBoardPlayRankService; // private TBoardPlayRankService tBoardPlayRankService;
//
@PostMapping("/batchSave") // @PostMapping("/batchSave")
@RequiresPermissions("t:board:play:rank:batch:save") // @RequiresPermissions("t:board:play:rank:batch:save")
@ApiOperation(value = "批量添加展板播放排行", notes = "批量添加展板播放排行") // @ApiOperation(value = "批量添加展板播放排行", notes = "批量添加展板播放排行")
public Map<String, Object> batchSaveTBoardPlayRank(@Validated(value = {Add.class}) List<TBoardPlayRank> tBoardPlayRankList) { // public Map<String, Object> batchSaveTBoardPlayRank(@Validated(value = {Add.class}) List<TBoardPlayRank> tBoardPlayRankList) {
// 保存业务节点信息 // // 保存业务节点信息
boolean result = tBoardPlayRankService.saveBatch(tBoardPlayRankList); // boolean result = tBoardPlayRankService.saveBatch(tBoardPlayRankList);
// 返回操作结果 // // 返回操作结果
if (result) { // if (result) {
return getSuccessResult(); // return getSuccessResult();
} else { // } else {
// 保存失败 // // 保存失败
return getFailResult(); // return getFailResult();
} // }
} // }
//
@PostMapping("/save") // @PostMapping("/save")
@RequiresPermissions("t:board:play:rank:save") // @RequiresPermissions("t:board:play:rank:save")
@ApiOperation(value = "添加展板播放排行", notes = "添加展板播放排行") // @ApiOperation(value = "添加展板播放排行", notes = "添加展板播放排行")
public Map<String, Object> saveTBoardPlayRank(@Validated(value = {Add.class}) TBoardPlayRank tBoardPlayRank) { // public Map<String, Object> saveTBoardPlayRank(@Validated(value = {Add.class}) TBoardPlayRank tBoardPlayRank) {
// 保存业务节点信息 // // 保存业务节点信息
boolean result = tBoardPlayRankService.save(tBoardPlayRank); // boolean result = tBoardPlayRankService.save(tBoardPlayRank);
// 返回操作结果 // // 返回操作结果
if (result) { // if (result) {
return getSuccessResult(); // return getSuccessResult();
} else { // } else {
// 保存失败 // // 保存失败
return getFailResult(); // return getFailResult();
} // }
} // }
//
@PutMapping("/update") // @PutMapping("/update")
@RequiresPermissions("t:board:play:rank:update") // @RequiresPermissions("t:board:play:rank:update")
@ApiOperation(value = "修改展板播放排行信息", notes = "修改展板播放排行信息") // @ApiOperation(value = "修改展板播放排行信息", notes = "修改展板播放排行信息")
public Map<String, Object> updateTBoardPlayRank(@Validated(value = {Update.class}) TBoardPlayRank tBoardPlayRank) { // public Map<String, Object> updateTBoardPlayRank(@Validated(value = {Update.class}) TBoardPlayRank tBoardPlayRank) {
boolean flag = tBoardPlayRankService.updateById(tBoardPlayRank); // boolean flag = tBoardPlayRankService.updateById(tBoardPlayRank);
if (flag) { // if (flag) {
return getSuccessResult(); // return getSuccessResult();
} // }
return getFailResult(); // return getFailResult();
} // }
//
// @PutMapping("/updateAuditStatus/{id}") //// @PutMapping("/updateAuditStatus/{id}")
// @RequiresPermissions("t:board:play:rank:update:audit:status") //// @RequiresPermissions("t:board:play:rank:update:audit:status")
// @ApiOperation(value = "更新展板播放排行审核状态", notes = "更新展板播放排行审核状态") //// @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<TBoardPlayRank> updateWrapper = new UpdateWrapper<>();
//// updateWrapper.eq("id", id);
//// updateWrapper.eq("audit_status", status.name());
//// boolean flag = tBoardPlayRankService.update(updateWrapper);
//// if (flag) {
//// return getSuccessResult();
//// }
//// return getFailResult();
//// }
//
// @DeleteMapping("/delete/{id}")
// @RequiresPermissions("t:board:play:rank:delete")
// @ApiOperation(value = "根据ID删除展板播放排行", notes = "根据ID删除展板播放排行")
// @ApiImplicitParams(value = { // @ApiImplicitParams(value = {
// @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path"), // @ApiImplicitParam(name = "id", value = "标识ID", paramType = "path", dataType = "String")
// @ApiImplicitParam(name = "status", value = "状态", paramType = "query", dataType = "String")
// }) // })
// public Map<String, Object> updateStatus(@NotNull(message = "展板播放排行ID不能为空") @PathVariable("id") String id, @RequestParam("status") AuditStatusEnum status) { // public Map<String, Object> deleteTBoardPlayRank(@PathVariable("id") String id) {
// UpdateWrapper<TBoardPlayRank> updateWrapper = new UpdateWrapper<>(); // boolean result = tBoardPlayRankService.removeById(id);
// updateWrapper.eq("id", id); // if (result) {
// updateWrapper.eq("audit_status", status.name());
// boolean flag = tBoardPlayRankService.update(updateWrapper);
// if (flag) {
// return getSuccessResult(); // return getSuccessResult();
// } // }
// return getFailResult(); // return getFailResult();
// } // }
//
@DeleteMapping("/delete/{id}") // @GetMapping("/getList")
@RequiresPermissions("t:board:play:rank:delete") // @RequiresPermissions("t:board:play:rank:list")
@ApiOperation(value = "根据ID删除展板播放排行", notes = "根据ID删除展板播放排行") // @ApiOperation(value = "获取展板播放排行全部列表(无分页)", notes = "获取展板播放排行全部列表(无分页)")
@ApiImplicitParams(value = { // @ApiImplicitParams(value = {
@ApiImplicitParam(name = "id", value = "标识ID", paramType = "path", dataType = "String") // @ApiImplicitParam(name = "auditStatus", value = "审核状态", paramType = "query", dataType = "String")
}) // })
public Map<String, Object> deleteTBoardPlayRank(@PathVariable("id") String id) { // public Map<String, Object> getTBoardPlayRankList(@RequestParam(value = "auditStatus", defaultValue = "APPROVED_FINAL", required = false) AuditStatusEnum auditStatus) {
boolean result = tBoardPlayRankService.removeById(id); // List<TBoardPlayRank> tBoardPlayRankList = tBoardPlayRankService.list();
if (result) { // return getResult(tBoardPlayRankList);
return getSuccessResult(); // }
} //
return getFailResult(); // @ApiImplicitParams(value = {
} // @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
// @ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"),
@GetMapping("/getList") // @ApiImplicitParam(name = "nameOrCode", value = "名称或编码", paramType = "query", dataType = "String"),
@RequiresPermissions("t:board:play:rank:list") // @ApiImplicitParam(name = "startDate", value = "创建时间-开始", paramType = "query", dataType = "String"),
@ApiOperation(value = "获取展板播放排行全部列表(无分页)", notes = "获取展板播放排行全部列表(无分页)") // @ApiImplicitParam(name = "endDate", value = "创建时间-结束", paramType = "query", dataType = "String")
@ApiImplicitParams(value = { // })
@ApiImplicitParam(name = "auditStatus", value = "审核状态", paramType = "query", dataType = "String") // @PostMapping("/getPageList")
}) // @RequiresPermissions("t:board:play:rank:page")
public Map<String, Object> getTBoardPlayRankList(@RequestParam(value = "auditStatus", defaultValue = "APPROVED_FINAL", required = false) AuditStatusEnum auditStatus) { // @ApiOperation(value = "获取展板播放排行分页列表", notes = "获取展板播放排行分页列表")
List<TBoardPlayRank> tBoardPlayRankList = tBoardPlayRankService.list(); // public Map<String, Object> getTBoardPlayRankPageList(GenericPageParam genericPageParam) {
return getResult(tBoardPlayRankList); // LambdaQueryWrapper<TBoardPlayRank> queryWrapper = new LambdaQueryWrapper<>();
} //// // 对名称或编码模糊查询
//// if (StringUtils.isNotBlank(genericPageParam.getNameOrCode())) {
@ApiImplicitParams(value = { //// queryWrapper.like(TBoardPlayRank::getName, genericPageParam.getNameOrCode());
@ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"), //// }
@ApiImplicitParam(name = "_size", value = "返回条数", paramType = "query", dataType = "Integer"), //// // 根据创建时间区间检索
@ApiImplicitParam(name = "nameOrCode", value = "名称或编码", paramType = "query", dataType = "String"), //// if (genericPageParam.getStartDate() != null && genericPageParam.getEndDate() != null) {
@ApiImplicitParam(name = "startDate", value = "创建时间-开始", paramType = "query", dataType = "String"), //// queryWrapper.ge(TBoardPlayRank::getCreateTime, genericPageParam.getStartDate().atTime(0, 0, 0))
@ApiImplicitParam(name = "endDate", value = "创建时间-结束", paramType = "query", dataType = "String") //// .le(TBoardPlayRank::getCreateTime, genericPageParam.getEndDate().atTime(23, 59, 59));
}) //// }
@PostMapping("/getPageList") //// // 设置排序规则
@RequiresPermissions("t:board:play:rank:page") //// queryWrapper.orderByDesc(TBoardPlayRank::getCreateTime);
@ApiOperation(value = "获取展板播放排行分页列表", notes = "获取展板播放排行分页列表") //// // 设置查询内容
public Map<String, Object> getTBoardPlayRankPageList(GenericPageParam genericPageParam) { //// queryWrapper.select(
LambdaQueryWrapper<TBoardPlayRank> queryWrapper = new LambdaQueryWrapper<>(); //// TBoardPlayRank::getId,
// // 对名称或编码模糊查询 //// TBoardPlayRank::getName,
// if (StringUtils.isNotBlank(genericPageParam.getNameOrCode())) { //// TBoardPlayRank::getAuditStatus,
// queryWrapper.like(TBoardPlayRank::getName, genericPageParam.getNameOrCode()); //// TBoardPlayRank::getCreateTime,
//// TBoardPlayRank::getUpdateTime);
// Page<TBoardPlayRank> page = this.tBoardPlayRankService.page(getPage(), queryWrapper);
// for (TBoardPlayRank tBoardPlayRank : page.getRecords()) {
//
// } // }
// // 根据创建时间区间检索 // return getResult(page);
// if (genericPageParam.getStartDate() != null && genericPageParam.getEndDate() != null) { // }
// queryWrapper.ge(TBoardPlayRank::getCreateTime, genericPageParam.getStartDate().atTime(0, 0, 0)) //
// .le(TBoardPlayRank::getCreateTime, genericPageParam.getEndDate().atTime(23, 59, 59)); // @ApiOperation(value = "获取展板播放排行详情", notes = "获取展板播放排行详情")
// @ApiImplicitParams({
// @ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path")
// })
// @GetMapping("/get/{id}")
// @RequiresPermissions("t:board:play:rank:get:id")
// public Map<String, Object> getById(@PathVariable("id") String id) {
// TBoardPlayRank tBoardPlayRank = tBoardPlayRankService.getById(id);
// return getResult(tBoardPlayRank);
// } // }
// // 设置排序规则 //
// queryWrapper.orderByDesc(TBoardPlayRank::getCreateTime); //}
// // 设置查询内容 //
// queryWrapper.select(
// TBoardPlayRank::getId,
// TBoardPlayRank::getName,
// TBoardPlayRank::getAuditStatus,
// TBoardPlayRank::getCreateTime,
// TBoardPlayRank::getUpdateTime);
Page<TBoardPlayRank> page = this.tBoardPlayRankService.page(getPage(), queryWrapper);
for (TBoardPlayRank tBoardPlayRank : page.getRecords()) {
}
return getResult(page);
}
@ApiOperation(value = "获取展板播放排行详情", notes = "获取展板播放排行详情")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "标识ID", dataType = "String", paramType = "path")
})
@GetMapping("/get/{id}")
@RequiresPermissions("t:board:play:rank:get:id")
public Map<String, Object> getById(@PathVariable("id") String id) {
TBoardPlayRank tBoardPlayRank = tBoardPlayRankService.getById(id);
return getResult(tBoardPlayRank);
}
}
package cn.wisenergy.chnmuseum.party.web.controller; package cn.wisenergy.chnmuseum.party.web.controller;
import cn.wisenergy.chnmuseum.party.common.util.DateUtil; import cn.wisenergy.chnmuseum.party.common.util.DateUtil;
import cn.wisenergy.chnmuseum.party.model.TBoardPlayRank; import cn.wisenergy.chnmuseum.party.model.*;
import cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend;
import cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController; import cn.wisenergy.chnmuseum.party.web.controller.base.BaseController;
import cn.wisenergy.chnmuseum.party.model.TBoardStatistic;
import cn.wisenergy.chnmuseum.party.service.TBoardStatisticService; import cn.wisenergy.chnmuseum.party.service.TBoardStatisticService;
import cn.wisenergy.chnmuseum.party.common.enums.AuditStatusEnum; 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.Add;
...@@ -28,6 +25,8 @@ import org.springframework.web.bind.annotation.*; ...@@ -28,6 +25,8 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -48,7 +47,19 @@ public class TBoardStatisticController extends BaseController { ...@@ -48,7 +47,19 @@ public class TBoardStatisticController extends BaseController {
@Resource @Resource
private TBoardStatisticService tBoardStatisticService; 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 = { @ApiImplicitParams(value = {
@ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"), @ApiImplicitParam(name = "_index", value = "分页起始偏移量", paramType = "query", dataType = "Integer"),
...@@ -74,15 +85,23 @@ public class TBoardStatisticController extends BaseController { ...@@ -74,15 +85,23 @@ public class TBoardStatisticController extends BaseController {
@RequiresPermissions("t:board:statistic:trendPage") @RequiresPermissions("t:board:statistic:trendPage")
@ApiOperation(value = "获取展板播放趋势", notes = "获取展板播放趋势") @ApiOperation(value = "获取展板播放趋势", notes = "获取展板播放趋势")
public Map<String, Object> getBoardTrendPageList(TBoardPlayTrend trend) { public Map<String, Object> getBoardTrendPageList(TBoardPlayTrend trend) {
// 如果查询日志为空,则默认当月
if (StringUtils.isEmpty(trend.getPlayDate())){ if (StringUtils.isEmpty(trend.getPlayDate())){
throw new RuntimeException("统计周期时间不能为空"); trend.setPlayDate(DateUtil.getCurrentDate("yyyyMM"));
} }
Page<TBoardPlayTrend> page = this.tBoardStatisticService.getBoardTrendPageList(getPage(),trend); Page<TBoardPlayTrend> page = this.tBoardStatisticService.getBoardTrendPageList(getPage(),trend);
for (TBoardPlayTrend tBoardStatistic : page.getRecords()) { // 处理数据为展板趋势图
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());
} }
return getResult(page); map.put("dateList",dateList);
map.put("cntList",cntList);
return getResult(map);
} }
...@@ -101,6 +120,49 @@ public class TBoardStatisticController extends BaseController { ...@@ -101,6 +120,49 @@ public class TBoardStatisticController extends BaseController {
} }
return getResult(page); 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") // @PostMapping("/batchSave")
// @RequiresPermissions("t:board:statistic:batch:save") // @RequiresPermissions("t:board:statistic:batch:save")
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.TBoardPlayRankMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.wisenergy.chnmuseum.party.model.TBoardPlayRank">
<id column="id" property="id" />
<result column="board_id" property="boardId" />
<result column="board_name" property="boardName" />
<result column="play_number" property="playNumber" />
<result column="year" property="year" />
<result column="month" property="month" />
<result column="organ_id" property="organId" />
<result column="play_date" property="playDate" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, board_id, board_name, play_number, year, month, organ_id, play_date
</sql>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.TBoardPlayTrendMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.wisenergy.chnmuseum.party.model.TBoardPlayTrend">
<id column="id" property="id" />
<result column="board_id" property="boardId" />
<result column="board_name" property="boardName" />
<result column="play_number" property="playNumber" />
<result column="data_time" property="dataTime" />
<result column="organ_id" property="organId" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, board_id, board_name, play_number, data_time, organ_id
</sql>
</mapper>
...@@ -74,9 +74,121 @@ ...@@ -74,9 +74,121 @@
<select id="getBoardDistrictPageList" resultMap="districtMap"> <select id="getBoardDistrictPageList" resultMap="districtMap">
SELECT a.name area_name,sum(play_number) play_number,count(board_id) board_cnt from t_board_statistic s SELECT a.name area_name,sum(play_number) play_number,count(board_id) board_cnt from t_board_statistic s
left join t_area a on s.area_id = a.id left join t_area a on s.area_id = a.id
<where>
<if test="district.playDate != null and district.playDate.length() == 4">
left(play_date,4) = ${district.playDate}
</if>
<if test="district.playDate != null and district.playDate.length() == 6">
left(play_date,6) = ${district.playDate}
</if>
<if test="district.playDate != null and district.playDate.length() == 6">
play_date = ${district.playDate}
</if>
</where>
GROUP BY area_id GROUP BY area_id
order by sum(play_number) desc,count(board_id) desc order by sum(play_number) desc,count(board_id) desc
</select> </select>
<!-- 获取展板播放总量 -->
<select id="getBoardPlayTotal" parameterType="cn.wisenergy.chnmuseum.party.model.TBoardSurvey" resultType="java.lang.Integer">
SELECT sum(play_number) play_number
from t_board_statistic s
<where>
<if test="statisticDate != null and statisticDate.length() == 4">
and left(play_date,4) = ${statisticDate}
</if>
<if test="statisticDate != null and statisticDate.length() == 6">
and left(play_date,6) = ${statisticDate}
</if>
<if test="statisticDate != null and statisticDate.length() == 8">
and play_date = ${statisticDate}
</if>
<if test="areaId != null">
and area_id like concat(#{areaId}, '%')
</if>
<if test="organId != null">
and organ_id = #{organId}
</if>
</where>
</select>
<!-- 获取展板总量 -->
<select id="getBoardTotal" resultType="java.lang.Integer">
SELECT count( a.board_id )
FROM
( SELECT board_id
FROM t_board_statistic s
<where>
<if test="statisticDate != null and statisticDate.length() == 4">
left(play_date,4) = ${statisticDate}
</if>
<if test="statisticDate != null and statisticDate.length() == 6">
left(play_date,6) = ${statisticDate}
</if>
<if test="statisticDate != null and statisticDate.length() == 8">
play_date = ${statisticDate}
</if>
</where>
GROUP BY board_id ) a
</select>
<!-- 获取播放展板的机构总量 -->
<select id="getOrganTotal" resultType="java.lang.Integer">
SELECT
count( a.organ_id )
FROM
( SELECT organ_id FROM t_board_statistic
<where>
<if test="statisticDate != null and statisticDate.length() == 4">
left(play_date,4) = ${statisticDate}
</if>
<if test="statisticDate != null and statisticDate.length() == 6">
left(play_date,6) = ${statisticDate}
</if>
<if test="statisticDate != null and statisticDate.length() == 8">
play_date = ${statisticDate}
</if>
</where>
GROUP BY organ_id ) a
</select>
<!-- 获取互动总量 -->
<select id="getInteractionTotal" resultType="java.lang.Integer">
select count(id) from t_interaction
<where>
<if test="statisticDate != null and statisticDate.length() == 4">
DATE_FORMAT(create_time,'%Y') = ${statisticDate}
</if>
<if test="statisticDate != null and statisticDate.length() == 6">
DATE_FORMAT(create_time,'%Y%m') = ${statisticDate}
</if>
<if test="statisticDate != null and statisticDate.length() == 8">
DATE_FORMAT(create_time,'%Y%m%d') = ${statisticDate}
</if>
</where>
</select>
<!-- 互动频次统计 -->
<select id="getInteractionFrequency" resultType="java.util.HashMap">
<if test="frequencyDate != null and frequencyDate.length() == 4">
SELECT o.name organName,count(i.organ_id) frequencyCnt
from t_interaction i
left join t_organ o on i.organ_id = o.id
<where>
DATE_FORMAT(i.create_time,'%Y') = ${frequencyDate}
</where>
group by i.organ_id
</if>
<if test="frequencyDate != null and frequencyDate.length() == 6">
SELECT o.name organName,count(i.organ_id) frequencyCnt
from t_interaction i
left join t_organ o on i.organ_id = o.id
<where>
DATE_FORMAT(i.create_time,'%Y%m') = ${frequencyDate}
</where>
group by i.organ_id
</if>
</select>
</mapper> </mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.wisenergy.chnmuseum.party.mapper.TDistrictBoardStatisticMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.wisenergy.chnmuseum.party.model.TDistrictBoardStatistic">
<id column="id" property="id" />
<result column="board_id" property="boardId" />
<result column="board_name" property="boardName" />
<result column="play_number" property="playNumber" />
<result column="year" property="year" />
<result column="month" property="month" />
<result column="organ_id" property="organId" />
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, board_id, board_name, play_number, year, month, organ_id
</sql>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment