package com.boying.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.boying.common.BaseController; import com.boying.common.SystemConfigProperties; import com.boying.common.util.DateUtil; import com.boying.common.util.HttpUtil; import com.boying.common.util.StringUtil; import com.boying.entity.*; import com.boying.service.BarrierService; import com.boying.service.EnterParkService; import com.boying.service.OutParkService; import com.boying.service.ParkService; import io.netty.util.internal.ObjectUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Predicate; import javax.persistence.criteria.Root; import java.util.ArrayList; import java.util.Date; import java.util.List; @RestController @RequestMapping("barrier") public class BarrierController extends BaseController { @Autowired private BarrierService barrierService; @Autowired private SystemConfigProperties systemConfigProperties; @Autowired private OutParkService outParkService; @PostMapping("findPage") public Object findPage(int page,int pageSize,String parkId) { Pageable pageable = PageRequest.of(page-1,pageSize, Sort.Direction.DESC,"id"); Specification specification = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery cq, CriteriaBuilder cb) { List list = new ArrayList(); if (!StringUtil.isNullOrEmpty(parkId)) { list.add(cb.equal(root.get("parkId").as(Long.class), parkId)); } Predicate[] arr = new Predicate[list.size()]; cq.where(list.toArray(arr)); return null; } }; Page pages = barrierService.findPage(pageable,specification); for(Barrier barrier:pages.getContent()){ long l = new Date().getTime() - barrier.getCreateTime().getTime(); System.out.println(l); if(l>10000){ barrier.setStatus(1); } } return success("",pages); } @PostMapping("save") public Object save(Barrier barrier) { barrierService.save(barrier); return success("保存成功"); } @PostMapping("delete") public Object delete(Long id) { barrierService.delete(id); return success("删除成功"); } @PostMapping("findAll") public Object findAll(Long parkId) { if (parkId==null) { return error("未发现该停车场"); } Specification specification = new Specification() { @Override public Predicate toPredicate(Root root, CriteriaQuery cq, CriteriaBuilder cb) { List list = new ArrayList(); list.add(cb.equal(root.get("parkId").as(Long.class), parkId)); Predicate[] arr = new Predicate[list.size()]; cq.where(list.toArray(arr)); return null; } }; return success("请求成功",barrierService.findAll(specification)); } // @PostMapping("open") // public Object open(Long barrierId) { // if (barrierId==null) { // return error("未找到该道闸"); // } // Barrier b= (Barrier) barrierService.findById(barrierId); // String res = HttpUtil.get(systemConfigProperties.getIp3()+"?barrierCode="+b.getCode()); // JSONObject jsonObject = JSON.parseObject(res); // if(jsonObject.get("result").equals("true")){ // return success("请求成功"); // }else{ // return error("抬杆失败"); // } // } @PostMapping("open") public Object open(Long barrierId) { Barrier b= (Barrier) barrierService.findById(barrierId); if (b==null) { return error("未找到该道闸"); } b.setType2(1); barrierService.save(b); return success("请求成功"); } @PostMapping("openBarrier") public Object openBarrier(Long barrierId,Integer type) { Barrier b= (Barrier) barrierService.findById(barrierId); if (b==null) { return error("未找到该道闸"); }else { if(b.getType() == 1){ //入口闸,直接开启 b.setType2(1); barrierService.save(b); return success("请求成功"); }else { //出口闸,判断状态 if(type == null || type == 0){ //取消计费 OutPark outPark = outParkService.findByCarNoAndBarrierId(b.getCarNo(), b.getId()); if(outPark != null){ outPark.setPrice(0); outParkService.save(outPark); } b.setType2(1); barrierService.save(b); return success("请求成功"); }else { //计费 b.setType2(1); barrierService.save(b); return success("请求成功"); } } } } }