Commit a7ab99c9 by 朱亚洁

日加好友人数

parent 00ffc3da
package com.pcloud.book.group.dto;
import com.pcloud.common.dto.BaseDto;
/**
* @描述:日数量统计
* @作者:zhuyajie
* @创建时间:15:58 2019/9/19
* @版本:1.0
*/
public class DayCountDTO extends BaseDto{
/**
* 日期
*/
private String date;
/**
* 数量
*/
private Integer count;
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public Integer getCount() {
return count;
}
public void setCount(Integer count) {
this.count = count;
}
@Override
public String toString() {
return "DayCountDTO{" +
"date='" + date + '\'' +
", count=" + count +
'}';
}
}
package com.pcloud.book.group.service;
import java.util.List;
import java.util.Map;
import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupUseDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.dto.StoreFlowInfoDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
/**
......@@ -80,5 +86,14 @@ public interface BookGroupService {
@PostMapping("getResourcesBrowseCount")
ResponseEntity<ResponseDto<Map<Long, Long>>> getResourcesBrowseCount(@RequestBody ResourceBrowseParamDto resourceBrowseParamDto);
@ApiOperation("社群书日加好友人数")
@ApiImplicitParams({
@ApiImplicitParam(name = "bookGroupId", value = "bookGroupId", dataType = "long", paramType = "query"),
@ApiImplicitParam(name = "startDate", value = "开始日期", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "endDate", value = "结束日期", dataType = "string", paramType = "query")
})
@GetMapping("getBookGroupFriendsCountByDay")
ResponseEntity<ResponseDto<Map<String, Integer>>> getBookGroupFriendsCountByDay(
@RequestParam("bookGroupId") Long bookGroupId, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate);
}
package com.pcloud.book.group.biz;
import com.pcloud.book.book.dto.BookDto;
import com.pcloud.book.group.dto.*;
import com.pcloud.book.group.dto.AppStatisticsDTO;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.BookGroupStatisticsDTO;
import com.pcloud.book.group.dto.ClassifyKeywordDTO;
import com.pcloud.book.group.dto.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupStoreMyPayDto;
import com.pcloud.book.group.dto.GroupUseDTO;
import com.pcloud.book.group.dto.JoinGroupCipherDTO;
import com.pcloud.book.group.dto.LargeTempletDTO;
import com.pcloud.book.group.dto.OwnAltQrcodeInfoDTO;
import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.QrcodeNameAndProIdDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.vo.*;
import com.pcloud.book.group.entity.BookGroup;
import com.pcloud.book.group.vo.*;
import com.pcloud.book.group.vo.GroupIncomeStaticParamVO;
import com.pcloud.book.group.vo.GroupScanTrendParamVO;
import com.pcloud.book.group.vo.GroupScanTrendVO;
import com.pcloud.book.group.vo.GroupStatisticVO;
import com.pcloud.book.group.vo.ListBookGroup4ChannelParamVO;
import com.pcloud.book.group.vo.ResourcesStatisticVO;
import com.pcloud.book.group.vo.StatisticVO;
import com.pcloud.book.group.vo.TotalRescourceDataVO;
import com.pcloud.book.group.vo.WxGroupStatisticVO;
import com.pcloud.common.dto.StoreFlowInfoDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBean;
......@@ -374,6 +382,12 @@ public interface BookGroupBiz {
*/
Map<Long, Long> getResourcesBrowseCount(ResourceBrowseParamDto resourceBrowseParamDto);
/**
*日加好友人数
* @param bookGroupId
* @param startDate
* @param endDate
* @return
*/
Map<String, Integer> getBookGroupFriendsCountByDay(Long bookGroupId, String startDate, String endDate);
}
......@@ -39,6 +39,7 @@ import com.pcloud.book.group.dto.BookGroupStatisticsDTO;
import com.pcloud.book.group.dto.ClassifyDTO;
import com.pcloud.book.group.dto.ClassifyKeywordDTO;
import com.pcloud.book.group.dto.ClickClassifyDTO;
import com.pcloud.book.group.dto.DayCountDTO;
import com.pcloud.book.group.dto.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupStoreMyPayDto;
import com.pcloud.book.group.dto.GroupUseDTO;
......@@ -1982,5 +1983,20 @@ public class BookGroupBizImpl implements BookGroupBiz {
return resultMap;
}
@Override
public Map<String, Integer> getBookGroupFriendsCountByDay(Long bookGroupId, String startDate, String endDate) {
String startTime = DateUtils.formatDate(DateUtils.getDayStart(DateUtils.getDateByStr(startDate)), DateUtils.DATE_FORMAT_DATETIME);
String endTime = DateUtils.formatDate(DateUtils.getDayEnd(DateUtils.getDateByStr(endDate)), DateUtils.DATE_FORMAT_DATETIME);
List<DayCountDTO> countDTOS = joinGroupCipherDao.getBookGroupFriendsCountByDay(bookGroupId, startTime, endTime);
Map<String, Integer> map = new HashMap<>();
if (ListUtils.isEmpty(countDTOS)) {
return map;
}
for (DayCountDTO dayCountDTO : countDTOS) {
map.put(dayCountDTO.getDate(), dayCountDTO.getCount());
}
return map;
}
}
......@@ -479,6 +479,8 @@ public class BookGroupClassifyBizImpl implements BookGroupClassifyBiz {
classifyAndGroupCountVO.setClassifyCount(statistic.get(bookGroupId).getClassifyCount());
}
classifyAndGroupCountVO.setGroupCount(groupCount);
Integer friendsCount = joinGroupCipherDao.getFriendsCountByBookGroup(bookGroupId);
classifyAndGroupCountVO.setFriendsCount(friendsCount);
return classifyAndGroupCountVO;
}
......
package com.pcloud.book.group.dao;
import com.pcloud.book.group.dto.DayCountDTO;
import com.pcloud.book.group.dto.JoinGroupCipherDTO;
import com.pcloud.book.group.entity.JoinGroupCipher;
import com.pcloud.common.core.dao.BaseDao;
......@@ -38,4 +39,13 @@ public interface JoinGroupCipherDao extends BaseDao<JoinGroupCipher> {
* @return
*/
public Integer getFriendsCountByBookGroup(Long bookGroupId);
/**
* 日加好友数量
* @param bookGroupId
* @param startTime
* @param endTime
* @return
*/
List<DayCountDTO> getBookGroupFriendsCountByDay(Long bookGroupId, String startTime, String endTime);
}
package com.pcloud.book.group.dao.impl;
import com.pcloud.book.group.dao.JoinGroupCipherDao;
import com.pcloud.book.group.dto.DayCountDTO;
import com.pcloud.book.group.dto.JoinGroupCipherDTO;
import com.pcloud.book.group.entity.JoinGroupCipher;
import com.pcloud.common.core.dao.BaseDaoImpl;
......@@ -92,4 +93,13 @@ public class JoinGroupCipherDaoImpl extends BaseDaoImpl<JoinGroupCipher> impleme
public Integer getFriendsCountByBookGroup(Long bookGroupId) {
return getSessionTemplate().selectOne(getStatement("getFriendsCountByBookGroup"), bookGroupId);
}
@Override
public List<DayCountDTO> getBookGroupFriendsCountByDay(Long bookGroupId, String startTime, String endTime) {
Map<String, Object> map = new HashMap<>();
map.put("bookGroupId", bookGroupId);
map.put("startTime", startTime);
map.put("endTime", endTime);
return getSessionTemplate().selectList(getStatement("getBookGroupFriendsCountByDay"), map);
}
}
package com.pcloud.book.group.service.impl;
import java.util.List;
import java.util.Map;
import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.dto.GroupCipherDTO;
import com.pcloud.book.group.dto.GroupUseDTO;
import io.swagger.annotations.ApiOperation;
import com.pcloud.book.group.dto.PersonalQrcodeDTO;
import com.pcloud.book.group.dto.ResourceBrowseParamDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import com.pcloud.book.group.biz.BookGroupBiz;
import com.pcloud.book.group.dto.BookGroupDTO;
import com.pcloud.book.group.service.BookGroupService;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.dto.StoreFlowInfoDto;
......@@ -21,6 +13,21 @@ import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.page.PageBeanNew;
import com.pcloud.common.utils.ResponseHandleUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
import io.swagger.annotations.ApiOperation;
/**
* Description 社群书内部接口实现类
* Created by PENG on 2019/5/14.
......@@ -142,7 +149,13 @@ public class BookGroupServiceImpl implements BookGroupService {
@PostMapping("getResourcesBrowseCount")
public ResponseEntity<ResponseDto<Map<Long, Long>>> getResourcesBrowseCount(@RequestBody ResourceBrowseParamDto resourceBrowseParamDto) {
return ResponseHandleUtil.toResponse(bookGroupBiz.getResourcesBrowseCount(resourceBrowseParamDto));
}
@GetMapping("getBookGroupFriendsCountByDay")
public ResponseEntity<ResponseDto<Map<String, Integer>>> getBookGroupFriendsCountByDay(
@RequestParam("bookGroupId") Long bookGroupId, @RequestParam("startDate") String startDate, @RequestParam("endDate") String endDate) {
Map<String, Integer> map = bookGroupBiz.getBookGroupFriendsCountByDay(bookGroupId, startDate, endDate);
return ResponseHandleUtil.toResponse(map);
}
}
......@@ -24,6 +24,9 @@ public class ClassifyAndGroupCountVO implements Serializable {
@ApiModelProperty("群数量")
private Integer groupCount;
@ApiModelProperty("好友人数")
private Integer friendsCount;
public Long getBookGroupId() {
return bookGroupId;
}
......@@ -48,12 +51,21 @@ public class ClassifyAndGroupCountVO implements Serializable {
this.groupCount = groupCount;
}
public Integer getFriendsCount() {
return friendsCount;
}
public void setFriendsCount(Integer friendsCount) {
this.friendsCount = friendsCount;
}
@Override
public String toString() {
return "ClassifyAndGroupCountVO{" +
"bookGroupId=" + bookGroupId +
", classifyCount=" + classifyCount +
", groupCount=" + groupCount +
", friendsCount=" + friendsCount +
'}';
}
}
......@@ -138,4 +138,19 @@
AND has_used = 1
</select>
<select id="getBookGroupFriendsCountByDay" parameterType="map" resultType="com.pcloud.book.group.dto.DayCountDTO">
SELECT
COUNT(DISTINCT wx_id) count,
DATE_FORMAT(create_time, "%Y-%m-%d") date
FROM
join_group_cipher
WHERE
book_group_id = #{bookGroupId}
AND has_used = 1
AND create_time >= #{startTime}
AND create_time &lt;= #{endTime}
GROUP BY
DATE_FORMAT(create_time, "%Y-%m-%d")
</select>
</mapper>
\ No newline at end of file
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