package com.boco.nbd.wios.manage.controller; import cn.hutool.core.lang.Assert; import com.boco.nbd.cams.core.constant.MessageConstant; import com.boco.nbd.wios.manage.contants.WiosConstant; import com.boco.nbd.wios.manage.entity.bo.CamsAccountBo; import com.boco.nbd.wios.manage.entity.bo.CamsAccountVo; import com.boco.nbd.wios.manage.entity.bo.CamsBaseAccountVo; import com.boco.nbd.wios.manage.service.impl.CamsAccountService; import com.ihidea.component.api.v2.BaseResponse; import com.ihidea.core.support.exception.ServiceException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; 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 springfox.documentation.annotations.ApiIgnore; import java.util.List; import java.util.stream.Collectors; /** * cams账号相关接口 * * @author xgl * @version [版本号, 2020年9月30日] */ @RestController @RequestMapping("api") @Api(tags = {"cams账号相关接口"}) @ApiIgnore public class CamsAccountController { @Autowired private CamsAccountService camsAccountService; /** * 添加cams账号 * * @param camsAccount * @return */ @PostMapping(value = "camsAccount/add") @ApiOperation(value = "添加cams账号") @ApiImplicitParams({@ApiImplicitParam(name = "account", value = "账户", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "roleId", value = "角色id", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "userName", value = "用户姓名", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "departmentId", value = "部门id", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "regionId", value = "区域id", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "alarmId", value = "超时提醒id", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "email", value = "邮箱", dataType = "String", paramType = "query", required = true), }) public BaseResponse<Object> add(CamsAccountBo camsAccount) { if (!StringUtils.isEmpty(camsAccount.getUserName()) && camsAccount.getUserName().length() > WiosConstant.MAX_USER_NAME_LENGTH) { throw new ServiceException("名字过长"); } Assert.notNull(camsAccount.getRoleId(), "角色不能为空"); camsAccountService.add(camsAccount); return new BaseResponse<>(); } /** * 修改cams账号 * * @param accountBo * @return */ @PostMapping(value = "camsAccount/update") @ApiOperation(value = "修改cams账号") @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "账户id", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "departmentId", value = "部门id", dataType = "int", paramType = "query", required = false), @ApiImplicitParam(name = "regionId", value = "区域id", dataType = "String", paramType = "query", required = false), @ApiImplicitParam(name = "alarmId", value = "超时提醒id", dataType = "String", paramType = "query", required = false), @ApiImplicitParam(name = "roleId", value = "角色id", dataType = "int", paramType = "query", required = false), @ApiImplicitParam(name = "status", value = "状态 1:正常 2:禁用 3:删除", dataType = "int", paramType = "query", required = false), @ApiImplicitParam(name = "email", value = "邮箱", dataType = "String", paramType = "query", required = true),}) public BaseResponse<Object> update(CamsAccountBo accountBo) { if (accountBo.getId() == null) { throw new ServiceException(MessageConstant.MISSING_PARAM); } if (!StringUtils.isEmpty(accountBo.getUserName()) && accountBo.getUserName().length() > WiosConstant.MAX_USER_NAME_LENGTH) { throw new ServiceException("名字过长"); } camsAccountService.update(accountBo.getId(), accountBo); return new BaseResponse<>(); } /** * 查询列表 * * @param account * @param userName * @return */ @GetMapping(value = "camsAccount/list") @ApiOperation(value = "查询列表") @ApiImplicitParams({@ApiImplicitParam(name = "account", value = "登陆手机号", dataType = "String", paramType = "query"), @ApiImplicitParam(name = "userName", value = "用户姓名", dataType = "String", paramType = "query"),}) public BaseResponse<Object> list(String account, String userName) { CamsAccountBo condition = new CamsAccountBo(); condition.setAccount(account); condition.setUserName(userName); return new BaseResponse<>(camsAccountService.getList(condition)); } @GetMapping(value = "camsAccount/select") @ApiOperation(value = "查询列表==>下拉使用list效率低下") public BaseResponse<Object> select() { CamsAccountBo condition = new CamsAccountBo(); List<CamsAccountVo> data = camsAccountService.getList(condition); List<CamsBaseAccountVo> result = data.stream().map(s -> s.toBaseVo()).collect(Collectors.toList()); return new BaseResponse<>(result); } /** * 查询详情 * * @param id * @return */ @GetMapping(value = "camsAccount/detail") @ApiOperation(value = "查询详情") @ApiImplicitParams({@ApiImplicitParam(paramType = "query", name = "id", value = "id", required = true, dataType = "int"),}) public BaseResponse<CamsAccountVo> getDetail(Integer id) { Assert.notNull(id, WiosConstant.EMPTY_ID); CamsAccountVo dept = camsAccountService.getDetailById(id); return new BaseResponse<>(dept); } }