package com.ruoyi.demo.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.pagehelper.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.EditGroup; import com.ruoyi.common.core.validate.QueryGroup; import com.ruoyi.demo.entity.Equipment; import com.ruoyi.demo.entity.Plan; import com.ruoyi.demo.entity.PlanItem; import com.ruoyi.demo.entity.bo.EquipmentBo; import com.ruoyi.demo.entity.bo.PlanItemBo; import com.ruoyi.demo.entity.bo.StateBo; import com.ruoyi.demo.entity.vo.EquipmentVo; import com.ruoyi.demo.entity.vo.PlanItemVo; import com.ruoyi.demo.enums.EquipmentOnStateEnum; import com.ruoyi.demo.enums.EquipmentStateEnum; import com.ruoyi.demo.service.EquipmentService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @RequestMapping("/equimpent") @RestController @Slf4j public class EquipmentController { @Autowired EquipmentService equipmentService; /** * 添加新设备 * @param equipmentVo * @return */ @SaCheckPermission("szzs:equipment:add") @PostMapping("/addEquipment") public R addEquipment(@RequestBody @Validated(value = {AddGroup.class}) EquipmentVo equipmentVo){ Integer integer = equipmentService.addEquipment(equipmentVo); if (integer == 0) { return R.fail("添加失败,设备编号已存在"); } return R.ok(); } @PostMapping("/getCode") @SaIgnore public R getCode(){ return R.ok(equipmentService.getCode()); } /** * 修改设备信息 * @param equipmentVo * @return */ @SaCheckPermission("szzs:equipment:update") @PutMapping("/updateEquipment") public R updateEquipment(@RequestBody @Validated(value = {AddGroup.class})EquipmentVo equipmentVo){ R r = equipmentService.updateEquipment(equipmentVo); return r; } /** * 获取设备详细信息 * @param equipmentId * @return */ @SaCheckPermission("szzs:equipment:query") @GetMapping("/getEquipment") public R getEquipment(@NotBlank String equipmentId){ EquipmentBo equipment = equipmentService.getEquipment(equipmentId); return R.ok(equipment); } /** * 获取设备列表 * */ @SaCheckPermission("szzs:equipment:list") @GetMapping("/getEquipmentList") public R getEquipmentList(EquipmentVo equipmentVo){ HashMap hashMap = equipmentService.getEquipmentList(equipmentVo); return R.ok(hashMap); } /** * 删除设备 * @param equipmentIds * @return */ @SaCheckPermission("szzs:equipment:delete") @DeleteMapping("/deleteEquipment") public R deleteEquipment(@NotEmpty String[] equipmentIds){ R r = equipmentService.deleteEquipment(equipmentIds); return r; } /** * TODO 获得该设备下的广告计划 * @param equipmentVo * @return */ @SaCheckPermission("szzs:equipment:query") @GetMapping("/getEquipmentPlanList") public R getEquipmentPlanList(@Validated(value = {QueryGroup.class}) EquipmentVo equipmentVo){ IPage euipmentPlanList = equipmentService.getEquipmentPlanList(equipmentVo); return R.ok(euipmentPlanList); } /** * TODO 修改该设备下的广告计划的排序 * @param planItemVo * @return */ @SaCheckPermission("szzs:equipment:update") @PutMapping("/updateEquipmentPlan") public R updateEquipmentPlan(@RequestBody @Validated(value = {EditGroup.class}) PlanItemVo planItemVo){ equipmentService.updateEquipmentPlan(planItemVo); return R.ok(); } @SaCheckPermission("szzs:equipment:other") @DeleteMapping("/deleteEquipmentPlan") public R deleteEquipmentPlan(@NotEmpty String[] planItemIds){ equipmentService.deleteEquipmentPlan(planItemIds); return R.ok(); } /** * 找到未分组的设备 * @param equipmentVo * @return */ @SaCheckPermission("szzs:equipment:query") @GetMapping("/getEquipmentBySelect") public R getEquipmentBySelect(EquipmentVo equipmentVo){ Page equipments = equipmentService.getEquipmentBySelect(equipmentVo); return R.ok(equipments); } /** * 添加店铺下的设备 * @param equipmentVo * @return */ @SaCheckPermission("szzs:equipment:add") @PutMapping("/addStoreEquipment") public R addStoreEquipment(@RequestBody @Validated(value = {QueryGroup.class}) EquipmentVo equipmentVo){ if (ObjectUtil.isNull(equipmentVo.getStoreId())) { return R.fail("添加失败"); } equipmentService.addStoreEquipment(equipmentVo); return R.ok(); } /** * 移除店铺下的设备 * @param equipmentIds * @return */ @SaCheckPermission("szzs:equipment:update") @DeleteMapping("/deleteStoreEquipment") public R deleteStoreEquipment(@NotNull @NotBlank String[] equipmentIds){ equipmentService.deleteStoreEquipment(equipmentIds); return R.ok(); } /** * 查看store下已有的设备 * @param equipmentVo * @return */ @SaCheckPermission("szzs:equipment:query") @GetMapping("/getEquipmentByStoreId") public R getEquipmentByStoreId(EquipmentVo equipmentVo){ Page equipments = equipmentService.getEquipmentByStoreId(equipmentVo); return R.ok(equipments); } /** * 获取总设备数 * @return */ @SaCheckPermission("szzs:equipment:query") @GetMapping("/getEquipmentCount") public R getEquipmentCount(){ HashMap equipmentCount = equipmentService.getEquipmentCount(); return R.ok(equipmentCount); } /** * 获取设备授权状态(下拉框) * @return */ @SaCheckPermission("szzs:equipment:query") @GetMapping("/getEquipmentState") public R getEquipmentState(){ EquipmentStateEnum[] values = EquipmentStateEnum.values(); ArrayList list = new ArrayList<>(); for (EquipmentStateEnum value : values) { StateBo stateBo = new StateBo(); stateBo.setState(value.getState()); stateBo.setName(value.getName()); list.add(stateBo); } return R.ok(list); } /** * 获取设备在线状态(下拉框) * @return */ @SaCheckPermission("szzs:equipment:query") @GetMapping("/getEquipmentOnState") public R getEquipmentOnState(){ EquipmentOnStateEnum[] values = EquipmentOnStateEnum.values(); ArrayList list = new ArrayList<>(); for (EquipmentOnStateEnum value : values) { StateBo stateBo = new StateBo(); stateBo.setState(value.getState()); stateBo.setName(value.getName()); list.add(stateBo); } return R.ok(list); } /** * 改变设备状态(休眠) * @return */ @SaCheckPermission("szzs:equipment:query") @GetMapping("/equipmentOnStatedormancy") public R equipmentOnStatedormancy(@NotBlank @RequestParam("equipmentCode") String equipmentCode){ String s = equipmentService.equipmentOnStatedormancy(equipmentCode); return R.ok(s); } /** * 改变设备状态(唤醒) * @return */ @GetMapping ("/equipmentOnStateChange") public R equipmentOnStateChange(@NotBlank @RequestParam("equipmentCode") String equipmentCode,@NotBlank @RequestParam("change")String change){ String s = null; if ("true".equals(change)){ s = equipmentService.equipmentOnStateWakeup(equipmentCode); }else if("false".equals(change)){ s = equipmentService.equipmentOnStatedormancy(equipmentCode); } return R.ok(s); } }