张延森 4 years ago
parent
commit
47b42910d3
36 changed files with 363 additions and 27 deletions
  1. 16
    0
      src/main/java/com/yunzhi/demo/controller/StatisticController.java
  2. 27
    0
      src/main/java/com/yunzhi/demo/controller/TaPersonController.java
  3. 4
    6
      src/main/java/com/yunzhi/demo/controller/TaPointsLogController.java
  4. 30
    5
      src/main/java/com/yunzhi/demo/controller/TaPostSaveController.java
  5. 2
    2
      src/main/java/com/yunzhi/demo/controller/TaPostTestController.java
  6. 16
    1
      src/main/java/com/yunzhi/demo/controller/TaReadLogController.java
  7. 3
    0
      src/main/java/com/yunzhi/demo/controller/TaStudentController.java
  8. 2
    1
      src/main/java/com/yunzhi/demo/entity/TaPersonData.java
  9. 5
    0
      src/main/java/com/yunzhi/demo/entity/TaPointsLog.java
  10. 4
    0
      src/main/java/com/yunzhi/demo/entity/TaPost.java
  11. 5
    0
      src/main/java/com/yunzhi/demo/entity/TaPostSave.java
  12. 8
    0
      src/main/java/com/yunzhi/demo/entity/TaReadLog.java
  13. 4
    0
      src/main/java/com/yunzhi/demo/entity/TaStudent.java
  14. 4
    0
      src/main/java/com/yunzhi/demo/mapper/TaPersonDataMapper.java
  15. 2
    0
      src/main/java/com/yunzhi/demo/mapper/TaPointsLogMapper.java
  16. 5
    1
      src/main/java/com/yunzhi/demo/mapper/TaPostDataMapper.java
  17. 5
    1
      src/main/java/com/yunzhi/demo/mapper/TaReadLogMapper.java
  18. 5
    0
      src/main/java/com/yunzhi/demo/mapper/TaStudentMapper.java
  19. 3
    0
      src/main/java/com/yunzhi/demo/service/ITaPersonDataService.java
  20. 3
    0
      src/main/java/com/yunzhi/demo/service/ITaPointsLogService.java
  21. 4
    0
      src/main/java/com/yunzhi/demo/service/ITaPostDataService.java
  22. 2
    0
      src/main/java/com/yunzhi/demo/service/ITaReadLogService.java
  23. 5
    0
      src/main/java/com/yunzhi/demo/service/ITaStudentService.java
  24. 13
    0
      src/main/java/com/yunzhi/demo/service/impl/TaPersonDataServiceImpl.java
  25. 19
    3
      src/main/java/com/yunzhi/demo/service/impl/TaPointsLogServiceImpl.java
  26. 30
    4
      src/main/java/com/yunzhi/demo/service/impl/TaPostDataServiceImpl.java
  27. 6
    0
      src/main/java/com/yunzhi/demo/service/impl/TaReadLogServiceImpl.java
  28. 8
    0
      src/main/java/com/yunzhi/demo/service/impl/TaStudentServiceImpl.java
  29. 28
    0
      src/main/java/com/yunzhi/demo/vo/ExportStatisPerson.java
  30. 5
    0
      src/main/java/com/yunzhi/demo/vo/StatisPerson.java
  31. 12
    0
      src/main/resources/mapper/TaPersonDataMapper.xml
  32. 14
    0
      src/main/resources/mapper/TaPointsLogMapper.xml
  33. 12
    0
      src/main/resources/mapper/TaPostDataMapper.xml
  34. 2
    1
      src/main/resources/mapper/TaPostSaveMapper.xml
  35. 24
    2
      src/main/resources/mapper/TaReadLogMapper.xml
  36. 26
    0
      src/main/resources/mapper/TaStudentMapper.xml

+ 16
- 0
src/main/java/com/yunzhi/demo/controller/StatisticController.java View File

2
 
2
 
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
+import com.sun.deploy.net.HttpResponse;
5
 import com.yunzhi.demo.common.BaseController;
6
 import com.yunzhi.demo.common.BaseController;
7
+import com.yunzhi.demo.common.ExcelUtils;
6
 import com.yunzhi.demo.common.ResponseBean;
8
 import com.yunzhi.demo.common.ResponseBean;
7
 import com.yunzhi.demo.entity.TaPost;
9
 import com.yunzhi.demo.entity.TaPost;
8
 import com.yunzhi.demo.service.*;
10
 import com.yunzhi.demo.service.*;
11
+import com.yunzhi.demo.vo.ExportStatisPerson;
9
 import com.yunzhi.demo.vo.StatisPerson;
12
 import com.yunzhi.demo.vo.StatisPerson;
10
 import com.yunzhi.demo.vo.StatisPost;
13
 import com.yunzhi.demo.vo.StatisPost;
11
 import io.swagger.annotations.Api;
14
 import io.swagger.annotations.Api;
16
 import org.springframework.web.bind.annotation.RequestParam;
19
 import org.springframework.web.bind.annotation.RequestParam;
17
 import org.springframework.web.bind.annotation.RestController;
20
 import org.springframework.web.bind.annotation.RestController;
18
 
21
 
22
+import javax.servlet.http.HttpServletResponse;
23
+import java.io.IOException;
19
 import java.util.List;
24
 import java.util.List;
20
 import java.util.Map;
25
 import java.util.Map;
21
 
26
 
108
 
113
 
109
         return ResponseBean.success(personList);
114
         return ResponseBean.success(personList);
110
     }
115
     }
116
+
117
+    @GetMapping("/admin/export/statis/student-data")
118
+    @ApiOperation(value="学生统计", notes = "学生统计", httpMethod = "GET", response = ResponseBean.class)
119
+    public void exportPersonData(@ApiParam(value = "姓名") @RequestParam(value = "name", required = false) String name,
120
+                                 @ApiParam(value = "学校") @RequestParam(value = "schoolId", required = false) String schoolId,
121
+                                 @ApiParam(value = "专业") @RequestParam(value = "specialtyId", required = false) String specialtyId,
122
+                                 HttpServletResponse response) throws IOException {
123
+        List<ExportStatisPerson> personList = iTaStudentService.exportStudentStatis(name, schoolId, specialtyId);
124
+
125
+        ExcelUtils.flush(response, ExportStatisPerson.class, personList, "阅读统计");
126
+    }
111
 }
127
 }

+ 27
- 0
src/main/java/com/yunzhi/demo/controller/TaPersonController.java View File

1
 package com.yunzhi.demo.controller;
1
 package com.yunzhi.demo.controller;
2
 
2
 
3
 import com.yunzhi.demo.common.BaseController;
3
 import com.yunzhi.demo.common.BaseController;
4
+import com.yunzhi.demo.common.Constants;
5
+import com.yunzhi.demo.common.ResponseBean;
6
+import com.yunzhi.demo.entity.TaPerson;
7
+import com.yunzhi.demo.entity.TaPersonData;
4
 import com.yunzhi.demo.service.*;
8
 import com.yunzhi.demo.service.*;
5
 import io.swagger.annotations.Api;
9
 import io.swagger.annotations.Api;
10
+import io.swagger.annotations.ApiOperation;
11
+import io.swagger.annotations.ApiParam;
6
 import org.slf4j.Logger;
12
 import org.slf4j.Logger;
7
 import org.slf4j.LoggerFactory;
13
 import org.slf4j.LoggerFactory;
8
 import org.springframework.beans.factory.annotation.Autowired;
14
 import org.springframework.beans.factory.annotation.Autowired;
27
     @Autowired
33
     @Autowired
28
     ITaPersonService iTaPersonService;
34
     ITaPersonService iTaPersonService;
29
 
35
 
36
+    @Autowired
37
+    ITaPersonDataService iTaPersonDataService;
38
+
39
+    /**
40
+     * 根据id查询对象
41
+     * @param id  实体ID
42
+     */
43
+    @RequestMapping(value="/admin/person/{id}",method= RequestMethod.GET)
44
+    @ApiOperation(value="查询用户详情", notes = "查询用户详情", httpMethod = "GET", response = ResponseBean.class)
45
+    public ResponseBean taPersonDataGet(@ApiParam("用户ID") @PathVariable String id) throws Exception{
46
+        TaPerson taPerson = iTaPersonService.getById(id);
47
+
48
+        if (null == taPerson || Constants.STATUS_DELETED.equals(taPerson.getStatus())) {
49
+            throw new Exception("未找到人员信息");
50
+        }
51
+
52
+        TaPersonData taPersonData = iTaPersonDataService.getById(id);
53
+        taPerson.setPersonData(taPersonData);
54
+
55
+        return ResponseBean.success(taPerson);
56
+    }
30
 }
57
 }

+ 4
- 6
src/main/java/com/yunzhi/demo/controller/TaPointsLogController.java View File

46
      * @param pageSize
46
      * @param pageSize
47
      * @return
47
      * @return
48
      */
48
      */
49
-    @RequestMapping(value="/taPointsLog",method= RequestMethod.GET)
49
+    @RequestMapping(value="/admin/points-log",method= RequestMethod.GET)
50
     @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
50
     @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
51
     public ResponseBean taPointsLogList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
51
     public ResponseBean taPointsLogList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
52
-									 @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize) throws Exception{
52
+                                        @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
53
+                                        @ApiParam("人员ID") @RequestParam(value ="personId") String personId) throws Exception{
53
 
54
 
54
 		    IPage<TaPointsLog> pg = new Page<>(pageNum, pageSize);
55
 		    IPage<TaPointsLog> pg = new Page<>(pageNum, pageSize);
55
-            QueryWrapper<TaPointsLog> queryWrapper = new QueryWrapper<>();
56
-            queryWrapper.orderByDesc("create_date");
57
-
58
-            IPage<TaPointsLog> result = iTaPointsLogService.page(pg, queryWrapper);
56
+            IPage<TaPointsLog> result = iTaPointsLogService.getPointsListBy(pg, personId);
59
             return ResponseBean.success(result);
57
             return ResponseBean.success(result);
60
     }
58
     }
61
 
59
 

+ 30
- 5
src/main/java/com/yunzhi/demo/controller/TaPostSaveController.java View File

8
 import com.yunzhi.demo.common.ResponseBean;
8
 import com.yunzhi.demo.common.ResponseBean;
9
 import com.yunzhi.demo.entity.TaPerson;
9
 import com.yunzhi.demo.entity.TaPerson;
10
 import com.yunzhi.demo.entity.TaPost;
10
 import com.yunzhi.demo.entity.TaPost;
11
+import com.yunzhi.demo.service.ITaPersonDataService;
12
+import com.yunzhi.demo.service.ITaPostDataService;
11
 import io.swagger.annotations.Api;
13
 import io.swagger.annotations.Api;
12
 import io.swagger.annotations.ApiOperation;
14
 import io.swagger.annotations.ApiOperation;
13
 import io.swagger.annotations.ApiParam;
15
 import io.swagger.annotations.ApiParam;
44
     @Autowired
46
     @Autowired
45
     public ITaPostSaveService iTaPostSaveService;
47
     public ITaPostSaveService iTaPostSaveService;
46
 
48
 
49
+    @Autowired
50
+    public ITaPostDataService iTaPostDataService;
51
+
52
+    @Autowired
53
+    public ITaPersonDataService iTaPersonDataService;
54
+
47
 
55
 
48
     /**
56
     /**
49
      * 分页查询列表
57
      * 分页查询列表
51
      * @param pageSize
59
      * @param pageSize
52
      * @return
60
      * @return
53
      */
61
      */
54
-    @RequestMapping(value="/ma/post-save",method= RequestMethod.GET)
62
+    @RequestMapping(value="/{client}/post-save",method= RequestMethod.GET)
55
     @ApiOperation(value="我的收藏", notes = "小程序我的收藏列表", httpMethod = "GET", response = ResponseBean.class)
63
     @ApiOperation(value="我的收藏", notes = "小程序我的收藏列表", httpMethod = "GET", response = ResponseBean.class)
56
-    public ResponseBean taPostSaveList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
57
-                                       @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize) throws Exception{
64
+    public ResponseBean taPostSaveList(@ApiParam(value = "客户端", allowableValues = "ma,admin") @PathVariable String client,
65
+                                       @ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
66
+                                       @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
67
+                                       @ApiParam("人员ID") @RequestParam(required = false) String personId) throws Exception {
58
 
68
 
59
         IPage<TaPost> pg = new Page<>(pageNum, pageSize);
69
         IPage<TaPost> pg = new Page<>(pageNum, pageSize);
60
-        TaPerson taPerson = getCurrentPerson();
70
+        if ("ma".equals(client)) {
71
+            TaPerson taPerson = getCurrentPerson();
72
+            personId = taPerson.getPersonId();
73
+        }
61
 
74
 
62
-        IPage<TaPost> result = iTaPostSaveService.getMyPostSaveList(pg, taPerson.getPersonId());
75
+        IPage<TaPost> result = iTaPostSaveService.getMyPostSaveList(pg, personId);
63
         return ResponseBean.success(result);
76
         return ResponseBean.success(result);
64
     }
77
     }
65
 
78
 
83
         }
96
         }
84
 
97
 
85
         if (iTaPostSaveService.save(taPostSave)){
98
         if (iTaPostSaveService.save(taPostSave)){
99
+
100
+            // 更新文章收藏
101
+            iTaPostDataService.updateSaveData(postId);
102
+            // 更新人员收藏
103
+            iTaPersonDataService.updateSaveData(taPerson.getPersonId());
104
+
86
             return ResponseBean.success(taPostSave);
105
             return ResponseBean.success(taPostSave);
87
         }else {
106
         }else {
88
             return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
107
             return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
107
         taPostSave.setUpdateDate(LocalDateTime.now());
126
         taPostSave.setUpdateDate(LocalDateTime.now());
108
 
127
 
109
         if(iTaPostSaveService.updateById(taPostSave)){
128
         if(iTaPostSaveService.updateById(taPostSave)){
129
+
130
+            // 更新文章收藏
131
+            iTaPostDataService.subSaveData(postId);
132
+            // 更新人员收藏
133
+            iTaPersonDataService.subSaveData(taPerson.getPersonId());
134
+
110
             return ResponseBean.success("success");
135
             return ResponseBean.success("success");
111
         }else {
136
         }else {
112
             return ResponseBean.error("取消我的收藏失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
137
             return ResponseBean.error("取消我的收藏失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);

+ 2
- 2
src/main/java/com/yunzhi/demo/controller/TaPostTestController.java View File

85
         }
85
         }
86
 
86
 
87
         if (!allRight) {
87
         if (!allRight) {
88
-            return ResponseBean.error("答题失败", ResponseBean.ERROR_UNAVAILABLE, postTestList);
88
+            return ResponseBean.error("部分题目作答错误, 请再接再厉!", ResponseBean.ERROR_UNAVAILABLE, postTestList);
89
         }
89
         }
90
 
90
 
91
         // 奖励积分
91
         // 奖励积分
92
         iTaPointsLogService.sendPoints(taPost, getCurrentPerson());
92
         iTaPointsLogService.sendPoints(taPost, getCurrentPerson());
93
 
93
 
94
-        return ResponseBean.success("答题全对");
94
+        return ResponseBean.success("恭喜你,全部作答正确!");
95
     }
95
     }
96
 
96
 
97
 
97
 

+ 16
- 1
src/main/java/com/yunzhi/demo/controller/TaReadLogController.java View File

42
     @Autowired
42
     @Autowired
43
     public ITaReadLogService iTaReadLogService;
43
     public ITaReadLogService iTaReadLogService;
44
 
44
 
45
-
46
     /**
45
     /**
47
      * 分页查询列表
46
      * 分页查询列表
48
      * @param pageNum
47
      * @param pageNum
59
         return ResponseBean.success(result);
58
         return ResponseBean.success(result);
60
     }
59
     }
61
 
60
 
61
+    /**
62
+     * 分页查询列表
63
+     * @param pageNum
64
+     * @param pageSize
65
+     * @return
66
+     */
67
+    @RequestMapping(value="/admin/read-log",method= RequestMethod.GET)
68
+    @ApiOperation(value="我的阅读记录", notes = "我的阅读记录", httpMethod = "GET", response = ResponseBean.class)
69
+    public ResponseBean getReadLogList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
70
+                                      @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
71
+                                      @ApiParam("人员ID") @RequestParam("personId") String personId) throws Exception{
72
+        IPage<TaReadLog> pg = new Page<>(pageNum, pageSize);
73
+        IPage<TaReadLog> result = iTaReadLogService.getReadList(pg, personId);
74
+        return ResponseBean.success(result);
75
+    }
76
+
62
     /**
77
     /**
63
      * 保存对象
78
      * 保存对象
64
      * @param taReadLog 实体对象
79
      * @param taReadLog 实体对象

+ 3
- 0
src/main/java/com/yunzhi/demo/controller/TaStudentController.java View File

148
             throw new Exception("验证人员信息失败, 请退出重试");
148
             throw new Exception("验证人员信息失败, 请退出重试");
149
         }
149
         }
150
 
150
 
151
+        TaPersonData taPersonData = iTaPersonDataService.getById(taPerson.getPersonId());
152
+        taPerson.setPersonData(taPersonData);
153
+
151
         // 先找映射ID的
154
         // 先找映射ID的
152
         TaStudent taStudent = iTaStudentService.getByPersonId(taPerson.getPersonId());
155
         TaStudent taStudent = iTaStudentService.getByPersonId(taPerson.getPersonId());
153
         if (null == taStudent) {
156
         if (null == taStudent) {

+ 2
- 1
src/main/java/com/yunzhi/demo/entity/TaPersonData.java View File

41
     @ApiModelProperty(value = "阅读文章")
41
     @ApiModelProperty(value = "阅读文章")
42
     private Integer readedNum;
42
     private Integer readedNum;
43
 
43
 
44
-
44
+    @ApiModelProperty(value = "学习文章")
45
+    private Integer studiedNum;
45
 }
46
 }

+ 5
- 0
src/main/java/com/yunzhi/demo/entity/TaPointsLog.java View File

1
 package com.yunzhi.demo.entity;
1
 package com.yunzhi.demo.entity;
2
 
2
 
3
 import com.baomidou.mybatisplus.annotation.IdType;
3
 import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import java.time.LocalDateTime;
6
 import java.time.LocalDateTime;
6
 import java.io.Serializable;
7
 import java.io.Serializable;
48
     @ApiModelProperty(value = "资源ID")
49
     @ApiModelProperty(value = "资源ID")
49
     private String targetId;
50
     private String targetId;
50
 
51
 
52
+    @ApiModelProperty("资源标题")
53
+    @TableField(exist = false)
54
+    private String targetName;
55
+
51
     @ApiModelProperty(value = "状态")
56
     @ApiModelProperty(value = "状态")
52
     private Integer status;
57
     private Integer status;
53
 
58
 

+ 4
- 0
src/main/java/com/yunzhi/demo/entity/TaPost.java View File

91
     @ApiModelProperty(value = "更新时间")
91
     @ApiModelProperty(value = "更新时间")
92
     private LocalDateTime updateDate;
92
     private LocalDateTime updateDate;
93
 
93
 
94
+    @ApiModelProperty(value = "收藏时间")
95
+    @TableField(exist = false)
96
+    private LocalDateTime savedDate;
97
+
94
     @ApiModelProperty(value = "统计数据")
98
     @ApiModelProperty(value = "统计数据")
95
     @TableField(exist = false)
99
     @TableField(exist = false)
96
     private TaPostData postData;
100
     private TaPostData postData;

+ 5
- 0
src/main/java/com/yunzhi/demo/entity/TaPostSave.java View File

1
 package com.yunzhi.demo.entity;
1
 package com.yunzhi.demo.entity;
2
 
2
 
3
 import com.baomidou.mybatisplus.annotation.IdType;
3
 import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import java.time.LocalDateTime;
6
 import java.time.LocalDateTime;
6
 import java.io.Serializable;
7
 import java.io.Serializable;
36
     @ApiModelProperty(value = "文章ID")
37
     @ApiModelProperty(value = "文章ID")
37
     private String postId;
38
     private String postId;
38
 
39
 
40
+    @ApiModelProperty(value = "文章标题")
41
+    @TableField(exist = false)
42
+    private String postName;
43
+
39
     @ApiModelProperty(value = "状态")
44
     @ApiModelProperty(value = "状态")
40
     private Integer status;
45
     private Integer status;
41
 
46
 

+ 8
- 0
src/main/java/com/yunzhi/demo/entity/TaReadLog.java View File

1
 package com.yunzhi.demo.entity;
1
 package com.yunzhi.demo.entity;
2
 
2
 
3
 import com.baomidou.mybatisplus.annotation.IdType;
3
 import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import java.time.LocalDateTime;
6
 import java.time.LocalDateTime;
6
 import java.io.Serializable;
7
 import java.io.Serializable;
36
     @ApiModelProperty(value = "文章ID")
37
     @ApiModelProperty(value = "文章ID")
37
     private String postId;
38
     private String postId;
38
 
39
 
40
+    @ApiModelProperty(value = "文章名称")
41
+    @TableField(exist = false)
42
+    private String postName;
43
+
39
     @ApiModelProperty(value = "标准时长 单位秒")
44
     @ApiModelProperty(value = "标准时长 单位秒")
40
     private Integer requireTimes;
45
     private Integer requireTimes;
41
 
46
 
42
     @ApiModelProperty(value = "时长 单位秒")
47
     @ApiModelProperty(value = "时长 单位秒")
43
     private Integer duration;
48
     private Integer duration;
44
 
49
 
50
+    @ApiModelProperty(value = "是否学习完毕")
51
+    private Boolean isStudied;
52
+
45
     @ApiModelProperty(value = "状态")
53
     @ApiModelProperty(value = "状态")
46
     private Integer status;
54
     private Integer status;
47
 
55
 

+ 4
- 0
src/main/java/com/yunzhi/demo/entity/TaStudent.java View File

1
 package com.yunzhi.demo.entity;
1
 package com.yunzhi.demo.entity;
2
 
2
 
3
+import com.alibaba.excel.annotation.ExcelProperty;
3
 import com.baomidou.mybatisplus.annotation.IdType;
4
 import com.baomidou.mybatisplus.annotation.IdType;
4
 import com.baomidou.mybatisplus.annotation.TableField;
5
 import com.baomidou.mybatisplus.annotation.TableField;
5
 import com.baomidou.mybatisplus.annotation.TableId;
6
 import com.baomidou.mybatisplus.annotation.TableId;
36
     private String personId;
37
     private String personId;
37
 
38
 
38
     @ApiModelProperty(value = "姓名")
39
     @ApiModelProperty(value = "姓名")
40
+    @ExcelProperty(value = "姓名", index = 1)
39
     private String name;
41
     private String name;
40
 
42
 
41
     @ApiModelProperty(value = "性别")
43
     @ApiModelProperty(value = "性别")
42
     private Integer sex;
44
     private Integer sex;
43
 
45
 
44
     @ApiModelProperty(value = "手机")
46
     @ApiModelProperty(value = "手机")
47
+    @ExcelProperty(value = "手机", index = 2)
45
     private String phone;
48
     private String phone;
46
 
49
 
47
     @ApiModelProperty(value = "邮箱")
50
     @ApiModelProperty(value = "邮箱")
51
     private String schoolId;
54
     private String schoolId;
52
 
55
 
53
     @ApiModelProperty(value = "学校名称")
56
     @ApiModelProperty(value = "学校名称")
57
+    @ExcelProperty(value = "学校名称", index = 0)
54
     @TableField(exist = false)
58
     @TableField(exist = false)
55
     private String schoolName;
59
     private String schoolName;
56
 
60
 

+ 4
- 0
src/main/java/com/yunzhi/demo/mapper/TaPersonDataMapper.java View File

16
 public interface TaPersonDataMapper extends BaseMapper<TaPersonData> {
16
 public interface TaPersonDataMapper extends BaseMapper<TaPersonData> {
17
 
17
 
18
     int updatePoints(String personId, Integer points, String creditNum);
18
     int updatePoints(String personId, Integer points, String creditNum);
19
+
20
+    int increaseProp(String personId, String prop);
21
+
22
+    int subSaveData(String personId);
19
 }
23
 }

+ 2
- 0
src/main/java/com/yunzhi/demo/mapper/TaPointsLogMapper.java View File

1
 package com.yunzhi.demo.mapper;
1
 package com.yunzhi.demo.mapper;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.yunzhi.demo.entity.TaPointsLog;
4
 import com.yunzhi.demo.entity.TaPointsLog;
4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
 import org.apache.ibatis.annotations.Mapper;
6
 import org.apache.ibatis.annotations.Mapper;
15
 @Mapper
16
 @Mapper
16
 public interface TaPointsLogMapper extends BaseMapper<TaPointsLog> {
17
 public interface TaPointsLogMapper extends BaseMapper<TaPointsLog> {
17
 
18
 
19
+    IPage<TaPointsLog> getPointsListBy(IPage<TaPointsLog> pg, String personId);
18
 }
20
 }

+ 5
- 1
src/main/java/com/yunzhi/demo/mapper/TaPostDataMapper.java View File

22
 
22
 
23
     Map<String, Object> getIndexBasicData();
23
     Map<String, Object> getIndexBasicData();
24
 
24
 
25
-    List<Map<String, Integer>> getIndexPostPV(String startDate, String endDate);
25
+    int updatePostSaveData(String postId);
26
+
27
+    int subSaveData(String postId);
28
+
29
+//    List<Map<String, Integer>> getIndexPostPV(String startDate, String endDate);
26
 }
30
 }

+ 5
- 1
src/main/java/com/yunzhi/demo/mapper/TaReadLogMapper.java View File

20
 @Mapper
20
 @Mapper
21
 public interface TaReadLogMapper extends BaseMapper<TaReadLog> {
21
 public interface TaReadLogMapper extends BaseMapper<TaReadLog> {
22
 
22
 
23
-    int countBy(String personId, String postId);
23
+    TaReadLog getReadBy(String personId, String postId);
24
 
24
 
25
     IPage<MyReadLog> getMyReadList(IPage<MyReadLog> pg, String personId);
25
     IPage<MyReadLog> getMyReadList(IPage<MyReadLog> pg, String personId);
26
 
26
 
29
     List<Map<String, Integer>> getIndexPostPV(String startDate, String endDate, long days);
29
     List<Map<String, Integer>> getIndexPostPV(String startDate, String endDate, long days);
30
 
30
 
31
     List<Map<String, Integer>> getIndexPostUV(String startDate, String endDate, long days);
31
     List<Map<String, Integer>> getIndexPostUV(String startDate, String endDate, long days);
32
+
33
+    IPage<TaReadLog> getPersonReadList(IPage<TaReadLog> pg, String personId);
34
+
35
+    int updatePersonStudied(String personId, String postId);
32
 }
36
 }

+ 5
- 0
src/main/java/com/yunzhi/demo/mapper/TaStudentMapper.java View File

3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5
 import com.yunzhi.demo.entity.TaStudent;
5
 import com.yunzhi.demo.entity.TaStudent;
6
+import com.yunzhi.demo.vo.ExportStatisPerson;
6
 import com.yunzhi.demo.vo.StatisPerson;
7
 import com.yunzhi.demo.vo.StatisPerson;
7
 import org.apache.ibatis.annotations.Mapper;
8
 import org.apache.ibatis.annotations.Mapper;
8
 import org.apache.ibatis.annotations.Param;
9
 import org.apache.ibatis.annotations.Param;
9
 
10
 
11
+import java.util.List;
12
+
10
 /**
13
 /**
11
  * <p>
14
  * <p>
12
  * 人员 Mapper 接口
15
  * 人员 Mapper 接口
31
                                           @Param("specialtyId") String specialtyId,
34
                                           @Param("specialtyId") String specialtyId,
32
                                           @Param("phone") String phone,
35
                                           @Param("phone") String phone,
33
                                           @Param("studentNo") String studentNo);
36
                                           @Param("studentNo") String studentNo);
37
+
38
+    List<ExportStatisPerson> exportStudentStatis(@Param("name") String name, @Param("schoolId") String schoolId, @Param("specialtyId") String specialtyId);
34
 }
39
 }

+ 3
- 0
src/main/java/com/yunzhi/demo/service/ITaPersonDataService.java View File

13
  */
13
  */
14
 public interface ITaPersonDataService extends IService<TaPersonData> {
14
 public interface ITaPersonDataService extends IService<TaPersonData> {
15
 
15
 
16
+    int updateSaveData(String personId);
17
+
18
+    int subSaveData(String personId);
16
 }
19
 }

+ 3
- 0
src/main/java/com/yunzhi/demo/service/ITaPointsLogService.java View File

1
 package com.yunzhi.demo.service;
1
 package com.yunzhi.demo.service;
2
 
2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.yunzhi.demo.entity.TaPerson;
4
 import com.yunzhi.demo.entity.TaPerson;
4
 import com.yunzhi.demo.entity.TaPointsLog;
5
 import com.yunzhi.demo.entity.TaPointsLog;
5
 import com.baomidou.mybatisplus.extension.service.IService;
6
 import com.baomidou.mybatisplus.extension.service.IService;
16
 public interface ITaPointsLogService extends IService<TaPointsLog> {
17
 public interface ITaPointsLogService extends IService<TaPointsLog> {
17
 
18
 
18
     void sendPoints(TaPost taPost, TaPerson taPerson);
19
     void sendPoints(TaPost taPost, TaPerson taPerson);
20
+
21
+    IPage<TaPointsLog> getPointsListBy(IPage<TaPointsLog> pg, String personId);
19
 }
22
 }

+ 4
- 0
src/main/java/com/yunzhi/demo/service/ITaPostDataService.java View File

20
     void recordBy(String postId, TaPerson taPerson);
20
     void recordBy(String postId, TaPerson taPerson);
21
 
21
 
22
     Map<String, Object> getIndexBasicData();
22
     Map<String, Object> getIndexBasicData();
23
+
24
+    int updateSaveData(String postId);
25
+
26
+    int subSaveData(String postId);
23
 }
27
 }

+ 2
- 0
src/main/java/com/yunzhi/demo/service/ITaReadLogService.java View File

25
     List<Map<String, Integer>> getIndexPostPV(String startDate, String endDate);
25
     List<Map<String, Integer>> getIndexPostPV(String startDate, String endDate);
26
 
26
 
27
     List<Map<String, Integer>> getIndexPostUV(String startDate, String endDate);
27
     List<Map<String, Integer>> getIndexPostUV(String startDate, String endDate);
28
+
29
+    IPage<TaReadLog> getReadList(IPage<TaReadLog> pg, String personId);
28
 }
30
 }

+ 5
- 0
src/main/java/com/yunzhi/demo/service/ITaStudentService.java View File

3
 import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.baomidou.mybatisplus.extension.service.IService;
4
 import com.baomidou.mybatisplus.extension.service.IService;
5
 import com.yunzhi.demo.entity.TaStudent;
5
 import com.yunzhi.demo.entity.TaStudent;
6
+import com.yunzhi.demo.vo.ExportStatisPerson;
6
 import com.yunzhi.demo.vo.StatisPerson;
7
 import com.yunzhi.demo.vo.StatisPerson;
7
 
8
 
9
+import java.util.List;
10
+
8
 /**
11
 /**
9
  * <p>
12
  * <p>
10
  * 人员 服务类
13
  * 人员 服务类
25
     TaStudent getByPersonId(String personId);
28
     TaStudent getByPersonId(String personId);
26
 
29
 
27
     TaStudent getByPhone(String phone);
30
     TaStudent getByPhone(String phone);
31
+
32
+    List<ExportStatisPerson> exportStudentStatis(String name, String schoolId, String specialtyId);
28
 }
33
 }

+ 13
- 0
src/main/java/com/yunzhi/demo/service/impl/TaPersonDataServiceImpl.java View File

4
 import com.yunzhi.demo.mapper.TaPersonDataMapper;
4
 import com.yunzhi.demo.mapper.TaPersonDataMapper;
5
 import com.yunzhi.demo.service.ITaPersonDataService;
5
 import com.yunzhi.demo.service.ITaPersonDataService;
6
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
6
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import org.springframework.beans.factory.annotation.Autowired;
7
 import org.springframework.stereotype.Service;
8
 import org.springframework.stereotype.Service;
8
 
9
 
9
 /**
10
 /**
17
 @Service
18
 @Service
18
 public class TaPersonDataServiceImpl extends ServiceImpl<TaPersonDataMapper, TaPersonData> implements ITaPersonDataService {
19
 public class TaPersonDataServiceImpl extends ServiceImpl<TaPersonDataMapper, TaPersonData> implements ITaPersonDataService {
19
 
20
 
21
+    @Autowired
22
+    TaPersonDataMapper taPersonDataMapper;
23
+
24
+    @Override
25
+    public int updateSaveData(String personId) {
26
+        return taPersonDataMapper.increaseProp(personId, "saved_num");
27
+    }
28
+
29
+    @Override
30
+    public int subSaveData(String personId) {
31
+        return taPersonDataMapper.subSaveData(personId);
32
+    }
20
 }
33
 }

+ 19
- 3
src/main/java/com/yunzhi/demo/service/impl/TaPointsLogServiceImpl.java View File

1
 package com.yunzhi.demo.service.impl;
1
 package com.yunzhi.demo.service.impl;
2
 
2
 
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.yunzhi.demo.common.Constants;
5
 import com.yunzhi.demo.common.Constants;
5
 import com.yunzhi.demo.common.StringUtils;
6
 import com.yunzhi.demo.common.StringUtils;
6
 import com.yunzhi.demo.entity.SysConfig;
7
 import com.yunzhi.demo.entity.SysConfig;
10
 import com.yunzhi.demo.mapper.SysConfigMapper;
11
 import com.yunzhi.demo.mapper.SysConfigMapper;
11
 import com.yunzhi.demo.mapper.TaPersonDataMapper;
12
 import com.yunzhi.demo.mapper.TaPersonDataMapper;
12
 import com.yunzhi.demo.mapper.TaPointsLogMapper;
13
 import com.yunzhi.demo.mapper.TaPointsLogMapper;
14
+import com.yunzhi.demo.mapper.TaReadLogMapper;
13
 import com.yunzhi.demo.service.ITaPointsLogService;
15
 import com.yunzhi.demo.service.ITaPointsLogService;
14
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
16
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
15
 import lombok.extern.slf4j.Slf4j;
17
 import lombok.extern.slf4j.Slf4j;
35
     @Autowired
37
     @Autowired
36
     SysConfigMapper sysConfigMapper;
38
     SysConfigMapper sysConfigMapper;
37
 
39
 
40
+    @Autowired
41
+    TaPointsLogMapper taPointsLogMapper;
42
+
43
+    @Autowired
44
+    TaReadLogMapper taReadLogMapper;
45
+
38
     @Async
46
     @Async
39
     @Override
47
     @Override
40
     public void sendPoints(TaPost taPost, TaPerson taPerson) {
48
     public void sendPoints(TaPost taPost, TaPerson taPerson) {
56
 
64
 
57
         // 查询积分-学分转换规则
65
         // 查询积分-学分转换规则
58
         String ratio = sysConfigMapper.getValueOf(Constants.SYS_PARAM_POINT_CREDIT_RATIO);
66
         String ratio = sysConfigMapper.getValueOf(Constants.SYS_PARAM_POINT_CREDIT_RATIO);
59
-        String creditNum = points.toString();
67
+        Integer creditNum = new Double(points / Double.parseDouble(ratio)).intValue();
60
 
68
 
61
         taPointsLog = new TaPointsLog();
69
         taPointsLog = new TaPointsLog();
62
         taPointsLog.setPersonId(taPerson.getPersonId());
70
         taPointsLog.setPersonId(taPerson.getPersonId());
64
         taPointsLog.setTargetId(taPost.getPostId());
72
         taPointsLog.setTargetId(taPost.getPostId());
65
         taPointsLog.setPointsNum(points);
73
         taPointsLog.setPointsNum(points);
66
         taPointsLog.setRatio(ratio);
74
         taPointsLog.setRatio(ratio);
67
-        taPointsLog.setCreditNum(creditNum);
75
+        taPointsLog.setCreditNum(creditNum.toString());
68
 
76
 
69
         try {
77
         try {
70
             save(taPointsLog);
78
             save(taPointsLog);
71
 
79
 
72
             // 累计入账户
80
             // 累计入账户
73
-            taPersonDataMapper.updatePoints(taPerson.getPersonId(), points, creditNum);
81
+            taPersonDataMapper.updatePoints(taPerson.getPersonId(), points, creditNum.toString());
82
+
83
+            // 更新阅读完成标志
84
+            taReadLogMapper.updatePersonStudied(taPerson.getPersonId(), taPost.getPostId());
74
         } catch (Exception e) {
85
         } catch (Exception e) {
75
             e.printStackTrace();
86
             e.printStackTrace();
76
 
87
 
84
         }
95
         }
85
     }
96
     }
86
 
97
 
98
+    @Override
99
+    public IPage<TaPointsLog> getPointsListBy(IPage<TaPointsLog> pg, String personId) {
100
+        return taPointsLogMapper.getPointsListBy(pg, personId);
101
+    }
102
+
87
     private TaPointsLog getByPersonPost(String personId, String targetId) {
103
     private TaPointsLog getByPersonPost(String personId, String targetId) {
88
         QueryWrapper<TaPointsLog> queryWrapper = new QueryWrapper<TaPointsLog>()
104
         QueryWrapper<TaPointsLog> queryWrapper = new QueryWrapper<TaPointsLog>()
89
                 .eq("person_id", personId)
105
                 .eq("person_id", personId)

+ 30
- 4
src/main/java/com/yunzhi/demo/service/impl/TaPostDataServiceImpl.java View File

3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
 import com.yunzhi.demo.common.Constants;
4
 import com.yunzhi.demo.common.Constants;
5
 import com.yunzhi.demo.entity.TaPerson;
5
 import com.yunzhi.demo.entity.TaPerson;
6
+import com.yunzhi.demo.entity.TaPersonData;
6
 import com.yunzhi.demo.entity.TaPostData;
7
 import com.yunzhi.demo.entity.TaPostData;
7
 import com.yunzhi.demo.entity.TaReadLog;
8
 import com.yunzhi.demo.entity.TaReadLog;
9
+import com.yunzhi.demo.mapper.TaPersonDataMapper;
8
 import com.yunzhi.demo.mapper.TaPostDataMapper;
10
 import com.yunzhi.demo.mapper.TaPostDataMapper;
9
 import com.yunzhi.demo.mapper.TaReadLogMapper;
11
 import com.yunzhi.demo.mapper.TaReadLogMapper;
10
 import com.yunzhi.demo.service.ITaPostDataService;
12
 import com.yunzhi.demo.service.ITaPostDataService;
13
 import org.springframework.scheduling.annotation.Async;
15
 import org.springframework.scheduling.annotation.Async;
14
 import org.springframework.stereotype.Service;
16
 import org.springframework.stereotype.Service;
15
 
17
 
18
+import java.time.LocalDateTime;
16
 import java.util.List;
19
 import java.util.List;
17
 import java.util.Map;
20
 import java.util.Map;
18
 
21
 
33
     @Autowired
36
     @Autowired
34
     TaReadLogMapper taReadLogMapper;
37
     TaReadLogMapper taReadLogMapper;
35
 
38
 
39
+    @Autowired
40
+    TaPersonDataMapper taPersonDataMapper;
41
+
36
     @Async
42
     @Async
37
     @Override
43
     @Override
38
     public void recordBy(String postId, TaPerson taPerson) {
44
     public void recordBy(String postId, TaPerson taPerson) {
39
         // 先查询当前人员以前有没有阅读过
45
         // 先查询当前人员以前有没有阅读过
40
-        int cnt = taReadLogMapper.countBy(taPerson.getPersonId(), postId);
46
+        TaReadLog taReadLog = taReadLogMapper.getReadBy(taPerson.getPersonId(), postId);
47
+        boolean readed = null != taReadLog;
41
 
48
 
42
         int addPv = 1;
49
         int addPv = 1;
43
-        int addUv = cnt > 0 ? 0 : 1;
50
+        int addUv = readed ? 0 : 1;
44
 
51
 
52
+        // 更新人员的数据
53
+        if (!readed) {
54
+            taPersonDataMapper.increaseProp(taPerson.getPersonId(), "readed_num");
55
+        }
56
+
57
+        // 更新当前文章的数据
45
         taPostDataMapper.updatePvUvBy(postId, addUv, addPv);
58
         taPostDataMapper.updatePvUvBy(postId, addUv, addPv);
46
 
59
 
47
         // 如果当前人员以前未读过
60
         // 如果当前人员以前未读过
48
-        if (cnt == 0) {
49
-            TaReadLog taReadLog = new TaReadLog();
61
+        if (!readed) {
62
+            taReadLog = new TaReadLog();
50
             taReadLog.setPostId(postId);
63
             taReadLog.setPostId(postId);
51
             taReadLog.setPersonId(taPerson.getPersonId());
64
             taReadLog.setPersonId(taPerson.getPersonId());
52
             taReadLog.setStatus(Constants.READ_READY);
65
             taReadLog.setStatus(Constants.READ_READY);
53
             taReadLogMapper.insert(taReadLog);
66
             taReadLogMapper.insert(taReadLog);
67
+        } else {
68
+            taReadLog.setUpdateDate(LocalDateTime.now());
69
+            taReadLogMapper.updateById(taReadLog);
54
         }
70
         }
55
     }
71
     }
56
 
72
 
58
     public Map<String, Object> getIndexBasicData() {
74
     public Map<String, Object> getIndexBasicData() {
59
         return taPostDataMapper.getIndexBasicData();
75
         return taPostDataMapper.getIndexBasicData();
60
     }
76
     }
77
+
78
+    @Override
79
+    public int updateSaveData(String postId) {
80
+        return taPostDataMapper.updatePostSaveData(postId);
81
+    }
82
+
83
+    @Override
84
+    public int subSaveData(String postId) {
85
+        return taPostDataMapper.subSaveData(postId);
86
+    }
61
 }
87
 }

+ 6
- 0
src/main/java/com/yunzhi/demo/service/impl/TaReadLogServiceImpl.java View File

53
         long days = DateUtils.daysBetween(dt1, dt2);
53
         long days = DateUtils.daysBetween(dt1, dt2);
54
         return taReadLogMapper.getIndexPostUV(startDate, endDate, days);
54
         return taReadLogMapper.getIndexPostUV(startDate, endDate, days);
55
     }
55
     }
56
+
57
+    @Override
58
+    public IPage<TaReadLog> getReadList(IPage<TaReadLog> pg, String personId) {
59
+        return taReadLogMapper.getPersonReadList(pg, personId);
60
+    }
61
+
56
 }
62
 }

+ 8
- 0
src/main/java/com/yunzhi/demo/service/impl/TaStudentServiceImpl.java View File

8
 import com.yunzhi.demo.entity.TaStudent;
8
 import com.yunzhi.demo.entity.TaStudent;
9
 import com.yunzhi.demo.mapper.TaStudentMapper;
9
 import com.yunzhi.demo.mapper.TaStudentMapper;
10
 import com.yunzhi.demo.service.ITaStudentService;
10
 import com.yunzhi.demo.service.ITaStudentService;
11
+import com.yunzhi.demo.vo.ExportStatisPerson;
11
 import com.yunzhi.demo.vo.StatisPerson;
12
 import com.yunzhi.demo.vo.StatisPerson;
12
 import org.springframework.beans.factory.annotation.Autowired;
13
 import org.springframework.beans.factory.annotation.Autowired;
13
 import org.springframework.stereotype.Service;
14
 import org.springframework.stereotype.Service;
14
 
15
 
16
+import java.util.List;
17
+
15
 /**
18
 /**
16
  * <p>
19
  * <p>
17
  * 人员 服务实现类
20
  * 人员 服务实现类
71
         return getOne(queryWrapper);
74
         return getOne(queryWrapper);
72
     }
75
     }
73
 
76
 
77
+    @Override
78
+    public List<ExportStatisPerson> exportStudentStatis(String name, String schoolId, String specialtyId) {
79
+        return taStudentMapper.exportStudentStatis(name, schoolId, specialtyId);
80
+    }
81
+
74
     private String getDBFieldBy(String name) {
82
     private String getDBFieldBy(String name) {
75
         if (StringUtils.isEmpty(name)) {
83
         if (StringUtils.isEmpty(name)) {
76
             return null;
84
             return null;

+ 28
- 0
src/main/java/com/yunzhi/demo/vo/ExportStatisPerson.java View File

1
+package com.yunzhi.demo.vo;
2
+
3
+import com.alibaba.excel.annotation.ExcelProperty;
4
+import lombok.Data;
5
+
6
+@Data
7
+public class ExportStatisPerson {
8
+    @ExcelProperty(value = "姓名", index = 1)
9
+    private String name;
10
+
11
+    @ExcelProperty(value = "手机", index = 2)
12
+    private String phone;
13
+
14
+    @ExcelProperty(value = "学校名称", index = 0)
15
+    private String schoolName;
16
+
17
+    @ExcelProperty(value = "积分", index = 5)
18
+    private Integer pointNum;
19
+
20
+    @ExcelProperty(value = "学分", index = 6)
21
+    private String creditNum;
22
+
23
+    @ExcelProperty(value = "收藏文章", index = 3)
24
+    private Integer savedNum;
25
+
26
+    @ExcelProperty(value = "阅读文章", index = 4)
27
+    private Integer readedNum;
28
+}

+ 5
- 0
src/main/java/com/yunzhi/demo/vo/StatisPerson.java View File

1
 package com.yunzhi.demo.vo;
1
 package com.yunzhi.demo.vo;
2
 
2
 
3
+import com.alibaba.excel.annotation.ExcelProperty;
3
 import com.yunzhi.demo.entity.TaStudent;
4
 import com.yunzhi.demo.entity.TaStudent;
4
 import io.swagger.annotations.ApiModel;
5
 import io.swagger.annotations.ApiModel;
5
 import io.swagger.annotations.ApiModelProperty;
6
 import io.swagger.annotations.ApiModelProperty;
10
 public class StatisPerson extends TaStudent {
11
 public class StatisPerson extends TaStudent {
11
 
12
 
12
     @ApiModelProperty(value = "积分")
13
     @ApiModelProperty(value = "积分")
14
+    @ExcelProperty(value = "积分", index = 5)
13
     private Integer pointNum;
15
     private Integer pointNum;
14
 
16
 
15
     @ApiModelProperty(value = "学分")
17
     @ApiModelProperty(value = "学分")
18
+    @ExcelProperty(value = "学分", index = 6)
16
     private String creditNum;
19
     private String creditNum;
17
 
20
 
18
     @ApiModelProperty(value = "收藏文章")
21
     @ApiModelProperty(value = "收藏文章")
22
+    @ExcelProperty(value = "收藏文章", index = 3)
19
     private Integer savedNum;
23
     private Integer savedNum;
20
 
24
 
21
     @ApiModelProperty(value = "阅读文章")
25
     @ApiModelProperty(value = "阅读文章")
26
+    @ExcelProperty(value = "阅读文章", index = 4)
22
     private Integer readedNum;
27
     private Integer readedNum;
23
 }
28
 }

+ 12
- 0
src/main/resources/mapper/TaPersonDataMapper.xml View File

9
         WHERE
9
         WHERE
10
             person_id = #{personId}
10
             person_id = #{personId}
11
     </update>
11
     </update>
12
+    <update id="increaseProp">
13
+        UPDATE ta_person_data
14
+        SET ${prop} = ${prop} + 1
15
+        WHERE
16
+            person_id = #{personId}
17
+    </update>
18
+    <update id="subSaveData">
19
+        UPDATE ta_person_data
20
+        SET saved_num = saved_num - 1
21
+        WHERE
22
+            person_id = #{personId}
23
+    </update>
12
 </mapper>
24
 </mapper>

+ 14
- 0
src/main/resources/mapper/TaPointsLogMapper.xml View File

2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
 <mapper namespace="com.yunzhi.demo.mapper.TaPointsLogMapper">
3
 <mapper namespace="com.yunzhi.demo.mapper.TaPointsLogMapper">
4
 
4
 
5
+    <select id="getPointsListBy" resultType="com.yunzhi.demo.entity.TaPointsLog">
6
+        SELECT
7
+            t.*,
8
+            s.`name` AS target_name
9
+        FROM
10
+            ta_points_log t
11
+                LEFT JOIN ta_post s ON t.target_id = s.post_id
12
+        WHERE
13
+            t.target_type = 'post'
14
+          AND t.person_id = #{personId}
15
+          AND t.`status` = 1
16
+        ORDER BY
17
+            t.create_date DESC
18
+    </select>
5
 </mapper>
19
 </mapper>

+ 12
- 0
src/main/resources/mapper/TaPostDataMapper.xml View File

9
         WHERE
9
         WHERE
10
             post_id = #{postId}
10
             post_id = #{postId}
11
     </update>
11
     </update>
12
+    <update id="updatePostSaveData">
13
+        UPDATE ta_post_data
14
+        SET saved_num = saved_num + 1
15
+        WHERE
16
+            post_id = #{postId}
17
+    </update>
18
+    <update id="subSaveData">
19
+        UPDATE ta_post_data
20
+        SET saved_num = saved_num - 1
21
+        WHERE
22
+            post_id = #{postId}
23
+    </update>
12
     <select id="getIndexBasicData" resultType="java.util.Map">
24
     <select id="getIndexBasicData" resultType="java.util.Map">
13
         SELECT
25
         SELECT
14
             count( 1 ) AS total,
26
             count( 1 ) AS total,

+ 2
- 1
src/main/resources/mapper/TaPostSaveMapper.xml View File

4
 
4
 
5
     <select id="getMyPostSaveList" resultType="com.yunzhi.demo.entity.TaPost">
5
     <select id="getMyPostSaveList" resultType="com.yunzhi.demo.entity.TaPost">
6
         SELECT
6
         SELECT
7
-            s.*
7
+            s.*,
8
+            t.create_date as saved_date
8
         FROM
9
         FROM
9
             ta_post_save t
10
             ta_post_save t
10
                 INNER JOIN ta_post s ON t.post_id = s.post_id
11
                 INNER JOIN ta_post s ON t.post_id = s.post_id

+ 24
- 2
src/main/resources/mapper/TaReadLogMapper.xml View File

9
             person_id = #{personId}
9
             person_id = #{personId}
10
           AND post_id = #{postId}
10
           AND post_id = #{postId}
11
     </update>
11
     </update>
12
+    <update id="updatePersonStudied">
13
+        UPDATE ta_read_log
14
+        SET is_studied = 1
15
+        WHERE
16
+            person_id = #{personId}
17
+          AND post_id = #{postId}
18
+    </update>
12
 
19
 
13
-    <select id="countBy" resultType="java.lang.Integer">
20
+    <select id="getReadBy" resultType="com.yunzhi.demo.entity.TaReadLog">
14
         SELECT
21
         SELECT
15
-            count( * )
22
+            t.*
16
         FROM
23
         FROM
17
             ta_read_log t
24
             ta_read_log t
18
         WHERE
25
         WHERE
19
             t.person_id = #{personId}
26
             t.person_id = #{personId}
20
           AND t.post_id = #{postId}
27
           AND t.post_id = #{postId}
28
+          AND t.status = 1
21
     </select>
29
     </select>
22
     <select id="getMyReadList" resultType="com.yunzhi.demo.entity.MyReadLog">
30
     <select id="getMyReadList" resultType="com.yunzhi.demo.entity.MyReadLog">
23
         SELECT
31
         SELECT
80
         ORDER BY
88
         ORDER BY
81
             t.rownum ASC
89
             t.rownum ASC
82
     </select>
90
     </select>
91
+    <select id="getPersonReadList" resultType="com.yunzhi.demo.entity.TaReadLog">
92
+
93
+        SELECT
94
+            t.*,
95
+            s.name as post_name
96
+        FROM
97
+            ta_read_log t
98
+            LEFT JOIN ta_post s ON t.post_id = s.post_id
99
+        WHERE
100
+            t.person_id = #{personId}
101
+          AND t.status = 1
102
+        ORDER BY
103
+            t.create_date DESC
104
+    </select>
83
 </mapper>
105
 </mapper>

+ 26
- 0
src/main/resources/mapper/TaStudentMapper.xml View File

60
         ORDER BY
60
         ORDER BY
61
             t.create_date DESC
61
             t.create_date DESC
62
     </select>
62
     </select>
63
+    <select id="exportStudentStatis" resultType="com.yunzhi.demo.vo.ExportStatisPerson">
64
+        SELECT
65
+            m.name as school_name,
66
+            t.name,
67
+            t.phone,
68
+            s.credit_num,
69
+            s.point_num,
70
+            s.readed_num,
71
+            s.saved_num
72
+        FROM
73
+        ta_student t
74
+        INNER JOIN ta_person_data s ON t.person_id = s.person_id
75
+        LEFT JOIN td_school m ON t.school_id = m.school_id
76
+        WHERE t.`status` > - 1
77
+        <if test="name != null and name != ''">
78
+            AND t.`name` LIKE CONCAT('%', #{name}, '%')
79
+        </if>
80
+        <if test="schoolId != null and schoolId != ''">
81
+            AND t.school_id = #{schoolId}
82
+        </if>
83
+        <if test="specialtyId != null and specialtyId != ''">
84
+            AND t.specialty_id = #{specialtyId}
85
+        </if>
86
+        ORDER BY
87
+            t.school_id DESC, s.readed_num DESC
88
+    </select>
63
 </mapper>
89
 </mapper>