From ed4a5236bab800094be4a8378f5098eebe3de6ac Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 04 四月 2024 23:30:30 +0800
Subject: [PATCH] 清楚不不要的mapstruct文件
---
smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/impl/PostServiceImpl.java | 239 +++++++++++++----------------------------------------------
1 files changed, 52 insertions(+), 187 deletions(-)
diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/impl/PostServiceImpl.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/impl/PostServiceImpl.java
index d517bf0..339d06e 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/impl/PostServiceImpl.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/system/service/impl/PostServiceImpl.java
@@ -1,15 +1,24 @@
package com.qianwen.smartman.modules.system.service.impl;
-import com.alibaba.excel.write.merge.AbstractMergeStrategy;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import java.lang.invoke.SerializedLambda;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
-import com.qianwen.smartman.common.cache.RegionCache;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.write.merge.AbstractMergeStrategy;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.qianwen.core.cache.utils.CacheUtil;
+import com.qianwen.core.excel.util.ExcelUtil;
+import com.qianwen.core.log.exception.ServiceException;
+import com.qianwen.core.mp.base.BaseServiceImpl;
+import com.qianwen.core.oss.model.BladeFile;
+import com.qianwen.core.tool.utils.Func;
import com.qianwen.smartman.common.constant.CommonConstant;
import com.qianwen.smartman.common.constant.ExcelConstant;
import com.qianwen.smartman.common.constant.ExtCacheConstant;
@@ -18,12 +27,7 @@
import com.qianwen.smartman.common.utils.Lambda;
import com.qianwen.smartman.common.utils.MessageUtils;
import com.qianwen.smartman.common.utils.ValidatorUtils;
-import com.qianwen.core.cache.utils.CacheUtil;
-import com.qianwen.core.excel.util.ExcelUtil;
-import com.qianwen.core.log.exception.ServiceException;
-import com.qianwen.core.mp.base.BaseServiceImpl;
-import com.qianwen.core.oss.model.BladeFile;
-import com.qianwen.core.tool.utils.Func;
+import com.qianwen.smartman.modules.cps.entity.Employee;
import com.qianwen.smartman.modules.cps.service.IEmployeeService;
import com.qianwen.smartman.modules.resource.builder.oss.OssBuilder;
import com.qianwen.smartman.modules.system.convert.PostConvert;
@@ -33,10 +37,6 @@
import com.qianwen.smartman.modules.system.service.IPostService;
import com.qianwen.smartman.modules.system.vo.PostDetailVO;
import com.qianwen.smartman.modules.system.vo.PostSelectVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.stereotype.Service;
-import org.springframework.web.multipart.MultipartFile;
@Service
/* loaded from: blade-api.jar:BOOT-INF/classes/org/springblade/modules/system/service/impl/PostServiceImpl.class */
@@ -47,154 +47,6 @@
@Lazy
private IEmployeeService employeeService;
- private static /* synthetic */ Object $deserializeLambda$(SerializedLambda lambda) {
- String implMethodName = lambda.getImplMethodName();
- boolean z = true;
- switch (implMethodName.hashCode()) {
- case -1460557789:
- if (implMethodName.equals("getPostCode")) {
- z = false;
- break;
- }
- break;
- case -1460243263:
- if (implMethodName.equals("getPostName")) {
- z = true;
- break;
- }
- break;
- case 98245393:
- if (implMethodName.equals("getId")) {
- z = true;
- break;
- }
- break;
- case 713563345:
- if (implMethodName.equals("getPostId")) {
- z = true;
- break;
- }
- break;
- case 771206363:
- if (implMethodName.equals("getTenantId")) {
- z = true;
- break;
- }
- break;
- case 803533544:
- if (implMethodName.equals("getStatus")) {
- z = true;
- break;
- }
- break;
- }
- switch (z) {
- case false:
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Post") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getPostCode();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Post") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getPostCode();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Post") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getPostCode();
- };
- }
- break;
- case true:
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Post") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getPostName();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Post") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getPostName();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Post") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getPostName();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Post") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getPostName();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/system/entity/Post") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getPostName();
- };
- }
- break;
- case true:
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/modules/cps/entity/Employee") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getPostId();
- };
- }
- break;
- case true:
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
- return (v0) -> {
- return v0.getId();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Long;")) {
- return (v0) -> {
- return v0.getId();
- };
- }
- break;
- case true:
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/tenant/mp/TenantEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getTenantId();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/tenant/mp/TenantEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/String;")) {
- return (v0) -> {
- return v0.getTenantId();
- };
- }
- break;
- case RegionCache.VILLAGE_LEVEL /* 5 */:
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
- return (v0) -> {
- return v0.getStatus();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
- return (v0) -> {
- return v0.getStatus();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
- return (v0) -> {
- return v0.getStatus();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
- return (v0) -> {
- return v0.getStatus();
- };
- }
- if (lambda.getImplMethodKind() == 5 && lambda.getFunctionalInterfaceClass().equals("com/baomidou/mybatisplus/core/toolkit/support/SFunction") && lambda.getFunctionalInterfaceMethodName().equals("apply") && lambda.getFunctionalInterfaceMethodSignature().equals("(Ljava/lang/Object;)Ljava/lang/Object;") && lambda.getImplClass().equals("org/springblade/core/mp/base/BaseEntity") && lambda.getImplMethodSignature().equals("()Ljava/lang/Integer;")) {
- return (v0) -> {
- return v0.getStatus();
- };
- }
- break;
- }
- throw new IllegalArgumentException("Invalid lambda deserialization");
- }
-
@Override // org.springblade.modules.system.service.IPostService
public IPage<PostDetailVO> selectPostPage(IPage<PostDetailVO> page, PostSelectVO postSelectVO) {
return page.setRecords(((PostMapper) this.baseMapper).selectPostPage(page, postSelectVO));
@@ -202,13 +54,17 @@
@Override // org.springblade.modules.system.service.IPostService
public String getPostIds(String tenantId, String postNames) {
+ List<Post> postList = this.baseMapper.selectList(Wrappers.<Post>query().lambda().eq(Post::getTenantId, tenantId)
+ .eq(Post::getStatus, CommonConstant.ENABLE)
+ .in(Post::getPostName, Func.toStrList(postNames)));
+ /*
List<Post> postList = ((PostMapper) this.baseMapper).selectList((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.query().lambda().eq((v0) -> {
return v0.getTenantId();
}, tenantId)).eq((v0) -> {
return v0.getStatus();
}, CommonConstant.ENABLE)).in((v0) -> {
return v0.getPostName();
- }, Func.toStrList(postNames)));
+ }, Func.toStrList(postNames)));*/
if (postList != null && postList.size() > 0) {
return (String) postList.stream().map(post -> {
return Func.toStr(post.getId());
@@ -219,18 +75,18 @@
@Override // org.springblade.modules.system.service.IPostService
public String getPostIdsByFuzzy(String tenantId, String postNames) {
+ LambdaQueryWrapper<Post> wrapper = Wrappers.<Post>query().lambda().eq(Post::getTenantId, tenantId);
+ /*
Wrapper wrapper = (LambdaQueryWrapper) Wrappers.query().lambda().eq((v0) -> {
return v0.getTenantId();
- }, tenantId);
+ }, tenantId);*/
wrapper.and(wrapper2 -> {
List<String> names = Func.toStrList(postNames);
names.forEach(name -> {
- LambdaQueryWrapper lambdaQueryWrapper = (LambdaQueryWrapper) ((LambdaQueryWrapper) wrapper2.like((v0) -> {
- return v0.getPostName();
- }, name)).or();
+ LambdaQueryWrapper lambdaQueryWrapper = wrapper2.like(Post::getPostName, name).or();
});
});
- List<Post> postList = ((PostMapper) this.baseMapper).selectList(wrapper);
+ List<Post> postList = this.baseMapper.selectList(wrapper);
if (postList != null && postList.size() > 0) {
return (String) postList.stream().map(post -> {
return Func.toStr(post.getId());
@@ -246,6 +102,13 @@
@Override // org.springblade.modules.system.service.IPostService
public void checkExistPostNameOrCode(Post post) {
+ Post result = getOne(Lambda.<Post>create()
+ .and(wrapper -> wrapper.eq(Post::getPostName, post.getPostName()).or().eq(Post::getPostCode, post.getPostCode()))
+
+ .ne(Func.isNotEmpty(post.getId()), Post::getId, post.getId())
+ .eq(Post::getStatus, CommonConstant.ENABLE)
+ .limit());
+ /*
Post result = (Post) getOne(((ExtraLambdaQueryWrapper) ((ExtraLambdaQueryWrapper) Lambda.create().and(wrapper -> {
ExtraLambdaQueryWrapper extraLambdaQueryWrapper = (ExtraLambdaQueryWrapper) ((ExtraLambdaQueryWrapper) ((ExtraLambdaQueryWrapper) wrapper.eq((v0) -> {
return v0.getPostName();
@@ -256,7 +119,7 @@
return v0.getId();
}, post.getId()).eq((v0) -> {
return v0.getStatus();
- }, CommonConstant.ENABLE)).limit());
+ }, CommonConstant.ENABLE)).limit());*/
if (Func.isNotEmpty(result)) {
throw new ServiceException(MessageUtils.message("cps.post.name.or.code.already.exists", new Object[0]));
}
@@ -272,9 +135,11 @@
}
HashMap<String, Object> codeMap = new HashMap<>(16);
HashMap<String, Object> nameMap = new HashMap<>(16);
+ List<Post> postList = list(Wrappers.<Post>lambdaQuery().eq(Post::getStatus, CommonConstant.ENABLE));
+ /*
List<Post> postList = list((Wrapper) Wrappers.lambdaQuery().eq((v0) -> {
return v0.getStatus();
- }, CommonConstant.ENABLE));
+ }, CommonConstant.ENABLE));*/
if (Func.isNotEmpty(postList)) {
postList.forEach(x -> {
codeMap.put(x.getPostCode(), null);
@@ -289,7 +154,7 @@
}
}
if (!flag.booleanValue()) {
- MultipartFile multipartFile = ExcelUtil.exportFillTemplateToMultipartFile(ExcelConstant.DIRECTORY + "postFailTemplate" + ExcelConstant.SUFFIX, MessageUtils.message("excel.import.failed.report.name", new Object[0]) + ExcelConstant.SUFFIX, "宀椾綅淇℃伅琛�", (List) data.stream().filter(x2 -> {
+ MultipartFile multipartFile = ExcelUtil.exportFillTemplateToMultipartFile(ExcelConstant.DIRECTORY + "postFailTemplate" + ExcelConstant.SUFFIX, MessageUtils.message("excel.import.failed.report.name", new Object[0]) + ExcelConstant.SUFFIX, "宀椾綅淇℃伅琛�", data.stream().filter(x2 -> {
return Func.isNotEmpty(x2.getFailReason());
}).collect(Collectors.toList()), (Object) null, (AbstractMergeStrategy) null);
BladeFile bladeFile = this.ossBuilder.tempTemplate().putFile(multipartFile.getOriginalFilename(), multipartFile);
@@ -339,9 +204,11 @@
@Override // org.springblade.modules.system.service.IPostService
public Boolean removePost(List<Long> ids, Integer type) {
if (StatusType.REMOVE.getType().equals(type)) {
+ Long postEmployeeNum = Long.valueOf(this.employeeService.count(Wrappers.<Employee>lambdaQuery().in(Employee::getPostId, ids)));
+ /*
Long postEmployeeNum = Long.valueOf(this.employeeService.count((Wrapper) Wrappers.lambdaQuery().in((v0) -> {
return v0.getPostId();
- }, ids)));
+ }, ids)));*/
if (postEmployeeNum.compareTo(Long.valueOf("0")) > 0) {
throw new ServiceException(MessageUtils.message("cps.post.exist.employee", new Object[0]));
}
@@ -352,6 +219,12 @@
}
private boolean checkExistImportEnablePostNameOrCode(String code, String name) {
+ Post result = getOne(Lambda.<Post>create()
+ .and(wrapper -> wrapper.eq(Post::getPostName, name).or().eq(Post::getPostCode, code))
+
+ .eq(Post::getStatus, CommonConstant.DEACTIVATE)
+ .limit());
+ /*
Post result = (Post) getOne(((ExtraLambdaQueryWrapper) ((ExtraLambdaQueryWrapper) Lambda.create().and(wrapper -> {
ExtraLambdaQueryWrapper extraLambdaQueryWrapper = (ExtraLambdaQueryWrapper) ((ExtraLambdaQueryWrapper) ((ExtraLambdaQueryWrapper) wrapper.eq((v0) -> {
return v0.getPostName();
@@ -360,7 +233,7 @@
}, code);
})).eq((v0) -> {
return v0.getStatus();
- }, CommonConstant.DEACTIVATE)).limit());
+ }, CommonConstant.DEACTIVATE)).limit());*/
if (result != null) {
return Boolean.TRUE.booleanValue();
}
@@ -368,17 +241,9 @@
}
private void checkExistEnablePostNameOrCode(Post post) {
- Post result = (Post) getOne(((ExtraLambdaQueryWrapper) ((ExtraLambdaQueryWrapper) Lambda.create().and(wrapper -> {
- ExtraLambdaQueryWrapper extraLambdaQueryWrapper = (ExtraLambdaQueryWrapper) ((ExtraLambdaQueryWrapper) ((ExtraLambdaQueryWrapper) wrapper.eq((v0) -> {
- return v0.getPostName();
- }, post.getPostName())).or()).eq((v0) -> {
- return v0.getPostCode();
- }, post.getPostCode());
- })).ne(Func.isNotEmpty(post.getId()), (v0) -> {
- return v0.getId();
- }, post.getId()).eq((v0) -> {
- return v0.getStatus();
- }, CommonConstant.DEACTIVATE)).limit());
+ Post result = getOne(Lambda.<Post>create().and(wrapper -> {
+ ExtraLambdaQueryWrapper extraLambdaQueryWrapper = wrapper.eq(Post::getPostName, post.getPostName()).or().eq(Post::getPostCode, post.getPostCode());
+ }).ne(Func.isNotEmpty(post.getId()), Post::getId, post.getId()).eq(Post::getStatus, CommonConstant.DEACTIVATE).limit());
if (result != null) {
throw new ServiceException(MessageUtils.message("cps.post.name.already.exist.stop.status", new Object[0]));
}
--
Gitblit v1.9.3