CamsAccountController.java 6.2 KB
Newer Older
苗卫卫 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
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);
    }
}