From 89c51da30386b5001805778b666043041bc155fb Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 26 七月 2024 17:40:58 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/service/src/main/java/com/doumee/service/business/ShopService.java | 2
wechat_staff/static/images/mingpian_bg_nianxian.png | 0
wechat_staff/pages/store/staff.less | 73 +++++---------
wechat_staff/pages/store/staff.wxml | 13 +-
server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java | 5 +
wechat_staff/pages/consult/detail.js | 10 +
wechat_staff/project.private.config.json | 7 +
server/service/src/main/java/com/doumee/service/business/impl/BjParamServiceImpl.java | 2
wechat_jiaxuan/pages/store/staff.less | 5
wechat_staff/components/detailFooter/index.wxml | 2
wechat_staff/pages/store/staff.wxss | 68 +++++--------
server/service/src/main/java/com/doumee/core/utils/Constants.java | 2
server/web/src/main/java/com/doumee/api/web/PersonnelApi.java | 10 ++
wechat_staff/static/images/mingpian_bg_kehu.png | 0
server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java | 40 ++++++++
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java | 2
wechat_staff/components/detailFooter/index.js | 18 +++
wechat_staff/pages/consult/detail.wxml | 8 -
wechat_jiaxuan/pages/index/index.js | 2
19 files changed, 158 insertions(+), 111 deletions(-)
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index a236b56..c58b046 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -695,7 +695,7 @@
Response response = client.newCall(request).execute();
if (response.isSuccessful()) {
InputStream inputStream = new ByteArrayInputStream(response.body().bytes());
- /* ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ /*ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len = -1;
while ((len = inputStream.read(buffer)) != -1) {
diff --git a/server/service/src/main/java/com/doumee/service/business/ShopService.java b/server/service/src/main/java/com/doumee/service/business/ShopService.java
index 33c3568..8160c27 100644
--- a/server/service/src/main/java/com/doumee/service/business/ShopService.java
+++ b/server/service/src/main/java/com/doumee/service/business/ShopService.java
@@ -93,6 +93,8 @@
*/
PageData<Shop> findPage(PageWrap<Shop> pageWrap);
+ List<Shop> getUserShopList(Long userId);
+
/**
* 鏉′欢缁熻
*
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/BjParamServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/BjParamServiceImpl.java
index 0afa131..f3dd58e 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/BjParamServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/BjParamServiceImpl.java
@@ -216,7 +216,7 @@
public BjParamConfigResponse getBjParamConfig(){
BjParamConfigResponse bjParamConfigResponse = new BjParamConfigResponse();
List<BjParam> bjParamList = bjParamMapper.selectList(new QueryWrapper<BjParam>()
- .lambda().eq(BjParam::getIsdeleted,Constants.ZERO));
+ .lambda().eq(BjParam::getIsdeleted,Constants.ZERO).orderByAsc(BjParam::getSortnum));
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(bjParamList)){
List<BjParam> roughList = bjParamList.stream().filter(i->i.getType().equals(Constants.ZERO+"")&& StringUtils.isEmpty(i.getParentId())).collect(Collectors.toList());
if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(roughList)){
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
index 10cdaf7..a57de5b 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
@@ -338,6 +338,11 @@
ztContentListRequest.setId(id);
ZTCaseInfoResponse response = zbomZhongTaiService.getWholecaseInfo(ztContentListRequest);
if(Objects.nonNull(response)){
+// if(StringUtils.isNotBlank(response.getPanorama())){
+// response.setPanorama(
+// response.getPanorama().replace("https://720.","https://720-3.").replace("https://720-2.","https://720-3.")
+// );
+// }
//鏌ヨ瀵艰喘淇℃伅 杩涜淇℃伅缁戝畾涓庤繑鍥�
if(StringUtils.isNotBlank(salesId)){
Users users = usersMapper.selectById(salesId);
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
index a1c246c..41cfa35 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -1032,4 +1032,44 @@
);
}
+ @Override
+ public List<Shop> getUserShopList(Long userId) {
+ Users users = usersMapper.selectById(userId);
+ if(Objects.isNull(users)){
+ return new ArrayList<>();
+ }
+ Shop userShop = shopMapper.selectById(users.getDepartmentId());
+ if(Objects.isNull(userShop)){
+ return new ArrayList<>();
+ }
+ List<Shop> shopList = shopMapper.selectList(new QueryWrapper<Shop>()
+ .lambda()
+ .eq(Shop::getScode,userShop.getScode())
+ .eq(Shop::getType,Constants.TWO)
+ .eq(Shop::getSecondType,Constants.THREE)
+ );
+ //鏌ヨ缁忚惀鑼冨洿淇℃伅
+ List<CategorySeg> categorySegAllList = categorySegMapper.selectList(new QueryWrapper<CategorySeg>().lambda()
+ .isNotNull(CategorySeg::getOrgId)
+ .eq(CategorySeg::getIsdeleted,Constants.ZERO));
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(categorySegAllList)){
+ for (Shop shop:shopList) {
+ if(StringUtils.isBlank(shop.getOrgId())){
+ continue;
+ }
+ List<CategorySeg> categorySegList = categorySegAllList.stream().filter(i->i.getOrgId().equals(shop.getOrgId())).collect(Collectors.toList());
+ List<UnitCodeVo> unitCodeVoList =systemDictDataBiz.getUnitList();
+ List<String> seqNameList = new ArrayList<>();
+ for(CategorySeg model : categorySegList){
+ String seqName = systemDictDataBiz.getUnitName(model.getUnitCode(),unitCodeVoList);
+ if(Objects.nonNull(seqName)){
+ seqNameList.add(seqName);
+ }
+ }
+ shop.setSeqNameList(seqNameList);
+ }
+ }
+ return shopList;
+ }
+
}
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
index 6429dc8..c0e13d1 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -441,7 +441,7 @@
} catch (Exception e) {
e.printStackTrace();
}
- throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏇存柊鎵嬫満鍙峰け璐�");
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鑾峰彇鎵嬫満鍙峰け璐�");
}
diff --git a/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java b/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
index bbe8434..4899dd7 100644
--- a/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
+++ b/server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
@@ -151,6 +151,16 @@
}
@UserLoginRequired
+ @ApiOperation(value = "鑾峰彇鍛樺伐绠$悊闂ㄥ簵鍒楄〃", notes = "鍛樺伐绔皬绋嬪簭")
+ @GetMapping("/userShopList")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
+ })
+ public ApiResponse<List<Shop>> userShopList () {
+ return ApiResponse.success(shopService.getUserShopList(getMemberId()));
+ }
+
+ @UserLoginRequired
@ApiOperation(value = "闂ㄥ簵璇︽儏", notes = "鍛樺伐绔皬绋嬪簭")
@GetMapping("/shopDetail")
@ApiImplicitParams({
diff --git a/wechat_jiaxuan/pages/index/index.js b/wechat_jiaxuan/pages/index/index.js
index a871c96..003f46a 100644
--- a/wechat_jiaxuan/pages/index/index.js
+++ b/wechat_jiaxuan/pages/index/index.js
@@ -276,7 +276,7 @@
url: '/pages/webView/index',
success: function (res) {
res.eventChannel.emit('data', {
- link: item.content
+ link: item.openContent || item.content
});
}
})
diff --git a/wechat_jiaxuan/pages/store/staff.less b/wechat_jiaxuan/pages/store/staff.less
index e8fcae7..0c0943f 100644
--- a/wechat_jiaxuan/pages/store/staff.less
+++ b/wechat_jiaxuan/pages/store/staff.less
@@ -32,7 +32,7 @@
overflow : hidden;
text-overflow: ellipsis;
display: -webkit-box;
- -webkit-line-clamp: 2;
+ -webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.icon{
@@ -58,7 +58,8 @@
.left {
flex: 1;
display: flex;
- align-items: flex-end;
+ align-items: center;
+ margin-top: 12rpx;
.name {
font-weight: 600;
diff --git a/wechat_staff/components/detailFooter/index.js b/wechat_staff/components/detailFooter/index.js
index 108ad93..3cb0a22 100644
--- a/wechat_staff/components/detailFooter/index.js
+++ b/wechat_staff/components/detailFooter/index.js
@@ -29,6 +29,24 @@
})
},
methods: {
+ handleShare() {
+ let map = [
+ '/pages/detailDis/product',
+ '/pages/detailDis/case',
+ '/pages/detailDis/realpic',
+ '/pages/consult/detail',
+ ]
+ const { info, path} = this.data
+ wx.navigateToMiniProgram({
+ appId: 'wx208dd1edc0be24ee',
+ path: map[path],
+ envVersion: 'trial',
+ extraData: {
+ id: info.id,
+ origin: 'b'
+ }
+ })
+ },
handleEnjoy() {
const {
info
diff --git a/wechat_staff/components/detailFooter/index.wxml b/wechat_staff/components/detailFooter/index.wxml
index 70d01e6..4c805a6 100644
--- a/wechat_staff/components/detailFooter/index.wxml
+++ b/wechat_staff/components/detailFooter/index.wxml
@@ -23,7 +23,7 @@
<!-- -->
<view wx:if="{{ showShare }}" class="shade_modal" style="padding-bottom: {{bottomLift}}px;">
<view class="btns">
- <button open-type="share" class="item" bindtap="handleShare">
+ <button class="item" bindtap="handleShare">
<image src="../../static/icon/wechat.png"></image>
<view>灏忕▼搴忓垎浜�</view>
</button>
diff --git a/wechat_staff/pages/consult/detail.js b/wechat_staff/pages/consult/detail.js
index 0419117..f6af18d 100644
--- a/wechat_staff/pages/consult/detail.js
+++ b/wechat_staff/pages/consult/detail.js
@@ -23,8 +23,14 @@
this.getDetail(options.id)
},
handleDesign() {
- wx.navigateTo({
- url: '/pages/design/design',
+ wx.navigateToMiniProgram({
+ appId: 'wx208dd1edc0be24ee',
+ path: '/pages/consult/detail',
+ envVersion: 'trial',
+ extraData: {
+ id: this.data.info.id,
+ origin: 'b'
+ }
})
},
getDetail(id) {
diff --git a/wechat_staff/pages/consult/detail.wxml b/wechat_staff/pages/consult/detail.wxml
index 59a2a06..552bf59 100644
--- a/wechat_staff/pages/consult/detail.wxml
+++ b/wechat_staff/pages/consult/detail.wxml
@@ -15,13 +15,9 @@
<image class="icon" src="../../static/icon/detail_nav_collected.png" mode="widthFix"></image>
<view class="name">鏀惰棌</view>
</view> -->
- <!-- <button open-type="share" class="item" bindtap="handleShare">
- <image class="icon" src="../../static/icon/detail_nav_share.png" mode="widthFix"></image>
- <view class="name">鍒嗕韩</view>
- </button> -->
- <button class="sub_btn" open-type="share" bindtap="handleShare">
+ <view class="sub_btn" bindtap="handleDesign">
<view>鍒嗕韩</view>
- </button>
+ </view>
</view>
</view>
<!-- -->
diff --git a/wechat_staff/pages/store/staff.less b/wechat_staff/pages/store/staff.less
index e832f51..dde80eb 100644
--- a/wechat_staff/pages/store/staff.less
+++ b/wechat_staff/pages/store/staff.less
@@ -1,4 +1,3 @@
-
.bg_wrap {
width: 750rpx;
height: 400rpx;
@@ -6,20 +5,17 @@
position: fixed;
top: 0;
left: 0;
- z-index: 1;
+ z-index: -1;
}
.container {
padding: 26rpx 40rpx;
- background-color: #fff;
.avatar {
margin-top: 260rpx;
width: 140rpx;
height: 140rpx;
border-radius: 50%;
border: 4rpx solid #FFFFFF;
- position: relative;
- z-index: 2;
}
.desc {
display: flex;
@@ -31,6 +27,14 @@
margin-bottom: 40rpx;
color: #333333;
position: relative;
+ .text{
+ width: 100%;
+ overflow : hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+ }
.icon{
position: absolute;
background: #F7F7F7;
@@ -42,6 +46,7 @@
}
image {
width: 32rpx;
+ height: 32rpx;
margin-right: 20rpx;
}
}
@@ -54,8 +59,8 @@
.left {
flex: 1;
display: flex;
- align-items: flex-end;
-
+ align-items: center;
+ margin-top: 12rpx;
.name {
font-weight: 600;
font-size: 36rpx;
@@ -82,16 +87,23 @@
display: flex;
justify-content: space-between;
margin-bottom: 60rpx;
-
.card {
width: 320rpx;
height: 156rpx;
padding: 28rpx 40rpx;
- background-color: #f7f7f7;
border-radius: 8rpx;
font-size: 26rpx;
color: #333333;
+ position: relative;
+ .bg{
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ z-index: -1;
+ top: 0;
+ left: 0;
+ }
.num {
color: var(--themeColor);
margin-top: 8rpx;
@@ -111,16 +123,17 @@
.line {
display: flex;
+ align-items: flex-start;
font-size: 30rpx;
- margin-bottom: 40rpx;
+ margin-bottom: 42rpx;
.icon {
width: 30rpx;
+ margin-top: 6rpx;
}
.label {
color: #777777;
margin-left: 24rpx;
margin-right: 44rpx;
- width: 140rpx;
}
.val{
flex: 1;
@@ -148,7 +161,7 @@
border-radius: 8rpx;
flex: 1;
image{
- width: 36rpx;
+ width: 32rpx;
margin-right: 12rpx;
}
}
@@ -184,41 +197,5 @@
font-size: 26rpx;
color: #999999;
text-align: center;
- }
-}
-.card_wrap{
- position: fixed;
- border-radius: 8rpx;
- top: 50%;
- left: 75rpx;
- transform: translate(0, -50%);
- width: 600rpx;
- background-color: rgba(0, 0, 0, .2);
- z-index: 999;
- .img1{
- image{
- width: 600rpx;
- border-radius: 8rpx ;
- }
- }
- .btns{
- margin-top: 30rpx;
- display: flex;
- justify-content: space-between;
- width: 100%;
- .btn{
- width: 290rpx;
- height: 88rpx;
- border-radius: 8rpx;
- border: 2rpx solid #FFFFFF;
- display: flex;
- justify-content: center;
- align-items: center;
- color: #fff;
- }
- .save{
- border: none;
- background: linear-gradient( 180deg, #E0B49C 0%, #B68B74 100%);
- }
}
}
\ No newline at end of file
diff --git a/wechat_staff/pages/store/staff.wxml b/wechat_staff/pages/store/staff.wxml
index c5d4067..1ec8c09 100644
--- a/wechat_staff/pages/store/staff.wxml
+++ b/wechat_staff/pages/store/staff.wxml
@@ -9,21 +9,24 @@
<view class="tag">瀵艰喘</view>
<!-- <view class="tag">5骞寸粡楠�</view> -->
</view>
- <image bind:tap="showQrcode" class="qrcode" src="../../static/icon/mingpian_erweima@2x.png" mode="widthFix"></image>
+ <image wx:if="{{ userInfo.qrcodeImgFull }}" bind:tap="showQrcode" class="qrcode" src="../../static/icon/mingpian_erweima@2x.png" mode="widthFix"></image>
</view>
<view class="desc">
<image src="../../static/icon/mingpian_ic_edit@2x.png" mode="widthFix"></image>
- <view>{{userInfo.slogans}}</view>
+ <view class="text">{{userInfo.slogans}}</view>
<view class="icon"></view>
</view>
<view class="static">
<view class="card">
+ <image src="../../static/images/mingpian_bg_nianxian.png" class="bg"></image>
<view>浠庝笟骞撮檺</view>
- <view class="num">{{userInfo.jobDate||'0'}}</view>
+ <view class="num">{{ info.jobDate || '5' }}</view>
</view>
<view class="card">
+ <image src="../../static/images/mingpian_bg_kehu.png" class="bg"></image>
<view>鏈嶅姟瀹㈡埛</view>
- <view class="num">{{userInfo.costomerNum||'0'}}</view>
+ <view class="num" wx:if="{{ info.costomerNum || info.costomerNum == 0 }}">{{ info.costomerNum || '--' }}+</view>
+ <view wx:else class="num">--</view>
</view>
</view>
<view class="guide">
@@ -59,7 +62,7 @@
<image class="avatar" src="{{userInfo.imgurlFull ? userInfo.imgurlFull : '../../static/images/default_avatar.png'}}"></image>
<view class="content">
<view class="name">{{userInfo.name}}</view>
- <view class="desc">瀵艰喘 锝� {{userInfo.jobDate ||'0'}}骞寸粡楠�</view>
+ <view class="desc">瀵艰喘 锝� {{userInfo.jobDate ||'5'}}骞寸粡楠�</view>
</view>
</view>
<image class="qrcode" src="{{userInfo.qrcodeImgFull}}"></image>
diff --git a/wechat_staff/pages/store/staff.wxss b/wechat_staff/pages/store/staff.wxss
index 976570e..19a1e15 100644
--- a/wechat_staff/pages/store/staff.wxss
+++ b/wechat_staff/pages/store/staff.wxss
@@ -5,11 +5,10 @@
position: fixed;
top: 0;
left: 0;
- z-index: 1;
+ z-index: -1;
}
.container {
padding: 26rpx 40rpx;
- background-color: #fff;
}
.container .avatar {
margin-top: 260rpx;
@@ -17,8 +16,6 @@
height: 140rpx;
border-radius: 50%;
border: 4rpx solid #FFFFFF;
- position: relative;
- z-index: 2;
}
.container .desc {
display: flex;
@@ -31,6 +28,14 @@
color: #333333;
position: relative;
}
+.container .desc .text {
+ width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 1;
+ -webkit-box-orient: vertical;
+}
.container .desc .icon {
position: absolute;
background: #F7F7F7;
@@ -42,6 +47,7 @@
}
.container .desc image {
width: 32rpx;
+ height: 32rpx;
margin-right: 20rpx;
}
.name_wrap {
@@ -51,7 +57,8 @@
.name_wrap .left {
flex: 1;
display: flex;
- align-items: flex-end;
+ align-items: center;
+ margin-top: 12rpx;
}
.name_wrap .left .name {
font-weight: 600;
@@ -78,10 +85,18 @@
width: 320rpx;
height: 156rpx;
padding: 28rpx 40rpx;
- background-color: #f7f7f7;
border-radius: 8rpx;
font-size: 26rpx;
color: #333333;
+ position: relative;
+}
+.static .card .bg {
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ z-index: -1;
+ top: 0;
+ left: 0;
}
.static .card .num {
color: var(--themeColor);
@@ -97,17 +112,18 @@
}
.guide .line {
display: flex;
+ align-items: flex-start;
font-size: 30rpx;
- margin-bottom: 40rpx;
+ margin-bottom: 42rpx;
}
.guide .line .icon {
width: 30rpx;
+ margin-top: 6rpx;
}
.guide .line .label {
color: #777777;
margin-left: 24rpx;
margin-right: 44rpx;
- width: 140rpx;
}
.guide .line .val {
flex: 1;
@@ -135,7 +151,7 @@
flex: 1;
}
.footer .btn image {
- width: 36rpx;
+ width: 32rpx;
margin-right: 12rpx;
}
.modal {
@@ -170,38 +186,4 @@
font-size: 26rpx;
color: #999999;
text-align: center;
-}
-.card_wrap {
- position: fixed;
- border-radius: 8rpx;
- top: 50%;
- left: 75rpx;
- transform: translate(0, -50%);
- width: 600rpx;
- background-color: rgba(0, 0, 0, 0.2);
- z-index: 999;
-}
-.card_wrap .img1 image {
- width: 600rpx;
- border-radius: 8rpx ;
-}
-.card_wrap .btns {
- margin-top: 30rpx;
- display: flex;
- justify-content: space-between;
- width: 100%;
-}
-.card_wrap .btns .btn {
- width: 290rpx;
- height: 88rpx;
- border-radius: 8rpx;
- border: 2rpx solid #FFFFFF;
- display: flex;
- justify-content: center;
- align-items: center;
- color: #fff;
-}
-.card_wrap .btns .save {
- border: none;
- background: linear-gradient(180deg, #E0B49C 0%, #B68B74 100%);
}
diff --git a/wechat_staff/project.private.config.json b/wechat_staff/project.private.config.json
index 79e21ef..02f370f 100644
--- a/wechat_staff/project.private.config.json
+++ b/wechat_staff/project.private.config.json
@@ -49,6 +49,13 @@
"query": "",
"launchMode": "default",
"scene": null
+ },
+ {
+ "name": "",
+ "pathName": "pages/consult/detail",
+ "query": "id=1813577799402684418",
+ "launchMode": "default",
+ "scene": null
}
]
}
diff --git a/wechat_staff/static/images/mingpian_bg_kehu.png b/wechat_staff/static/images/mingpian_bg_kehu.png
new file mode 100644
index 0000000..f79d284
--- /dev/null
+++ b/wechat_staff/static/images/mingpian_bg_kehu.png
Binary files differ
diff --git a/wechat_staff/static/images/mingpian_bg_nianxian.png b/wechat_staff/static/images/mingpian_bg_nianxian.png
new file mode 100644
index 0000000..21d0060
--- /dev/null
+++ b/wechat_staff/static/images/mingpian_bg_nianxian.png
Binary files differ
--
Gitblit v1.9.3