UserOperateController.java 6.28 KB
package com.example.dahua.control;

import com.example.dahua.async.SendUserInfoTask2;
import com.example.dahua.bean.yx.Result;
import com.example.dahua.bean.yx.YxSendFaceDto;
import com.example.dahua.dao.UserDao;
import com.example.dahua.service.UserOperateService;
import com.example.dahua.service.imp.BaseService;
import com.example.dahua.utils.ExcelUtil;
import com.example.dahua.utils.HttpUtils;
import com.example.dahua.utils.ReadExcelUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

/**
 * 用户信息、人脸、卡信息、权限下发控制类
 * @author xuquan
 * @date 2020/12/01 15:16
 */
@Slf4j
@RestController("/operate/")
@Api(tags = "大华设备操作接口")
@RequestMapping(value = "/operate/*", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class UserOperateController {

    @Autowired
    SendUserInfoTask2 sendUserInfoTask;

    @Autowired
    UserDao userDao;

    @Autowired
    UserOperateService userOperateService;

    @Autowired
    BaseService baseService;

    @RequestMapping(value = "clearAllFace", method = RequestMethod.POST)
    @ApiOperation(value = "21服务器清空指定学校,指定设备下所有人脸2.0")
    public boolean clearAllFace(@RequestParam("schoolId") Integer schoolId, @RequestParam(value = "deviceId",required = false) String deviceId) {
        return sendUserInfoTask.clearAllFace(schoolId,deviceId);
    }

    @RequestMapping(value = "sendUserFaces", method = RequestMethod.GET)
    @ApiOperation(value = "100服务器下发学校下所有人脸给指定设备2.0")
    public void sendUserFaces(@RequestParam("schoolId") Integer schoolId,@RequestParam("userType") Integer userType,
                              @RequestParam(value = "studentType",required = false) Integer studentType,
                              @RequestParam(value = "sex",required = false) String sex,
                              @RequestParam(value = "deviceIds",required = false) String deviceIds) {
        userOperateService.sendUserFaces(schoolId,userType,deviceIds,studentType,sex);
    }

    @RequestMapping(value = "deleteFailFace100", method = RequestMethod.POST)
    @ApiOperation(value = "100服务器删除失败人脸2.0")
    public boolean deleteFailFace100(@RequestParam("schoolId") Integer schoolId) {
        HttpUtils.deleteFace(schoolId);
        return true;
    }

    @RequestMapping(value = "sendFailFace", method = RequestMethod.POST)
    @ApiOperation(value = "100服务器下发失败人脸2.0")
    public boolean sendFailFace(@RequestParam("schoolId") Integer schoolId) {
        return sendUserInfoTask.sendFailFace(schoolId);
    }

    @RequestMapping(value = "deleteFailFace", method = RequestMethod.GET)
    @ApiOperation(value = "21服务器删除失败人脸2.0")
    public boolean deleteFailFace(Integer schoolId) {
        return sendUserInfoTask.deleteFailFace(schoolId);
    }

    @RequestMapping(value = "deleteFaceByCard", method = RequestMethod.GET)
    @ApiOperation(value = "21服务器根据卡号删除人脸")
    public boolean deleteFaceByCard(Integer schoolId,String cardNum,String deviceId) {
        return sendUserInfoTask.deleteFaceByCard(schoolId,cardNum,deviceId);
    }

    @ApiOperation(value = "按班级指定下发")
    @RequestMapping(value = "sendFaceByClassId", method = RequestMethod.POST)
    public void exportFace(@RequestParam("schoolId") Integer schoolId,
                           @RequestParam(value = "classIds",required = false) String classIds,
                           @RequestParam(value = "deviceIds",required = false) String deviceIds){
        userOperateService.sendFaceByClassId(schoolId,classIds,deviceIds);
    }

    @ApiOperation(value = "删除指定学校下无效人脸")
    @RequestMapping(value = "deleteFaceByClassId", method = RequestMethod.POST)
    public void exportFace(@RequestParam("schoolId") Integer schoolId,
                           @RequestParam(value = "deviceIds",required = false) String deviceIds){
        userOperateService.deleteFaceByClassId(schoolId,deviceIds);
    }

    @ApiOperation(value = "导入学生信息")
    @RequestMapping(value = "importStudent", method = RequestMethod.POST)
    public void importExcel(@RequestParam(value="studentFile") MultipartFile file,HttpServletRequest request){
        List<ArrayList<String>> readExcel = new ArrayList<>();
        try {
            readExcel = new ReadExcelUtil().readExcel(file);
        } catch (IOException e) {
            e.printStackTrace();
        }
        String originalFileName = file.getOriginalFilename();
        int beginIndex = originalFileName.lastIndexOf(".");
        //原名
        String fileName = originalFileName.substring(0,beginIndex);

        userOperateService.saveStudentInfo(readExcel, fileName);
    }

    @ApiOperation(value = "艺校照片特定下发")
    @RequestMapping(value = "sendYxFace", method = RequestMethod.POST)
    public Result sendFaceByThread(@RequestBody YxSendFaceDto sendFaceDto) {
        return userOperateService.sendYxUserFace(sendFaceDto);
    }

    @ApiOperation(value = "下方指定卡号")
    @RequestMapping(value = "sendCard", method = RequestMethod.POST)
    public void exportFace(@RequestParam("cardNum") String cardNum,@RequestParam("schoolId") Integer schoolId,
                           @RequestParam("deviceIds") String deviceIds){
        userOperateService.sendCard(cardNum,schoolId,deviceIds);
    }
//    @ApiOperation(value = "按班级指定下发")
//    @RequestMapping(value = "sendFaceByRoomId", method = RequestMethod.POST)
//    public void exportFace(@RequestParam("schoolId") Integer schoolId,
//                           @RequestParam(value = "classIds",required = false) String classIds,
//                           @RequestParam(value = "deviceIds",required = false) String deviceIds){
////        userOperateService.sendFaceByRoomId(schoolId,classIds,deviceIds);
//        r
//    }

}