package com.nova.sankuai.controller.v1; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.nova.sankuai.domain.entity.ProtocolInfo; import com.nova.sankuai.domain.enums.SourceTypeEnum; import com.nova.sankuai.domain.vo.ProtocolInfoVo; import com.nova.sankuai.infra.constants.ResultCode; import com.nova.sankuai.infra.utils.ResultJson; import com.nova.sankuai.service.IProtocolInfoService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.apache.commons.lang3.StringUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * @author weikangdi * @create 2021/10/29 */ @Api(tags = "协议管理") @RestController @RequestMapping(value = "/api/v1/protocolInfo") @AllArgsConstructor public class ProtocolInfoController { private final IProtocolInfoService protocolInfoService; @GetMapping(value = "/getProtocol") @ApiOperation(value = "获取协议") public ResultJson getProtocol(String code) { ProtocolInfo protocolInfo = protocolInfoService.lambdaQuery().eq(ProtocolInfo::getCode, code).one(); if (protocolInfo == null) { return ResultJson.failure(ResultCode.SERVER_ERROR, "没有找到对应的协议"); } return ResultJson.ok(protocolInfo); } @PostMapping(value = "/edit") @ApiOperation(value = "编辑协议") @PreAuthorize("hasAuthority('protocolInfo.edit')") public ResultJson edit(@RequestBody ProtocolInfo protocolInfo) { protocolInfoService.edit(protocolInfo); return ResultJson.success(); } @PostMapping(value = "/getProtocolList") @ApiOperation(value = "获取协议列表") @PreAuthorize("hasAuthority('protocolInfo.getProtocolList')") public ResultJson> getProtocolList(@RequestBody ProtocolInfoVo protocolInfoVo) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.like(StringUtils.isNotBlank(protocolInfoVo.getName()), ProtocolInfo::getName, protocolInfoVo.getName()); wrapper.like(StringUtils.isNotBlank(protocolInfoVo.getAlias()), ProtocolInfo::getAlias, protocolInfoVo.getAlias()); List result = new ArrayList<>(); List resultList = protocolInfoService.list(wrapper); for (ProtocolInfo protocolInfo : resultList) { protocolInfo.setTypeString(SourceTypeEnum.value(protocolInfo.getType())); result.add(protocolInfo); } return ResultJson.ok(result); } }