天天看點

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);
}