From fe879975a3e8a0a1aa280fb839e02d159bfbcff8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 27 八月 2019 18:04:38 +0800 Subject: [PATCH] 金币任务多次获取bug修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralGetServiceImpl.java | 394 ++++++++++++++++++++++++++++++++----------------------- 1 files changed, 230 insertions(+), 164 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralGetServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralGetServiceImpl.java index 44beb06..13718a6 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralGetServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/integral/IntegralGetServiceImpl.java @@ -1,30 +1,36 @@ package com.yeshi.fanli.service.impl.integral; import java.util.Date; +import java.util.List; import javax.annotation.Resource; -import org.springframework.cache.annotation.Cacheable; +import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import com.yeshi.fanli.dao.mybatis.ThreeSaleMapper; import com.yeshi.fanli.entity.bus.user.UserInfo; +import com.yeshi.fanli.entity.bus.user.UserInfoExtra; +import com.yeshi.fanli.entity.bus.user.UserRank; import com.yeshi.fanli.entity.integral.IntegralTask; +import com.yeshi.fanli.entity.integral.IntegralTaskRank; import com.yeshi.fanli.entity.integral.IntegralTask.FrequencyEnum; import com.yeshi.fanli.entity.integral.IntegralTask.TaskUniqueKeyEnum; import com.yeshi.fanli.entity.integral.IntegralTaskRecord; import com.yeshi.fanli.exception.integral.IntegralGetException; import com.yeshi.fanli.exception.integral.IntegralTaskRecordException; import com.yeshi.fanli.log.LogHelper; -import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.integral.IntegralGetService; +import com.yeshi.fanli.service.inter.integral.IntegralTaskRankService; import com.yeshi.fanli.service.inter.integral.IntegralTaskRecordService; import com.yeshi.fanli.service.inter.integral.IntegralTaskService; +import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.util.RedisManager; +import com.yeshi.fanli.util.annotation.integral.IntegralGetFrequencyLimit; import com.yeshi.fanli.util.annotation.integral.IntegralGetVersionLimit; -import net.sf.json.JSONObject; - +@Lazy @Service public class IntegralGetServiceImpl implements IntegralGetService { @@ -33,19 +39,38 @@ @Resource private IntegralTaskRecordService integralTaskRecordService; - + @Resource - private ThreeSaleSerivce threeSaleSerivce; + private ThreeSaleMapper threeSaleMapper; @Resource private RedisManager redisManager; + + @Resource + private UserInfoExtraService userInfoExtraService; + + @Resource + private IntegralTaskRankService integralTaskRankService; + // TODO 鏈塨ug + private UserInfo getBossByUid(Long uid) { + return threeSaleMapper.selectBoss(uid); + } + + @IntegralGetVersionLimit(uid = "#uid") @Override - public IntegralTaskRecord addEventStatistic(Long uid, String event, JSONObject params) throws IntegralGetException { + public IntegralTaskRecord addEventStatistic(Long uid, String event) throws IntegralGetException { Date nowDate = new Date(); IntegralTask task = integralTaskService.getByCidAndUniqueKey(null, event); if (task == null) throw new IntegralGetException(1, "浜嬩欢绫诲瀷涓嶅瓨鍦�"); + + if (TaskUniqueKeyEnum.inShop == TaskUniqueKeyEnum.valueOf(event)) { + UserInfo boss = getBossByUid(uid); + if (boss != null) + addInShopLevelOne(boss.getId()); // 涓嬬骇娴忚搴楅摵 + } + if (task.getFrequency() == FrequencyEnum.everyday) { int count = integralTaskRecordService.countGetCountByTaskIdAndDay(task.getId(), uid, nowDate); if (count >= task.getUpperLimit()) @@ -55,10 +80,31 @@ if (count > 0) throw new IntegralGetException(2, "浜嬩欢瑙﹀彂杈惧埌涓婇檺"); } + + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + if (userInfoExtra == null) + throw new IntegralGetException(2, "棰濆淇℃伅涓嶅瓨鍦�"); + + UserRank userRank = userInfoExtra.getUserRank(); + if (userRank == null) + throw new IntegralGetException(2,"绛夌骇淇℃伅涓嶅瓨鍦�"); int goldCoin = task.getGoldCoin(); if (task.getDoubleNum() != null && task.getDoubleNum() > 0) goldCoin = task.getDoubleNum() * goldCoin; + + Long taskId = task.getId(); + IntegralTaskRank traskRank = integralTaskRankService.getByTsakIdAndRankId(taskId, userRank.getId()); + if (traskRank != null) { + Integer addCoin = traskRank.getAddCoin(); + if (addCoin != null && addCoin > 0) + goldCoin += addCoin; + + Integer doubleNum = traskRank.getDoubleNum(); + if (doubleNum != null && doubleNum > 0) { + goldCoin = goldCoin * doubleNum; + } + } IntegralTaskRecord record = new IntegralTaskRecord(); record.setCid(task.getTaskClass().getId()); @@ -68,442 +114,462 @@ record.setUid(uid); try { - IntegralTaskRecord addRecord = integralTaskRecordService.addRecord(record); - if (TaskUniqueKeyEnum.inShop == TaskUniqueKeyEnum.valueOf(event)) { - UserInfo boss = threeSaleSerivce.getBoss(uid); - if (boss != null) - addInShopLevelOne(boss.getId()); // 涓嬬骇娴忚搴楅摵 - } - return addRecord; + IntegralTaskRecord addRecord = integralTaskRecordService.addRecord(record); + return addRecord; } catch (IntegralTaskRecordException e) { throw new IntegralGetException(3, "娣诲姞璁板綍澶辫触"); } - - - - - // switch (event) { - // case "recommendSearch": - // break; - // case "shareInvite": - // break; - // case "inShop": - // break; - // case "scanPush": - // break; - // case "scanGoods": - // break; - // case "scanHomeBanner": - // break; - // case "scanSpecial": - // break; - // case "scanTBCart": - // break; - // } } + @IntegralGetFrequencyLimit(key = "'addRecommendSearch-'+#uid") @Override - public void addRecommendSearch(Long uid) throws IntegralGetException { - + public IntegralTaskRecord addRecommendSearch(Long uid) { + try { + return addEventStatistic(uid, TaskUniqueKeyEnum.recommendSearch.name()); + } catch (IntegralGetException e) { + e.printStackTrace(); + } + return null; } - @Cacheable(value = "integralGetCache", key = "'addSearchResultScan-'+#uid+'-'+#kw") + @IntegralGetFrequencyLimit(key = "'addSearchResultScan-'+#uid+'-'+#kw") @Override - public void addSearchResultScan(Long uid, String kw) throws IntegralGetException { - System.out.println("鎼滅储"); + public IntegralTaskRecord addSearchResultScan(Long uid, String kw) { + try { + return addEventStatistic(uid, TaskUniqueKeyEnum.scanSearchResult.name()); + } catch (IntegralGetException e) { + e.printStackTrace(); + } + + return null; } + @IntegralGetFrequencyLimit(key = "'addShareInvite-'+#uid") @Override - public void addShareInvite(Long uid) throws IntegralGetException { - + public IntegralTaskRecord addShareInvite(Long uid) { + try { + return addEventStatistic(uid, TaskUniqueKeyEnum.shareInvite.name()); + } catch (IntegralGetException e) { + e.printStackTrace(); + } + return null; } + @IntegralGetFrequencyLimit(key = "'addIntoShop-'+#uid+'-'+#shopUrlMD5") @Override - public void addIntoShop(Long uid) throws IntegralGetException { - // TODO Auto-generated method stub - + public IntegralTaskRecord addIntoShop(Long uid, String shopUrlMD5) { + try { + return addEventStatistic(uid, TaskUniqueKeyEnum.inShop.name()); + } catch (IntegralGetException e) { + e.printStackTrace(); + } + return null; } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() private void addInShopLevelOne(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.inShopLevelOne.name(), null); - UserInfo boss = threeSaleSerivce.getBoss(uid); - if (boss != null) + UserInfo boss = getBossByUid(uid); + if (boss != null) addInShopLevelTwo(boss.getId()); // 浜岀骇闃熷憳 + + addEventStatistic(uid, TaskUniqueKeyEnum.inShopLevelOne.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() private void addInShopLevelTwo(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.inShopLevelTwo.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.inShopLevelTwo.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - + @IntegralGetFrequencyLimit(key = "'addScanPushHistory-'+#uid") @Override - public void addScanPushHistory(Long uid) throws IntegralGetException { - // TODO Auto-generated method stub - + public IntegralTaskRecord addScanPushHistory(Long uid) { + try { + return addEventStatistic(uid, TaskUniqueKeyEnum.scanPush.name()); + } catch (IntegralGetException e) { + e.printStackTrace(); + } + return null; } + @IntegralGetFrequencyLimit(key = "'addScanGoodsDetail-'+#uid+'-'+#goodsType+'-'+#goodsId") @Override - public void addScanGoodsDetail(Long uid, int goodsType, Long goodsId) { - // TODO Auto-generated method stub - + public IntegralTaskRecord addScanGoodsDetail(Long uid, int goodsType, Long goodsId) { + try { + return addEventStatistic(uid, TaskUniqueKeyEnum.scanGoods.name()); + } catch (IntegralGetException e) { + e.printStackTrace(); + } + return null; } + @IntegralGetFrequencyLimit(key = "'addScanRecommendBanner-'+#uid+'-'+#id") @Override - public void addScanRecommendBanner(Long uid) { - // TODO Auto-generated method stub - + public IntegralTaskRecord addScanRecommendBanner(Long uid, String id) { + try { + return addEventStatistic(uid, TaskUniqueKeyEnum.scanHomeBanner.name()); + } catch (IntegralGetException e) { + e.printStackTrace(); + } + return null; } + @IntegralGetFrequencyLimit(key = "'addScanRecommendSpecial-'+#uid+'-'+#id") @Override - public void addScanRecommendSpecial(Long uid) { - // TODO Auto-generated method stub + public IntegralTaskRecord addScanRecommendSpecial(Long uid, String id) { + try { + return addEventStatistic(uid, TaskUniqueKeyEnum.scanSpecial.name()); + } catch (IntegralGetException e) { + e.printStackTrace(); + } + return null; } + @IntegralGetFrequencyLimit(key = "'addScanTaoBaoCart-'+#uid") @Override - public void addScanTaoBaoCart(Long uid) { - // TODO Auto-generated method stub - + public IntegralTaskRecord addScanTaoBaoCart(Long uid) { + try { + return addEventStatistic(uid, TaskUniqueKeyEnum.scanTBCart.name()); + } catch (IntegralGetException e) { + e.printStackTrace(); + } + return null; } - @IntegralGetVersionLimit(uid="#uid") + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addTaoLiJinBuy(Long uid, Long goodsId) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.taoLiJinBuy.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.taoLiJinBuy.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - @IntegralGetVersionLimit(uid="#uid") + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addInviteLevelOne(Long uid, Long workerId) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.inviteLevelOne.name(), null); - UserInfo boss = threeSaleSerivce.getBoss(uid); + UserInfo boss = getBossByUid(uid); if (boss != null) addInviteLevelTwo(boss.getId()); + + addEventStatistic(uid, TaskUniqueKeyEnum.inviteLevelOne.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - + /** * 闂存帴閭�璇� + * * @param uid */ - @IntegralGetVersionLimit(uid="#uid") + @IntegralGetVersionLimit(uid = "#uid") @Async() private void addInviteLevelTwo(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.inviteLevelTwo.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.inviteLevelTwo.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addShareSingleGoods(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.shareSingleGoods.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.shareSingleGoods.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addShareMultipleGoods(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.shareMultipleGoods.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.shareMultipleGoods.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addShareTLJGoods(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.shareTLJGoods.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.shareTLJGoods.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addGiveRebateCoupon(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.giveRebateCoupon.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.giveRebateCoupon.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addGiveFreeCoupon(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.giveFreeCoupon.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.giveFreeCoupon.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addGiveTaoLiJin(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.giveTaoLiJin.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.giveTaoLiJin.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addCloseRecommendGoods(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.closeRecommendGoods.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.closeRecommendGoods.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addCouponRebate(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.couponRebate.name(), null); - UserInfo boss = threeSaleSerivce.getBoss(uid); + UserInfo boss = getBossByUid(uid); if (boss != null) addCouponRebateLevelOne(boss.getId()); + + addEventStatistic(uid, TaskUniqueKeyEnum.couponRebate.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - + /** * 涓�绾ч槦鍛橀鍒歌繑鍒� + * * @param uid */ - @IntegralGetVersionLimit(uid="#uid") + @IntegralGetVersionLimit(uid = "#uid") @Async() private void addCouponRebateLevelOne(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.couponRebateLevelOne.name(), null); - UserInfo boss = threeSaleSerivce.getBoss(uid); + UserInfo boss = getBossByUid(uid); if (boss != null) addCouponRebateLevelTwo(boss.getId()); // 浜岀骇闃熷憳 + + addEventStatistic(uid, TaskUniqueKeyEnum.couponRebateLevelOne.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - + /** - * 浜岀骇闃熷憳棰嗗埜杩斿埄 + * 浜岀骇闃熷憳棰嗗埜杩斿埄 + * * @param uid */ - @IntegralGetVersionLimit(uid="#uid") + @IntegralGetVersionLimit(uid = "#uid") @Async() private void addCouponRebateLevelTwo(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.couponRebateLevelTwo.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.couponRebateLevelTwo.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addRebateOrder(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.rebateOrder.name(), null); - UserInfo boss = threeSaleSerivce.getBoss(uid); + UserInfo boss = getBossByUid(uid); if (boss != null) addInviteOrderLevelOne(boss.getId()); + + addEventStatistic(uid, TaskUniqueKeyEnum.rebateOrder.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - + /** * 涓�绾ч槦鍛橀個璇疯鍗� + * * @param uid */ - @IntegralGetVersionLimit(uid="#uid") + @IntegralGetVersionLimit(uid = "#uid") @Async() private void addInviteOrderLevelOne(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.inviteOrderLevelOne.name(), null); - UserInfo boss = threeSaleSerivce.getBoss(uid); + UserInfo boss = getBossByUid(uid); if (boss != null) addInviteOrderLevelTwo(boss.getId()); + + addEventStatistic(uid, TaskUniqueKeyEnum.inviteOrderLevelOne.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - + /** * 浜岀骇闃熷憳閭�璇疯鍗� + * * @param uid */ - @IntegralGetVersionLimit(uid="#uid") + @IntegralGetVersionLimit(uid = "#uid") @Async() private void addInviteOrderLevelTwo(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.inviteOrderLevelTwo.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.inviteOrderLevelTwo.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addShareOrder(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.shareOrder.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.shareOrder.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addBindWeiXin(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.bindWeiXin.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.bindWeiXin.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addBindPhone(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.bindPhone.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.bindPhone.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addBindTaoBao(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.bindTaoBao.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.bindTaoBao.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addSetWeiXinNum(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.setWeiXinNum.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.setWeiXinNum.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addSetGender(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.setGender.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.setGender.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addSetPortrait(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.setPortrait.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.setPortrait.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addSetNickname(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.setNickName.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.setNickName.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addBindAlipay(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.bindAlipay.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.bindAlipay.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - - @IntegralGetVersionLimit(uid="#uid") + + @IntegralGetVersionLimit(uid = "#uid") @Async() @Override public void addInviteActivate(Long uid) { try { - addEventStatistic(uid, TaskUniqueKeyEnum.inviteActivate.name(), null); + addEventStatistic(uid, TaskUniqueKeyEnum.inviteActivate.name()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } } - + } -- Gitblit v1.8.0