package com.ld.igds.door.controller; import com.bstek.bdf2.core.business.IUser; import com.ld.igds.common.manager.CommonManager; import com.ld.igds.constant.BizType; import com.ld.igds.constant.Constant; import com.ld.igds.constant.RespCodeEnum; import com.ld.igds.data.PageResponse; import com.ld.igds.door.dto.DoorAccessParam; import com.ld.igds.io.constant.OrderRespEnum; import com.ld.igds.io.response.DeviceControlResponse; import com.ld.igds.models.Depot; import com.ld.igds.models.Device; import com.ld.igds.models.DoorSensor; import com.ld.igds.sec.dto.SecurityParam; import com.ld.igds.sec.manager.SecManager; import com.ld.igds.util.ContextUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 安防--门禁管理控制层 */ @RestController @RequestMapping("basic/security") public class DoorController { @Autowired private CommonManager commonManager; @Autowired private SecManager securityManager; /** * 门禁管理页面 * * @param depotId * @param type type=1表示默认系统的设备门禁,type=2表示用的是物联网门磁配置 * @return */ @RequestMapping("/door-entry") public ModelAndView doorEntry( @RequestParam(value = "depotId", required = false) String depotId, @RequestParam(value = "type", required = false) String type) { if (StringUtils.isEmpty(type)) type = "1"; ModelAndView view = new ModelAndView(); // 仓库列表做下拉框使用 List listDepot = commonManager.listDepot(null); view.addObject(Constant.MODEL_KEY_DEPOT_LIST, listDepot); IUser user = ContextUtil.getLoginUser(); view.addObject(Constant.MODEL_KEY_LOGIN_USER, user); view.addObject(Constant.MODEL_KEY_BIZ_TYPE, BizType.SECURITY.getCode()); view.addObject("deptId", ContextUtil.subDeptId(user)); //使用系统默认门禁展示 if ("1".equals(type)) { // 每个仓库正面和背面图片 //view.addObject("areationImg", areationImg.getDetail()); view.setViewName("admin/afgl/door-entry"); } //使用物联网门禁平铺展示 if ("2".equals(type)) { Map mapDept = new HashMap<>(); if (null != listDepot) { for (Depot d : listDepot) { mapDept.put(d.getId(), d.getName()); } } view.addObject("mapDept", mapDept); view.setViewName("admin/afgl/door-sensor"); } return view; } /** * 门禁管理页面验证权限码 * * @param param * @return */ @RequestMapping("/check-door-token") public PageResponse checkDoorToken( @RequestBody DoorAccessParam param) { if (param == null || StringUtils.isEmpty(param.getToken())) { return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), "请输入权限码!"); } return securityManager.checkToken(param.getToken(), null, ContextUtil.subDeptId(null), ContextUtil.getCompanyId()); } /** * 获取所有门禁设备 * * @param param * @return */ @RequestMapping("/list-device-manual") public @ResponseBody PageResponse> listDeviceManual( @RequestBody SecurityParam param) { return securityManager.listDevice(param); } /** * 门禁设备设备操作 * * @param param * @return */ @RequestMapping("/control-device") public @ResponseBody DeviceControlResponse deviceCtrl( @RequestBody SecurityParam param) { // 操作门禁设备时,验证是否有操作权限 PageResponse response = securityManager.checkToken( param.getToken(), param.getDepotId(), ContextUtil.subDeptId(null), ContextUtil.getCompanyId()); if (!RespCodeEnum.CODE_0000.getCode().equals(response.getCode())) { return new DeviceControlResponse( OrderRespEnum.ORDER_ERROR.getCode(), response.getMsg()); } return securityManager.controlDevice(param); } /*** * 查询门禁备状态查询 * * @param param * @return */ @RequestMapping("/query-status") public DeviceControlResponse queryStatus(@RequestBody SecurityParam param) { return securityManager.queryDeviceStatus(param); } /** * 获取门磁配置信息 * * @param * @return */ @RequestMapping("/doorSensor-data") public PageResponse> queryDoorSensorData(@RequestBody DoorSensor param) { return securityManager.queryDoorSensorData(param); } /** * 门禁记录抓拍记录页面 * * @return */ @RequestMapping("/door-record-img") public ModelAndView DoorRecordImg(@RequestParam(value = "id", required = true) Integer id) { ModelAndView view = new ModelAndView(); view.addObject("id", id); //根据id查询对应的抓拍信息 List imgPathList = securityManager.recordImgList(id); view.addObject("imgPathList", imgPathList); view.setViewName("admin/afgl/door-record-img"); return view; } /** * 物联网门禁撤防 * * @param param * @return */ @RequestMapping("/add-door-access") public PageResponse addDoorAccess(@RequestBody DoorAccessParam param) { return securityManager.addDoorAccess(param); } /** * 物联网门禁布防 * * @param param * @return */ @RequestMapping("/del-door-access") public PageResponse delDoorAccess(@RequestBody DoorAccessParam param) { return securityManager.delDoorAccess(param); } }