张延森 il y a 4 ans
Parent
révision
47b42910d3
36 fichiers modifiés avec 363 ajouts et 27 suppressions
  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 Voir le fichier

@@ -2,10 +2,13 @@ package com.yunzhi.demo.controller;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4 4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
+import com.sun.deploy.net.HttpResponse;
5 6
 import com.yunzhi.demo.common.BaseController;
7
+import com.yunzhi.demo.common.ExcelUtils;
6 8
 import com.yunzhi.demo.common.ResponseBean;
7 9
 import com.yunzhi.demo.entity.TaPost;
8 10
 import com.yunzhi.demo.service.*;
11
+import com.yunzhi.demo.vo.ExportStatisPerson;
9 12
 import com.yunzhi.demo.vo.StatisPerson;
10 13
 import com.yunzhi.demo.vo.StatisPost;
11 14
 import io.swagger.annotations.Api;
@@ -16,6 +19,8 @@ import org.springframework.web.bind.annotation.GetMapping;
16 19
 import org.springframework.web.bind.annotation.RequestParam;
17 20
 import org.springframework.web.bind.annotation.RestController;
18 21
 
22
+import javax.servlet.http.HttpServletResponse;
23
+import java.io.IOException;
19 24
 import java.util.List;
20 25
 import java.util.Map;
21 26
 
@@ -108,4 +113,15 @@ public class StatisticController extends BaseController {
108 113
 
109 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 Voir le fichier

@@ -1,8 +1,14 @@
1 1
 package com.yunzhi.demo.controller;
2 2
 
3 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 8
 import com.yunzhi.demo.service.*;
5 9
 import io.swagger.annotations.Api;
10
+import io.swagger.annotations.ApiOperation;
11
+import io.swagger.annotations.ApiParam;
6 12
 import org.slf4j.Logger;
7 13
 import org.slf4j.LoggerFactory;
8 14
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,4 +33,25 @@ public class TaPersonController extends BaseController {
27 33
     @Autowired
28 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 Voir le fichier

@@ -46,16 +46,14 @@ public class TaPointsLogController extends BaseController {
46 46
      * @param pageSize
47 47
      * @return
48 48
      */
49
-    @RequestMapping(value="/taPointsLog",method= RequestMethod.GET)
49
+    @RequestMapping(value="/admin/points-log",method= RequestMethod.GET)
50 50
     @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
51 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 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 57
             return ResponseBean.success(result);
60 58
     }
61 59
 

+ 30
- 5
src/main/java/com/yunzhi/demo/controller/TaPostSaveController.java Voir le fichier

@@ -8,6 +8,8 @@ import com.yunzhi.demo.common.Constants;
8 8
 import com.yunzhi.demo.common.ResponseBean;
9 9
 import com.yunzhi.demo.entity.TaPerson;
10 10
 import com.yunzhi.demo.entity.TaPost;
11
+import com.yunzhi.demo.service.ITaPersonDataService;
12
+import com.yunzhi.demo.service.ITaPostDataService;
11 13
 import io.swagger.annotations.Api;
12 14
 import io.swagger.annotations.ApiOperation;
13 15
 import io.swagger.annotations.ApiParam;
@@ -44,6 +46,12 @@ public class TaPostSaveController extends BaseController {
44 46
     @Autowired
45 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,15 +59,20 @@ public class TaPostSaveController extends BaseController {
51 59
      * @param pageSize
52 60
      * @return
53 61
      */
54
-    @RequestMapping(value="/ma/post-save",method= RequestMethod.GET)
62
+    @RequestMapping(value="/{client}/post-save",method= RequestMethod.GET)
55 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 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 76
         return ResponseBean.success(result);
64 77
     }
65 78
 
@@ -83,6 +96,12 @@ public class TaPostSaveController extends BaseController {
83 96
         }
84 97
 
85 98
         if (iTaPostSaveService.save(taPostSave)){
99
+
100
+            // 更新文章收藏
101
+            iTaPostDataService.updateSaveData(postId);
102
+            // 更新人员收藏
103
+            iTaPersonDataService.updateSaveData(taPerson.getPersonId());
104
+
86 105
             return ResponseBean.success(taPostSave);
87 106
         }else {
88 107
             return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
@@ -107,6 +126,12 @@ public class TaPostSaveController extends BaseController {
107 126
         taPostSave.setUpdateDate(LocalDateTime.now());
108 127
 
109 128
         if(iTaPostSaveService.updateById(taPostSave)){
129
+
130
+            // 更新文章收藏
131
+            iTaPostDataService.subSaveData(postId);
132
+            // 更新人员收藏
133
+            iTaPersonDataService.subSaveData(taPerson.getPersonId());
134
+
110 135
             return ResponseBean.success("success");
111 136
         }else {
112 137
             return ResponseBean.error("取消我的收藏失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);

+ 2
- 2
src/main/java/com/yunzhi/demo/controller/TaPostTestController.java Voir le fichier

@@ -85,13 +85,13 @@ public class TaPostTestController extends BaseController {
85 85
         }
86 86
 
87 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 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 Voir le fichier

@@ -42,7 +42,6 @@ public class TaReadLogController extends BaseController {
42 42
     @Autowired
43 43
     public ITaReadLogService iTaReadLogService;
44 44
 
45
-
46 45
     /**
47 46
      * 分页查询列表
48 47
      * @param pageNum
@@ -59,6 +58,22 @@ public class TaReadLogController extends BaseController {
59 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 79
      * @param taReadLog 实体对象

+ 3
- 0
src/main/java/com/yunzhi/demo/controller/TaStudentController.java Voir le fichier

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

+ 2
- 1
src/main/java/com/yunzhi/demo/entity/TaPersonData.java Voir le fichier

@@ -41,5 +41,6 @@ public class TaPersonData implements Serializable {
41 41
     @ApiModelProperty(value = "阅读文章")
42 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 Voir le fichier

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

+ 4
- 0
src/main/java/com/yunzhi/demo/entity/TaPost.java Voir le fichier

@@ -91,6 +91,10 @@ public class TaPost implements Serializable {
91 91
     @ApiModelProperty(value = "更新时间")
92 92
     private LocalDateTime updateDate;
93 93
 
94
+    @ApiModelProperty(value = "收藏时间")
95
+    @TableField(exist = false)
96
+    private LocalDateTime savedDate;
97
+
94 98
     @ApiModelProperty(value = "统计数据")
95 99
     @TableField(exist = false)
96 100
     private TaPostData postData;

+ 5
- 0
src/main/java/com/yunzhi/demo/entity/TaPostSave.java Voir le fichier

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

+ 8
- 0
src/main/java/com/yunzhi/demo/entity/TaReadLog.java Voir le fichier

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

+ 4
- 0
src/main/java/com/yunzhi/demo/entity/TaStudent.java Voir le fichier

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

+ 4
- 0
src/main/java/com/yunzhi/demo/mapper/TaPersonDataMapper.java Voir le fichier

@@ -16,4 +16,8 @@ import org.apache.ibatis.annotations.Mapper;
16 16
 public interface TaPersonDataMapper extends BaseMapper<TaPersonData> {
17 17
 
18 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 Voir le fichier

@@ -1,5 +1,6 @@
1 1
 package com.yunzhi.demo.mapper;
2 2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
3 4
 import com.yunzhi.demo.entity.TaPointsLog;
4 5
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 6
 import org.apache.ibatis.annotations.Mapper;
@@ -15,4 +16,5 @@ import org.apache.ibatis.annotations.Mapper;
15 16
 @Mapper
16 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 Voir le fichier

@@ -22,5 +22,9 @@ public interface TaPostDataMapper extends BaseMapper<TaPostData> {
22 22
 
23 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 Voir le fichier

@@ -20,7 +20,7 @@ import java.util.Map;
20 20
 @Mapper
21 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 25
     IPage<MyReadLog> getMyReadList(IPage<MyReadLog> pg, String personId);
26 26
 
@@ -29,4 +29,8 @@ public interface TaReadLogMapper extends BaseMapper<TaReadLog> {
29 29
     List<Map<String, Integer>> getIndexPostPV(String startDate, String endDate, long days);
30 30
 
31 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 Voir le fichier

@@ -3,10 +3,13 @@ package com.yunzhi.demo.mapper;
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.yunzhi.demo.entity.TaStudent;
6
+import com.yunzhi.demo.vo.ExportStatisPerson;
6 7
 import com.yunzhi.demo.vo.StatisPerson;
7 8
 import org.apache.ibatis.annotations.Mapper;
8 9
 import org.apache.ibatis.annotations.Param;
9 10
 
11
+import java.util.List;
12
+
10 13
 /**
11 14
  * <p>
12 15
  * 人员 Mapper 接口
@@ -31,4 +34,6 @@ public interface TaStudentMapper extends BaseMapper<TaStudent> {
31 34
                                           @Param("specialtyId") String specialtyId,
32 35
                                           @Param("phone") String phone,
33 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 Voir le fichier

@@ -13,4 +13,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
13 13
  */
14 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 Voir le fichier

@@ -1,5 +1,6 @@
1 1
 package com.yunzhi.demo.service;
2 2
 
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
3 4
 import com.yunzhi.demo.entity.TaPerson;
4 5
 import com.yunzhi.demo.entity.TaPointsLog;
5 6
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -16,4 +17,6 @@ import com.yunzhi.demo.entity.TaPost;
16 17
 public interface ITaPointsLogService extends IService<TaPointsLog> {
17 18
 
18 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 Voir le fichier

@@ -20,4 +20,8 @@ public interface ITaPostDataService extends IService<TaPostData> {
20 20
     void recordBy(String postId, TaPerson taPerson);
21 21
 
22 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 Voir le fichier

@@ -25,4 +25,6 @@ int
25 25
     List<Map<String, Integer>> getIndexPostPV(String startDate, String endDate);
26 26
 
27 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 Voir le fichier

@@ -3,8 +3,11 @@ package com.yunzhi.demo.service;
3 3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4 4
 import com.baomidou.mybatisplus.extension.service.IService;
5 5
 import com.yunzhi.demo.entity.TaStudent;
6
+import com.yunzhi.demo.vo.ExportStatisPerson;
6 7
 import com.yunzhi.demo.vo.StatisPerson;
7 8
 
9
+import java.util.List;
10
+
8 11
 /**
9 12
  * <p>
10 13
  * 人员 服务类
@@ -25,4 +28,6 @@ public interface ITaStudentService extends IService<TaStudent> {
25 28
     TaStudent getByPersonId(String personId);
26 29
 
27 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 Voir le fichier

@@ -4,6 +4,7 @@ import com.yunzhi.demo.entity.TaPersonData;
4 4
 import com.yunzhi.demo.mapper.TaPersonDataMapper;
5 5
 import com.yunzhi.demo.service.ITaPersonDataService;
6 6
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import org.springframework.beans.factory.annotation.Autowired;
7 8
 import org.springframework.stereotype.Service;
8 9
 
9 10
 /**
@@ -17,4 +18,16 @@ import org.springframework.stereotype.Service;
17 18
 @Service
18 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 Voir le fichier

@@ -1,6 +1,7 @@
1 1
 package com.yunzhi.demo.service.impl;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
4 5
 import com.yunzhi.demo.common.Constants;
5 6
 import com.yunzhi.demo.common.StringUtils;
6 7
 import com.yunzhi.demo.entity.SysConfig;
@@ -10,6 +11,7 @@ import com.yunzhi.demo.entity.TaPost;
10 11
 import com.yunzhi.demo.mapper.SysConfigMapper;
11 12
 import com.yunzhi.demo.mapper.TaPersonDataMapper;
12 13
 import com.yunzhi.demo.mapper.TaPointsLogMapper;
14
+import com.yunzhi.demo.mapper.TaReadLogMapper;
13 15
 import com.yunzhi.demo.service.ITaPointsLogService;
14 16
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
15 17
 import lombok.extern.slf4j.Slf4j;
@@ -35,6 +37,12 @@ public class TaPointsLogServiceImpl extends ServiceImpl<TaPointsLogMapper, TaPoi
35 37
     @Autowired
36 38
     SysConfigMapper sysConfigMapper;
37 39
 
40
+    @Autowired
41
+    TaPointsLogMapper taPointsLogMapper;
42
+
43
+    @Autowired
44
+    TaReadLogMapper taReadLogMapper;
45
+
38 46
     @Async
39 47
     @Override
40 48
     public void sendPoints(TaPost taPost, TaPerson taPerson) {
@@ -56,7 +64,7 @@ public class TaPointsLogServiceImpl extends ServiceImpl<TaPointsLogMapper, TaPoi
56 64
 
57 65
         // 查询积分-学分转换规则
58 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 69
         taPointsLog = new TaPointsLog();
62 70
         taPointsLog.setPersonId(taPerson.getPersonId());
@@ -64,13 +72,16 @@ public class TaPointsLogServiceImpl extends ServiceImpl<TaPointsLogMapper, TaPoi
64 72
         taPointsLog.setTargetId(taPost.getPostId());
65 73
         taPointsLog.setPointsNum(points);
66 74
         taPointsLog.setRatio(ratio);
67
-        taPointsLog.setCreditNum(creditNum);
75
+        taPointsLog.setCreditNum(creditNum.toString());
68 76
 
69 77
         try {
70 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 85
         } catch (Exception e) {
75 86
             e.printStackTrace();
76 87
 
@@ -84,6 +95,11 @@ public class TaPointsLogServiceImpl extends ServiceImpl<TaPointsLogMapper, TaPoi
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 103
     private TaPointsLog getByPersonPost(String personId, String targetId) {
88 104
         QueryWrapper<TaPointsLog> queryWrapper = new QueryWrapper<TaPointsLog>()
89 105
                 .eq("person_id", personId)

+ 30
- 4
src/main/java/com/yunzhi/demo/service/impl/TaPostDataServiceImpl.java Voir le fichier

@@ -3,8 +3,10 @@ package com.yunzhi.demo.service.impl;
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 4
 import com.yunzhi.demo.common.Constants;
5 5
 import com.yunzhi.demo.entity.TaPerson;
6
+import com.yunzhi.demo.entity.TaPersonData;
6 7
 import com.yunzhi.demo.entity.TaPostData;
7 8
 import com.yunzhi.demo.entity.TaReadLog;
9
+import com.yunzhi.demo.mapper.TaPersonDataMapper;
8 10
 import com.yunzhi.demo.mapper.TaPostDataMapper;
9 11
 import com.yunzhi.demo.mapper.TaReadLogMapper;
10 12
 import com.yunzhi.demo.service.ITaPostDataService;
@@ -13,6 +15,7 @@ import org.springframework.beans.factory.annotation.Autowired;
13 15
 import org.springframework.scheduling.annotation.Async;
14 16
 import org.springframework.stereotype.Service;
15 17
 
18
+import java.time.LocalDateTime;
16 19
 import java.util.List;
17 20
 import java.util.Map;
18 21
 
@@ -33,24 +36,37 @@ public class TaPostDataServiceImpl extends ServiceImpl<TaPostDataMapper, TaPostD
33 36
     @Autowired
34 37
     TaReadLogMapper taReadLogMapper;
35 38
 
39
+    @Autowired
40
+    TaPersonDataMapper taPersonDataMapper;
41
+
36 42
     @Async
37 43
     @Override
38 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 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 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 63
             taReadLog.setPostId(postId);
51 64
             taReadLog.setPersonId(taPerson.getPersonId());
52 65
             taReadLog.setStatus(Constants.READ_READY);
53 66
             taReadLogMapper.insert(taReadLog);
67
+        } else {
68
+            taReadLog.setUpdateDate(LocalDateTime.now());
69
+            taReadLogMapper.updateById(taReadLog);
54 70
         }
55 71
     }
56 72
 
@@ -58,4 +74,14 @@ public class TaPostDataServiceImpl extends ServiceImpl<TaPostDataMapper, TaPostD
58 74
     public Map<String, Object> getIndexBasicData() {
59 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 Voir le fichier

@@ -53,4 +53,10 @@ public class TaReadLogServiceImpl extends ServiceImpl<TaReadLogMapper, TaReadLog
53 53
         long days = DateUtils.daysBetween(dt1, dt2);
54 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 Voir le fichier

@@ -8,10 +8,13 @@ import com.yunzhi.demo.common.StringUtils;
8 8
 import com.yunzhi.demo.entity.TaStudent;
9 9
 import com.yunzhi.demo.mapper.TaStudentMapper;
10 10
 import com.yunzhi.demo.service.ITaStudentService;
11
+import com.yunzhi.demo.vo.ExportStatisPerson;
11 12
 import com.yunzhi.demo.vo.StatisPerson;
12 13
 import org.springframework.beans.factory.annotation.Autowired;
13 14
 import org.springframework.stereotype.Service;
14 15
 
16
+import java.util.List;
17
+
15 18
 /**
16 19
  * <p>
17 20
  * 人员 服务实现类
@@ -71,6 +74,11 @@ public class TaStudentServiceImpl extends ServiceImpl<TaStudentMapper, TaStudent
71 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 82
     private String getDBFieldBy(String name) {
75 83
         if (StringUtils.isEmpty(name)) {
76 84
             return null;

+ 28
- 0
src/main/java/com/yunzhi/demo/vo/ExportStatisPerson.java Voir le fichier

@@ -0,0 +1,28 @@
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 Voir le fichier

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

+ 12
- 0
src/main/resources/mapper/TaPersonDataMapper.xml Voir le fichier

@@ -9,4 +9,16 @@
9 9
         WHERE
10 10
             person_id = #{personId}
11 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 24
 </mapper>

+ 14
- 0
src/main/resources/mapper/TaPointsLogMapper.xml Voir le fichier

@@ -2,4 +2,18 @@
2 2
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 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 19
 </mapper>

+ 12
- 0
src/main/resources/mapper/TaPostDataMapper.xml Voir le fichier

@@ -9,6 +9,18 @@
9 9
         WHERE
10 10
             post_id = #{postId}
11 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 24
     <select id="getIndexBasicData" resultType="java.util.Map">
13 25
         SELECT
14 26
             count( 1 ) AS total,

+ 2
- 1
src/main/resources/mapper/TaPostSaveMapper.xml Voir le fichier

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

+ 24
- 2
src/main/resources/mapper/TaReadLogMapper.xml Voir le fichier

@@ -9,15 +9,23 @@
9 9
             person_id = #{personId}
10 10
           AND post_id = #{postId}
11 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 21
         SELECT
15
-            count( * )
22
+            t.*
16 23
         FROM
17 24
             ta_read_log t
18 25
         WHERE
19 26
             t.person_id = #{personId}
20 27
           AND t.post_id = #{postId}
28
+          AND t.status = 1
21 29
     </select>
22 30
     <select id="getMyReadList" resultType="com.yunzhi.demo.entity.MyReadLog">
23 31
         SELECT
@@ -80,4 +88,18 @@
80 88
         ORDER BY
81 89
             t.rownum ASC
82 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 105
 </mapper>

+ 26
- 0
src/main/resources/mapper/TaStudentMapper.xml Voir le fichier

@@ -60,4 +60,30 @@
60 60
         ORDER BY
61 61
             t.create_date DESC
62 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 89
 </mapper>