k94314517
2023-12-19 165078645b8cfe800aeda7206e89ebd901c7e6c8
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
package com.doumee.web;
 
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.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.List;
 
/**
 * 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;
 
 
    @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);
    }
}