mirror of
https://gitee.com/huangge1199_admin/vue-pro.git
synced 2024-11-23 15:51:52 +08:00
code review:会员等级
This commit is contained in:
parent
4cd5b5712b
commit
800c44a46e
@ -28,9 +28,7 @@ import java.util.List;
|
|||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
|
||||||
/**
|
// TODO @疯狂:要不 Log 改成 Record,和 PointRecord 保持一致
|
||||||
* @author owen
|
|
||||||
*/
|
|
||||||
@Tag(name = "管理后台 - 会员经验记录")
|
@Tag(name = "管理后台 - 会员经验记录")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/member/experience-log")
|
@RequestMapping("/member/experience-log")
|
||||||
@ -40,6 +38,7 @@ public class MemberExperienceLogController {
|
|||||||
@Resource
|
@Resource
|
||||||
private MemberExperienceLogService experienceLogService;
|
private MemberExperienceLogService experienceLogService;
|
||||||
|
|
||||||
|
// TODO @疯狂:不允许删除经验哈
|
||||||
@DeleteMapping("/delete")
|
@DeleteMapping("/delete")
|
||||||
@Operation(summary = "删除会员经验记录")
|
@Operation(summary = "删除会员经验记录")
|
||||||
@Parameter(name = "id", description = "编号", required = true)
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
@ -58,6 +57,7 @@ public class MemberExperienceLogController {
|
|||||||
return success(MemberExperienceLogConvert.INSTANCE.convert(experienceLog));
|
return success(MemberExperienceLogConvert.INSTANCE.convert(experienceLog));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO @疯狂:这个接口可以删除哈,应该用不到
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@Operation(summary = "获得会员经验记录列表")
|
@Operation(summary = "获得会员经验记录列表")
|
||||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||||
@ -75,6 +75,7 @@ public class MemberExperienceLogController {
|
|||||||
return success(MemberExperienceLogConvert.INSTANCE.convertPage(pageResult));
|
return success(MemberExperienceLogConvert.INSTANCE.convertPage(pageResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO @疯狂:导出可以先不支持,场景不多
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
@Operation(summary = "导出会员经验记录 Excel")
|
@Operation(summary = "导出会员经验记录 Excel")
|
||||||
@PreAuthorize("@ss.hasPermission('member:experience-log:export')")
|
@PreAuthorize("@ss.hasPermission('member:experience-log:export')")
|
||||||
|
@ -2,7 +2,7 @@ package cn.iocoder.yudao.module.member.controller.admin.level;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.*;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.*;
|
||||||
import cn.iocoder.yudao.module.member.convert.level.MemberLevelConvert;
|
import cn.iocoder.yudao.module.member.convert.level.MemberLevelConvert;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
||||||
import cn.iocoder.yudao.module.member.service.level.MemberLevelService;
|
import cn.iocoder.yudao.module.member.service.level.MemberLevelService;
|
||||||
@ -20,9 +20,6 @@ import java.util.List;
|
|||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
/**
|
|
||||||
* @author owen
|
|
||||||
*/
|
|
||||||
@Tag(name = "管理后台 - 会员等级")
|
@Tag(name = "管理后台 - 会员等级")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/member/level")
|
@RequestMapping("/member/level")
|
||||||
@ -65,6 +62,7 @@ public class MemberLevelController {
|
|||||||
return success(MemberLevelConvert.INSTANCE.convert(level));
|
return success(MemberLevelConvert.INSTANCE.convert(level));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO @疯狂:这个应该用不到哈
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@Operation(summary = "获得会员等级列表")
|
@Operation(summary = "获得会员等级列表")
|
||||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||||
@ -83,6 +81,7 @@ public class MemberLevelController {
|
|||||||
return success(MemberLevelConvert.INSTANCE.convertSimpleList(list));
|
return success(MemberLevelConvert.INSTANCE.convertSimpleList(list));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO @疯狂:是不是不做分页,直接 list 就好啦;返回的时候,按照经验排序下哈;
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
@Operation(summary = "获得会员等级分页")
|
@Operation(summary = "获得会员等级分页")
|
||||||
@PreAuthorize("@ss.hasPermission('member:level:query')")
|
@PreAuthorize("@ss.hasPermission('member:level:query')")
|
||||||
|
@ -28,9 +28,7 @@ import java.util.List;
|
|||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
|
|
||||||
/**
|
// TODO @疯狂:是不是不用这个 controller;因为日志只是为了记录,db 可以查询、和审计即可,目前暂时不需要开放出来;
|
||||||
* @author owen
|
|
||||||
*/
|
|
||||||
@Tag(name = "管理后台 - 会员等级记录")
|
@Tag(name = "管理后台 - 会员等级记录")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/member/level-log")
|
@RequestMapping("/member/level-log")
|
||||||
@ -40,6 +38,7 @@ public class MemberLevelLogController {
|
|||||||
@Resource
|
@Resource
|
||||||
private MemberLevelLogService levelLogService;
|
private MemberLevelLogService levelLogService;
|
||||||
|
|
||||||
|
// TODO @疯狂:这个不允许删除哈
|
||||||
@DeleteMapping("/delete")
|
@DeleteMapping("/delete")
|
||||||
@Operation(summary = "删除会员等级记录")
|
@Operation(summary = "删除会员等级记录")
|
||||||
@Parameter(name = "id", description = "编号", required = true)
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
@ -58,6 +57,7 @@ public class MemberLevelLogController {
|
|||||||
return success(MemberLevelLogConvert.INSTANCE.convert(levelLog));
|
return success(MemberLevelLogConvert.INSTANCE.convert(levelLog));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO @疯狂:这个接口,应该没用
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
@Operation(summary = "获得会员等级记录列表")
|
@Operation(summary = "获得会员等级记录列表")
|
||||||
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||||
@ -75,6 +75,7 @@ public class MemberLevelLogController {
|
|||||||
return success(MemberLevelLogConvert.INSTANCE.convertPage(pageResult));
|
return success(MemberLevelLogConvert.INSTANCE.convertPage(pageResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO @疯狂:导出可以去掉先
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
@Operation(summary = "导出会员等级记录 Excel")
|
@Operation(summary = "导出会员等级记录 Excel")
|
||||||
@PreAuthorize("@ss.hasPermission('member:level-log:export')")
|
@PreAuthorize("@ss.hasPermission('member:level-log:export')")
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package cn.iocoder.yudao.module.member.controller.admin.level.vo;
|
package cn.iocoder.yudao.module.member.controller.admin.level.vo.level;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
|
import cn.iocoder.yudao.framework.common.validation.InEnum;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.hibernate.validator.constraints.Range;
|
import org.hibernate.validator.constraints.Range;
|
||||||
@ -47,6 +49,7 @@ public class MemberLevelBaseVO {
|
|||||||
|
|
||||||
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
@Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
|
||||||
@NotNull(message = "状态不能为空")
|
@NotNull(message = "状态不能为空")
|
||||||
|
@InEnum(CommonStatusEnum.class)
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
}
|
}
|
@ -1,10 +1,11 @@
|
|||||||
package cn.iocoder.yudao.module.member.controller.admin.level.vo;
|
package cn.iocoder.yudao.module.member.controller.admin.level.vo.level;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
|
// TODO @疯狂:项目的 vo 和 controller 不写 author 信息哈,只写 swagger 注解
|
||||||
/**
|
/**
|
||||||
* @author owen
|
* @author owen
|
||||||
*/
|
*/
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.module.member.controller.admin.level.vo;
|
package cn.iocoder.yudao.module.member.controller.admin.level.vo.level;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.module.member.controller.admin.level.vo;
|
package cn.iocoder.yudao.module.member.controller.admin.level.vo.level;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
@ -1,13 +1,11 @@
|
|||||||
package cn.iocoder.yudao.module.member.controller.admin.level.vo;
|
package cn.iocoder.yudao.module.member.controller.admin.level.vo.level;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
/**
|
// TODO @疯狂:不需要继承 MemberLevelBaseVO
|
||||||
* @author owen
|
|
||||||
*/
|
|
||||||
@Schema(description = "管理后台 - 会员等级 Response VO")
|
@Schema(description = "管理后台 - 会员等级 Response VO")
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
@ -1,4 +1,4 @@
|
|||||||
package cn.iocoder.yudao.module.member.controller.admin.level.vo;
|
package cn.iocoder.yudao.module.member.controller.admin.level.vo.level;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
@ -69,7 +69,7 @@ public class MemberTagController {
|
|||||||
@Operation(summary = "获取会员标签精简信息列表", description = "只包含被开启的会员标签,主要用于前端的下拉选项")
|
@Operation(summary = "获取会员标签精简信息列表", description = "只包含被开启的会员标签,主要用于前端的下拉选项")
|
||||||
public CommonResult<List<MemberTagRespVO>> getSimpleTagList() {
|
public CommonResult<List<MemberTagRespVO>> getSimpleTagList() {
|
||||||
// 获用户列表,只要开启状态的
|
// 获用户列表,只要开启状态的
|
||||||
List<MemberTagDO> list = tagService.getList();
|
List<MemberTagDO> list = tagService.getTagList();
|
||||||
// 排序后,返回给前端
|
// 排序后,返回给前端
|
||||||
return success(MemberTagConvert.INSTANCE.convertList(list));
|
return success(MemberTagConvert.INSTANCE.convertList(list));
|
||||||
}
|
}
|
||||||
|
@ -76,10 +76,9 @@ public class MemberUserController {
|
|||||||
.flatMap(Collection::stream)
|
.flatMap(Collection::stream)
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
List<MemberTagDO> tags = memberTagService.getTagList(tagIds);
|
List<MemberTagDO> tags = memberTagService.getTagList(tagIds);
|
||||||
|
|
||||||
// 处理会员级别返显
|
// 处理会员级别返显
|
||||||
List<MemberLevelDO> levels = memberLevelService.getEnableLevelList();
|
List<MemberLevelDO> levels = memberLevelService.getEnableLevelList();
|
||||||
|
// 拼接
|
||||||
return success(MemberUserConvert.INSTANCE.convertPage(pageResult, tags, levels));
|
return success(MemberUserConvert.INSTANCE.convertPage(pageResult, tags, levels));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package cn.iocoder.yudao.module.member.convert.level;
|
package cn.iocoder.yudao.module.member.convert.level;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelCreateReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelRespVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelRespVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelSimpleRespVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelSimpleRespVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelUpdateReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelUpdateReqVO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.factory.Mappers;
|
import org.mapstruct.factory.Mappers;
|
||||||
|
@ -44,8 +44,6 @@ public interface MemberUserConvert {
|
|||||||
// 处理关联数据
|
// 处理关联数据
|
||||||
Map<Long, String> tagMap = convertMap(tags, MemberTagDO::getId, MemberTagDO::getName);
|
Map<Long, String> tagMap = convertMap(tags, MemberTagDO::getId, MemberTagDO::getName);
|
||||||
Map<Long, String> levelMap = convertMap(levels, MemberLevelDO::getId, MemberLevelDO::getName);
|
Map<Long, String> levelMap = convertMap(levels, MemberLevelDO::getId, MemberLevelDO::getName);
|
||||||
|
|
||||||
// 填充关联数据
|
|
||||||
for (MemberUserRespVO vo : result.getList()) {
|
for (MemberUserRespVO vo : result.getList()) {
|
||||||
vo.setTagNames(convertList(vo.getTagIds(), tagMap::get));
|
vo.setTagNames(convertList(vo.getTagIds(), tagMap::get));
|
||||||
vo.setLevelName(MapUtil.getStr(levelMap, vo.getLevelId(), StrUtil.EMPTY));
|
vo.setLevelName(MapUtil.getStr(levelMap, vo.getLevelId(), StrUtil.EMPTY));
|
||||||
|
@ -10,6 +10,8 @@ import lombok.*;
|
|||||||
/**
|
/**
|
||||||
* 会员等级 DO
|
* 会员等级 DO
|
||||||
*
|
*
|
||||||
|
* 配置每个等级需要的积分
|
||||||
|
*
|
||||||
* @author owen
|
* @author owen
|
||||||
*/
|
*/
|
||||||
@TableName("member_level")
|
@TableName("member_level")
|
||||||
|
@ -9,6 +9,8 @@ import lombok.*;
|
|||||||
/**
|
/**
|
||||||
* 会员等级记录 DO
|
* 会员等级记录 DO
|
||||||
*
|
*
|
||||||
|
* 用户每次等级发生变更时,记录一条日志
|
||||||
|
*
|
||||||
* @author owen
|
* @author owen
|
||||||
*/
|
*/
|
||||||
@TableName("member_level_log")
|
@TableName("member_level_log")
|
||||||
|
@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|||||||
import cn.iocoder.yudao.framework.ip.core.Area;
|
import cn.iocoder.yudao.framework.ip.core.Area;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;
|
import cn.iocoder.yudao.framework.mybatis.core.type.LongListTypeHandler;
|
||||||
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
|
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
||||||
import cn.iocoder.yudao.module.system.enums.common.SexEnum;
|
import cn.iocoder.yudao.module.system.enums.common.SexEnum;
|
||||||
import com.baomidou.mybatisplus.annotation.KeySequence;
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
import com.baomidou.mybatisplus.annotation.TableField;
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
@ -119,6 +120,8 @@ public class MemberUserDO extends TenantBaseDO {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 会员级别编号
|
* 会员级别编号
|
||||||
|
*
|
||||||
|
* 关联 {@link MemberLevelDO#getLevel()} 字段
|
||||||
*/
|
*/
|
||||||
private Long levelId;
|
private Long levelId;
|
||||||
/**
|
/**
|
||||||
@ -126,5 +129,4 @@ public class MemberUserDO extends TenantBaseDO {
|
|||||||
*/
|
*/
|
||||||
private Integer experience;
|
private Integer experience;
|
||||||
|
|
||||||
// TODO 积分等等
|
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package cn.iocoder.yudao.module.member.dal.mysql.level;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelPageReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@ -49,6 +49,7 @@ public interface MemberUserMapper extends BaseMapperX<MemberUserDO> {
|
|||||||
.orderByDesc(MemberUserDO::getId));
|
.orderByDesc(MemberUserDO::getId));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO @疯狂:命名可以改成 updateUserLevelToNull;db 侧的操作,尽量无业务含义,更多是 select、update、insert 操作
|
||||||
/**
|
/**
|
||||||
* 取消会员的等级
|
* 取消会员的等级
|
||||||
*
|
*
|
||||||
|
@ -2,9 +2,9 @@ package cn.iocoder.yudao.module.member.service.level;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelCreateReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelPageReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelUpdateReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelUpdateReqVO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||||
import cn.iocoder.yudao.module.member.enums.MemberExperienceBizTypeEnum;
|
import cn.iocoder.yudao.module.member.enums.MemberExperienceBizTypeEnum;
|
||||||
|
@ -6,9 +6,9 @@ import cn.hutool.core.util.ObjUtil;
|
|||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelCreateReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelPageReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelUpdateReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelUpdateReqVO;
|
||||||
import cn.iocoder.yudao.module.member.convert.level.MemberLevelConvert;
|
import cn.iocoder.yudao.module.member.convert.level.MemberLevelConvert;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||||
@ -74,6 +74,7 @@ public class MemberLevelServiceImpl implements MemberLevelService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void deleteLevel(Long id) {
|
public void deleteLevel(Long id) {
|
||||||
|
// TODO @疯狂:校验是否有用户使用该等级
|
||||||
// 校验存在
|
// 校验存在
|
||||||
validateLevelExists(id);
|
validateLevelExists(id);
|
||||||
// 删除
|
// 删除
|
||||||
|
@ -68,5 +68,6 @@ public interface MemberTagService {
|
|||||||
*
|
*
|
||||||
* @return 标签列表
|
* @return 标签列表
|
||||||
*/
|
*/
|
||||||
List<MemberTagDO> getList();
|
List<MemberTagDO> getTagList();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ public class MemberTagServiceImpl implements MemberTagService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<MemberTagDO> getList() {
|
public List<MemberTagDO> getTagList() {
|
||||||
return tagMapper.selectList();
|
return tagMapper.selectList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,8 +184,8 @@ public class MemberUserServiceImpl implements MemberUserService {
|
|||||||
return passwordEncoder.encode(password);
|
return passwordEncoder.encode(password);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void updateUser(MemberUserUpdateReqVO updateReqVO) {
|
public void updateUser(MemberUserUpdateReqVO updateReqVO) {
|
||||||
// 校验存在
|
// 校验存在
|
||||||
MemberUserDO user = validateUserExists(updateReqVO.getId());
|
MemberUserDO user = validateUserExists(updateReqVO.getId());
|
||||||
@ -197,6 +197,7 @@ public class MemberUserServiceImpl implements MemberUserService {
|
|||||||
memberUserMapper.updateById(updateObj);
|
memberUserMapper.updateById(updateObj);
|
||||||
|
|
||||||
// 会员级别修改
|
// 会员级别修改
|
||||||
|
// TODO @疯狂:修改用户等级,要不要单独一个前端操作 + 接口;因为它是个相对严肃独立的动作
|
||||||
memberLevelService.updateUserLevel(user, updateReqVO.getLevelId(), updateReqVO.getLevelReason());
|
memberLevelService.updateUserLevel(user, updateReqVO.getLevelId(), updateReqVO.getLevelReason());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,9 +4,9 @@ import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
|
import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
|
||||||
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelCreateReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelCreateReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelPageReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.level.vo.MemberLevelUpdateReqVO;
|
import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelUpdateReqVO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.level.MemberLevelMapper;
|
import cn.iocoder.yudao.module.member.dal.mysql.level.MemberLevelMapper;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
@ -25,6 +25,7 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
|
|||||||
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
|
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
|
||||||
import static org.junit.jupiter.api.Assertions.*;
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
|
||||||
|
// TODO 芋艿:完全 review 完,在去 review 单测
|
||||||
/**
|
/**
|
||||||
* {@link MemberLevelServiceImpl} 的单元测试类
|
* {@link MemberLevelServiceImpl} 的单元测试类
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user