code review:会员等级

This commit is contained in:
YunaiV
2023-08-22 21:59:00 +08:00
parent 551a968449
commit 54bf24b966
12 changed files with 31 additions and 156 deletions

View File

@ -35,7 +35,7 @@ public class MemberLevelBaseVO {
@Schema(description = "享受折扣", requiredMode = Schema.RequiredMode.REQUIRED, example = "98")
@NotNull(message = "享受折扣不能为空")
@Range(min = 0, max = 100, message = "享受折扣的范围为 0-100")
private Integer discount;
private Integer discountPercent;
@Schema(description = "等级图标", example = "https://www.iocoder.cn/yudao.jpg")
@URL(message = "等级图标必须是 URL 格式")

View File

@ -26,7 +26,7 @@ public class MemberLevelLogBaseVO {
@Schema(description = "享受折扣", requiredMode = Schema.RequiredMode.REQUIRED, example = "13319")
@NotNull(message = "享受折扣不能为空")
private Integer discount;
private Integer discountPercent;
@Schema(description = "升级经验", requiredMode = Schema.RequiredMode.REQUIRED, example = "13319")
@NotNull(message = "升级经验不能为空")

View File

@ -29,9 +29,11 @@ public class MemberUserRespVO extends MemberUserBaseVO {
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
// ========== 其它信息 ==========
@Schema(description = "积分", example = "100")
private Integer point;
@Schema(description = "会员标签", example = "[红色, 快乐]")
private List<String> tagNames;

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.member.dal.dataobject.level;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import cn.iocoder.yudao.module.member.enums.MemberExperienceBizTypeEnum;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
@ -29,6 +30,8 @@ public class MemberExperienceLogDO extends BaseDO {
private Long id;
/**
* 用户编号
*
* 关联 {@link MemberUserDO#getId()} 字段
*/
private Long userId;
/**
@ -45,6 +48,10 @@ public class MemberExperienceLogDO extends BaseDO {
* 标题
*/
private String title;
/**
* 描述
*/
private String description;
/**
* 经验
*/
@ -53,9 +60,5 @@ public class MemberExperienceLogDO extends BaseDO {
* 变更后的经验
*/
private Integer totalExperience;
/**
* 描述
*/
private String description;
}

View File

@ -33,18 +33,19 @@ public class MemberLevelDO extends BaseDO {
* 等级名称
*/
private String name;
/**
* 升级经验
*/
private Integer experience;
/**
* 等级
*/
private Integer level;
/**
* 升级经验
*/
private Integer experience;
/**
* 享受折扣
*/
private Integer discount;
private Integer discountPercent;
/**
* 等级图标
*/

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.member.dal.dataobject.level;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
@ -30,20 +31,26 @@ public class MemberLevelLogDO extends BaseDO {
private Long id;
/**
* 用户编号
*
* 关联 {@link MemberUserDO#getId()} 字段
*/
private Long userId;
/**
* 等级编号
*
* 关联 {@link MemberLevelDO#getId()} 字段
*/
private Long levelId;
/**
* 会员等级
*
* 冗余 {@link MemberLevelDO#getLevel()} 字段
*/
private Integer level;
/**
* 享受折扣
*/
private Integer discount;
private Integer discountPercent;
/**
* 升级经验
*/

View File

@ -39,14 +39,6 @@ public interface MemberExperienceLogService {
*/
PageResult<MemberExperienceLogDO> getExperienceLogPage(MemberExperienceLogPageReqVO pageReqVO);
/**
* 获得会员经验记录列表, 用于 Excel 导出
*
* @param exportReqVO 查询条件
* @return 会员经验记录列表
*/
List<MemberExperienceLogDO> getExperienceLogList(MemberExperienceLogExportReqVO exportReqVO);
// TODO @疯狂:类似 MemberLevelLogService 的方法,这里也需要提供一个通用的方法,用于创建经验变动记录
/**

View File

@ -47,14 +47,6 @@ public interface MemberLevelLogService {
*/
PageResult<MemberLevelLogDO> getLevelLogPage(MemberLevelLogPageReqVO pageReqVO);
/**
* 获得会员等级记录列表, 用于 Excel 导出
*
* @param exportReqVO 查询条件
* @return 会员等级记录列表
*/
List<MemberLevelLogDO> getLevelLogList(MemberLevelLogExportReqVO exportReqVO);
// TODO @疯狂:把 createCancelLog、createAdjustLog、createAutoUpgradeLog 几个日志合并成一个通用的日志方法;整体的内容,交给 MemberLevelService 去做;以及对应的 level 变化的通知;
/**

View File

@ -75,7 +75,7 @@ public class MemberLevelLogServiceImpl implements MemberLevelLogService {
levelLogDO.setUserId(user.getId());
levelLogDO.setLevelId(level.getId());
levelLogDO.setLevel(level.getLevel());
levelLogDO.setDiscount(level.getDiscount());
levelLogDO.setDiscountPercent(level.getDiscountPercent());
levelLogDO.setUserExperience(level.getExperience());
levelLogDO.setExperience(experience);
levelLogDO.setRemark(reason);
@ -92,7 +92,7 @@ public class MemberLevelLogServiceImpl implements MemberLevelLogService {
levelLogDO.setUserId(user.getId());
levelLogDO.setLevelId(level.getId());
levelLogDO.setLevel(level.getLevel());
levelLogDO.setDiscount(level.getDiscount());
levelLogDO.setDiscountPercent(level.getDiscountPercent());
levelLogDO.setExperience(level.getExperience());
levelLogDO.setUserExperience(user.getExperience());
levelLogDO.setDescription("成为:" + level.getName());

View File

@ -49,7 +49,7 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
public void testCreateLevel_success() {
// 准备参数
MemberLevelCreateReqVO reqVO = randomPojo(MemberLevelCreateReqVO.class, o -> {
o.setDiscount(randomInt());
o.setDiscountPercent(randomInt());
o.setIcon(randomURL());
o.setBackgroundUrl(randomURL());
});
@ -76,7 +76,7 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
o.setLevel(dbLevel.getLevel());
o.setExperience(dbLevel.getExperience());
//以下是要修改的字段
o.setDiscount(randomInt());
o.setDiscountPercent(randomInt());
o.setIcon(randomURL());
o.setBackgroundUrl(randomURL());
});
@ -256,7 +256,7 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
private static MemberLevelDO randomLevelDO(Consumer<MemberLevelDO>... consumers) {
Consumer<MemberLevelDO> consumer = (o) -> {
o.setStatus(CommonStatusEnum.ENABLE.getStatus());
o.setDiscount(randomInt(0, 100));
o.setDiscountPercent(randomInt(0, 100));
o.setIcon(randomURL());
o.setBackgroundUrl(randomURL());
};