dingxin 6 лет назад
Родитель
Сommit
2a342e0b4d
16 измененных файлов: 220 добавлений и 11 удалений
  1. 19
    4
      whole-estate/src/main/java/com/example/wholeestate/controller/ActivityController.java
  2. 1
    3
      whole-estate/src/main/java/com/example/wholeestate/controller/BuildingController.java
  3. 10
    0
      whole-estate/src/main/java/com/example/wholeestate/controller/BuildingDynamicController.java
  4. 27
    0
      whole-estate/src/main/java/com/example/wholeestate/controller/CommentController.java
  5. 10
    0
      whole-estate/src/main/java/com/example/wholeestate/dao/ActivityMapper.java
  6. 6
    0
      whole-estate/src/main/java/com/example/wholeestate/model/Activity.java
  7. 7
    0
      whole-estate/src/main/java/com/example/wholeestate/model/Comment.java
  8. 7
    0
      whole-estate/src/main/java/com/example/wholeestate/service/IActivityEnrollService.java
  9. 8
    1
      whole-estate/src/main/java/com/example/wholeestate/service/IBuildingDynamicService.java
  10. 1
    0
      whole-estate/src/main/java/com/example/wholeestate/service/IBuildingService.java
  11. 17
    0
      whole-estate/src/main/java/com/example/wholeestate/service/ICommentService.java
  12. 33
    0
      whole-estate/src/main/java/com/example/wholeestate/service/impl/ActivityEnrollServiceImpl.java
  13. 7
    2
      whole-estate/src/main/java/com/example/wholeestate/service/impl/ActivityServiceImpl.java
  14. 11
    0
      whole-estate/src/main/java/com/example/wholeestate/service/impl/BuildingDynamicServiceImpl.java
  15. 54
    0
      whole-estate/src/main/java/com/example/wholeestate/service/impl/CommentServiceImpl.java
  16. 2
    1
      whole-estate/src/main/resources/mapper/BuildingMapper.xml

+ 19
- 4
whole-estate/src/main/java/com/example/wholeestate/controller/ActivityController.java Просмотреть файл

@@ -54,7 +54,7 @@ public class ActivityController extends BaseController {
54 54
      */
55 55
     @InitBinder
56 56
     protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
57
-        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
57
+        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
58 58
         CustomDateEditor editor = new CustomDateEditor(df, true);//true表示允许为空,false反之
59 59
         binder.registerCustomEditor(Date.class, editor);
60 60
     }
@@ -153,14 +153,18 @@ public class ActivityController extends BaseController {
153 153
     @ApiOperation(value = "删除活动", notes = "删除活动")
154 154
     public ResponseBean delete(@PathVariable String activityId) {
155 155
         ResponseBean responseBean = new ResponseBean();
156
-        Activity activity = iActivityService.getById(activityId);
156
+        QueryWrapper<Activity> activityQueryWrapper = new QueryWrapper<>();
157
+        activityQueryWrapper.eq("activity_id", activityId);
158
+        Activity activity = iActivityService.getOne(activityQueryWrapper);
157 159
         if (null == activity) {
158 160
             responseBean.addError("活动不存在!");
159 161
             return responseBean;
160 162
         }
163
+        if (activity.getStatus() == 1) {
164
+            responseBean.addError("已发布的活动不能删除!");
165
+            return responseBean;
166
+        }
161 167
         activity.setStatus(-1);
162
-        QueryWrapper<Activity> activityQueryWrapper = new QueryWrapper<>();
163
-        activityQueryWrapper.eq("activity_id", activity.getActivityId());
164 168
         iActivityService.update(activity, activityQueryWrapper);
165 169
         responseBean.addSuccess("操作成功!");
166 170
         return responseBean;
@@ -191,4 +195,15 @@ public class ActivityController extends BaseController {
191 195
         return responseBean;
192 196
     }
193 197
 
198
+    @RequestMapping(value = "/wx/signUpActivity/{openid}", method = RequestMethod.POST)
199
+    @ApiOperation(value = "微信小程序活动报名", notes = "微信小程序活动报名")
200
+    @ApiImplicitParams({
201
+            @ApiImplicitParam(paramType = "body", dataTypeClass = String.class, name = "parameter", value = "activityId活动编号;enrollDate报名时间"),
202
+    })
203
+    public ResponseBean wxSignUpActivity(@PathVariable("openid") String openid, @RequestBody String parameter) {
204
+        ResponseBean responseBean = new ResponseBean();
205
+        responseBean = iActivityEnrollService.wxSignUpActivity(openid, parameter);
206
+        return responseBean;
207
+    }
208
+
194 209
 }

+ 1
- 3
whole-estate/src/main/java/com/example/wholeestate/controller/BuildingController.java Просмотреть файл

@@ -129,8 +129,6 @@ public class BuildingController extends BaseController {
129 129
     @ApiImplicitParam(paramType = "body",dataType = "String",name = "parameter",value = "id:楼盘id,status:状态," )
130 130
 
131 131
     })
132
-
133
-//    @ApiImplicitParam(paramType = "header", dataTypeClass = String.class, name = "X-Auth-Token", value = "token")
134 132
     @RequestMapping(value = "/building/update/status", method = RequestMethod.PUT)
135 133
     public ResponseBean buildingUpdateStatus(@RequestBody String parameter, HttpSession session){
136 134
         ResponseBean  responseBean = iBuildingService.buildingUpdateStatus(parameter);
@@ -166,7 +164,7 @@ public class BuildingController extends BaseController {
166 164
             @ApiImplicitParam(paramType = "path",dataType = "String",name = "parameter",value = "id:楼盘id" )
167 165
 
168 166
     })
169
-    @RequestMapping(value = "/building/delete/status{id}", method = RequestMethod.DELETE)
167
+    @RequestMapping(value = "/building/delete/{id}", method = RequestMethod.DELETE)
170 168
     public ResponseBean buildingdelete(@PathVariable("id") String id, HttpSession session){
171 169
         ResponseBean  responseBean = iBuildingService.buildingdelete(id);
172 170
         return responseBean;

+ 10
- 0
whole-estate/src/main/java/com/example/wholeestate/controller/BuildingDynamicController.java Просмотреть файл

@@ -64,4 +64,14 @@ public class BuildingDynamicController extends BaseController {
64 64
         return responseBean;
65 65
     }
66 66
 
67
+    @RequestMapping(value = "/wx/buildingDynamiceInfo/{dynamicId}", method = RequestMethod.GET)
68
+    @ApiOperation(value = "微信小程序项目动态详情", notes = "微信小程序项目动态详情")
69
+    @ApiImplicitParams({
70
+            @ApiImplicitParam(paramType = "path", dataTypeClass=String.class, name = "dynamicId", value = "项目动态dynamicId"),
71
+    })
72
+    public ResponseBean iBuildingDynamicSelectId(@PathVariable(value = "dynamicId") String dynamicId, HttpSession session){
73
+        ResponseBean  responseBean = iBuildingDynamicService.getWxBuildingDynamiceInfo(dynamicId);
74
+        return responseBean;
75
+    }
76
+
67 77
 }

+ 27
- 0
whole-estate/src/main/java/com/example/wholeestate/controller/CommentController.java Просмотреть файл

@@ -99,5 +99,32 @@ public class CommentController extends BaseController {
99 99
         return responseBean;
100 100
     }
101 101
 
102
+    @RequestMapping(value = "/wx/comment/list", method = RequestMethod.GET)
103
+    @ApiOperation(value = "微信小程序查询评论列表", notes = "微信小程序查询评论列表")
104
+    @ApiImplicitParams({
105
+            @ApiImplicitParam(paramType = "query", dataTypeClass = Integer.class, name = "pageNum", value = "pageNum第几页"),
106
+            @ApiImplicitParam(paramType = "query", dataTypeClass = Integer.class, name = "pageSize", value = "pageSize一页多少行"),
107
+            @ApiImplicitParam(paramType = "query", dataTypeClass = String.class, name = "commentType", value = "评论类型"),
108
+            @ApiImplicitParam(paramType = "query", dataTypeClass = String.class, name = "mainId", value = "评论主体id"),
109
+    })
110
+    public ResponseBean wxCommentList(@RequestParam(defaultValue = "1") Integer pageNum,
111
+                                    @RequestParam(defaultValue = "10") Integer pageSize,
112
+                                    @RequestParam String commentType,
113
+                                    @RequestParam String mainId) {
114
+        ResponseBean responseBean = new ResponseBean();
115
+        responseBean = iCommentService.getWxCommentList(commentType, mainId, pageNum, pageSize);
116
+        return responseBean;
117
+    }
118
+
119
+    @RequestMapping(value = "/wx/comment/add/{openid}", method = RequestMethod.POST)
120
+    @ApiOperation(value = "微信小程序添加评论", notes = "微信小程序添加评论")
121
+    @ApiImplicitParams({
122
+            @ApiImplicitParam(paramType = "body", dataTypeClass = String.class, name = "parameter", value = "commentType评论类型;mainId评论类型;parentId父级;commentContent评论内容")
123
+    })
124
+    public ResponseBean addWxComment(@PathVariable("openid") String openid,@RequestBody String parameter) {
125
+        ResponseBean responseBean = new ResponseBean();
126
+        responseBean = iCommentService.addWxComment(openid,parameter);
127
+        return responseBean;
128
+    }
102 129
 
103 130
 }

+ 10
- 0
whole-estate/src/main/java/com/example/wholeestate/dao/ActivityMapper.java Просмотреть файл

@@ -3,6 +3,8 @@ package com.example.wholeestate.dao;
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.example.wholeestate.model.Activity;
6
+import org.apache.ibatis.annotations.Param;
7
+import org.apache.ibatis.annotations.Select;
6 8
 
7 9
 /**
8 10
  * <p>
@@ -14,4 +16,12 @@ import com.example.wholeestate.model.Activity;
14 16
  */
15 17
 public interface ActivityMapper extends BaseMapper<Activity> {
16 18
 
19
+    /**
20
+     * 根据 活动id 查询报名人数
21
+     * @param activityId
22
+     * @return
23
+     */
24
+    @Select("select count(*) from ta_activity_enroll where activity_id = #{activityId}")
25
+    Integer signUpNumber(@Param("activityId") String activityId);
26
+
17 27
 }

+ 6
- 0
whole-estate/src/main/java/com/example/wholeestate/model/Activity.java Просмотреть файл

@@ -121,4 +121,10 @@ public class Activity implements Serializable {
121 121
      */
122 122
     @TableField(exist = false)
123 123
     private String buildingName;
124
+
125
+    /**
126
+     * 活动已经报名的人数
127
+     */
128
+    @TableField(exist = false)
129
+    private Integer signUpNumber;
124 130
 }

+ 7
- 0
whole-estate/src/main/java/com/example/wholeestate/model/Comment.java Просмотреть файл

@@ -1,5 +1,6 @@
1 1
 package com.example.wholeestate.model;
2 2
 
3
+import com.baomidou.mybatisplus.annotation.TableField;
3 4
 import com.baomidou.mybatisplus.annotation.TableName;
4 5
 import lombok.Data;
5 6
 import lombok.EqualsAndHashCode;
@@ -7,6 +8,7 @@ import lombok.experimental.Accessors;
7 8
 
8 9
 import java.io.Serializable;
9 10
 import java.time.LocalDateTime;
11
+import java.util.List;
10 12
 
11 13
 /**
12 14
  * <p>
@@ -74,5 +76,10 @@ public class Comment implements Serializable {
74 76
      */
75 77
     private Integer status;
76 78
 
79
+    /**
80
+     * 子评论
81
+     */
82
+    @TableField(exist = false)
83
+    private List<Comment> childComment;
77 84
 
78 85
 }

+ 7
- 0
whole-estate/src/main/java/com/example/wholeestate/service/IActivityEnrollService.java Просмотреть файл

@@ -30,4 +30,11 @@ public interface IActivityEnrollService extends IService<ActivityEnroll> {
30 30
      */
31 31
     ResponseBean getOpenidActivityUpList(String openid, Integer pageNum, Integer pageSize);
32 32
 
33
+    /**
34
+     * 微信小程序 报名活动
35
+     * @param parameter
36
+     * @return
37
+     */
38
+    ResponseBean wxSignUpActivity(String openid,String parameter);
39
+
33 40
 }

+ 8
- 1
whole-estate/src/main/java/com/example/wholeestate/service/IBuildingDynamicService.java Просмотреть файл

@@ -28,9 +28,16 @@ public interface IBuildingDynamicService extends IService<BuildingDynamic> {
28 28
     ResponseBean iBuildingDynamicSelectId(Integer id);
29 29
 
30 30
     /**
31
-     * 项目动态管理列表
31
+     * 微信小程序 项目动态管理列表
32 32
      * @return
33 33
      */
34 34
     ResponseBean getWxBuildingDynamiceList(Integer pageNum,Integer pageSize);
35 35
 
36
+    /**
37
+     * 微信小程序 项目详情
38
+     * @param dynamicId
39
+     * @return
40
+     */
41
+    ResponseBean getWxBuildingDynamiceInfo(String dynamicId);
42
+
36 43
 }

+ 1
- 0
whole-estate/src/main/java/com/example/wholeestate/service/IBuildingService.java Просмотреть файл

@@ -62,6 +62,7 @@ public interface IBuildingService extends IService<Building> {
62 62
      */
63 63
     ResponseBean buildingdelete(String id);
64 64
 
65
+
65 66
     /**
66 67
      * 楼盘户型添加
67 68
      * @param parameter

+ 17
- 0
whole-estate/src/main/java/com/example/wholeestate/service/ICommentService.java Просмотреть файл

@@ -32,4 +32,21 @@ public interface ICommentService extends IService<Comment> {
32 32
      */
33 33
     ResponseBean getCommentList(String commentType, String mainId, Integer pageNum, Integer pageSize);
34 34
 
35
+    /**
36
+     * 根据 评论类型, 评论主体id 查询
37
+     * @param commentType
38
+     * @param mainId
39
+     * @param pageNum
40
+     * @param pageSize
41
+     * @return
42
+     */
43
+    ResponseBean getWxCommentList(String commentType, String mainId, Integer pageNum, Integer pageSize);
44
+
45
+    /**
46
+     * 微信小程序 回复评论
47
+     * @param openid
48
+     * @param parameter
49
+     * @return
50
+     */
51
+    ResponseBean addWxComment(String openid,String parameter);
35 52
 }

+ 33
- 0
whole-estate/src/main/java/com/example/wholeestate/service/impl/ActivityEnrollServiceImpl.java Просмотреть файл

@@ -1,14 +1,18 @@
1 1
 package com.example.wholeestate.service.impl;
2 2
 
3 3
 import com.alibaba.fastjson.JSONObject;
4
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 5
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 6
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 7
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 8
 import com.example.wholeestate.common.resp.ResponseBean;
9
+import com.example.wholeestate.common.uuid.IdGen;
8 10
 import com.example.wholeestate.dao.ActivityEnrollMapper;
9 11
 import com.example.wholeestate.dao.ActivityMapper;
12
+import com.example.wholeestate.dao.CustomerMapper;
10 13
 import com.example.wholeestate.model.Activity;
11 14
 import com.example.wholeestate.model.ActivityEnroll;
15
+import com.example.wholeestate.model.Customer;
12 16
 import com.example.wholeestate.service.IActivityEnrollService;
13 17
 import org.springframework.beans.factory.annotation.Autowired;
14 18
 import org.springframework.stereotype.Service;
@@ -30,6 +34,11 @@ public class ActivityEnrollServiceImpl extends ServiceImpl<ActivityEnrollMapper,
30 34
     @Autowired
31 35
     private ActivityMapper activityMapper;
32 36
 
37
+    @Autowired
38
+    private CustomerMapper customerMapper;
39
+
40
+    private IdGen idGen = IdGen.get();
41
+
33 42
     @Override
34 43
     public ResponseBean getActivitySignUpList(String activityId, Integer pageNum, Integer pageSize) {
35 44
         ResponseBean responseBean = new ResponseBean();
@@ -59,4 +68,28 @@ public class ActivityEnrollServiceImpl extends ServiceImpl<ActivityEnrollMapper,
59 68
         responseBean.addSuccess(activityIPage);
60 69
         return responseBean;
61 70
     }
71
+
72
+    @Override
73
+    public ResponseBean wxSignUpActivity(String openid, String parameter) {
74
+        ResponseBean responseBean = new ResponseBean();
75
+
76
+        QueryWrapper<Customer> customerQueryWrapper = new QueryWrapper<>();
77
+        customerQueryWrapper.eq("openid", openid);
78
+        Customer customer = customerMapper.selectOne(customerQueryWrapper);
79
+        if (null == customer) {
80
+            responseBean.addError("用户不存在!");
81
+            return responseBean;
82
+        }
83
+
84
+        ActivityEnroll activityEnroll = JSONObject.parseObject(parameter, ActivityEnroll.class);
85
+        activityEnroll.setCustomerId(customer.getCustomerId());
86
+        activityEnroll.setEnrollId(idGen.nextId()+"");
87
+        int row = activityEnrollMapper.insert(activityEnroll);
88
+        if (row <= 0) {
89
+            responseBean.addError("报名失败!");
90
+            return responseBean;
91
+        }
92
+        responseBean.addSuccess("报名成功!");
93
+        return responseBean;
94
+    }
62 95
 }

+ 7
- 2
whole-estate/src/main/java/com/example/wholeestate/service/impl/ActivityServiceImpl.java Просмотреть файл

@@ -1,6 +1,5 @@
1 1
 package com.example.wholeestate.service.impl;
2 2
 
3
-import com.alibaba.fastjson.JSONObject;
4 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
6 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -14,9 +13,9 @@ import com.example.wholeestate.service.IActivityService;
14 13
 import org.apache.commons.lang.StringUtils;
15 14
 import org.springframework.beans.factory.annotation.Autowired;
16 15
 import org.springframework.stereotype.Service;
17
-import sun.security.krb5.internal.PAData;
18 16
 
19 17
 import java.util.Date;
18
+import java.util.List;
20 19
 
21 20
 /**
22 21
  * <p>
@@ -48,6 +47,12 @@ public class ActivityServiceImpl extends ServiceImpl<ActivityMapper, Activity> i
48 47
         queryWrapper.ge(null != beginDate,"begin_date", beginDate);
49 48
         queryWrapper.le(null != endDate,"end_date", endDate);
50 49
         IPage<Activity> activityIPage = activityMapper.selectPage(page, queryWrapper);
50
+        List<Activity> records = activityIPage.getRecords();
51
+        records.forEach(e -> {
52
+            Integer signUpNumber = activityMapper.signUpNumber(e.getActivityId());
53
+            e.setSignUpNumber(null == signUpNumber ? 0 : signUpNumber);
54
+        });
55
+
51 56
         responseBean.addSuccess(activityIPage);
52 57
         return responseBean;
53 58
     }

+ 11
- 0
whole-estate/src/main/java/com/example/wholeestate/service/impl/BuildingDynamicServiceImpl.java Просмотреть файл

@@ -86,4 +86,15 @@ public class BuildingDynamicServiceImpl extends ServiceImpl<BuildingDynamicMappe
86 86
         responseBean.addSuccess(buildingDynamicIPage);
87 87
         return responseBean;
88 88
     }
89
+
90
+    @Override
91
+    public ResponseBean getWxBuildingDynamiceInfo(String dynamicId) {
92
+        ResponseBean responseBean = new ResponseBean();
93
+
94
+        QueryWrapper<BuildingDynamic> buildingDynamicQueryWrapper = new QueryWrapper<>();
95
+        buildingDynamicQueryWrapper.eq("dynamic_id", dynamicId);
96
+        BuildingDynamic buildingDynamic = buildingDynamicMapper.selectOne(buildingDynamicQueryWrapper);
97
+        responseBean.addSuccess(buildingDynamic);
98
+        return responseBean;
99
+    }
89 100
 }

+ 54
- 0
whole-estate/src/main/java/com/example/wholeestate/service/impl/CommentServiceImpl.java Просмотреть файл

@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
19 19
 import org.springframework.stereotype.Service;
20 20
 
21 21
 import java.time.LocalDateTime;
22
+import java.util.List;
22 23
 
23 24
 /**
24 25
  * <p>
@@ -83,4 +84,57 @@ public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> impl
83 84
         responseBean.addSuccess(commentIPage);
84 85
         return responseBean;
85 86
     }
87
+
88
+    @Override
89
+    public ResponseBean getWxCommentList(String commentType, String mainId, Integer pageNum, Integer pageSize) {
90
+        ResponseBean responseBean = new ResponseBean();
91
+
92
+        Page<Comment> page = new Page<>();
93
+        page.setCurrent(pageNum);
94
+        page.setSize(pageSize);
95
+
96
+        QueryWrapper<Comment> commentQueryWrapper = new QueryWrapper<>();
97
+        commentQueryWrapper.eq("comment_type", commentType);
98
+        commentQueryWrapper.eq("main_id", mainId);
99
+        IPage<Comment> commentIPage = commentMapper.selectPage(page, commentQueryWrapper);
100
+        List<Comment> records = commentIPage.getRecords();
101
+        records.forEach(e -> {
102
+            QueryWrapper<Comment> childCommentQuery = new QueryWrapper<>();
103
+            childCommentQuery.eq("parent_id", e.getCommentId());
104
+            List<Comment> comments = commentMapper.selectList(childCommentQuery);
105
+            e.setChildComment(comments);
106
+        });
107
+
108
+        responseBean.addSuccess(commentIPage);
109
+        return responseBean;
110
+    }
111
+
112
+    @Override
113
+    public ResponseBean addWxComment(String openid, String parameter) {
114
+        ResponseBean responseBean = new ResponseBean();
115
+        Comment comment = JSONObject.parseObject(parameter, Comment.class);
116
+        comment.setCreateDate(LocalDateTime.now());
117
+        comment.setStatus(1);
118
+
119
+        QueryWrapper<Customer> customerQueryWrapper = new QueryWrapper<>();
120
+        customerQueryWrapper.eq("openid", openid);
121
+        Customer customer = customerMapper.selectOne(customerQueryWrapper);
122
+        if (null == customer) {
123
+            responseBean.addError("评论用户不存在!");
124
+            return responseBean;
125
+        }
126
+
127
+        comment.setCommentId(idGen.nextId()+"");
128
+        comment.setCustomerName(customer.getCustomerName());
129
+        comment.setAvatar(customer.getAvatar());
130
+        comment.setCustomerId(customer.getCustomerId());
131
+
132
+        int insert = commentMapper.insert(comment);
133
+        if (insert <= 0) {
134
+            responseBean.addError("评论失败!");
135
+            return responseBean;
136
+        }
137
+        responseBean.addSuccess("评论成功!");
138
+        return responseBean;
139
+    }
86 140
 }

+ 2
- 1
whole-estate/src/main/resources/mapper/BuildingMapper.xml Просмотреть файл

@@ -4,8 +4,9 @@
4 4
     <select id="buildingList" resultType="com.example.wholeestate.model.Building">
5 5
         SELECT * FROM ta_building
6 6
             <where>
7
+            status > -1
7 8
             <if test="Name != null and Name != ''">
8
-            and  ta_building.name like concat('%',#{Name,jdbcType=VARCHAR},'%')
9
+            and  (ta_building.name like concat('%',#{Name,jdbcType=VARCHAR},'%') or ta_building.building_name like concat('%',#{Name,jdbcType=VARCHAR},'%'))
9 10
             </if>
10 11
             <if test="Code != null and Code != ''">
11 12
             and  ta_building.code like concat('%',#{Code,jdbcType=VARCHAR},'%')