From 3890e3b68a50b491e649b9431371668c31339edc Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 19 十一月 2019 15:47:59 +0800 Subject: [PATCH] 添加原子方法调用 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserGetIntegralFromOrderRecordServiceImpl.java | 31 ++++++++++++++++++++++++------- 1 files changed, 24 insertions(+), 7 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserGetIntegralFromOrderRecordServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserGetIntegralFromOrderRecordServiceImpl.java index 10d1b51..662f4cb 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserGetIntegralFromOrderRecordServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserGetIntegralFromOrderRecordServiceImpl.java @@ -10,14 +10,22 @@ import com.yeshi.fanli.dao.mybatis.integral.UserGetIntegralFromOrderRecordMapper; import com.yeshi.fanli.entity.integral.UserGetIntegralFromOrderRecord; import com.yeshi.fanli.exception.integral.UserGetIntegralFromOrderRecordException; +import com.yeshi.fanli.manager.util.AtomMethodCallInterface; +import com.yeshi.fanli.manager.util.AtomMethodCallManager; import com.yeshi.fanli.service.inter.user.integral.UserGetIntegralFromOrderRecordService; import com.yeshi.fanli.util.StringUtil; + +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; @Service public class UserGetIntegralFromOrderRecordServiceImpl implements UserGetIntegralFromOrderRecordService { @Resource private UserGetIntegralFromOrderRecordMapper userGetIntegralFromOrderRecordMapper; + + @Resource + private AtomMethodCallManager atomMethodCallManager; @Override public long countByEventTypeAndUidAndOrderInfo(int eventType, Long uid, String orderNo, int orderSourceType) { @@ -36,14 +44,23 @@ || StringUtil.isNullOrEmpty(record.getOrderNo()) || record.getOrderSourceType() == null) throw new UserGetIntegralFromOrderRecordException(1, "淇℃伅涓嶅畬鏁�"); - long count = countByEventTypeAndUidAndOrderInfo(record.getEventType(), record.getUid(), record.getOrderNo(), - record.getOrderSourceType()); - if (count > 0) - throw new UserGetIntegralFromOrderRecordException(2, "璁板綍宸插瓨鍦�"); + String key = String.format("rs-%s", + StringUtil.Md5(String.format("UserGetIntegralFromOrderRecord-addRecord-%s-%s-%s-%s", record.getUid(), + record.getEventType(), record.getOrderNo(), record.getOrderSourceType()))); - if (record.getCreateTime() == null) - record.setCreateTime(new Date()); - userGetIntegralFromOrderRecordMapper.insertSelective(record); + atomMethodCallManager.excute(key, new AtomMethodCallInterface() { + + @Override + public void excute() { + long count = countByEventTypeAndUidAndOrderInfo(record.getEventType(), record.getUid(), + record.getOrderNo(), record.getOrderSourceType()); + if (count > 0) + return; + if (record.getCreateTime() == null) + record.setCreateTime(new Date()); + userGetIntegralFromOrderRecordMapper.insertSelective(record); + } + }); } } -- Gitblit v1.8.0