对接平台接口
This commit is contained in:
parent
f2a1a8c95a
commit
14387d4198
|
|
@ -1,8 +1,11 @@
|
|||
package com.gitlink.softbot.controller.user;
|
||||
|
||||
import com.gitlink.softbot.global.exception.BotException;
|
||||
import com.gitlink.softbot.global.vo.Response;
|
||||
import com.gitlink.softbot.global.vo.Result;
|
||||
import com.gitlink.softbot.service.user.IUserService;
|
||||
import com.gitlink.softbot.utils.AuthOperate;
|
||||
import com.gitlink.softbot.utils.GitLinkApi;
|
||||
import com.gitlink.softbot.vo.*;
|
||||
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
@ -15,11 +18,15 @@ import javax.validation.Valid;
|
|||
@CrossOrigin()
|
||||
public class UserController {
|
||||
|
||||
|
||||
/**
|
||||
* 注册Bot
|
||||
*/
|
||||
@Resource
|
||||
IUserService userService;
|
||||
|
||||
@Resource
|
||||
GitLinkApi api;
|
||||
@PostMapping("/registerBot")
|
||||
public Result<BotOutputVO> registerBot(@Valid @RequestBody BotInputVO botInputVO ) throws BotException {
|
||||
Result<BotOutputVO> result = new Result<>();
|
||||
|
|
@ -161,7 +168,7 @@ public class UserController {
|
|||
* @return
|
||||
*/
|
||||
@PostMapping("/updateInstallBot")
|
||||
public Result<?> updateInstallBot(@Valid @RequestBody UpdateInstallBotRequest updateInstallBotRequest){
|
||||
public Result<?> updateInstallBot(@Valid @RequestBody UpdateInstallBotRequest updateInstallBotRequest) throws BotException{
|
||||
Result<?> result = new Result<>();
|
||||
userService.updateInstallBot(updateInstallBotRequest);
|
||||
return result.build(200).build("update bot success!");
|
||||
|
|
@ -185,8 +192,8 @@ public class UserController {
|
|||
* @return
|
||||
*/
|
||||
@GetMapping("/getInstallBot")
|
||||
public Result<?> getInstallBot(@RequestParam("user_id") Integer userId, @RequestParam("bot_id") Integer botId) throws BotException{
|
||||
GetInstallBotRequest getInstallBotRequest = new GetInstallBotRequest(userId, botId);
|
||||
public Result<?> getInstallBot(@RequestParam("user_id") Integer userId, @RequestParam("bot_id") Integer botId,@RequestParam("login") String login) throws BotException{
|
||||
GetInstallBotRequest getInstallBotRequest = new GetInstallBotRequest(userId, login,botId);
|
||||
Result<?> result = new Result<>();
|
||||
GetInstallBotResponse getInstallBotResponse = userService.getInstallBot(getInstallBotRequest);
|
||||
return result.build(200).build(getInstallBotResponse).build("get installBot success!");
|
||||
|
|
@ -235,8 +242,10 @@ public class UserController {
|
|||
* @return
|
||||
*/
|
||||
@GetMapping("/getTransferToBot")
|
||||
public Result<GetTransferToBotResponse> getTransferToBotResponseResult(@RequestParam("user_id") Integer userId, @RequestParam("state") Integer state){
|
||||
GetTransferToBotRequest getTransferToBotRequest = new GetTransferToBotRequest(userId, state);
|
||||
public Result<GetTransferToBotResponse> getTransferToBotResponseResult(@RequestParam("user_id") Integer userId,
|
||||
@RequestParam("state") Integer state,
|
||||
@RequestParam("login") String login){
|
||||
GetTransferToBotRequest getTransferToBotRequest = new GetTransferToBotRequest(userId, login,state);
|
||||
Result<GetTransferToBotResponse> result = new Result<>();
|
||||
GetTransferToBotResponse getTransferToBotResponse = userService.getTransferToBot(getTransferToBotRequest);
|
||||
return result.build(200).build("get transferToBot success!").build(getTransferToBotResponse);
|
||||
|
|
@ -307,6 +316,16 @@ public class UserController {
|
|||
Result<GetStoreAllInstallBotResponse> result = new Result<>();
|
||||
return result.build(getStoreAllInstallBotResponse).build(200).build("success!");
|
||||
}
|
||||
/**
|
||||
* 更新ClientSecret
|
||||
*/
|
||||
@PostMapping("/updateClientSecret")
|
||||
public Result<?> updateClientSecret(@RequestParam("user_id") Integer userId,@RequestParam("bot_id") Integer botId){
|
||||
|
||||
Response response = api.activeBotAuth(userId,botId, AuthOperate.UPDATE_SECRET);
|
||||
Result<Object> result = new Result<>();
|
||||
return result.build(response).build(200).build("update success!");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,6 +45,11 @@ public class Bot {
|
|||
|
||||
private String category;
|
||||
|
||||
private String privateKey;
|
||||
|
||||
private Integer owerId;
|
||||
|
||||
private Integer uid;
|
||||
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Date updateTime;
|
||||
|
|
|
|||
|
|
@ -31,6 +31,15 @@ public class InstallBot {
|
|||
|
||||
private Integer state;
|
||||
|
||||
//安装者登录名
|
||||
private String installerLogin;
|
||||
|
||||
//仓库唯一标识
|
||||
private String storeRepo;
|
||||
|
||||
//添加webhookId
|
||||
private Integer webhookId;
|
||||
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
|
|
|
|||
|
|
@ -27,6 +27,11 @@ public class RegisterBot {
|
|||
|
||||
private Integer developerId;
|
||||
|
||||
/**
|
||||
* 注册者登录名
|
||||
*/
|
||||
private String developerLogin;
|
||||
|
||||
@TableField(fill = FieldFill.INSERT)
|
||||
private Date createTime;
|
||||
|
||||
|
|
|
|||
|
|
@ -27,8 +27,18 @@ public class TransferBot {
|
|||
|
||||
private Integer transferFromId;
|
||||
|
||||
/**
|
||||
* 转让者登录名
|
||||
*/
|
||||
private String fromLogin;
|
||||
|
||||
private Integer transferToId;
|
||||
|
||||
/**
|
||||
* 接收者登录名
|
||||
*/
|
||||
private String toLogin;
|
||||
|
||||
private Integer isSuccess;
|
||||
|
||||
private Date transferTime;
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public interface IUserService {
|
|||
//安装Bot
|
||||
void installMarketBot(InstallMarketBotRequest installMarketBotRequest) throws BotException;
|
||||
//用户配置安装的Bot
|
||||
void updateInstallBot(UpdateInstallBotRequest updateInstallBotRequest);
|
||||
void updateInstallBot(UpdateInstallBotRequest updateInstallBotRequest) throws BotException;
|
||||
//删除安装的Bot
|
||||
void deleteInstallBot(DeleteInstallBotRequest deleteInstallBotRequest) throws BotException;
|
||||
//修改上市bot
|
||||
|
|
|
|||
|
|
@ -5,12 +5,17 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.gitlink.softbot.dao.db.*;
|
||||
import com.gitlink.softbot.entity.db.*;
|
||||
import com.gitlink.softbot.global.exception.BotException;
|
||||
import com.gitlink.softbot.global.vo.Response;
|
||||
import com.gitlink.softbot.service.market.IMarketService;
|
||||
import com.gitlink.softbot.service.user.AbstractUserBot;
|
||||
import com.gitlink.softbot.service.user.IUserService;
|
||||
import com.gitlink.softbot.utils.AuthOperate;
|
||||
import com.gitlink.softbot.utils.GitLinkApi;
|
||||
import com.gitlink.softbot.utils.response.AddWebhookResponse;
|
||||
import com.gitlink.softbot.vo.*;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
|
@ -42,6 +47,11 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
@Autowired
|
||||
TransferBotMapper transferBotMapper;
|
||||
|
||||
|
||||
|
||||
@Autowired
|
||||
GitLinkApi api;
|
||||
|
||||
/**
|
||||
* 获取个人注册bot信息
|
||||
* @param userId
|
||||
|
|
@ -64,8 +74,11 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
LimitVO limitVO = getLimitFromLimitEvents(botLimitEvents);
|
||||
GetRegisterBotResponse getRegisterBotResponse = new GetRegisterBotResponse();
|
||||
BotOutputVO botOutputVO = new BotOutputVO();
|
||||
//增加用户登录名
|
||||
botOutputVO.setLogin(registerBot.getDeveloperLogin());
|
||||
BeanUtils.copyProperties(bot,botOutputVO);
|
||||
getRegisterBotResponse.setBotOutputVO(botOutputVO);
|
||||
getRegisterBotResponse.setLogin(registerBot.getDeveloperLogin());
|
||||
botOutputVO.setLimitAndEvents(limitVO);
|
||||
|
||||
//查询是否传让
|
||||
|
|
@ -92,6 +105,7 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
log.info("开始注册Bot{}", JSON.toJSONString(botVO));
|
||||
//校验必填信息信息
|
||||
checkInfo(botVO);
|
||||
|
||||
//插入Bot表
|
||||
botMapper.insert(shiftObject(botVO));
|
||||
Bot insertBot = botMapper.selectOne(new QueryWrapper<Bot>().eq("bot_name",botVO.getBotName()));
|
||||
|
|
@ -104,6 +118,9 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
RegisterBot registerBot = shiftBotToRegisterBot(botVO,insertBot);
|
||||
registerMapper.insert(registerBot);
|
||||
log.info("注册Bot结束{}",JSON.toJSONString(shiftBotToBotOutputVo(botVO,insertBot)));
|
||||
|
||||
//激活Bot
|
||||
api.activeBotAuth(botVO.getUserId(), botVO.getBotId(), AuthOperate.AUTH_ACTIVE);
|
||||
return shiftBotToBotOutputVo(botVO,insertBot);
|
||||
}
|
||||
|
||||
|
|
@ -150,7 +167,6 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
//有变化需要更新
|
||||
if (flag){//权限发生变化则通知安装者
|
||||
//TODO 通知权限发生变化
|
||||
|
||||
//更新权限
|
||||
botLimitMapper.delete(new QueryWrapper<BotLimitEvent>()
|
||||
.eq("bot_id",id));
|
||||
|
|
@ -169,14 +185,7 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
String eventPr = limitVO.getEventPr();
|
||||
//无权限条件下
|
||||
if (StringUtils.isBlank(eventCode)&&StringUtils.isBlank(eventPr)){
|
||||
Limit limit = new Limit();
|
||||
limit.setEvent(5);
|
||||
limit.setReadWriteCode(2);
|
||||
limit.setReadWritePr(2);
|
||||
limit.setAuthCategory(2);
|
||||
List<Limit> limitList = new ArrayList<>();
|
||||
limitList.add(limit);
|
||||
return limitList;
|
||||
throw new BotException("事件不能为空!");
|
||||
}
|
||||
//0:只读1:读写2:无权限
|
||||
Integer jurisDictionCode = limitVO.getJurisDictionCode();
|
||||
|
|
@ -232,7 +241,7 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
registerBots.forEach(registerBot -> {
|
||||
botOutputVOS.add(getBotOutputVoFromLimitAndBot(
|
||||
botMapper.selectById(registerBot.getBotId()),botLimitMapper.selectList(new QueryWrapper<BotLimitEvent>()
|
||||
.eq("bot_id",registerBot.getBotId())),userId
|
||||
.eq("bot_id",registerBot.getBotId())),userId,registerBot.getDeveloperLogin()
|
||||
));
|
||||
});
|
||||
botOutputVOS.forEach(botOutputVO->{
|
||||
|
|
@ -265,12 +274,13 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
throw new BotException("该名称已经被使用!");
|
||||
}
|
||||
}
|
||||
public BotOutputVO getBotOutputVoFromLimitAndBot(Bot bot,List<BotLimitEvent> botLimitEvents,Integer userId){
|
||||
public BotOutputVO getBotOutputVoFromLimitAndBot(Bot bot,List<BotLimitEvent> botLimitEvents,Integer userId,String login){
|
||||
BotOutputVO botOutputVO = new BotOutputVO();
|
||||
botOutputVO.setBotId(bot.getId());
|
||||
botOutputVO.setBotDes(bot.getBotDes());
|
||||
botOutputVO.setBotName(bot.getBotName());
|
||||
botOutputVO.setUserId(userId);
|
||||
botOutputVO.setLogin(login);
|
||||
botOutputVO.setLogo(bot.getLogo());
|
||||
botOutputVO.setWebUrl(bot.getWebUrl());
|
||||
botOutputVO.setWebhook(bot.getWebhook());
|
||||
|
|
@ -328,9 +338,7 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
bot.setBotName(botVO.getBotName());
|
||||
bot.setIsPublic(botVO.getIsPublic());
|
||||
bot.setWebhook(botVO.getWebhook());
|
||||
bot.setClientSecret(getClientSecret());
|
||||
bot.setClientId(getClientId());
|
||||
bot.setWebUrl(getBotUrl(botVO.getBotName()));
|
||||
bot.setWebUrl(botVO.getBotUrl());
|
||||
bot.setLogo(botVO.getLogo());
|
||||
bot.setState(0);
|
||||
return bot;
|
||||
|
|
@ -355,6 +363,7 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
RegisterBot registerBot = new RegisterBot();
|
||||
registerBot.setBotId(bot.getId());
|
||||
registerBot.setDeveloperId(botInputVO.getUserId());
|
||||
registerBot.setDeveloperLogin(botInputVO.getLogin());
|
||||
return registerBot;
|
||||
}
|
||||
public BotOutputVO shiftBotToBotOutputVo(BotInputVO botInputVO,Bot bot){
|
||||
|
|
@ -386,6 +395,25 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
if (!registerBot.getDeveloperId().equals(deleteBotRequest.getUserId())){
|
||||
throw new BotException("不能删除不属于自己的Bot!");
|
||||
}
|
||||
|
||||
//查询所有安装要删除bot的安装信息
|
||||
List<InstallBot> installBots = installMapper.selectList(Wrappers.<InstallBot>lambdaQuery()
|
||||
.eq(InstallBot::getBotId,deleteBotRequest.getBotId()));
|
||||
if (installBots!=null&&installBots.size()>0){
|
||||
|
||||
//批量插入installBot表,添加webhook
|
||||
for (InstallBot installBot : installBots) {
|
||||
|
||||
//构造接口参数
|
||||
Object[] objects = new Object[]{deleteBotRequest.getLogin(), installBot.getStoreRepo()};
|
||||
|
||||
//调用平台api,删除所有相关webhook
|
||||
api.deleteWebhook(deleteBotRequest.getUserId(),objects,installBot.getWebhookId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
int flag1 = botMapper.deleteById(deleteBotRequest.getBotId());
|
||||
//2.删除limit表中数据
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
|
|
@ -532,7 +560,7 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void installMarketBot(InstallMarketBotRequest installMarketBotRequest) throws BotException{
|
||||
public void installMarketBot(InstallMarketBotRequest installMarketBotRequest) throws BotException {
|
||||
|
||||
try {
|
||||
//1.校验有没有安装过此Bot
|
||||
|
|
@ -544,9 +572,32 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
}
|
||||
//1.插入到installBot表中
|
||||
List<Integer> storeList = installMarketBotRequest.getStoreList();
|
||||
storeList.forEach(store ->{
|
||||
installMapper.insert(getInstallBot(installMarketBotRequest,store));
|
||||
});
|
||||
List<InstallBot> installBotList = new ArrayList<>();
|
||||
|
||||
//批量构造InstallBot
|
||||
getInstallBots(installBotList,installMarketBotRequest,storeList);
|
||||
|
||||
//查询订阅事件
|
||||
List<BotLimitEvent> botLimitEvents = botLimitMapper.selectList(Wrappers.<BotLimitEvent>lambdaQuery()
|
||||
.eq(BotLimitEvent::getBotId, installMarketBotRequest.getBotId()));
|
||||
assert botLimitEvents != null && botLimitEvents.size() > 0;
|
||||
Webhook webhook = getWebhook(botLimitEvents);
|
||||
|
||||
//批量插入installBot表,添加webhook
|
||||
for (InstallBot installBot : installBotList) {
|
||||
//插入表
|
||||
installMapper.insert(installBot);
|
||||
|
||||
//先获取webhookId构造webhook
|
||||
Object[] objects = new Object[]{installMarketBotRequest.getLogin(), installBot.getStoreRepo()};
|
||||
Response response = api.addWebhook(installMarketBotRequest.getUserId(), objects, webhook);
|
||||
AddWebhookResponse addWebhookResponse = JSON.parseObject(response.getData().toString(),AddWebhookResponse.class);
|
||||
|
||||
//回写WebhookId
|
||||
installBot.setWebhookId(addWebhookResponse.getId());
|
||||
installMapper.updateById(installBot);
|
||||
}
|
||||
|
||||
//2.对MarketBot表中install_num加1
|
||||
MarketBot updateMarketBot = marketBotMapper.selectOne(new QueryWrapper<MarketBot>()
|
||||
.eq("bot_id",installMarketBotRequest.getBotId()));
|
||||
|
|
@ -569,22 +620,61 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
throw new BotException("安装失败!");
|
||||
}
|
||||
|
||||
// //4.对es中install_num加1
|
||||
// marketService.updateBotInstall(String.valueOf(installMarketBotRequest.getBotId()),"+");
|
||||
}
|
||||
public InstallBot getInstallBot(InstallMarketBotRequest installMarketBotRequest,Integer storeId){
|
||||
InstallBot installBot = new InstallBot();
|
||||
installBot.setBotId(installMarketBotRequest.getBotId());
|
||||
installBot.setInstallerId(installMarketBotRequest.getUserId());
|
||||
installBot.setStoreId(storeId);
|
||||
installBot.setState(installMarketBotRequest.getState());
|
||||
return installBot;
|
||||
|
||||
private Webhook getWebhook(List<BotLimitEvent> limitEvents){
|
||||
|
||||
assert !Objects.isNull(limitEvents);
|
||||
Webhook webhook = new Webhook();
|
||||
Object[] objects = new Object[limitEvents.size()];
|
||||
for (int i = 0; i < limitEvents.size(); i++) {
|
||||
if (limitEvents.get(i).getEvent()==0){
|
||||
objects[i]="push";
|
||||
}else if (limitEvents.get(i).getEvent()==1){
|
||||
objects[i]="create";
|
||||
}else if (limitEvents.get(i).getEvent()==2){
|
||||
objects[i]="delete";
|
||||
}else if (limitEvents.get(i).getEvent()==3){
|
||||
objects[i]="pull_request";
|
||||
}else {
|
||||
objects[i]="pull_request_assign";
|
||||
}
|
||||
}
|
||||
Bot bot = botMapper.selectById(limitEvents.get(0).getBotId());
|
||||
webhook.setEvents(objects);
|
||||
webhook.setContent_type("json");
|
||||
webhook.setUrl(bot.getWebUrl());
|
||||
webhook.setHttp_method("POST");
|
||||
webhook.setBranch_filter("*");
|
||||
return webhook;
|
||||
}
|
||||
public void getInstallBots(List<InstallBot> installBots,InstallMarketBotRequest installMarketBotRequest,List<Integer> storeIds){
|
||||
// InstallBot installBot = new InstallBot();
|
||||
// installBot.setBotId(installMarketBotRequest.getBotId());
|
||||
// installBot.setInstallerId(installMarketBotRequest.getUserId());
|
||||
// installBot.setStoreId(storeId);
|
||||
// installBot.setState(installMarketBotRequest.getState());
|
||||
if (storeIds!=null&&storeIds.size()>0){
|
||||
storeIds.forEach(storeId->{
|
||||
InstallBot installBot = new InstallBot();
|
||||
installBot.setBotId(installMarketBotRequest.getBotId());
|
||||
installBot.setInstallerId(installMarketBotRequest.getUserId());
|
||||
installBot.setInstallerLogin(installMarketBotRequest.getLogin());
|
||||
installBot.setStoreId(storeId);
|
||||
installBot.setStoreRepo(installMarketBotRequest.getRepoMap().get(storeId));
|
||||
installBot.setState(installMarketBotRequest.getState());
|
||||
installBots.add(installBot);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
public InstallBot getInstallBot(UpdateInstallBotRequest updateInstallBotRequest,Integer storeId){
|
||||
InstallBot installBot = new InstallBot();
|
||||
installBot.setBotId(updateInstallBotRequest.getBotId());
|
||||
installBot.setInstallerId(updateInstallBotRequest.getUserId());
|
||||
installBot.setStoreId(storeId);
|
||||
installBot.setInstallerLogin(updateInstallBotRequest.getLogin());
|
||||
installBot.setStoreRepo(updateInstallBotRequest.getRepoMap().get(storeId));
|
||||
//TODO 如果bot生效,通过平台该bot
|
||||
installBot.setState(updateInstallBotRequest.getState());
|
||||
return installBot;
|
||||
|
|
@ -592,20 +682,47 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateInstallBot(UpdateInstallBotRequest updateInstallBotRequest) {
|
||||
public void updateInstallBot(UpdateInstallBotRequest updateInstallBotRequest) throws BotException{
|
||||
|
||||
if (updateInstallBotRequest.getState()==0){
|
||||
//TODO 挂起要验证密码
|
||||
}
|
||||
//1.先删除botId和userId对应的所有installBot
|
||||
List<InstallBot> installBotList = installMapper.selectList(Wrappers.<InstallBot>lambdaQuery()
|
||||
.eq(InstallBot::getBotId,updateInstallBotRequest.getBotId())
|
||||
.eq(InstallBot::getInstallerId,updateInstallBotRequest.getUserId()));
|
||||
|
||||
if (!Objects.isNull(installBotList)){
|
||||
|
||||
for (InstallBot installBot : installBotList){
|
||||
//先删除webhook
|
||||
Object[] objects = new Object[]{updateInstallBotRequest.getLogin(),installBot.getStoreRepo()};
|
||||
api.deleteWebhook(updateInstallBotRequest.getUserId(),objects,installBot.getWebhookId());
|
||||
}
|
||||
}
|
||||
|
||||
installMapper.delete(new QueryWrapper<InstallBot>()
|
||||
.eq("bot_id",updateInstallBotRequest.getBotId())
|
||||
.eq("installer_id",updateInstallBotRequest.getUserId()));
|
||||
List<Integer> storeList = updateInstallBotRequest.getStoreList();
|
||||
//2.然后重新插入所有storeId;
|
||||
storeList.forEach(store->{
|
||||
installMapper.insert(getInstallBot(updateInstallBotRequest,store));
|
||||
});
|
||||
|
||||
//2.然后重新插入所有storeId; //新增webhook
|
||||
List<BotLimitEvent> botLimitEvents = botLimitMapper.selectList(Wrappers.<BotLimitEvent>lambdaQuery()
|
||||
.eq(BotLimitEvent::getBotId,updateInstallBotRequest.getBotId()));
|
||||
|
||||
Webhook webhook = getWebhook(botLimitEvents);
|
||||
for (Integer store : storeList){
|
||||
InstallBot installBot = getInstallBot(updateInstallBotRequest,store);
|
||||
installMapper.insert(installBot);
|
||||
|
||||
Object[] objects = new Object[]{updateInstallBotRequest.getLogin(),installBot.getStoreRepo()};
|
||||
try {
|
||||
Response response = api.addWebhook(updateInstallBotRequest.getUserId(),objects,webhook);
|
||||
AddWebhookResponse addWebhookResponse = JSON.parseObject(response.getData().toString(),AddWebhookResponse.class);
|
||||
installBot.setWebhookId(addWebhookResponse.getId());
|
||||
installMapper.updateById(installBot);
|
||||
}catch (Exception e){
|
||||
throw new BotException("添加webhook失败");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -629,12 +746,17 @@ public class UserService extends AbstractUserBot implements IUserService {
|
|||
marketBot.setInstallNum(marketBot.getInstallNum()-1);
|
||||
marketBotMapper.updateById(marketBot);
|
||||
}
|
||||
// //3.es中install_num减去1
|
||||
// marketService.updateBotInstall(String.valueOf(deleteInstallBotRequest.getBotId()),"-");
|
||||
|
||||
|
||||
//删除install_bot
|
||||
installMapper.delete(new QueryWrapper<InstallBot>()
|
||||
.eq("bot_id",deleteInstallBotRequest.getBotId())
|
||||
.eq("installer_id",deleteInstallBotRequest.getUserId()));
|
||||
InstallBot installBot = installMapper.selectOne(Wrappers.<InstallBot>lambdaQuery()
|
||||
.eq(InstallBot::getBotId,deleteInstallBotRequest.getBotId())
|
||||
.eq(InstallBot::getInstallerId,deleteInstallBotRequest.getUserId()));
|
||||
installMapper.deleteById(installBot.getId());
|
||||
|
||||
//删除webhook
|
||||
Object[] objects = new Object[]{deleteInstallBotRequest.getLogin(),installBot.getStoreRepo()};
|
||||
api.deleteWebhook(deleteInstallBotRequest.getUserId(),objects,installBot.getWebhookId());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
package com.gitlink.softbot.utils;
|
||||
|
||||
public class AuthOperate {
|
||||
|
||||
public final static String AUTH_ACTIVE = "auth_active";
|
||||
public final static String UPDATE_SECRET = "update_secret";
|
||||
public final static String UPDATE_PRIVATE_KEY = "update_private_key";
|
||||
|
||||
}
|
||||
|
|
@ -2,9 +2,6 @@ package com.gitlink.softbot.utils;
|
|||
|
||||
|
||||
import com.gitlink.softbot.global.vo.Response;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
package com.gitlink.softbot.utils.response;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class AddWebhookResponse {
|
||||
|
||||
private Integer Id;
|
||||
private String type;
|
||||
private String contentType;
|
||||
private String httpMethod;
|
||||
private String url;
|
||||
private String[] events;
|
||||
private Boolean active;
|
||||
private String branchFilter;
|
||||
private Date createdAt;
|
||||
}
|
||||
|
|
@ -25,6 +25,8 @@ public class BotInputVO implements Serializable {
|
|||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
|
||||
private String login;
|
||||
|
||||
private Integer botId;
|
||||
|
||||
//bot名称
|
||||
|
|
@ -45,6 +47,9 @@ public class BotInputVO implements Serializable {
|
|||
//是否公开
|
||||
private Integer isPublic;
|
||||
|
||||
//TODO 前端改协议
|
||||
private String botUrl;
|
||||
|
||||
/**
|
||||
* 权限与事件
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -23,6 +23,8 @@ public class BotOutputVO implements Serializable {
|
|||
|
||||
private Integer userId;
|
||||
|
||||
private String login;
|
||||
|
||||
//bot名称
|
||||
private String botName;
|
||||
|
||||
|
|
|
|||
|
|
@ -22,6 +22,9 @@ public class BotToMarketRequest implements Serializable {
|
|||
|
||||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
|
||||
private String login;
|
||||
|
||||
@NotNull(message = "botId is required")
|
||||
private Integer botId;
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@ import java.io.Serializable;
|
|||
public class CancelTransferBotRequest implements Serializable {
|
||||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
|
||||
private String login;
|
||||
|
||||
@NotNull(message = "botId is required")
|
||||
private Integer botId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ import javax.validation.constraints.NotNull;
|
|||
public class DeleteBotRequest {
|
||||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
|
||||
private String login;
|
||||
|
||||
@NotNull(message = "botId is required")
|
||||
private Integer botId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,9 @@ import javax.validation.constraints.NotNull;
|
|||
public class DeleteInstallBotRequest {
|
||||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
|
||||
private String login;
|
||||
|
||||
@NotNull(message = "botId is required")
|
||||
private Integer botId;
|
||||
private String password;
|
||||
|
|
|
|||
|
|
@ -21,5 +21,7 @@ public class GetAllInstallBotsResponse {
|
|||
|
||||
Integer userId;
|
||||
|
||||
String login;
|
||||
|
||||
List<InstallBotInfo> installBots;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,4 +18,5 @@ import java.io.Serializable;
|
|||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class GetBotRequest implements Serializable {
|
||||
private Integer userId;
|
||||
private String login;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,5 +18,6 @@ import java.util.List;
|
|||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class GetBotResponse {
|
||||
private Integer userId;
|
||||
private String login;
|
||||
private List<BotOutputVO> list;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import java.io.Serializable;
|
|||
public class GetInstallBotRequest implements Serializable {
|
||||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
private String login;
|
||||
@NotNull(message = "botId is required")
|
||||
private Integer botId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import java.util.List;
|
|||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class GetInstallBotResponse implements Serializable {
|
||||
private Integer userId;
|
||||
private String login;
|
||||
private Integer botId;
|
||||
private String marketName;
|
||||
private Integer state;
|
||||
|
|
|
|||
|
|
@ -20,4 +20,5 @@ import java.io.Serializable;
|
|||
public class GetMarketBotsRequest implements Serializable {
|
||||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
private String login;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import java.util.List;
|
|||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class GetMarketBotsResponse implements Serializable {
|
||||
private Integer userId;
|
||||
private String login;
|
||||
private List<GetMarketBot> getMarketBots;
|
||||
|
||||
public GetMarketBot getMarketBot(MarketBot marketBot){
|
||||
|
|
|
|||
|
|
@ -18,5 +18,6 @@ import java.util.List;
|
|||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class GetRegisterBotResponse {
|
||||
private Integer userId;
|
||||
private String login;
|
||||
private BotOutputVO botOutputVO;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import java.io.Serializable;
|
|||
public class GetTransferFromBotRequest implements Serializable {
|
||||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
private String login;
|
||||
@NotNull(message = "botId is required")
|
||||
private Integer botId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ import lombok.NoArgsConstructor;
|
|||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class GetTransferFromBotResponse {
|
||||
private Integer userId;
|
||||
private String login;
|
||||
private Integer botId;
|
||||
private Integer state;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import java.io.Serializable;
|
|||
public class GetTransferToBotRequest implements Serializable {
|
||||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
private String login;
|
||||
@NotNull(message = "state is required")
|
||||
private Integer state;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import java.util.List;
|
|||
@Slf4j
|
||||
public class GetTransferToBotResponse implements Serializable {
|
||||
private Integer userId;
|
||||
private String login;
|
||||
private List<GetTransferToBot> botList;
|
||||
public GetTransferToBot getTransferToBot(Bot bot, TransferBot transferBot){
|
||||
log.info("bot:{}",bot);
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import lombok.NoArgsConstructor;
|
|||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
|
|
@ -19,7 +20,10 @@ import java.util.List;
|
|||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public class InstallMarketBotRequest implements Serializable {
|
||||
private Integer userId;
|
||||
private String login;
|
||||
private Integer botId;
|
||||
private Integer state;
|
||||
private List<Integer> storeList;
|
||||
//TODO 前端修改
|
||||
private Map<Integer,String> repoMap;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import java.io.Serializable;
|
|||
public class TransferBotRequest implements Serializable {
|
||||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
private String login;
|
||||
@NotNull(message = "userName is required")
|
||||
private String userName;
|
||||
@NotNull(message = "botId is required")
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import lombok.NoArgsConstructor;
|
|||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
|
|
@ -21,10 +22,13 @@ import java.util.List;
|
|||
public class UpdateInstallBotRequest implements Serializable {
|
||||
@NotNull(message = "userId is required")
|
||||
private Integer userId;
|
||||
private String login;
|
||||
@NotNull(message = "botId is required")
|
||||
private Integer botId;
|
||||
@NotNull(message = "state is required")
|
||||
private Integer state;
|
||||
private String password;
|
||||
private List<Integer> storeList;
|
||||
//前端修改 storeId-repo
|
||||
private Map<Integer,String> repoMap;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue