张延森 hace 4 años
padre
commit
fdd13b9156

+ 1
- 1
pom.xml Ver fichero

@@ -10,7 +10,7 @@
10 10
 	</parent>
11 11
 	<groupId>com.huiju</groupId>
12 12
 	<artifactId>xiangsong</artifactId>
13
-	<version>1.0.50</version>
13
+	<version>1.0.52</version>
14 14
 	<name>xiangsong</name>
15 15
 	<description>香颂</description>
16 16
 

+ 1
- 0
src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java Ver fichero

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.huiju.estateagents.center.taUser.entity.TaTags;
6 6
 import com.huiju.estateagents.center.taUser.entity.TaUser;
7
+import com.huiju.estateagents.entity.TaPerson;
7 8
 import com.huiju.estateagents.entity.TaPersonBuilding;
8 9
 import org.apache.ibatis.annotations.Mapper;
9 10
 import org.apache.ibatis.annotations.Param;

+ 3
- 2
src/main/java/com/huiju/estateagents/common/CommConstant.java Ver fichero

@@ -936,6 +936,7 @@ public class CommConstant {
936 936
     public static final String SMS_BIZ_REPAIRE_TICKET = "repaire-ticket";
937 937
 
938 938
     // 推送消息类型
939
-    public static final String TP_MESSAGE_BIRTHDAY = "birthday";
940
-    public static final String TP_MESSAGE_FESTIVAL= "festival";
939
+    public static final String TP_MESSAGE_BIRTHDAY = "birthday";    // 生日
940
+    public static final String TP_MESSAGE_FESTIVAL= "festival";     // 节日
941
+    public static final String TP_MESSAGE_TICKET= "ticket";         // 工单
941 942
 }

+ 3
- 8
src/main/java/com/huiju/estateagents/controller/TaPersonController.java Ver fichero

@@ -816,19 +816,14 @@ public class TaPersonController extends BaseController {
816 816
                                       @RequestParam(defaultValue = "10") int pageSize,
817 817
                                       @RequestParam(value = "name", required = false) String name,
818 818
                                       @RequestParam(value = "phone", required = false) String phone,
819
+                                      @RequestParam(value = "recommended", required = false) String recommended,
819 820
                                       HttpServletRequest request) {
820 821
         Integer orgId = getOrgId(request);
821 822
 
822
-        QueryWrapper<TaPerson> queryWrapper = new QueryWrapper<>();
823
-        queryWrapper.eq("org_id", orgId);
824
-        queryWrapper.like(!StringUtils.isEmpty(name),"nickname", "%"+name+"%");
825
-        queryWrapper.eq(!StringUtils.isEmpty(phone),"phone", phone);
826
-        queryWrapper.isNotNull("avatarurl");
827
-        queryWrapper.eq("status", CommConstant.STATUS_NORMAL);
828
-
829 823
         IPage<TaPerson> page = new Page<>(pageNumber, pageSize);
824
+        IPage<TaPerson> result = taPersonService.getPersonBy(page, orgId, name, phone, recommended);
830 825
 
831
-        return ResponseBean.success(taPersonService.page(page, queryWrapper));
826
+        return ResponseBean.success(result);
832 827
     }
833 828
 
834 829
 }

+ 3
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonMapper.java Ver fichero

@@ -258,4 +258,7 @@ public interface TaPersonMapper extends BaseMapper<TaPerson> {
258 258
     List<Map<String, Object>> selectCityPerson(@Param("orgId") Integer orgId);
259 259
 
260 260
     Integer cancelConsulatant(@Param("personId") String personId);
261
+
262
+    IPage<TaPerson> getPersonBy(IPage<TaPerson> page, @Param("orgId") Integer orgId, @Param("name") String name,  @Param("phone") String phone, @Param("recommended") String recommended);
263
+
261 264
 }

+ 42
- 1
src/main/java/com/huiju/estateagents/property/service/impl/TpTicketServiceImpl.java Ver fichero

@@ -11,8 +11,11 @@ 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.CommConstant;
15
+import com.huiju.estateagents.common.DateUtils;
14 16
 import com.huiju.estateagents.common.WxUtils;
15 17
 import com.huiju.estateagents.entity.TaMiniapp;
18
+import com.huiju.estateagents.entity.TaMpTemplate;
16 19
 import com.huiju.estateagents.entity.TaPerson;
17 20
 import com.huiju.estateagents.mapper.TaMiniappMapper;
18 21
 import com.huiju.estateagents.mapper.TaPersonMapper;
@@ -31,12 +34,15 @@ import com.huiju.estateagents.redpack.mapper.TaMpPersonMapper;
31 34
 import com.huiju.estateagents.redpack.service.ITaMpPersonService;
32 35
 import com.huiju.estateagents.service.IMiniAppService;
33 36
 import com.huiju.estateagents.service.ISysSmsEventService;
37
+import com.huiju.estateagents.service.ITaMpTemplateService;
38
+import com.huiju.estateagents.service.ITaPersonService;
34 39
 import com.huiju.estateagents.third.entity.TaMpInfo;
35 40
 import com.huiju.estateagents.third.service.ITaMpInfoService;
36 41
 import me.chanjar.weixin.common.error.WxErrorException;
37 42
 import me.chanjar.weixin.mp.api.WxMpService;
38 43
 import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
39 44
 import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
45
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
40 46
 import org.apache.commons.lang3.StringUtils;
41 47
 import org.checkerframework.checker.units.qual.A;
42 48
 import org.springframework.beans.BeanUtils;
@@ -105,9 +111,15 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
105 111
     @Autowired
106 112
     ITaMpPersonService iTaMpPersonService;
107 113
 
114
+    @Autowired
115
+    ITaPersonService iTaPersonService;
116
+
108 117
     @Autowired
109 118
     private IMiniAppService iMiniAppService;
110 119
 
120
+    @Autowired
121
+    private ITaMpTemplateService iTaMpTemplateService;
122
+
111 123
     @Autowired
112 124
     WxUtils wxUtils;
113 125
 
@@ -382,7 +394,7 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
382 394
         WxMpKefuMessage kefuMessage = WxMpKefuMessage.MINIPROGRAMPAGE().appId(taMiniapp.getMiniappId())
383 395
                 .toUser(person.getMpOpenid())
384 396
                 .title(taMiniapp.getName() + "有您的订单需要分配!")
385
-                .pagePath(miniAppTicket + ticket.getId() + "&mpOpenId=" + person.getMpOpenid() )
397
+                .pagePath(miniAppTicket + ticket.getId())
386 398
                 .thumbMediaId(mpInfo.getMiniappMedia())
387 399
                 .build();
388 400
 
@@ -390,6 +402,35 @@ public class TpTicketServiceImpl extends ServiceImpl<TpTicketMapper, TpTicket> i
390 402
             mpService.getKefuService().sendKefuMessage(kefuMessage);
391 403
         } catch (WxErrorException e) {
392 404
             e.printStackTrace();
405
+
406
+            // 如果客服消息发送失败, 则发送普通模板消息
407
+            List<TaMpTemplate> mpTemplateList = iTaMpTemplateService.getAvailableList(ticket.getOrgId(), CommConstant.TP_MESSAGE_TICKET);
408
+            if (null == mpTemplateList || mpTemplateList.size() < 1) {
409
+                return;
410
+            }
411
+            TaMpTemplate mpTemplate = mpTemplateList.get(0);
412
+
413
+            try {
414
+                TaPerson propOwner = iTaPersonService.getById(ticket.getPersonId());
415
+                String message = String.format("业主电话: %s ; 报修内容: %s", propOwner.getPhone(), ticket.getTicketTitle());
416
+                String remark = String.format("请及时进入【%s】小程序进行处理", taMiniapp.getName());
417
+
418
+                WxUtils.sendTemplateMessage(mpService,
419
+                        person.getMpOpenid(),
420
+                        mpTemplate.getTemplateCode(),
421
+                        null,
422
+                        new ArrayList<WxMpTemplateData>(){{
423
+                            add(new WxMpTemplateData("first", "工单提醒"));
424
+                            add(new WxMpTemplateData("keyword1", "您有一个新的工单"));
425
+                            add(new WxMpTemplateData("keyword2", DateUtils.today()));
426
+                            add(new WxMpTemplateData("keyword3", message));
427
+                            add(new WxMpTemplateData("remark", remark));
428
+                        }}
429
+                );
430
+            } catch (Exception e2) {
431
+                e2.printStackTrace();
432
+            }
433
+
393 434
         }
394 435
     }
395 436
 

+ 2
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonService.java Ver fichero

@@ -118,4 +118,6 @@ public interface ITaPersonService extends IService<TaPerson> {
118 118
                    TaCustomerFrom customerFrom) throws Exception;
119 119
 
120 120
     ResponseBean updateUserPhoto(String photoUrl, String openId);
121
+
122
+    IPage<TaPerson> getPersonBy(IPage<TaPerson> page, Integer orgId, String name, String phone, String recommended);
121 123
 }

+ 6
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPersonServiceImpl.java Ver fichero

@@ -950,6 +950,7 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
950 950
         if (userList.size() > 0){
951 951
             TaUser taUser = userList.get(0);
952 952
             person.setPersonType(taUser.getType());
953
+            person.setUserId(taUser.getUserId());
953 954
         }
954 955
         updateById(person);
955 956
 
@@ -1322,4 +1323,9 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
1322 1323
         responseBean.addSuccess("修改成功");
1323 1324
         return responseBean;
1324 1325
     }
1326
+
1327
+    @Override
1328
+    public IPage<TaPerson> getPersonBy(IPage<TaPerson> page, Integer orgId, String name, String phone, String recommended) {
1329
+        return taPersonMapper.getPersonBy(page, orgId, name, phone, recommended);
1330
+    }
1325 1331
 }

+ 1
- 1
src/main/resources/application.yml Ver fichero

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

+ 24
- 0
src/main/resources/mapper/TaPersonMapper.xml Ver fichero

@@ -639,6 +639,30 @@ FROM
639 639
             INNER JOIN td_city b ON b.citycode = a.citycode
640 640
             AND b.leveltype = 2
641 641
     </select>
642
+    <select id="getPersonBy" resultType="com.huiju.estateagents.entity.TaPerson">
643
+        SELECT
644
+            t.*,
645
+            s.nickname AS share_person_name
646
+        FROM
647
+            ta_person t
648
+            LEFT JOIN ta_person s ON s.org_id = t.org_id
649
+            AND t.recommend_person = s.person_id
650
+        WHERE
651
+            t.org_id = #{orgId}
652
+        <if test="name != null and '' != name">
653
+            AND t.nickname LIKE CONCAT( '%', #{name}, '%' )
654
+        </if>
655
+        <if test="phone != null and '' != phone">
656
+            AND t.phone = 123
657
+        </if>
658
+        <if test="recommended != null and '' != recommended">
659
+            AND s.nickname LIKE CONCAT( '%', #{recommended}, '%' )
660
+        </if>
661
+            AND IFNULL( t.avatarurl, '' ) > ''
662
+            AND t.`status` > - 1
663
+        ORDER BY
664
+            t.create_date
665
+    </select>
642 666
 
643 667
     <insert id="savePersonPosition" parameterType="com.huiju.estateagents.entity.TaPersonPositon">
644 668
         insert into ta_person_position