jiangping
2024-01-05 2c4cfb7ed1ece6c3b80f7d551a267e9367ddb12b
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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
package com.doumee.api.web;
 
import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.config.annotation.ErpLoginRequired;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.erp.model.openapi.request.*;
import com.doumee.core.erp.model.openapi.response.*;
import com.doumee.core.utils.Constants;
import com.doumee.service.business.ERPSyncService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/5/5 16:02
 */
 
@Api(tags = "1、【访客端】数据资源接口(向ERP端提供或提交数据信息)")
@RestController
@RequestMapping("/visitbiz")
@Slf4j
public class BizResourceController extends ApiController {
 
    @Autowired
    private ERPSyncService erpSyncService;
 
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
 
 
    @ApiOperation(value = "调用凭据获取接口", notes = "访客端提供,供ERP端调用,向ERP提供统接口调用凭证")
    @GetMapping("/accesstoken")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "accessKey", value = "访问key,由访客端提供", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "accessSecret", value = "访问秘钥,由访客端提供", required = true)
    })
    public ApiResponse<AccessTokenResponse> accesstoken(@RequestParam  String accessKey, @RequestParam  String accessSecret) {
        return  ApiResponse.success(erpSyncService.createERPToken(accessKey,accessSecret));
    }
 
    @ErpLoginRequired
    @ApiOperation(value = "门禁组全量接口", notes = "访客端提供,供ERP端调用,ERP端同步获取门禁组全量信息")
    @PostMapping("/resource/role/list")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse<List<RoleListResponse>> roleList(@RequestBody RoleListRequest param) {
        param.setToken(this.getToken());
        return  ApiResponse.success(erpSyncService.erpQueryDeviceList(param));
    }
 
    @ApiOperation(value = "停车场全量信息接口", notes = "访客端提供,供ERP端调用,ERP端同步全部停车场数据")
    @PostMapping("/resource/park/list")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse<List<ParkListResponse>> parkList(@RequestBody ParkListRequest param) {
        param.setToken(this.getToken());
        return  ApiResponse.success(erpSyncService.parkList(param));
    }
 
    @ApiOperation(value = "访客出入事件同步接口", notes = "访客端提供,供ERP端调用,ERP端获取访客出入记录信息")
    @PostMapping("/resource/visit/list")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse<PageData<VisitEventListResponse>> visitList (@RequestBody PageWrap<VisitListRequest> pageWrap) {
        pageWrap.getModel().setToken(this.getToken());
        return ApiResponse.success(erpSyncService.visitListPage(pageWrap));
    }
 
    @ApiOperation(value = "门禁出入事件同步接口", notes = "访客端提供,供ERP端调用,ERP端获取门禁出入记录信息")
    @PostMapping("/resource/doorEvent/list")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse<PageData<DoorEventListResponse>> doorEventList (@RequestBody PageWrap<DoorEventListRequest> pageWrap) {
        pageWrap.getModel().setToken(this.getToken());
        return ApiResponse.success(erpSyncService.doorEventListPage(pageWrap));
    }
 
    @ApiOperation(value = "车辆出入事件同步接口", notes = "访客端提供,供ERP端调用,ERP端获取车辆出入记录信息")
    @PostMapping("/resource/carvisit/list")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse<PageData<CarEventListResponse>> carEventList (@RequestBody PageWrap<CarEventListRequest> pageWrap) {
        pageWrap.getModel().setToken(this.getToken());
        return ApiResponse.success(erpSyncService.carEventList(pageWrap));
    }
 
    @ApiOperation(value = "组织变化接口", notes = "访客端提供,供ERP端调用,完成访客端组织信息同步,该接口支持单个组织新增、更新、删除需求")
    @PostMapping("/event/org/update")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse orgUpdate(@RequestBody OrgUpdateRequest param) {
        param.setToken(this.getToken());
        erpSyncService.orgUpdate(param);
        return  ApiResponse.success(null);
    }
 
    @ApiOperation(value = "人员变化接口", notes = "访客端提供,供ERP端调用,完成访客端人员信息同步,该接口支持单个人员新增、更新、删除需求")
    @PostMapping("/event/user/update")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse userUpdate(@RequestBody UserUpdateRequest param) {
        param.setToken(this.getToken());
        erpSyncService.userUpdate(param);
        return  ApiResponse.success(null);
    }
 
    @ApiOperation(value = "人员门禁组授权接口", notes = "访客端提供,供ERP端调用,访客端人员同步门禁组授权信息,该接口支持人员门禁组授权新增、更新、清空需求。")
    @PostMapping("/event/role/userAuthor")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse roleUserAuthor(@RequestBody UserAuthorRequest param) {
        erpSyncService.roleUserAuthor(param);
        return  ApiResponse.success(null);
    }
 
    @ApiOperation(value = "车辆授权停车场接口", notes = "访客端提供,供ERP端调用,访客端同步车辆对停车场的使用权限,该接口支持车辆绑定、解绑归属人,支持新增、更新、清空车辆授权信息")
    @PostMapping("/event/park/carAuthor")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse parkCarAuthor(@RequestBody CarAuthorRequest param) {
        erpSyncService.parkCarAuthor(param);
        return  ApiResponse.success(null);
    }
 
    @ApiOperation(value = "访客申请审批结果通知接口", notes = "访客端提供,供访客端调用,提交访客申请审批的结果")
    @PostMapping("/event/approve/notice")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true)
    })
    public ApiResponse approveApply(@RequestBody ApproveNoticeRequest param) {
        param.setToken(this.getToken());
        erpSyncService.approveApply(param);
        return  ApiResponse.success(null);
    }
 
 
 
    @ApiOperation(value = "FTP账户信息", notes = "访客端提供,供ERP端调用,FTP账户信息,其中【FTP资源访问映射地址】用于图片回显使用," +
            "比如人脸图片回显拼接:【FTP资源访问映射地址】+【FTP用户图片存储目录】+【实际人脸图片存储字段内容】" +
            "如:http://175.27.187.84/file4/member/20231211/skjd-skdjf4enc-flgk.png")
    @GetMapping("/resource/ftpAccount")
    public ApiResponse<Map<String,Object>> ftpAccount() {
        Map<String,Object> map = new HashMap<>();
        map.put("FTP主机地址IP",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode());
        map.put("FTP访问端口",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode());
        map.put("FTP访问登录名",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode());
        map.put("FTP访问登陆密码",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
        map.put("FTP访客事件图片存储目录",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.VISIT_EVENT_IMG).getCode());
        map.put("FTP车辆事件图片存储目录",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.CAR_EVENT_IMG).getCode());
        map.put("FTP门禁事件图片存储目录",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.DEVICE_EVENT_IMG).getCode());
        map.put("FTP用户图片存储目录",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode());
        map.put("FTP资源访问映射地址",
        systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode());
        return  ApiResponse.success(map);
    }
 
 
 
}