admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/UserGetIntegralFromOrderRecordServiceImpl.java
@@ -1,49 +1,66 @@
package com.yeshi.fanli.service.impl.user.invite;
import java.util.Date;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
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.service.inter.user.integral.UserGetIntegralFromOrderRecordService;
import com.yeshi.fanli.util.StringUtil;
@Service
public class UserGetIntegralFromOrderRecordServiceImpl implements UserGetIntegralFromOrderRecordService {
   @Resource
   private UserGetIntegralFromOrderRecordMapper userGetIntegralFromOrderRecordMapper;
   @Override
   public long countByEventTypeAndUidAndOrderInfo(int eventType, Long uid, String orderNo, int orderSourceType) {
      UserGetIntegralFromOrderRecord record = new UserGetIntegralFromOrderRecord();
      record.setEventType(eventType);
      record.setOrderNo(orderNo);
      record.setOrderSourceType(orderSourceType);
      record.setUid(uid);
      return userGetIntegralFromOrderRecordMapper.countByRecordInfo(record);
   }
   @Transactional
   @Override
   public void addRecord(UserGetIntegralFromOrderRecord record) throws UserGetIntegralFromOrderRecordException {
      if (record == null || record.getUid() == null || record.getEventType() == null
            || 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, "记录已存在");
      if (record.getCreateTime() == null)
         record.setCreateTime(new Date());
      userGetIntegralFromOrderRecordMapper.insertSelective(record);
   }
}
package com.yeshi.fanli.service.impl.user.invite;
import java.util.Date;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
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) {
      UserGetIntegralFromOrderRecord record = new UserGetIntegralFromOrderRecord();
      record.setEventType(eventType);
      record.setOrderNo(orderNo);
      record.setOrderSourceType(orderSourceType);
      record.setUid(uid);
      return userGetIntegralFromOrderRecordMapper.countByRecordInfo(record);
   }
   @Transactional(rollbackFor=Exception.class)
   @Override
   public void addRecord(UserGetIntegralFromOrderRecord record) throws UserGetIntegralFromOrderRecordException {
      if (record == null || record.getUid() == null || record.getEventType() == null
            || StringUtil.isNullOrEmpty(record.getOrderNo()) || record.getOrderSourceType() == null)
         throw new UserGetIntegralFromOrderRecordException(1, "信息不完整");
      String key = String.format("rs-%s",
            StringUtil.Md5(String.format("UserGetIntegralFromOrderRecord-addRecord-%s-%s-%s-%s", record.getUid(),
                  record.getEventType(), record.getOrderNo(), record.getOrderSourceType())));
      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);
         }
      });
   }
}