修改 invite 统计 逻辑

This commit is contained in:
GYJ
2025-01-04 14:01:15 +08:00
parent 4499d636d0
commit 1f37a8e709
7 changed files with 26 additions and 79 deletions

View File

@@ -7,6 +7,9 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@@ -24,17 +27,20 @@ public class InviteAchievement implements Serializable {
*
*/
@TableId
private Integer id;
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
/**
* 用户id
* 邀请用户用户id -- 上级
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long userId;
/**
* 上级邀请用户id
* 下级被邀请用户id 当前达标用户id
*/
private Long sourceUserId;
@JsonSerialize(using = ToStringSerializer.class)
private Long targetUserId;
/**
* 达标次数

View File

@@ -15,8 +15,8 @@ import org.apache.ibatis.annotations.Update;
@Mapper
public interface InviteAchievementMapper extends BaseMapper<InviteAchievement> {
@Update("update invite_achievement set count = count + #{i}, update_time=now() where id = #{id}")
int incrCount(Integer id, int i);
@Update("update invite_achievement set count = count + #{i}, update_time=now() where id = #{id} and user_id = #{userId}")
int incrCount(Long id, Long userId, int i);
@Insert("INSERT INTO invite_achievement (user_id, source_user_id, count, state, create_time)\n" +
"SELECT #{userId}, #{sourceUserId}, #{count}, #{state}, #{createTime} " +

View File

@@ -14,7 +14,7 @@ public interface InviteAchievementService extends IService<InviteAchievement> {
InviteAchievement getByUserId(Long userId);
int incrCount(Integer id, int i);
int incrCount(Long id, Long userId, int i);
boolean insertNotExists(InviteAchievement inviteAchievement);

View File

@@ -25,12 +25,12 @@ public class InviteAchievementServiceImpl extends ServiceImpl<InviteAchievementM
@Override
public InviteAchievement getByUserId(Long userId) {
return getOne(new LambdaQueryWrapper<InviteAchievement>()
.eq(InviteAchievement::getUserId, userId));
.eq(InviteAchievement::getTargetUserId, userId));
}
@Override
public int incrCount(Integer id, int i) {
return baseMapper.incrCount(id,i);
public int incrCount(Long id, Long userId, int i) {
return baseMapper.incrCount(id, userId,i);
}
@Override
@@ -42,13 +42,13 @@ public class InviteAchievementServiceImpl extends ServiceImpl<InviteAchievementM
public int countBySourceUserId(Long userId) {
return count(new LambdaQueryWrapper<InviteAchievement>()
.eq(InviteAchievement::getState, 1)
.eq(InviteAchievement::getSourceUserId, userId));
.eq(InviteAchievement::getUserId, userId));
}
@Override
public int countNum(Long userId, Integer signCount) {
return count(new LambdaQueryWrapper<InviteAchievement>()
.eq(InviteAchievement::getSourceUserId, userId)
.eq(InviteAchievement::getUserId, userId)
.ge(InviteAchievement::getCount, signCount));
}
}