From b6c8a07486e87eb2686d325cd55da8f6c54aa91e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 30 Dec 2024 14:19:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=BE=BE=E6=A0=87=E5=A5=96=E5=8A=B1?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=96=B9=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/app/entity/InviteAchievement.java | 57 +++++++++++++++++++ .../app/mapper/InviteAchievementMapper.java | 31 ++++++++++ .../app/service/InviteAchievementService.java | 25 ++++++++ .../impl/InviteAchievementServiceImpl.java | 57 +++++++++++++++++++ .../mapper/InviteAchievementMapper.xml | 19 +++++++ 5 files changed, 189 insertions(+) create mode 100644 src/main/java/com/sqx/modules/app/entity/InviteAchievement.java create mode 100644 src/main/java/com/sqx/modules/app/mapper/InviteAchievementMapper.java create mode 100644 src/main/java/com/sqx/modules/app/service/InviteAchievementService.java create mode 100644 src/main/java/com/sqx/modules/app/service/impl/InviteAchievementServiceImpl.java create mode 100644 src/main/resources/mapper/InviteAchievementMapper.xml diff --git a/src/main/java/com/sqx/modules/app/entity/InviteAchievement.java b/src/main/java/com/sqx/modules/app/entity/InviteAchievement.java new file mode 100644 index 00000000..099b1968 --- /dev/null +++ b/src/main/java/com/sqx/modules/app/entity/InviteAchievement.java @@ -0,0 +1,57 @@ +package com.sqx.modules.app.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * + * @TableName invite_achievement + */ +@TableName(value ="invite_achievement") +@Data +@EqualsAndHashCode +public class InviteAchievement implements Serializable { + /** + * + */ + @TableId(type = IdType.AUTO) + private Integer id; + + /** + * 用户id + */ + private Long userId; + + /** + * 上级邀请用户id + */ + private Long sourceUserId; + + /** + * 达标次数 + */ + private Integer count; + + /** + * 是否首次达标 + */ + private Integer isFirst; + + /** + * 创建时间 + */ + private Date createTime; + private Date updateTime; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; + + +} diff --git a/src/main/java/com/sqx/modules/app/mapper/InviteAchievementMapper.java b/src/main/java/com/sqx/modules/app/mapper/InviteAchievementMapper.java new file mode 100644 index 00000000..788e11f6 --- /dev/null +++ b/src/main/java/com/sqx/modules/app/mapper/InviteAchievementMapper.java @@ -0,0 +1,31 @@ +package com.sqx.modules.app.mapper; + +import com.sqx.modules.app.entity.InviteAchievement; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Update; + +/** +* @author Administrator +* @description 针对表【invite_achievement】的数据库操作Mapper +* @createDate 2024-12-30 13:26:18 +* @Entity com.sqx.modules.app.entity.InviteAchievement +*/ +@Mapper +public interface InviteAchievementMapper extends BaseMapper { + + @Update("update invite_achievement set count = count + #{i}, update_time=now() where id = #{id}") + int incrCount(Integer id, int i); + + @Insert("INSERT INTO invite_achievement (user_id, by_user_id, count, is_first, create_time)\n" + + "SELECT #{userId}, #{byUserId}, #{count}, #{isFirst}, #{createTime} " + + "WHERE NOT EXISTS ( " + + " SELECT 1 FROM invite_achievement WHERE user_id = #{userId} " + + ");") + boolean insertNotExists(InviteAchievement inviteAchievement); +} + + + + diff --git a/src/main/java/com/sqx/modules/app/service/InviteAchievementService.java b/src/main/java/com/sqx/modules/app/service/InviteAchievementService.java new file mode 100644 index 00000000..1203354b --- /dev/null +++ b/src/main/java/com/sqx/modules/app/service/InviteAchievementService.java @@ -0,0 +1,25 @@ +package com.sqx.modules.app.service; + +import com.sqx.modules.app.entity.InviteAchievement; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author Administrator +* @description 针对表【invite_achievement】的数据库操作Service +* @createDate 2024-12-30 13:26:18 +*/ +public interface InviteAchievementService extends IService { + + int countByUserId(Long userId); + + InviteAchievement getByUserId(Long userId); + + int incrCount(Integer id, int i); + + boolean insertNotExists(InviteAchievement inviteAchievement); + + int countBySourceUserId(Long userId); + + int countNum(Long userId, Integer signCount); + +} diff --git a/src/main/java/com/sqx/modules/app/service/impl/InviteAchievementServiceImpl.java b/src/main/java/com/sqx/modules/app/service/impl/InviteAchievementServiceImpl.java new file mode 100644 index 00000000..1e13404d --- /dev/null +++ b/src/main/java/com/sqx/modules/app/service/impl/InviteAchievementServiceImpl.java @@ -0,0 +1,57 @@ +package com.sqx.modules.app.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.sqx.modules.app.entity.InviteAchievement; +import com.sqx.modules.app.service.InviteAchievementService; +import com.sqx.modules.app.mapper.InviteAchievementMapper; +import org.springframework.stereotype.Service; + +/** +* @author Administrator +* @description 针对表【invite_achievement】的数据库操作Service实现 +* @createDate 2024-12-30 13:26:18 +*/ +@Service +public class InviteAchievementServiceImpl extends ServiceImpl + implements InviteAchievementService{ + + @Override + public int countByUserId(Long userId) { + return count(new LambdaQueryWrapper() + .eq(InviteAchievement::getUserId, userId)); + } + + @Override + public InviteAchievement getByUserId(Long userId) { + return getOne(new LambdaQueryWrapper() + .eq(InviteAchievement::getUserId, userId)); + } + + @Override + public int incrCount(Integer id, int i) { + return baseMapper.incrCount(id,i); + } + + @Override + public boolean insertNotExists(InviteAchievement inviteAchievement) { + return baseMapper.insertNotExists(inviteAchievement); + } + + @Override + public int countBySourceUserId(Long userId) { + return count(new LambdaQueryWrapper() + .eq(InviteAchievement::getSourceUserId, userId)); + } + + @Override + public int countNum(Long userId, Integer signCount) { + return count(new LambdaQueryWrapper() + .eq(InviteAchievement::getSourceUserId, userId) + .ge(InviteAchievement::getCount, signCount)); + } +} + + + + diff --git a/src/main/resources/mapper/InviteAchievementMapper.xml b/src/main/resources/mapper/InviteAchievementMapper.xml new file mode 100644 index 00000000..bfa2a236 --- /dev/null +++ b/src/main/resources/mapper/InviteAchievementMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + id,user_id,by_user_id, + amount,create_time + +