Kaynağa Gözat

解决合并冲突

dingxin 6 yıl önce
ebeveyn
işleme
67491d9761
51 değiştirilmiş dosya ile 2432 ekleme ve 303 silme
  1. 22
    0
      CODE/foreign-service/src/main/java/com/community/huiju/common/message/MessagePush.java
  2. 1
    1
      CODE/foreign-service/src/main/java/com/community/huiju/controller/TaUserController.java
  3. 4
    9
      CODE/foreign-service/src/main/java/com/community/huiju/dao/TaUserHkMapper.java
  4. 16
    0
      CODE/foreign-service/src/main/java/com/community/huiju/dao/TpMessageMapper.java
  5. 32
    0
      CODE/foreign-service/src/main/java/com/community/huiju/dao/TpUnitHkSettingMapper.java
  6. 5
    1
      CODE/foreign-service/src/main/java/com/community/huiju/enums/ResponseErrorsMessages.java
  7. 139
    0
      CODE/foreign-service/src/main/java/com/community/huiju/model/TpMessage.java
  8. 49
    0
      CODE/foreign-service/src/main/java/com/community/huiju/model/TpUnitHkSetting.java
  9. 13
    6
      CODE/foreign-service/src/main/java/com/community/huiju/service/IHKService.java
  10. 14
    0
      CODE/foreign-service/src/main/java/com/community/huiju/service/ITaUserService.java
  11. 16
    0
      CODE/foreign-service/src/main/java/com/community/huiju/service/ITpMessageService.java
  12. 16
    0
      CODE/foreign-service/src/main/java/com/community/huiju/service/ITpUnitHkSettingService.java
  13. 83
    27
      CODE/foreign-service/src/main/java/com/community/huiju/service/impl/FaceServicelimpl.java
  14. 117
    99
      CODE/foreign-service/src/main/java/com/community/huiju/service/impl/HKServiceImpl.java
  15. 7
    3
      CODE/foreign-service/src/main/java/com/community/huiju/service/impl/TaUserServiceImpl.java
  16. 28
    0
      CODE/foreign-service/src/main/java/com/community/huiju/service/impl/TaUserVerifyServiceImpl.java
  17. 20
    0
      CODE/foreign-service/src/main/java/com/community/huiju/service/impl/TpMessageServiceImpl.java
  18. 5
    0
      CODE/foreign-service/src/main/resources/mapper/TpMessageMapper.xml
  19. 6
    6
      CODE/smart-community/app-api/src/main/java/com/community/huiju/AppApplication.java
  20. 24
    4
      CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/HkController.java
  21. 23
    1
      CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/UserController.java
  22. 8
    2
      CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TaUserHkMapper.java
  23. 34
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TaUserMapper.java
  24. 76
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TaUserVerifyMapper.java
  25. 32
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TpUnitHkSettingMapper.java
  26. 13
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TaUser.java
  27. 1
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TaUserVerify.java
  28. 53
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TpUnitHkSetting.java
  29. 27
    1
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/IHKService.java
  30. 26
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/ISenCartId.java
  31. 16
    1
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/ITaUserService.java
  32. 89
    77
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/FaceServicelimpl.java
  33. 186
    44
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/HKServiceImpl.java
  34. 414
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/SenCartIdImpl.java
  35. 103
    9
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserServiceImpl.java
  36. 10
    2
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaVistorServiceImpl.java
  37. 428
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/userDataHKsiteImpl.java
  38. 21
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/service/userDataHKsiteI.java
  39. 62
    0
      CODE/smart-community/app-api/src/main/java/com/community/huiju/siteutil/userDataHKsite.java
  40. 25
    0
      CODE/smart-community/app-api/src/main/resources/mapper/TaUserMapper.xml
  41. 14
    1
      CODE/smart-community/app-api/src/main/resources/mapper/TaUserVerifyMapper.xml
  42. 93
    0
      CODE/smart-community/app-api/src/main/resources/mapper/TpUnitHkSettingMapper.xml
  43. 7
    1
      CODE/smart-community/community-common/src/main/java/com/community/commom/hk/HKOpenApi.java
  44. 6
    0
      CODE/smart-community/property-api/src/main/java/com/community/huiju/model/TpBuildingOwnerInfo.java
  45. 36
    2
      CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/BuildingOwnerInfoServiceImpl.java
  46. 2
    1
      VUECODE/smart-operate-manage/src/views/banner/addBanner/index.vue
  47. 2
    1
      VUECODE/smart-operate-manage/src/views/banner/ediBanner/index.vue
  48. 2
    1
      VUECODE/smart-property-manage/src/views/banner/addBanner/index.vue
  49. 2
    1
      VUECODE/smart-property-manage/src/views/banner/ediBanner/index.vue
  50. 2
    1
      VUECODE/smart-property-manage/src/views/social/transaction/reply/transactionreply.vue
  51. 2
    1
      VUECODE/smart-property-manage/src/views/social/transaction/transactionDetails.vue

+ 22
- 0
CODE/foreign-service/src/main/java/com/community/huiju/common/message/MessagePush.java Dosyayı Görüntüle

@@ -0,0 +1,22 @@
1
+package com.community.huiju.common.message;
2
+
3
+public class MessagePush {
4
+
5
+    public String[]  messagePushAll() {
6
+        String[] messageArr= new String[13];
7
+        messageArr[0] = "账号已审核通过,看看下面的消息了解下APP如何使用吧!";
8
+        messageArr[1] = "点击顶部小区名称,切换到其他房产或小区,或关联更多房产";
9
+        messageArr[2] = "点击上方 人脸录入,为自己或家人录入人脸信息,家人未注册可先替TA注册";
10
+        messageArr[3] = "点击上方 访客邀请,将生成的二维码发送给访客,访客即可使用二维码开门";
11
+        messageArr[4] = "点击上方 公区监控,查看小区公共区域视频直播,看看大家都在干什么";
12
+        messageArr[5] = "点击上方 智能家居,安装APP玩转室内智能家居设备";
13
+        messageArr[6] = "想知道物业公告和社区活动?点击底部 论坛 查看";
14
+        messageArr[7] = "参与社区议事,发布二手/求购/租赁等热门话题,点击底部 论坛 话题";
15
+        messageArr[8] = "点击底部开锁图标,获取开门二维码,即可扫码开门";
16
+        messageArr[9] = "楼道灯不亮,电梯坏了,通下水道,找保洁?点击底部 服务 报修";
17
+        messageArr[10] = "想投诉施工扰民、乱搭乱建、乱停车?点击底部 服务 投诉";
18
+        messageArr[11] = "有很急的事需要马上联系物业?点击底部 服务 物业 电话联系物业";
19
+        messageArr[12] = "家人想刷脸进门不会操作?点击底部 个人 房屋成员管理 邀请新成员为TA录入人脸";
20
+        return  messageArr;
21
+    }
22
+}

+ 1
- 1
CODE/foreign-service/src/main/java/com/community/huiju/controller/TaUserController.java Dosyayı Görüntüle

@@ -41,7 +41,7 @@ public class TaUserController extends BaseController {
41 41
             @ApiImplicitParam(dataTypeClass = String.class, paramType = "form", name = "sign", value = "签名"),
42 42
     })
43 43
     public ResponseBean addUser(@RequestParam(value = "userName") String userName,
44
-                                @RequestParam(value = "idCard") String idCard,
44
+                                @RequestParam(value = "idCard", required = false) String idCard,
45 45
                                 @RequestParam(value = "gender") String gender,
46 46
                                 @RequestParam(value = "phone") String phone){
47 47
         ResponseBean responseBean = iTaUserService.addTaUser(userName, idCard, gender, phone);

+ 4
- 9
CODE/foreign-service/src/main/java/com/community/huiju/dao/TaUserHkMapper.java Dosyayı Görüntüle

@@ -1,6 +1,7 @@
1 1
 package com.community.huiju.dao;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.community.huiju.model.TaUser;
4 5
 import com.community.huiju.model.TaUserHk;
5 6
 import org.apache.ibatis.annotations.Param;
6 7
 import org.apache.ibatis.annotations.ResultMap;
@@ -17,14 +18,8 @@ import org.apache.ibatis.annotations.Select;
17 18
  */
18 19
 public interface TaUserHkMapper extends BaseMapper<TaUserHk> {
19 20
 
20
-    /**
21
-     * 根据用户id 和 小区id 进行查询
22
-     * @param userId
23
-     * @param communityId
24
-     * @return
25
-     */
26
-    @ResultType(TaUserHk.class)
27
-    @Select("select * from ta_user_hk where ta_user_id = #{userId} and community_id = #{communityId}")
28
-    TaUserHk selectByUserIdAndCommunityId(@Param("userId") Integer userId, @Param("communityId") Integer communityId);
29 21
 
22
+    @ResultType(TaUserHk.class)
23
+    @Select("select * from ta_user_hk where ta_user_id = #{userVerifyId} and community_id = #{communityId}")
24
+    TaUserHk selectByUserVerifyIdAndCommunityId(Integer userVerifyId, Integer communityId);
30 25
 }

+ 16
- 0
CODE/foreign-service/src/main/java/com/community/huiju/dao/TpMessageMapper.java Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+package com.community.huiju.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.community.huiju.model.TpMessage;
5
+
6
+/**
7
+ * <p>
8
+ * 物业端消息表 Mapper 接口
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-06-24
13
+ */
14
+public interface TpMessageMapper extends BaseMapper<TpMessage> {
15
+
16
+}

+ 32
- 0
CODE/foreign-service/src/main/java/com/community/huiju/dao/TpUnitHkSettingMapper.java Dosyayı Görüntüle

@@ -0,0 +1,32 @@
1
+package com.community.huiju.dao;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.community.huiju.model.TpUnitHkSetting;
5
+import org.apache.ibatis.annotations.ResultMap;
6
+import org.apache.ibatis.annotations.ResultType;
7
+import org.apache.ibatis.annotations.Select;
8
+
9
+/**
10
+ * <p>
11
+ *  Mapper 接口
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-06-18
16
+ */
17
+public interface TpUnitHkSettingMapper extends BaseMapper<TpUnitHkSetting> {
18
+
19
+
20
+
21
+    /**
22
+     * 根据 小区id 和 单元id
23
+     *
24
+     * @param communityId
25
+     * @param unitId
26
+     * @return
27
+     */
28
+    @ResultType(TpUnitHkSetting.class)
29
+    @Select("select * from tp_unit_hk_setting where community_id = #{communityId} and unit_id = #{unitId}")
30
+    TpUnitHkSetting selectByCommunityIdAndUnitId(Integer communityId, Integer unitId);
31
+
32
+}

+ 5
- 1
CODE/foreign-service/src/main/java/com/community/huiju/enums/ResponseErrorsMessages.java Dosyayı Görüntüle

@@ -34,7 +34,11 @@ public enum ResponseErrorsMessages {
34 34
     SIGN_ERROR(1022, "签名错误!"),
35 35
     SIGN_DATETIME_ERROR(1023, "签名已过期!"),
36 36
     SIGN_ENCRYPT_MD5_ERROR(1024, "未使用md5加密方式加密!"),
37
-    NOT_EQUIPMENT(1025, "系统设备未设置!")
37
+    NOT_EQUIPMENT(1025, "系统设备未设置!"),
38
+    NOT_PERMISSIONS_SET(1025, "权限组未配置!"),
39
+    ERROR_ID_CARD(1026, "身份证不合法!"),
40
+    NO_HK_AUTH(1027, "海康权限信息 未配置"),
41
+    NO_ET(1028, "设备树 未配置"),
38 42
     ;
39 43
 
40 44
 

+ 139
- 0
CODE/foreign-service/src/main/java/com/community/huiju/model/TpMessage.java Dosyayı Görüntüle

@@ -0,0 +1,139 @@
1
+package com.community.huiju.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import com.baomidou.mybatisplus.annotation.TableName;
6
+import lombok.Data;
7
+import lombok.EqualsAndHashCode;
8
+import lombok.experimental.Accessors;
9
+
10
+import java.io.Serializable;
11
+import java.time.LocalDateTime;
12
+import java.util.Date;
13
+
14
+/**
15
+ * <p>
16
+ * 物业端消息表
17
+ * </p>
18
+ *
19
+ * @author jobob
20
+ * @since 2019-06-24
21
+ */
22
+@Data
23
+@EqualsAndHashCode(callSuper = false)
24
+@Accessors(chain = true)
25
+@TableName("tp_message")
26
+public class TpMessage implements Serializable {
27
+
28
+    private static final long serialVersionUID = 1L;
29
+
30
+    @TableId(value = "id", type = IdType.AUTO)
31
+    private Integer id;
32
+
33
+    /**
34
+     * 工单id 非工单不填
35
+     */
36
+    private Integer ticketId;
37
+
38
+    /**
39
+     * 小区id
40
+     */
41
+    private Integer communityId;
42
+
43
+    /**
44
+     * 消息类型  1:投诉   2:报修 3:联系物业  4: 访客  5:公告  6:系统通知  7:账单 8:活动 9:帖子 10:物业发送消息
45
+     */
46
+    private String messageType;
47
+
48
+    /**
49
+     * 通知方式  1 是app内通知  2是短信通知 3 是通知栏消息  4 是 web端消息
50
+     */
51
+    private String adviceType;
52
+
53
+    /**
54
+     * 模板类型 1 是消息模板 2是待办模板
55
+     */
56
+    private String modelType;
57
+
58
+    /**
59
+     * 接收人id
60
+     */
61
+    private Integer uuid;
62
+
63
+    /**
64
+     * 接收人id的类型  1是app用户 2是物业端用户
65
+     */
66
+    private String uuidType;
67
+
68
+    /**
69
+     * 来源 1 是app端  2是物业端
70
+     */
71
+    private String source;
72
+
73
+    /**
74
+     * 消息内容
75
+     */
76
+    private String messageContent;
77
+
78
+    /**
79
+     * 状态 1 是有效 0是无效
80
+     */
81
+    private String status;
82
+
83
+    /**
84
+     * 推送结果
85
+     */
86
+    private String result;
87
+
88
+    /**
89
+     * 事件类型表的id 预留字段
90
+     */
91
+    private String meaasgeTypeId;
92
+
93
+    /**
94
+     * 阅读状态 0 是未读  1是已读
95
+     */
96
+    private String readStatus;
97
+
98
+    /**
99
+     * 创建人
100
+     */
101
+    private Integer createUser;
102
+
103
+    /**
104
+     * 创建时间
105
+     */
106
+    private Date createDate;
107
+
108
+    /**
109
+     * 更新人
110
+     */
111
+    private Integer updateUser;
112
+
113
+    /**
114
+     * 更新时间
115
+     */
116
+    private Date updateDate;
117
+
118
+    /**
119
+     * 缴费项ID
120
+     */
121
+    private Integer billId;
122
+
123
+    /**
124
+     * 活动Id
125
+     */
126
+    private Integer activityId;
127
+
128
+    /**
129
+     * 公告Id
130
+     */
131
+    private Integer announcementId;
132
+
133
+    /**
134
+     * 二手租赁
135
+     */
136
+    private Integer transactionId;
137
+
138
+
139
+}

+ 49
- 0
CODE/foreign-service/src/main/java/com/community/huiju/model/TpUnitHkSetting.java Dosyayı Görüntüle

@@ -0,0 +1,49 @@
1
+package com.community.huiju.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import com.baomidou.mybatisplus.annotation.TableName;
6
+import lombok.Data;
7
+import lombok.EqualsAndHashCode;
8
+import lombok.experimental.Accessors;
9
+
10
+import java.io.Serializable;
11
+
12
+/**
13
+ * <p>
14
+ * 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-06-18
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+@TableName("tp_unit_hk_setting")
24
+public class TpUnitHkSetting implements Serializable {
25
+
26
+    private static final long serialVersionUID = 1L;
27
+
28
+    @TableId(value = "id", type = IdType.AUTO)
29
+    private Integer id;
30
+
31
+    /**
32
+     * 小区id
33
+     */
34
+    private Integer communityId;
35
+
36
+    /**
37
+     * 单元ID
38
+     */
39
+    private Integer unitId;
40
+
41
+    /**
42
+     * 海康权限ID
43
+     */
44
+    private String permissionId;
45
+
46
+    private String departmentId;
47
+
48
+
49
+}

+ 13
- 6
CODE/foreign-service/src/main/java/com/community/huiju/service/IHKService.java Dosyayı Görüntüle

@@ -1,13 +1,14 @@
1 1
 package com.community.huiju.service;
2 2
 
3 3
 import com.community.commom.mode.ResponseBean;
4
+import com.community.commom.session.UserElement;
5
+import com.community.huiju.model.*;
4 6
 
5 7
 /**
6 8
  * 海康 业务
7 9
  * @author weiximei
8 10
  */
9 11
 public interface IHKService {
10
-
11 12
     /**
12 13
      * 推送海康人员
13 14
      * @param appUserId
@@ -16,17 +17,23 @@ public interface IHKService {
16 17
     ResponseBean pushPerson(String appUserId, Integer userVerifyId);
17 18
 
18 19
     /**
19
-     * 下发门禁权限
20
+     * 添加门禁权限 和 下发门禁权限
21
+     * @return
22
+     */
23
+    ResponseBean addAuthoritiesAnddownloadAuthorityByPersonIds(TaUserVerify userVerify, TaUserHk taUserHk, TpEquipmentTree tpEquipmentTree);
24
+
25
+
26
+    /**
27
+     * 下发门禁权限(异动方式)
20 28
      * @return
21 29
      */
22 30
     ResponseBean downloadAuthorityByDeviceUuids();
23 31
 
24 32
     /**
25
-     * 异步反控开门 (远程开门)
26
-     *
27
-     * @param userVerifyId 审核ID
33
+     * 下发 可视对讲 权限
28 34
      * @return
29 35
      */
30
-    ResponseBean syncControl(Integer userVerifyId);
36
+    ResponseBean visualIntercomPermissions(TpUnitHkSetting unitHkSetting, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TaUserVerify userVerify, TaUser user);
37
+
31 38
 
32 39
 }

+ 14
- 0
CODE/foreign-service/src/main/java/com/community/huiju/service/ITaUserService.java Dosyayı Görüntüle

@@ -2,11 +2,13 @@ package com.community.huiju.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4 4
 import com.community.commom.utils.AccountValidatorUtil;
5
+import com.community.commom.utils.IdcardValidator;
5 6
 import com.community.huiju.common.base.ResponseBean;
6 7
 import com.community.huiju.enums.ResponseErrorsMessages;
7 8
 import com.community.huiju.exception.WisdomException;
8 9
 import com.community.huiju.model.TaUser;
9 10
 import lombok.extern.slf4j.Slf4j;
11
+import org.apache.commons.lang.StringUtils;
10 12
 import org.slf4j.Logger;
11 13
 import org.slf4j.LoggerFactory;
12 14
 
@@ -33,6 +35,18 @@ public interface ITaUserService extends IService<TaUser> {
33 35
         }
34 36
     }
35 37
 
38
+    /**
39
+     * 校验身份证
40
+     * @param idCard
41
+     */
42
+    default void checkIdCart(String idCard) {
43
+        if (StringUtils.isBlank(idCard)) {
44
+            throw new WisdomException(ResponseErrorsMessages.NOT_ID_CARD.getCode(), ResponseErrorsMessages.NOT_ID_CARD.getMsg());
45
+        }
46
+        if (!IdcardValidator.isValidatedAllIdcard(idCard)) {
47
+            throw  new WisdomException(ResponseErrorsMessages.ERROR_ID_CARD.getCode(), ResponseErrorsMessages.ERROR_ID_CARD.getMsg());
48
+        }
49
+    }
36 50
 
37 51
     /**
38 52
      * 添加用户

+ 16
- 0
CODE/foreign-service/src/main/java/com/community/huiju/service/ITpMessageService.java Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+package com.community.huiju.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.community.huiju.model.TpMessage;
5
+
6
+/**
7
+ * <p>
8
+ * 物业端消息表 服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-06-24
13
+ */
14
+public interface ITpMessageService extends IService<TpMessage> {
15
+
16
+}

+ 16
- 0
CODE/foreign-service/src/main/java/com/community/huiju/service/ITpUnitHkSettingService.java Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+package com.community.huiju.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.community.huiju.model.TpUnitHkSetting;
5
+
6
+/**
7
+ * <p>
8
+ *  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-06-18
13
+ */
14
+public interface ITpUnitHkSettingService extends IService<TpUnitHkSetting> {
15
+
16
+}

+ 83
- 27
CODE/foreign-service/src/main/java/com/community/huiju/service/impl/FaceServicelimpl.java Dosyayı Görüntüle

@@ -72,6 +72,9 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
72 72
     @Autowired
73 73
     private TaUserHkMapper taUserHkMapper;
74 74
 
75
+    @Autowired
76
+    private TpUnitHkSettingMapper tpUnitHkSettingMapper;
77
+
75 78
     @Override
76 79
     @Transactional(rollbackFor = Exception.class)
77 80
     public ResponseBean addFace(Integer userId, Integer userVerifyId, MultipartFile uploadFile) {
@@ -83,8 +86,6 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
83 86
             return responseBean;
84 87
         }
85 88
 
86
-        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
87
-
88 89
         // 当前人脸图片url
89 90
         String faceImg = img(uploadFile);
90 91
 
@@ -105,7 +106,7 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
105 106
         taFace.setUpdateDate(new Date());
106 107
 
107 108
         /*验证身份*/
108
-        responseBean = addVerify(userId, userVerifyId, uploadFile, faceImg, taFace, tpEquipmentTree);
109
+        responseBean = addVerify(userId, userVerifyId, uploadFile, faceImg, taFace);
109 110
         return responseBean;
110 111
     }
111 112
 
@@ -128,7 +129,6 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
128 129
             return responseBean;
129 130
         }
130 131
 
131
-        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
132 132
         // 人脸图片地址url
133 133
         String faceImg = img(uploadFile);
134 134
 
@@ -139,7 +139,13 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
139 139
         ihkService.pushPerson(userId + "", userVerifyId);
140 140
 
141 141
         // 海康数据
142
-        TaUserHk taUserHk = taUserHkMapper.selectByUserIdAndCommunityId(userVerify.getUserId(), userVerify.getCommunityId());
142
+        TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerify.getUserVerifyId(), userVerify.getCommunityId());
143
+
144
+        // 海康权限信息
145
+        TpUnitHkSetting tpUnitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
146
+
147
+        // 设备树
148
+        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
143 149
 
144 150
         //当前修改的id否存在
145 151
         TaFace face = taFaceMapper.getByUserVerifyId(userVerifyId);
@@ -152,7 +158,7 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
152 158
         face.setFaceImg(faceImg);
153 159
         face.setUpdateUser(userId);
154 160
         face.setUpdateDate(new Date());
155
-        ResponseBean resps = checKout(faceImg, face, false, uploadFile, userId, userVerify.getCommunityId(), userVerify.getRoomNoId(), userVerify.getUnitId(), tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid(), taUserHk);
161
+        ResponseBean resps = checKout(faceImg, face, false, uploadFile, tpUnitHkSetting, userVerify, tpEquipmentTree, taUserHk);
156 162
         if (resps.getCode().equals("0")) {
157 163
             resps.addSuccess(face);
158 164
         } else {
@@ -167,20 +173,34 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
167 173
      * @param taFace
168 174
      * @param isA
169 175
      * @param uploadFile
170
-     * @param userId
171
-     * @param communityId
172
-     * @param roomNoId
173
-     * @param unitId
174
-     * @param appkey
175
-     * @param secret
176
-     * @param openapi_ip_port_http 海康服务器地址
176
+     * @param unitHkSetting
177
+     * @param userVerify
178
+     * @param tpEquipmentTree
179
+     * @param taUserHk
177 180
      * @return
178 181
      */
179
-    public ResponseBean checKout(String faceImg, TaFace taFace, boolean isA, MultipartFile uploadFile, Integer userId, Integer communityId, Integer roomNoId, Integer unitId, String  appkey, String secret, String openapi_ip_port_http,String opUserUuid, TaUserHk taUserHk) {
182
+    public ResponseBean checKout(String faceImg, TaFace taFace, boolean isA, MultipartFile uploadFile, TpUnitHkSetting unitHkSetting , TaUserVerify userVerify, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk) {
180 183
         ResponseBean responseBean = new ResponseBean();
181
-        TaUser user = taUserMapper.selectById(userId);
184
+
185
+        if (null == unitHkSetting) {
186
+            responseBean.addError(ResponseErrorsMessages.NO_HK_AUTH.getCode(), ResponseErrorsMessages.NO_HK_AUTH.getMsg());
187
+            return responseBean;
188
+        }
189
+
190
+        if (null == tpEquipmentTree) {
191
+            responseBean.addError(ResponseErrorsMessages.NO_ET.getCode(), ResponseErrorsMessages.NO_ET.getMsg());
192
+            return responseBean;
193
+        }
194
+
195
+        if (null == userVerify) {
196
+            responseBean.addError(ResponseErrorsMessages.NOT_VERIFY.getCode(), ResponseErrorsMessages.NOT_VERIFY.getMsg());
197
+            return responseBean;
198
+        }
199
+
200
+
201
+        TaUser user = taUserMapper.selectById(userVerify.getUserId());
182 202
         if (taUserHk.getHkUserId() == null) {
183
-            log.error("本地库人员ID:{}  的海康人员ID不存在", userId);
203
+            log.error("本地库人员ID:{}  的海康人员ID不存在", userVerify.getUserId());
184 204
             throw new WisdomException(ResponseErrorsMessages.NOT_PUSH_FACE.getCode(), ResponseErrorsMessages.NOT_PUSH_FACE.getMsg());
185 205
         }
186 206
         AESDecode aesd = new AESDecode();
@@ -192,25 +212,39 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
192 212
             Integer faceNum = (Integer) jsonObject.get("face_num");
193 213
 
194 214
             /*推送海康*/
195
-            String data = HKOpenApi.HKpersonGroupId(uploadFile, taUserHk.getHkUserId(), taUserHk.getHkPersonNo(), user.getUserName(), taUserHk.getHkCardNo(), appkey, secret, openapi_ip_port_http, opUserUuid);
215
+            // 修改人脸操作
216
+            String data = HKOpenApi.HKpersonGroupId(uploadFile, taUserHk.getHkUserId(), taUserHk.getHkPersonNo(), user.getUserName(), taUserHk.getHkCardNo(), tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid());
217
+
218
+            // 等待 1s
219
+            Thread.sleep(1000);
220
+
196 221
             /*boolean isA为true进行添加,为false进行修改*/
197 222
             if (0 == type && 1 == faceNum) {
198 223
                 if (null == data) {
199
-                    log.error("未得到,海康数据反馈!");
200
-                    throw new WisdomException(ResponseErrorsMessages.NOT_PUSH_FACE.getCode(), ResponseErrorsMessages.NOT_PUSH_FACE.getMsg());
224
+                    log.error("海康人脸推送失败!");
225
+                    throw new RuntimeException("人脸推送失败!");
201 226
                 }
227
+
228
+                // 下发卡权限
229
+                // 下发可是对讲卡权限
230
+                ihkService.visualIntercomPermissions(unitHkSetting, tpEquipmentTree, taUserHk, userVerify, user);
231
+
202 232
                 if (isA) {
203 233
                     taFaceMapper.insert(taFace);
204 234
                 } else {
205 235
                     taFaceMapper.updateById(taFace);
206 236
                 }
237
+
238
+                // 等待 1s
239
+                Thread.sleep(3000);
240
+
241
+                responseBean.addSuccess("操作成功");
242
+
207 243
                 responseBean.addSuccess(taFace);
208 244
 
209
-                // 设备树
210
-                TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(communityId);
211 245
                 // 所有设备
212 246
                 //List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(communityId, unitId, 4);
213
-                List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitIdAndFace(communityId, unitId, 4);
247
+                List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitIdAndFace(tpEquipmentTree.getCommunityId(), userVerify.getUnitId(), 4);
214 248
                 if (CollectionUtils.isNotEmpty(tpEquipments)) {
215 249
                     List<Map<String, Object>> equipmentUUID = getEquipmentUUID(tpEquipments);
216 250
                     StringBuilder doorUuids = new StringBuilder();
@@ -229,10 +263,13 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
229 263
                     map.put("type", 1);
230 264
                     map.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
231 265
                     HKOpenApi.downloadFaceAndFingerInfos(map);
266
+
267
+                    // 等待 2s
268
+                    Thread.sleep(2000);
232 269
                 }
233 270
 
234 271
                 // 单元门口机
235
-                List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(communityId, unitId, 3);
272
+                List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(tpEquipmentTree.getCommunityId(), userVerify.getUnitId(), 3);
236 273
                 if (CollectionUtils.isNotEmpty(visualEquipments)) {
237 274
                     List<String> visualList = visualEquipments.stream()
238 275
                             .map(e-> tpConfigurationMapper.selectById(e.getUuidId()).getConfigurationValue())
@@ -315,7 +352,7 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
315 352
     /**
316 353
      * 各种身份校验
317 354
      */
318
-    public ResponseBean addVerify(Integer userid, Integer userVerifyId, MultipartFile uploadFile, String faceImg, TaFace taFace, TpEquipmentTree tpEquipmentTree) {
355
+    public ResponseBean addVerify(Integer userid, Integer userVerifyId, MultipartFile uploadFile, String faceImg, TaFace taFace) {
319 356
         ResponseBean response = new ResponseBean();
320 357
 
321 358
         TaUserVerify userVerify = taUserVerifyMapper.selectById(userVerifyId);
@@ -332,14 +369,21 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
332 369
         }
333 370
 
334 371
         // 海康数据
335
-        TaUserHk taUserHk = taUserHkMapper.selectByUserIdAndCommunityId(userVerify.getUserId(), userVerify.getCommunityId());
372
+        TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerify.getUserVerifyId(), userVerify.getCommunityId());
373
+
374
+        // 海康权限信息
375
+        TpUnitHkSetting tpUnitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
376
+
377
+        // 设备树
378
+        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
379
+
336 380
 
337 381
         //查询当前用户是否有人脸记录
338 382
         TaFace face = taFaceMapper.getByUserVerifyId(userVerifyId);
339 383
         if (null == face) {
340 384
             boolean isA = true;
341 385
             if (Constant.EFFECTIVE_STATUS.equals(taUser.getStatus())) {
342
-                ResponseBean responseBean = checKout(faceImg, taFace, isA, uploadFile, userid, userVerify.getCommunityId(), userVerify.getRoomNoId(), userVerify.getUnitId(),tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid(), taUserHk);
386
+                ResponseBean responseBean = checKout(faceImg, taFace, isA, uploadFile, tpUnitHkSetting, userVerify,tpEquipmentTree, taUserHk);
343 387
                 if (responseBean.getCode().equals("0")) {
344 388
                     responseBean.addSuccess("人脸录入成功");
345 389
                 } else {
@@ -352,6 +396,18 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
352 396
         return response;
353 397
     }
354 398
 
399
+    /**
400
+     * 海康权限组
401
+     * @return
402
+     */
403
+    private TpUnitHkSetting getUnitHkSetting(Integer communityId, Integer unitId) {
404
+        TpUnitHkSetting tpUnitHkSetting = tpUnitHkSettingMapper.selectByCommunityIdAndUnitId(communityId, unitId);
405
+        if (null == tpUnitHkSetting) {
406
+            throw new WisdomException("权限组未配置");
407
+        }
408
+        return tpUnitHkSetting;
409
+    }
410
+
355 411
     @Override
356 412
     public ResponseBean deleteFace(Integer userId, Integer userVerifyId) {
357 413
         ResponseBean responseBean= new ResponseBean();
@@ -372,7 +428,7 @@ public class FaceServicelimpl  extends ServiceImpl<TaFaceMapper, TaFace> impleme
372 428
         }
373 429
 
374 430
         // 海康数据
375
-        TaUserHk taUserHk = taUserHkMapper.selectByUserIdAndCommunityId(taUserVerify.getUserId(), taUserVerify.getCommunityId());
431
+        TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(taUserVerify.getUserVerifyId(), taUserVerify.getCommunityId());
376 432
 
377 433
         // 设备树
378 434
         TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(taUserVerify.getCommunityId());

+ 117
- 99
CODE/foreign-service/src/main/java/com/community/huiju/service/impl/HKServiceImpl.java Dosyayı Görüntüle

@@ -7,6 +7,7 @@ import com.community.commom.mode.ResponseBean;
7 7
 import com.community.commom.uuid.IdGen;
8 8
 import com.community.commom.hk.HKOpenApi;
9 9
 import com.community.huiju.dao.*;
10
+import com.community.huiju.enums.ResponseErrorsMessages;
10 11
 import com.community.huiju.exception.WisdomException;
11 12
 import com.community.huiju.model.*;
12 13
 import com.community.huiju.service.IHKService;
@@ -33,6 +34,9 @@ import java.util.stream.Collectors;
33 34
 @Slf4j
34 35
 public class HKServiceImpl implements IHKService {
35 36
 
37
+    @Autowired
38
+    private TpUnitHkSettingMapper tpUnitHkSettingMapper;
39
+
36 40
     @Autowired
37 41
     private TaUserMapper taUserMapper;
38 42
 
@@ -50,12 +54,10 @@ public class HKServiceImpl implements IHKService {
50 54
     @Autowired
51 55
     private TaUserVerifyMapper taUserVerifyMapper;
52 56
 
57
+
53 58
     @Autowired
54 59
     private TaUserHkMapper taUserHkMapper;
55 60
 
56
-//    @Autowired
57
-//    private TaRemotelyDoorMapper taRemotelyDoorMapper;
58
-
59 61
     /**
60 62
      * 获取设备UUID
61 63
      * @param equipmentList
@@ -81,14 +83,19 @@ public class HKServiceImpl implements IHKService {
81 83
         if (null == userVerify) {
82 84
             throw new WisdomException("审核数据不存在!");
83 85
         }
84
-        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
85 86
 
86 87
         // 海康数据
87
-        TaUserHk taUserHk = taUserHkMapper.selectByUserIdAndCommunityId(userVerify.getUserId(), userVerify.getCommunityId());
88
+        TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerify.getUserVerifyId(), userVerify.getCommunityId());
88 89
         if (null == taUserHk) {
89 90
             taUserHk = new TaUserHk();
90 91
         }
91 92
 
93
+        // 海康权限信息
94
+        TpUnitHkSetting unitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
95
+
96
+        // 设备树
97
+        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
98
+
92 99
         // 这两个值一般都是同时存在的
93 100
         // 当这两个值不存在的时候,就添加海康人员
94 101
         if (null == taUserHk.getHkUserId() && null == taUserHk.getHkPersonNo()) {
@@ -99,7 +106,7 @@ public class HKServiceImpl implements IHKService {
99 106
              * 2.根据部门编号推送 海康
100 107
              */
101 108
             taUserMapper.updateById(user);
102
-            addUserAndOpenCard(responseBean, user, tpEquipmentTree, taUserHk);
109
+            addUserAndOpenCard(responseBean, user, tpEquipmentTree, taUserHk, unitHkSetting, userVerify);
103 110
         }
104 111
 
105 112
         // 卡片操作
@@ -115,11 +122,21 @@ public class HKServiceImpl implements IHKService {
115 122
         }
116 123
 
117 124
 
125
+        // 判断是否成功
126
+        if ("0".equals(responseBean.getCode())) {
127
+            responseBean.addSuccess("操作成功!");
128
+            return responseBean;
129
+        }
130
+        throw new WisdomException("操作失败!");
131
+    }
118 132
 
119
-        // 推送海康
120 133
 
121
-        // 给用户添加 海康门禁权限
134
+    @Override
135
+    public ResponseBean addAuthoritiesAnddownloadAuthorityByPersonIds(TaUserVerify userVerify, TaUserHk taUserHk, TpEquipmentTree tpEquipmentTree) {
122 136
 
137
+        ResponseBean responseBean = new ResponseBean();
138
+
139
+        // 给用户添加 海康门禁权限
123 140
         List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 4);
124 141
         List<Map<String, Object>> equipmentUUID = getEquipmentUUID(tpEquipments);
125 142
         StringBuilder doorUuids = new StringBuilder();
@@ -132,14 +149,15 @@ public class HKServiceImpl implements IHKService {
132 149
         });
133 150
 
134 151
         if (org.apache.commons.lang3.StringUtils.isNotBlank(doorUuids)) {
135
-
136 152
             Map<String, Object> map = Maps.newHashMap();
137 153
             map.put("personIds",String.valueOf(taUserHk.getHkUserId()));
138 154
             map.put("doorUuids", doorUuids.substring(0, doorUuids.lastIndexOf(",")));
139 155
             map.put("secret", tpEquipmentTree.getSecret());
140 156
             map.put("appkey", tpEquipmentTree.getAppkey());
141 157
             map.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
142
-            HKOpenApi.addAuthoritiesByPersonIds(map);
158
+            map.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
159
+            String addAuthoritiesJSONString = HKOpenApi.addAuthoritiesByPersonIds(map);
160
+            validHKError(addAuthoritiesJSONString);
143 161
 
144 162
             // 下发门禁权限
145 163
             Map<String, Object> downloadAuthorityByPersonIdsMap = Maps.newHashMap();
@@ -150,35 +168,13 @@ public class HKServiceImpl implements IHKService {
150 168
             downloadAuthorityByPersonIdsMap.put("secret", tpEquipmentTree.getSecret());
151 169
             downloadAuthorityByPersonIdsMap.put("appkey", tpEquipmentTree.getAppkey());
152 170
             downloadAuthorityByPersonIdsMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
153
-            HKOpenApi.downloadAuthorityByPersonIds(downloadAuthorityByPersonIdsMap);
154
-
171
+            downloadAuthorityByPersonIdsMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
172
+            String downloadAuthorityJSON = HKOpenApi.downloadAuthorityByPersonIds(downloadAuthorityByPersonIdsMap);
173
+            validHKError(downloadAuthorityJSON);
155 174
         }
156 175
 
157
-        //--------- 可视对讲 ----------
158
-
159
-        Map<String,Object> addOutDoorAuthMap = Maps.newHashMap();
160
-        addOutDoorAuthMap.put("authName", "app用户权限勿动");
161
-        addOutDoorAuthMap.put("personIds", Arrays.asList(taUserHk.getHkUserId()));
162
-        addOutDoorAuthMap.put("secret", tpEquipmentTree.getSecret());
163
-        addOutDoorAuthMap.put("appkey", tpEquipmentTree.getAppkey());
164
-        addOutDoorAuthMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
165
-        addOutDoorAuthMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
166
-
167
-                // 单元门口机
168
-        List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 3);
169
-        List<String> visualList = visualEquipments.stream()
170
-                .map(e-> tpConfigurationMapper.selectById(e.getUuidId()).getConfigurationValue())
171
-                .collect(Collectors.toList());
172
-//        List<String> visualList = new ArrayList<>();
173
-//        visualList.add("10010100000");
174
-        addOutDoorAuthMap.put("longNums", visualList);
175
-        // 可视对讲下发 权限
176
-        visualIntercomPermissions(addOutDoorAuthMap);
177
-        if ("0".equals(responseBean.getCode())) {
178
-            responseBean.addSuccess("操作成功!");
179
-            return responseBean;
180
-        }
181
-        throw new WisdomException("操作失败!");
176
+        responseBean.addSuccess("操作成功!");
177
+        return responseBean;
182 178
     }
183 179
 
184 180
     @Override
@@ -198,15 +194,15 @@ public class HKServiceImpl implements IHKService {
198 194
      * @param response
199 195
      * @param user
200 196
      */
201
-    private void addUserAndOpenCard(ResponseBean response, TaUser user, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk) {
202
-        Map<String, Object> parDept = Maps.newHashMap();
203
-        parDept.put("pageNo", 1);
204
-        parDept.put("pageSize", 100);
205
-        parDept.put("deptName", Constant.DEPT_RESIDENTS);
206
-        parDept.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
207
-        parDept.put("appkey", tpEquipmentTree.getAppkey());
208
-        parDept.put("secret", tpEquipmentTree.getSecret());
209
-        parDept.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
197
+    private void addUserAndOpenCard(ResponseBean response, TaUser user, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TpUnitHkSetting unitHkSetting, TaUserVerify userVerify) {
198
+//        Map<String, Object> parDept = Maps.newHashMap();
199
+//        parDept.put("pageNo", 1);
200
+//        parDept.put("pageSize", 100);
201
+//        parDept.put("deptName", Constant.DEPT_RESIDENTS);
202
+//        parDept.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
203
+//        parDept.put("appkey", tpEquipmentTree.getAppkey());
204
+//        parDept.put("secret", tpEquipmentTree.getSecret());
205
+//        parDept.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
210 206
         // 部门UUID
211 207
         //String deptUuid = getDeptUUID(parDept);
212 208
 
@@ -215,14 +211,14 @@ public class HKServiceImpl implements IHKService {
215 211
         parUser.put("personNo", taUserHk.getHkPersonNo());
216 212
         parUser.put("personName", user.getUserName());
217 213
         // parUser.put("phoneNo", user.getLoginName());
218
-        //parUser.put("deptUuid", deptUuid);
219 214
         parUser.put("remark", user.getLoginName());
215
+        parUser.put("deptUuid", unitHkSetting.getDepartmentId());
220 216
         parUser.put("secret", tpEquipmentTree.getSecret());
221 217
         parUser.put("appkey", tpEquipmentTree.getAppkey());
222
-        parUser.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
223 218
         parUser.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
219
+        parUser.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
224 220
         Map<String, Object> resultMap = JSONObject.parseObject(HKOpenApi.addUser(parUser), HashMap.class);
225
-        int errorCode = (int) resultMap.get("errorCode");
221
+        Integer errorCode = (Integer) resultMap.get("errorCode");
226 222
         if (errorCode == 0) {
227 223
             Map<String, Object> resultDataMap = (Map<String, Object>) resultMap.get("data");
228 224
 
@@ -230,19 +226,17 @@ public class HKServiceImpl implements IHKService {
230 226
             Integer personId = (Integer) resultDataMap.get("personId");
231 227
 
232 228
             taUserHk.setHkUserId(personId);
233
-            // 存储海康人员ID
229
+
234 230
             int row = 0;
235 231
             if (null == taUserHk.getId()) {
236
-                taUserHk.setTaUserId(user.getUserId());
232
+                // 存储的是审核id
233
+                taUserHk.setTaUserId(userVerify.getUserVerifyId());
237 234
                 taUserHk.setCommunityId(tpEquipmentTree.getCommunityId());
235
+                taUserHk.setCreateDate(new Date());
236
+                taUserHk.setUpdateDate(new Date());
238 237
                 // 存储海康人员ID
239 238
                 row = taUserHkMapper.insert(taUserHk);
240
-                taUserHk.setCreateUser(taUserHk.getId());
241
-                taUserHk.setCreateDate(new Date());
242
-                taUserHkMapper.updateById(taUserHk);
243 239
             } else {
244
-                taUserHk.setUpdateUser(taUserHk.getId());
245
-                taUserHk.setUpdateDate(new Date());
246 240
                 row = taUserHkMapper.updateById(taUserHk);
247 241
             }
248 242
 
@@ -332,8 +326,8 @@ public class HKServiceImpl implements IHKService {
332 326
         parOpenCard.put("endTime", time);
333 327
         parOpenCard.put("secret", tpEquipmentTree.getSecret());
334 328
         parOpenCard.put("appkey", tpEquipmentTree.getAppkey());
335
-        parOpenCard.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
336 329
         parOpenCard.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
330
+        parOpenCard.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
337 331
         JSONObject openCardJSON = JSONObject.parseObject(HKOpenApi.openCard(parOpenCard));
338 332
         int code = (int) openCardJSON.get("errorCode");
339 333
         if (code == 0) {
@@ -348,6 +342,18 @@ public class HKServiceImpl implements IHKService {
348 342
         return response;
349 343
     }
350 344
 
345
+    /**
346
+     * 校验错误
347
+     * @param json
348
+     */
349
+    private void validHKError(String json) {
350
+        Map<String, Object> resultMap = JSONObject.parseObject(json, HashMap.class);
351
+        Integer errorCode = (Integer) resultMap.get("errorCode");
352
+        if (errorCode.intValue() != 0) {
353
+            throw new RuntimeException(String.valueOf(resultMap.get("errorMessage")));
354
+        }
355
+    }
356
+
351 357
     /**
352 358
      * 获取部门 uuid
353 359
      * <p>
@@ -365,19 +371,31 @@ public class HKServiceImpl implements IHKService {
365 371
         return deptUuid;
366 372
     }
367 373
 
374
+    /**
375
+     * 海康权限组
376
+     * @return
377
+     */
378
+    private TpUnitHkSetting getUnitHkSetting(Integer communityId, Integer unitId) {
379
+        TpUnitHkSetting tpUnitHkSetting = tpUnitHkSettingMapper.selectByCommunityIdAndUnitId(communityId, unitId);
380
+        if (null == tpUnitHkSetting) {
381
+            throw new WisdomException("权限组未配置");
382
+        }
383
+        return tpUnitHkSetting;
384
+    }
385
+
368 386
     /**
369 387
      * 可视对讲下发 权限
370 388
      *
371 389
      * @param map
372 390
      */
373
-    private void visualIntercomPermissions(Map<String,Object> map) {
391
+    private String visualIntercomPermissions(Map<String,Object> map) {
374 392
         // TODO 目前下发的 authName权限组是我们自定义的, 后面肯定是按照小区的 期楼栋号来设置的
375 393
         // TODO longNums设备编号, 可视对讲的机器编号, 应该根据 期楼栋号 下面的机器编号来设置的
376 394
 
377 395
         //--------- 可视对讲 ----------
378 396
 
379 397
         // 可视对讲 根据人员 ID 集添加权限并下发
380
-        HKOpenApi.addOutDoorAuth(map);
398
+        return HKOpenApi.addOutDoorAuth(map);
381 399
 
382 400
     }
383 401
 
@@ -392,61 +410,61 @@ public class HKServiceImpl implements IHKService {
392 410
         downloadFingerMap.put("opType", 1);
393 411
         downloadFingerMap.put("personIds", map.get("personIds"));
394 412
         downloadFingerMap.put("longNums", map.get("longNums"));
395
-        downloadFingerMap.put("opUserUuid", map.get("opUserUuid"));
396 413
         downloadFingerMap.put("openapi_ip_port_http", map.get("openapi_ip_port_http"));
414
+        downloadFingerMap.put("opUserUuid", map.get("opUserUuid"));
397 415
         // 可视对讲 指定人员指纹权限下载
398 416
         HKOpenApi.downloadFinger(downloadFingerMap);
399 417
     }
400 418
 
401 419
     @Override
402
-    public ResponseBean syncControl(Integer userVerifyId) {
403
-        // TODO 暂时只支持开单元门
420
+    public ResponseBean visualIntercomPermissions(TpUnitHkSetting unitHkSetting, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TaUserVerify userVerify, TaUser user) {
404 421
 
405 422
         ResponseBean responseBean = new ResponseBean();
406 423
 
407
-        // 查询当前的房产
408
-        TaUserVerify userVerify = taUserVerifyMapper.selectById(userVerifyId);
409
-        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
410
-        // 单元门口机
411
-        List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 3);
424
+        if (null == unitHkSetting) {
425
+            responseBean.addError("海康权限信息 未配置");
426
+            return responseBean;
427
+        }
412 428
 
413
-        if (CollectionUtils.isEmpty(tpEquipments)) {
414
-            responseBean.addError("无设备信息!");
429
+        if (null == tpEquipmentTree) {
430
+            responseBean.addError("设备树 未配置");
415 431
             return responseBean;
416 432
         }
417 433
 
418
-        String str = "";
419
-        for (TpEquipment e : tpEquipments) {
420
-            TpConfiguration tpConfiguration = tpConfigurationMapper.selectById(e.getUuidId());
421
-            str += tpConfiguration.getConfigurationValue();
422
-            str += ",";
434
+        if (null == userVerify) {
435
+            responseBean.addError("审核数据 不能为null");
436
+            return responseBean;
423 437
         }
424 438
 
425
-        // 查询设备编号
426
-
427
-        Map<String,Object> parMap = com.beust.jcommander.internal.Maps.newHashMap();
428
-        parMap.put("longNums", str);
429
-        parMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
430
-        parMap.put("secret", tpEquipmentTree.getSecret());
431
-        parMap.put("appkey", tpEquipmentTree.getAppkey());
432
-        parMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
433
-        String data = HKOpenApi.syncControl(parMap);
434
-        JSONObject jsonObject = JSONObject.parseObject(data);
435
-        int errorCode = jsonObject.getInteger("errorCode");
436
-        if (errorCode == 0) {
437
-//
438
-//            // 记录 远程开门次数
439
-//            TaRemotelyDoor taRemotelyDoor = new TaRemotelyDoor();
440
-//            taRemotelyDoor.setCommunityId(userVerify.getCommunityId());
441
-//            taRemotelyDoor.setTaUserVerifyId(userVerify.getUserId());
442
-//            taRemotelyDoor.setUnitId(userVerify.getUnitId());
443
-//            taRemotelyDoor.setCreateDate(new Date());
444
-//            taRemotelyDoorMapper.insertSelective(taRemotelyDoor);
445
-//
446
-//            responseBean.addSuccess("操作成功!");
447
-//            return responseBean;
439
+        //--------- 可视对讲 ----------
440
+
441
+        Map<String,Object> addOutDoorAuthMap = Maps.newHashMap();
442
+        // app用户权限勿动
443
+        addOutDoorAuthMap.put("authName", user.getUserName() + userVerify.getUserVerifyId());
444
+        addOutDoorAuthMap.put("personIds", Arrays.asList(taUserHk.getHkUserId()));
445
+        addOutDoorAuthMap.put("secret", tpEquipmentTree.getSecret());
446
+        addOutDoorAuthMap.put("appkey", tpEquipmentTree.getAppkey());
447
+        addOutDoorAuthMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
448
+        addOutDoorAuthMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
449
+
450
+        // 单元门口机
451
+        List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 3);
452
+        List<String> visualList = visualEquipments.stream()
453
+                .map(e-> tpConfigurationMapper.selectById(e.getUuidId()).getConfigurationValue())
454
+                .collect(Collectors.toList());
455
+//        List<String> visualList = new ArrayList<>();
456
+//        visualList.add("10010100000");
457
+        addOutDoorAuthMap.put("longNums", visualList);
458
+        // 可视对讲下发 权限
459
+        String permissionsJSON = visualIntercomPermissions(addOutDoorAuthMap);
460
+        JSONObject addCardsJsonObject = JSONObject.parseObject(permissionsJSON);
461
+        Integer addCardsResultCode = addCardsJsonObject.getInteger("errorCode");
462
+        if (0 == addCardsResultCode.intValue()) {
463
+            responseBean.addSuccess("操作成功!");
464
+            return responseBean;
448 465
         }
449
-        responseBean.addError("操作失败!");
450
-        return responseBean;
466
+
467
+        responseBean.addError("操作失败");
468
+        throw new RuntimeException(addCardsJsonObject.getString("errorMessage"));
451 469
     }
452 470
 }

+ 7
- 3
CODE/foreign-service/src/main/java/com/community/huiju/service/impl/TaUserServiceImpl.java Dosyayı Görüntüle

@@ -42,9 +42,8 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
42 42
             responseBean.addError(ResponseErrorsMessages.NOT_USER_NAME.getCode(), ResponseErrorsMessages.NOT_USER_NAME.getMsg());
43 43
             return responseBean;
44 44
         }
45
-        if (StringUtils.isBlank(idCard)) {
46
-            responseBean.addError(ResponseErrorsMessages.NOT_ID_CARD.getCode(), ResponseErrorsMessages.NOT_ID_CARD.getMsg());
47
-            return responseBean;
45
+        if (StringUtils.isNotBlank(idCard)) {
46
+            this.checkIdCart(idCard);
48 47
         }
49 48
         if (StringUtils.isBlank(gender)) {
50 49
             responseBean.addError(ResponseErrorsMessages.NOT_GENDER.getCode(), ResponseErrorsMessages.NOT_GENDER.getMsg());
@@ -64,6 +63,7 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
64 63
         taUser.setCreateDate(new Date());
65 64
         taUser.setStatus("1");
66 65
         taUser.setVerifyStatus("1");
66
+        taUser.setRemark("大苏");
67 67
 
68 68
         boolean saveBool = this.save(taUser);
69 69
         if (saveBool) {
@@ -97,6 +97,10 @@ public class TaUserServiceImpl extends ServiceImpl<TaUserMapper, TaUser> impleme
97 97
             return responseBean;
98 98
         }
99 99
 
100
+        if (StringUtils.isNotBlank(idCard)) {
101
+            this.checkIdCart(idCard);
102
+        }
103
+
100 104
         UpdateWrapper<TaUser> userUpdateWrapper = new UpdateWrapper<>();
101 105
         userUpdateWrapper.eq("id", userId);
102 106
         userUpdateWrapper.set(StringUtils.isNotBlank(userName), "user_name", userName);

+ 28
- 0
CODE/foreign-service/src/main/java/com/community/huiju/service/impl/TaUserVerifyServiceImpl.java Dosyayı Görüntüle

@@ -3,6 +3,7 @@ package com.community.huiju.service.impl;
3 3
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 4
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5 5
 import com.community.huiju.common.base.ResponseBean;
6
+import com.community.huiju.common.message.MessagePush;
6 7
 import com.community.huiju.dao.*;
7 8
 import com.community.huiju.enums.ResponseErrorsMessages;
8 9
 import com.community.huiju.exception.WisdomException;
@@ -55,6 +56,9 @@ public class TaUserVerifyServiceImpl extends ServiceImpl<TaUserVerifyMapper, TaU
55 56
     @Autowired
56 57
     private TpBuildingOwnerInfoMapper tpBuildingOwnerInfoMapper;
57 58
 
59
+    @Autowired
60
+    private TpMessageMapper tpMessageMapper;
61
+
58 62
     @Override
59 63
     @Transactional(rollbackFor = Exception.class)
60 64
     public ResponseBean addUserVerify(Integer userId, Integer roleId, Integer communityId, Integer phaseId, Integer buildingId, Integer unitId, Integer levelId, Integer roomNoId) {
@@ -176,6 +180,30 @@ public class TaUserVerifyServiceImpl extends ServiceImpl<TaUserVerifyMapper, TaU
176 180
 
177 181
         tpBuildingOwnerInfoMapper.insert(tpBuildingOwnerInfo);
178 182
 
183
+        // 推送默认消息
184
+
185
+        //审核通过后推送消息(临时数据)
186
+        String[] messageArr= new MessagePush().messagePushAll();
187
+        for (String count:messageArr) {
188
+            TpMessage message = new TpMessage();
189
+            message.setCommunityId(taUserVerify.getCommunityId());
190
+            message.setMessageType("9");
191
+            message.setAdviceType("1");
192
+            message.setModelType("1");
193
+            message.setUuid(taUserVerify.getUserVerifyId());
194
+            message.setUuidType("1");
195
+            message.setSource("1");
196
+            message.setMessageContent(count);
197
+            message.setStatus("1");
198
+            message.setResult("");
199
+            message.setMeaasgeTypeId("");
200
+            message.setReadStatus("0");
201
+            message.setCreateUser(taUserVerify.getUserId());
202
+            message.setCreateDate(new Date());
203
+            tpMessageMapper.insert(message);
204
+        }
205
+
206
+
179 207
         responseBean.addSuccess(taUserVerify);
180 208
         return responseBean;
181 209
     }

+ 20
- 0
CODE/foreign-service/src/main/java/com/community/huiju/service/impl/TpMessageServiceImpl.java Dosyayı Görüntüle

@@ -0,0 +1,20 @@
1
+package com.community.huiju.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.community.huiju.dao.TpMessageMapper;
5
+import com.community.huiju.model.TpMessage;
6
+import com.community.huiju.service.ITpMessageService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 物业端消息表 服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-06-24
16
+ */
17
+@Service
18
+public class TpMessageServiceImpl extends ServiceImpl<TpMessageMapper, TpMessage> implements ITpMessageService {
19
+
20
+}

+ 5
- 0
CODE/foreign-service/src/main/resources/mapper/TpMessageMapper.xml Dosyayı Görüntüle

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.community.huiju.dao.TpMessageMapper">
4
+
5
+</mapper>

+ 6
- 6
CODE/smart-community/app-api/src/main/java/com/community/huiju/AppApplication.java Dosyayı Görüntüle

@@ -44,11 +44,11 @@ public class AppApplication {
44 44
 	/**
45 45
 	 * 文件上传临时路径
46 46
 	 */
47
-	@Bean
48
-	public MultipartConfigElement multipartConfigElement() {
49
-		MultipartConfigFactory factory = new MultipartConfigFactory();
50
-		factory.setLocation("/tmp/smart-community");
51
-		return factory.createMultipartConfig();
52
-	}
47
+//	@Bean
48
+//	public MultipartConfigElement multipartConfigElement() {
49
+//		MultipartConfigFactory factory = new MultipartConfigFactory();
50
+//		factory.setLocation("/tmp/smart-community");
51
+//		return factory.createMultipartConfig();
52
+//	}
53 53
 
54 54
 }

+ 24
- 4
CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/HkController.java Dosyayı Görüntüle

@@ -6,13 +6,12 @@ import com.community.commom.mode.ResponseBean;
6 6
 import com.community.commom.session.UserElement;
7 7
 import com.community.huiju.model.HkVisitorBill;
8 8
 import com.community.huiju.service.IHKService;
9
-import io.swagger.annotations.Api;
10
-import io.swagger.annotations.ApiImplicitParam;
11
-import io.swagger.annotations.ApiImplicitParams;
12
-import io.swagger.annotations.ApiOperation;
9
+import com.community.huiju.service.ISenCartId;
10
+import io.swagger.annotations.*;
13 11
 import org.springframework.beans.factory.annotation.Autowired;
14 12
 import org.springframework.cloud.context.config.annotation.RefreshScope;
15 13
 import org.springframework.web.bind.annotation.*;
14
+import org.springframework.web.multipart.MultipartFile;
16 15
 
17 16
 import javax.servlet.http.HttpServletRequest;
18 17
 import javax.servlet.http.HttpSession;
@@ -30,6 +29,9 @@ public class HkController extends BaseController {
30 29
 	@Autowired
31 30
 	private IHKService ihkService;
32 31
 
32
+	@Autowired
33
+	private ISenCartId iSenCartId;
34
+
33 35
 	@ApiOperation(value = "发送访客账单", notes = "发送访客账单")
34 36
 	@ApiImplicitParams({ @ApiImplicitParam(paramType = "body", name = "hkVisitorBill", dataType = "String",value = "billNum: 账单号,reservationNum:预约单号,plateNum:出场车牌号,leaveTime:出场时间,billFee:账单金额")})
35 37
 	@RequestMapping(value = "/sendVisitorBill",method = RequestMethod.POST)
@@ -72,5 +74,23 @@ public class HkController extends BaseController {
72 74
 		return responseBean;
73 75
 	}
74 76
 
77
+	@ApiOperation(value = "添加人员并卡卡")
78
+	@RequestMapping(value = "/addUserAndOpenCart", method = RequestMethod.POST)
79
+	public ResponseBean addUser(@RequestParam("communityId") Integer communityId) {
80
+		ResponseBean responseBean = new ResponseBean();
81
+		responseBean = iSenCartId.addUserAndAddCartId(communityId);
82
+		return responseBean;
83
+	}
84
+
85
+	@RequestMapping(value = "/addUserOne", method = RequestMethod.POST)
86
+	@ApiOperation(value = "根据人员为主下发,测试用的")
87
+	public ResponseBean addUserOne(@ApiParam(value = "file" ,required = true) MultipartFile uploadFile,
88
+								   @RequestParam(required = false) Integer communityId) {
89
+
90
+		ResponseBean responseBean = new ResponseBean();
91
+		responseBean = iSenCartId.addUserOne(communityId, uploadFile);
92
+		return responseBean;
93
+
94
+	}
75 95
 
76 96
 }

+ 23
- 1
CODE/smart-community/app-api/src/main/java/com/community/huiju/controller/UserController.java Dosyayı Görüntüle

@@ -63,7 +63,7 @@ public class UserController extends BaseController {
63 63
     @RequestMapping(value = "/user/register",method = RequestMethod.POST)
64 64
     public ResponseBean register(@RequestBody String parameter) {
65 65
         ResponseBean responseBean = new ResponseBean();
66
-        responseBean = iTaUserService.register(parameter);
66
+        responseBean = iTaUserService.register(parameter, true);
67 67
         return responseBean;
68 68
     }
69 69
 
@@ -383,6 +383,28 @@ public class UserController extends BaseController {
383 383
 
384 384
     }
385 385
 
386
+    @ApiOperation(value = "获取所有家属", notes = "获取所有家属")
387
+    @ApiImplicitParams({
388
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "X-Auth-Token", value = "Token")
389
+    })
390
+    @RequestMapping(value = "/user/relation/all", method = RequestMethod.GET)
391
+    public ResponseBean getRelationAll(HttpSession session) {
392
+        ResponseBean responseBean = new ResponseBean();
393
+        UserElement userElement = getUserElement(session);
394
+        responseBean = iTaUserService.getRelationAll(userElement);
395
+        return responseBean;
396
+    }
386 397
 
398
+    @ApiOperation(value = "切换户主", notes = "切换户主")
399
+    @ApiImplicitParams({
400
+            @ApiImplicitParam(paramType = "header", dataType = "String", name = "X-Auth-Token", value = "Token"),
401
+            @ApiImplicitParam(paramType = "path", dataType = "Integer", name = "relationUserVerifyId", value = "被切换的家属房产审核id")
402
+    })
403
+    @RequestMapping(value = "/user/switchoverOwner/{relationUserVerifyId}", method = RequestMethod.PUT)
404
+    public ResponseBean switchoverOwner(HttpSession session, @PathVariable("relationUserVerifyId") Integer relationUserVerifyId) {
405
+        UserElement userElement = getUserElement(session);
406
+        ResponseBean responseBean = iTaUserService.switchoverOwner(userElement, relationUserVerifyId);
407
+        return responseBean;
408
+    }
387 409
 
388 410
 }

+ 8
- 2
CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TaUserHkMapper.java Dosyayı Görüntüle

@@ -6,6 +6,8 @@ import org.apache.ibatis.annotations.Param;
6 6
 import org.apache.ibatis.annotations.ResultMap;
7 7
 import org.apache.ibatis.annotations.Select;
8 8
 
9
+import java.util.List;
10
+
9 11
 @Mapper
10 12
 public interface TaUserHkMapper {
11 13
     int deleteByPrimaryKey(Integer id);
@@ -21,7 +23,11 @@ public interface TaUserHkMapper {
21 23
     int updateByPrimaryKey(TaUserHk record);
22 24
 
23 25
     @ResultMap("BaseResultMap")
24
-    @Select("select * from ta_user_hk where ta_user_id = #{userId} and community_id = #{communityId}")
25
-    TaUserHk selectByUserIdAndCommunityId(@Param("userId") Integer userId, @Param("communityId") Integer communityId);
26
+    @Select("select * from ta_user_hk where ta_user_id = #{userVerifyId} and community_id = #{communityId}")
27
+    TaUserHk selectByUserVerifyIdAndCommunityId(@Param("userVerifyId") Integer userVerifyId, @Param("communityId") Integer communityId);
28
+
29
+    @ResultMap("BaseResultMap")
30
+    @Select("select * from ta_user_hk where community_id = #{communityId}")
31
+    List<TaUserHk> selectByCommunityId(@Param("communityId") Integer communityId);
26 32
 
27 33
 }

+ 34
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TaUserMapper.java Dosyayı Görüntüle

@@ -3,6 +3,8 @@ package com.community.huiju.dao;
3 3
 import com.community.huiju.model.TaUser;
4 4
 import org.apache.ibatis.annotations.Mapper;
5 5
 import org.apache.ibatis.annotations.Param;
6
+import org.apache.ibatis.annotations.ResultMap;
7
+import org.apache.ibatis.annotations.Select;
6 8
 
7 9
 import java.util.List;
8 10
 import java.util.Map;
@@ -78,4 +80,36 @@ public interface TaUserMapper {
78 80
     List<TaUser> getByLoginNameList(@Param("loginName") String loginName);
79 81
 	
80 82
 	TaUser getByOpenId(@Param("openid") String openid);
83
+
84
+    /**
85
+     * 查询已审核通过的,但是没有 海康id 的用户
86
+     * @param communityId
87
+     * @return
88
+     */
89
+    @ResultMap("BaseResultMap")
90
+    @Select("SELECT " +
91
+            "tuv.id as userVerifyId, " +
92
+            "tuv.unit_id as unitId, " +
93
+            " tau.* " +
94
+            "FROM " +
95
+            " ta_user_verify tuv " +
96
+            " LEFT JOIN ta_user tau ON tuv.user_id = tau.id " +
97
+            " LEFT JOIN ta_user_hk tuh on tuv.user_id = tuh.ta_user_id " +
98
+            "WHERE " +
99
+            " tuv.verify_status = 1 " +
100
+            " AND tuv.community_id = #{communityId} " +
101
+            " and tuh.hk_user_id is NULL")
102
+    List<TaUser> selectNotHKuserId(@Param("communityId") Integer communityId);
103
+
104
+    /**
105
+     * 获取所有家属
106
+     * @param communityId
107
+     * @param phaseId
108
+     * @param buildingId
109
+     * @param unitId
110
+     * @param levelId
111
+     * @param roomNoId
112
+     * @return
113
+     */
114
+    List<TaUser> selectHouseRelationUserList(@Param("communityId") Integer communityId, @Param("phaseId") Integer phaseId, @Param("buildingId") Integer buildingId, @Param("unitId") Integer unitId, @Param("levelId") Integer levelId, @Param("roomNoId") Integer roomNoId);
81 115
 }

+ 76
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TaUserVerifyMapper.java Dosyayı Görüntüle

@@ -98,4 +98,80 @@ public interface TaUserVerifyMapper {
98 98
                                            @Param("levelId") Integer levelId,
99 99
                                            @Param("roomNoId") Integer roomNoId);
100 100
 
101
+    @ResultMap("BaseResultMap")
102
+    @Select("select * from ta_user_verify where community_id=#{communityId}" +
103
+            " and verify_status =  1 and id in (1120,1122,1128,1133,1134,1119)")
104
+    List<TaUserVerify> selectByCommunityId(@Param("communityId") Integer communityId);
105
+
106
+
107
+    /**
108
+     * 查询没有推送默认消息的审核数据
109
+     * @param communityId
110
+     * @return
111
+     */
112
+    @ResultMap("BaseResultMap")
113
+    @Select(
114
+            "SELECT *  FROM " +
115
+            "ta_user_verify uv " +
116
+            "WHERE   uv.verify_status = \"1\" " +
117
+             "and " +
118
+               "uv.community_id = #{communityId} " +
119
+             "and " +
120
+              "uv.id NOT IN (" +
121
+                "SELECT " +
122
+                    "tuv.id  " +
123
+                "FROM " +
124
+                "ta_user_verify tuv  LEFT JOIN tp_message tm ON tuv.id = tm.uuid " +
125
+                "WHERE " +
126
+                    "tm.uuid_type = \"1\" " +
127
+                    "AND tuv.verify_status = \"1\" " +
128
+                    "AND tuv.community_id = #{communityId} " +
129
+                    "AND tm.message_type = \"9\" " +
130
+                    "AND tm.advice_type = \"1\" " +
131
+                    "AND tm.model_type = \"1\" " +
132
+                    "AND tm.source = \"1\" " +
133
+                    "AND tm.`status` = \"1\" " +
134
+                "GROUP BY " +
135
+                "tuv.id  " +
136
+            ") "
137
+    )
138
+    List<TaUserVerify> selectNotMessage(@Param("communityId") Integer communityId);
139
+
140
+    /**
141
+     * 查询 这个审核id 是否已经推送过消息
142
+     * @param communityId
143
+     * @param userVerfiyId
144
+     */
145
+    @ResultMap("BaseResultMap")
146
+    @Select("SELECT " +
147
+            "* " +
148
+            "FROM " +
149
+            "ta_user_verify tuv " +
150
+            "LEFT JOIN tp_message tm ON tuv.id = tm.uuid  " +
151
+            "WHERE " +
152
+            "tm.uuid_type = \"1\"  " +
153
+            "AND tuv.verify_status = \"1\"  " +
154
+            "AND tuv.community_id = #{communityId}  " +
155
+            "AND tm.message_type = \"9\"  " +
156
+            "AND tm.advice_type = \"1\"  " +
157
+            "AND tm.model_type = \"1\"  " +
158
+            "AND tm.source = \"1\"  " +
159
+            "AND tm.`status` = \"1\"  " +
160
+            "and tm.uuid = #{userVerfiyId} " +
161
+            "GROUP BY " +
162
+            "tuv.id ")
163
+    TaUserVerify selectChcekNotMessage(@Param("communityId") Integer communityId, @Param("userVerfiyId") Integer userVerfiyId);
164
+
165
+    /**
166
+     * 校验这个审核id, 是不是这个房产下面的
167
+     * @param communityId
168
+     * @param phaseId
169
+     * @param buildingId
170
+     * @param unitId
171
+     * @param levelId
172
+     * @param roomNoId
173
+     * @param userVerifyId
174
+     * @return
175
+     */
176
+    TaUserVerify selectChcekInHouseUserVerify(@Param("communityId") Integer communityId, @Param("phaseId") Integer phaseId, @Param("buildingId") Integer buildingId, @Param("unitId") Integer unitId, @Param("levelId") Integer levelId, @Param("roomNoId") Integer roomNoId, @Param("userVerifyId") Integer userVerifyId);
101 177
 }

+ 32
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/dao/TpUnitHkSettingMapper.java Dosyayı Görüntüle

@@ -0,0 +1,32 @@
1
+package com.community.huiju.dao;
2
+
3
+import com.community.huiju.model.TpUnitHkSetting;
4
+import org.apache.ibatis.annotations.Mapper;
5
+import org.apache.ibatis.annotations.ResultMap;
6
+import org.apache.ibatis.annotations.Select;
7
+
8
+@Mapper
9
+public interface TpUnitHkSettingMapper {
10
+    int deleteByPrimaryKey(Integer id);
11
+
12
+    int insert(TpUnitHkSetting record);
13
+
14
+    int insertSelective(TpUnitHkSetting record);
15
+
16
+    TpUnitHkSetting selectByPrimaryKey(Integer id);
17
+
18
+    int updateByPrimaryKeySelective(TpUnitHkSetting record);
19
+
20
+    int updateByPrimaryKey(TpUnitHkSetting record);
21
+
22
+    /**
23
+     * 根据 小区id 和 单元id
24
+     *
25
+     * @param communityId
26
+     * @param unitId
27
+     * @return
28
+     */
29
+    @ResultMap("BaseResultMap")
30
+    @Select("select * from tp_unit_hk_setting where community_id = #{communityId} and unit_id = #{unitId}")
31
+    TpUnitHkSetting selectByCommunityIdAndUnitId(Integer communityId, Integer unitId);
32
+}

+ 13
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TaUser.java Dosyayı Görüntüle

@@ -82,6 +82,11 @@ public class TaUser {
82 82
      */
83 83
     private String faceImg;
84 84
 
85
+    /**
86
+     * 单元id
87
+     */
88
+    private Integer unitId;
89
+
85 90
     public void setHouseList(List<TpBuildingOwnerInfo> houseList) {
86 91
         this.houseList = houseList;
87 92
     }
@@ -329,4 +334,12 @@ public class TaUser {
329 334
     public void setFaceImg(String faceImg) {
330 335
         this.faceImg = faceImg;
331 336
     }
337
+
338
+    public Integer getUnitId() {
339
+        return unitId;
340
+    }
341
+
342
+    public void setUnitId(Integer unitId) {
343
+        this.unitId = unitId;
344
+    }
332 345
 }

+ 1
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TaUserVerify.java Dosyayı Görüntüle

@@ -264,4 +264,5 @@ public class TaUserVerify {
264 264
     public void setLoginName(String loginName) {
265 265
         this.loginName = loginName;
266 266
     }
267
+
267 268
 }

+ 53
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/model/TpUnitHkSetting.java Dosyayı Görüntüle

@@ -0,0 +1,53 @@
1
+package com.community.huiju.model;
2
+
3
+public class TpUnitHkSetting {
4
+    private Integer id;
5
+
6
+    private Integer communityId;
7
+
8
+    private Integer unitId;
9
+
10
+    private String permissionId;
11
+
12
+    private String departmentId;
13
+
14
+    public Integer getId() {
15
+        return id;
16
+    }
17
+
18
+    public void setId(Integer id) {
19
+        this.id = id;
20
+    }
21
+
22
+    public Integer getCommunityId() {
23
+        return communityId;
24
+    }
25
+
26
+    public void setCommunityId(Integer communityId) {
27
+        this.communityId = communityId;
28
+    }
29
+
30
+    public Integer getUnitId() {
31
+        return unitId;
32
+    }
33
+
34
+    public void setUnitId(Integer unitId) {
35
+        this.unitId = unitId;
36
+    }
37
+
38
+    public String getPermissionId() {
39
+        return permissionId;
40
+    }
41
+
42
+    public void setPermissionId(String permissionId) {
43
+        this.permissionId = permissionId == null ? null : permissionId.trim();
44
+    }
45
+
46
+    public String getDepartmentId() {
47
+        return departmentId;
48
+    }
49
+
50
+    public void setDepartmentId(String departmentId) {
51
+        this.departmentId = departmentId == null ? null : departmentId.trim();
52
+    }
53
+}

+ 27
- 1
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/IHKService.java Dosyayı Görüntüle

@@ -2,6 +2,7 @@ package com.community.huiju.service;
2 2
 
3 3
 import com.community.commom.mode.ResponseBean;
4 4
 import com.community.commom.session.UserElement;
5
+import com.community.huiju.model.*;
5 6
 
6 7
 /**
7 8
  * 海康 业务
@@ -17,7 +18,19 @@ public interface IHKService {
17 18
     ResponseBean pushPerson(String appUserId, Integer userVerifyId);
18 19
 
19 20
     /**
20
-     * 下发门禁权限
21
+     * 添加门禁权限 和 下发门禁权限
22
+     * @return
23
+     */
24
+    ResponseBean addAuthoritiesAnddownloadAuthorityByPersonIds(TaUserVerify userVerify, TaUserHk taUserHk, TpEquipmentTree tpEquipmentTree);
25
+
26
+    /**
27
+     * 下发门禁人脸权限 指定人员人脸/指纹权限下载
28
+     * @return
29
+     */
30
+    ResponseBean downloadFaceAndFingerInfos(TpEquipmentTree tpEquipmentTree, TaUserVerify userVerify, TaUserHk taUserHk);
31
+
32
+    /**
33
+     * 下发门禁权限(异动方式)
21 34
      * @return
22 35
      */
23 36
     ResponseBean downloadAuthorityByDeviceUuids();
@@ -30,4 +43,17 @@ public interface IHKService {
30 43
      */
31 44
     ResponseBean syncControl(UserElement userElement, Integer equipmentId);
32 45
 
46
+    /**
47
+     * 下发 可视对讲 权限
48
+     * @return
49
+     */
50
+    ResponseBean visualIntercomPermissions(TpUnitHkSetting unitHkSetting, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TaUserVerify userVerify, TaUser user);
51
+
52
+    /**
53
+     * 可视对讲时 指定人员人脸权限下载
54
+     * @return
55
+     */
56
+    ResponseBean visualIntercom(TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TaUserVerify userVerify);
57
+
58
+
33 59
 }

+ 26
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/ISenCartId.java Dosyayı Görüntüle

@@ -0,0 +1,26 @@
1
+package com.community.huiju.service;
2
+
3
+import com.community.commom.mode.ResponseBean;
4
+import org.springframework.web.multipart.MultipartFile;
5
+
6
+/**
7
+ * 添加人员,建卡
8
+ *
9
+ * @author weiximei on 2019-06-21
10
+ */
11
+public interface ISenCartId {
12
+
13
+    /**
14
+     * 添加人员,建卡
15
+     * @param communityId
16
+     * @return
17
+     */
18
+    ResponseBean addUserAndAddCartId(Integer communityId);
19
+
20
+    /**
21
+     * 添加人员,用于测试以人员的方式下发
22
+     * @return
23
+     */
24
+    ResponseBean addUserOne(Integer communityId, MultipartFile uploadFile);
25
+
26
+}

+ 16
- 1
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/ITaUserService.java Dosyayı Görüntüle

@@ -57,9 +57,10 @@ public interface ITaUserService {
57 57
      * 注册用户
58 58
      *
59 59
      * @param parameter
60
+     * @param isIdCart true 开启身份证校验
60 61
      * @return
61 62
      */
62
-    ResponseBean register(String parameter);
63
+    ResponseBean register(String parameter, boolean isIdCart);
63 64
 
64 65
     /**
65 66
      * 检验登录房产
@@ -252,4 +253,18 @@ public interface ITaUserService {
252 253
      * @return
253 254
      */
254 255
     ResponseBean propertyHistoryDdetails(Integer id);
256
+    /**
257
+     * 获取所有家属
258
+     * @param userElement
259
+     * @return
260
+     */
261
+    ResponseBean getRelationAll(UserElement userElement);
262
+
263
+    /**
264
+     * 切换户主
265
+     * @param userElement
266
+     * @param relationUserVerifyId 被切换的家属房产审核id
267
+     * @return
268
+     */
269
+    ResponseBean switchoverOwner(UserElement userElement, Integer relationUserVerifyId);
255 270
 }

+ 89
- 77
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/FaceServicelimpl.java Dosyayı Görüntüle

@@ -79,10 +79,12 @@ public class FaceServicelimpl implements FaceServiceI {
79 79
     @Autowired
80 80
     private TaUserHkMapper taUserHkMapper;
81 81
 
82
+    @Autowired
83
+    private TpUnitHkSettingMapper tpUnitHkSettingMapper;
84
+
82 85
     @Override
83 86
     @Transactional(rollbackFor = Exception.class)
84 87
     public ResponseBean addFace(UserElement userElement, MultipartFile uploadFile, Integer otherUserId) {
85
-        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userElement.getCommunityId());
86 88
         ResponseBean responseBean = new ResponseBean();
87 89
         /*审核房产是否通过*/
88 90
         TaUserVerify taUserVerify= infoExist(userElement.getUserVerifyId());
@@ -111,16 +113,10 @@ public class FaceServicelimpl implements FaceServiceI {
111 113
         }
112 114
         Integer activeUser = otherUserId == null ? userElement.getId() : otherUserId;
113 115
 
114
-        /**
115
-         * 删除的时候,将所有的海康设备的关联关系删除了,需要重新下发一次
116
-         */
117
-        // 下发门禁
118
-        ihkService.pushPerson(activeUser + "", userVerifyId);
119
-
120 116
         TaUser user = taUserMapper.selectByPrimaryKey(activeUser);
121 117
         TaFace taFace = new TaFace();
122 118
         taFace.setFaceImg(faceImg);
123
-        taFace.setCommunityId(user.getCommunityId());
119
+        taFace.setCommunityId(userElement.getCommunityId());
124 120
         taFace.setTaUserVerifyId(userVerifyId);
125 121
         taFace.setCreateUser(userElement.getId());
126 122
         taFace.setUpdateUser(activeUser);
@@ -128,7 +124,7 @@ public class FaceServicelimpl implements FaceServiceI {
128 124
         taFace.setUpdateDate(new Date());
129 125
 
130 126
         /*验证身份*/
131
-        responseBean = addVerify(activeUser, userVerifyId, uploadFile, faceImg, taFace, tpEquipmentTree);
127
+        responseBean = addVerify(activeUser, userVerifyId, uploadFile, faceImg, taFace);
132 128
         return responseBean;
133 129
     }
134 130
 
@@ -143,7 +139,7 @@ public class FaceServicelimpl implements FaceServiceI {
143 139
     @Override
144 140
     @Transactional(rollbackFor = Exception.class)
145 141
     public ResponseBean upDateFace(UserElement userElement, MultipartFile uploadFile, Integer otherUserId) {
146
-        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userElement.getCommunityId());
142
+
147 143
         ResponseBean responseBean = new ResponseBean();
148 144
         // 人脸图片地址url
149 145
         String faceImg = img(uploadFile);
@@ -159,14 +155,17 @@ public class FaceServicelimpl implements FaceServiceI {
159 155
         }
160 156
 
161 157
         // 海康数据
162
-        TaUserHk taUserHk = taUserHkMapper.selectByUserIdAndCommunityId(userElement.getId(), userElement.getCommunityId());
158
+        TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerifyId, userElement.getCommunityId());
163 159
 
164
-        /**
165
-         * 删除的时候,将所有的海康设备的关联关系删除了,需要重新下发一次
166
-         */
160
+        // 审核数据
167 161
         TaUserVerify userVerify = taUserVerifyMapper.selectByPrimaryKey(userVerifyId);
168
-        // 下发门禁
169
-        ihkService.pushPerson(activeUser + "", userVerifyId);
162
+        // 海康权限信息
163
+        TpUnitHkSetting tpUnitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
164
+
165
+        // 设备树
166
+        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
167
+
168
+
170 169
 
171 170
         //当前修改的id否存在
172 171
         TaFace face = taFaceMapper.getByUserVerifyId(userVerifyId);
@@ -179,7 +178,7 @@ public class FaceServicelimpl implements FaceServiceI {
179 178
         face.setFaceImg(faceImg);
180 179
         face.setUpdateUser(userElement.getId());
181 180
         face.setUpdateDate(new Date());
182
-        ResponseBean resps = checKout(faceImg, face, false, uploadFile, activeUser, userVerify.getCommunityId(), userVerify.getRoomNoId(), userVerify.getUnitId(), tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid(), taUserHk);
181
+        ResponseBean resps = checKout(faceImg, face, false, uploadFile, taUserHk, tpUnitHkSetting, tpEquipmentTree, userVerify);
183 182
         if (resps.getCode().equals("0")) {
184 183
             resps.addSuccess((Object) faceImg);
185 184
         } else {
@@ -194,21 +193,35 @@ public class FaceServicelimpl implements FaceServiceI {
194 193
      * @param taFace
195 194
      * @param isA
196 195
      * @param uploadFile
197
-     * @param userId
198
-     * @param communityId
199
-     * @param roomNoId
200
-     * @param unitId
201
-     * @param appkey
202
-     * @param secret
203
-     * @param openapi_ip_port_http 海康服务器地址
196
+     * @param taUserHk
197
+     * @param unitHkSetting
198
+     * @param tpEquipmentTree
199
+     * @param userVerify
204 200
      * @return
205 201
      */
206
-    public ResponseBean checKout(String faceImg, TaFace taFace, boolean isA, MultipartFile uploadFile, Integer userId, Integer communityId, Integer roomNoId, Integer unitId, String  appkey, String secret, String openapi_ip_port_http, String opUserUuid, TaUserHk taUserHk) {
202
+    public ResponseBean checKout(String faceImg, TaFace taFace, boolean isA, MultipartFile uploadFile, TaUserHk taUserHk, TpUnitHkSetting unitHkSetting, TpEquipmentTree tpEquipmentTree, TaUserVerify userVerify) {
207 203
         ResponseBean responseBean = new ResponseBean();
208
-        TaUser user = taUserMapper.selectByPrimaryKey(userId);
204
+
205
+        if (null == unitHkSetting) {
206
+            responseBean.addError("海康权限信息 未配置");
207
+            return responseBean;
208
+        }
209
+
210
+        if (null == tpEquipmentTree) {
211
+            responseBean.addError("设备树 未配置");
212
+            return responseBean;
213
+        }
214
+
215
+        if (null == userVerify) {
216
+            responseBean.addError("审核数据 不能为null");
217
+            return responseBean;
218
+        }
219
+
220
+
221
+        TaUser user = taUserMapper.selectByPrimaryKey(userVerify.getUserId());
209 222
         if (taUserHk.getHkUserId() == null) {
210 223
             responseBean.addError("海康人员ID不存在,无法录入");
211
-            log.error("本地库人员ID:{}  的海康人员ID不存在", userId);
224
+            log.error("本地库人员ID:{}  的海康人员ID不存在", userVerify.getUserId());
212 225
             return responseBean;
213 226
         }
214 227
         AESDecode aesd = new AESDecode();
@@ -219,67 +232,46 @@ public class FaceServicelimpl implements FaceServiceI {
219 232
             Integer type = (Integer) jsonObject.get("errno");
220 233
             Integer faceNum = (Integer) jsonObject.get("face_num");
221 234
 
222
-            /*推送海康*/
223
-            String data = HKOpenApi.HKpersonGroupId(uploadFile, taUserHk.getHkUserId(), taUserHk.getHkPersonNo(), user.getUserName(), taUserHk.getHkCardNo(), appkey, secret, openapi_ip_port_http, opUserUuid);
235
+            // 修改人脸操作
236
+            String data = HKOpenApi.HKpersonGroupId(uploadFile, taUserHk.getHkUserId(), taUserHk.getHkPersonNo(), user.getUserName(), taUserHk.getHkCardNo(), tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid());
237
+
238
+            // 等待 1s
239
+            Thread.sleep(1000);
240
+
224 241
             /*boolean isA为true进行添加,为false进行修改*/
225 242
             if (0 == type && 1 == faceNum) {
226 243
                 if (null == data) {
227 244
                     log.error("海康人脸推送失败!");
228 245
                     throw new RuntimeException("人脸推送失败!");
229 246
                 }
247
+
230 248
                 if (isA) {
249
+                    /**
250
+                     * 添加人脸的时候下发可视对讲卡权限,修改人脸的时候不下发卡权限
251
+                     */
252
+                    // 下发可是对讲卡权限
253
+                    ihkService.visualIntercomPermissions(unitHkSetting, tpEquipmentTree, taUserHk, userVerify, user);
254
+
255
+                    // 下发门禁权限
256
+                    ihkService.addAuthoritiesAnddownloadAuthorityByPersonIds(userVerify, taUserHk, tpEquipmentTree);
257
+
231 258
                     taFaceMapper.insertSelective(taFace);
232 259
                 } else {
233 260
                     taFaceMapper.updateByPrimaryKeySelective(taFace);
234 261
                 }
235
-                responseBean.addSuccess("操作成功");
236
-
237
-                // 设备树
238
-                TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(communityId);
239
-                // 所有设备
240
-                // List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(communityId, unitId, 4);
241
-                List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitIdAndFace(communityId, unitId, 4);
242
-                if (CollectionUtils.isNotEmpty(tpEquipments)) {
243
-                    List<Map<String, Object>> equipmentUUID = getEquipmentUUID(tpEquipments);
244
-                    StringBuilder doorUuids = new StringBuilder();
245
-                    StringBuilder deviceUuids = new StringBuilder();
246
-                    equipmentUUID.forEach(e-> {
247
-                        doorUuids.append(e.get("doorUuid"));
248
-                        doorUuids.append(",");
249
-                        deviceUuids.append(e.get("deviceUuid"));
250
-                        deviceUuids.append(",");
251
-                    });
252
-                    if (StringUtils.isBlank(deviceUuids)) {
253
-                        responseBean.addError("系统未配置设备!");
254
-                        throw new WisdomException("系统未配置设备!");
255
-                    }
256
-                    Map<String,Object> map = Maps.newHashMap();
257
-                    map.put("appkey", tpEquipmentTree.getAppkey());
258
-                    map.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
259
-                    map.put("personIds", String.valueOf(taUserHk.getHkUserId()));
260
-                    map.put("deviceUuids", deviceUuids.substring(0, deviceUuids.lastIndexOf(",")));
261
-                    map.put("type", 1);
262
-                    map.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
263
-                    HKOpenApi.downloadFaceAndFingerInfos(map);
264
-                }
262
+
263
+                // 等待 1s
264
+                Thread.sleep(3000);
265
+
266
+                responseBean.addSuccess(taFace);
267
+
268
+                // 下发门禁人脸权限
269
+                ihkService.downloadFaceAndFingerInfos(tpEquipmentTree, userVerify, taUserHk);
265 270
 
266 271
 
267 272
                 //可视对讲时 指定人员人脸权限下载
268
-                List<Integer> userIdList = new ArrayList<>();
269
-                userIdList.add(taUserHk.getHkUserId());
270
-                //临时设备编号
271
-                // TODO 根据期楼栋号,来查询出门口机
272
-
273
-                // 单元门口机
274
-                List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(communityId, unitId, 3);
275
-                if (CollectionUtils.isNotEmpty(visualEquipments)) {
276
-                    List<String> visualList = visualEquipments.stream()
277
-                            .map(e-> tpConfigurationMapper.selectByPrimaryKey(e.getUuidId()).getConfigurationValue())
278
-                            .collect(Collectors.toList());
279
-//                List<String> visualList = new ArrayList<>();
280
-//                visualList.add("10010100000");
281
-                    HKOpenApi.visualIntercom(tpEquipmentTree.getOpUserUuid(), 1, userIdList, visualList, tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer());
282
-                }
273
+                ihkService.visualIntercom(tpEquipmentTree, taUserHk, userVerify);
274
+
283 275
             } else {
284 276
                 responseBean.addError("请录入正确图片");
285 277
             }
@@ -386,7 +378,7 @@ public class FaceServicelimpl implements FaceServiceI {
386 378
     /**
387 379
      * 各种身份校验
388 380
      */
389
-    public ResponseBean addVerify(Integer userid, Integer userVerifyId, MultipartFile uploadFile, String faceImg, TaFace taFace, TpEquipmentTree tpEquipmentTree) {
381
+    public ResponseBean addVerify(Integer userid, Integer userVerifyId, MultipartFile uploadFile, String faceImg, TaFace taFace) {
390 382
         ResponseBean response = new ResponseBean();
391 383
 
392 384
         TaUserVerify userVerify = taUserVerifyMapper.selectByPrimaryKey(userVerifyId);
@@ -394,6 +386,7 @@ public class FaceServicelimpl implements FaceServiceI {
394 386
             response.addError("当前房产审核记录不存在!");
395 387
             return response;
396 388
         }
389
+
397 390
         TaUser taUser = taUserMapper.selectByPrimaryKey(userid);
398 391
 
399 392
         //身份为家属租客,状态为已停用
@@ -403,14 +396,21 @@ public class FaceServicelimpl implements FaceServiceI {
403 396
         }
404 397
 
405 398
         // 海康数据
406
-        TaUserHk taUserHk = taUserHkMapper.selectByUserIdAndCommunityId(userVerify.getUserId(), userVerify.getCommunityId());
399
+        TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerify.getId(), userVerify.getCommunityId());
400
+
401
+        // 海康权限信息
402
+        TpUnitHkSetting tpUnitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
403
+
404
+        // 设备树
405
+        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
406
+
407 407
 
408 408
         //查询当前用户是否有人脸记录
409 409
         TaFace face = taFaceMapper.getByUserVerifyId(userVerifyId);
410 410
         if (null == face) {
411 411
             boolean isA = true;
412 412
             if (Constant.EFFECTIVE_STATUS.equals(taUser.getStatus())) {
413
-                ResponseBean responseBean = checKout(faceImg, taFace, isA, uploadFile, userid, userVerify.getCommunityId(), userVerify.getRoomNoId(), userVerify.getUnitId(),tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid(), taUserHk);
413
+                ResponseBean responseBean = checKout(faceImg, taFace, isA, uploadFile, taUserHk, tpUnitHkSetting, tpEquipmentTree, userVerify);
414 414
                 if (responseBean.getCode().equals("0")) {
415 415
                     responseBean.addSuccess("图片录入成功");
416 416
                 } else {
@@ -423,6 +423,18 @@ public class FaceServicelimpl implements FaceServiceI {
423 423
         return response;
424 424
     }
425 425
 
426
+    /**
427
+     * 海康权限组
428
+     * @return
429
+     */
430
+    private TpUnitHkSetting getUnitHkSetting(Integer communityId, Integer unitId) {
431
+        TpUnitHkSetting tpUnitHkSetting = tpUnitHkSettingMapper.selectByCommunityIdAndUnitId(communityId, unitId);
432
+        if (null == tpUnitHkSetting) {
433
+            throw new WisdomException("权限组未配置");
434
+        }
435
+        return tpUnitHkSetting;
436
+    }
437
+
426 438
     @Override
427 439
     @Transactional(rollbackFor = Exception.class)
428 440
     public ResponseBean addWelcomeFace(MultipartFile uploadFile, TaUser user) {

+ 186
- 44
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/HKServiceImpl.java Dosyayı Görüntüle

@@ -34,6 +34,9 @@ import java.util.stream.Collectors;
34 34
 @Slf4j
35 35
 public class HKServiceImpl implements IHKService {
36 36
 
37
+    @Autowired
38
+    private TpUnitHkSettingMapper tpUnitHkSettingMapper;
39
+
37 40
     @Autowired
38 41
     private TaUserMapper taUserMapper;
39 42
 
@@ -73,7 +76,7 @@ public class HKServiceImpl implements IHKService {
73 76
     }
74 77
 
75 78
     @Override
76
-    // @Transactional(rollbackFor = Exception.class)
79
+    @Transactional(rollbackFor = Exception.class)
77 80
     public ResponseBean pushPerson(String appUserId, Integer userVerifyId) {
78 81
         ResponseBean responseBean = new ResponseBean();
79 82
         TaUser user = taUserMapper.selectByPrimaryKey(Integer.parseInt(appUserId));
@@ -84,11 +87,15 @@ public class HKServiceImpl implements IHKService {
84 87
         }
85 88
 
86 89
         // 海康数据
87
-        TaUserHk taUserHk = taUserHkMapper.selectByUserIdAndCommunityId(userVerify.getUserId(), userVerify.getCommunityId());
90
+        TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerify.getId(), userVerify.getCommunityId());
88 91
         if (null == taUserHk) {
89 92
             taUserHk = new TaUserHk();
90 93
         }
91 94
 
95
+        // 海康权限信息
96
+        TpUnitHkSetting unitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
97
+
98
+        // 设备树
92 99
         TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
93 100
 
94 101
         // 这两个值一般都是同时存在的
@@ -101,7 +108,7 @@ public class HKServiceImpl implements IHKService {
101 108
              * 2.根据部门编号推送 海康
102 109
              */
103 110
             taUserMapper.updateByPrimaryKeySelective(user);
104
-            addUserAndOpenCard(responseBean, user, tpEquipmentTree, taUserHk);
111
+            addUserAndOpenCard(responseBean, user, tpEquipmentTree, taUserHk, unitHkSetting, userVerify);
105 112
         }
106 113
 
107 114
         // 卡片操作
@@ -117,11 +124,21 @@ public class HKServiceImpl implements IHKService {
117 124
         }
118 125
 
119 126
 
127
+        // 判断是否成功
128
+        if ("0".equals(responseBean.getCode())) {
129
+            responseBean.addSuccess("操作成功!");
130
+            return responseBean;
131
+        }
132
+        throw new WisdomException("操作失败!");
133
+    }
120 134
 
121
-        // 推送海康
122 135
 
123
-        // 给用户添加 海康门禁权限
136
+    @Override
137
+    public ResponseBean addAuthoritiesAnddownloadAuthorityByPersonIds(TaUserVerify userVerify, TaUserHk taUserHk, TpEquipmentTree tpEquipmentTree) {
124 138
 
139
+        ResponseBean responseBean = new ResponseBean();
140
+
141
+        // 给用户添加 海康门禁权限
125 142
         List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 4);
126 143
         List<Map<String, Object>> equipmentUUID = getEquipmentUUID(tpEquipments);
127 144
         StringBuilder doorUuids = new StringBuilder();
@@ -134,7 +151,6 @@ public class HKServiceImpl implements IHKService {
134 151
         });
135 152
 
136 153
         if (org.apache.commons.lang3.StringUtils.isNotBlank(doorUuids)) {
137
-
138 154
             Map<String, Object> map = Maps.newHashMap();
139 155
             map.put("personIds",String.valueOf(taUserHk.getHkUserId()));
140 156
             map.put("doorUuids", doorUuids.substring(0, doorUuids.lastIndexOf(",")));
@@ -142,7 +158,8 @@ public class HKServiceImpl implements IHKService {
142 158
             map.put("appkey", tpEquipmentTree.getAppkey());
143 159
             map.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
144 160
             map.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
145
-            HKOpenApi.addAuthoritiesByPersonIds(map);
161
+            String addAuthoritiesJSONString = HKOpenApi.addAuthoritiesByPersonIds(map);
162
+            validHKError(addAuthoritiesJSONString);
146 163
 
147 164
             // 下发门禁权限
148 165
             Map<String, Object> downloadAuthorityByPersonIdsMap = Maps.newHashMap();
@@ -154,35 +171,48 @@ public class HKServiceImpl implements IHKService {
154 171
             downloadAuthorityByPersonIdsMap.put("appkey", tpEquipmentTree.getAppkey());
155 172
             downloadAuthorityByPersonIdsMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
156 173
             downloadAuthorityByPersonIdsMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
157
-            HKOpenApi.downloadAuthorityByPersonIds(downloadAuthorityByPersonIdsMap);
158
-
174
+            String downloadAuthorityJSON = HKOpenApi.downloadAuthorityByPersonIds(downloadAuthorityByPersonIdsMap);
175
+            validHKError(downloadAuthorityJSON);
159 176
         }
160 177
 
161
-        //--------- 可视对讲 ----------
178
+        responseBean.addSuccess("操作成功!");
179
+        return responseBean;
180
+    }
162 181
 
163
-        Map<String,Object> addOutDoorAuthMap = Maps.newHashMap();
164
-        addOutDoorAuthMap.put("authName", "app用户权限勿动");
165
-        addOutDoorAuthMap.put("personIds", Arrays.asList(taUserHk.getHkUserId()));
166
-        addOutDoorAuthMap.put("secret", tpEquipmentTree.getSecret());
167
-        addOutDoorAuthMap.put("appkey", tpEquipmentTree.getAppkey());
168
-        addOutDoorAuthMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
169
-        addOutDoorAuthMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
182
+    @Override
183
+    public ResponseBean downloadFaceAndFingerInfos(TpEquipmentTree tpEquipmentTree, TaUserVerify userVerify, TaUserHk taUserHk) {
184
+
185
+        ResponseBean responseBean = new ResponseBean();
186
+
187
+        // 所有设备
188
+        // List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(communityId, unitId, 4);
189
+        List<TpEquipment> tpEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitIdAndFace(tpEquipmentTree.getCommunityId(), userVerify.getUnitId(), 4);
190
+        if (CollectionUtils.isNotEmpty(tpEquipments)) {
191
+            List<Map<String, Object>> equipmentUUID = getEquipmentUUID(tpEquipments);
192
+            StringBuilder doorUuids = new StringBuilder();
193
+            StringBuilder deviceUuids = new StringBuilder();
194
+            equipmentUUID.forEach(e-> {
195
+                doorUuids.append(e.get("doorUuid"));
196
+                doorUuids.append(",");
197
+                deviceUuids.append(e.get("deviceUuid"));
198
+                deviceUuids.append(",");
199
+            });
200
+            if (org.apache.commons.lang3.StringUtils.isBlank(deviceUuids)) {
201
+                responseBean.addError("系统未配置设备!");
202
+                throw new WisdomException("系统未配置设备!");
203
+            }
204
+            Map<String,Object> map = Maps.newHashMap();
205
+            map.put("appkey", tpEquipmentTree.getAppkey());
206
+            map.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
207
+            map.put("personIds", String.valueOf(taUserHk.getHkUserId()));
208
+            map.put("deviceUuids", deviceUuids.substring(0, deviceUuids.lastIndexOf(",")));
209
+            map.put("type", 1);
210
+            map.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
211
+            HKOpenApi.downloadFaceAndFingerInfos(map);
170 212
 
171
-        // 单元门口机
172
-        List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 3);
173
-        List<String> visualList = visualEquipments.stream()
174
-                .map(e-> tpConfigurationMapper.selectByPrimaryKey(e.getUuidId()).getConfigurationValue())
175
-                .collect(Collectors.toList());
176
-//        List<String> visualList = new ArrayList<>();
177
-//        visualList.add("10010100000");
178
-        addOutDoorAuthMap.put("longNums", visualList);
179
-        // 可视对讲下发 权限
180
-        visualIntercomPermissions(addOutDoorAuthMap);
181
-        if ("0".equals(responseBean.getCode())) {
182
-            responseBean.addSuccess("操作成功!");
183
-            return responseBean;
184 213
         }
185
-        throw new WisdomException("操作失败!");
214
+
215
+        return responseBean;
186 216
     }
187 217
 
188 218
     @Override
@@ -202,15 +232,15 @@ public class HKServiceImpl implements IHKService {
202 232
      * @param response
203 233
      * @param user
204 234
      */
205
-    private void addUserAndOpenCard(ResponseBean response, TaUser user, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk) {
206
-        Map<String, Object> parDept = Maps.newHashMap();
207
-        parDept.put("pageNo", 1);
208
-        parDept.put("pageSize", 100);
209
-        parDept.put("deptName", Constant.DEPT_RESIDENTS);
210
-        parDept.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
211
-        parDept.put("appkey", tpEquipmentTree.getAppkey());
212
-        parDept.put("secret", tpEquipmentTree.getSecret());
213
-        parDept.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
235
+    private void addUserAndOpenCard(ResponseBean response, TaUser user, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TpUnitHkSetting unitHkSetting, TaUserVerify userVerify) {
236
+//        Map<String, Object> parDept = Maps.newHashMap();
237
+//        parDept.put("pageNo", 1);
238
+//        parDept.put("pageSize", 100);
239
+//        parDept.put("deptName", Constant.DEPT_RESIDENTS);
240
+//        parDept.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
241
+//        parDept.put("appkey", tpEquipmentTree.getAppkey());
242
+//        parDept.put("secret", tpEquipmentTree.getSecret());
243
+//        parDept.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
214 244
         // 部门UUID
215 245
         //String deptUuid = getDeptUUID(parDept);
216 246
 
@@ -220,7 +250,7 @@ public class HKServiceImpl implements IHKService {
220 250
         parUser.put("personName", user.getUserName());
221 251
         // parUser.put("phoneNo", user.getLoginName());
222 252
         parUser.put("remark", user.getLoginName());
223
-        //parUser.put("deptUuid", deptUuid);
253
+        parUser.put("deptUuid", unitHkSetting.getDepartmentId());
224 254
         parUser.put("secret", tpEquipmentTree.getSecret());
225 255
         parUser.put("appkey", tpEquipmentTree.getAppkey());
226 256
         parUser.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
@@ -237,8 +267,11 @@ public class HKServiceImpl implements IHKService {
237 267
 
238 268
             int row = 0;
239 269
             if (null == taUserHk.getId()) {
240
-                taUserHk.setTaUserId(user.getId());
270
+                // 存储的是审核id
271
+                taUserHk.setTaUserId(userVerify.getId());
241 272
                 taUserHk.setCommunityId(tpEquipmentTree.getCommunityId());
273
+                taUserHk.setCreateDate(new Date());
274
+                taUserHk.setUpdateDate(new Date());
242 275
                 // 存储海康人员ID
243 276
                 row = taUserHkMapper.insertSelective(taUserHk);
244 277
             } else {
@@ -347,6 +380,18 @@ public class HKServiceImpl implements IHKService {
347 380
         return response;
348 381
     }
349 382
 
383
+    /**
384
+     * 校验错误
385
+     * @param json
386
+     */
387
+    private void validHKError(String json) {
388
+        Map<String, Object> resultMap = JSONObject.parseObject(json, HashMap.class);
389
+        Integer errorCode = (Integer) resultMap.get("errorCode");
390
+        if (errorCode.intValue() != 0) {
391
+            throw new RuntimeException(String.valueOf(resultMap.get("errorMessage")));
392
+        }
393
+    }
394
+
350 395
     /**
351 396
      * 获取部门 uuid
352 397
      * <p>
@@ -364,19 +409,31 @@ public class HKServiceImpl implements IHKService {
364 409
         return deptUuid;
365 410
     }
366 411
 
412
+    /**
413
+     * 海康权限组
414
+     * @return
415
+     */
416
+    private TpUnitHkSetting getUnitHkSetting(Integer communityId, Integer unitId) {
417
+        TpUnitHkSetting tpUnitHkSetting = tpUnitHkSettingMapper.selectByCommunityIdAndUnitId(communityId, unitId);
418
+        if (null == tpUnitHkSetting) {
419
+            throw new WisdomException("权限组未配置");
420
+        }
421
+        return tpUnitHkSetting;
422
+    }
423
+
367 424
     /**
368 425
      * 可视对讲下发 权限
369 426
      *
370 427
      * @param map
371 428
      */
372
-    private void visualIntercomPermissions(Map<String,Object> map) {
429
+    private String visualIntercomPermissions(Map<String,Object> map) {
373 430
         // TODO 目前下发的 authName权限组是我们自定义的, 后面肯定是按照小区的 期楼栋号来设置的
374 431
         // TODO longNums设备编号, 可视对讲的机器编号, 应该根据 期楼栋号 下面的机器编号来设置的
375 432
 
376 433
         //--------- 可视对讲 ----------
377 434
 
378 435
         // 可视对讲 根据人员 ID 集添加权限并下发
379
-        HKOpenApi.addOutDoorAuth(map);
436
+        return HKOpenApi.addOutDoorAuth(map);
380 437
 
381 438
     }
382 439
 
@@ -450,4 +507,89 @@ public class HKServiceImpl implements IHKService {
450 507
         responseBean.addError("操作失败!");
451 508
         return responseBean;
452 509
     }
510
+
511
+    @Override
512
+    public ResponseBean visualIntercomPermissions(TpUnitHkSetting unitHkSetting, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TaUserVerify userVerify, TaUser user) {
513
+
514
+        ResponseBean responseBean = new ResponseBean();
515
+
516
+        if (null == unitHkSetting) {
517
+            responseBean.addError("海康权限信息 未配置");
518
+            return responseBean;
519
+        }
520
+
521
+        if (null == tpEquipmentTree) {
522
+            responseBean.addError("设备树 未配置");
523
+            return responseBean;
524
+        }
525
+
526
+        if (null == userVerify) {
527
+            responseBean.addError("审核数据 不能为null");
528
+            return responseBean;
529
+        }
530
+
531
+        //--------- 可视对讲 ----------
532
+
533
+        Map<String,Object> addOutDoorAuthMap = Maps.newHashMap();
534
+        // app用户权限勿动 unitHkSetting.getPermissionId()
535
+        addOutDoorAuthMap.put("authName", user.getUserName()+userVerify.getId());
536
+        addOutDoorAuthMap.put("personIds", Arrays.asList(taUserHk.getHkUserId()));
537
+        addOutDoorAuthMap.put("secret", tpEquipmentTree.getSecret());
538
+        addOutDoorAuthMap.put("appkey", tpEquipmentTree.getAppkey());
539
+        addOutDoorAuthMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
540
+        addOutDoorAuthMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
541
+
542
+        // 单元门口机
543
+        List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 3);
544
+        List<String> visualList = visualEquipments.stream()
545
+                .map(e-> tpConfigurationMapper.selectByPrimaryKey(e.getUuidId()).getConfigurationValue())
546
+                .collect(Collectors.toList());
547
+//        List<String> visualList = new ArrayList<>();
548
+//        visualList.add("10010100000");
549
+        addOutDoorAuthMap.put("longNums", visualList);
550
+        // 可视对讲下发 权限
551
+        String permissionsJSON = visualIntercomPermissions(addOutDoorAuthMap);
552
+        JSONObject addCardsJsonObject = JSONObject.parseObject(permissionsJSON);
553
+        Integer addCardsResultCode = addCardsJsonObject.getInteger("errorCode");
554
+        if (0 == addCardsResultCode.intValue()) {
555
+            responseBean.addSuccess("操作成功!");
556
+            return responseBean;
557
+        }
558
+
559
+        responseBean.addError("操作失败");
560
+        throw new RuntimeException(addCardsJsonObject.getString("errorMessage"));
561
+    }
562
+
563
+
564
+    @Override
565
+    public ResponseBean visualIntercom(TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TaUserVerify userVerify) {
566
+
567
+        ResponseBean responseBean = new ResponseBean();
568
+
569
+        //可视对讲时 指定人员人脸权限下载
570
+        List<Integer> userIdList = new ArrayList<>();
571
+        userIdList.add(taUserHk.getHkUserId());
572
+        //临时设备编号
573
+        // TODO 根据期楼栋号,来查询出门口机
574
+
575
+        // 单元门口机
576
+        List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(tpEquipmentTree.getCommunityId(), userVerify.getUnitId(), 3);
577
+        if (CollectionUtils.isNotEmpty(visualEquipments)) {
578
+            List<String> visualList = visualEquipments.stream()
579
+                    .map(e-> tpConfigurationMapper.selectByPrimaryKey(e.getUuidId()).getConfigurationValue())
580
+                    .collect(Collectors.toList());
581
+//                List<String> visualList = new ArrayList<>();
582
+//                visualList.add("10010100000");
583
+            String visualIntercomJSON = HKOpenApi.visualIntercom(tpEquipmentTree.getOpUserUuid(), 1, userIdList, visualList, tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer());
584
+            JSONObject addCardsJsonObject = JSONObject.parseObject(visualIntercomJSON);
585
+            Integer addCardsResultCode = addCardsJsonObject.getInteger("errorCode");
586
+            if (0 == addCardsResultCode.intValue()) {
587
+                responseBean.addSuccess("操作成功!");
588
+                return responseBean;
589
+            }
590
+
591
+        }
592
+
593
+        return responseBean;
594
+    }
453 595
 }

+ 414
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/SenCartIdImpl.java Dosyayı Görüntüle

@@ -0,0 +1,414 @@
1
+package com.community.huiju.service.impl;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.community.commom.hk.HKOpenApi;
5
+import com.community.commom.mode.ResponseBean;
6
+import com.community.commom.uuid.IdGen;
7
+import com.community.huiju.dao.*;
8
+import com.community.huiju.exception.WisdomException;
9
+import com.community.huiju.model.*;
10
+import com.community.huiju.service.IHKService;
11
+import com.community.huiju.service.ISenCartId;
12
+import com.google.common.collect.Maps;
13
+import lombok.extern.slf4j.Slf4j;
14
+import org.apache.commons.collections.CollectionUtils;
15
+import org.apache.commons.lang.StringUtils;
16
+import org.bouncycastle.cms.PasswordRecipientId;
17
+import org.springframework.beans.factory.annotation.Autowired;
18
+import org.springframework.stereotype.Service;
19
+import org.springframework.web.multipart.MultipartFile;
20
+
21
+import java.text.ParseException;
22
+import java.text.SimpleDateFormat;
23
+import java.time.LocalDate;
24
+import java.util.*;
25
+import java.util.stream.Collectors;
26
+
27
+/**
28
+ * weiximei on 2019-06-21
29
+ */
30
+@Service
31
+@Slf4j
32
+public class SenCartIdImpl implements ISenCartId {
33
+
34
+    @Autowired
35
+    private IHKService ihkService;
36
+
37
+    @Autowired
38
+    private TaUserMapper taUserMapper;
39
+
40
+    @Autowired
41
+    private TpUnitHkSettingMapper tpUnitHkSettingMapper;
42
+
43
+
44
+    @Autowired
45
+    private TpEquipmentTreeMapper tpEquipmentTreeMapper;
46
+
47
+    private IdGen idGen = IdGen.get();
48
+
49
+    @Autowired
50
+    private TaUserHkMapper taUserHkMapper;
51
+
52
+    @Autowired
53
+    private TpEquipmentMapper tpEquipmentMapper;
54
+
55
+    @Autowired
56
+    private TpConfigurationMapper tpConfigurationMapper;
57
+
58
+    @Override
59
+    public ResponseBean addUserAndAddCartId(Integer communityId) {
60
+        ResponseBean responseBean = new ResponseBean();
61
+
62
+        // 查询审核已通过的,但是没有海康id的
63
+        List<TaUser> taUserList = taUserMapper.selectNotHKuserId(communityId);
64
+
65
+        for (TaUser user : taUserList) {
66
+
67
+            // 海康权限信息
68
+            TpUnitHkSetting unitHkSetting = getUnitHkSetting(communityId, user.getUnitId());
69
+
70
+            TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(communityId);
71
+
72
+            TaUserHk taUserHk = new TaUserHk();
73
+            // 设置 海康id
74
+            taUserHk.setHkPersonNo(idGen.nextId());
75
+            /**
76
+             * 1.获取部门(比如 住户)
77
+             * 2.根据部门编号推送 海康
78
+             */
79
+            taUserMapper.updateByPrimaryKeySelective(user);
80
+            addUserAndOpenCard(responseBean, user, tpEquipmentTree, taUserHk, unitHkSetting);
81
+
82
+
83
+            // 卡片操作
84
+
85
+            // 添加卡片
86
+            responseBean = addCards(taUserHk, tpEquipmentTree);
87
+
88
+            // 开卡
89
+            responseBean = openCard(taUserHk.getHkUserId(), Long.valueOf(taUserHk.getHkCardNo()), null,tpEquipmentTree);
90
+
91
+        }
92
+
93
+        responseBean.addSuccess("操作成功!");
94
+        return responseBean;
95
+    }
96
+
97
+
98
+    /**
99
+     * 海康权限组
100
+     * @return
101
+     */
102
+    private TpUnitHkSetting getUnitHkSetting(Integer communityId, Integer unitId) {
103
+        TpUnitHkSetting tpUnitHkSetting = tpUnitHkSettingMapper.selectByCommunityIdAndUnitId(communityId, unitId);
104
+        if (null == tpUnitHkSetting) {
105
+            throw new WisdomException("权限组未配置");
106
+        }
107
+        return tpUnitHkSetting;
108
+    }
109
+
110
+    /**
111
+     * 公共方法
112
+     * 添加人员
113
+     *
114
+     * @param response
115
+     * @param user
116
+     */
117
+    private void addUserAndOpenCard(ResponseBean response, TaUser user, TpEquipmentTree tpEquipmentTree, TaUserHk taUserHk, TpUnitHkSetting unitHkSetting) {
118
+//        Map<String, Object> parDept = Maps.newHashMap();
119
+//        parDept.put("pageNo", 1);
120
+//        parDept.put("pageSize", 100);
121
+//        parDept.put("deptName", Constant.DEPT_RESIDENTS);
122
+//        parDept.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
123
+//        parDept.put("appkey", tpEquipmentTree.getAppkey());
124
+//        parDept.put("secret", tpEquipmentTree.getSecret());
125
+//        parDept.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
126
+        // 部门UUID
127
+        //String deptUuid = getDeptUUID(parDept);
128
+
129
+        // 添加人员
130
+        Map<String, Object> parUser = Maps.newHashMap();
131
+        parUser.put("personNo", taUserHk.getHkPersonNo());
132
+        parUser.put("personName", user.getUserName());
133
+        // parUser.put("phoneNo", user.getLoginName());
134
+        parUser.put("remark", user.getLoginName());
135
+        parUser.put("deptUuid", unitHkSetting.getDepartmentId());
136
+        parUser.put("secret", tpEquipmentTree.getSecret());
137
+        parUser.put("appkey", tpEquipmentTree.getAppkey());
138
+        parUser.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
139
+        parUser.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
140
+        Map<String, Object> resultMap = JSONObject.parseObject(HKOpenApi.addUser(parUser), HashMap.class);
141
+        Integer errorCode = (Integer) resultMap.get("errorCode");
142
+        if (errorCode == 0) {
143
+            Map<String, Object> resultDataMap = (Map<String, Object>) resultMap.get("data");
144
+
145
+            // 海康人员ID
146
+            Integer personId = (Integer) resultDataMap.get("personId");
147
+
148
+            taUserHk.setHkUserId(personId);
149
+
150
+            int row = 0;
151
+            if (null == taUserHk.getId()) {
152
+                taUserHk.setTaUserId(user.getId());
153
+                taUserHk.setCommunityId(tpEquipmentTree.getCommunityId());
154
+                // 存储海康人员ID
155
+                row = taUserHkMapper.insertSelective(taUserHk);
156
+            } else {
157
+                row = taUserHkMapper.updateByPrimaryKeySelective(taUserHk);
158
+            }
159
+
160
+            if (row > 0) {
161
+                response.addSuccess("操作成功!");
162
+            } else {
163
+                response.addError("操作失败");
164
+                throw new RuntimeException("数据库添加 家属/租客 人员失败!");
165
+            }
166
+
167
+        } else {
168
+            String errorMessage = String.valueOf(resultMap.get("errorMessage"));
169
+            response.addError(errorMessage);
170
+            log.error("海康添加人员失败! {}", errorMessage);
171
+            throw new RuntimeException(errorMessage);
172
+        }
173
+    }
174
+
175
+    /**
176
+     * 添加卡片
177
+     * @return
178
+     */
179
+    public ResponseBean addCards(TaUserHk taUserHk, TpEquipmentTree tpEquipmentTree) {
180
+
181
+        ResponseBean response = new ResponseBean();
182
+
183
+        // 开卡 卡号
184
+        long cardNo = System.currentTimeMillis();
185
+
186
+        // 添加卡片
187
+        Map<String,Object> addCardsMap = new HashMap<>();
188
+        addCardsMap.put("secret", tpEquipmentTree.getSecret());
189
+        addCardsMap.put("appkey", tpEquipmentTree.getAppkey());
190
+        addCardsMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
191
+        addCardsMap.put("startCardNo", cardNo);
192
+        addCardsMap.put("endCardNo", cardNo);
193
+        addCardsMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
194
+        String addCardsJSON = HKOpenApi.addCards(addCardsMap);
195
+        JSONObject addCardsJsonObject = JSONObject.parseObject(addCardsJSON);
196
+        Integer addCardsResultCode = addCardsJsonObject.getInteger("errorCode");
197
+        if (0 != addCardsResultCode) {
198
+            response.addError("操作失败");
199
+            throw new RuntimeException(addCardsJsonObject.getString("errorMessage"));
200
+        }
201
+
202
+        // 卡片入库
203
+        taUserHk.setHkCardNo(cardNo + "");
204
+        taUserHkMapper.updateByPrimaryKeySelective(taUserHk);
205
+        return response;
206
+    }
207
+
208
+    /**
209
+     * 卡片开卡
210
+     *
211
+     * @param personId 人员海康id
212
+     * @param cardNo 卡号
213
+     * @param expirationTime    有效期为多少? 单位为 年
214
+     * @return
215
+     */
216
+    private ResponseBean openCard(Integer personId, Long cardNo, Integer expirationTime, TpEquipmentTree tpEquipmentTree) {
217
+        ResponseBean response = new ResponseBean();
218
+
219
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
220
+        LocalDate today = LocalDate.now();
221
+        int year = today.getYear();
222
+        // 加上20, 表示加上20年,默认
223
+        if (null == expirationTime || expirationTime <= 0) {
224
+            year += 20;
225
+        } else {
226
+            year += expirationTime;
227
+        }
228
+        int month = today.getMonthValue();
229
+        int day = today.getDayOfMonth();
230
+
231
+        Long time = null;
232
+        try {
233
+            time = formatter.parse(year + "-" + month + "-" + day).getTime();
234
+        } catch (ParseException e) {
235
+            e.printStackTrace();
236
+        }
237
+
238
+        // 开卡
239
+        Map<String, Object> parOpenCard = Maps.newHashMap();
240
+        parOpenCard.put("personId", personId);
241
+        parOpenCard.put("cardNo", cardNo);
242
+        parOpenCard.put("startTime", System.currentTimeMillis());
243
+        parOpenCard.put("endTime", time);
244
+        parOpenCard.put("secret", tpEquipmentTree.getSecret());
245
+        parOpenCard.put("appkey", tpEquipmentTree.getAppkey());
246
+        parOpenCard.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
247
+        parOpenCard.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
248
+        JSONObject openCardJSON = JSONObject.parseObject(HKOpenApi.openCard(parOpenCard));
249
+        int code = (int) openCardJSON.get("errorCode");
250
+        if (code == 0) {
251
+            response.addSuccess("操作成功!");
252
+        } else {
253
+            String errorMessage = String.valueOf(openCardJSON.get("errorMessage"));
254
+            response.addError(errorMessage);
255
+            log.error("开卡失败! {}", errorMessage);
256
+            throw new RuntimeException(errorMessage);
257
+        }
258
+
259
+        return response;
260
+    }
261
+
262
+    @Override
263
+    public ResponseBean addUserOne(Integer communityId, MultipartFile uploadFile) {
264
+        ResponseBean responseBean = new ResponseBean();
265
+
266
+
267
+        TaUser user = new TaUser();
268
+        user.setLoginName("15677789713");
269
+        user.setUnitId(110);
270
+        user.setHkPersonNo(idGen.nextId());
271
+        user.setUserName("魏熙美测试1");
272
+
273
+        // 海康权限信息
274
+        TpUnitHkSetting unitHkSetting = getUnitHkSetting(communityId, user.getUnitId());
275
+        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(communityId);
276
+
277
+        // =================== 添加人员 ===========================
278
+//        Map<String, Object> parUser = Maps.newHashMap();
279
+//        parUser.put("personNo", user.getHkPersonNo());
280
+//        parUser.put("personName", user.getUserName());
281
+//        // parUser.put("phoneNo", user.getLoginName());
282
+//        parUser.put("remark", user.getLoginName());
283
+//        parUser.put("deptUuid", unitHkSetting.getDepartmentId());
284
+//        parUser.put("secret", tpEquipmentTree.getSecret());
285
+//        parUser.put("appkey", tpEquipmentTree.getAppkey());
286
+//        parUser.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
287
+//        parUser.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
288
+//        Map<String, Object> resultMap = JSONObject.parseObject(HKOpenApi.addUser(parUser), HashMap.class);
289
+//        Integer errorCode = (Integer) resultMap.get("errorCode");
290
+//        if (errorCode != 0) {
291
+//            responseBean.addError("人员添加 操作失败");
292
+//            throw new RuntimeException(String.valueOf(resultMap.get("errorMessage")));
293
+//        }
294
+//        Map<String, Object> resultDataMap = (Map<String, Object>) resultMap.get("data");
295
+//        // 海康人员ID
296
+//        Integer personId = (Integer) resultDataMap.get("personId");
297
+//        user.setHkUserId(personId);
298
+//
299
+//        // =================== 添加卡片 =====================
300
+//
301
+//        // 开卡 卡号
302
+//        long cardNo = System.currentTimeMillis();
303
+//        // 添加卡片
304
+//        Map<String,Object> addCardsMap = new HashMap<>();
305
+//        addCardsMap.put("secret", tpEquipmentTree.getSecret());
306
+//        addCardsMap.put("appkey", tpEquipmentTree.getAppkey());
307
+//        addCardsMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
308
+//        addCardsMap.put("startCardNo", cardNo);
309
+//        addCardsMap.put("endCardNo", cardNo);
310
+//        addCardsMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
311
+//        String addCardsJSON = HKOpenApi.addCards(addCardsMap);
312
+//        JSONObject addCardsJsonObject = JSONObject.parseObject(addCardsJSON);
313
+//        Integer addCardsResultCode = addCardsJsonObject.getInteger("errorCode");
314
+//        if (0 != addCardsResultCode) {
315
+//            responseBean.addError("操作失败");
316
+//            throw new RuntimeException(addCardsJsonObject.getString("errorMessage"));
317
+//        }
318
+//
319
+//        user.setHkCardNo(cardNo + "");
320
+//
321
+//        // ============== 人员绑定卡片 ======================
322
+//
323
+//        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
324
+//        LocalDate today = LocalDate.now();
325
+//        int year = today.getYear();
326
+//        // 加上20, 表示加上20年,默认
327
+//        year += 20;
328
+//
329
+//        int month = today.getMonthValue();
330
+//        int day = today.getDayOfMonth();
331
+//
332
+//        Long time = null;
333
+//        try {
334
+//            time = formatter.parse(year + "-" + month + "-" + day).getTime();
335
+//        } catch (ParseException e) {
336
+//            e.printStackTrace();
337
+//        }
338
+//
339
+//        // 开卡
340
+//        Map<String, Object> parOpenCard = Maps.newHashMap();
341
+//        parOpenCard.put("personId", user.getHkUserId());
342
+//        parOpenCard.put("cardNo", Long.valueOf(cardNo));
343
+//        parOpenCard.put("startTime", System.currentTimeMillis());
344
+//        parOpenCard.put("endTime", time);
345
+//        parOpenCard.put("secret", tpEquipmentTree.getSecret());
346
+//        parOpenCard.put("appkey", tpEquipmentTree.getAppkey());
347
+//        parOpenCard.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
348
+//        parOpenCard.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
349
+//        JSONObject openCardJSON = JSONObject.parseObject(HKOpenApi.openCard(parOpenCard));
350
+//        int code = (int) openCardJSON.get("errorCode");
351
+//        if (code != 0) {
352
+//            String errorMessage = String.valueOf(openCardJSON.get("errorMessage"));
353
+//            responseBean.addError(errorMessage);
354
+//            log.error("人员绑定开卡失败! {}", errorMessage);
355
+//            throw new RuntimeException(errorMessage);
356
+//        }
357
+
358
+
359
+
360
+        // ============= 修改人脸 ==================
361
+        String data = HKOpenApi.HKpersonGroupId(uploadFile, 1236, 1142018896048422912L, user.getUserName(), "1561113497593", tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer(), tpEquipmentTree.getOpUserUuid());
362
+
363
+
364
+        //=================== 下发可是对讲卡权限 =====================
365
+
366
+        //--------- 可视对讲 ----------
367
+
368
+//        Map<String,Object> addOutDoorAuthMap = Maps.newHashMap();
369
+//        // app用户权限勿动 unitHkSetting.getPermissionId()
370
+//        addOutDoorAuthMap.put("authName", "魏熙美测试1");
371
+//        addOutDoorAuthMap.put("personIds", Arrays.asList(user.getHkUserId()));
372
+//        addOutDoorAuthMap.put("secret", tpEquipmentTree.getSecret());
373
+//        addOutDoorAuthMap.put("appkey", tpEquipmentTree.getAppkey());
374
+//        addOutDoorAuthMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
375
+//        addOutDoorAuthMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
376
+//
377
+//        // 单元门口机
378
+//        List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(communityId, user.getUnitId(), 3);
379
+//        // 可是对讲设备号
380
+//        List<String> visualList = visualEquipments.stream()
381
+//                .map(e-> tpConfigurationMapper.selectByPrimaryKey(e.getUuidId()).getConfigurationValue())
382
+//                .collect(Collectors.toList());
383
+////        List<String> visualList = new ArrayList<>();
384
+////        visualList.add("10030100001");
385
+//        addOutDoorAuthMap.put("longNums", visualList); // visualList
386
+//        // 可视对讲下发 权限
387
+//         String addOutDoorAuthJSONString = HKOpenApi.addOutDoorAuth(addOutDoorAuthMap);
388
+//        JSONObject addOutDoorAuthJSON = JSONObject.parseObject(addOutDoorAuthJSONString);
389
+//        int addOutDoorAuthJSONCode = (int) addOutDoorAuthJSON.get("errorCode");
390
+//        if (addOutDoorAuthJSONCode != 0 ) {
391
+//            String errorMessage = String.valueOf(addOutDoorAuthJSON.get("errorMessage"));
392
+//            responseBean.addError(errorMessage);
393
+//            log.error("可视对讲下发 权限失败! {}", errorMessage);
394
+//            throw new RuntimeException(errorMessage);
395
+//        }
396
+
397
+//        try {
398
+//            Thread.sleep(1000);
399
+//        } catch (InterruptedException e) {
400
+//            e.printStackTrace();
401
+//        }
402
+
403
+        // ================ 可是对讲人脸权限下发 ==============
404
+
405
+        //可视对讲时 指定人员人脸权限下载
406
+//        List<Integer> userIdList = new ArrayList<>();
407
+//        userIdList.add(user.getHkUserId());
408
+//
409
+//        HKOpenApi.visualIntercom(tpEquipmentTree.getOpUserUuid(), 1, userIdList, visualList, tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer());
410
+//
411
+//        responseBean.addSuccess("操作成功!");
412
+        return responseBean;
413
+    }
414
+}

+ 103
- 9
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaUserServiceImpl.java Dosyayı Görüntüle

@@ -173,6 +173,9 @@ public class TaUserServiceImpl implements ITaUserService {
173 173
     @Autowired
174 174
     private TaUserHkMapper taUserHkMapper;
175 175
 
176
+    @Autowired
177
+    private TpUnitHkSettingMapper tpUnitHkSettingMapper;
178
+
176 179
     @Override
177 180
     @Transactional(rollbackFor = Exception.class)
178 181
     public ResponseBean login(String loginName, String code, HttpSession session) {
@@ -195,7 +198,7 @@ public class TaUserServiceImpl implements ITaUserService {
195 198
 
196 199
     @Transactional(rollbackFor = Exception.class)
197 200
     @Override
198
-    public ResponseBean register(String parameter) {
201
+    public ResponseBean register(String parameter, boolean isIdCart) {
199 202
         ResponseBean<TaUser> response = new ResponseBean();
200 203
 
201 204
         JSONObject jsonObject = JSONObject.parseObject(parameter);
@@ -215,8 +218,11 @@ public class TaUserServiceImpl implements ITaUserService {
215 218
             iCode.checkPhoneAndCode(user.getLoginName(), code);
216 219
         }
217 220
 
218
-        // 校验身份证
219
-        this.checkIdCart(user);
221
+        if (isIdCart) {
222
+            // 校验身份证
223
+            this.checkIdCart(user);
224
+        }
225
+
220 226
 
221 227
         // 开始注册
222 228
         user.setCreateDate(new Date());
@@ -515,10 +521,10 @@ public class TaUserServiceImpl implements ITaUserService {
515 521
         TaUser user = jsonObject.toJavaObject(TaUser.class);
516 522
 
517 523
         // 校验身份证
518
-        this.checkIdCart(user);
524
+        // this.checkIdCart(user);
519 525
 
520 526
         // 调用注册接口
521
-        response = register(parameter);
527
+        response = register(parameter, false);
522 528
         // 返回值 code 为 1,表示已经注册
523 529
         if ("1".equals(response.getCode())) {
524 530
             // 用户数据查询出来
@@ -574,6 +580,20 @@ public class TaUserServiceImpl implements ITaUserService {
574 580
         if ("1".equals(response.getCode())) {
575 581
             throw new WisdomException("推送HK失败!");
576 582
         }
583
+
584
+//        // 海康权限信息
585
+//        TpUnitHkSetting unitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
586
+//
587
+//        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
588
+//
589
+//        TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerify.getId(), userElement.getCommunityId());
590
+//
591
+//        // 下发可是对讲卡权限
592
+//        response = ihkService.visualIntercomPermissions(unitHkSetting, tpEquipmentTree, taUserHk, userVerify);
593
+//        if ("1".equals(response.getCode())) {
594
+//            throw new WisdomException("可视对讲卡权限下发失败!");
595
+//        }
596
+
577 597
         // 推送消息
578 598
         String[] messageArr= new messagePush().messagePushAll( );
579 599
         for (String count : messageArr) {
@@ -599,6 +619,18 @@ public class TaUserServiceImpl implements ITaUserService {
599 619
         return response;
600 620
     }
601 621
 
622
+    /**
623
+     * 海康权限组
624
+     * @return
625
+     */
626
+    private TpUnitHkSetting getUnitHkSetting(Integer communityId, Integer unitId) {
627
+        TpUnitHkSetting tpUnitHkSetting = tpUnitHkSettingMapper.selectByCommunityIdAndUnitId(communityId, unitId);
628
+        if (null == tpUnitHkSetting) {
629
+            throw new WisdomException("权限组未配置");
630
+        }
631
+        return tpUnitHkSetting;
632
+    }
633
+
602 634
     /**
603 635
      * 查询 楼栋信息
604 636
      *      根据小区Id, 栋,单元,楼层,房号, 手机号
@@ -1095,7 +1127,7 @@ public class TaUserServiceImpl implements ITaUserService {
1095 1127
         taUserVO.setVerifyStatus(userVerify.getVerifyStatus());
1096 1128
 
1097 1129
         // 设置海康数据
1098
-        TaUserHk taUserHk = taUserHkMapper.selectByUserIdAndCommunityId(taUserVO.getId(), userVerify.getCommunityId());
1130
+        TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userVerify.getId(), userVerify.getCommunityId());
1099 1131
         if (null != taUserHk) {
1100 1132
             taUserVO.setHkUserId(taUserHk.getHkUserId() + "");
1101 1133
             taUserVO.setHkPersonNo(taUserHk.getHkPersonNo() + "");
@@ -1322,12 +1354,74 @@ public class TaUserServiceImpl implements ITaUserService {
1322 1354
 
1323 1355
     @Override
1324 1356
     public ResponseBean propertyHistoryDdetails(Integer id) {
1325
-        ResponseBean responseBean= new ResponseBean();
1357
+        ResponseBean responseBean = new ResponseBean();
1326 1358
 
1327
-        TaFeedback taFeedback= taFeedbackMapper.propertyHistoryDdetails(id);
1328
-        List<String> img= taFeedbackImgMapper.selectImg(taFeedback.getId());
1359
+        TaFeedback taFeedback = taFeedbackMapper.propertyHistoryDdetails(id);
1360
+        List<String> img = taFeedbackImgMapper.selectImg(taFeedback.getId());
1329 1361
         taFeedback.setTaFeedbackImgLsit(img);
1330 1362
         responseBean.addSuccess(taFeedback);
1331 1363
         return responseBean;
1332 1364
     }
1365
+    public ResponseBean getRelationAll(UserElement userElement) {
1366
+        ResponseBean responseBean = new ResponseBean();
1367
+
1368
+        // 1.查询出当前用户的,期、楼栋、单元、楼层、户号
1369
+        // 2. 根据 期、楼栋、单元、楼层、户号、小区id,查询 审核表 得到审核记录
1370
+
1371
+        TaUserVerify userVerify = taUserVerifyMapper.selectByPrimaryKey(userElement.getUserVerifyId());
1372
+        List<TaUser> userList = taUserMapper.selectHouseRelationUserList(userElement.getCommunityId(), userVerify.getPhaseId(), userVerify.getBuildingId(), userVerify.getUnitId(), userVerify.getLevelId(), userVerify.getRoomNoId());
1373
+
1374
+        userList.stream().forEach(e-> {
1375
+            // 如果有人脸图片,则显示人脸图片信息
1376
+            if (StringUtils.isNotBlank(e.getFaceImg())) {
1377
+                e.setHeadPortrait(e.getFaceImg());
1378
+            }
1379
+        });
1380
+
1381
+        responseBean.addSuccess(userList);
1382
+        return responseBean;
1383
+    }
1384
+
1385
+    @Override
1386
+    public ResponseBean switchoverOwner(UserElement userElement, Integer relationUserVerifyId) {
1387
+        ResponseBean responseBean = new ResponseBean();
1388
+
1389
+        TaUserVerify taUserVerify = taUserVerifyMapper.selectByPrimaryKey(userElement.getUserVerifyId());
1390
+        if (null == taUserVerify) {
1391
+            responseBean.addError("房产审核记录不存在!");
1392
+            return responseBean;
1393
+        }
1394
+        if (taUserVerify.getRoleId().intValue() != Constant.OWNER_ID.intValue()) {
1395
+            responseBean.addError("当前用户不是户主!");
1396
+            return responseBean;
1397
+        }
1398
+        if (!taUserVerify.getVerifyStatus().equals(Constant.APPROVED)) {
1399
+            responseBean.addError("被切换的用户,必须是房产审核通过的!");
1400
+            return responseBean;
1401
+        }
1402
+
1403
+        // 查询审核id,是否在这个房产下的
1404
+        TaUserVerify relationUserVerify = taUserVerifyMapper.selectChcekInHouseUserVerify(userElement.getCommunityId(), taUserVerify.getPhaseId(), taUserVerify.getBuildingId(), taUserVerify.getUnitId(), taUserVerify.getLevelId(), taUserVerify.getRoomNoId(), relationUserVerifyId);
1405
+        if (null == relationUserVerify) {
1406
+            responseBean.addError("该房产下面没有此房产审核记录!");
1407
+            return responseBean;
1408
+        }
1409
+
1410
+        if (relationUserVerify.getRoleId().intValue() != Constant.RELATION_ID.intValue()) {
1411
+            responseBean.addError("被切换的用户,不是家属!");
1412
+            return responseBean;
1413
+        }
1414
+
1415
+        // 业主切换为家属
1416
+        taUserVerify.setRoleId(Constant.RELATION_ID);
1417
+        taUserVerifyMapper.updateByPrimaryKeySelective(taUserVerify);
1418
+
1419
+        // 家属切换为业主
1420
+        relationUserVerify.setRoleId(Constant.OWNER_ID);
1421
+        taUserVerifyMapper.updateByPrimaryKeySelective(relationUserVerify);
1422
+
1423
+
1424
+        responseBean.addSuccess("操作成功");
1425
+        return responseBean;
1426
+    }
1333 1427
 }

+ 10
- 2
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/TaVistorServiceImpl.java Dosyayı Görüntüle

@@ -7,6 +7,7 @@ import com.community.commom.session.UserElement;
7 7
 import com.community.commom.hk.HKOpenApi;
8 8
 import com.community.huiju.dao.*;
9 9
 import com.community.huiju.model.*;
10
+import com.community.huiju.service.IHKService;
10 11
 import com.community.huiju.service.TaVistorServiceI;
11 12
 import com.google.common.collect.Maps;
12 13
 import lombok.extern.slf4j.Slf4j;
@@ -50,6 +51,12 @@ public class TaVistorServiceImpl implements TaVistorServiceI {
50 51
     @Autowired
51 52
     private ToCommunitiesMapper toCommunitiesMapper;
52 53
 
54
+    @Autowired
55
+    private TaUserHkMapper taUserHkMapper;
56
+
57
+    @Autowired
58
+    private IHKService ihkService;
59
+
53 60
 
54 61
     @Override
55 62
     @Transactional(rollbackFor = Exception.class)
@@ -147,10 +154,11 @@ public class TaVistorServiceImpl implements TaVistorServiceI {
147 154
         // 获取设备树,里面有 opUserId
148 155
         TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(communityId);
149 156
 
150
-        TaUser taUser = taUserMapper.selectByPrimaryKey(userId);
157
+        TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(userElement.getUserVerifyId(), communityId);
158
+
151 159
         String result = HKOpenApi.temporaryRegister(visitor.getVisitorName(),visitor.getVisitorTel(),
152 160
                 Integer.valueOf(visitor.getVisitorNum()),visitor.getVisitorStartTime().getTime(),
153
-                visitor.getVisitorEndTime().getTime(),taUser.getHkUserId(), tpEquipmentTree.getOpUserUuid(), tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer());
161
+                visitor.getVisitorEndTime().getTime(),taUserHk.getHkUserId(), tpEquipmentTree.getOpUserUuid(), tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer());
154 162
 
155 163
         JSONObject resultJSON = JSONObject.parseObject(result);
156 164
         int errorCode = resultJSON.getInteger("errorCode");

+ 428
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/impl/userDataHKsiteImpl.java Dosyayı Görüntüle

@@ -0,0 +1,428 @@
1
+package com.community.huiju.service.impl;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.beust.jcommander.internal.Lists;
5
+import com.beust.jcommander.internal.Maps;
6
+import com.community.commom.hk.HKOpenApi;
7
+import com.community.commom.mode.ResponseBean;
8
+import com.community.commom.uuid.IdGen;
9
+import com.community.huiju.common.messagePush;
10
+import com.community.huiju.dao.*;
11
+import com.community.huiju.exception.WisdomException;
12
+import com.community.huiju.model.*;
13
+import com.community.huiju.service.IHKService;
14
+import com.community.huiju.service.userDataHKsiteI;
15
+import lombok.extern.slf4j.Slf4j;
16
+import org.springframework.beans.factory.annotation.Autowired;
17
+import org.springframework.stereotype.Service;
18
+import org.springframework.transaction.annotation.Transactional;
19
+import sun.misc.BASE64Encoder;
20
+
21
+import java.io.ByteArrayOutputStream;
22
+import java.io.IOException;
23
+import java.io.InputStream;
24
+import java.net.HttpURLConnection;
25
+import java.net.URL;
26
+import java.text.ParseException;
27
+import java.text.SimpleDateFormat;
28
+import java.time.LocalDate;
29
+import java.util.*;
30
+import java.util.stream.Collectors;
31
+
32
+
33
+@Service
34
+@Slf4j
35
+@Transactional(rollbackFor = Exception.class)
36
+public class userDataHKsiteImpl  implements userDataHKsiteI {
37
+
38
+    @Autowired
39
+    private TaUserVerifyMapper taUserVerifyMapper;
40
+
41
+    @Autowired
42
+    private TaUserMapper taUserMapper;
43
+
44
+    @Autowired
45
+    private TpUnitHkSettingMapper tpUnitHkSettingMapper;
46
+
47
+
48
+    @Autowired
49
+    private TpEquipmentTreeMapper tpEquipmentTreeMapper;
50
+
51
+    private IdGen idGen = IdGen.get();
52
+
53
+    @Autowired
54
+    private TaUserHkMapper taUserHkMapper;
55
+
56
+    @Autowired
57
+    private TpEquipmentMapper tpEquipmentMapper;
58
+
59
+
60
+    @Autowired
61
+    private TpConfigurationMapper tpConfigurationMapper;
62
+
63
+    @Autowired
64
+    private TaFaceMapper taFaceMapper;
65
+
66
+    @Autowired
67
+    private TpMessageMapper tpMessageMapper;
68
+
69
+    @Autowired
70
+    private IHKService ihkService;
71
+
72
+    @Override
73
+    public ResponseBean cleanHKdata(Integer communityId) {
74
+        ResponseBean responseBean = new ResponseBean();
75
+        //根据小区id查询审核数据
76
+        List<TaUserVerify> userVerifyList = taUserVerifyMapper.selectByCommunityId(communityId);
77
+
78
+        int i = 1;
79
+        for (TaUserVerify taUserVerify : userVerifyList){
80
+            log.info("当前编号:{}, 人员审核id:{}", i, taUserVerify.getId());
81
+            //重新构建海康和我们的关系
82
+            TaUserHk taUserHk = taUserHkMapper.selectByUserVerifyIdAndCommunityId(taUserVerify.getId(), taUserVerify.getCommunityId());
83
+            if (null == taUserHk) {
84
+                buildHKData(taUserVerify);
85
+            }
86
+        }
87
+
88
+        return responseBean;
89
+    }
90
+
91
+    private void buildHKData(TaUserVerify taUserVerify) {
92
+
93
+        TaUserHk taUserHk = new TaUserHk();
94
+        taUserHk.setHkPersonNo(idGen.nextId());
95
+
96
+        //查询人脸信息
97
+        TaFace taFace = taFaceMapper.getByUserVerifyId(taUserVerify.getId());
98
+
99
+        TaUser taUser = taUserMapper.selectByPrimaryKey(taUserVerify.getUserId());
100
+
101
+        // 海康权限信息
102
+        TpUnitHkSetting unitHkSetting = getUnitHkSetting(taUserVerify.getCommunityId(), taUserVerify.getUnitId());
103
+        TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(taUserVerify.getCommunityId());
104
+        // 开卡 卡号
105
+        long cardNo = System.currentTimeMillis();
106
+        // 添加卡片
107
+        Map<String,Object> addCardsMap = new HashMap<>();
108
+        addCardsMap.put("secret", tpEquipmentTree.getSecret());
109
+        addCardsMap.put("appkey", tpEquipmentTree.getAppkey());
110
+        addCardsMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
111
+        addCardsMap.put("startCardNo", cardNo);
112
+        addCardsMap.put("endCardNo", cardNo);
113
+        addCardsMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
114
+        String addCardsJSON = HKOpenApi.addCards(addCardsMap);
115
+        JSONObject addCardsJsonObject = JSONObject.parseObject(addCardsJSON);
116
+        Integer addCardsResultCode = addCardsJsonObject.getInteger("errorCode");
117
+        if (0 != addCardsResultCode) {
118
+            throw new RuntimeException(addCardsJsonObject.getString("errorMessage"));
119
+        }
120
+
121
+
122
+
123
+        // =================== 添加人员 ===========================
124
+        Map<String, Object> parUser = Maps.newHashMap();
125
+        parUser.put("personNo", taUserHk.getHkPersonNo());
126
+        parUser.put("personName", taUser.getUserName());
127
+        // parUser.put("phoneNo", user.getLoginName());
128
+        parUser.put("remark", taUser.getLoginName());
129
+        parUser.put("deptUuid", unitHkSetting.getDepartmentId());
130
+        parUser.put("secret", tpEquipmentTree.getSecret());
131
+        parUser.put("appkey", tpEquipmentTree.getAppkey());
132
+        parUser.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
133
+        parUser.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
134
+        if (null != taFace){
135
+            try {
136
+                parUser.put("facePhoto", encodeImageToBase64(new URL(taFace.getFaceImg())));
137
+            } catch (Exception e) {
138
+                log.info("解析图片出错");
139
+                e.printStackTrace();
140
+            }
141
+            parUser.put("cardNo", cardNo + "");
142
+        }
143
+
144
+        Map<String, Object> resultMap = JSONObject.parseObject(HKOpenApi.addUser(parUser), HashMap.class);
145
+
146
+
147
+        Integer errorCode = (Integer) resultMap.get("errorCode");
148
+        if (errorCode != 0) {
149
+            throw new RuntimeException(String.valueOf(resultMap.get("errorMessage")));
150
+        }
151
+        Map<String, Object> resultDataMap = (Map<String, Object>) resultMap.get("data");
152
+        // 海康人员ID
153
+        Integer personId = (Integer) resultDataMap.get("personId");
154
+        taUserHk.setHkUserId(personId);
155
+
156
+        // =================== 添加卡片 =====================
157
+
158
+
159
+
160
+        taUserHk.setHkCardNo(cardNo + "");
161
+
162
+        taUserHk.setCommunityId(taUserVerify.getCommunityId());
163
+        taUserHk.setTaUserId(taUserVerify.getId());
164
+        taUserHk.setCreateDate(new Date());
165
+        taUserHk.setCreateUser(1);
166
+        taUserHkMapper.insertSelective(taUserHk);
167
+        // ============== 人员绑定卡片 ======================
168
+
169
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
170
+        LocalDate today = LocalDate.now();
171
+        int year = today.getYear();
172
+        // 加上20, 表示加上20年,默认
173
+        year += 20;
174
+
175
+        int month = today.getMonthValue();
176
+        int day = today.getDayOfMonth();
177
+
178
+        Long time = null;
179
+        try {
180
+            time = formatter.parse(year + "-" + month + "-" + day).getTime();
181
+        } catch (ParseException e) {
182
+            e.printStackTrace();
183
+        }
184
+
185
+        if (null == taFace){
186
+            // 开卡
187
+            Map<String, Object> parOpenCard = Maps.newHashMap();
188
+            parOpenCard.put("personId", taUserHk.getHkUserId());
189
+            parOpenCard.put("cardNo", Long.valueOf(cardNo));
190
+            parOpenCard.put("startTime", System.currentTimeMillis());
191
+            parOpenCard.put("endTime", time);
192
+            parOpenCard.put("secret", tpEquipmentTree.getSecret());
193
+            parOpenCard.put("appkey", tpEquipmentTree.getAppkey());
194
+            parOpenCard.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
195
+            parOpenCard.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
196
+            JSONObject openCardJSON = JSONObject.parseObject(HKOpenApi.openCard(parOpenCard));
197
+            int code = (int) openCardJSON.get("errorCode");
198
+            if (code != 0) {
199
+                String errorMessage = String.valueOf(openCardJSON.get("errorMessage"));
200
+                log.error("人员绑定开卡失败! {}", errorMessage);
201
+                throw new RuntimeException(errorMessage);
202
+            }
203
+        }
204
+
205
+        // 存在人脸的时候才下发人脸 卡权限/人脸权限
206
+        if (null != taFace) {
207
+
208
+            //=================== 下发可是对讲卡权限 =====================
209
+
210
+            //--------- 可视对讲 ----------
211
+
212
+            Map<String,Object> addOutDoorAuthMap = Maps.newHashMap();
213
+            // app用户权限勿动 unitHkSetting.getPermissionId()
214
+            addOutDoorAuthMap.put("authName", taUser.getUserName()+taUserVerify.getId());
215
+            addOutDoorAuthMap.put("personIds", Arrays.asList(taUserHk.getHkUserId()));
216
+            addOutDoorAuthMap.put("secret", tpEquipmentTree.getSecret());
217
+            addOutDoorAuthMap.put("appkey", tpEquipmentTree.getAppkey());
218
+            addOutDoorAuthMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
219
+            addOutDoorAuthMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
220
+
221
+            // 单元门口机
222
+            List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(taUserVerify.getCommunityId(), taUserVerify.getUnitId(), 3);
223
+            // 可是对讲设备号
224
+            List<String> visualList = visualEquipments.stream()
225
+                    .map(e-> tpConfigurationMapper.selectByPrimaryKey(e.getUuidId()).getConfigurationValue())
226
+                    .collect(Collectors.toList());
227
+
228
+            addOutDoorAuthMap.put("longNums", visualList); // visualList
229
+            // 可视对讲下发 权限
230
+            String addOutDoorAuthJSONString = HKOpenApi.addOutDoorAuth(addOutDoorAuthMap);
231
+            JSONObject addOutDoorAuthJSON = JSONObject.parseObject(addOutDoorAuthJSONString);
232
+            int addOutDoorAuthJSONCode = (int) addOutDoorAuthJSON.get("errorCode");
233
+            if (addOutDoorAuthJSONCode != 0 ) {
234
+                String errorMessage = String.valueOf(addOutDoorAuthJSON.get("errorMessage"));
235
+                log.error("可视对讲下发 权限失败! {}", errorMessage);
236
+                throw new RuntimeException(errorMessage);
237
+            }
238
+
239
+            try {
240
+                Thread.sleep(2000);
241
+            } catch (InterruptedException e) {
242
+                e.printStackTrace();
243
+            }
244
+
245
+
246
+            //================ 可是对讲人脸权限下发 ==============
247
+
248
+            // 可视对讲时 指定人员人脸权限下载
249
+            List<Integer> userIdList = new ArrayList<>();
250
+            userIdList.add(taUserHk.getHkUserId());
251
+
252
+            HKOpenApi.visualIntercom(tpEquipmentTree.getOpUserUuid(), 1, userIdList, visualList, tpEquipmentTree.getAppkey(), tpEquipmentTree.getSecret(), tpEquipmentTree.getHttpServer());
253
+
254
+
255
+            // 下发门禁权限
256
+            ihkService.addAuthoritiesAnddownloadAuthorityByPersonIds(taUserVerify, taUserHk, tpEquipmentTree);
257
+
258
+            // 下发门禁人脸
259
+            ihkService.downloadFaceAndFingerInfos(tpEquipmentTree, taUserVerify, taUserHk);
260
+
261
+        }
262
+
263
+
264
+        TaUserVerify tempVerify = taUserVerifyMapper.selectChcekNotMessage(tpEquipmentTree.getCommunityId(), taUserVerify.getId());
265
+        if (null == tempVerify) {
266
+            // 推送默认消息
267
+            sendMessage(taUserVerify);
268
+        }
269
+
270
+
271
+    }
272
+
273
+    /**
274
+     * 海康权限组
275
+     * @return
276
+     */
277
+    private TpUnitHkSetting getUnitHkSetting(Integer communityId, Integer unitId) {
278
+        TpUnitHkSetting tpUnitHkSetting = tpUnitHkSettingMapper.selectByCommunityIdAndUnitId(communityId, unitId);
279
+        if (null == tpUnitHkSetting) {
280
+            throw new WisdomException("权限组未配置");
281
+        }
282
+        return tpUnitHkSetting;
283
+    }
284
+
285
+    public String encodeImageToBase64(URL url) throws Exception {
286
+        //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
287
+        System.out.println("图片的路径为:" + url.toString());
288
+        //打开链接
289
+        HttpURLConnection conn = null;
290
+        try {
291
+            conn = (HttpURLConnection) url.openConnection();
292
+        //设置请求方式为"GET"
293
+            conn.setRequestMethod("GET");
294
+        //超时响应时间为5秒
295
+            conn.setConnectTimeout(5 * 1000);
296
+        //通过输入流获取图片数据
297
+            InputStream inStream = conn.getInputStream();
298
+        //得到图片的二进制数据,以二进制封装得到数据,具有通用性
299
+            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
300
+        //创建一个Buffer字符串
301
+            byte[] buffer = new byte[1024];
302
+        //每次读取的字符串长度,如果为-1,代表全部读取完毕
303
+            int len = 0;
304
+        //使用一个输入流从buffer里把数据读取出来
305
+            while ((len = inStream.read(buffer)) != -1) {
306
+        //用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
307
+                outStream.write(buffer, 0, len);
308
+            }
309
+        //关闭输入流
310
+            inStream.close();
311
+            byte[] data = outStream.toByteArray();
312
+        //对字节数组Base64编码
313
+            BASE64Encoder encoder = new BASE64Encoder();
314
+            String base64 = encoder.encode(data);
315
+            System.out.println("网络文件[{}]编码成base64字符串:[{}]"+url.toString()+base64);
316
+            return base64;//返回Base64编码过的字节数组字符串
317
+        } catch (IOException e) {
318
+            e.printStackTrace();
319
+            throw new Exception("图片上传失败,请联系客服!");
320
+        }
321
+    }
322
+
323
+    @Override
324
+    public ResponseBean cleanMessage(Integer communityId) {
325
+        ResponseBean responseBean = new ResponseBean();
326
+
327
+        // 查询所有没有关联消息的审核数据
328
+
329
+         List<TaUserVerify> userVerifyList = taUserVerifyMapper.selectNotMessage(communityId);
330
+         // TaUserVerify tempUserVerify = taUserVerifyMapper.selectByPrimaryKey(1151);
331
+         // List<TaUserVerify> userVerifyList = Lists.newArrayList(tempUserVerify);
332
+        for (TaUserVerify userVerify : userVerifyList) {
333
+            TaUserVerify tempVerify = taUserVerifyMapper.selectChcekNotMessage(userVerify.getCommunityId(), userVerify.getId());
334
+            if (null == tempVerify) {
335
+                // 推送默认消息
336
+                sendMessage(userVerify);
337
+            }
338
+        }
339
+
340
+        return responseBean;
341
+    }
342
+
343
+    /**
344
+     * 给人员推送默认消息
345
+     * @param userVerify
346
+     */
347
+    private void sendMessage(TaUserVerify userVerify) {
348
+
349
+        //审核通过后推送消息(临时数据)
350
+        String[] messageArr= new messagePush().messagePushAll();
351
+        Date createDate = new Date();
352
+        for (String count:messageArr) {
353
+            TpMessage message = new TpMessage();
354
+            message.setCommunityId(userVerify.getCommunityId());
355
+            message.setMessageType("9");
356
+            message.setAdviceType("1");
357
+            message.setModelType("1");
358
+            message.setUuid(userVerify.getId());
359
+            message.setUuidType("1");
360
+            message.setSource("1");
361
+            message.setMessageContent(count);
362
+            message.setStatus("1");
363
+            message.setResult("");
364
+            message.setMeaasgeTypeId("");
365
+            message.setReadStatus("0");
366
+            message.setCreateUser(userVerify.getUserId());
367
+            message.setCreateDate(createDate);
368
+            tpMessageMapper.insert(message);
369
+        }
370
+    }
371
+
372
+    @Override
373
+    public ResponseBean cleanCardPersionHk(Integer communityId) {
374
+        ResponseBean responseBean = new ResponseBean();
375
+
376
+        //根据小区id查询审核数据
377
+        List<TaUserHk> taUserHkList = taUserHkMapper.selectByCommunityId(communityId);
378
+        for (TaUserHk taUserHk : taUserHkList) {
379
+
380
+            TaUserVerify userVerify = taUserVerifyMapper.selectByPrimaryKey(taUserHk.getTaUserId());
381
+            if (null == userVerify){
382
+                continue;
383
+            }
384
+            TaUser taUser = taUserMapper.selectByPrimaryKey(userVerify.getUserId());
385
+
386
+            // 海康权限信息
387
+            TpUnitHkSetting unitHkSetting = getUnitHkSetting(userVerify.getCommunityId(), userVerify.getUnitId());
388
+            TpEquipmentTree tpEquipmentTree = tpEquipmentTreeMapper.selectByCommunityId(userVerify.getCommunityId());
389
+
390
+            //--------- 可视对讲 ----------
391
+
392
+            Map<String,Object> addOutDoorAuthMap = Maps.newHashMap();
393
+            // app用户权限勿动 unitHkSetting.getPermissionId()
394
+            addOutDoorAuthMap.put("authName", taUser.getUserName()+userVerify.getId());
395
+            addOutDoorAuthMap.put("personIds", Arrays.asList(taUserHk.getHkUserId()));
396
+            addOutDoorAuthMap.put("secret", tpEquipmentTree.getSecret());
397
+            addOutDoorAuthMap.put("appkey", tpEquipmentTree.getAppkey());
398
+            addOutDoorAuthMap.put("openapi_ip_port_http", tpEquipmentTree.getHttpServer());
399
+            addOutDoorAuthMap.put("opUserUuid", tpEquipmentTree.getOpUserUuid());
400
+
401
+            // 单元门口机
402
+            List<TpEquipment> visualEquipments = tpEquipmentMapper.selectByCommunityIdAndUnitId(userVerify.getCommunityId(), userVerify.getUnitId(), 3);
403
+            // 可是对讲设备号
404
+            List<String> visualList = visualEquipments.stream()
405
+                    .map(e-> tpConfigurationMapper.selectByPrimaryKey(e.getUuidId()).getConfigurationValue())
406
+                    .collect(Collectors.toList());
407
+
408
+            addOutDoorAuthMap.put("longNums", visualList); // visualList
409
+            // 可视对讲下发 权限
410
+            String addOutDoorAuthJSONString = HKOpenApi.addOutDoorAuth(addOutDoorAuthMap);
411
+            JSONObject addOutDoorAuthJSON = JSONObject.parseObject(addOutDoorAuthJSONString);
412
+            int addOutDoorAuthJSONCode = (int) addOutDoorAuthJSON.get("errorCode");
413
+            if (addOutDoorAuthJSONCode != 0 ) {
414
+                String errorMessage = String.valueOf(addOutDoorAuthJSON.get("errorMessage"));
415
+                log.error("可视对讲下发 权限失败! {}", errorMessage);
416
+                throw new RuntimeException(errorMessage);
417
+            }
418
+
419
+            try {
420
+                Thread.sleep(2000);
421
+            } catch (InterruptedException e) {
422
+                e.printStackTrace();
423
+            }
424
+        }
425
+
426
+        return responseBean;
427
+    }
428
+}

+ 21
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/service/userDataHKsiteI.java Dosyayı Görüntüle

@@ -0,0 +1,21 @@
1
+package com.community.huiju.service;
2
+
3
+import com.community.commom.mode.ResponseBean;
4
+
5
+public interface userDataHKsiteI {
6
+    ResponseBean cleanHKdata(Integer communityId);
7
+
8
+    /**
9
+     * 消息清洗
10
+     * @param communityId
11
+     * @return
12
+     */
13
+    ResponseBean cleanMessage(Integer communityId);
14
+
15
+    /**
16
+     * 清洗数据,人员可是对讲卡权限下发
17
+     * @param communityId
18
+     * @return
19
+     */
20
+    ResponseBean cleanCardPersionHk(Integer communityId);
21
+}

+ 62
- 0
CODE/smart-community/app-api/src/main/java/com/community/huiju/siteutil/userDataHKsite.java Dosyayı Görüntüle

@@ -0,0 +1,62 @@
1
+package com.community.huiju.siteutil;
2
+
3
+import com.community.commom.constant.Constant;
4
+import com.community.commom.mode.ResponseBean;
5
+import com.community.commom.session.UserElement;
6
+import com.community.huiju.service.ISenCartId;
7
+import com.community.huiju.service.userDataHKsiteI;
8
+import io.swagger.annotations.Api;
9
+import io.swagger.annotations.ApiImplicitParam;
10
+import io.swagger.annotations.ApiImplicitParams;
11
+import io.swagger.annotations.ApiOperation;
12
+import lombok.extern.slf4j.Slf4j;
13
+import org.springframework.beans.factory.annotation.Autowired;
14
+import org.springframework.cloud.context.config.annotation.RefreshScope;
15
+import org.springframework.web.bind.annotation.*;
16
+
17
+import javax.servlet.http.HttpSession;
18
+
19
+@RestController
20
+@RefreshScope
21
+@RequestMapping("/")
22
+@Api(value = "现场调试工具", description = "现场调试工具")
23
+@Slf4j
24
+public class userDataHKsite {
25
+
26
+
27
+    @Autowired
28
+    private userDataHKsiteI userDataHKsite;
29
+
30
+    @ApiOperation(value = "清洗海康人员录入人脸信息", notes = "清洗海康人员录入人脸信息")
31
+    @ApiImplicitParams({
32
+            @ApiImplicitParam(paramType = "path", dataType = "Integer", name = "communityId", value = "小区ID") })
33
+    @RequestMapping(value = "/site/{communityId}",method = RequestMethod.GET)
34
+    public ResponseBean sitePersionData(@PathVariable("communityId") Integer communityId){
35
+        ResponseBean responseBean = new ResponseBean();
36
+        //查询出审核表中的数据并建人脸
37
+        responseBean = userDataHKsite.cleanHKdata(communityId);
38
+        responseBean.addSuccess("ok");
39
+        return responseBean;
40
+    }
41
+
42
+    @ApiOperation(value = "清洗人员默认消息", notes = "清洗人员默认消息")
43
+    @ApiImplicitParams({
44
+            @ApiImplicitParam(paramType = "path", dataType = "Integer", name = "communityId", value = "小区ID") })
45
+    @RequestMapping(value = "/site/message/{communityId}",method = RequestMethod.GET)
46
+    public ResponseBean sitePersionMessageData(@PathVariable("communityId") Integer communityId){
47
+        ResponseBean responseBean = new ResponseBean();
48
+        //查询出审核表中的数据并建人脸
49
+        responseBean = userDataHKsite.cleanMessage(communityId);
50
+        responseBean.addSuccess("ok");
51
+        return responseBean;
52
+    }
53
+
54
+    @ApiOperation(value = "清洗人员可是对讲卡权限", notes = "清洗人员可是对讲卡权限")
55
+    @ApiImplicitParams({
56
+            @ApiImplicitParam(paramType = "path", dataType = "Integer", name = "communityId", value = "小区ID") })
57
+    @RequestMapping(value = "/site/permission/{communityId}",method = RequestMethod.GET)
58
+    public ResponseBean cleanCardPermissionHk(@PathVariable("communityId") Integer communityId){
59
+        ResponseBean responseBean = userDataHKsite.cleanCardPersionHk(communityId);
60
+        return responseBean;
61
+    }
62
+}

+ 25
- 0
CODE/smart-community/app-api/src/main/resources/mapper/TaUserMapper.xml Dosyayı Görüntüle

@@ -414,4 +414,29 @@
414 414
     where openid = #{openid,jdbcType=INTEGER}
415 415
   </select>
416 416
 
417
+  <select id="selectHouseRelationUserList" resultType="com.community.huiju.model.TaUser" >
418
+    SELECT
419
+    tu.id as id,
420
+    tu.gender as gender,
421
+    tu.user_name as userName,
422
+    tu.login_name as loginName,
423
+    tu.head_portrait as headPortrait,
424
+    tu.face_status as faceStatus,
425
+    tuv.verify_status as userVerifyStatus,
426
+    tuv.id as userVerifyId,
427
+    tsr.role_name as roleName,
428
+    tf.face_img as faceImg
429
+    FROM ta_user tu INNER JOIN ta_user_verify tuv ON tu.id = tuv.user_id
430
+    INNER JOIN ta_sys_role tsr ON tuv.role_id = tsr.id
431
+    LEFT JOIN ta_face tf ON tf.ta_user_verify_id = tuv.id
432
+    WHERE
433
+	tuv.community_id = #{communityId}
434
+	AND tuv.phase_id = #{phaseId}
435
+	AND tuv.building_id = #{buildingId}
436
+	AND tuv.unit_id = #{unitId}
437
+	AND tuv.`level_id` = #{levelId}
438
+	AND tuv.room_no_id = #{roomNoId}
439
+	AND tuv.role_id = 3
440
+  </select>
441
+
417 442
 </mapper>

+ 14
- 1
CODE/smart-community/app-api/src/main/resources/mapper/TaUserVerifyMapper.xml Dosyayı Görüntüle

@@ -267,7 +267,7 @@
267 267
     from ta_user_verify tuv
268 268
     where tuv.user_id = #{userId,jdbcType=INTEGER}
269 269
   </select>
270
-  <select id="selectCommunityAndAddress" resultType="com.community.huiju.model.TaUserVerify">
270
+  <select id="selectCommunityAndAddress" resultMap="BaseResultMap">
271 271
     select
272 272
     <include refid="Base_Column_List"/>
273 273
     from ta_user_verify
@@ -282,4 +282,17 @@
282 282
       and verify_status = #{verifyStatus}
283 283
     </if>
284 284
   </select>
285
+
286
+  <select id="selectChcekInHouseUserVerify" resultMap="BaseResultMap">
287
+    select
288
+    <include refid="Base_Column_List"/>
289
+    from ta_user_verify
290
+    where community_id = #{communityId,jdbcType=INTEGER}
291
+    and phase_id = #{phaseId,jdbcType=INTEGER}
292
+    and building_id = #{buildingId,jdbcType=INTEGER}
293
+    and unit_id = #{unitId,jdbcType=INTEGER}
294
+    and level_id = #{levelId,jdbcType=INTEGER}
295
+    and room_no_id = #{roomNoId,jdbcType=INTEGER}
296
+    and id = #{userVerifyId}
297
+  </select>
285 298
 </mapper>

+ 93
- 0
CODE/smart-community/app-api/src/main/resources/mapper/TpUnitHkSettingMapper.xml Dosyayı Görüntüle

@@ -0,0 +1,93 @@
1
+<?xml version="1.0" encoding="UTF-8" ?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
3
+<mapper namespace="com.community.huiju.dao.TpUnitHkSettingMapper" >
4
+  <resultMap id="BaseResultMap" type="com.community.huiju.model.TpUnitHkSetting" >
5
+    <id column="id" property="id" jdbcType="INTEGER" />
6
+    <result column="community_id" property="communityId" jdbcType="INTEGER" />
7
+    <result column="unit_id" property="unitId" jdbcType="INTEGER" />
8
+    <result column="permission_id" property="permissionId" jdbcType="VARCHAR" />
9
+    <result column="department_id" property="departmentId" jdbcType="VARCHAR" />
10
+  </resultMap>
11
+  <sql id="Base_Column_List" >
12
+    id, community_id, unit_id, permission_id, department_id
13
+  </sql>
14
+  <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
15
+    select 
16
+    <include refid="Base_Column_List" />
17
+    from tp_unit_hk_setting
18
+    where id = #{id,jdbcType=INTEGER}
19
+  </select>
20
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
21
+    delete from tp_unit_hk_setting
22
+    where id = #{id,jdbcType=INTEGER}
23
+  </delete>
24
+  <insert id="insert" parameterType="com.community.huiju.model.TpUnitHkSetting" >
25
+    insert into tp_unit_hk_setting (id, community_id, unit_id, 
26
+      permission_id, department_id)
27
+    values (#{id,jdbcType=INTEGER}, #{communityId,jdbcType=INTEGER}, #{unitId,jdbcType=INTEGER}, 
28
+      #{permissionId,jdbcType=VARCHAR}, #{departmentId,jdbcType=VARCHAR})
29
+  </insert>
30
+  <insert id="insertSelective" parameterType="com.community.huiju.model.TpUnitHkSetting" >
31
+    insert into tp_unit_hk_setting
32
+    <trim prefix="(" suffix=")" suffixOverrides="," >
33
+      <if test="id != null" >
34
+        id,
35
+      </if>
36
+      <if test="communityId != null" >
37
+        community_id,
38
+      </if>
39
+      <if test="unitId != null" >
40
+        unit_id,
41
+      </if>
42
+      <if test="permissionId != null" >
43
+        permission_id,
44
+      </if>
45
+      <if test="departmentId != null" >
46
+        department_id,
47
+      </if>
48
+    </trim>
49
+    <trim prefix="values (" suffix=")" suffixOverrides="," >
50
+      <if test="id != null" >
51
+        #{id,jdbcType=INTEGER},
52
+      </if>
53
+      <if test="communityId != null" >
54
+        #{communityId,jdbcType=INTEGER},
55
+      </if>
56
+      <if test="unitId != null" >
57
+        #{unitId,jdbcType=INTEGER},
58
+      </if>
59
+      <if test="permissionId != null" >
60
+        #{permissionId,jdbcType=VARCHAR},
61
+      </if>
62
+      <if test="departmentId != null" >
63
+        #{departmentId,jdbcType=VARCHAR},
64
+      </if>
65
+    </trim>
66
+  </insert>
67
+  <update id="updateByPrimaryKeySelective" parameterType="com.community.huiju.model.TpUnitHkSetting" >
68
+    update tp_unit_hk_setting
69
+    <set >
70
+      <if test="communityId != null" >
71
+        community_id = #{communityId,jdbcType=INTEGER},
72
+      </if>
73
+      <if test="unitId != null" >
74
+        unit_id = #{unitId,jdbcType=INTEGER},
75
+      </if>
76
+      <if test="permissionId != null" >
77
+        permission_id = #{permissionId,jdbcType=VARCHAR},
78
+      </if>
79
+      <if test="departmentId != null" >
80
+        department_id = #{departmentId,jdbcType=VARCHAR},
81
+      </if>
82
+    </set>
83
+    where id = #{id,jdbcType=INTEGER}
84
+  </update>
85
+  <update id="updateByPrimaryKey" parameterType="com.community.huiju.model.TpUnitHkSetting" >
86
+    update tp_unit_hk_setting
87
+    set community_id = #{communityId,jdbcType=INTEGER},
88
+      unit_id = #{unitId,jdbcType=INTEGER},
89
+      permission_id = #{permissionId,jdbcType=VARCHAR},
90
+      department_id = #{departmentId,jdbcType=VARCHAR}
91
+    where id = #{id,jdbcType=INTEGER}
92
+  </update>
93
+</mapper>

+ 7
- 1
CODE/smart-community/community-common/src/main/java/com/community/commom/hk/HKOpenApi.java Dosyayı Görüntüle

@@ -103,6 +103,12 @@ public class HKOpenApi {
103 103
         // parMap.put("phoneNo",map.get("phoneNo"));
104 104
         parMap.put("remark", map.get("remark"));
105 105
         parMap.put("deptUuid",map.get("deptUuid"));
106
+
107
+        if (null != map.get("cardNo")) {
108
+            parMap.put("facePhoto",map.get("facePhoto"));
109
+            parMap.put("cardNo",map.get("cardNo"));
110
+        }
111
+
106 112
         // parMap.put("cardNo",map.get("cardNo"));
107 113
         String params =  JSON.toJSONString(parMap);
108 114
         log.info("添加人员 请求参数:{}", params);
@@ -797,7 +803,7 @@ public class HKOpenApi {
797 803
             log.error("可视对讲人脸下发错误:{}", e);
798 804
             throw new RuntimeException("下发错误!");
799 805
         }
800
-        return null;
806
+        return data;
801 807
     }
802 808
     /**
803 809
      * 可视对讲 根据人员 ID 集添加权限并下发

+ 6
- 0
CODE/smart-community/property-api/src/main/java/com/community/huiju/model/TpBuildingOwnerInfo.java Dosyayı Görüntüle

@@ -162,4 +162,10 @@ public class TpBuildingOwnerInfo implements Serializable {
162 162
      */
163 163
     @TableField(exist = false)
164 164
     private Integer userVerifyId;
165
+
166
+    /**
167
+     * 记录上传文件时候,是 excel 第几行数据
168
+     */
169
+    @TableField(exist = false)
170
+    private Integer index;
165 171
 }

+ 36
- 2
CODE/smart-community/property-api/src/main/java/com/community/huiju/service/impl/BuildingOwnerInfoServiceImpl.java Dosyayı Görüntüle

@@ -564,7 +564,7 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
564 564
                     tpBuildingOwnerInfo.getBuildingId(), tpBuildingOwnerInfo.getUnitId(),
565 565
                     tpBuildingOwnerInfo.getLevelId(), tpBuildingOwnerInfo.getRoomNoId());
566 566
             if (null != hasUserVerify) {
567
-                throw new WisdomException("一户只能有1个户主");
567
+                throw new WisdomException(" Excel 第" + tpBuildingOwnerInfo.getIndex() + "行房间已存在户主,请修改为其他身份或删除原户主资料后再导入");
568 568
             }
569 569
         }
570 570
 
@@ -598,8 +598,40 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
598 598
         tpBuildingOwnerInfo.setTaUserVerifyId(taUserVerify.getId());
599 599
 
600 600
         tpBuildingOwnerInfoMapper.insert(tpBuildingOwnerInfo);
601
+
602
+        // 推送消息
603
+        sendMessage(taUserVerify);
601 604
     }
602
-    
605
+
606
+    /**
607
+     * 给人员推送默认消息
608
+     * @param userVerify
609
+     */
610
+    private void sendMessage(TaUserVerify userVerify) {
611
+
612
+        //审核通过后推送消息(临时数据)
613
+        String[] messageArr= new messagePush().messagePushAll();
614
+        LocalDateTime localDateTime = LocalDateTime.now();
615
+        for (String count:messageArr) {
616
+            Message message = new Message();
617
+            message.setCommunityId(userVerify.getCommunityId());
618
+            message.setMessageType("9");
619
+            message.setAdviceType("1");
620
+            message.setModelType("1");
621
+            message.setUuid(userVerify.getId());
622
+            message.setUuidType("1");
623
+            message.setSource("1");
624
+            message.setMessageContent(count);
625
+            message.setStatus("1");
626
+            message.setResult("");
627
+            message.setMeaasgeTypeId("");
628
+            message.setReadStatus("0");
629
+            message.setCreateUser(userVerify.getUserId());
630
+            message.setCreateDate(localDateTime);
631
+            messageMapper.insert(message);
632
+        }
633
+    }
634
+
603 635
     @Override
604 636
     public ResponseBean updataApprove(String paramets) {
605 637
         ResponseBean response = new ResponseBean();
@@ -745,6 +777,8 @@ public class BuildingOwnerInfoServiceImpl extends ServiceImpl<TpBuildingOwnerInf
745 777
                 checkOwnerInfo.setLevelName(tpRoomNo.getLevelName());
746 778
                 checkOwnerInfo.setRoomNoId(tpRoomNo.getId());
747 779
                 checkOwnerInfo.setRoomNoName(tpRoomNo.getName());
780
+                // 记录行数
781
+                checkOwnerInfo.setIndex(currentRow);
748 782
                 list.add(checkOwnerInfo);
749 783
             }
750 784
         }

+ 2
- 1
VUECODE/smart-operate-manage/src/views/banner/addBanner/index.vue Dosyayı Görüntüle

@@ -25,7 +25,7 @@
25 25
           :show-file-list="false"
26 26
           :on-success="handleAvatarSuccess"
27 27
           class="avatar-uploader"
28
-          action="http://106.14.20.193:8086/operate-api/uploadimage"
28
+          :action="uploadImgUrl"
29 29
           name="uploadFiles">
30 30
           <img v-if="imageUrl" :src="imageUrl" class="avatar">
31 31
           <i v-else class="el-icon-plus avatar-uploader-icon"/>
@@ -156,6 +156,7 @@ export default {
156 156
         bannerContent: '',
157 157
         bannerDescription: ''
158 158
       },
159
+      uploadImgUrl: process.env.BASE_API + '/uploadimage',
159 160
       dialogStatus: '',
160 161
       downloadLoading: false,
161 162
       formLabelWidth: '120px',

+ 2
- 1
VUECODE/smart-operate-manage/src/views/banner/ediBanner/index.vue Dosyayı Görüntüle

@@ -25,7 +25,7 @@
25 25
           :show-file-list="false"
26 26
           :on-success="handleAvatarSuccess"
27 27
           class="avatar-uploader"
28
-          action="http://106.14.20.193:8086/operate-api/uploadimage"
28
+          :action="uploadImgUrl"
29 29
           name="uploadFiles">
30 30
           <img v-if="imageUrl" :src="imageUrl" class="avatar">
31 31
           <i v-else class="el-icon-plus avatar-uploader-icon"/>
@@ -153,6 +153,7 @@ export default {
153 153
         bannerContent: '',
154 154
         bannerDescription: ''
155 155
       },
156
+      uploadImgUrl: process.env.BASE_API + '/uploadimage',
156 157
       dialogStatus: '',
157 158
       downloadLoading: false,
158 159
       formLabelWidth: '120px',

+ 2
- 1
VUECODE/smart-property-manage/src/views/banner/addBanner/index.vue Dosyayı Görüntüle

@@ -22,7 +22,7 @@
22 22
       <el-form-item :label-width="formLabelWidth" label="banner图 *">
23 23
         <el-upload
24 24
           class="avatar-uploader"
25
-          action="http://106.14.20.193:8086/property-api/uploadimage"
25
+          :action="uploadImgUrl"
26 26
           name="uploadFiles"
27 27
           :show-file-list="false"
28 28
           :on-success="handleAvatarSuccess">
@@ -149,6 +149,7 @@ export default {
149 149
         bannerContent: '',
150 150
         bannerDescription: ''
151 151
       },
152
+      uploadImgUrl: process.env.BASE_API + '/uploadimage',
152 153
       dialogStatus: '',
153 154
       downloadLoading: false,
154 155
       formLabelWidth: '120px',

+ 2
- 1
VUECODE/smart-property-manage/src/views/banner/ediBanner/index.vue Dosyayı Görüntüle

@@ -22,7 +22,7 @@
22 22
       <el-form-item :label-width="formLabelWidth" label="banner图">
23 23
         <el-upload
24 24
           class="avatar-uploader"
25
-          action="http://106.14.20.193:8086/property-api/uploadimage"
25
+          :action= "uploadImgUrl"
26 26
           name="uploadFiles"
27 27
           :show-file-list="false"
28 28
           :on-success="handleAvatarSuccess">
@@ -152,6 +152,7 @@ export default {
152 152
         bannerContent: '',
153 153
         bannerDescription: ''
154 154
       },
155
+      uploadImgUrl: process.env.BASE_API + '/uploadimage',
155 156
       dialogStatus: '',
156 157
       downloadLoading: false,
157 158
       formLabelWidth: '120px',

+ 2
- 1
VUECODE/smart-property-manage/src/views/social/transaction/reply/transactionreply.vue Dosyayı Görüntüle

@@ -82,7 +82,7 @@
82 82
           :on-success="handleSuccessContentImg"
83 83
           :file-list="contentImgList"
84 84
           name="uploadFiles"
85
-          action="http://106.14.20.193:8086/property-api/uploadimage"
85
+          :action="uploadImgUrl"
86 86
           list-type="picture-card">
87 87
           <i class="el-icon-plus"/>
88 88
         </el-upload>
@@ -124,6 +124,7 @@ export default {
124 124
         contentImg: [], 
125 125
         close: false  
126 126
       },
127
+      uploadImgUrl: process.env.BASE_API + '/uploadimage',
127 128
       contentImgList: [],
128 129
       dialogVisible: false,
129 130
       dialogImageUrl: '',

+ 2
- 1
VUECODE/smart-property-manage/src/views/social/transaction/transactionDetails.vue Dosyayı Görüntüle

@@ -44,7 +44,7 @@
44 44
           :on-success="handleSuccessContentImg"
45 45
           :file-list="contentImgList"
46 46
           name="uploadFiles"
47
-          action="http://106.14.20.193:8086/property-api/uploadimage"
47
+          :action="uploadImgUrl"
48 48
           list-type="picture-card">
49 49
           <i class="el-icon-plus"/>
50 50
         </el-upload>
@@ -89,6 +89,7 @@ export default {
89 89
         replyType: 1,
90 90
         replySum: '' 
91 91
       },
92
+      uploadImgUrl: process.env.BASE_API + '/uploadimage',
92 93
       dialogVisible: false,
93 94
       dialogImageUrl: '',
94 95
       contentImgList: [],