张延森 5 лет назад
Родитель
Сommit
8785bc4e79
23 измененных файлов: 489 добавлений и 24 удалений
  1. 75
    2
      src/main/java/com.huiju.welcome/controller/TaCustomerController.java
  2. 25
    2
      src/main/java/com.huiju.welcome/controller/TaVisitorAppointmentController.java
  3. 4
    0
      src/main/java/com.huiju.welcome/mapper/SysUserMapper.java
  4. 4
    0
      src/main/java/com.huiju.welcome/mapper/TaCustomerMapper.java
  5. 5
    0
      src/main/java/com.huiju.welcome/mapper/TaVisitorAppointmentMapper.java
  6. 6
    0
      src/main/java/com.huiju.welcome/model/TaCustomer.java
  7. 7
    0
      src/main/java/com.huiju.welcome/model/TaVisitorAppointment.java
  8. 5
    0
      src/main/java/com.huiju.welcome/service/ICameraService.java
  9. 6
    0
      src/main/java/com.huiju.welcome/service/ITaCustomerService.java
  10. 2
    0
      src/main/java/com.huiju.welcome/service/ITaFirstUsherRecordService.java
  11. 2
    0
      src/main/java/com.huiju.welcome/service/ITaPersonService.java
  12. 4
    0
      src/main/java/com.huiju.welcome/service/ITaVisitorAppointmentService.java
  13. 110
    4
      src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java
  14. 1
    1
      src/main/java/com.huiju.welcome/service/impl/TaCarRecordServiceImpl.java
  15. 84
    7
      src/main/java/com.huiju.welcome/service/impl/TaCustomerServiceImpl.java
  16. 25
    1
      src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java
  17. 19
    0
      src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java
  18. 17
    1
      src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java
  19. 14
    0
      src/main/java/com.huiju.welcome/utils/CommConstant.java
  20. 10
    6
      src/main/resources/application.yml
  21. 15
    0
      src/main/resources/mapper/SysUserMapper.xml
  22. 28
    0
      src/main/resources/mapper/TaCustomerMapper.xml
  23. 21
    0
      src/main/resources/mapper/TaVisitorAppointmentMapper.xml

+ 75
- 2
src/main/java/com.huiju.welcome/controller/TaCustomerController.java Просмотреть файл

9
 import com.huiju.welcome.common.base.ResponseBean;
9
 import com.huiju.welcome.common.base.ResponseBean;
10
 import com.huiju.welcome.model.*;
10
 import com.huiju.welcome.model.*;
11
 import com.huiju.welcome.service.*;
11
 import com.huiju.welcome.service.*;
12
+import com.huiju.welcome.utils.CommConstant;
12
 import com.huiju.welcome.utils.DateUtils;
13
 import com.huiju.welcome.utils.DateUtils;
13
 import com.huiju.welcome.utils.JWTUtils;
14
 import com.huiju.welcome.utils.JWTUtils;
14
 import com.huiju.welcome.utils.StatusUtils;
15
 import com.huiju.welcome.utils.StatusUtils;
63
 
64
 
64
     /**
65
     /**
65
      * 保存对象
66
      * 保存对象
66
-     * @param taCustomer 实体对象
67
+     * @param
67
      * @return
68
      * @return
68
      */
69
      */
69
     @RequestMapping(value="/miniapp/customer",method= RequestMethod.POST)
70
     @RequestMapping(value="/miniapp/customer",method= RequestMethod.POST)
167
 
168
 
168
     /**
169
     /**
169
      * 修改对象
170
      * 修改对象
170
-     * @param taCustomer 实体对象
171
+     * @param
171
      * @return
172
      * @return
172
      */
173
      */
173
     @RequestMapping(value="/miniapp/customer/{id}",method= RequestMethod.PUT)
174
     @RequestMapping(value="/miniapp/customer/{id}",method= RequestMethod.PUT)
317
         }
318
         }
318
         return responseBean;
319
         return responseBean;
319
     }
320
     }
321
+    
322
+    /**
323
+     * 分页查询已归属人员和未归属人员
324
+     * @param pageNumber
325
+     * @param pageSize
326
+     * @param state   attribution 已归属  unattribution 未归属
327
+     * @return
328
+     */
329
+    @RequestMapping(value="/miniapp/customer/visitor/{state}",method= RequestMethod.GET)
330
+    public ResponseBean visitorCustomerList(@RequestParam(defaultValue = "1") int pageNumber,
331
+                                            @RequestParam(defaultValue = "10") int pageSize,
332
+                                            @PathVariable String state,
333
+                                            HttpServletRequest request){
334
+        ResponseBean responseBean = new ResponseBean();
335
+        try {
336
+            String userId = JWTUtils.getSubject(request);
337
+            SysUser user = iSysUserService.getById(iTaWechatUserService.getById(userId).getPersonId());
338
+            if (null != user && !user.getUserIdentity().equals(CommConstant.IDENTITY_CONSULTANT_MANAGER)){
339
+                responseBean.addError("你不是置业经理");
340
+                return responseBean;
341
+            }
342
+            //已归属和未归属人员列表 分页
343
+            if (state.equals(CommConstant.CUSTOMER_ATTRIBUTION)) {
344
+                IPage<TaCustomer> result = iTaCustomerService.getAttributionList(pageNumber, pageSize);
345
+                responseBean.addSuccess(result);
346
+            }else if (state.equals(CommConstant.CUSTOMER_UNATTRIBUTION)){
347
+                IPage<TaCustomer> result = iTaCustomerService.getUnattributionList(pageNumber, pageSize);
348
+                responseBean.addSuccess(result);
349
+            }
350
+            
351
+        }catch (Exception e){
352
+            logger.error("taCustomerList -=- {}",e.toString());
353
+            responseBean.addError(e.getMessage());
354
+        }
355
+        return responseBean;
356
+    }
357
+    
358
+    /**
359
+     * 分配置业客户
360
+     * @param paramStr   consultantId 置业顾问id  realtyConsultant 置业顾问姓名
361
+     *
362
+     * @return
363
+     */
364
+    @RequestMapping(value="/miniapp/customer/assign/{id}",method= RequestMethod.PUT)
365
+    public ResponseBean updateCustomer(@RequestBody String paramStr, @PathVariable Integer id, HttpServletRequest request){
366
+        ResponseBean responseBean = new ResponseBean();
367
+        JSONObject params = JSONObject.parseObject(paramStr);
368
+        if (null == params) {
369
+            return ResponseBean.error("保存内容格式非法或者为空", HttpStatus.SC_BAD_REQUEST);
370
+        }
371
+    
372
+        String userId = JWTUtils.getSubject(request);
373
+        SysUser user = iSysUserService.getById(iTaWechatUserService.getById(userId).getPersonId());
374
+        if (null != user && !user.getUserIdentity().equals(CommConstant.IDENTITY_CONSULTANT_MANAGER)){
375
+            responseBean.addError("你不是置业经理");
376
+            return responseBean;
377
+        }
378
+        
379
+        TaCustomer taCustomer = JSONObject.parseObject(paramStr, TaCustomer.class);
380
+        taCustomer.setCustomerId(id);
381
+        
382
+        try {
383
+            if (iTaCustomerService.updateById(taCustomer)){
384
+                responseBean.addSuccess("分配成功");
385
+            }
386
+        }catch (Exception e){
387
+            logger.error("taCustomerUpdate -=- {}",e.toString());
388
+            responseBean.addError(e.getMessage());
389
+        }
390
+        return responseBean;
391
+    }
392
+    
320
 }
393
 }

+ 25
- 2
src/main/java/com.huiju.welcome/controller/TaVisitorAppointmentController.java Просмотреть файл

144
         ResponseBean result = taVisitorAppointmentService.visitorAppointmentList(pg,platNumber,personName,phone);
144
         ResponseBean result = taVisitorAppointmentService.visitorAppointmentList(pg,platNumber,personName,phone);
145
         return result;
145
         return result;
146
     }
146
     }
147
-
147
+    
148
+    @ApiOperation(value = "访客预约信息",notes = "访客预约信息")
149
+    @RequestMapping(value="/miniapp/visitorAppointmentList",method= RequestMethod.GET)
150
+    @ApiImplicitParams({
151
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "platNumber", value = "车牌"),
152
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "personName", value = "预约人姓名"),
153
+            @ApiImplicitParam(paramType = "query", dataType = "String", name = "phone", value = "预约人电话")})
154
+    public ResponseBean minappVisitorAppointmentList(@RequestParam(defaultValue = "1") int pageNum,
155
+                                               @RequestParam(defaultValue = "10") int pageSize,
156
+                                               @RequestParam(value = "platNumber",required = false) String platNumber,
157
+                                               @RequestParam(value = "personName",required = false) String personName,
158
+                                               @RequestParam(value = "phone",required = false) String phone){
159
+        IPage<TaVisitorAppointment> pg = new Page<>(pageNum, pageSize);
160
+        ResponseBean result = taVisitorAppointmentService.miniappVisitorAppointmentList(pg,platNumber,personName,phone);
161
+        return result;
162
+    }
163
+    
148
     @ApiOperation(value = "访客预约信息",notes = "访客预约信息")
164
     @ApiOperation(value = "访客预约信息",notes = "访客预约信息")
149
     @RequestMapping(value="/miniapp/appointment",method= RequestMethod.GET)
165
     @RequestMapping(value="/miniapp/appointment",method= RequestMethod.GET)
150
     public ResponseBean myAppointmentList(@RequestParam(defaultValue = "1") int pageNum,
166
     public ResponseBean myAppointmentList(@RequestParam(defaultValue = "1") int pageNum,
155
         IPage<TaVisitorAppointment> result = taVisitorAppointmentService.getMyAppointmentList(pageNum, pageSize, user.getPersonId(), nameOrPhone);
171
         IPage<TaVisitorAppointment> result = taVisitorAppointmentService.getMyAppointmentList(pageNum, pageSize, user.getPersonId(), nameOrPhone);
156
         return ResponseBean.success(result);
172
         return ResponseBean.success(result);
157
     }
173
     }
158
-
174
+    
175
+    @ApiOperation(value = "今日访客预约列表",notes = "今日访客预约列表")
176
+    @RequestMapping(value="/miniapp/today/appointments",method= RequestMethod.GET)
177
+    public ResponseBean todayAppointmentList(@RequestParam(defaultValue = "1") int pageNum,
178
+                                          @RequestParam(defaultValue = "10") int pageSize) {
179
+        IPage<TaVisitorAppointment> result = taVisitorAppointmentService.getTodayAppointmentList(pageNum, pageSize);
180
+        return ResponseBean.success(result);
181
+    }
159
 }
182
 }

+ 4
- 0
src/main/java/com.huiju.welcome/mapper/SysUserMapper.java Просмотреть файл

6
 import org.apache.ibatis.annotations.Mapper;
6
 import org.apache.ibatis.annotations.Mapper;
7
 import org.apache.ibatis.annotations.Param;
7
 import org.apache.ibatis.annotations.Param;
8
 
8
 
9
+import java.util.List;
10
+
9
 /**
11
 /**
10
  * <p>
12
  * <p>
11
  *  Mapper 接口
13
  *  Mapper 接口
23
      * @return
25
      * @return
24
      */
26
      */
25
     void fireUser(@Param("userId") Integer userId);
27
     void fireUser(@Param("userId") Integer userId);
28
+	
29
+	List<SysUser> selectConsultManagerList(@Param("identityConsultantManager") String identityConsultantManager);
26
 }
30
 }

+ 4
- 0
src/main/java/com.huiju.welcome/mapper/TaCustomerMapper.java Просмотреть файл

27
     List<TaCustomer> getSomeCustMayBe(@Param("plateNumber") String plateNumber, @Param("phone") String phone);
27
     List<TaCustomer> getSomeCustMayBe(@Param("plateNumber") String plateNumber, @Param("phone") String phone);
28
 
28
 
29
     IPage<TaCustomer> getCustomerListOfFront(IPage<TaCustomer> page,@Param("consultantId") Integer consultantId,@Param("nameOrPhone") String nameOrPhone);
29
     IPage<TaCustomer> getCustomerListOfFront(IPage<TaCustomer> page,@Param("consultantId") Integer consultantId,@Param("nameOrPhone") String nameOrPhone);
30
+    
31
+    IPage<TaCustomer> getAttributionList(IPage<TaCustomer> page);
32
+    
33
+    IPage<TaCustomer> getUnattributionList(IPage<TaCustomer> page);
30
 }
34
 }

+ 5
- 0
src/main/java/com.huiju.welcome/mapper/TaVisitorAppointmentMapper.java Просмотреть файл

6
 import org.apache.ibatis.annotations.Mapper;
6
 import org.apache.ibatis.annotations.Mapper;
7
 import org.apache.ibatis.annotations.Param;
7
 import org.apache.ibatis.annotations.Param;
8
 
8
 
9
+import java.time.LocalDateTime;
9
 import java.util.List;
10
 import java.util.List;
10
 
11
 
11
 
12
 
21
     IPage<TaVisitorAppointment> visitorAppointmentList(IPage pg, @Param("platNumber") String platNumber, @Param("personName")String personName, @Param("phone")String phone);
22
     IPage<TaVisitorAppointment> visitorAppointmentList(IPage pg, @Param("platNumber") String platNumber, @Param("personName")String personName, @Param("phone")String phone);
22
 
23
 
23
     IPage<TaVisitorAppointment> getMyAppointmentList(IPage<TaVisitorAppointment> page,@Param("createUser") Integer personId, @Param("nameOrPhone") String nameOrPhone);
24
     IPage<TaVisitorAppointment> getMyAppointmentList(IPage<TaVisitorAppointment> page,@Param("createUser") Integer personId, @Param("nameOrPhone") String nameOrPhone);
25
+	
26
+	IPage<TaVisitorAppointment> getTodayAppointmentList(IPage<TaVisitorAppointment> page);
27
+	
28
+	IPage<TaVisitorAppointment> miniappVisitorAppointmentList(IPage<TaVisitorAppointment> pg, String platNumber, String personName, String phone);
24
 }
29
 }

+ 6
- 0
src/main/java/com.huiju.welcome/model/TaCustomer.java Просмотреть файл

207
      */
207
      */
208
     @TableField(exist = false)
208
     @TableField(exist = false)
209
     private Integer transferId;
209
     private Integer transferId;
210
+    
211
+    /**
212
+     * 到访时间
213
+     */
214
+    @TableField(exist = false)
215
+    private LocalDateTime visiteDate;
210
 }
216
 }

+ 7
- 0
src/main/java/com.huiju.welcome/model/TaVisitorAppointment.java Просмотреть файл

1
 package com.huiju.welcome.model;
1
 package com.huiju.welcome.model;
2
 
2
 
3
 import com.baomidou.mybatisplus.annotation.IdType;
3
 import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableField;
4
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import com.baomidou.mybatisplus.annotation.TableId;
5
 import lombok.Data;
6
 import lombok.Data;
6
 import lombok.EqualsAndHashCode;
7
 import lombok.EqualsAndHashCode;
42
     String remark;
43
     String remark;
43
 
44
 
44
     Integer createUser;
45
     Integer createUser;
46
+    
47
+    /**
48
+     * 置业顾问姓名
49
+     */
50
+    @TableField(exist = false)
51
+    private String username;
45
 }
52
 }

+ 5
- 0
src/main/java/com.huiju.welcome/service/ICameraService.java Просмотреть файл

1
 package com.huiju.welcome.service;
1
 package com.huiju.welcome.service;
2
 
2
 
3
+import com.huiju.welcome.model.TaCustomer;
3
 import com.huiju.welcome.model.TaDevice;
4
 import com.huiju.welcome.model.TaDevice;
4
 import com.huiju.welcome.model.TaPerson;
5
 import com.huiju.welcome.model.TaPerson;
5
 import com.huiju.welcome.model.TaSnapshotPerson;
6
 import com.huiju.welcome.model.TaSnapshotPerson;
8
     String dispatchPerson(TaPerson taPerson, TaDevice ...devices);
9
     String dispatchPerson(TaPerson taPerson, TaDevice ...devices);
9
 
10
 
10
     boolean newPersonByDevice(TaSnapshotPerson taSnapshotPerson);
11
     boolean newPersonByDevice(TaSnapshotPerson taSnapshotPerson);
12
+    
13
+    void sendMessageToBar(TaCustomer taCustomer,Integer personNum);
14
+    
15
+    void sendMessageToConsultManager(TaCustomer taCustomer);
11
 }
16
 }

+ 6
- 0
src/main/java/com.huiju.welcome/service/ITaCustomerService.java Просмотреть файл

32
     boolean updateConsultant(TaCustomer taCustomer, Integer consultantId);
32
     boolean updateConsultant(TaCustomer taCustomer, Integer consultantId);
33
 
33
 
34
     TaCustomer newCustByMainUsher(TaMainUsherRecord taMainUsherRecord, boolean notify) throws Exception;
34
     TaCustomer newCustByMainUsher(TaMainUsherRecord taMainUsherRecord, boolean notify) throws Exception;
35
+    
36
+    TaCustomer newCustByFirstUsher(TaFirstUsherRecord taFirstUsherRecord, boolean notify) throws Exception;
35
 
37
 
36
     Map<String, Object> getHistoryRecBy(Map<String,Object> filters);
38
     Map<String, Object> getHistoryRecBy(Map<String,Object> filters);
37
 
39
 
46
     IPage<TaCustomer> getCustomerListOfFront(int pageNumber, int pageSize, Integer consultantId, String nameOrPhone);
48
     IPage<TaCustomer> getCustomerListOfFront(int pageNumber, int pageSize, Integer consultantId, String nameOrPhone);
47
 
49
 
48
     List<CustomerExcel> getCustomersEqualCustomerPage(String customerName, String phone, String platNumber, Integer agentUserId);
50
     List<CustomerExcel> getCustomersEqualCustomerPage(String customerName, String phone, String platNumber, Integer agentUserId);
51
+	
52
+	IPage<TaCustomer> getAttributionList(int pageNumber, int pageSize);
53
+    
54
+    IPage<TaCustomer> getUnattributionList(int pageNumber, int pageSize);
49
 }
55
 }

+ 2
- 0
src/main/java/com.huiju.welcome/service/ITaFirstUsherRecordService.java Просмотреть файл

36
     boolean removeRecordByFront(Integer id);
36
     boolean removeRecordByFront(Integer id);
37
 
37
 
38
     boolean addCar2WhiteList(Integer id);
38
     boolean addCar2WhiteList(Integer id);
39
+	
40
+	void notifyCar(TaFirstUsherRecord taFirstUsherRecord);
39
 }
41
 }

+ 2
- 0
src/main/java/com.huiju.welcome/service/ITaPersonService.java Просмотреть файл

49
     TaPerson newPersonByFront(TaCustomer taCustomer);
49
     TaPerson newPersonByFront(TaCustomer taCustomer);
50
 
50
 
51
     TaPerson newPersonByUsher(TaMainUsherRecord taMainUsherRecord);
51
     TaPerson newPersonByUsher(TaMainUsherRecord taMainUsherRecord);
52
+    
53
+    TaPerson newPersonByFirstUsher(TaFirstUsherRecord taFirstUsherRecord);
52
 
54
 
53
     boolean updateByCustomer(TaCustomer taCustomer);
55
     boolean updateByCustomer(TaCustomer taCustomer);
54
 
56
 

+ 4
- 0
src/main/java/com.huiju.welcome/service/ITaVisitorAppointmentService.java Просмотреть файл

32
     List<TaVisitorAppointment> getAppointmentsByPlateNumber(String plateNumber);
32
     List<TaVisitorAppointment> getAppointmentsByPlateNumber(String plateNumber);
33
 
33
 
34
     IPage<TaVisitorAppointment> getMyAppointmentList(int pageNum, int pageSize, Integer personId, String nameOrPhone);
34
     IPage<TaVisitorAppointment> getMyAppointmentList(int pageNum, int pageSize, Integer personId, String nameOrPhone);
35
+	
36
+	IPage<TaVisitorAppointment> getTodayAppointmentList(int pageNum, int pageSize);
37
+	
38
+	ResponseBean miniappVisitorAppointmentList(IPage<TaVisitorAppointment> pg, String platNumber, String personName, String phone);
35
 }
39
 }

+ 110
- 4
src/main/java/com.huiju.welcome/service/impl/CameraServiceImpl.java Просмотреть файл

1
 package com.huiju.welcome.service.impl;
1
 package com.huiju.welcome.service.impl;
2
 
2
 
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.alibaba.fastjson.serializer.SerializerFeature;
3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
 import com.huiju.welcome.common.Action;
6
 import com.huiju.welcome.common.Action;
5
 import com.huiju.welcome.common.WebSocketServer;
7
 import com.huiju.welcome.common.WebSocketServer;
8
+import com.huiju.welcome.mapper.SysUserMapper;
9
+import com.huiju.welcome.mapper.TaCustomerMapMapper;
10
+import com.huiju.welcome.mapper.TaCustomerMapper;
11
+import com.huiju.welcome.model.SysUser;
12
+import com.huiju.welcome.model.TaCustomer;
13
+import com.huiju.welcome.model.TaCustomerMap;
6
 import com.huiju.welcome.model.TaDevice;
14
 import com.huiju.welcome.model.TaDevice;
7
 import com.huiju.welcome.model.TaPerson;
15
 import com.huiju.welcome.model.TaPerson;
8
 import com.huiju.welcome.model.TaSnapshotPerson;
16
 import com.huiju.welcome.model.TaSnapshotPerson;
12
 import io.swagger.models.auth.In;
20
 import io.swagger.models.auth.In;
13
 import lombok.extern.slf4j.Slf4j;
21
 import lombok.extern.slf4j.Slf4j;
14
 import org.springframework.beans.factory.annotation.Autowired;
22
 import org.springframework.beans.factory.annotation.Autowired;
23
+import org.springframework.beans.factory.annotation.Value;
15
 import org.springframework.stereotype.Service;
24
 import org.springframework.stereotype.Service;
16
 
25
 
17
 import java.net.HttpURLConnection;
26
 import java.net.HttpURLConnection;
18
 import java.net.URL;
27
 import java.net.URL;
19
 import java.time.Duration;
28
 import java.time.Duration;
20
 import java.time.LocalDateTime;
29
 import java.time.LocalDateTime;
30
+import java.util.ArrayList;
21
 import java.util.Arrays;
31
 import java.util.Arrays;
22
 import java.util.HashMap;
32
 import java.util.HashMap;
23
 import java.util.List;
33
 import java.util.List;
49
 
59
 
50
     @Autowired
60
     @Autowired
51
     ITaCustomerService iTaCustomerService;
61
     ITaCustomerService iTaCustomerService;
62
+    
63
+    @Value("${unface.device}")
64
+    private String unfaceDevice;
65
+    
66
+    @Autowired
67
+    private TaCustomerMapMapper taCustomerMapMapper;
68
+    
69
+    @Autowired
70
+    private TaCustomerMapper taCustomerMapper;
71
+    
72
+    @Autowired
73
+    private SysUserMapper sysUserMapper;
74
+    
75
+    @Autowired
76
+    MiniApp miniApp;
52
 
77
 
53
     @Override
78
     @Override
54
     public String dispatchPerson(TaPerson taPerson, TaDevice... devices) {
79
     public String dispatchPerson(TaPerson taPerson, TaDevice... devices) {
135
             }
160
             }
136
 
161
 
137
             // 如果是工作人员则忽略
162
             // 如果是工作人员则忽略
138
-            if (null != taPerson && null != taPerson.getTypeId() && taPerson.getTypeId() == CommConstant.TYPE_INNER_PERSON) {
163
+            if (null != taPerson && null != taPerson.getTypeId() && taPerson.getTypeId().equals(CommConstant.TYPE_INNER_PERSON)) {
139
                 taSnapshotPerson.setMatchPerson(taPerson.getRealId());
164
                 taSnapshotPerson.setMatchPerson(taPerson.getRealId());
140
                 taSnapshotPersonService.save(taSnapshotPerson);
165
                 taSnapshotPersonService.save(taSnapshotPerson);
141
                 return true;
166
                 return true;
173
             dispatchPerson(taPerson);
198
             dispatchPerson(taPerson);
174
         }
199
         }
175
 
200
 
176
-        // 推送消息
177
-        taPersonService.send2Front(taPerson);
201
+        //二号岗设备推送
202
+        if(taSnapshotPerson.getDeviceId().equals(unfaceDevice)){
203
+            sendMessageToConsult(taPerson);
204
+        }else{
205
+            // 推送消息
206
+            taPersonService.send2Front(taPerson);
207
+        }
178
 
208
 
179
         // 保存抓拍日志
209
         // 保存抓拍日志
180
         taSnapshotPersonService.save(taSnapshotPerson);
210
         taSnapshotPersonService.save(taSnapshotPerson);
191
 
221
 
192
         return true;
222
         return true;
193
     }
223
     }
194
-}
224
+    
225
+    /**
226
+     * 二号岗亭推送消息给置业经理,如果是老客户还需要推送给这个客户的置业顾问。同时都要推送给吧台。
227
+     * @param taPerson
228
+     */
229
+    private void sendMessageToConsult(TaPerson taPerson) {
230
+        TaCustomerMap taCustomerMap = taCustomerMapMapper.getCustomerOf(taPerson.getPersonId());
231
+        if (null != taCustomerMap){
232
+            TaCustomer taCustomer = taCustomerMapper.selectById(taCustomerMap.getCustomerId());
233
+            if (null != taCustomer){
234
+                try {
235
+                    //推送置业顾问
236
+                    iTaCustomerService.notifyConsultant(taCustomer);
237
+                    //推送置业经理
238
+                    sendMessageToConsultManager(taCustomer);
239
+                    //推送吧台
240
+                    sendMessageToBar(taCustomer,null);
241
+                } catch (Exception e) {
242
+                    e.printStackTrace();
243
+                }
244
+            }
245
+        }else {
246
+            //推送人脸到二号岗
247
+            sendMessageToMainusher(taPerson);
248
+        }
249
+    }
250
+    
251
+    /**
252
+     * 推送人脸数据到二号岗
253
+     * @param taPerson
254
+     */
255
+    private void sendMessageToMainusher(TaPerson taPerson) {
256
+        try {
257
+            WebSocketServer.sendInfo(JSONObject.toJSONString(taPerson), CommConstant.WECHAT_CLIENT_MAINUSHER, null);
258
+        } catch (Exception e) {}
259
+    }
260
+    
261
+    /**
262
+     * 推送消息去吧台
263
+     * @param taCustomer
264
+     */
265
+    @Override
266
+    public void sendMessageToBar(TaCustomer taCustomer,Integer personNum) {
267
+        Map<String,Object> map = new HashMap<>();
268
+        map.put("customerId",taCustomer.getCustomerId());
269
+        map.put("customerName",taCustomer.getCustomerName());
270
+        map.put("consultantName",taCustomer.getRealtyConsultant());
271
+        map.put("avatar",taCustomer.getAvatar());
272
+        map.put("visitorNum",personNum);
273
+        map.put("visitorTime",LocalDateTime.now());
274
+        map.put("type",CommConstant.IDENTITY_BARUSHER);
275
+        try {
276
+            WebSocketServer.sendInfo(JSONObject.toJSONString(map), CommConstant.WECHAT_CLIENT_MINIAPP, null);
277
+        } catch (Exception e) {}
278
+    }
279
+    
280
+    @Override
281
+    public void sendMessageToConsultManager(TaCustomer taCustomer) {
282
+        //获取所有的置业经理信息并推送消息
283
+        List<SysUser> sysUserList = sysUserMapper.selectConsultManagerList(CommConstant.IDENTITY_CONSULTANT_MANAGER);
284
+        sysUserList.stream().forEach(e -> {
285
+            String tpl = miniApp.getTpls().getVisitor();
286
+            String page = CommConstant.PAGE_MY_CUSTOMER + "?id=" + taCustomer.getCustomerId();
287
+            String openid = e.getOpenid();
288
+            if (null == openid) {
289
+                return;
290
+            }
291
+            List<Object> data = new ArrayList<Object>(){{
292
+                add(taCustomer.getCustomerName());
293
+                add(taCustomer.getPhone());
294
+                add("您有客户来访, 请及时接待!");
295
+            }};
296
+    
297
+            miniApp.sendTPLMessage(tpl, openid, page, data);
298
+        });
299
+    }
300
+}

+ 1
- 1
src/main/java/com.huiju.welcome/service/impl/TaCarRecordServiceImpl.java Просмотреть файл

200
 
200
 
201
         // 生成保安迎宾记录, 并通知小程序
201
         // 生成保安迎宾记录, 并通知小程序
202
         TaFirstUsherRecord taFirstUsherRecord = iTaFirstUsherRecordService.newRecordByDevice(taCarRecord);
202
         TaFirstUsherRecord taFirstUsherRecord = iTaFirstUsherRecordService.newRecordByDevice(taCarRecord);
203
-        iTaFirstUsherRecordService.notifyMiniapp(taFirstUsherRecord);
203
+        iTaFirstUsherRecordService.notifyCar(taFirstUsherRecord);
204
 
204
 
205
         // 如果客户有固定置业, 推送消息给置业
205
         // 如果客户有固定置业, 推送消息给置业
206
         if (null != taCustomer && null != taCustomer.getConsultantId()) {
206
         if (null != taCustomer && null != taCustomer.getConsultantId()) {

+ 84
- 7
src/main/java/com.huiju.welcome/service/impl/TaCustomerServiceImpl.java Просмотреть файл

74
     @Autowired
74
     @Autowired
75
     MiniApp miniApp;
75
     MiniApp miniApp;
76
 
76
 
77
+    @Autowired
78
+    ICameraService cameraService;
79
+
77
     @Override
80
     @Override
78
     public List<TaPerson> getGroup(Integer customerId) {
81
     public List<TaPerson> getGroup(Integer customerId) {
79
         return taCustomerMapMapper.getGroup(customerId);
82
         return taCustomerMapMapper.getGroup(customerId);
207
             personId = taPerson.getRealId();
210
             personId = taPerson.getRealId();
208
             taMainUsherRecord.setPersonId(personId);
211
             taMainUsherRecord.setPersonId(personId);
209
         }
212
         }
210
-
213
+        
211
         Integer custId = taMainUsherRecord.getCustomerId();
214
         Integer custId = taMainUsherRecord.getCustomerId();
212
         TaCustomer cust;
215
         TaCustomer cust;
213
         if (null == custId) {
216
         if (null == custId) {
215
             if (!insertCustomer(cust)) {
218
             if (!insertCustomer(cust)) {
216
                 throw new Exception("新增客户信息失败");
219
                 throw new Exception("新增客户信息失败");
217
             }
220
             }
218
-
221
+            
219
             taMainUsherRecord.setCustomerId(cust.getCustomerId());
222
             taMainUsherRecord.setCustomerId(cust.getCustomerId());
220
         } else {
223
         } else {
221
             cust = taCustomerMapper.selectById(custId);
224
             cust = taCustomerMapper.selectById(custId);
222
         }
225
         }
223
-
226
+        
224
         TaCustomerMap taCustomerMap = taCustomerMapMapper.getCustomerOf(personId);
227
         TaCustomerMap taCustomerMap = taCustomerMapMapper.getCustomerOf(personId);
225
         if (null == taCustomerMap) {
228
         if (null == taCustomerMap) {
226
             TaCustomerMap custMap = new TaCustomerMap();
229
             TaCustomerMap custMap = new TaCustomerMap();
227
             custMap.setCustomerId(cust.getCustomerId());
230
             custMap.setCustomerId(cust.getCustomerId());
228
             custMap.setPersonId(taMainUsherRecord.getPersonId());
231
             custMap.setPersonId(taMainUsherRecord.getPersonId());
229
-
232
+            
230
             int row = taCustomerMapMapper.insert(custMap);
233
             int row = taCustomerMapMapper.insert(custMap);
231
             if (row <= 0) {
234
             if (row <= 0) {
232
                 throw new Exception("生成置业客户映射失败");
235
                 throw new Exception("生成置业客户映射失败");
233
             }
236
             }
234
         }
237
         }
235
-
238
+        
236
         // 发消息给置业
239
         // 发消息给置业
237
         if (null != cust.getConsultantId() && notify) {
240
         if (null != cust.getConsultantId() && notify) {
238
             notifyConsultant(cust);
241
             notifyConsultant(cust);
239
         }
242
         }
240
-
243
+    
244
+        if (notify){
245
+            //通知吧台来人了
246
+            cameraService.sendMessageToBar(cust,taMainUsherRecord.getPersonNum());
247
+            //推送置业经理
248
+            cameraService.sendMessageToConsultManager(cust);
249
+        }
250
+        
241
         return cust;
251
         return cust;
242
     }
252
     }
243
-
253
+    
254
+    @Override
255
+    public TaCustomer newCustByFirstUsher(TaFirstUsherRecord taFirstUsherRecord, boolean notify) throws Exception {
256
+        Integer personId = taFirstUsherRecord.getPersonId();
257
+        if (null == personId) {
258
+            TaPerson taPerson = iTaPersonService.newPersonByFirstUsher(taFirstUsherRecord);
259
+            personId = taPerson.getRealId();
260
+            taFirstUsherRecord.setPersonId(personId);
261
+        }
262
+        
263
+        TaCustomer cust = copyDataFromFirstUsher(taFirstUsherRecord);
264
+        if (!insertCustomer(cust)) {
265
+            throw new Exception("新增客户信息失败");
266
+        }
267
+        
268
+        TaCustomerMap taCustomerMap = taCustomerMapMapper.getCustomerOf(personId);
269
+        if (null == taCustomerMap) {
270
+            TaCustomerMap custMap = new TaCustomerMap();
271
+            custMap.setCustomerId(cust.getCustomerId());
272
+            custMap.setPersonId(taFirstUsherRecord.getPersonId());
273
+            
274
+            int row = taCustomerMapMapper.insert(custMap);
275
+            if (row <= 0) {
276
+                throw new Exception("生成置业客户映射失败");
277
+            }
278
+        }
279
+        
280
+        // 发消息给置业
281
+        if (null != cust.getConsultantId() && notify) {
282
+            notifyConsultant(cust);
283
+        }
284
+        if (notify){
285
+            //通知吧台来人了
286
+            cameraService.sendMessageToBar(cust,taFirstUsherRecord.getPersonNum());
287
+            //推送置业经理
288
+            cameraService.sendMessageToConsultManager(cust);
289
+        }
290
+        
291
+        return cust;
292
+    }
293
+    
294
+    private TaCustomer copyDataFromFirstUsher(TaFirstUsherRecord taFirstUsherRecord) {
295
+        TaCustomer taCustomer = new TaCustomer();
296
+        taCustomer.setCustomerId(taFirstUsherRecord.getPersonId());       // 默认客户ID与人员ID一致
297
+        taCustomer.setCustomerName(taFirstUsherRecord.getPersonName());
298
+        taCustomer.setPhone(taFirstUsherRecord.getPhone());
299
+        taCustomer.setPlateNumber(taFirstUsherRecord.getPlateNumber());
300
+        taCustomer.setCarModel(taFirstUsherRecord.getCarModel());
301
+        taCustomer.setChannel(taFirstUsherRecord.getChannel());
302
+        taCustomer.setPurpose(taFirstUsherRecord.getPurpose());
303
+        taCustomer.setStatus(StatusUtils.Normal);
304
+        taCustomer.setCreateDate(LocalDateTime.now());
305
+    
306
+        return taCustomer;
307
+    }
308
+    
244
     @Override
309
     @Override
245
     public Map<String, Object> getHistoryRecBy(Map<String, Object> filters) {
310
     public Map<String, Object> getHistoryRecBy(Map<String, Object> filters) {
246
         String phone = filters.get("phone").toString();
311
         String phone = filters.get("phone").toString();
449
         return null;
514
         return null;
450
     }
515
     }
451
 
516
 
517
+    @Override
518
+    public IPage<TaCustomer> getAttributionList(int pageNumber, int pageSize) {
519
+        IPage<TaCustomer> page = new Page<>(pageNumber, pageSize);
520
+        return taCustomerMapper.getAttributionList(page);
521
+    }
522
+    
523
+    @Override
524
+    public IPage<TaCustomer> getUnattributionList(int pageNumber, int pageSize) {
525
+        IPage<TaCustomer> page = new Page<>(pageNumber, pageSize);
526
+        return taCustomerMapper.getUnattributionList(page);
527
+    }
528
+
452
     private TaCustomer newCustomerByPerson(TaPerson taPerson) throws Exception {
529
     private TaCustomer newCustomerByPerson(TaPerson taPerson) throws Exception {
453
         TaCustomer taCustomer = new TaCustomer();
530
         TaCustomer taCustomer = new TaCustomer();
454
         taCustomer.setCustomerId(taPerson.getRealId());
531
         taCustomer.setCustomerId(taPerson.getRealId());

+ 25
- 1
src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java Просмотреть файл

9
 import com.huiju.welcome.common.WebSocketServer;
9
 import com.huiju.welcome.common.WebSocketServer;
10
 import com.huiju.welcome.mapper.TaFirstUsherRecordMapper;
10
 import com.huiju.welcome.mapper.TaFirstUsherRecordMapper;
11
 import com.huiju.welcome.model.*;
11
 import com.huiju.welcome.model.*;
12
+import com.huiju.welcome.service.ICameraService;
12
 import com.huiju.welcome.service.ITaCarService;
13
 import com.huiju.welcome.service.ITaCarService;
13
 import com.huiju.welcome.service.ITaCustomerService;
14
 import com.huiju.welcome.service.ITaCustomerService;
14
 import com.huiju.welcome.service.ITaFirstUsherRecordService;
15
 import com.huiju.welcome.service.ITaFirstUsherRecordService;
44
 
45
 
45
     @Autowired
46
     @Autowired
46
     ITaCarService iTaCarService;
47
     ITaCarService iTaCarService;
48
+    
49
+    @Autowired
50
+    ICameraService cameraService;
47
 
51
 
48
     @Override
52
     @Override
49
     public boolean updateNormal(List<TaFirstUsherRecord> records) {
53
     public boolean updateNormal(List<TaFirstUsherRecord> records) {
89
             WebSocketServer.sendInfo(act.toJSON(), CommConstant.WECHAT_CLIENT_MINIAPP, null);
93
             WebSocketServer.sendInfo(act.toJSON(), CommConstant.WECHAT_CLIENT_MINIAPP, null);
90
         } catch (Exception e) {}
94
         } catch (Exception e) {}
91
     }
95
     }
96
+    
97
+    @Override
98
+    public void notifyCar(TaFirstUsherRecord taFirstUsherRecord) {
99
+        Action act = Action.create(Action.TYPE_NEW_FIRST_USHER, JSONObject.toJSONString(taFirstUsherRecord, SerializerFeature.WriteMapNullValue));
100
+        try {
101
+            WebSocketServer.sendInfo(act.toJSON(), CommConstant.WECHAT_CLIENT_MINIAPP, null);
102
+        } catch (Exception e) {}
103
+    }
92
 
104
 
93
     @Override
105
     @Override
94
     public boolean newRecordByMiniapp(TaFirstUsherRecord taFirstUsherRecord) {
106
     public boolean newRecordByMiniapp(TaFirstUsherRecord taFirstUsherRecord) {
122
 
134
 
123
         // 查找客户
135
         // 查找客户
124
         TaCustomer taCustomer = iTaCustomerService.getByPhoneOrPlate(taFirstUsherRecord.getPhone(), taFirstUsherRecord.getPlateNumber());
136
         TaCustomer taCustomer = iTaCustomerService.getByPhoneOrPlate(taFirstUsherRecord.getPhone(), taFirstUsherRecord.getPlateNumber());
125
-        if (null == taCustomer) return true;
137
+        if (null == taCustomer) {
138
+            if (!StringUtils.isEmpty(taFirstUsherRecord.getPhone())){
139
+                try {
140
+                    taCustomer = iTaCustomerService.newCustByFirstUsher(taFirstUsherRecord,true);
141
+                } catch (Exception e) {
142
+                    e.printStackTrace();
143
+                }
144
+            }else {
145
+                return true;
146
+            }
147
+        }
126
 
148
 
127
         // 更新车型
149
         // 更新车型
128
         if (null != taFirstUsherRecord.getCarModel()) {
150
         if (null != taFirstUsherRecord.getCarModel()) {
208
                 TaCustomer taCustomer = taCustomerList.get(0);
230
                 TaCustomer taCustomer = taCustomerList.get(0);
209
                 try {
231
                 try {
210
                     iTaCustomerService.notifyConsultant(taCustomer);
232
                     iTaCustomerService.notifyConsultant(taCustomer);
233
+                    //通知吧台来人了
234
+                    cameraService.sendMessageToBar(taCustomer,taFirstUsherRecord.getPersonNum());
211
                 } catch (Exception e) {}
235
                 } catch (Exception e) {}
212
             }
236
             }
213
         }
237
         }

+ 19
- 0
src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java Просмотреть файл

297
 
297
 
298
         return taPerson;
298
         return taPerson;
299
     }
299
     }
300
+    
301
+    @Override
302
+    public TaPerson newPersonByFirstUsher(TaFirstUsherRecord taFirstUsherRecord) {
303
+        TaPerson taPerson = new TaPerson();
304
+        taPerson.setPhone(taFirstUsherRecord.getPhone());
305
+        taPerson.setName(taFirstUsherRecord.getPersonName());
306
+        taPerson.setStatus(StatusUtils.Normal);
307
+        taPerson.setCreateDate(LocalDateTime.now());
308
+        
309
+        // 直接是VIP
310
+        taPerson.setTypeId(2);
311
+        int row = taPersonMapper.insert(taPerson);
312
+        if (row < 0) return null;
313
+        
314
+        taPerson.setRealId(taPerson.getPersonId());
315
+        taPersonMapper.updateById(taPerson);
316
+        
317
+        return taPerson;
318
+    }
300
 
319
 
301
     @Override
320
     @Override
302
     public boolean updateByCustomer(TaCustomer taCustomer) {
321
     public boolean updateByCustomer(TaCustomer taCustomer) {

+ 17
- 1
src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java Просмотреть файл

72
 
72
 
73
         return result;
73
         return result;
74
     }
74
     }
75
-
75
+    
76
+    @Override
77
+    public IPage<TaVisitorAppointment> getTodayAppointmentList(int pageNum, int pageSize) {
78
+        IPage<TaVisitorAppointment> page = new Page<>(pageNum, pageSize);
79
+        IPage<TaVisitorAppointment> result = taVisitorAppointmentMapper.getTodayAppointmentList(page);
80
+    
81
+        return result;
82
+    }
83
+    
84
+    @Override
85
+    public ResponseBean miniappVisitorAppointmentList(IPage<TaVisitorAppointment> pg, String platNumber, String personName, String phone) {
86
+        ResponseBean responseBean= new ResponseBean();
87
+        IPage<TaVisitorAppointment> list= taVisitorAppointmentMapper.miniappVisitorAppointmentList(pg,platNumber,personName,phone);
88
+        responseBean.addSuccess(list);
89
+        return responseBean;
90
+    }
91
+    
76
     @Override
92
     @Override
77
     public ResponseBean visitorAppointmentList(IPage pg, String platNumber, String personName,String phone) {
93
     public ResponseBean visitorAppointmentList(IPage pg, String platNumber, String personName,String phone) {
78
        ResponseBean responseBean= new ResponseBean();
94
        ResponseBean responseBean= new ResponseBean();

+ 14
- 0
src/main/java/com.huiju.welcome/utils/CommConstant.java Просмотреть файл

5
     public final static String IDENTITY_FIRSTUSHER = "first-usher";
5
     public final static String IDENTITY_FIRSTUSHER = "first-usher";
6
     public final static String IDENTITY_MAINUSHER = "main-usher";
6
     public final static String IDENTITY_MAINUSHER = "main-usher";
7
     public final static String IDENTITY_BARUSHER = "bar-usher";
7
     public final static String IDENTITY_BARUSHER = "bar-usher";
8
+    public final static String IDENTITY_CONSULTANT_MANAGER = "consultant_manager";
8
 
9
 
9
     public final static String PAGE_MY_CUSTOMER = "pages/client/clientdetail/clientdetail";
10
     public final static String PAGE_MY_CUSTOMER = "pages/client/clientdetail/clientdetail";
10
 
11
 
11
     public final static String WECHAT_CLIENT_MINIAPP = "miniapp";
12
     public final static String WECHAT_CLIENT_MINIAPP = "miniapp";
13
+    public final static String WECHAT_CLIENT_CAR = "car";
14
+    public final static String WECHAT_CLIENT_BAR = "bar";
15
+    public final static String WECHAT_CLIENT_MAINUSHER = "mainusher";
12
 
16
 
13
     public final static Integer TYPE_NEW_PERSON = 1;
17
     public final static Integer TYPE_NEW_PERSON = 1;
14
     public final static Integer TYPE_VIP_PERSON = 2;
18
     public final static Integer TYPE_VIP_PERSON = 2;
16
 
20
 
17
     public final static String TYPE_CAR_NORMAL = "normal";
21
     public final static String TYPE_CAR_NORMAL = "normal";
18
     public final static String TYPE_CAR_INNER = "inner";
22
     public final static String TYPE_CAR_INNER = "inner";
23
+    
24
+    /**
25
+     * 已归属
26
+     */
27
+    public final static String CUSTOMER_ATTRIBUTION = "attribution";
28
+    
29
+    /**
30
+     * 未归属
31
+     */
32
+    public final static String CUSTOMER_UNATTRIBUTION = "unattribution";
19
 }
33
 }

+ 10
- 6
src/main/resources/application.yml Просмотреть файл

1
 spring:
1
 spring:
2
   datasource:
2
   datasource:
3
     driver-class-name: com.mysql.cj.jdbc.Driver
3
     driver-class-name: com.mysql.cj.jdbc.Driver
4
-    url: jdbc:mysql://rm-uf6z3z6jq11x653d77o.mysql.rds.aliyuncs.com:3306/welcome3?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
5
-    username: welcome
6
-    password: s190QU2#z%hdU%^FPkY9qjls
7
-#    url: jdbc:mysql://47.101.36.130:3306/welcome3?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
8
-#    username: root
9
-#    password: Wt4q*/9}i00q@0a4jM{z6O#h129@F/
4
+#    url: jdbc:mysql://rm-uf6z3z6jq11x653d77o.mysql.rds.aliyuncs.com:3306/welcome3?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
5
+#    username: welcome
6
+#    password: s190QU2#z%hdU%^FPkY9qjls
7
+    url: jdbc:mysql://47.101.36.130:3306/welcome3?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
8
+    username: root
9
+    password: Wt4q*/9}i00q@0a4jM{z6O#h129@F/
10
   servlet:
10
   servlet:
11
     multipart:
11
     multipart:
12
       max-file-size: 1024MB
12
       max-file-size: 1024MB
95
     size: 4
95
     size: 4
96
     # 短信签名
96
     # 短信签名
97
     sign: AI智慧案场
97
     sign: AI智慧案场
98
+
99
+# 二号岗设备不具备人脸比对功能
100
+unface:
101
+  device: 216

+ 15
- 0
src/main/resources/mapper/SysUserMapper.xml Просмотреть файл

17
         set status = -1, in_service = 0
17
         set status = -1, in_service = 0
18
         where user_id = #{userId}
18
         where user_id = #{userId}
19
     </update>
19
     </update>
20
+
21
+    <select id="selectConsultManagerList" resultType="com.huiju.welcome.model.SysUser">
22
+        SELECT
23
+            s.user_id,
24
+            w.openid,
25
+            s.create_date,
26
+            s.user_identity
27
+        FROM
28
+            sys_user s
29
+            LEFT JOIN ta_wechat_user w ON w.person_id = s.user_id
30
+        WHERE
31
+            1 = 1
32
+            AND s.user_identity = #{identityConsultantManager}
33
+            AND s.STATUS = 1
34
+    </select>
20
 </mapper>
35
 </mapper>

+ 28
- 0
src/main/resources/mapper/TaCustomerMapper.xml Просмотреть файл

96
         ORDER BY
96
         ORDER BY
97
             t.create_date DESC
97
             t.create_date DESC
98
     </select>
98
     </select>
99
+
100
+    <select id="getAttributionList" resultType="com.huiju.welcome.model.TaCustomer">
101
+        SELECT
102
+            c.*,
103
+            d.visite_date
104
+        FROM
105
+            ta_customer c
106
+            LEFT JOIN ( SELECT * FROM ta_main_usher_record t WHERE t.STATUS > 0 GROUP BY t.customer_id ORDER BY t.visite_date DESC ) d ON c.customer_id = d.customer_id
107
+        WHERE
108
+            c.STATUS > 0
109
+            AND c.consultant_id IS NULL
110
+        ORDER BY
111
+            d.visite_date DESC
112
+    </select>
113
+
114
+    <select id="getUnattributionList" resultType="com.huiju.welcome.model.TaCustomer">
115
+        SELECT
116
+            c.*,
117
+            d.visite_date
118
+        FROM
119
+            ta_customer c
120
+            LEFT JOIN ( SELECT * FROM ta_main_usher_record t WHERE t.STATUS > 0 GROUP BY t.customer_id ORDER BY t.visite_date DESC ) d ON c.customer_id = d.customer_id
121
+        WHERE
122
+            c.STATUS > 0
123
+            AND c.consultant_id IS NOT NULL
124
+        ORDER BY
125
+            d.visite_date DESC
126
+    </select>
99
 </mapper>
127
 </mapper>

+ 21
- 0
src/main/resources/mapper/TaVisitorAppointmentMapper.xml Просмотреть файл

47
             t.create_date DESC
47
             t.create_date DESC
48
     </select>
48
     </select>
49
 
49
 
50
+    <select id="getTodayAppointmentList" resultType="com.huiju.welcome.model.TaVisitorAppointment">
51
+        SELECT
52
+            *
53
+        FROM
54
+            ta_visitor_appointment t
55
+        WHERE
56
+            t.STATUS > 0
57
+            AND ( DATE_FORMAT( visit_date, '%Y-%m-%d' ) = DATE_FORMAT( now( ), '%Y-%m-%d' ) OR visit_date IS NULL )
58
+        ORDER BY
59
+            t.create_date DESC
60
+    </select>
61
+
62
+    <select id="miniappVisitorAppointmentList" resultType="com.huiju.welcome.model.TaVisitorAppointment">
63
+        SELECT
64
+            v.*,
65
+            s.username
66
+        FROM
67
+            ta_visitor_appointment v
68
+            LEFT JOIN sys_user s ON v.create_user = s.user_id
69
+        order by v.create_date desc
70
+    </select>
50
 </mapper>
71
 </mapper>