package com.doumee.api.web; 
 | 
  
 | 
import com.doumee.biz.system.SystemDictDataBiz; 
 | 
import com.doumee.service.business.VisitsService; 
 | 
import com.doumee.service.business.ext.ERPSyncService; 
 | 
import io.swagger.annotations.Api; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
/** 
 | 
 * Created by IntelliJ IDEA. 
 | 
 * 
 | 
 * @Author : Rk 
 | 
 * @create 2023/5/5 16:02 
 | 
 */ 
 | 
  
 | 
@Api(tags = "1、【访客端】数据资源接口(向ERP端提供或提交数据信息)") 
 | 
@RestController 
 | 
@RequestMapping("/visitbiz") 
 | 
@Slf4j 
 | 
public class BizResourceController{ 
 | 
  
 | 
    @Autowired 
 | 
    private ERPSyncService erpSyncService; 
 | 
  
 | 
    @Autowired 
 | 
    private SystemDictDataBiz systemDictDataBiz; 
 | 
  
 | 
    @Autowired 
 | 
    private VisitsService visitsService; 
 | 
  
 | 
  
 | 
   /* @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) { 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
//            response.setData(erpSyncService.createERPToken(accessKey,accessSecret)); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        Map<String,String> param = new HashMap<>(); 
 | 
        param.put("accessKey",accessKey); 
 | 
        param.put("accessSecret",accessSecret); 
 | 
        erpSyncService.saveInterfaceLog(param,"/visitbiz/accesstoken", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return  response; 
 | 
    } 
 | 
  
 | 
    @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()); 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            response.setData(erpSyncService.erpQueryDeviceList(param)); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(param,"/visitbiz/resource/role/lis", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return  response; 
 | 
    } 
 | 
  
 | 
    @ErpLoginRequired 
 | 
    @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()); 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            response.setData(erpSyncService.parkList(param)); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(param,"/visitbiz/resource/role/list", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return  response; 
 | 
    } 
 | 
  
 | 
    @ErpLoginRequired 
 | 
    @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()); 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            response.setData(erpSyncService.visitListPage(pageWrap)); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(pageWrap,"/visitbiz/resource/visit/list", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return response; 
 | 
    } 
 | 
  
 | 
    @ErpLoginRequired 
 | 
    @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()); 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            response.setData(erpSyncService.doorEventListPage(pageWrap)); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(pageWrap,"/visitbiz/resource/doorEvent/list", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return response; 
 | 
    } 
 | 
  
 | 
    @ErpLoginRequired 
 | 
    @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()); 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            response.setData(erpSyncService.carEventList(pageWrap)); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(pageWrap,"/visitbiz/resource/carvisit/list", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return response; 
 | 
    } 
 | 
  
 | 
    @ErpLoginRequired 
 | 
    @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()); 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            erpSyncService.orgUpdate(param); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(param,"/visitbiz/event/org/update", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return  response; 
 | 
    } 
 | 
  
 | 
    @ErpLoginRequired 
 | 
    @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()); 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            erpSyncService.userUpdate(param); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(param,"/visitbiz/event/user/update", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return  response; 
 | 
    } 
 | 
  
 | 
    @ErpLoginRequired 
 | 
    @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) { 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            erpSyncService.roleUserAuthor(param); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(param,"/visitbiz/event/role/userAuthor", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return  response; 
 | 
    } 
 | 
  
 | 
    @ErpLoginRequired 
 | 
    @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) { 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            erpSyncService.parkCarAuthor(param); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(param,"/visitbiz/event/park/carAuthor", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return  response; 
 | 
    } 
 | 
  
 | 
    @ErpLoginRequired 
 | 
    @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()); 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            erpSyncService.approveApply(param); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(param,"/visitbiz/event/approve/notice", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return  response; 
 | 
    } 
 | 
  
 | 
    @ErpLoginRequired 
 | 
    @ApiOperation(value = "发起访客申请", notes = "访客端提供,供ERP端调用,ERP端发起访客申请") 
 | 
    @PostMapping("/resource/createVisit") 
 | 
    @ApiImplicitParams({ 
 | 
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "授权token值", required = true) 
 | 
    }) 
 | 
    public ApiResponse  createVisit(@Valid @RequestBody ErpVisitDTO param) { 
 | 
        param.setToken(this.getToken()); 
 | 
        ApiResponse response = ApiResponse.success(null); 
 | 
        try { 
 | 
            visitsService.createFKForErp(param); 
 | 
        }catch (BusinessException e){ 
 | 
            response = ApiResponse.failed(e.getCode(), e.getMessage()); 
 | 
        }catch (Exception e){ 
 | 
            response = ApiResponse.failed(ResponseStatus.SERVER_ERROR.getCode(),ResponseStatus.SERVER_ERROR.getMessage()); 
 | 
        } 
 | 
        erpSyncService.saveInterfaceLog(param,"/visitbiz/resource/createVisit", JSONObject.toJSONString(response),Constants.ZERO); 
 | 
        return  response; 
 | 
    } 
 | 
  
 | 
  
 | 
    @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); 
 | 
    }*/ 
 | 
  
 | 
  
 | 
  
 | 
} 
 |