Commit f2c13c11 authored by zhangfeng's avatar zhangfeng

积分规则触发

parent b9d47982
...@@ -26,9 +26,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -26,9 +26,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.context.annotation.Lazy;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
...@@ -38,7 +35,10 @@ import java.util.HashMap; ...@@ -38,7 +35,10 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
@Component /**
* 弃用
*/
//@Component
@AllArgsConstructor @AllArgsConstructor
@Slf4j @Slf4j
public class OrderInShippingListener { public class OrderInShippingListener {
...@@ -53,7 +53,7 @@ public class OrderInShippingListener { ...@@ -53,7 +53,7 @@ public class OrderInShippingListener {
@Resource @Resource
private CustomerContactsService customerContactsService; private CustomerContactsService customerContactsService;
@EventListener(OrderInShippingEvent.class) //@EventListener(OrderInShippingEvent.class)
public void listen(OrderInShippingEvent event) { public void listen(OrderInShippingEvent event) {
Long orderId = event.getOrderId(); Long orderId = event.getOrderId();
String orderNo = event.getOrderNo(); String orderNo = event.getOrderNo();
......
package cn.iocoder.yudao.module.member.mq.consumer.score.core; package cn.iocoder.yudao.module.member.mq.consumer.score.core;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.module.member.api.score.MemberUserScoreApi;
import cn.iocoder.yudao.module.member.dal.dataobject.scoreLog.MemberUserScoreLogDO; import cn.iocoder.yudao.module.member.dal.dataobject.scoreLog.MemberUserScoreLogDO;
import cn.iocoder.yudao.module.member.service.scoreLog.MemberUserScoreLogService; import cn.iocoder.yudao.module.member.service.scoreLog.MemberUserScoreLogService;
import cn.iocoder.yudao.module.member.service.scoreRule.ScoreRuleService; import cn.iocoder.yudao.module.member.service.scoreRule.ScoreRuleService;
...@@ -18,12 +19,14 @@ public abstract class AbstractScoreRuleStrategy implements ScoreRuleStrategy { ...@@ -18,12 +19,14 @@ public abstract class AbstractScoreRuleStrategy implements ScoreRuleStrategy {
protected ScoreRuleService scoreRuleService; protected ScoreRuleService scoreRuleService;
protected MemberUserScoreLogService memberUserScoreLogService; protected MemberUserScoreLogService memberUserScoreLogService;
protected MemberUserService memberUserService; protected MemberUserService memberUserService;
protected MemberUserScoreApi memberUserScoreApi;
@Autowired @Autowired
public AbstractScoreRuleStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService,MemberUserService memberUserService) { public AbstractScoreRuleStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService, MemberUserScoreApi memberUserScoreApi) {
this.scoreRuleService = scoreRuleService; this.scoreRuleService = scoreRuleService;
this.memberUserScoreLogService = memberUserScoreLogService; this.memberUserScoreLogService = memberUserScoreLogService;
this.memberUserService = memberUserService; this.memberUserService = memberUserService;
this.memberUserScoreApi = memberUserScoreApi;
} }
/** /**
* 计算用户在某一活动获得积分总数 * 计算用户在某一活动获得积分总数
......
...@@ -38,12 +38,10 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy { ...@@ -38,12 +38,10 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy {
@Resource @Resource
private OrderApi orderApi; private OrderApi orderApi;
@Resource @Resource
private MemberUserScoreApi memberUserScoreApi;
@Resource
private CustomerContactsService customerContactsService; private CustomerContactsService customerContactsService;
public OrderVStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService) { public OrderVStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService,MemberUserScoreApi memberUserScoreApi) {
super(scoreRuleService, memberUserScoreLogService, memberUserService); super(scoreRuleService, memberUserScoreLogService, memberUserService,memberUserScoreApi);
} }
@Override @Override
......
...@@ -23,30 +23,28 @@ import java.util.HashMap; ...@@ -23,30 +23,28 @@ import java.util.HashMap;
@Service @Service
@Slf4j @Slf4j
public class RecommendStrategy extends AbstractScoreRuleStrategy { public class RecommendStrategy extends AbstractScoreRuleStrategy {
@Resource
private MemberUserScoreApi memberUserScoreApi;
@Resource @Resource
private MemberUserService memberUserService; private MemberUserService memberUserService;
public RecommendStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService) { public RecommendStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService, MemberUserScoreApi memberUserScoreApi) {
super(scoreRuleService, memberUserScoreLogService, memberUserService); super(scoreRuleService, memberUserScoreLogService, memberUserService, memberUserScoreApi);
} }
@Override @Override
public void addScore(ScoreMessage message) { public void addScore(ScoreMessage message) {
log.info("Received Recommend message,referralCode:{}", message.getReferralCode());
// 根据推荐码获取推荐用户id // 根据推荐码获取推荐用户id
Long userId = ReferralCodeUtils.getUserId(message.getReferralCode()); MemberUserDO memberUserDO = memberUserService.getUserByCode(message.getReferralCode());
log.info("Received Recommend message,userID:{}", userId); if (memberUserDO == null) {
log.info("Recommend listener: can not find user by referralCode:{}", message.getReferralCode());
return;
}
Long userId = memberUserDO.getId();
ScoreRuleDO scoreRuleDO = scoreRuleService.getEnableScoreRuleByType(ScoreRuleTypeEnum.RECOMMEND); ScoreRuleDO scoreRuleDO = scoreRuleService.getEnableScoreRuleByType(ScoreRuleTypeEnum.RECOMMEND);
if (scoreRuleDO == null) { if (scoreRuleDO == null) {
log.info("Recommend rule is not exist,userID:{}", userId); log.info("Recommend rule is not exist,userID:{}", userId);
return; return;
} }
MemberUserDO memberUserDO = memberUserService.getUser(userId);
if (memberUserDO == null) {
log.info("Recommend listener: The recommend user does not exist,userID:{}", userId);
return;
}
// 校验累计最高分 // 校验累计最高分
Integer userScoreTotalCount = getUserScoreTotalCount(scoreRuleDO.getId(), userId); Integer userScoreTotalCount = getUserScoreTotalCount(scoreRuleDO.getId(), userId);
if (scoreRuleDO.getMaxScoreTotal() > 0 && userScoreTotalCount >= scoreRuleDO.getMaxScoreTotal()) { if (scoreRuleDO.getMaxScoreTotal() > 0 && userScoreTotalCount >= scoreRuleDO.getMaxScoreTotal()) {
......
...@@ -24,13 +24,11 @@ import java.util.HashMap; ...@@ -24,13 +24,11 @@ import java.util.HashMap;
@Service @Service
@Slf4j @Slf4j
public class RegisterStrategy extends AbstractScoreRuleStrategy { public class RegisterStrategy extends AbstractScoreRuleStrategy {
@Resource
private MemberUserScoreApi memberUserScoreApi;
@Resource @Resource
private MemberUserService memberUserService; private MemberUserService memberUserService;
public RegisterStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService) { public RegisterStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService,MemberUserScoreApi memberUserScoreApi) {
super(scoreRuleService, memberUserScoreLogService, memberUserService); super(scoreRuleService, memberUserScoreLogService, memberUserService,memberUserScoreApi);
} }
@Override @Override
......
...@@ -222,4 +222,6 @@ public interface MemberUserService { ...@@ -222,4 +222,6 @@ public interface MemberUserService {
List<MemberUserDO> getByCursor(Long startUserId, long limit); List<MemberUserDO> getByCursor(Long startUserId, long limit);
void historyCodeFlush(); void historyCodeFlush();
MemberUserDO getUserByCode(String referralCode);
} }
...@@ -578,6 +578,11 @@ public class MemberUserServiceImpl implements MemberUserService { ...@@ -578,6 +578,11 @@ public class MemberUserServiceImpl implements MemberUserService {
} }
} }
@Override
public MemberUserDO getUserByCode(String referralCode) {
return memberUserMapper.selectOne("code", referralCode);
}
private String getNextMemberCode() { private String getNextMemberCode() {
String key = "memberCode:max:number"; String key = "memberCode:max:number";
String incrIfExistScript = "if redis.call(\"exists\", KEYS[1]) == 1 then\n" + String incrIfExistScript = "if redis.call(\"exists\", KEYS[1]) == 1 then\n" +
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment