Selaa lähdekoodia

添加管家消息

傅行帆 4 vuotta sitten
vanhempi
commit
7c426c8e46

+ 79
- 26
src/main/java/com/huiju/estateagents/property/service/impl/TpTicketServiceImpl.java Näytä tiedosto

@@ -11,7 +11,10 @@ import com.google.common.collect.Maps;
11 11
 import com.huiju.estateagents.base.ResponseBean;
12 12
 import com.huiju.estateagents.center.taUser.entity.TaUser;
13 13
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
14
+import com.huiju.estateagents.common.WxUtils;
15
+import com.huiju.estateagents.entity.TaMiniapp;
14 16
 import com.huiju.estateagents.entity.TaPerson;
17
+import com.huiju.estateagents.mapper.TaMiniappMapper;
15 18
 import com.huiju.estateagents.mapper.TaPersonMapper;
16 19
 import com.huiju.estateagents.property.common.Constant;
17 20
 import com.huiju.estateagents.property.dao.*;
@@ -21,11 +24,24 @@ import com.huiju.estateagents.property.mapper.TpRepairTypeMapper;
21 24
 import com.huiju.estateagents.property.model.*;
22 25
 import com.huiju.estateagents.property.service.TpTicketService;
23 26
 import com.huiju.estateagents.property.vo.TpTicketVO;
27
+import com.huiju.estateagents.redpack.entity.TaMpMiniapp;
28
+import com.huiju.estateagents.redpack.entity.TaMpPerson;
29
+import com.huiju.estateagents.redpack.mapper.TaMpMiniappMapper;
30
+import com.huiju.estateagents.redpack.mapper.TaMpPersonMapper;
31
+import com.huiju.estateagents.redpack.service.ITaMpPersonService;
32
+import com.huiju.estateagents.service.IMiniAppService;
24 33
 import com.huiju.estateagents.service.ISysSmsEventService;
34
+import com.huiju.estateagents.third.entity.TaMpInfo;
35
+import com.huiju.estateagents.third.service.ITaMpInfoService;
36
+import me.chanjar.weixin.common.error.WxErrorException;
37
+import me.chanjar.weixin.mp.api.WxMpService;
38
+import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
39
+import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
25 40
 import org.apache.commons.lang3.StringUtils;
26 41
 import org.checkerframework.checker.units.qual.A;
27 42
 import org.springframework.beans.BeanUtils;
28 43
 import org.springframework.beans.factory.annotation.Autowired;
44
+import org.springframework.beans.factory.annotation.Value;
29 45
 import org.springframework.stereotype.Service;
30 46
 import org.springframework.transaction.annotation.Transactional;
31 47
 
@@ -83,6 +99,27 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
83 99
     @Autowired
84 100
     private ISysSmsEventService sysSmsEventService;
85 101
 
102
+    @Autowired
103
+    ITaMpInfoService iTaMpInfoService;
104
+
105
+    @Autowired
106
+    ITaMpPersonService iTaMpPersonService;
107
+
108
+    @Autowired
109
+    private IMiniAppService iMiniAppService;
110
+
111
+    @Autowired
112
+    WxUtils wxUtils;
113
+
114
+    @Value("${wx.miniapp.ticket}")
115
+    String miniAppTicket;
116
+
117
+    @Autowired
118
+    private TaMpMiniappMapper taMpMiniappMapper;
119
+
120
+    @Autowired
121
+    private TaMpPersonMapper taMpPersonMapper;
122
+
86 123
     @Override
87 124
     public ResponseBean ticketLiset(String parameter,Integer orgId) {
88 125
          ResponseBean response= new ResponseBean<>();
@@ -309,37 +346,53 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
309 346
         queryWrapper.eq("id", ticketId);
310 347
         queryWrapper.eq("org_id", orgId);
311 348
         TpTicket ticket = tpTicketMapper.selectOne(queryWrapper);
312
-        Message message = new Message();
313
-        message.setOrgId(orgId);
314
-        message.setMessageType(ticket.getType());
315
-        message.setTicketId(ticket.getId());
316
-        message.setAdviceType("4");
317
-        message.setUuid(userID.toString());
318
-        message.setModelType("2");
319
-        message.setUuidType("2");
320
-        message.setSource("2");
321
-        message.setMessageContent("工单“" + ticket.getTicketTitle() + "”已被分配给您,点击查看并处理");
322
-        message.setStatus("1");
323
-        message.setReadStatus("0");
324
-        message.setCreateUser(user.toString());
325
-        message.setCreateDate(LocalDateTime.now());
326
-        message.setTicketId(ticketId);
327
-//        messageMapper.insert(message);
328
-        //如果分配给本人维护消息模板
329
-        if (null!=userID&userID.equals(user)){
330
-            message.setModelType("1");
331
-//            messageMapper.insert(message);
349
+        // 发送消息给管家的公众号
350
+        LambdaQueryWrapper<TaPerson> taPersonLambdaQueryWrapper = new LambdaQueryWrapper<>();
351
+        taPersonLambdaQueryWrapper.eq(TaPerson::getOrgId,orgId);
352
+        taPersonLambdaQueryWrapper.eq(TaPerson::getUserId,taUser.getUserId());
353
+        TaPerson taPerson = taPersonMapper.selectOne(taPersonLambdaQueryWrapper);
354
+        if (null != taPerson){
355
+            LambdaQueryWrapper<TaMpMiniapp> taMpMiniappLambdaQueryWrapper = new LambdaQueryWrapper<>();
356
+            taMpMiniappLambdaQueryWrapper.eq(TaMpMiniapp::getMiniappPersonId,taPerson.getPersonId());
357
+            TaMpMiniapp taMpMiniapp = taMpMiniappMapper.selectOne(taMpMiniappLambdaQueryWrapper);
358
+            if (null != taMpMiniapp){
359
+                TaMpPerson taMpPerson = taMpPersonMapper.selectById(taMpMiniapp.getMpPersonId());
360
+                sendMpTicketMessage(ticket,taMpPerson);
361
+            }
362
+
332 363
         }
333
-        //分配成功后推送app
334
-        message.setUuidType("1");
335
-        message.setUuid(ticket.getCreateUser());
336
-        message.setMessageContent("工单“" + ticket.getTicketTitle() + "”已被分配给:"+taUser.getUserName());
337
-        message.setAdviceType("1");
338
-//        messageMapper.insert(message);
364
+
339 365
         response.addSuccess("成功");
340 366
         return response;
341 367
     }
342 368
 
369
+    /**
370
+     * 发送消息给管家
371
+     * @param ticket
372
+     * @param person
373
+     */
374
+    private void sendMpTicketMessage(TpTicket ticket,TaMpPerson person) {
375
+        WxMpService mpService = wxUtils.getMpService(ticket.getOrgId());
376
+
377
+        // 对应表数据
378
+        TaMpInfo mpInfo = iTaMpInfoService.getByOrgId(ticket.getOrgId());
379
+
380
+        TaMiniapp taMiniapp = iMiniAppService.getAppByOrg(mpInfo.getOrgId());
381
+
382
+        WxMpKefuMessage kefuMessage = WxMpKefuMessage.MINIPROGRAMPAGE().appId(taMiniapp.getMiniappId())
383
+                .toUser(person.getMpOpenid())
384
+                .title(taMiniapp.getName() + "有您的订单需要分配!")
385
+                .pagePath(miniAppTicket + ticket.getId() + "&mpOpenId=" + person.getMpOpenid() )
386
+                .thumbMediaId(mpInfo.getMiniappMedia())
387
+                .build();
388
+
389
+        try {
390
+            mpService.getKefuService().sendKefuMessage(kefuMessage);
391
+        } catch (WxErrorException e) {
392
+            e.printStackTrace();
393
+        }
394
+    }
395
+
343 396
     @Override
344 397
     public ResponseBean addWxRecord(String parameter, Integer user, Integer orgId) {
345 398
         ResponseBean response=new ResponseBean();

+ 1
- 0
src/main/resources/application.yml Näytä tiedosto

@@ -14,6 +14,7 @@ sms-service:
14 14
 wx:
15 15
   miniapp:
16 16
     index: /pages/ShouYe/index
17
+    ticket: pages/WuYe/BaoXiuDetail/index?id=
17 18
   mp:
18 19
     festivalH5: https://xs.ycjcjy.com/jierih5.html
19 20
     birthdayH5: https://xs.ycjcjy.com/shengrih5.html