张延森 4 lat temu
rodzic
commit
fdd13b9156

+ 1
- 1
pom.xml Wyświetl plik

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

+ 1
- 0
src/main/java/com/huiju/estateagents/center/taUser/mapper/TaUserMapper.java Wyświetl plik

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

+ 3
- 2
src/main/java/com/huiju/estateagents/common/CommConstant.java Wyświetl plik

936
     public static final String SMS_BIZ_REPAIRE_TICKET = "repaire-ticket";
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 Wyświetl plik

816
                                       @RequestParam(defaultValue = "10") int pageSize,
816
                                       @RequestParam(defaultValue = "10") int pageSize,
817
                                       @RequestParam(value = "name", required = false) String name,
817
                                       @RequestParam(value = "name", required = false) String name,
818
                                       @RequestParam(value = "phone", required = false) String phone,
818
                                       @RequestParam(value = "phone", required = false) String phone,
819
+                                      @RequestParam(value = "recommended", required = false) String recommended,
819
                                       HttpServletRequest request) {
820
                                       HttpServletRequest request) {
820
         Integer orgId = getOrgId(request);
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
         IPage<TaPerson> page = new Page<>(pageNumber, pageSize);
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 Wyświetl plik

258
     List<Map<String, Object>> selectCityPerson(@Param("orgId") Integer orgId);
258
     List<Map<String, Object>> selectCityPerson(@Param("orgId") Integer orgId);
259
 
259
 
260
     Integer cancelConsulatant(@Param("personId") String personId);
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 Wyświetl plik

11
 import com.huiju.estateagents.base.ResponseBean;
11
 import com.huiju.estateagents.base.ResponseBean;
12
 import com.huiju.estateagents.center.taUser.entity.TaUser;
12
 import com.huiju.estateagents.center.taUser.entity.TaUser;
13
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
13
 import com.huiju.estateagents.center.taUser.mapper.TaUserMapper;
14
+import com.huiju.estateagents.common.CommConstant;
15
+import com.huiju.estateagents.common.DateUtils;
14
 import com.huiju.estateagents.common.WxUtils;
16
 import com.huiju.estateagents.common.WxUtils;
15
 import com.huiju.estateagents.entity.TaMiniapp;
17
 import com.huiju.estateagents.entity.TaMiniapp;
18
+import com.huiju.estateagents.entity.TaMpTemplate;
16
 import com.huiju.estateagents.entity.TaPerson;
19
 import com.huiju.estateagents.entity.TaPerson;
17
 import com.huiju.estateagents.mapper.TaMiniappMapper;
20
 import com.huiju.estateagents.mapper.TaMiniappMapper;
18
 import com.huiju.estateagents.mapper.TaPersonMapper;
21
 import com.huiju.estateagents.mapper.TaPersonMapper;
31
 import com.huiju.estateagents.redpack.service.ITaMpPersonService;
34
 import com.huiju.estateagents.redpack.service.ITaMpPersonService;
32
 import com.huiju.estateagents.service.IMiniAppService;
35
 import com.huiju.estateagents.service.IMiniAppService;
33
 import com.huiju.estateagents.service.ISysSmsEventService;
36
 import com.huiju.estateagents.service.ISysSmsEventService;
37
+import com.huiju.estateagents.service.ITaMpTemplateService;
38
+import com.huiju.estateagents.service.ITaPersonService;
34
 import com.huiju.estateagents.third.entity.TaMpInfo;
39
 import com.huiju.estateagents.third.entity.TaMpInfo;
35
 import com.huiju.estateagents.third.service.ITaMpInfoService;
40
 import com.huiju.estateagents.third.service.ITaMpInfoService;
36
 import me.chanjar.weixin.common.error.WxErrorException;
41
 import me.chanjar.weixin.common.error.WxErrorException;
37
 import me.chanjar.weixin.mp.api.WxMpService;
42
 import me.chanjar.weixin.mp.api.WxMpService;
38
 import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
43
 import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
39
 import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
44
 import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
45
+import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
40
 import org.apache.commons.lang3.StringUtils;
46
 import org.apache.commons.lang3.StringUtils;
41
 import org.checkerframework.checker.units.qual.A;
47
 import org.checkerframework.checker.units.qual.A;
42
 import org.springframework.beans.BeanUtils;
48
 import org.springframework.beans.BeanUtils;
105
     @Autowired
111
     @Autowired
106
     ITaMpPersonService iTaMpPersonService;
112
     ITaMpPersonService iTaMpPersonService;
107
 
113
 
114
+    @Autowired
115
+    ITaPersonService iTaPersonService;
116
+
108
     @Autowired
117
     @Autowired
109
     private IMiniAppService iMiniAppService;
118
     private IMiniAppService iMiniAppService;
110
 
119
 
120
+    @Autowired
121
+    private ITaMpTemplateService iTaMpTemplateService;
122
+
111
     @Autowired
123
     @Autowired
112
     WxUtils wxUtils;
124
     WxUtils wxUtils;
113
 
125
 
382
         WxMpKefuMessage kefuMessage = WxMpKefuMessage.MINIPROGRAMPAGE().appId(taMiniapp.getMiniappId())
394
         WxMpKefuMessage kefuMessage = WxMpKefuMessage.MINIPROGRAMPAGE().appId(taMiniapp.getMiniappId())
383
                 .toUser(person.getMpOpenid())
395
                 .toUser(person.getMpOpenid())
384
                 .title(taMiniapp.getName() + "有您的订单需要分配!")
396
                 .title(taMiniapp.getName() + "有您的订单需要分配!")
385
-                .pagePath(miniAppTicket + ticket.getId() + "&mpOpenId=" + person.getMpOpenid() )
397
+                .pagePath(miniAppTicket + ticket.getId())
386
                 .thumbMediaId(mpInfo.getMiniappMedia())
398
                 .thumbMediaId(mpInfo.getMiniappMedia())
387
                 .build();
399
                 .build();
388
 
400
 
390
             mpService.getKefuService().sendKefuMessage(kefuMessage);
402
             mpService.getKefuService().sendKefuMessage(kefuMessage);
391
         } catch (WxErrorException e) {
403
         } catch (WxErrorException e) {
392
             e.printStackTrace();
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 Wyświetl plik

118
                    TaCustomerFrom customerFrom) throws Exception;
118
                    TaCustomerFrom customerFrom) throws Exception;
119
 
119
 
120
     ResponseBean updateUserPhoto(String photoUrl, String openId);
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 Wyświetl plik

950
         if (userList.size() > 0){
950
         if (userList.size() > 0){
951
             TaUser taUser = userList.get(0);
951
             TaUser taUser = userList.get(0);
952
             person.setPersonType(taUser.getType());
952
             person.setPersonType(taUser.getType());
953
+            person.setUserId(taUser.getUserId());
953
         }
954
         }
954
         updateById(person);
955
         updateById(person);
955
 
956
 
1322
         responseBean.addSuccess("修改成功");
1323
         responseBean.addSuccess("修改成功");
1323
         return responseBean;
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 Wyświetl plik

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

+ 24
- 0
src/main/resources/mapper/TaPersonMapper.xml Wyświetl plik

639
             INNER JOIN td_city b ON b.citycode = a.citycode
639
             INNER JOIN td_city b ON b.citycode = a.citycode
640
             AND b.leveltype = 2
640
             AND b.leveltype = 2
641
     </select>
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
     <insert id="savePersonPosition" parameterType="com.huiju.estateagents.entity.TaPersonPositon">
667
     <insert id="savePersonPosition" parameterType="com.huiju.estateagents.entity.TaPersonPositon">
644
         insert into ta_person_position
668
         insert into ta_person_position