天天看点

Uniapp商城源码/第十八章:会员等级管理

作者:源码解析

一、功能描述

运营会根据用户的消费程度对用户进行等级划分,不同等级的用户推送不一样的消费内容

二、源码

关注+私信获取

如需远程支撑部署运行,问题答疑请关注+私信

三、界面路径

Uniapp商城源码/第十八章:会员等级管理

右侧菜单->用户管理

Uniapp商城源码/第十八章:会员等级管理

四、数据库存储表结构

CREATE TABLE `yx_system_user_level` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `mer_id` int(11) NOT NULL DEFAULT '0' COMMENT '商户id',
  `name` varchar(255) NOT NULL DEFAULT '' COMMENT '会员名称',
  `money` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '购买金额',
  `valid_date` int(11) NOT NULL DEFAULT '0' COMMENT '有效时间',
  `is_forever` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否为永久会员',
  `is_pay` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否购买,1=购买,0=不购买',
  `is_show` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否显示 1=显示,0=隐藏',
  `grade` int(11) NOT NULL DEFAULT '0' COMMENT '会员等级',
  `discount` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '享受折扣',
  `image` varchar(255) NOT NULL DEFAULT '' COMMENT '会员卡背景',
  `icon` varchar(255) NOT NULL DEFAULT '' COMMENT '会员图标',
  `explain` text NOT NULL COMMENT '说明',
  `create_time` datetime NOT NULL COMMENT '添加时间',
  `update_time` datetime DEFAULT NULL,
  `is_del` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除.1=删除,0=未删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='设置用户等级表';           

如上述第2行,mer_id是关联用户基础表

五、前端界面逻辑

Uniapp商城源码/第十八章:会员等级管理
<div class="head-container">
  <!-- 新增 -->
  <div style="display: inline-block;margin: 0px 2px;">
    <el-button
      v-permission="['admin','YXSYSTEMUSERLEVEL_ALL','YXSYSTEMUSERLEVEL_CREATE']"
      class="filter-item"
      size="mini"
      type="primary"
      icon="el-icon-plus"
      @click="add"
    >新增</el-button>
  </div>
</div>           

如上述为新增按钮,绑定事件函数是add

beforeInit() {
  this.url = 'api/yxSystemUserLevel'
  const sort = 'id,desc'
  this.params = { page: this.page, size: this.size, sort: sort }
  return true
},           

页面加载初始化函数,查询url地址是this.url = 'api/yxSystemUserLevel'

六、后端增删改查代码

@Log("查询")
@ApiOperation(value = "查询")
@GetMapping(value = "/yxSystemUserLevel")
@PreAuthorize("hasAnyRole('admin','YXSYSTEMUSERLEVEL_ALL','YXSYSTEMUSERLEVEL_SELECT')")
public ResponseEntity getYxSystemUserLevels(YxSystemUserLevelQueryCriteria criteria, Pageable pageable){
    return new ResponseEntity<>(yxSystemUserLevelService.queryAll(criteria,pageable),HttpStatus.OK);
}

@ForbidSubmit
@Log("新增")
@ApiOperation(value = "新增")
@PostMapping(value = "/yxSystemUserLevel")
@PreAuthorize("hasAnyRole('admin','YXSYSTEMUSERLEVEL_ALL','YXSYSTEMUSERLEVEL_CREATE')")
public ResponseEntity create(@Validated @RequestBody YxSystemUserLevel resources){
    return new ResponseEntity<>(yxSystemUserLevelService.save(resources),HttpStatus.CREATED);
}

@ForbidSubmit
@Log("修改")
@ApiOperation(value = "修改")
@PutMapping(value = "/yxSystemUserLevel")
@PreAuthorize("hasAnyRole('admin','YXSYSTEMUSERLEVEL_ALL','YXSYSTEMUSERLEVEL_EDIT')")
public ResponseEntity update(@Validated @RequestBody YxSystemUserLevel resources){
    yxSystemUserLevelService.saveOrUpdate(resources);
    return new ResponseEntity(HttpStatus.NO_CONTENT);
}

@ForbidSubmit
@Log("删除")
@ApiOperation(value = "删除")
@DeleteMapping(value = "/yxSystemUserLevel/{id}")
@PreAuthorize("hasAnyRole('admin','YXSYSTEMUSERLEVEL_ALL','YXSYSTEMUSERLEVEL_DELETE')")
public ResponseEntity delete(@PathVariable Integer id){
    yxSystemUserLevelService.removeById(id);
    return new ResponseEntity(HttpStatus.OK);
}