From 54bf24b96676c5eda988f3d5311470f6c844dde4 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 22 Aug 2023 21:59:00 +0800 Subject: [PATCH] =?UTF-8?q?code=20review=EF=BC=9A=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E7=AD=89=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/mysql/member_group.sql | 36 -------- sql/mysql/member_level.sql | 86 ------------------- .../level/vo/level/MemberLevelBaseVO.java | 2 +- .../level/vo/log/MemberLevelLogBaseVO.java | 2 +- .../admin/user/vo/MemberUserRespVO.java | 4 +- .../level/MemberExperienceLogDO.java | 11 ++- .../dal/dataobject/level/MemberLevelDO.java | 11 +-- .../dataobject/level/MemberLevelLogDO.java | 9 +- .../level/MemberExperienceLogService.java | 8 -- .../service/level/MemberLevelLogService.java | 8 -- .../level/MemberLevelLogServiceImpl.java | 4 +- .../level/MemberLevelServiceImplTest.java | 6 +- 12 files changed, 31 insertions(+), 156 deletions(-) delete mode 100644 sql/mysql/member_group.sql diff --git a/sql/mysql/member_group.sql b/sql/mysql/member_group.sql deleted file mode 100644 index c2220f7e6..000000000 --- a/sql/mysql/member_group.sql +++ /dev/null @@ -1,36 +0,0 @@ -create table member_group -( - id bigint auto_increment comment '编号' primary key, - name varchar(30) default '' not null comment '名称', - remark varchar(255) default '' not null comment '备注', - status tinyint default 0 not null comment '状态', - creator varchar(64) default '' null comment '创建者', - create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', - updater varchar(64) default '' null comment '更新者', - update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', - deleted bit default b'0' not null comment '是否删除', - tenant_id bigint default 0 not null comment '租户编号' -) - comment '用户分组'; - -alter table member_user add column group_id bigint null comment '用户分组编号'; - --- 菜单 SQL -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status, component_name) -VALUES ('用户分组', '', 2, 5, 2262, 'group', '', 'member/group/index', 0, 'MemberGroup'); - --- 按钮父菜单ID --- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码 -SELECT @parentId := LAST_INSERT_ID(); - --- 按钮 SQL -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('用户分组查询', 'member:group:query', 3, 1, @parentId, '', '', '', 0); -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('用户分组创建', 'member:group:create', 3, 2, @parentId, '', '', '', 0); -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('用户分组更新', 'member:group:update', 3, 3, @parentId, '', '', '', 0); -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('用户分组删除', 'member:group:delete', 3, 4, @parentId, '', '', '', 0); -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('用户分组导出', 'member:group:export', 3, 5, @parentId, '', '', '', 0); diff --git a/sql/mysql/member_level.sql b/sql/mysql/member_level.sql index cdb8618e5..9243d7337 100644 --- a/sql/mysql/member_level.sql +++ b/sql/mysql/member_level.sql @@ -1,71 +1,3 @@ --- 会员表增加字段 -alter table member_user add column experience int not null default 0 comment '经验'; -alter table member_user add column level_id bigint comment '等级编号'; - --- 增加3张表 -create table member_level -( - id bigint auto_increment comment '编号' primary key, - name varchar(30) default '' not null comment '等级名称', - experience int default 0 not null comment '升级经验', - level int default 0 not null comment '等级', - discount tinyint default 100 not null comment '享受折扣', - icon varchar(255) default '' not null comment '等级图标', - background_url varchar(255) default '' not null comment '等级背景图', - status tinyint default 0 not null comment '状态', - creator varchar(64) default '' null comment '创建者', - create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', - updater varchar(64) default '' null comment '更新者', - update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', - deleted bit default b'0' not null comment '是否删除', - tenant_id bigint default 0 not null comment '租户编号' -) - comment '会员等级'; - -create table member_level_log -( - id bigint auto_increment comment '编号' primary key, - user_id bigint default 0 not null comment '用户编号', - level_id bigint default 0 not null comment '等级编号', - level int default 0 not null comment '会员等级', - discount tinyint default 100 not null comment '享受折扣', - experience int default 0 not null comment '升级经验', - user_experience int default 0 not null comment '会员此时的经验', - remark varchar(255) default '' not null comment '备注', - description varchar(255) default '' not null comment '描述', - creator varchar(64) default '' null comment '创建者', - create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', - updater varchar(64) default '' null comment '更新者', - update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', - deleted bit default b'0' not null comment '是否删除', - tenant_id bigint default 0 not null comment '租户编号' -) - comment '会员等级记录'; - -create index idx_user_id on member_level_log (user_id) comment '会员等级记录-用户编号'; - -create table member_experience_log -( - id bigint auto_increment comment '编号' primary key, - user_id bigint default 0 not null comment '用户编号', - biz_id varchar(64) default '' not null comment '业务编号', - biz_type tinyint default 0 not null comment '业务类型', - title varchar(30) default '' not null comment '标题', - experience int default 0 not null comment '经验', - total_experience int default 0 not null comment '变更后的经验', - description varchar(512) default '' not null comment '描述', - creator varchar(64) default '' null comment '创建者', - create_time datetime default CURRENT_TIMESTAMP not null comment '创建时间', - updater varchar(64) default '' null comment '更新者', - update_time datetime default CURRENT_TIMESTAMP not null on update CURRENT_TIMESTAMP comment '更新时间', - deleted bit default b'0' not null comment '是否删除', - tenant_id bigint default 0 not null comment '租户编号' -) - comment '会员经验记录'; - -create index idx_user_id on member_experience_log (user_id) comment '会员经验记录-用户编号'; -create index idx_user_biz_type on member_experience_log (user_id, biz_type) comment '会员经验记录-用户业务类型'; - -- 增加字典 insert system_dict_type(name, type) values ('会员经验业务类型', 'member_experience_biz_type'); insert system_dict_data(dict_type, label, value, sort) values ('member_experience_biz_type', '管理员调整', '0', 0); @@ -74,21 +6,3 @@ insert system_dict_data(dict_type, label, value, sort) values ('member_experienc insert system_dict_data(dict_type, label, value, sort) values ('member_experience_biz_type', '退单扣除', '3', 3); insert system_dict_data(dict_type, label, value, sort) values ('member_experience_biz_type', '签到奖励', '4', 4); insert system_dict_data(dict_type, label, value, sort) values ('member_experience_biz_type', '抽奖奖励', '5', 5); - --- 菜单 SQL -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status, component_name) -VALUES ('会员等级', '', 2, 3, 2262, 'level', '', 'member/level/index', 0, 'MemberLevel'); - --- 按钮父菜单ID --- 暂时只支持 MySQL。如果你是 Oracle、PostgreSQL、SQLServer 的话,需要手动修改 @parentId 的部分的代码 -SELECT @parentId := LAST_INSERT_ID(); - --- 按钮 SQL -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('会员等级查询', 'member:level:query', 3, 1, @parentId, '', '', '', 0); -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('会员等级创建', 'member:level:create', 3, 2, @parentId, '', '', '', 0); -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('会员等级更新', 'member:level:update', 3, 3, @parentId, '', '', '', 0); -INSERT INTO system_menu(name, permission, type, sort, parent_id, path, icon, component, status) -VALUES ('会员等级删除', 'member:level:delete', 3, 4, @parentId, '', '', '', 0); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/vo/level/MemberLevelBaseVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/vo/level/MemberLevelBaseVO.java index d3d2d193c..9580647f8 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/vo/level/MemberLevelBaseVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/vo/level/MemberLevelBaseVO.java @@ -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 格式") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/vo/log/MemberLevelLogBaseVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/vo/log/MemberLevelLogBaseVO.java index 845b02435..e9a2cda7f 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/vo/log/MemberLevelLogBaseVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/level/vo/log/MemberLevelLogBaseVO.java @@ -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 = "升级经验不能为空") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/vo/MemberUserRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/vo/MemberUserRespVO.java index dd47694b6..b4d925f90 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/vo/MemberUserRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/user/vo/MemberUserRespVO.java @@ -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 tagNames; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberExperienceLogDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberExperienceLogDO.java index 5324ac328..d6a7c1999 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberExperienceLogDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberExperienceLogDO.java @@ -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; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberLevelDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberLevelDO.java index d504af055..05035ffe5 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberLevelDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberLevelDO.java @@ -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; + /** * 等级图标 */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberLevelLogDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberLevelLogDO.java index 80f7ee679..89d580d0e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberLevelLogDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberLevelLogDO.java @@ -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; /** * 升级经验 */ diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberExperienceLogService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberExperienceLogService.java index 8bc91fc04..f6ea1cb28 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberExperienceLogService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberExperienceLogService.java @@ -39,14 +39,6 @@ public interface MemberExperienceLogService { */ PageResult getExperienceLogPage(MemberExperienceLogPageReqVO pageReqVO); - /** - * 获得会员经验记录列表, 用于 Excel 导出 - * - * @param exportReqVO 查询条件 - * @return 会员经验记录列表 - */ - List getExperienceLogList(MemberExperienceLogExportReqVO exportReqVO); - // TODO @疯狂:类似 MemberLevelLogService 的方法,这里也需要提供一个通用的方法,用于创建经验变动记录 /** diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberLevelLogService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberLevelLogService.java index 4288594b2..f165d1a6a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberLevelLogService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberLevelLogService.java @@ -47,14 +47,6 @@ public interface MemberLevelLogService { */ PageResult getLevelLogPage(MemberLevelLogPageReqVO pageReqVO); - /** - * 获得会员等级记录列表, 用于 Excel 导出 - * - * @param exportReqVO 查询条件 - * @return 会员等级记录列表 - */ - List getLevelLogList(MemberLevelLogExportReqVO exportReqVO); - // TODO @疯狂:把 createCancelLog、createAdjustLog、createAutoUpgradeLog 几个日志合并成一个通用的日志方法;整体的内容,交给 MemberLevelService 去做;以及对应的 level 变化的通知; /** diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberLevelLogServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberLevelLogServiceImpl.java index 2031c70fb..309ebf598 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberLevelLogServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberLevelLogServiceImpl.java @@ -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()); diff --git a/yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/level/MemberLevelServiceImplTest.java b/yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/level/MemberLevelServiceImplTest.java index e05dde443..613d35ef2 100644 --- a/yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/level/MemberLevelServiceImplTest.java +++ b/yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/level/MemberLevelServiceImplTest.java @@ -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... consumers) { Consumer consumer = (o) -> { o.setStatus(CommonStatusEnum.ENABLE.getStatus()); - o.setDiscount(randomInt(0, 100)); + o.setDiscountPercent(randomInt(0, 100)); o.setIcon(randomURL()); o.setBackgroundUrl(randomURL()); };