张延森 5 år sedan
förälder
incheckning
be433e0f9e

+ 36
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Visa fil

154
 
154
 
155
     //=================  首屏广告 / 轮播图 end =======================
155
     //=================  首屏广告 / 轮播图 end =======================
156
 
156
 
157
+
158
+    /**
159
+     * 客户报备
160
+     */
161
+    public static final String CUSTOMER_REPORT = "1";
162
+
163
+    /**
164
+     * 客户到访
165
+     */
166
+    public static final String CUSTOMER_VISITE = "2";
167
+
168
+    /**
169
+     * 客户认购
170
+     */
171
+    public static final String CUSTOMER_PREORDER = "3";
172
+
173
+    /**
174
+     * 客户签约
175
+     */
176
+    public static final String CUSTOMER_SIGNED = "4";
177
+
178
+
179
+    /**
180
+     * 待审核
181
+     */
182
+    public static final Integer VERIFY_READY = 0;
183
+
184
+    /**
185
+     * 审核同意
186
+     */
187
+    public static final Integer VERIFY_AGREE = 1;
188
+
189
+    /**
190
+     * 审核不同意
191
+     */
192
+    public static final Integer VERIFY_DISAGREE = 2;
157
 }
193
 }

+ 11
- 4
src/main/java/com/huiju/estateagents/entity/TaBuilding.java Visa fil

160
 
160
 
161
     private String buildingType;
161
     private String buildingType;
162
 
162
 
163
-    private String serviceBuilding;
163
+    private String serviceCompany;
164
 
164
 
165
     private String serviceFee;
165
     private String serviceFee;
166
 
166
 
167
     private String decoration;
167
     private String decoration;
168
 
168
 
169
-    private String receivedDate;
169
+    private LocalDateTime receivedDate;
170
 
170
 
171
-    private String rightsYear;
171
+    private String preSalePermit;
172
 
172
 
173
-    private String familyNum;
173
+    private Integer rightsYear;
174
+
175
+    private Integer familyNum;
174
 
176
 
175
     private String parkingRate;
177
     private String parkingRate;
176
 
178
 
177
     private String volumeRate;
179
     private String volumeRate;
178
 
180
 
181
+    private Integer favorNum;
182
+    private Integer pvNum;
183
+    private Integer saveNum;
184
+    private Integer shareNum;
185
+
179
 
186
 
180
     /**
187
     /**
181
      * 图片
188
      * 图片

+ 1
- 1
src/main/java/com/huiju/estateagents/entity/TaPerson.java Visa fil

220
 
220
 
221
     private String language;
221
     private String language;
222
 
222
 
223
-
223
+    private Integer saveNum;
224
 }
224
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/entity/TaRecommendCustomer.java Visa fil

123
     @TableField(exist = false)
123
     @TableField(exist = false)
124
     private Map<String, Object> consultants;
124
     private Map<String, Object> consultants;
125
 
125
 
126
-    private String verifyStatus;
126
+    private Integer verifyStatus;
127
 
127
 
128
     private String verifyRemark;
128
     private String verifyRemark;
129
 
129
 

+ 4
- 0
src/main/java/com/huiju/estateagents/mapper/TaBuildingMapper.java Visa fil

6
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
6
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
7
 import org.apache.ibatis.annotations.Mapper;
7
 import org.apache.ibatis.annotations.Mapper;
8
 import org.apache.ibatis.annotations.Param;
8
 import org.apache.ibatis.annotations.Param;
9
+import org.apache.ibatis.annotations.Update;
9
 
10
 
10
 import java.util.List;
11
 import java.util.List;
11
 
12
 
25
      * @return
26
      * @return
26
      */
27
      */
27
     List<TaBuilding> buildingList(IPage<TaBuilding> page, @Param("Name") String name, @Param("Code")String code);
28
     List<TaBuilding> buildingList(IPage<TaBuilding> page, @Param("Name") String name, @Param("Code")String code);
29
+
30
+    @Update("UPDATE ta_building  SET ${field} = IFNULL(${field}, 0) + #{increment}  WHERE building_id = #{buildingId}")
31
+    void setFieldNum(@Param("buildingId") String buildingId, @Param("field") String field, @Param("increment") int increment);
28
 }
32
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/service/ITaRecommendCustomerService.java Visa fil

2
 
2
 
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
 import com.huiju.estateagents.base.ResponseBean;
4
 import com.huiju.estateagents.base.ResponseBean;
5
+import com.huiju.estateagents.entity.TaPerson;
5
 import com.huiju.estateagents.entity.TaRecommendCustomer;
6
 import com.huiju.estateagents.entity.TaRecommendCustomer;
6
 import com.baomidou.mybatisplus.extension.service.IService;
7
 import com.baomidou.mybatisplus.extension.service.IService;
7
 
8
 
32
     IPage<TaRecommendCustomer>getCustomersIRecommended(int pageNumber, int pageSize,String customerId,String building);
33
     IPage<TaRecommendCustomer>getCustomersIRecommended(int pageNumber, int pageSize,String customerId,String building);
33
 
34
 
34
 
35
 
36
+    TaRecommendCustomer newByPerson(TaPerson person);
35
 }
37
 }

+ 11
- 6
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java Visa fil

16
 import com.huiju.estateagents.mapper.*;
16
 import com.huiju.estateagents.mapper.*;
17
 import com.huiju.estateagents.service.ITaPersonService;
17
 import com.huiju.estateagents.service.ITaPersonService;
18
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
18
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
19
+import com.huiju.estateagents.service.ITaRecommendCustomerService;
19
 import org.springframework.beans.factory.annotation.Autowired;
20
 import org.springframework.beans.factory.annotation.Autowired;
20
 import org.springframework.stereotype.Service;
21
 import org.springframework.stereotype.Service;
21
 
22
 
63
     @Autowired
64
     @Autowired
64
     private TaPointsRecordsMapper taPointsRecordsMapper;
65
     private TaPointsRecordsMapper taPointsRecordsMapper;
65
 
66
 
67
+    @Autowired
68
+    private ITaRecommendCustomerService iTaRecommendCustomerService;
69
+
66
     @Override
70
     @Override
67
     public TaPerson mergePersonWxInfo(WxMaUserInfo userInfo) {
71
     public TaPerson mergePersonWxInfo(WxMaUserInfo userInfo) {
68
         // 先查询是否存在用户
72
         // 先查询是否存在用户
113
             return null;
117
             return null;
114
         }
118
         }
115
 
119
 
116
-//        if (null == phone || "".equals(phone)) {
117
-//            return null;
118
-//        }
120
+        // 电话为空, 代表没有获取到电话
121
+        if (null == phone || "".equals(phone)) {
122
+            return null;
123
+        }
119
 
124
 
120
         String tel = person.getTel();
125
         String tel = person.getTel();
121
 
126
 
122
         UpdateWrapper<TaPerson> wrapper = new UpdateWrapper<>();
127
         UpdateWrapper<TaPerson> wrapper = new UpdateWrapper<>();
123
         wrapper.set("phone", phone);
128
         wrapper.set("phone", phone);
124
         wrapper.set("person_type",CommConstant.PERSON_ESTATE_AGENT);
129
         wrapper.set("person_type",CommConstant.PERSON_ESTATE_AGENT);
125
-//        wrapper.set(null == tel || "".equals(tel), "tel", phone);
126
         wrapper.eq("mini_openid", miniOpenid);
130
         wrapper.eq("mini_openid", miniOpenid);
127
-//        wrapper.eq("person_type",null);
128
         wrapper.isNull("person_type");
131
         wrapper.isNull("person_type");
129
         taPersonMapper.update(new TaPerson(), wrapper);
132
         taPersonMapper.update(new TaPerson(), wrapper);
130
 
133
 
132
         if (null == tel || "".equals(tel)){
135
         if (null == tel || "".equals(tel)){
133
             person.setTel(phone);
136
             person.setTel(phone);
134
         }
137
         }
135
-    
138
+
139
+        iTaRecommendCustomerService.newByPerson(person);
140
+
136
         //查看是否领取过授权积分
141
         //查看是否领取过授权积分
137
         QueryWrapper<TaPointsRecords> taPointsRecordsQueryWrapper = new QueryWrapper<>();
142
         QueryWrapper<TaPointsRecords> taPointsRecordsQueryWrapper = new QueryWrapper<>();
138
         taPointsRecordsQueryWrapper.eq("change_type",CommConstant.POINTS_AUTHORIZE);
143
         taPointsRecordsQueryWrapper.eq("change_type",CommConstant.POINTS_AUTHORIZE);

+ 58
- 0
src/main/java/com/huiju/estateagents/service/impl/TaRecommendCustomerServiceImpl.java Visa fil

295
         queryWrapper.gt("status", CommConstant.MESSAGE_UNREAD);
295
         queryWrapper.gt("status", CommConstant.MESSAGE_UNREAD);
296
         IPage<TaRecommendCustomer>page = new Page<>(pageNumber,pageSize);
296
         IPage<TaRecommendCustomer>page = new Page<>(pageNumber,pageSize);
297
         return taRecommendCustomerMapper.selectPage(page,queryWrapper);
297
         return taRecommendCustomerMapper.selectPage(page,queryWrapper);
298
+    }
299
+
300
+    @Override
301
+    public TaRecommendCustomer newByPerson(TaPerson person) {
302
+        // 没有手机号, 暂时不生成客户信息
303
+        String phone = StringUtils.ifNull(person.getTel(), person.getPhone());
304
+        if (StringUtils.isEmpty(phone)) {
305
+            return null;
306
+        }
307
+
308
+        // 已经存在的, 随机返回一条记录
309
+        List<TaRecommendCustomer> custs = getCustomerByPhone(phone);
310
+        if (null != custs && custs.size() > 0) {
311
+            return custs.get(0);
312
+        }
313
+
314
+        TaRecommendCustomer cust = new TaRecommendCustomer();
315
+        cust.setName(StringUtils.ifNull(person.getName(), person.getNickname()));
316
+        cust.setSex(null == person.getSex() ? str2Int(person.getGender()) : person.getSex());
317
+        cust.setPhone(phone);
318
+        cust.setPicture(StringUtils.ifNull(person.getPhoto(), person.getAvatarurl()));
319
+        cust.setCountry(person.getCountry());
320
+        cust.setCity(person.getCity());
321
+        cust.setProvince(person.getProvince());
322
+        // 审核同意
323
+        cust.setVerifyStatus(CommConstant.VERIFY_AGREE);
324
+        // 报备状态
325
+        cust.setStatus(CommConstant.CUSTOMER_REPORT);
326
+        // 当前日期
327
+        cust.setReportDate(LocalDateTime.now());
328
+
329
+        if (taRecommendCustomerMapper.insert(cust) > 0) {
330
+            return cust;
331
+        } else {
332
+            log.error("依据人员新增推荐客户失败");
333
+            return null;
334
+        }
335
+    }
336
+
337
+    private List<TaRecommendCustomer> getCustomerByPhone(String phone) {
338
+        QueryWrapper<TaRecommendCustomer> queryWrapper = new QueryWrapper<>();
339
+        queryWrapper.eq("phone", phone);
340
+        queryWrapper.gt("status", CommConstant.STATUS_DELETE);
341
+        queryWrapper.orderByDesc("report_date");
342
+
343
+        List<TaRecommendCustomer> custs = taRecommendCustomerMapper.selectList(queryWrapper);
344
+        return custs;
345
+    }
346
+
347
+    private Integer str2Int(String str) {
348
+        if (null == str) {
349
+            return null;
350
+        }
298
 
351
 
352
+        try {
353
+            return Integer.valueOf(str);
354
+        } catch (Exception e) {
355
+            return 0;
356
+        }
299
     }
357
     }
300
 }
358
 }

+ 10
- 4
src/main/java/com/huiju/estateagents/service/impl/TaSaveServiceImpl.java Visa fil

4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
 import com.huiju.estateagents.base.ResponseBean;
5
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.common.CommConstant;
6
 import com.huiju.estateagents.common.CommConstant;
7
+import com.huiju.estateagents.entity.TaBuilding;
7
 import com.huiju.estateagents.entity.TaPerson;
8
 import com.huiju.estateagents.entity.TaPerson;
8
 import com.huiju.estateagents.entity.TaSave;
9
 import com.huiju.estateagents.entity.TaSave;
9
-import com.huiju.estateagents.mapper.TaBuildingDynamicMapper;
10
-import com.huiju.estateagents.mapper.TaNewsMapper;
11
-import com.huiju.estateagents.mapper.TaPersonMapper;
12
-import com.huiju.estateagents.mapper.TaSaveMapper;
10
+import com.huiju.estateagents.mapper.*;
13
 import com.huiju.estateagents.service.ITaSaveService;
11
 import com.huiju.estateagents.service.ITaSaveService;
14
 import org.springframework.beans.factory.annotation.Autowired;
12
 import org.springframework.beans.factory.annotation.Autowired;
15
 import org.springframework.stereotype.Service;
13
 import org.springframework.stereotype.Service;
40
     @Autowired
38
     @Autowired
41
     private TaNewsMapper taNewsMapper;
39
     private TaNewsMapper taNewsMapper;
42
 
40
 
41
+    @Autowired
42
+    private TaBuildingMapper taBuildingMapper;
43
+
43
     @Autowired
44
     @Autowired
44
     private TaBuildingDynamicMapper taBuildingDynamicMapper;
45
     private TaBuildingDynamicMapper taBuildingDynamicMapper;
45
 
46
 
87
             taBuildingDynamicMapper.setFieldNum(like, "save_num", 1);
88
             taBuildingDynamicMapper.setFieldNum(like, "save_num", 1);
88
         }
89
         }
89
 
90
 
91
+        // 如果是項目收藏, 则 +1
92
+        if(typeOf.equals(CommConstant.FAVOR_PROJECT)) {
93
+            taBuildingMapper.setFieldNum(like, "save_num", 1);
94
+        }
95
+
90
         return ResponseBean.success("");
96
         return ResponseBean.success("");
91
     }
97
     }
92
 
98
 

+ 8
- 0
src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java Visa fil

40
     @Autowired
40
     @Autowired
41
     private TaPointsRecordsMapper taPointsRecordsMapper;
41
     private TaPointsRecordsMapper taPointsRecordsMapper;
42
 
42
 
43
+    @Autowired
44
+    private TaBuildingMapper taBuildingMapper;
45
+
43
     @Autowired
46
     @Autowired
44
     private TaBuildingDynamicMapper taBuildingDynamicMapper;
47
     private TaBuildingDynamicMapper taBuildingDynamicMapper;
45
 
48
 
86
         if (typeOf == CommConstant.FAVOR_CONSULTANT) {
89
         if (typeOf == CommConstant.FAVOR_CONSULTANT) {
87
             taPersonMapper.setFieldIncrement(id,"share_num", 1);
90
             taPersonMapper.setFieldIncrement(id,"share_num", 1);
88
         }
91
         }
92
+
93
+        if(typeOf.equals(CommConstant.FAVOR_PROJECT)) {
94
+            taBuildingMapper.setFieldNum(id, "share_num", 1);
95
+        }
96
+
89
         //发放分享积分
97
         //发放分享积分
90
         if (typeOf.equals(CommConstant.FAVOR_PROJECT)){
98
         if (typeOf.equals(CommConstant.FAVOR_PROJECT)){
91
             QueryWrapper<TdPointsRules> tdPointsRulesQueryWrapper = new QueryWrapper<>();
99
             QueryWrapper<TdPointsRules> tdPointsRulesQueryWrapper = new QueryWrapper<>();