123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- package com.bofeng.wx.controller;
- import cn.afterturn.easypoi.cache.manager.IFileLoader;
- import com.baomidou.mybatisplus.toolkit.IdWorker;
- import com.bofeng.dao.*;
- import com.bofeng.entity.*;
- import com.bofeng.excel.ExcelUtils;
- import com.bofeng.service.ScanAdminService;
- import com.bofeng.service.SweepCodeService;
- import com.bofeng.unit.QRCode;
- import com.google.zxing.BarcodeFormat;
- import com.google.zxing.MultiFormatWriter;
- import com.google.zxing.WriterException;
- import com.google.zxing.client.j2se.MatrixToImageConfig;
- import com.google.zxing.client.j2se.MatrixToImageWriter;
- import com.google.zxing.common.BitMatrix;
- import com.yvan.Model;
- import com.yvan.PageDb;
- import com.yvan.mvc.JsonBody;
- import com.yvan.mvc.Pd;
- import com.yvan.springmvc.HttpParameterParser;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import lombok.Cleanup;
- import lombok.SneakyThrows;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.http.MediaType;
- import org.springframework.http.ResponseEntity;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import javax.servlet.ServletOutputStream;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.net.URLEncoder;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.List;
- @Api("进出扫码后台信息")
- @RestController
- public class ScanAdminController {
- @Autowired
- private SweepCodeService sweepCodeService;
- @Autowired
- private UptownDoorMapper uptownDoorMapper;
- @Autowired
- private UptownMapper uptownMapper;
- @Autowired
- private ScanAdminService scanAdminService;
- @Autowired
- private OutUserMapper outUserMapper;
- @Autowired
- private UptownHomeMapper uptownHomeMapper;
- @ApiOperation("出入查询")
- @PostMapping("/whepi/sweepCode/selectCode")
- public Model<List<SysUptownHouse>> selectCode(PageDb pageDb,HttpParameterParser parser) {
- // HttpServletResponse response,HttpServletRequest request
- List<SysUptownHouse> sysUptownHouses = sweepCodeService.selectCode(pageDb,parser.getMap());
- return Model.newSuccess(pageDb,sysUptownHouses);
- }
- @ApiOperation("凌云用户管理")
- @PostMapping("/whepi/sweepCode/selectLingyunUser")
- public Model<List<SysUptownHouse>> selectLingyunUser(PageDb pageDb,HttpParameterParser parser) {
- // HttpServletResponse response,HttpServletRequest request
- List<SysUptownHouse> sysUptownHouses = sweepCodeService.selectLingyunUser(pageDb,parser.getMap());
- return Model.newSuccess(pageDb,sysUptownHouses);
- }
- @ApiOperation("导出")
- @PostMapping("/whepi/sweepCode/export")
- @SneakyThrows
- public void export(HttpParameterParser parser,HttpServletResponse resp) {
- List<SysUptownHouse> sysUptownHouses = sweepCodeService.export(parser.getMap());
- ExcelUtils.writeSheet(SysUptownHouse.class, sysUptownHouses).export(resp,"出入管理");
- }
- @ApiOperation("出入查询")
- @PostMapping("/whepi/sweepCode/selectXunJian")
- public Model<List<OutScanEstate>> selectXunJian(PageDb pageDb,HttpParameterParser parser) {
- List<OutScanEstate> outScanEstates = sweepCodeService.selectXunJian(pageDb,parser.getMap());
- return Model.newSuccess(pageDb,outScanEstates);
- }
- @ApiOperation("导出")
- @PostMapping("/whepi/sweepCode/exportXunJian")
- @SneakyThrows
- public void exportXunJian(HttpParameterParser parser,HttpServletResponse resp) {
- List<OutScanEstate> outScanEstates = sweepCodeService.exportXunJian(parser.getMap());
- ExcelUtils.writeSheet(OutScanEstate.class, outScanEstates).export(resp,"问询管理");
- }
- @ApiOperation("特殊人员查询")
- @PostMapping("/whepi/OutUser/selectAllOutUser")
- public Model<List<OutUser>> selectAllOutUser(PageDb pageDb,HttpParameterParser parser) {
- List<OutUser> outUsers = outUserMapper.getAllOutUser(pageDb,parser.getMap());
- return Model.newSuccess(pageDb,outUsers);
- }
- @ApiOperation("检查电话号码")
- @PostMapping("/whepi/OutUser/getUptownHomeByPhone")
- public Model<UptownHome> getUptownHomeByPhone(@Pd(name = "phone") String phone) {
- List<UptownHome> outUsers = uptownHomeMapper.getUptownHomeByPhone(phone);
- if (outUsers.size() > 0) {
- return Model.newSuccess(outUsers.get(0));
- } else {
- return Model.newFail("该号码并未注册");
- }
- }
- @ApiOperation("更改特殊人员出入的时间")
- @PostMapping("/whepi/OutUser/updateOutUser")
- public Model updateOutUser(@Pd(name = "tuId") Long tuId,
- @Pd(name = "startDate") String startDate,
- @Pd(name = "endDate") String endDate) throws ParseException {
- OutUser o = outUserMapper.selectById(tuId);
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- o.setStartDate(sdf.parse(startDate));
- o.setEndDate(sdf.parse(endDate));
- return Model.newSuccess(outUserMapper.updateById(o));
- }
- @ApiOperation("保存特殊人员")
- @PostMapping("/whepi/OutUser/saveOutUser")
- public Model saveOutUser(@JsonBody OutUser outUser) {
- OutUser outUser1 = outUserMapper.queryOutUserByPhone(outUser.getPhone());
- if (outUser1 != null) {
- return Model.newFail("该号码已经添加为特殊人员,请仔细检查该号码。");
- }
- List<UptownHome> uptownHomes = uptownHomeMapper.getUptownHomeByPhone(outUser.getPhone().toString());
- if (uptownHomes.size() > 0) {
- outUser.setName(uptownHomes.get(0).getLinkman());
- }
- outUser.setTuId(IdWorker.getId());
- outUser.setStartDate(new Date());
- outUser.setEndDate(new Date());
- outUser.setTime(1);
- return Model.newSuccess(outUserMapper.insert(outUser));
- }
- @ApiOperation("删除特殊人员的时间")
- @PostMapping("/whepi/OutUser/deleteOutUser")
- public Model deleteOutUser(@Pd(name = "ids") String ids) {
- return Model.newSuccess(outUserMapper.deleteOutUsers(ids));
- }
- @ApiOperation("小区进出二维码")
- @PostMapping("/whepi/qrImg/scanQrImg")
- public Model<List<UptownDoor>> scanQrImg(HttpParameterParser parser, PageDb pagination) throws IOException, WriterException {
- List<UptownDoor> list = uptownDoorMapper.getAllUptownDoor(pagination, parser.getMap());
- for (UptownDoor door : list) {
- if (door.getUptownId() == 1238790987234L || door.getUptownId() == 5) {
- if (door.getInImg().equals("")) {
- String img = scan_qr(door.getDoorId(),1,door.getDoorName()+getName(1));
- uptownDoorMapper.updateDoorQc("in_img", img, door.getDoorId());
- door.setInImg(img);
- }
- if (door.getOutImg().equals("")) {
- String img = scan_qr(door.getDoorId(),2, door.getDoorName()+getName(2));
- uptownDoorMapper.updateDoorQc("out_img", img, door.getDoorId());
- door.setOutImg(img);
- }
- } else {
- if (door.getInImg().equals("")) {
- String img = scan_qr(door.getDoorId(),1,door.getUptownName()+door.getDoorName()+getName(1));
- uptownDoorMapper.updateDoorQc("in_img", img, door.getDoorId());
- door.setInImg(img);
- }
- if (door.getOutImg().equals("")) {
- String img = scan_qr(door.getDoorId(),2,door.getUptownName()+door.getDoorName()+getName(2));
- uptownDoorMapper.updateDoorQc("out_img", img, door.getDoorId());
- door.setOutImg(img);
- }
- }
- }
- return Model.newSuccess(pagination, list);
- }
- @ApiOperation("获取小区大门详细")
- @GetMapping("/whepi/qrImg/getDoorById")
- public Model<UptownDoor> getDoorById(HttpParameterParser parser, @Pd(name = "doorId") Long doorId) {
- return Model.newSuccess(uptownDoorMapper.getUptownDoorById(doorId));
- }
- @ApiOperation("保存小区大门信息")
- @PostMapping("/whepi/qrImg/insertDoor")
- public Model insert(@JsonBody UptownDoor uptownDoor) {
- List<UptownDoor> list = uptownDoorMapper.getUptownDoor(uptownDoor.getDoorName(), uptownDoor.getUptownId());
- if (list.size() > 0) {
- return Model.newFail("当前小区已经添加该门");
- }
- return Model.newSuccess(scanAdminService.saveUptownDoor(uptownDoor));
- }
- @ApiOperation("获取小区大门详细")
- @PostMapping("/whepi/qrImg/getUptown")
- public Model<List<Uptown>> getUptown(HttpParameterParser parser, PageDb pagination) {
- return Model.newSuccess(pagination, uptownMapper.getUptowns(pagination, parser.getMap()));
- }
- // 获取code
- private static final String oauth2 = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=";
- private static final String moreUrl = "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
- @Value("${yvan.wechat.appID}")
- private String appId;
- @Value("${yvan.wechat.domain}")
- private String domain;
- /**
- * 生成进出门二维码
- * @param doorId 小区大门ID
- * @param inType 1进入;2外出
- * @param response
- * @throws IOException
- * @throws WriterException
- */
- // @GetMapping(value = "/whepi/scan/scan_qr")
- // public String scanQrImg(@Pd(name = "doorId") Long doorId, @Pd(name = "inType") Integer inType, @Pd(name = "name") String name,
- // HttpServletResponse response) throws IOException, WriterException {
- // String url = oauth2+appId +"&redirect_uri="+URLEncoder.encode(domain()+"user/scan.html?doorId="+doorId+"&inType="+inType,"utf-8")+moreUrl;
- // String file = QRCode.createBase64Img(url, "家园互助平台", name);
- // return file;
- // }
- public String scan_qr(Long doorId, Integer inType, String name)
- throws IOException, WriterException {
- String url = oauth2+appId +"&redirect_uri="+URLEncoder.encode(domain()+"user/scan.html?doorId="+doorId+"&inType="+inType,"utf-8")+moreUrl;
- String file = QRCode.createBase64Img(url, "家园互助平台", name);
- return file;
- }
- /**
- * 生成校园巡逻二维码
- * @throws IOException
- * @throws WriterException
- */
- @GetMapping(value = "/whepi/scan/scanEstate_qr")
- public String scanEstateQrImg(HttpServletResponse response) throws IOException, WriterException {
- String url = oauth2 + appId + "&redirect_uri=" + URLEncoder.encode( domain() + "user/scanEstate.html","utf-8") + moreUrl;
- String file = QRCode.createBase64Img(url, "家园互助平台", "校园巡检二维码");
- return file;
- }
- public String domain() {
- if (domain.substring(domain.length()-1).equals("/")) {
- return domain;
- } else {
- return domain + "/";
- }
- }
- public String getName(Integer inType) {
- if (inType == 1) {
- return "入口";
- } else if (inType == 2) {
- return "出口";
- }
- return null;
- }
- }
|