From ffc56f912da5d6d842142ae4ea1856bc56f8bcb9 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 30 九月 2022 19:20:23 +0800 Subject: [PATCH] 结算日志添加 --- app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornMakeServiceImpl.java | 95 +++++++++++++++++++++++++++++------------------ 1 files changed, 59 insertions(+), 36 deletions(-) diff --git a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornMakeServiceImpl.java b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornMakeServiceImpl.java index 04ee8e7..10294be 100644 --- a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornMakeServiceImpl.java +++ b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornMakeServiceImpl.java @@ -23,6 +23,8 @@ import com.yeshi.makemoney.app.utils.factory.UserMoneyRecordFactory; import com.yeshi.makemoney.app.utils.factory.goldcorn.GoldCornConsumeRecordFactory; import com.yeshi.makemoney.app.utils.goldcorn.GoldCornUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -45,6 +47,7 @@ */ @Service public class GoldCornMakeServiceImpl implements GoldCornMakeService { + Logger taskLogger = LoggerFactory.getLogger("taskLog"); @Resource private GoldCornGetFrequencyConfigService goldCornGetFrequencyConfigService; @@ -92,44 +95,53 @@ query.setUid(user.getId()); query.setType(type); - //闂撮殧鍒ゆ柇 - if (config.getMinSpaceTime() != null) { - List<GoldCornGetRecord> list = goldCornGetRecordService.list(query, 1, 1); - if (list != null && list.size() > 0 && time.getTime() - list.get(0).getCreateTime().getTime() < config.getMinSpaceTime() * 1000L) { - String msg = String.format("闇�瑕侀棿闅�%s绉掍互涓�", config.getMinSpaceTime()); - throw new GoldCornMakeException(GoldCornMakeException.CODE_GET_FREQUENCY_TIME_LIMIT, msg); + try { + //闂撮殧鍒ゆ柇 + if (config.getMinSpaceTime() != null) { + List<GoldCornGetRecord> list = goldCornGetRecordService.list(query, 1, 1); + if (list != null && list.size() > 0 && time.getTime() - list.get(0).getCreateTime().getTime() < config.getMinSpaceTime() * 1000L) { + String msg = String.format("闇�瑕侀棿闅�%s绉掍互涓�", config.getMinSpaceTime()); + throw new GoldCornMakeException(GoldCornMakeException.CODE_GET_FREQUENCY_TIME_LIMIT, msg); + } } + + Date startTime = null; + Date endTime = time; + if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.minute) { + startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime(), "yyyyMMdd HHmm"), "yyyyMMdd HHmm")); + } else if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.hour) { + startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime(), "yyyyMMdd HH"), "yyyyMMdd HH")); + } else if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.day) { + startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime(), "yyyyMMdd"), "yyyyMMdd")); + } else if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.week) { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(endTime.getTime()); + int subDay = (Calendar.getInstance().get(Calendar.DAY_OF_WEEK) - 2 + 7) % 7; + startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime() - 1000 * 60 * 60 * 24L * subDay, "yyyyMMdd"), "yyyyMMdd")); + } else if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.month) { + startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime(), "yyyyMM"), "yyyyMM")); + } else if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.year) { + startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime(), "yyyy"), "yyyy")); + } + query.setFormat("yyyyMMdd HH:mm:ss"); + query.setStartTime(TimeUtil.getGernalTime(startTime.getTime(), query.getFormat())); + //service閲岄潰鏈夊噺鍘�1澶� + query.setEndTime(TimeUtil.getGernalTime(endTime.getTime() - 1000 * 60 * 60 * 24L, query.getFormat())); + + Map<GoldCornGetType, Long> countMap = goldCornGetRecordService.sumEventCount(query); + if (countMap.get(type) != null && (countMap.get(type) >= config.getLimitCount())) { + String msg = String.format("瓒呭嚭%s娆�/%s鐨勯檺鍒�", config.getLimitCount(), config.getTimeUnit().getName()); + throw new GoldCornMakeException(GoldCornMakeException.CODE_GET_FREQUENCY_COUNT_LIMIT, msg); + } + + return config.getLimitCount() - (countMap.get(type) != null ? countMap.get(type) : 0); + + } catch (GoldCornMakeException e) { + //棰戠巼闄愬埗 + taskLogger.error("#棰戠巼鍙楅檺# uid:{} type:{} time:{} msg:{}", user.getId(), type.name(), TimeUtil.getGernalTime(time.getTime(), "yyyy-MM-dd HH:mm:ss SSS"), e.getMsg()); + throw e; } - Date startTime = null; - Date endTime = time; - if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.minute) { - startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime(), "yyyyMMdd HHmm"), "yyyyMMdd HHmm")); - } else if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.hour) { - startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime(), "yyyyMMdd HH"), "yyyyMMdd HH")); - } else if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.day) { - startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime(), "yyyyMMdd"), "yyyyMMdd")); - } else if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.week) { - Calendar calendar = Calendar.getInstance(); - calendar.setTimeInMillis(endTime.getTime()); - int subDay = (Calendar.getInstance().get(Calendar.DAY_OF_WEEK) - 2 + 7) % 7; - startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime() - 1000 * 60 * 60 * 24L * subDay, "yyyyMMdd"), "yyyyMMdd")); - } else if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.month) { - startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime(), "yyyyMM"), "yyyyMM")); - } else if (config.getTimeUnit() == GoldCornGetFrequencyConfig.GoldCornGetFrequencyTimeUnit.year) { - startTime = new Date(TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(endTime.getTime(), "yyyy"), "yyyy")); - } - query.setFormat("yyyyMMdd HH:mm:ss"); - query.setStartTime(TimeUtil.getGernalTime(startTime.getTime(), query.getFormat())); - //service閲岄潰鏈夊噺鍘�1澶� - query.setEndTime(TimeUtil.getGernalTime(endTime.getTime() - 1000 * 60 * 60 * 24L, query.getFormat())); - - Map<GoldCornGetType, Long> countMap = goldCornGetRecordService.sumEventCount(query); - if (countMap.get(type) != null && (countMap.get(type) >= config.getLimitCount())) { - String msg = String.format("瓒呭嚭%s娆�/%s鐨勯檺鍒�", config.getLimitCount(), config.getTimeUnit().getName()); - throw new GoldCornMakeException(GoldCornMakeException.CODE_GET_FREQUENCY_COUNT_LIMIT, msg); - } - return config.getLimitCount() - (countMap.get(type) != null ? countMap.get(type) : 0); } @@ -241,7 +253,7 @@ continue; } //鑾峰彇鍏戞崲璁板綍鐨勪富閿甀D,涓嶉渶瑕佸浣欑殑鏁版嵁 - GoldCornConsumeRecord record = GoldCornConsumeRecordFactory.createExchange(uid, GoldCornUtil.getFormatDay(date), 0, new BigDecimal(0.1),null); + GoldCornConsumeRecord record = GoldCornConsumeRecordFactory.createExchange(uid, GoldCornUtil.getFormatDay(date), 0, new BigDecimal(0.1), null); //鏌ヨ璧勯噾璁板綍鏄惁鏈夎璁板綍 try { UserMoneyRecord userMoneyRecord = UserMoneyRecordFactory.createGoldCornExchange(record); @@ -359,6 +371,17 @@ @Transactional(rollbackFor = Exception.class) @Override public GoldCornMakeResultDTO scanNews(Long uid, boolean isDouble, Date time, int num) throws GoldCornGetPriceException, UserInfoException, GoldCornMakeException, GoldCornGetFrequencyConfigException { + //闃插埛鏈哄埗 + if (num < 0) { + num = 0; + } + + //1涓緢澶х殑鏁� + if (num > 20) { + num = 1; + } + + UserInfo user = userInfoService.get(uid); if (user == null) { throw new UserInfoException(UserInfoException.CODE_NOT_EXIST, "鐢ㄦ埛涓嶅瓨鍦�"); -- Gitblit v1.8.0