jiangping
2024-07-30 eea92f23bf8ead897f346ae6ccc8603ac039e566
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package com.doumee.api.business;
 
import com.doumee.api.BaseController;
import com.doumee.config.DataSyncConfig;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.haikang.model.param.request.AcsDeviceListRequest;
import com.doumee.core.haikang.model.param.request.EventSubRequest;
import com.doumee.core.haikang.model.param.request.ParkListRequest;
import com.doumee.core.haikang.model.param.request.PrivilegeGroupRequest;
import com.doumee.core.haikang.model.param.request.event.acs.EventAcsRequest;
import com.doumee.core.haikang.model.param.request.event.parks.EventParkRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmDataRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitIccmRequest;
import com.doumee.core.haikang.model.param.request.event.visit.EventVisitRequest;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.Member;
import com.doumee.service.business.impl.hksync.HkSyncDeviceServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncParkServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncPrivilegeServiceImpl;
import com.doumee.service.business.impl.hksync.HkSyncPushServiceImpl;
import com.doumee.service.business.impl.hksync.ferp.HkSyncOrgUserToHKServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
 
/**
 * @author 江蹄蹄
 * @date 2023/11/30 15:33
 */
@Api(tags = "海康数据同步接口")
@RestController
@RequestMapping("/business/hksync")
public class HkSyncController extends BaseController {
 
    @Autowired
    private HkSyncOrgUserToHKServiceImpl hkSyncOrgUserService;
    @Autowired
    private HkSyncDeviceServiceImpl hkSyncDeviceService;
    @Autowired
    private HkSyncParkServiceImpl hkSyncParkService;
    @Autowired
    private HkSyncPrivilegeServiceImpl hkSyncPrivilegeService;
    @Autowired
    private HkSyncPushServiceImpl hkSyncPushService;
 
 
    /**
     * 是否开发者
     */
    @Autowired
    private DataSyncConfig dataSyncConfig;
 
    @ApiOperation("立即同步待下发人员数据")
    @PostMapping("/syncUserData")
    @RequiresPermissions("business:member:syncdata")
    public ApiResponse syncUserData(@RequestBody Member member) {
        if(Constants.formatIntegerNum(dataSyncConfig.getOrgUserDataOrigin()) == DataSyncConfig.origin.erp) {
            //如果是ERP系统同步下发
            hkSyncOrgUserService.syncUserData();
        }
        return  ApiResponse.success(null);
    }
    @PreventRepeat
    @ApiOperation("【海康】全量同步门禁设备接口")
    @PostMapping("/syncDevices")
    @RequiresPermissions("business:hksync:device")
    public ApiResponse syncHkDevices(@RequestBody AcsDeviceListRequest param) {
        String result = hkSyncDeviceService.syncHkDevices(param);
        return ApiResponse.success(result);
    }
    @PreventRepeat
    @ApiOperation("【海康】全量同步停车库接口")
    @PostMapping("/syncParks")
    @RequiresPermissions("business:hksync:park")
    public ApiResponse syncHkParks(@RequestBody ParkListRequest param) {
        String result = hkSyncParkService.syncHkParks(param);
        return ApiResponse.success(result);
    }
    @PreventRepeat
    @ApiOperation("【海康】全量同步访客权限组接口")
    @PostMapping("/syncPrivilege")
    @RequiresPermissions("business:hksync:privilege")
    public ApiResponse syncPrivilege(@RequestBody PrivilegeGroupRequest param) {
        String result = hkSyncPrivilegeService.syncPrivilege(param);
        return ApiResponse.success(result);
    }
//    @PreventRepeat
    @ApiOperation("【海康】门禁事件订阅推送对接处理接口")
    @PostMapping("/push/acs")
    public ApiResponse pushAcs(  HttpServletRequest request,@RequestBody EventAcsRequest param, HttpServletResponse response) {
        String result = hkSyncPushService.dealAcsEvent(param,response);
        return ApiResponse.success(result);
    }
//    @PreventRepeat
    @ApiOperation("【海康】访客事件订阅推送对接处理接口")
    @PostMapping("/push/visit")
    public ApiResponse pushVisit(@RequestBody EventVisitRequest param, HttpServletResponse response) {
        String result = hkSyncPushService.dealVisitEvent(param,response);
        return ApiResponse.success(result);
    }
    @ApiOperation("【海康】访客ICCM事件订阅推送对接处理接口")
    @PostMapping("/push/visitIccm")
    public ApiResponse pushVisitIccm(@RequestBody EventVisitIccmRequest param, HttpServletResponse response) {
        String result = hkSyncPushService.dealVisitEventIccm(param,response);
        return ApiResponse.success(result);
    }
//    @PreventRepeat
    @ApiOperation("【海康】停车场事件订阅推送对接处理接口")
    @PostMapping("/push/parks")
    public ApiResponse pushParks(@RequestBody EventParkRequest param, HttpServletResponse response) {
        String result = hkSyncPushService.dealParkEvent(param,response);
        return ApiResponse.success(result);
    }
    @PreventRepeat
    @ApiOperation("【海康】取消订阅事件")
    @PostMapping("/cancelEventSub")
    public ApiResponse cancelEventSub(@RequestBody EventSubRequest param, HttpServletResponse response) {
         hkSyncPushService.cancelEventSub();
        return ApiResponse.success(null);
    }
}