package com.huaxu.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.huaxu.common.FileUploadUtil; import com.huaxu.dto.DeviceDto; import com.huaxu.entity.SceneTypeEntity; import com.huaxu.model.AjaxMessage; import com.huaxu.model.Pagination; import com.huaxu.model.ResultStatus; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.validation.annotation.Validated; import org.springframework.ui.ModelMap; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Date; import org.springframework.web.bind.annotation.*; import com.huaxu.entity.SceneEntity; import com.huaxu.service.SceneService; import org.springframework.web.multipart.MultipartFile; /** * 场景信息页面控制器 * @author WYY * @date 2020-11-17 21:15 */ @RestController @RequestMapping("/scene") @Api(tags = "场景管理") public class SceneController { @Autowired private SceneService sceneService; @Value("${SMS.sys_config_path}") private String baseDir; @ApiOperation(value = "分页查询场景") @RequestMapping(value = "/selectPage", method = RequestMethod.GET) @ResponseBody public AjaxMessage> selectPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize, @RequestParam(value = "sceneName", required = false) String sceneName,@RequestParam(required = false) Long companyOrgId,@RequestParam(required = false) Long deptOrgId) { IPage iPage = new Page<>(pageNum, pageSize); SceneEntity sceneEntity = new SceneEntity(); sceneEntity.setSceneName(sceneName); sceneEntity.setCompanyOrgId(companyOrgId); sceneEntity.setDeptOrgId(deptOrgId); iPage = sceneService.findPage(iPage, sceneEntity); Pagination pages = new Pagination<>(iPage); return new AjaxMessage<>(ResultStatus.OK, pages); } @ApiOperation(value = "查询场景树") @RequestMapping(value = "/selectList", method = RequestMethod.POST) @ResponseBody public AjaxMessage> allList() { SceneEntity sceneEntity = new SceneEntity(); List menuEntities = sceneService.findAllList(sceneEntity); return new AjaxMessage<>(ResultStatus.OK, menuEntities); } @ApiOperation(value = "查询场景树") @RequestMapping(value = "/selectListForParm", method = RequestMethod.POST) @ResponseBody public AjaxMessage> selectListForParm(@RequestParam(required = false) Long comId,@RequestParam(required = false) Long deptId) { if (comId != null) { SceneEntity sceneEntity = new SceneEntity(); sceneEntity.setCompanyOrgId(comId); sceneEntity.setDeptOrgId(deptId); List menuEntities = sceneService.findAllList(sceneEntity); return new AjaxMessage<>(ResultStatus.OK, menuEntities); } else { return new AjaxMessage<>(ResultStatus.OK); } } /** * 新增 */ @ApiOperation(value = "场景图片") @RequestMapping(value = "addSceneImage", method = RequestMethod.POST) @ResponseBody public AjaxMessage addUserPhoto(@ApiParam(value = "场景图片", required = true) @RequestParam("avatarfile") MultipartFile file) { String avatar = ""; if (!file.isEmpty()) { try { avatar = FileUploadUtil.uploadWeb(baseDir, file); } catch (IOException e) { return new AjaxMessage<>(ResultStatus.ERROR, e.getMessage()); } } return new AjaxMessage<>(ResultStatus.OK, avatar); } /** * 新增 */ @ApiOperation(value = "新增") @RequestMapping(value = "/add", method = RequestMethod.POST) @ResponseBody public AjaxMessage addScene(@ApiParam(value = "场景", required = true) @RequestBody SceneEntity scene) { int result = sceneService.addScene(scene) ? 1 : 0; return new AjaxMessage<>(ResultStatus.OK, result); } /** * 按ID查询场景 */ @ApiOperation(value = "按ID查询场景") @RequestMapping(value = "/selectById", method = RequestMethod.GET) @ResponseBody public AjaxMessage selectById(@ApiParam(value = "ID", required = true) @RequestParam Long id) { SceneEntity scene = sceneService.findSceneById(id); return new AjaxMessage<>(ResultStatus.OK, scene); } /** * 修改保存场景信息 */ @RequestMapping(value = "/edit", method = RequestMethod.POST) @ResponseBody @ApiOperation(value = "修改保存场景信息") public AjaxMessage editScene(@ApiParam(value = "场景", required = true) @RequestBody SceneEntity scene) { int result = sceneService.updateSceneById(scene) ? 1 : 0; return new AjaxMessage<>(ResultStatus.OK, result); } @RequestMapping(value = "/findByParentIdsLike", method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "根据父级ID查询所有子节点及本身") public List findByParentIdsLike(@ApiParam(value = "父级场景ID", required = false)@RequestParam(required = false) Long id) { List longs = sceneService.findByParentIdsLike(id); return longs; } /** * 删除 */ @ApiOperation(value = "删除") @RequestMapping(value = "/deleteByIds", method = RequestMethod.POST) @ResponseBody public AjaxMessage del(@ApiParam(value = "场景ID", required = true) @RequestBody Long[] ids) { List scenes = sceneService.findByParentSceneIds(ids); if (scenes.size() > 0) { return new AjaxMessage<>(ResultStatus.EXSIT_IS_PARENT_ERROR); } int result = sceneService.delSceneByIds(ids) ? 1 : 0; return new AjaxMessage<>(ResultStatus.OK, result); } }