Commit 1d0412b7 by 罗志长

feat: 第三方平台信息配置

parent f04d606b
package com.makeit.controller.sys;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.module.system.dto.SysApiSecretAddDTO;
import com.makeit.module.system.dto.SysApiSecretEditDTO;
import com.makeit.module.system.entity.SysApiSecret;
import com.makeit.module.system.service.SysApiSecretService;
import com.makeit.module.system.vo.SysApiSecretVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@Api(tags = "第三方平台信息配置")
@RestController
@RequestMapping("/sys/apiSecret")
public class SysApiSecretController {
@Autowired
private SysApiSecretService SysApiSecretService;
@ApiOperation(value = "分页列表", notes = "")
@PostMapping("/page")
public ApiResponseEntity<PageVO<SysApiSecretVO>> page(@RequestBody PageReqDTO<SysApiSecret> page) {
return ApiResponseUtils.success(SysApiSecretService.page(page));
}
@ApiOperation(value = "新增", notes = "")
@PostMapping("/add")
public ApiResponseEntity<?> add(@Validated @RequestBody SysApiSecretAddDTO SysApiSecret) {
SysApiSecretService.add(SysApiSecret);
return ApiResponseUtils.success();
}
@ApiOperation(value = "编辑", notes = "")
@PostMapping("/edit")
public ApiResponseEntity<?> edit(@Validated @RequestBody SysApiSecretEditDTO SysApiSecret) {
SysApiSecretService.edit(SysApiSecret);
return ApiResponseUtils.success();
}
@ApiOperation(value = "详情", notes = "")
@PostMapping("/view")
public ApiResponseEntity<SysApiSecretVO> view(@RequestBody BaseIdDTO baseIdDTO) {
return ApiResponseUtils.success(SysApiSecretService.view(baseIdDTO.getId()));
}
@ApiOperation(value = "删除", notes = "")
@PostMapping("/del")
public ApiResponseEntity<?> del(@RequestBody BaseIdDTO baseIdDTO) {
SysApiSecretService.removeById(baseIdDTO.getId());
return ApiResponseUtils.success();
}
}
package com.makeit.module.system.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ApiModel("第三方平台api信息新增")
@Data
public class SysApiSecretAddDTO {
@NotBlank
@ApiModelProperty(value = "平台编码", required = true)
private String platform;
@NotBlank
@ApiModelProperty(value = "机构id", required = true)
private String orgId;
@ApiModelProperty("描述")
private String description;
}
package com.makeit.module.system.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@ApiModel("第三方平台api信息编辑")
@Data
public class SysApiSecretEditDTO {
@NotBlank
@ApiModelProperty(value = "id", required = true)
private String id;
@NotBlank
@ApiModelProperty(value = "平台编码", required = true)
private String platform;
@NotBlank
@ApiModelProperty(value = "机构id", required = true)
private String orgId;
@ApiModelProperty("描述")
private String description;
}
package com.makeit.module.system.service; package com.makeit.module.system.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.module.system.dto.SysApiSecretAddDTO;
import com.makeit.module.system.dto.SysApiSecretEditDTO;
import com.makeit.module.system.entity.SysApiSecret; import com.makeit.module.system.entity.SysApiSecret;
import com.makeit.module.system.vo.SysApiSecretVO;
public interface SysApiSecretService extends IService<SysApiSecret> { public interface SysApiSecretService extends IService<SysApiSecret> {
PageVO<SysApiSecretVO> page(PageReqDTO<SysApiSecret> page);
void add(SysApiSecretAddDTO sysApiSecret);
void edit(SysApiSecretEditDTO sysApiSecret);
SysApiSecretVO view(String id);
} }
package com.makeit.module.system.service.impl; package com.makeit.module.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.enums.CodeMessageEnum;
import com.makeit.exception.BusinessException;
import com.makeit.module.system.dto.SysApiSecretAddDTO;
import com.makeit.module.system.dto.SysApiSecretEditDTO;
import com.makeit.module.system.entity.SysApiSecret; import com.makeit.module.system.entity.SysApiSecret;
import com.makeit.module.system.mapper.SysApiSecretMapper; import com.makeit.module.system.mapper.SysApiSecretMapper;
import com.makeit.module.system.service.SysApiSecretService; import com.makeit.module.system.service.SysApiSecretService;
import com.makeit.module.system.vo.SysApiSecretVO;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil;
import lombok.SneakyThrows;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.util.List;
@Service @Service
public class SysApiSecretServiceImpl extends ServiceImpl<SysApiSecretMapper, SysApiSecret> implements SysApiSecretService { public class SysApiSecretServiceImpl extends ServiceImpl<SysApiSecretMapper, SysApiSecret> implements SysApiSecretService {
@Override
public PageVO<SysApiSecretVO> page(PageReqDTO<SysApiSecret> page) {
SysApiSecret sysApiSecret = page.getData();
Page<SysApiSecret> p = PageUtil.toMpPage(page);
Page<SysApiSecret> voPage = page(p, listLambdaQueryWrapper(sysApiSecret));
List<SysApiSecret> voList = voPage.getRecords();
List<SysApiSecretVO> list = BeanDtoVoUtils.listVo(voList, SysApiSecretVO.class);
return PageUtil.toPageVO(list, voPage);
}
private LambdaQueryWrapper<SysApiSecret> listLambdaQueryWrapper(SysApiSecret sysApiSecret) {
return new LambdaQueryWrapper<SysApiSecret>()
.eq(StringUtils.isNotBlank(sysApiSecret.getPlatform()), SysApiSecret::getPlatform, sysApiSecret.getPlatform())
.eq(StringUtils.isNotBlank(sysApiSecret.getOrgId()), SysApiSecret::getOrgId, sysApiSecret.getOrgId());
}
@SneakyThrows
@Transactional
@Override
public void add(SysApiSecretAddDTO sysApiSecretAddDTO) {
checkCode(null, sysApiSecretAddDTO.getPlatform());
SysApiSecret sysApiSecret = BeanDtoVoUtils.convert(sysApiSecretAddDTO, SysApiSecret.class);
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
String publicKey = Base64.encodeBase64URLSafeString(keyPair.getPublic().getEncoded());
String privateKey = Base64.encodeBase64URLSafeString(keyPair.getPrivate().getEncoded());
sysApiSecret.setPublicKey(publicKey);
sysApiSecret.setPrivateKey(privateKey);
save(sysApiSecret);
}
private void checkCode(String id, String code) {
SysApiSecret exist = getOne(new QueryWrapper<SysApiSecret>().lambda()
.eq(SysApiSecret::getPlatform, code).last("limit 1"));
if (exist == null) {
return;
}
if (!exist.getId().equals(id)) {
throw new BusinessException(CodeMessageEnum.SYSTEM_ERROR_CODE_DUPLICATE);
}
}
@Transactional
@Override
public void edit(SysApiSecretEditDTO sysApiSecretEditDTO) {
checkCode(sysApiSecretEditDTO.getId(), sysApiSecretEditDTO.getPlatform());
SysApiSecret sysApiSecret = BeanDtoVoUtils.convert(sysApiSecretEditDTO, SysApiSecret.class);
updateById(sysApiSecret);
}
@Override
public SysApiSecretVO view(String id) {
SysApiSecret sysApiSecret = getById(id);
return BeanDtoVoUtils.convert(sysApiSecret, SysApiSecretVO.class);
}
} }
package com.makeit.module.system.vo;
import com.makeit.common.dto.BaseIdDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("第三方平台api信息VO")
@Data
public class SysApiSecretVO extends BaseIdDTO {
@ApiModelProperty("平台")
private String platform;
@ApiModelProperty("公钥")
private String publicKey;
@ApiModelProperty("机构id")
private String orgId;
@ApiModelProperty("描述")
private String description;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment