refactor(mall): 重构会员管理系统
- 调整会员相关控制器和 mapper 的包结构
- 重写会员列表查询逻辑,增加会员等级和分销等级字段
- 更新会员实体类,添加会员等级和分销等级相关属性
- 修改会员列表页面展示内容,增加真实姓名和会员等级等信息
2 files renamed
5 files modified
File was renamed from src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java |
| | |
| | | package cc.mrbird.febs.mall.controller; |
| | | package cc.mrbird.febs.mall.controller.member; |
| | | |
| | | import cc.mrbird.febs.common.annotation.ControllerEndpoint; |
| | | import cc.mrbird.febs.common.controller.BaseController; |
File was renamed from src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java |
| | |
| | | package cc.mrbird.febs.mall.controller; |
| | | package cc.mrbird.febs.mall.controller.member; |
| | | |
| | | import cc.mrbird.febs.common.controller.BaseController; |
| | | import cc.mrbird.febs.common.entity.FebsConstant; |
| | |
| | | private String levelName; |
| | | |
| | | /** |
| | | * 董事 |
| | | * 会员等级 |
| | | */ |
| | | private Integer director; |
| | | @TableField(exist = false) |
| | | private String directorName; |
| | | |
| | | /** |
| | | * 店长 |
| | | * 分销等级 |
| | | */ |
| | | private Integer storeMaster; |
| | | @TableField(exist = false) |
| | | private String storeMasterName; |
| | | |
| | | /** |
| | | * 微信用户标识 |
| | |
| | | |
| | | IPage<MallMember> selectMallMemberListInPage(Page<MallMember> page, @Param("record")MallMember mallMember); |
| | | |
| | | IPage<MallMember> selectHappyMemberListInPage(Page<MallMember> page, @Param("record")MallMember mallMember); |
| | | |
| | | MallMember selectInfoByInviteId(@Param("inviteId") String inviteId); |
| | | |
| | | MallMember selectInfoByAccountAndPwd(@Param("account") String account, @Param("password") String password); |
| | |
| | | private final SalemanCouponMapper salemanCouponMapper; |
| | | private final MallMemberCouponMapper mallMemberCouponMapper; |
| | | private final MallGoodsCouponMapper mallGoodsCouponMapper; |
| | | private final HappySaleLevelMapper happySaleLevelMapper; |
| | | private final HappyMemberLevelMapper happyMemberLevelMapper; |
| | | |
| | | |
| | | @Override |
| | | public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { |
| | | Page<MallMember> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | LambdaQueryWrapper<MallMember> mallMemberLambdaQueryWrapper = new LambdaQueryWrapper<>(); |
| | | if(ObjectUtil.isNotEmpty(mallMember.getName())){ |
| | | mallMemberLambdaQueryWrapper.like(MallMember::getName, mallMember.getName()); |
| | | } |
| | | if(ObjectUtil.isNotEmpty(mallMember.getPhone())){ |
| | | mallMemberLambdaQueryWrapper.eq(MallMember::getPhone, mallMember.getPhone()); |
| | | } |
| | | if(ObjectUtil.isNotEmpty(mallMember.getCheckOrder())){ |
| | | mallMemberLambdaQueryWrapper.eq(MallMember::getCheckOrder, mallMember.getCheckOrder()); |
| | | } |
| | | mallMemberLambdaQueryWrapper.orderByDesc(MallMember::getId); |
| | | |
| | | Page<MallMember> mallMemberPage = this.baseMapper.selectPage(page, mallMemberLambdaQueryWrapper); |
| | | // IPage<MallMember> mallMembers = this.baseMapper.selectMallMemberListInPage(page, mallMember); |
| | | return mallMemberPage; |
| | | IPage<MallMember> mallMembers = this.baseMapper.selectHappyMemberListInPage(page, mallMember); |
| | | return mallMembers; |
| | | } |
| | | |
| | | @Override |
| | |
| | | GROUP BY m.id order by m.CREATED_TIME desc |
| | | </select> |
| | | |
| | | <select id="selectHappyMemberListInPage" resultType="cc.mrbird.febs.mall.entity.MallMember"> |
| | | SELECT |
| | | a.*, |
| | | b.name storeMasterName, |
| | | c.name directorName |
| | | FROM mall_member a |
| | | left join happy_sale_level b on b.code = a.store_master |
| | | left join happy_member_level c on c.code = a.director |
| | | <where> |
| | | <if test="record != null" > |
| | | <if test="record.birthdayQuery!=null"> |
| | | and date_format(m.birthday, '%m-%d') = date_format(#{record.birthdayQuery}, '%m-%d') |
| | | </if> |
| | | <if test="record.name!=null and record.name!=''"> |
| | | and m.name like concat('%', #{record.name},'%') |
| | | </if> |
| | | <if test="record.account!=null and record.account!=''"> |
| | | and ( |
| | | m.phone like concat('%', #{record.account},'%') |
| | | or m.email like concat('%', #{record.account},'%') |
| | | or m.bind_phone like concat('%', #{record.account},'%') |
| | | or m.invite_id like concat('%', #{record.account},'%') |
| | | ) |
| | | </if> |
| | | <if test="record.accountStatus!=null"> |
| | | and m.account_status = #{record.accountStatus} |
| | | </if> |
| | | <if test="record.accountType != null" > |
| | | and m.account_type = #{record.accountType} |
| | | </if> |
| | | <if test="record.level!=null and record.level!=''"> |
| | | and m.level=#{record.level} |
| | | </if> |
| | | <if test="record.isSale!=null and record.isSale!=''"> |
| | | and m.is_sale=#{record.isSale} |
| | | </if> |
| | | </if> |
| | | </where> |
| | | GROUP BY m.id order by m.CREATED_TIME desc |
| | | </select> |
| | | |
| | | <select id="getMallMemberInfoById" resultType="cc.mrbird.febs.mall.vo.MallMemberVo"> |
| | | SELECT a.id, |
| | | a.name, |
| | |
| | | {type: 'checkbox'}, |
| | | {type: 'numbers', title: '', width: 80}, |
| | | // {title: '操作', toolbar: '#memberOption', minWidth: 200, align: 'center'}, |
| | | {field: 'phone', title: '手机号码', minWidth: 150,align:'left'}, |
| | | {field: 'name', title: '用户昵称', minWidth: 100,align:'left'}, |
| | | {field: 'name', title: '用户名', minWidth: 100,align:'left'}, |
| | | {field: 'realName', title: '真实姓名', minWidth: 100,align:'left'}, |
| | | {field: 'phone', title: '联系方式', minWidth: 150,align:'left'}, |
| | | {field: 'inviteId', title: '邀请码', minWidth: 100,align:'left'}, |
| | | {field: 'checkOrder', title: '核销员', templet: '#checkOrderSwitch', minWidth: 100,align:'center'}, |
| | | {field: 'createdTime', title: '注册时间', minWidth: 180,align:'center'}, |