Commit f2c13c11 authored by zhangfeng's avatar zhangfeng

积分规则触发

parent b9d47982
......@@ -26,9 +26,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
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 java.math.BigDecimal;
......@@ -38,7 +35,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Objects;
@Component
/**
* 弃用
*/
//@Component
@AllArgsConstructor
@Slf4j
public class OrderInShippingListener {
......@@ -53,7 +53,7 @@ public class OrderInShippingListener {
@Resource
private CustomerContactsService customerContactsService;
@EventListener(OrderInShippingEvent.class)
//@EventListener(OrderInShippingEvent.class)
public void listen(OrderInShippingEvent event) {
Long orderId = event.getOrderId();
String orderNo = event.getOrderNo();
......
package cn.iocoder.yudao.module.member.mq.consumer.score.core;
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.service.scoreLog.MemberUserScoreLogService;
import cn.iocoder.yudao.module.member.service.scoreRule.ScoreRuleService;
......@@ -18,12 +19,14 @@ public abstract class AbstractScoreRuleStrategy implements ScoreRuleStrategy {
protected ScoreRuleService scoreRuleService;
protected MemberUserScoreLogService memberUserScoreLogService;
protected MemberUserService memberUserService;
protected MemberUserScoreApi memberUserScoreApi;
@Autowired
public AbstractScoreRuleStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService,MemberUserService memberUserService) {
public AbstractScoreRuleStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService, MemberUserScoreApi memberUserScoreApi) {
this.scoreRuleService = scoreRuleService;
this.memberUserScoreLogService = memberUserScoreLogService;
this.memberUserService = memberUserService;
this.memberUserScoreApi = memberUserScoreApi;
}
/**
* 计算用户在某一活动获得积分总数
......
......@@ -38,12 +38,10 @@ public class OrderVStrategy extends AbstractScoreRuleStrategy {
@Resource
private OrderApi orderApi;
@Resource
private MemberUserScoreApi memberUserScoreApi;
@Resource
private CustomerContactsService customerContactsService;
public OrderVStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService) {
super(scoreRuleService, memberUserScoreLogService, memberUserService);
public OrderVStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService,MemberUserScoreApi memberUserScoreApi) {
super(scoreRuleService, memberUserScoreLogService, memberUserService,memberUserScoreApi);
}
@Override
......
......@@ -23,30 +23,28 @@ import java.util.HashMap;
@Service
@Slf4j
public class RecommendStrategy extends AbstractScoreRuleStrategy {
@Resource
private MemberUserScoreApi memberUserScoreApi;
@Resource
private MemberUserService memberUserService;
public RecommendStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService) {
super(scoreRuleService, memberUserScoreLogService, memberUserService);
public RecommendStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService, MemberUserScoreApi memberUserScoreApi) {
super(scoreRuleService, memberUserScoreLogService, memberUserService, memberUserScoreApi);
}
@Override
public void addScore(ScoreMessage message) {
log.info("Received Recommend message,referralCode:{}", message.getReferralCode());
// 根据推荐码获取推荐用户id
Long userId = ReferralCodeUtils.getUserId(message.getReferralCode());
log.info("Received Recommend message,userID:{}", userId);
MemberUserDO memberUserDO = memberUserService.getUserByCode(message.getReferralCode());
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);
if (scoreRuleDO == null) {
log.info("Recommend rule is not exist,userID:{}", userId);
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);
if (scoreRuleDO.getMaxScoreTotal() > 0 && userScoreTotalCount >= scoreRuleDO.getMaxScoreTotal()) {
......
......@@ -24,13 +24,11 @@ import java.util.HashMap;
@Service
@Slf4j
public class RegisterStrategy extends AbstractScoreRuleStrategy {
@Resource
private MemberUserScoreApi memberUserScoreApi;
@Resource
private MemberUserService memberUserService;
public RegisterStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService) {
super(scoreRuleService, memberUserScoreLogService, memberUserService);
public RegisterStrategy(ScoreRuleService scoreRuleService, MemberUserScoreLogService memberUserScoreLogService, MemberUserService memberUserService,MemberUserScoreApi memberUserScoreApi) {
super(scoreRuleService, memberUserScoreLogService, memberUserService,memberUserScoreApi);
}
@Override
......
......@@ -222,4 +222,6 @@ public interface MemberUserService {
List<MemberUserDO> getByCursor(Long startUserId, long limit);
void historyCodeFlush();
MemberUserDO getUserByCode(String referralCode);
}
......@@ -578,6 +578,11 @@ public class MemberUserServiceImpl implements MemberUserService {
}
}
@Override
public MemberUserDO getUserByCode(String referralCode) {
return memberUserMapper.selectOne("code", referralCode);
}
private String getNextMemberCode() {
String key = "memberCode:max:number";
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