张延森 4 lat temu
rodzic
commit
b64c00aa3d

+ 9
- 0
pom.xml Wyświetl plik

@@ -114,6 +114,15 @@
114 114
 				<activeByDefault>false</activeByDefault>
115 115
 			</activation>
116 116
 		</profile>
117
+		<profile>
118
+			<id>test</id>
119
+			<properties>
120
+				<profileActive>test</profileActive>
121
+			</properties>
122
+			<activation>
123
+				<activeByDefault>false</activeByDefault>
124
+			</activation>
125
+		</profile>
117 126
 	</profiles>
118 127
 
119 128
 	<build>

+ 9
- 0
src/main/java/com/yunzhi/liyuanhui/common/DateUtils.java Wyświetl plik

@@ -2,6 +2,9 @@ package com.yunzhi.liyuanhui.common;
2 2
 
3 3
 import java.text.ParseException;
4 4
 import java.text.SimpleDateFormat;
5
+import java.time.Instant;
6
+import java.time.LocalDateTime;
7
+import java.time.ZoneId;
5 8
 import java.util.Date;
6 9
 
7 10
 public class DateUtils {
@@ -28,4 +31,10 @@ public class DateUtils {
28 31
 
29 32
         return sdf.parse(str + "23:59:59");
30 33
     }
34
+
35
+    public static Date local2Date(LocalDateTime ldt) {
36
+        ZoneId zone = ZoneId.systemDefault();
37
+        Instant instant = ldt.atZone(zone).toInstant();
38
+        return Date.from(instant);
39
+    }
31 40
 }

+ 51
- 8
src/main/java/com/yunzhi/liyuanhui/controller/TaActivityController.java Wyświetl plik

@@ -1,12 +1,15 @@
1 1
 package com.yunzhi.liyuanhui.controller;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4 5
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 6
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 7
 import com.yunzhi.liyuanhui.common.BaseController;
7 8
 import com.yunzhi.liyuanhui.common.ResponseBean;
8 9
 import com.yunzhi.liyuanhui.common.StringUtils;
10
+import com.yunzhi.liyuanhui.entity.TaActivityVote;
9 11
 import com.yunzhi.liyuanhui.entity.TaPerson;
12
+import com.yunzhi.liyuanhui.enums.StatusEnum;
10 13
 import com.yunzhi.liyuanhui.service.ITaActivityEnrollService;
11 14
 import com.yunzhi.liyuanhui.service.ITaActivityVoteService;
12 15
 import org.bouncycastle.cms.PasswordRecipient;
@@ -48,21 +51,36 @@ public class TaActivityController extends BaseController {
48 51
      * @param pageSize
49 52
      * @return
50 53
      */
51
-    @RequestMapping(value="/{client}/activity",method= RequestMethod.GET)
54
+    @RequestMapping(value="/admin/activity",method= RequestMethod.GET)
52 55
     public ResponseBean taActivityList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
53 56
                                        @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
54 57
                                        @RequestParam(value ="typeId", required = false) Integer typeId,
55
-                                       @RequestParam(value ="toIndex", defaultValue = "false") Boolean toIndex,
56 58
                                        @RequestParam(value ="name", required = false) String name,
57
-                                       @RequestParam(value ="status", required = false) Integer status,
58
-                                       @PathVariable String client) throws Exception{
59
+                                       @RequestParam(value ="status", required = false) Integer status) throws Exception{
59 60
 
60 61
         IPage<TaActivity> pg = new Page<>(pageNum, pageSize);
61 62
         QueryWrapper<TaActivity> queryWrapper = new QueryWrapper<>();
62 63
         queryWrapper.eq(null != typeId, "type_id", typeId);
63
-        queryWrapper.eq(toIndex, "to_index", toIndex);
64 64
         queryWrapper.like(!StringUtils.isEmpty(name), "name", name);
65 65
         queryWrapper.eq(null != status, "status", status);
66
+        queryWrapper.gt(null == status, "status", StatusEnum.DELETED.getCode());
67
+        queryWrapper.orderByDesc("weight, create_date");
68
+
69
+        IPage<TaActivity> result = iTaActivityService.page(pg, queryWrapper);
70
+        return ResponseBean.success(result);
71
+    }
72
+
73
+    @RequestMapping(value="/wx/activity",method= RequestMethod.GET)
74
+    public ResponseBean getWxList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
75
+                                  @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
76
+                                  @RequestParam(value ="typeId", required = false) Integer typeId,
77
+                                  @RequestParam(value ="toIndex", defaultValue = "false") Boolean toIndex) throws Exception{
78
+
79
+        IPage<TaActivity> pg = new Page<>(pageNum, pageSize);
80
+        QueryWrapper<TaActivity> queryWrapper = new QueryWrapper<>();
81
+        queryWrapper.eq(null != typeId, "type_id", typeId);
82
+        queryWrapper.eq(toIndex, "to_index", toIndex);
83
+        queryWrapper.gt("status", StatusEnum.READY.getCode());
66 84
         queryWrapper.orderByDesc("weight, create_date");
67 85
 
68 86
         IPage<TaActivity> result = iTaActivityService.page(pg, queryWrapper);
@@ -99,10 +117,14 @@ public class TaActivityController extends BaseController {
99 117
      * @param id  实体ID
100 118
      */
101 119
     @ResponseBody
102
-    @RequestMapping(value="/taActivity/{id}", method= RequestMethod.DELETE)
120
+    @RequestMapping(value="/admin/activity/{id}", method= RequestMethod.DELETE)
103 121
     public ResponseBean taActivityDelete(@PathVariable Integer id) throws Exception{
104 122
 
105
-        if(iTaActivityService.removeById(id)){
123
+        UpdateWrapper<TaActivity> updateWrapper = new UpdateWrapper<>();
124
+        updateWrapper.set("status", StatusEnum.DELETED.getCode());
125
+        updateWrapper.eq("activity_id", id);
126
+
127
+        if(iTaActivityService.update(updateWrapper)){
106 128
             return ResponseBean.success("success");
107 129
         }else {
108 130
             return ResponseBean.error("删除失败", ResponseBean.ERROR_UNAVAILABLE);
@@ -136,18 +158,39 @@ public class TaActivityController extends BaseController {
136 158
                                       HttpServletRequest request) throws Exception{
137 159
         TaActivity result = iTaActivityService.getActivityProfile(id);
138 160
 
161
+        if (null != result) {
162
+            if (StatusEnum.DELETED.getCode().equals(result.getStatus())) {
163
+                return ResponseBean.error("当前内容已经被删除", ResponseBean.ERROR_ILLEGAL_PARAMS);
164
+            }
165
+        }
166
+
139 167
         if ("wx".equals(client)) {
168
+            if (StatusEnum.READY.getCode().equals(result.getStatus())) {
169
+                return ResponseBean.error("当前内容不存在或者未发布", ResponseBean.ERROR_ILLEGAL_PARAMS);
170
+            }
171
+
140 172
             TaPerson taPerson = getPerson(request);
141 173
             // 是否参与投票
142 174
             if (null != result.getIsVote() && result.getIsVote()) {
143 175
                 boolean isVoted = iTaActivityVoteService.isVotedBy(result.getActivityId(), taPerson.getPersonId());
144
-                result.setIsSelfVoted(isVoted);
176
+                TaActivityVote taActivityVote = iTaActivityVoteService.getBy(result.getActivityId(), taPerson);
177
+                if (null != taActivityVote) {
178
+                    result.setSelfVoted(taActivityVote.getItemId());
179
+                }
145 180
             }
146 181
             // 是否参与报名
147 182
             if (null != result.getIsEnroll() && result.getIsEnroll()) {
148 183
                 boolean isSelfEnrolled = iTaActivityEnrollService.isEnrolledBy(result.getActivityId(), taPerson);
149 184
                 result.setIsSelfEnrolled(isSelfEnrolled);
150 185
             }
186
+
187
+            // 增加 pv 忽略错误
188
+            try {
189
+                result.setPv(result.getPv() + 1);
190
+                iTaActivityService.updateById(result);
191
+            } catch (Exception e) {
192
+                e.printStackTrace();
193
+            }
151 194
         }
152 195
 
153 196
         return ResponseBean.success(result);

+ 26
- 5
src/main/java/com/yunzhi/liyuanhui/controller/TaAdvertController.java Wyświetl plik

@@ -1,6 +1,7 @@
1 1
 package com.yunzhi.liyuanhui.controller;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4 5
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 6
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 7
 import com.yunzhi.liyuanhui.common.BaseController;
@@ -43,19 +44,35 @@ public class TaAdvertController extends BaseController {
43 44
      * @param pageSize
44 45
      * @return
45 46
      */
46
-    @RequestMapping(value="/{client}/advert",method= RequestMethod.GET)
47
+    @RequestMapping(value="/admin/advert",method= RequestMethod.GET)
47 48
     public ResponseBean taAdvertList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
48 49
                                      @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
49 50
                                      @RequestParam(value ="title", required = false) String title,
50 51
                                      @RequestParam(value ="position", required = false) String position,
51
-                                     @RequestParam(value ="status", required = false) Integer status,
52
-                                     @PathVariable String client) throws Exception{
52
+                                     @RequestParam(value ="status", required = false) Integer status) throws Exception{
53 53
 
54 54
         IPage<TaAdvert> pg = new Page<>(pageNum, pageSize);
55 55
         QueryWrapper<TaAdvert> queryWrapper = new QueryWrapper<>();
56 56
         queryWrapper.like(!StringUtils.isEmpty(title), "title", title);
57 57
         queryWrapper.eq(!StringUtils.isEmpty(position), "position", position);
58 58
         queryWrapper.eq(status != null, "status", status);
59
+        queryWrapper.gt(status == null, "status", StatusEnum.DELETED.getCode());
60
+        queryWrapper.orderByDesc("sort_no");
61
+        queryWrapper.orderByDesc("create_date");
62
+
63
+        IPage<TaAdvert> result = iTaAdvertService.page(pg, queryWrapper);
64
+        return ResponseBean.success(result);
65
+    }
66
+
67
+    @RequestMapping(value="/wx/advert",method= RequestMethod.GET)
68
+    public ResponseBean getWxList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
69
+                                     @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
70
+                                     @RequestParam(value ="position", required = false) String position) throws Exception{
71
+
72
+        IPage<TaAdvert> pg = new Page<>(pageNum, pageSize);
73
+        QueryWrapper<TaAdvert> queryWrapper = new QueryWrapper<>();
74
+        queryWrapper.eq(!StringUtils.isEmpty(position), "position", position);
75
+        queryWrapper.eq("status", StatusEnum.NORMAL.getCode());
59 76
         queryWrapper.orderByDesc("sort_no");
60 77
         queryWrapper.orderByDesc("create_date");
61 78
 
@@ -83,10 +100,14 @@ public class TaAdvertController extends BaseController {
83 100
      * @param id  实体ID
84 101
      */
85 102
     @ResponseBody
86
-    @RequestMapping(value="/taAdvert/{id}", method= RequestMethod.DELETE)
103
+    @RequestMapping(value="/admin/advert/{id}", method= RequestMethod.DELETE)
87 104
     public ResponseBean taAdvertDelete(@PathVariable Integer id) throws Exception{
88 105
 
89
-        if(iTaAdvertService.removeById(id)){
106
+        UpdateWrapper<TaAdvert> updateWrapper = new UpdateWrapper<>();
107
+        updateWrapper.set("status", StatusEnum.DELETED.getCode());
108
+        updateWrapper.eq("adv_id", id);
109
+
110
+        if(iTaAdvertService.update(updateWrapper)){
90 111
             return ResponseBean.success("success");
91 112
         }else {
92 113
             return ResponseBean.error("删除失败", ResponseBean.ERROR_UNAVAILABLE);

+ 41
- 6
src/main/java/com/yunzhi/liyuanhui/controller/TaNewsController.java Wyświetl plik

@@ -1,11 +1,13 @@
1 1
 package com.yunzhi.liyuanhui.controller;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4 5
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 6
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 7
 import com.yunzhi.liyuanhui.common.BaseController;
7 8
 import com.yunzhi.liyuanhui.common.ResponseBean;
8 9
 import com.yunzhi.liyuanhui.common.StringUtils;
10
+import com.yunzhi.liyuanhui.enums.StatusEnum;
9 11
 import org.slf4j.Logger;
10 12
 import org.slf4j.LoggerFactory;
11 13
 import org.springframework.beans.factory.annotation.Autowired;
@@ -43,9 +45,8 @@ public class TaNewsController extends BaseController {
43 45
      * @param pageSize
44 46
      * @return
45 47
      */
46
-    @RequestMapping(value="/{client}/news",method= RequestMethod.GET)
47
-    public ResponseBean taNewsList(@PathVariable String client,
48
-                                   @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
48
+    @RequestMapping(value="/admin/news",method= RequestMethod.GET)
49
+    public ResponseBean taNewsList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
49 50
                                    @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
50 51
                                    @RequestParam(value = "typeId", required = false) Integer typeId,
51 52
                                    @RequestParam(value = "title", required = false) String title,
@@ -56,6 +57,22 @@ public class TaNewsController extends BaseController {
56 57
         queryWrapper.eq(null != typeId, "type_id", typeId);
57 58
         queryWrapper.like(!StringUtils.isEmpty(title), "title", title);
58 59
         queryWrapper.eq(null != status, "status", status);
60
+        queryWrapper.gt(null == status, "status", StatusEnum.DELETED.getCode());
61
+        queryWrapper.orderByDesc("create_date");
62
+
63
+        IPage<TaNews> result = iTaNewsService.page(pg, queryWrapper);
64
+        return ResponseBean.success(result);
65
+    }
66
+
67
+    @RequestMapping(value="/wx/news",method= RequestMethod.GET)
68
+    public ResponseBean getWxList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
69
+                                   @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
70
+                                   @RequestParam(value = "typeId", required = false) Integer typeId) throws Exception{
71
+
72
+        IPage<TaNews> pg = new Page<>(pageNum, pageSize);
73
+        QueryWrapper<TaNews> queryWrapper = new QueryWrapper<>();
74
+        queryWrapper.eq(null != typeId, "type_id", typeId);
75
+        queryWrapper.eq("status", StatusEnum.NORMAL.getCode());
59 76
         queryWrapper.orderByDesc("create_date");
60 77
 
61 78
         IPage<TaNews> result = iTaNewsService.page(pg, queryWrapper);
@@ -82,10 +99,14 @@ public class TaNewsController extends BaseController {
82 99
      * @param id  实体ID
83 100
      */
84 101
     @ResponseBody
85
-    @RequestMapping(value="/taNews/{id}", method= RequestMethod.DELETE)
102
+    @RequestMapping(value="/admin/news/{id}", method= RequestMethod.DELETE)
86 103
     public ResponseBean taNewsDelete(@PathVariable Integer id) throws Exception{
87 104
 
88
-        if(iTaNewsService.removeById(id)){
105
+        UpdateWrapper<TaNews> updateWrapper = new UpdateWrapper<>();
106
+        updateWrapper.set("status", StatusEnum.DELETED.getCode());
107
+        updateWrapper.eq("news_id", id);
108
+
109
+        if(iTaNewsService.update(updateWrapper)){
89 110
             return ResponseBean.success("success");
90 111
         }else {
91 112
             return ResponseBean.error("删除失败", ResponseBean.ERROR_UNAVAILABLE);
@@ -116,6 +137,20 @@ public class TaNewsController extends BaseController {
116 137
     @RequestMapping(value="/{client}/news/{id}",method= RequestMethod.GET)
117 138
     public ResponseBean taNewsGet(@PathVariable String client,
118 139
                                   @PathVariable Integer id) throws Exception{
119
-        return ResponseBean.success(iTaNewsService.getById(id));
140
+        TaNews result = iTaNewsService.getById(id);
141
+
142
+        if (null != result) {
143
+            if (StatusEnum.DELETED.getCode().equals(result.getStatus())) {
144
+                return ResponseBean.error("当前内容已经被删除", ResponseBean.ERROR_ILLEGAL_PARAMS);
145
+            }
146
+        }
147
+
148
+        if ("wx".equals(client)) {
149
+            if (StatusEnum.READY.getCode().equals(result.getStatus())) {
150
+                return ResponseBean.error("当前内容不存在或者未发布", ResponseBean.ERROR_ILLEGAL_PARAMS);
151
+            }
152
+        }
153
+
154
+        return ResponseBean.success(result);
120 155
     }
121 156
 }

+ 4
- 2
src/main/java/com/yunzhi/liyuanhui/controller/TaPersonController.java Wyświetl plik

@@ -70,13 +70,15 @@ public class TaPersonController extends BaseController {
70 70
          List<TaPerson> personList = iTaPersonService.getListBy(phone, name);
71 71
          for (TaPerson person: personList) {
72 72
              // 设置性别
73
-             if (1 == person.getSex()) {
73
+             if (Integer.valueOf(1) == person.getSex()) {
74 74
                  person.setGender("男");
75
-             } else if (2 == person.getSex()) {
75
+             } else if (Integer.valueOf(1) == person.getSex()) {
76 76
                  person.setGender("女");
77 77
              } else {
78 78
                  person.setGender("未知");
79 79
              }
80
+             // 转换成 excel 可识别的时间
81
+             person.setExcelDate(DateUtils.local2Date(person.getCreateDate()));
80 82
          }
81 83
 
82 84
         ExcelUtils.flush(response, TaPerson.class, personList, "会员信息统计");

+ 1
- 1
src/main/java/com/yunzhi/liyuanhui/controller/TaRecommenderController.java Wyświetl plik

@@ -125,7 +125,7 @@ public class TaRecommenderController extends BaseController {
125 125
         IPage<TaRecommender> pg = new Page<>(pageNum, pageSize);
126 126
         QueryWrapper<TaRecommender> queryWrapper = new QueryWrapper<>();
127 127
         queryWrapper.eq("person_id", personId);
128
-        queryWrapper.gt("status", StatusEnum.DELETED);
128
+        queryWrapper.gt("status", StatusEnum.DELETED.getCode());
129 129
         queryWrapper.orderByDesc("create_date");
130 130
         return ResponseBean.success(iTaRecommenderService.list(queryWrapper));
131 131
     }

+ 8
- 0
src/main/java/com/yunzhi/liyuanhui/entity/RecommendExport.java Wyświetl plik

@@ -1,6 +1,7 @@
1 1
 package com.yunzhi.liyuanhui.entity;
2 2
 
3 3
 import com.alibaba.excel.annotation.ExcelProperty;
4
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
4 5
 import lombok.Data;
5 6
 
6 7
 import java.util.Date;
@@ -8,27 +9,34 @@ import java.util.Date;
8 9
 @Data
9 10
 public class RecommendExport {
10 11
 
12
+    @ColumnWidth(30)
11 13
     @ExcelProperty(value = "时间", index = 1)
12 14
     private Date createDate;
13 15
 
16
+    @ColumnWidth(20)
14 17
     @ExcelProperty(value = "手机", index = 2)
15 18
     private String phone;
16 19
 
20
+    @ColumnWidth(20)
17 21
     @ExcelProperty(value = "名称", index = 3)
18 22
     private String name;
19 23
 
20 24
     @ExcelProperty(value = "性别", index = 4)
21 25
     private String sex;
22 26
 
27
+    @ColumnWidth(50)
23 28
     @ExcelProperty(value = "备注", index = 5)
24 29
     private String remark;
25 30
 
31
+    @ColumnWidth(20)
26 32
     @ExcelProperty(value = "推荐人手机", index = 6)
27 33
     private String recPhone;
28 34
 
35
+    @ColumnWidth(20)
29 36
     @ExcelProperty(value = "推荐人名称", index = 7)
30 37
     private String recName;
31 38
 
39
+    @ColumnWidth(15)
32 40
     @ExcelProperty(value = "审核状态", index = 8)
33 41
     private String status;
34 42
 }

+ 11
- 1
src/main/java/com/yunzhi/liyuanhui/entity/TaActivity.java Wyświetl plik

@@ -132,6 +132,11 @@ public class TaActivity implements Serializable {
132 132
      */
133 133
     private Integer enrollNum;
134 134
 
135
+    /**
136
+     * 最大报名人数
137
+     */
138
+    private Integer enrollMax;
139
+
135 140
     /**
136 141
      * 分享图
137 142
      */
@@ -152,6 +157,11 @@ public class TaActivity implements Serializable {
152 157
      */
153 158
     private Boolean toIndex;
154 159
 
160
+    /**
161
+     * pv
162
+     */
163
+    private Integer pv;
164
+
155 165
     /**
156 166
      * 投票列表
157 167
      */
@@ -162,7 +172,7 @@ public class TaActivity implements Serializable {
162 172
      * 是否参与投票
163 173
      */
164 174
     @TableField(exist = false)
165
-    Boolean isSelfVoted;
175
+    Integer selfVoted;
166 176
 
167 177
     /**
168 178
      * 是否参与报名

+ 21
- 1
src/main/java/com/yunzhi/liyuanhui/entity/TaPerson.java Wyświetl plik

@@ -1,11 +1,15 @@
1 1
 package com.yunzhi.liyuanhui.entity;
2 2
 
3
+import com.alibaba.excel.annotation.ExcelIgnore;
3 4
 import com.alibaba.excel.annotation.ExcelProperty;
5
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
4 6
 import com.baomidou.mybatisplus.annotation.IdType;
5 7
 import com.baomidou.mybatisplus.annotation.TableField;
6 8
 import com.baomidou.mybatisplus.annotation.TableId;
7 9
 import java.time.LocalDateTime;
8 10
 import java.io.Serializable;
11
+import java.util.Date;
12
+
9 13
 import lombok.Data;
10 14
 import lombok.EqualsAndHashCode;
11 15
 import lombok.experimental.Accessors;
@@ -23,66 +27,82 @@ import lombok.experimental.Accessors;
23 27
 @Accessors(chain = true)
24 28
 public class TaPerson implements Serializable {
25 29
 
30
+    @ExcelIgnore
26 31
     private static final long serialVersionUID = 1L;
27 32
 
28 33
     /**
29 34
      * 人员ID
30 35
      */
36
+    @ExcelIgnore
31 37
     @TableId(value = "person_id", type = IdType.AUTO)
32 38
     private Integer personId;
33 39
 
34 40
     /**
35 41
      * openid
36 42
      */
43
+    @ExcelIgnore
37 44
     private String openid;
38 45
 
39 46
     /**
40 47
      * 姓名
41 48
      */
49
+    @ColumnWidth(20)
42 50
     @ExcelProperty(value = "名称", index = 3)
43 51
     private String name;
44 52
 
45 53
     /**
46 54
      * 昵称
47 55
      */
56
+    @ColumnWidth(30)
48 57
     @ExcelProperty(value = "昵称", index = 4)
49 58
     private String nickname;
50 59
 
51 60
     /**
52 61
      * 头像
53 62
      */
63
+    @ExcelIgnore
54 64
     private String avatar;
55 65
 
56 66
     /**
57 67
      * 电话
58 68
      */
69
+    @ColumnWidth(20)
59 70
     @ExcelProperty(value = "手机", index = 2)
60 71
     private String phone;
61 72
 
62 73
     /**
63 74
      * 性别
64 75
      */
76
+    @ExcelIgnore
65 77
     private Integer sex;
66 78
 
67 79
     /**
68 80
      * 创建时间
69 81
      */
70
-    @ExcelProperty(value = "时间", index = 1)
82
+    @ExcelIgnore
71 83
     private LocalDateTime createDate;
72 84
 
85
+    @ColumnWidth(30)
86
+    @ExcelProperty(value = "时间", index = 1)
87
+    @TableField(exist = false)
88
+    private Date excelDate;
89
+
73 90
     /**
74 91
      * 推荐人
75 92
      */
93
+    @ExcelIgnore
76 94
     private Integer recommender;
77 95
 
78 96
     /**
79 97
      * 推荐时间
80 98
      */
99
+    @ExcelIgnore
81 100
     private LocalDateTime recDate;
82 101
 
83 102
     /**
84 103
      * 状态
85 104
      */
105
+    @ExcelIgnore
86 106
     private Integer status;
87 107
 
88 108
     @ExcelProperty(value = "性别", index = 5)

+ 2
- 0
src/main/java/com/yunzhi/liyuanhui/service/ITaActivityVoteService.java Wyświetl plik

@@ -19,4 +19,6 @@ public interface ITaActivityVoteService extends IService<TaActivityVote> {
19 19
     boolean vote(TaActivity taActivity, TaActivityVoteItem taActivityVoteItem, TaPerson taPerson) throws Exception;
20 20
 
21 21
     boolean isVotedBy(Integer activityId, Integer personId) throws Exception;
22
+
23
+    TaActivityVote getBy(Integer activityId, TaPerson taPerson) throws Exception;
22 24
 }

+ 13
- 2
src/main/java/com/yunzhi/liyuanhui/service/impl/TaActivityEnrollServiceImpl.java Wyświetl plik

@@ -55,8 +55,19 @@ public class TaActivityEnrollServiceImpl extends ServiceImpl<TaActivityEnrollMap
55 55
             taActivityEnroll.setEnrollNum(1);
56 56
         }
57 57
 
58
+        if (null != taActivity.getEnrollNum() && null != taActivity.getEnrollMax()) {
59
+            if (taActivity.getEnrollNum() >= taActivity.getEnrollMax()) {
60
+                throw new Exception("当前报名人数已满");
61
+            }
62
+
63
+            if ((taActivity.getEnrollNum() + taActivityEnroll.getEnrollNum()) > taActivity.getEnrollMax()) {
64
+                throw new Exception("当前报名名额只剩 " + String.valueOf(taActivity.getEnrollMax() - taActivity.getEnrollNum()) + " 位");
65
+            }
66
+        }
67
+
58 68
         // 判断当前手机号是否已经报名
59 69
         QueryWrapper<TaActivityEnroll> queryWrapper = new QueryWrapper<>();
70
+        queryWrapper.eq("activity_id", taActivity.getActivityId());
60 71
         queryWrapper.nested(q -> q.eq("person_phone", taPerson.getPhone())
61 72
                 .or().eq("person_phone", taActivityEnroll.getEnrollPhone())
62 73
                 .or().eq("enroll_phone", taPerson.getPhone())
@@ -78,9 +89,9 @@ public class TaActivityEnrollServiceImpl extends ServiceImpl<TaActivityEnrollMap
78 89
             throw new RuntimeException("报名失败, 请重试");
79 90
         }
80 91
 
81
-        // 更新投票人数
92
+        // 更新报名人数
82 93
         UpdateWrapper<TaActivity> updateWrapper = new UpdateWrapper<>();
83
-        updateWrapper.set("enroll_num", taActivity.getEnrollNum() + 1);
94
+        updateWrapper.set("enroll_num", taActivity.getEnrollNum() + taActivityEnroll.getEnrollNum());
84 95
         updateWrapper.eq("activity_id", taActivity.getActivityId());
85 96
         updateWrapper.eq("enroll_num", taActivity.getEnrollNum());
86 97
         boolean update = iTaActivityService.update(updateWrapper);

+ 1
- 1
src/main/java/com/yunzhi/liyuanhui/service/impl/TaActivityServiceImpl.java Wyświetl plik

@@ -35,7 +35,7 @@ public class TaActivityServiceImpl extends ServiceImpl<TaActivityMapper, TaActiv
35 35
 
36 36
         QueryWrapper<TaActivityVoteItem> queryWrapper = new QueryWrapper<>();
37 37
         queryWrapper.eq("activity_id", id);
38
-        queryWrapper.eq("status", StatusEnum.NORMAL.getCode());
38
+        queryWrapper.gt("status", StatusEnum.DELETED.getCode());
39 39
         queryWrapper.orderByAsc("sort_no");
40 40
 
41 41
         taActivity.setVoteItemList(iTaActivityVoteItemService.list(queryWrapper));

+ 22
- 0
src/main/java/com/yunzhi/liyuanhui/service/impl/TaActivityVoteServiceImpl.java Wyświetl plik

@@ -9,6 +9,7 @@ import com.yunzhi.liyuanhui.entity.TaActivityVoteItem;
9 9
 import com.yunzhi.liyuanhui.entity.TaPerson;
10 10
 import com.yunzhi.liyuanhui.enums.StatusEnum;
11 11
 import com.yunzhi.liyuanhui.mapper.TaActivityVoteMapper;
12
+import com.yunzhi.liyuanhui.service.ITaActivityService;
12 13
 import com.yunzhi.liyuanhui.service.ITaActivityVoteItemService;
13 14
 import com.yunzhi.liyuanhui.service.ITaActivityVoteService;
14 15
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -30,6 +31,9 @@ public class TaActivityVoteServiceImpl extends ServiceImpl<TaActivityVoteMapper,
30 31
     @Autowired
31 32
     TaActivityVoteMapper taActivityVoteMapper;
32 33
 
34
+    @Autowired
35
+    ITaActivityService iTaActivityService;
36
+
33 37
     @Autowired
34 38
     ITaActivityVoteItemService iTaActivityVoteItemService;
35 39
 
@@ -88,6 +92,16 @@ public class TaActivityVoteServiceImpl extends ServiceImpl<TaActivityVoteMapper,
88 92
             throw new RuntimeException("投票失败, 请重试");
89 93
         }
90 94
 
95
+        // 更新投票总人数
96
+        UpdateWrapper<TaActivity> updateWrapper2 = new UpdateWrapper<>();
97
+        updateWrapper2.set("vote_num", taActivity.getVoteNum() + 1);
98
+        updateWrapper2.eq("activity_id", taActivity.getActivityId());
99
+        updateWrapper2.eq("vote_num", taActivity.getVoteNum());
100
+        boolean update2 = iTaActivityService.update(updateWrapper2);
101
+        if (!update2) {
102
+            throw new RuntimeException("投票失败, 请重试");
103
+        }
104
+
91 105
         return true;
92 106
     }
93 107
 
@@ -98,4 +112,12 @@ public class TaActivityVoteServiceImpl extends ServiceImpl<TaActivityVoteMapper,
98 112
         queryWrapper.eq("person_id", personId);
99 113
         return this.count(queryWrapper) > 0;
100 114
     }
115
+
116
+    @Override
117
+    public TaActivityVote getBy(Integer activityId, TaPerson taPerson) throws Exception {
118
+        QueryWrapper<TaActivityVote> queryWrapper = new QueryWrapper<>();
119
+        queryWrapper.eq("activity_id", activityId);
120
+        queryWrapper.eq("person_id", taPerson.getPersonId());
121
+        return this.getOne(queryWrapper);
122
+    }
101 123
 }

+ 7
- 7
src/main/resources/application-prod.yml Wyświetl plik

@@ -7,10 +7,10 @@ spring:
7 7
     username: liyuanhui
8 8
     password: abcd@123456
9 9
 
10
-#weixin:
11
-#  miniapp:
12
-#    appid: wx842b0af4df4552a5
13
-#    secret: 602601def4b83277e6add96a82be937b
14
-#    token:
15
-#    aesKey:
16
-#    msgDataFormat: JSON
10
+weixin:
11
+  miniapp:
12
+    appid: wx842b0af4df4552a5
13
+    secret: 602601def4b83277e6add96a82be937b
14
+    token:
15
+    aesKey:
16
+    msgDataFormat: JSON

+ 16
- 0
src/main/resources/application-test.yml Wyświetl plik

@@ -0,0 +1,16 @@
1
+###
2
+server:
3
+  port: 8083
4
+spring:
5
+  datasource:
6
+    url: jdbc:mysql://rm-uf6z3z6jq11x653d77o.mysql.rds.aliyuncs.com:3306/liyuanhui?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
7
+    username: liyuanhui
8
+    password: abcd@123456
9
+
10
+#weixin:
11
+#  miniapp:
12
+#    appid: wx842b0af4df4552a5
13
+#    secret: 602601def4b83277e6add96a82be937b
14
+#    token:
15
+#    aesKey:
16
+#    msgDataFormat: JSON

+ 3
- 2
src/main/resources/mapper/TaActivityMapper.xml Wyświetl plik

@@ -4,13 +4,14 @@
4 4
 
5 5
     <select id="getListByPersonId" resultType="com.yunzhi.liyuanhui.entity.TaActivity">
6 6
         SELECT
7
-            t.*
7
+            DISTINCT t.*
8 8
         FROM ta_activity t
9 9
         LEFT JOIN ta_activity_enroll s ON t.activity_id = s.activity_id
10
+        LEFT JOIN ta_activity_vote v on t.activity_id = v.activity_id
10 11
         WHERE
11 12
             s.person_id = #{personId}
13
+            OR v.person_id = #{personId}
12 14
         ORDER BY
13
-            s.create_date DESC,
14 15
             t.create_date DESC
15 16
     </select>
16 17
 </mapper>