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<Depot> 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<String, String> 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<String> 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<List<Device>> listDeviceManual(
|
@RequestBody SecurityParam param) {
|
return securityManager.listDevice(param);
|
}
|
|
/**
|
* 门禁设备设备操作
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/control-device")
|
public @ResponseBody
|
DeviceControlResponse deviceCtrl(
|
@RequestBody SecurityParam param) {
|
|
// 操作门禁设备时,验证是否有操作权限
|
PageResponse<String> 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<List<DoorSensor>> 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<String> 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<String> addDoorAccess(@RequestBody DoorAccessParam param) {
|
|
return securityManager.addDoorAccess(param);
|
}
|
|
/**
|
* 物联网门禁布防
|
*
|
* @param param
|
* @return
|
*/
|
@RequestMapping("/del-door-access")
|
public PageResponse<String> delDoorAccess(@RequestBody DoorAccessParam param) {
|
|
return securityManager.delDoorAccess(param);
|
}
|
|
}
|