db58f432 by ja

添加统计用接口

1 parent aec184ec
1 package com.example.controller;
2
3 import com.example.mapper.ShareLogMapper;
4 import com.example.support.model.MessageEntity;
5 import org.apache.commons.lang3.StringUtils;
6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.web.bind.annotation.RequestMapping;
8 import org.springframework.web.bind.annotation.RequestParam;
9 import org.springframework.web.bind.annotation.RestController;
10
11 import javax.servlet.http.HttpServletRequest;
12 import java.text.SimpleDateFormat;
13 import java.util.Date;
14 import java.util.HashMap;
15 import java.util.Map;
16
17 /**
18 * Created by JA on 17/7/3.
19 */
20 @RequestMapping("/kmr/statistics")
21 @RestController
22 public class StatisticsController {
23
24 @Autowired
25 private ShareLogMapper shareLogMapper;
26
27 private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
28
29 @RequestMapping
30 public MessageEntity statistics(HttpServletRequest request,@RequestParam(required = false)String time) {
31 MessageEntity.Builder builder = new MessageEntity.Builder(request);
32 if(StringUtils.isBlank(time)){
33 Date date = new Date();
34 time = this.sdf.format(date);
35 }
36 String startDate = time + " 00:00:00";
37 String endDate = time + " 23:59:59";
38 int pv = this.shareLogMapper.findPVByDay(startDate, endDate);
39 int uv = this.shareLogMapper.findUVByDay(startDate, endDate);
40 int share = this.shareLogMapper.findShareByDay(startDate, endDate);
41 int img = this.shareLogMapper.findImgByDay(startDate, endDate);
42 Map<String,Object> map = new HashMap<>();
43 map.put("pv",pv);
44 map.put("uv",uv);
45 map.put("share",share);
46 map.put("img",img);
47 return builder.success(true).code("2000").content(map).create();
48 }
49
50 }
...@@ -11,6 +11,12 @@ public interface ShareLogMapper { ...@@ -11,6 +11,12 @@ public interface ShareLogMapper {
11 11
12 boolean create(ShareLog shareLog); 12 boolean create(ShareLog shareLog);
13 13
14 int findPVByDay(@Param("startDate") String startDate,@Param("endDate") String endDate);
15 int findUVByDay(@Param("startDate") String startDate,@Param("endDate") String endDate);
16 int findShareByDay(@Param("startDate") String startDate,@Param("endDate") String endDate);
17 int findImgByDay(@Param("startDate") String startDate,@Param("endDate") String endDate);
18
19
14 long countByDay(@Param("openid") String openid, @Param("startDate") String startDate, 20 long countByDay(@Param("openid") String openid, @Param("startDate") String startDate,
15 @Param("endDate") String endDate); 21 @Param("endDate") String endDate);
16 22
......
...@@ -29,5 +29,25 @@ ...@@ -29,5 +29,25 @@
29 ) 29 )
30 </insert> 30 </insert>
31 31
32 <select id="findPVByDay" resultType="int">
33 SELECT count(*) c FROM `t_kmr_stat_log` where `create_at` BETWEEN #{startDate} and #{endDate};
34 </select>
35
36 <select id="findUVByDay" resultType="int">
37 SELECT count(DISTINCT `openid` ) c FROM `t_kmr_stat_log` where `create_at` BETWEEN #{startDate} and #{endDate};
38 </select>
39
40 <select id="findShareByDay" resultType="int">
41 select count(*) c
42 from `t_kmr_share_log`
43 where share_time BETWEEN #{startDate} and #{endDate}
44 </select>
45
46 <select id="findImgByDay" resultType="int">
47 SELECT count(*) c FROM `t_kmr_img_info` where `create_at` BETWEEN #{startDate} and #{endDate};
48 </select>
49
50
51
32 52
33 </mapper> 53 </mapper>
...\ No newline at end of file ...\ No newline at end of file
......