diff --git a/src/main/java/com/youlai/boot/common/enums/LogModuleEnum.java b/src/main/java/com/youlai/boot/common/enums/LogModuleEnum.java index 82d2d04..a26cedc 100644 --- a/src/main/java/com/youlai/boot/common/enums/LogModuleEnum.java +++ b/src/main/java/com/youlai/boot/common/enums/LogModuleEnum.java @@ -28,7 +28,8 @@ public enum LogModuleEnum implements IBaseEnum { LOG(10, "日志管理"), CODEGEN(11, "代码生成"), STRAY_ANIMAL_INFO(12, "流浪动物信息"), - OTHER(99, "其他"); + OTHER(99, "其他"), + Point(100, "积分管理"); @EnumValue private final Integer value; diff --git a/src/main/java/com/youlai/boot/mini/controller/PointController.java b/src/main/java/com/youlai/boot/mini/controller/PointController.java new file mode 100644 index 0000000..8f88914 --- /dev/null +++ b/src/main/java/com/youlai/boot/mini/controller/PointController.java @@ -0,0 +1,57 @@ +package com.youlai.boot.mini.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.youlai.boot.common.annotation.Log; +import com.youlai.boot.common.enums.ActionTypeEnum; +import com.youlai.boot.common.enums.LogModuleEnum; +import com.youlai.boot.common.result.PageResult; +import com.youlai.boot.mini.model.form.UserPointQuery; +import com.youlai.boot.mini.model.vo.UserPointVO; +import com.youlai.boot.mini.service.PointService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +/** + * 用户积分信息 + */ +@Tag(name = "用户端积分服务相关接口") +@RestController +@RequestMapping("/api/v1/mini/point") +@RequiredArgsConstructor +public class PointController { + + private final PointService pointService; + + @Operation(summary = "查询用户积分") + @GetMapping +// @PreAuthorize("@ss.hasPerm('sys:config:list')") + @Log(module = LogModuleEnum.Point, value = ActionTypeEnum.LIST) + public PageResult page(@ParameterObject UserPointQuery queryParams) { + IPage result = pointService.page(queryParams); + return PageResult.success(result); + } + + //查询用户积分 + //查询积分明细 + //查询积分统计 + + //用户注册赠送积分 + //每日签到 + //分享奖励 + //AI生成图片扣费 + //AI生成视频扣费 + + //后台管理 + //查询规则列表 + //查询规则详情 + //新增规则 + //修改规则 + //启用/禁用规则 + //删除规则 + +} diff --git a/src/main/java/com/youlai/boot/mini/converter/MiniPointAccountConverter.java b/src/main/java/com/youlai/boot/mini/converter/MiniPointAccountConverter.java new file mode 100644 index 0000000..5a3987f --- /dev/null +++ b/src/main/java/com/youlai/boot/mini/converter/MiniPointAccountConverter.java @@ -0,0 +1,14 @@ +package com.youlai.boot.mini.converter; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.youlai.boot.mini.model.entity.MiniPointAccount; +import com.youlai.boot.mini.model.vo.UserPointVO; +import org.mapstruct.Mapper; + +@Mapper(componentModel = "spring") +public interface MiniPointAccountConverter { + + Page toPageVo(Page pageList); + + UserPointVO toVo(MiniPointAccount entity); +} diff --git a/src/main/java/com/youlai/boot/mini/mapper/MiniPointAccountMapperExt.java b/src/main/java/com/youlai/boot/mini/mapper/MiniPointAccountMapperExt.java deleted file mode 100644 index 868f6bc..0000000 --- a/src/main/java/com/youlai/boot/mini/mapper/MiniPointAccountMapperExt.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.youlai.boot.mini.mapper; - -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface MiniPointAccountMapperExt extends MiniPointAccountMapper{ -} diff --git a/src/main/java/com/youlai/boot/mini/model/form/UserPointQuery.java b/src/main/java/com/youlai/boot/mini/model/form/UserPointQuery.java new file mode 100644 index 0000000..cf3652c --- /dev/null +++ b/src/main/java/com/youlai/boot/mini/model/form/UserPointQuery.java @@ -0,0 +1,16 @@ +package com.youlai.boot.mini.model.form; + +import com.youlai.boot.common.base.BaseQuery; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Schema(description = "用户积分查询") +public class UserPointQuery extends BaseQuery { + +// @Schema(description="用户id") +// private String uuid; + +} diff --git a/src/main/java/com/youlai/boot/mini/model/vo/UserPointVO.java b/src/main/java/com/youlai/boot/mini/model/vo/UserPointVO.java new file mode 100644 index 0000000..17f941f --- /dev/null +++ b/src/main/java/com/youlai/boot/mini/model/vo/UserPointVO.java @@ -0,0 +1,20 @@ +package com.youlai.boot.mini.model.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +@Builder +@EqualsAndHashCode(callSuper = false) +@Schema(description = "用户积分信息VO") +public class UserPointVO { + + @Schema(description = "uuid") + private String uuid; + + @Schema(description = "用户积分") + private Integer points; + +} diff --git a/src/main/java/com/youlai/boot/mini/service/PointService.java b/src/main/java/com/youlai/boot/mini/service/PointService.java new file mode 100644 index 0000000..be20744 --- /dev/null +++ b/src/main/java/com/youlai/boot/mini/service/PointService.java @@ -0,0 +1,12 @@ +package com.youlai.boot.mini.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import com.youlai.boot.mini.model.entity.MiniPointAccount; +import com.youlai.boot.mini.model.form.UserPointQuery; +import com.youlai.boot.mini.model.vo.UserPointVO; +import com.youlai.boot.system.model.entity.Config; + +public interface PointService extends IService { + IPage page(UserPointQuery queryParams); +} diff --git a/src/main/java/com/youlai/boot/mini/service/impl/PointServiceImpl.java b/src/main/java/com/youlai/boot/mini/service/impl/PointServiceImpl.java new file mode 100644 index 0000000..8c6c598 --- /dev/null +++ b/src/main/java/com/youlai/boot/mini/service/impl/PointServiceImpl.java @@ -0,0 +1,37 @@ +package com.youlai.boot.mini.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.youlai.boot.framework.security.util.SecurityUtils; +import com.youlai.boot.mini.converter.MiniPointAccountConverter; +import com.youlai.boot.mini.mapper.*; +import com.youlai.boot.mini.model.entity.MiniPointAccount; +import com.youlai.boot.mini.model.form.UserPointQuery; +import com.youlai.boot.mini.model.vo.UserPointVO; +import com.youlai.boot.mini.service.PointService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +@Slf4j +public class PointServiceImpl extends ServiceImpl implements PointService { + + private final MiniPointAccountMapper miniPointAccountMapper; + private final MiniPointRecordMapper miniPointRecordMapper; + private final MiniPointAccountConverter miniPointAccountConverter; + + @Override + public IPage page(UserPointQuery queryParams) { + Long userId = SecurityUtils.getUserId(); + Page page = new Page<>(queryParams.getPageNum(), queryParams.getPageSize()); + LambdaQueryWrapper query = new LambdaQueryWrapper(); + query.eq(MiniPointAccount::getUserId, userId); + Page pageList = this.page(page, query); + return miniPointAccountConverter.toPageVo(pageList); + } + +}