Merge branch 'master' of https://git.oa00.com/SWS/wxapp-back
commit
91b78d0197
@ -0,0 +1,40 @@
|
||||
package com.zh.project0512.controller.wxApp;
|
||||
|
||||
import com.zh.project0512.model.dto.RankListDTO;
|
||||
import com.zh.project0512.model.vo.RankListVo;
|
||||
import com.zh.project0512.service.IRankService;
|
||||
import com.zh.project0512.utils.result.ResultList;
|
||||
import com.zh.project0512.utils.result.ResultPageInfo;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 首页排行榜
|
||||
*/
|
||||
@Tag(name = "首页")
|
||||
@RestController
|
||||
@RequestMapping("/wxApp/rank")
|
||||
public class RankController {
|
||||
@Resource
|
||||
IRankService rankService;
|
||||
|
||||
/**
|
||||
* 查询排行榜列表
|
||||
* @param rankListDTO 排行列表DTO
|
||||
* @return 排行榜列表
|
||||
*/
|
||||
@Operation(summary = "排行列表")
|
||||
@PostMapping("/list")
|
||||
public ResultPageInfo<RankListVo> rankList(@Validated RankListDTO rankListDTO){
|
||||
return ResultPageInfo.success(rankService.rankList(rankListDTO),"请求成功");
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package com.zh.project0512.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zh.project0512.model.QywxDepartmentUserLink;
|
||||
import com.zh.project0512.model.dto.RankListDTO;
|
||||
import com.zh.project0512.model.vo.RankListVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface QywxDepartmentUserLinkMapper extends BaseMapper<QywxDepartmentUserLink> {
|
||||
|
||||
List<RankListVo> getUserRankList(@Param("ew") Wrapper<RankListDTO> queryWrapper);
|
||||
|
||||
List<RankListVo> getDepartmentRankList(@Param("ew") QueryWrapper<RankListDTO> queryWrapper2);
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package com.zh.project0512.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.zh.project0512.model.Rank;
|
||||
|
||||
public interface RankMapper extends BaseMapper<Rank> {
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package com.zh.project0512.model;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 企业微信部门用户关联表
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class QywxDepartmentUserLink implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键id
|
||||
*/
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
/**
|
||||
* 用户小程序唯一标识
|
||||
*/
|
||||
private String openid;
|
||||
/**
|
||||
* 部门主键id
|
||||
*/
|
||||
@TableField("departmentId")
|
||||
private Integer departmentId;
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.zh.project0512.service;
|
||||
|
||||
|
||||
import com.zh.project0512.model.QywxDepartmentUserLink;
|
||||
|
||||
public interface IQywxDepartmentUserLinkService {
|
||||
int insert(QywxDepartmentUserLink qywxDepartmentUserLink);
|
||||
|
||||
int delete(String openid);
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.zh.project0512.service;
|
||||
|
||||
import com.zh.project0512.model.dto.RankListDTO;
|
||||
import com.zh.project0512.model.vo.RankListVo;
|
||||
import com.zh.project0512.utils.page.PageInfo;
|
||||
|
||||
|
||||
public interface IRankService {
|
||||
/**
|
||||
* 查询排行榜列表
|
||||
* @param rankListDTO 排行列表DTO
|
||||
* @return 排行列表 Vo
|
||||
*/
|
||||
PageInfo<RankListVo> rankList(RankListDTO rankListDTO);
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package com.zh.project0512.serviceImpl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.zh.project0512.mapper.QywxDepartmentUserLinkMapper;
|
||||
import com.zh.project0512.model.QywxDepartmentUserLink;
|
||||
import com.zh.project0512.service.IQywxDepartmentUserLinkService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Service
|
||||
public class QywxDepartmentUserLinkServiceImpl implements IQywxDepartmentUserLinkService {
|
||||
@Resource
|
||||
QywxDepartmentUserLinkMapper qywxDepartmentUserLinkMapper;
|
||||
|
||||
|
||||
@Override
|
||||
public int insert(QywxDepartmentUserLink qywxDepartmentUserLink) {
|
||||
return qywxDepartmentUserLinkMapper.insert(qywxDepartmentUserLink);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int delete(String openid) {
|
||||
QueryWrapper<QywxDepartmentUserLink> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("openid",openid);
|
||||
return qywxDepartmentUserLinkMapper.delete(queryWrapper);
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package com.zh.project0512.serviceImpl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.zh.project0512.mapper.RankMapper;
|
||||
import com.zh.project0512.model.Rank;
|
||||
import com.zh.project0512.model.dto.RankListDTO;
|
||||
import com.zh.project0512.model.vo.RankListVo;
|
||||
import com.zh.project0512.service.IRankService;
|
||||
import com.zh.project0512.utils.PropertyUtils;
|
||||
import com.zh.project0512.utils.page.PageInfo;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class RankServiceImpl implements IRankService {
|
||||
@Resource
|
||||
RankMapper rankMapper;
|
||||
|
||||
@Override
|
||||
public PageInfo<RankListVo> rankList(RankListDTO rankListDTO) {
|
||||
ArrayList<RankListVo> rankListVoList = new ArrayList<>();
|
||||
Calendar cal = Calendar.getInstance();
|
||||
cal.setTime(new Date());
|
||||
cal.add(Calendar.DAY_OF_MONTH,-1);
|
||||
cal.set(Calendar.DAY_OF_MONTH,1);
|
||||
cal.set(Calendar.HOUR_OF_DAY, 0);
|
||||
cal.set(Calendar.MINUTE, 0);
|
||||
cal.set(Calendar.SECOND, 0);
|
||||
Date time = cal.getTime();
|
||||
|
||||
QueryWrapper<Rank> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("type",rankListDTO.getType());
|
||||
queryWrapper.eq("dateStart",time);
|
||||
Page<Rank> page = new Page<>(rankListDTO.getPageNum(), rankListDTO.getSize());
|
||||
IPage<Rank> rankIPage = rankMapper.selectPage(page, queryWrapper);
|
||||
List<Rank> records = rankIPage.getRecords();
|
||||
if (records != null && records.size()>0){
|
||||
for (Rank record : records) {
|
||||
RankListVo rankListVo = new RankListVo();
|
||||
PropertyUtils.copyProperties(record,rankListVo);
|
||||
rankListVoList.add(rankListVo);
|
||||
}
|
||||
}
|
||||
return new PageInfo<>(rankIPage.getPages(), rankListVoList, rankIPage.getTotal());
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
<?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="com.zh.project0512.mapper.QywxDepartmentUserLinkMapper">
|
||||
<select id="getUserRankList" resultType="com.zh.project0512.model.vo.RankListVo">
|
||||
select u.openid as linkId,u.name as title,qd.name as subtitle,
|
||||
(sum(IFNULL(v.playNum,0))+sum(IFNULL(v.commendNum,0))+sum(IFNULL(v.collectionNum,0))+sum(IFNULL(v.commentNum,0))) as value
|
||||
from user as u
|
||||
LEFT JOIN video as v ON u.id = v.userId
|
||||
LEFT JOIN qywxDepartment as qd on qd.departmentId = u.main_department
|
||||
${ew.SqlSegment}
|
||||
</select>
|
||||
<select id="getDepartmentRankList" resultType="com.zh.project0512.model.vo.RankListVo">
|
||||
select qd.departmentId as linkId,qd.name as title,sum(r.value) as value
|
||||
from qywxDepartment as qd
|
||||
LEFT JOIN qywxDepartmentUserLink as qdul on qd.departmentId = qdul.departmentId
|
||||
LEFT JOIN rank as r on r.linkId=qdul.openid
|
||||
${ew.SqlSegment}
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in new issue