package com.szwl.controller; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.gexin.fastjson.JSON; import com.szwl.constant.ResponseCodesEnum; import com.szwl.model.bean.EquipmentDTO; import com.szwl.model.bo.JsonMessage; import com.szwl.model.bo.JsonUtils; import com.szwl.model.bo.R; import com.szwl.model.bo.ResponseModel; import com.szwl.model.dto.AdVo; import com.szwl.model.dto.TimeRuleVo; import com.szwl.model.entity.*; import com.szwl.model.utils.PushUtils; import com.szwl.service.*; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; @Controller("ApiMianHuaTangController") @RequestMapping("/api/mianhuatang/ADIndex") public class ApiMianHuaTangIndexController { @Autowired TAdminService adminService; @Autowired TEquipmentService equipmentService; @Autowired TEquipmentDescService equipmentDescService; /** * 获取机器列表 */ @GetMapping("/getEquipmentList") @ResponseBody public ResponseModel> getEquipmentList(String adminId, String name) { if(StringUtils.isEmpty(adminId)){ return R.fail(ResponseCodesEnum.A0001,"adminId为空"); } if(StringUtils.isEmpty(name)){ return R.fail(ResponseCodesEnum.A0001,"name为空"); } TAdmin admin = adminService.getById(adminId); if(!admin.getUsername().equals(name)){ return R.fail(ResponseCodesEnum.A0001); } List list = new ArrayList<>(); LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getAdminId,Long.valueOf(adminId)); List equipmentList = equipmentService.list(query); for(TEquipment equipment:equipmentList){ EquipmentDTO equipmentDTO = new EquipmentDTO(); equipmentDTO.setClientId(equipment.getClientId()); equipmentDTO.setSn(equipment.getSn()); equipmentDTO.setName(equipment.getName()); equipmentDTO.setLatitude(equipment.getLatitude()); equipmentDTO.setLongitude(equipment.getLongitude()); equipmentDTO.setFullName(equipment.getFullName()); equipmentDTO.setEqeStatus(equipment.getEqeStatus()); list.add(equipmentDTO); } return R.ok(list); } /** * 获取机器详情 */ @GetMapping("/getEquipment") public ResponseModel getEquipment(String adminId, String name,String clientId) { if(StringUtils.isEmpty(adminId)){ return R.fail(ResponseCodesEnum.A0001,"adminId为空"); } if(StringUtils.isEmpty(name)){ return R.fail(ResponseCodesEnum.A0001,"name为空"); } if(StringUtils.isEmpty(clientId)){ return R.fail(ResponseCodesEnum.A0001,"clientId为空"); } TAdmin admin = adminService.getById(adminId); if(!admin.getUsername().equals(name)){ return R.fail(ResponseCodesEnum.A0001); } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getAdminId,Long.valueOf(adminId)); query.eq(TEquipment::getClientId,clientId); TEquipment equipment = equipmentService.getOnly(query); EquipmentDTO equipmentDTO = new EquipmentDTO(); equipmentDTO.setClientId(equipment.getClientId()); equipmentDTO.setSn(equipment.getSn()); equipmentDTO.setName(equipment.getName()); equipmentDTO.setLatitude(equipment.getLatitude()); equipmentDTO.setLongitude(equipment.getLongitude()); equipmentDTO.setFullName(equipment.getFullName()); equipmentDTO.setEqeStatus(equipment.getEqeStatus()); return R.ok(equipmentDTO); } /** *远程修改机器的状态: * type(类型,0:外门,1:内门,2:开机/重启(炉头),3:关机(炉头),4:开启睡眠,5:关闭睡眠), * status(状态:0:关闭,1:开启) * @param clientId * @return status(状态:0:关闭,1:开启) */ @GetMapping("/updateEquipmentStatus") public ResponseModel updateEquipmentStatus(String adminId, String name,String clientId,String type,String status){ if(StringUtils.isEmpty(clientId)||StringUtils.isEmpty(type)||StringUtils.isEmpty(status)){ return R.fail(ResponseCodesEnum.A0001); } if(StringUtils.isEmpty(adminId)){ return R.fail(ResponseCodesEnum.A0001,"adminId为空"); } if(StringUtils.isEmpty(name)){ return R.fail(ResponseCodesEnum.A0001,"name为空"); } TAdmin admin = adminService.getById(adminId); if(!admin.getUsername().equals(name)){ return R.fail(ResponseCodesEnum.A0001); } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TEquipment::getAdminId,Long.valueOf(adminId)); query.eq(TEquipment::getClientId,clientId); TEquipment equipment = equipmentService.getOnly(query); if(equipment!=null&&equipment.getId()!=null){ if(type.equals("0")){ equipmentService.sentMessage(equipment.getClientId(), PushUtils.buildJson("outdoor", status).toString()); return R.ok(); }else if(type.equals("1")){ equipmentService.sentMessage(equipment.getClientId(),PushUtils.buildJson("indoor", status).toString()); return R.ok(); }else if(type.equals("2")){ Long time = new Date().getTime(); equipmentService.sentMessage(equipment.getClientId(),PushUtils.buildJson("eqeStatus", status,String.valueOf(time),"http://time.tianqi.com").toString()); return R.ok(); }else if(type.equals("3")){ Long time = new Date().getTime(); equipmentService.sentMessage(equipment.getClientId(),PushUtils.buildJson("eqeStatus", status,String.valueOf(time),"http://time.tianqi.com").toString()); return R.ok(); }else if(type.equals("4")){ equipmentService.sentMessage(equipment.getClientId(),PushUtils.buildJson("is_sleep", status).toString()); return R.ok(); }else if(type.equals("5")){ equipmentService.sentMessage(equipment.getClientId(),PushUtils.buildJson("is_sleep", status).toString()); return R.ok(); } } return R.fail(ResponseCodesEnum.A0002); } }