会员管理
This commit is contained in:
parent
3f93a5fa53
commit
e0385816b3
19
fuintAdmin/src/api/staff/user/chainstoreconfig.js
Normal file
19
fuintAdmin/src/api/staff/user/chainstoreconfig.js
Normal file
@ -0,0 +1,19 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询会员详细
|
||||
export function getChainStoreConfig(id) {
|
||||
return request({
|
||||
url: '/business/userManager/chainStoreConfig',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改会员
|
||||
export function updateChainStoreConfig(data) {
|
||||
return request({
|
||||
url: '/business/userManager/chainStoreConfig',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
44
fuintAdmin/src/api/staff/user/user.js
Normal file
44
fuintAdmin/src/api/staff/user/user.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询会员列表
|
||||
export function listUser(query) {
|
||||
return request({
|
||||
url: '/business/userManager/user/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询会员详细
|
||||
export function getUser(id) {
|
||||
return request({
|
||||
url: '/business/userManager/user/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增会员
|
||||
export function addUser(data) {
|
||||
return request({
|
||||
url: '/business/userManager/user',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改会员
|
||||
export function updateUser(data) {
|
||||
return request({
|
||||
url: '/business/userManager/user',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除会员
|
||||
export function delUser(id) {
|
||||
return request({
|
||||
url: '/business/userManager/user/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
44
fuintAdmin/src/api/staff/user/usergrade.js
Normal file
44
fuintAdmin/src/api/staff/user/usergrade.js
Normal file
@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询会员等级列表
|
||||
export function listUserGrade(query) {
|
||||
return request({
|
||||
url: '/business/userManager/userGrade/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询会员等级详细
|
||||
export function getUserGrade(id) {
|
||||
return request({
|
||||
url: '/business/userManager/userGrade/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增会员等级
|
||||
export function addUserGrade(data) {
|
||||
return request({
|
||||
url: '/business/userManager/userGrade',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改会员等级
|
||||
export function updateUserGrade(data) {
|
||||
return request({
|
||||
url: '/business/userManager/userGrade',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除会员等级
|
||||
export function delUserGrade(id) {
|
||||
return request({
|
||||
url: '/business/userManager/userGrade/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div>
|
||||
<div style="margin: 20px 0px">
|
||||
<div style="margin: 20px 0px" ref="pform">
|
||||
<div style="display: flex">
|
||||
<p style="margin-right: 34px">省市区</p>
|
||||
<el-cascader
|
||||
@ -15,12 +15,10 @@
|
||||
<div id="container" class="container" clearable style="margin-top: 15px"></div>
|
||||
</div>
|
||||
</div>
|
||||
{{form.lng}}
|
||||
{{form.lat}}
|
||||
{{form.address}}
|
||||
<p>详细地址:<el-input v-model="form.address"
|
||||
placeholder="请输入内容"
|
||||
style="width: 50%"
|
||||
@blur="getLngLat"
|
||||
></el-input></p>
|
||||
</div>
|
||||
</template>
|
||||
@ -69,16 +67,19 @@ export default {
|
||||
this.getOption();
|
||||
},
|
||||
mounted() {
|
||||
this.initAMap();
|
||||
},
|
||||
methods:{
|
||||
pasVal(){
|
||||
this.$emit('pform', this.form); // 触发custom-event事件并传递参数
|
||||
// this.$refs.pform.pasVal()
|
||||
},
|
||||
changeOption(val){
|
||||
this.remoteMethod(val[2]);
|
||||
},
|
||||
getOption(){
|
||||
let _this = this;
|
||||
getClient().then(response => {
|
||||
this.options = response.data.list;
|
||||
_this.options = response.data.list;
|
||||
})
|
||||
},
|
||||
initAMap() {
|
||||
@ -93,6 +94,7 @@ export default {
|
||||
zoom: 11, //初始化地图级别
|
||||
center: [_this.form.lng, _this.form.lat], //初始化地图中心点位置
|
||||
});
|
||||
// console.log(this.map.center)
|
||||
//地址逆解析插件
|
||||
this.geoCoder = new AMap.Geocoder({
|
||||
city: "010", //城市设为北京,默认:“全国”
|
||||
@ -161,6 +163,7 @@ export default {
|
||||
_this.form.lng = result.districtList[0].center.lng
|
||||
_this.form.lat = result.districtList[0].center.lat
|
||||
_this.toGeoCoder();
|
||||
_this.pasVal();
|
||||
_this.initAMap();
|
||||
});
|
||||
}, 200);
|
||||
@ -169,6 +172,23 @@ export default {
|
||||
this.initAMap();
|
||||
}
|
||||
},
|
||||
getLngLat(){
|
||||
let _this = this;
|
||||
const geocoder = new AMap.Geocoder()
|
||||
// 地址反向查经纬度,cName: 当前选中城市
|
||||
geocoder.getLocation(this.form.address, (status, result) => {
|
||||
if (status === 'complete' && result.info === 'OK') {
|
||||
// 经纬度
|
||||
_this.form.lng = result.geocodes[0].location.lng
|
||||
_this.form.lat = result.geocodes[0].location.lat
|
||||
_this.toGeoCoder();
|
||||
_this.pasVal();
|
||||
_this.initAMap();
|
||||
} else {
|
||||
this.$modal.msgError("定位失败");
|
||||
}
|
||||
})
|
||||
},
|
||||
// 选中提示
|
||||
currentSelect(val) {
|
||||
// 清空时不执行后面代码
|
||||
|
@ -1,15 +1,7 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="会员ID" prop="id">
|
||||
<el-input
|
||||
v-model="queryParams.id"
|
||||
placeholder="请输入会员ID"
|
||||
clearable
|
||||
style="width: 240px;"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-card >
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="会员号" prop="userNo">
|
||||
<el-input
|
||||
v-model="queryParams.userNo"
|
||||
@ -97,18 +89,20 @@
|
||||
>新增</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
<el-card style="margin-top: 20px">
|
||||
<el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
|
||||
<el-table-column label="会员ID" prop="id" min-width="70"/>
|
||||
<el-table-column label="头像" align="center" width="80">
|
||||
<el-table-column label="会员ID" prop="id" align="center" width="60"/>
|
||||
<el-table-column label="头像" align="center" width="70">
|
||||
<template slot-scope="scope">
|
||||
<img v-if="scope.row.avatar" class="list-avatar" :src="scope.row.avatar">
|
||||
<img v-else class="list-avatar" src="@/assets/images/avatar.png">
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="会员号" prop="userNo" width="150"/>
|
||||
<el-table-column label="会员号" align="center" prop="userNo" width="150"/>
|
||||
<el-table-column label="名称" align="center" prop="name" />
|
||||
<el-table-column label="手机号" align="center" prop="mobile" width="100">
|
||||
<el-table-column label="手机号" align="center" prop="mobile" width="110">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.mobile ? scope.row.mobile : '-' }}</span>
|
||||
</template>
|
||||
@ -118,33 +112,50 @@
|
||||
<span>{{ scope.row.gradeId ? getName(userGradeList, scope.row.gradeId) : '-' }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所属店铺" align="center" prop="storeId" width="120">
|
||||
<el-table-column label="储值卡" align="center" prop="balance">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.storeId ? scope.row.storeName: '-' }}</span>
|
||||
<div>{{ scope.row.balance ? scope.row.balance.toFixed(2) : '0.00' }}</div>
|
||||
<!-- <el-button-->
|
||||
<!-- class="mini-btn"-->
|
||||
<!-- type="primary"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleBalance(scope.row.id)"-->
|
||||
<!-- v-hasPermi="['balance:modify']"-->
|
||||
<!-- >充值</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="余额" align="center" prop="balance">
|
||||
<el-table-column label="升数卡" align="center" prop="balance">
|
||||
<template slot-scope="scope">
|
||||
<div><span style="color:red;">{{ scope.row.balance ? scope.row.balance.toFixed(2) : '0.00' }}</span></div>
|
||||
<el-button
|
||||
class="mini-btn"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="handleBalance(scope.row.id)"
|
||||
v-hasPermi="['balance:modify']"
|
||||
>充值</el-button>
|
||||
<div>{{ scope.row.literCard ? scope.row.literCard.toFixed(2) : '0.00' }}</div>
|
||||
<!-- <el-button-->
|
||||
<!-- class="mini-btn"-->
|
||||
<!-- type="primary"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleBalance(scope.row.id)"-->
|
||||
<!-- v-hasPermi="['balance:modify']"-->
|
||||
<!-- >充值</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="加油金" align="center" prop="balance">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.refuelMoney ? scope.row.refuelMoney.toFixed(2) : '0.00' }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="积分" align="center" prop="point">
|
||||
<template slot-scope="scope">
|
||||
<div><span>{{ scope.row.point ? scope.row.point : '0.00' }}</span></div>
|
||||
<el-button
|
||||
class="mini-btn"
|
||||
type="primary"
|
||||
size="mini"
|
||||
@click="handlePoint(scope.row.id)"
|
||||
v-hasPermi="['point:modify']"
|
||||
>变更</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- class="mini-btn"-->
|
||||
<!-- type="primary"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handlePoint(scope.row.id)"-->
|
||||
<!-- v-hasPermi="['point:modify']"-->
|
||||
<!-- >变更</el-button>-->
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="加油次数" align="center" prop="balance">
|
||||
<template slot-scope="scope">
|
||||
<div>{{ scope.row.consumeNum }}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="注册时间" align="center" width="160" prop="createTime">
|
||||
@ -152,11 +163,6 @@
|
||||
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="活跃时间" align="center" width="160" prop="updateTime">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.updateTime) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="status">
|
||||
<template slot-scope="scope">
|
||||
<el-switch
|
||||
@ -167,6 +173,11 @@
|
||||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="公众号" align="center" prop="official">
|
||||
<template slot-scope="scope">
|
||||
<dict-tag :options="dict.type.official" :value="scope.row.official"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" width="120" fixed='right'>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@ -194,9 +205,10 @@
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-card>
|
||||
|
||||
<!-- 添加或修改对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" class="common-dialog" width="800px" append-to-body>
|
||||
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
@ -334,9 +346,11 @@
|
||||
import { getMemberList, updateMemberStatus, getMemberInfo, saveMember, deleteMember } from "@/api/member";
|
||||
import balanceRecharge from "./balanceRecharge";
|
||||
import pointRecharge from "./pointRecharge";
|
||||
import {listUser} from "@/api/staff/user/user";
|
||||
export default {
|
||||
name: "MemberIndex",
|
||||
components: { balanceRecharge, pointRecharge },
|
||||
dicts: ['official'],
|
||||
data() {
|
||||
return {
|
||||
// 遮罩层
|
||||
@ -401,15 +415,22 @@ export default {
|
||||
// 查询列表
|
||||
getList() {
|
||||
this.loading = true;
|
||||
this.queryParams.storeIds = this.storeIds ? this.storeIds.join(",") : '';
|
||||
getMemberList(this.addDateRange(this.queryParams, this.dateRange)).then( response => {
|
||||
this.list = response.data.paginationResponse.content;
|
||||
this.total = response.data.paginationResponse.totalElements;
|
||||
this.userGradeList = response.data.userGradeList;
|
||||
this.storeList = response.data.storeList;
|
||||
listUser().then( response => {
|
||||
this.list = response.data.records;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
// this.loading = true;
|
||||
// this.queryParams.storeIds = this.storeIds ? this.storeIds.join(",") : '';
|
||||
// getMemberList(this.addDateRange(this.queryParams, this.dateRange)).then( response => {
|
||||
// this.list = response.data.paginationResponse.content;
|
||||
// this.total = response.data.paginationResponse.totalElements;
|
||||
// this.userGradeList = response.data.userGradeList;
|
||||
// this.storeList = response.data.storeList;
|
||||
// this.loading = false;
|
||||
// }
|
||||
// );
|
||||
},
|
||||
// 搜索按钮操作
|
||||
handleQuery() {
|
||||
@ -536,3 +557,10 @@ export default {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.app-container{
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
background: #f6f8f9;
|
||||
}
|
||||
</style>
|
||||
|
@ -544,7 +544,7 @@ import {getDuty, listDuty} from "@/api/staff/duty";
|
||||
|
||||
export default {
|
||||
name: "StaffList",
|
||||
dicts: ['ywqx','write_off','special_prem','display','zhzt','transaction','time_frame','handover','handover_quit',
|
||||
dicts: ['ywqx','write_off','display','zhzt','transaction','time_frame','handover','handover_quit',
|
||||
'jbjl','official','notice','special_prem','role'],
|
||||
data() {
|
||||
return {
|
||||
|
@ -1,16 +1,11 @@
|
||||
<template>
|
||||
<div>
|
||||
<div class="app-container">
|
||||
<el-card class="card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>{{ store.oilStationName }}({{ store.description }})</span>
|
||||
</div>
|
||||
|
||||
<map-componment :pform="form"></map-componment>
|
||||
|
||||
<p>详细地址:<el-input v-model="store.address"
|
||||
placeholder="请输入内容"
|
||||
style="width: 50%"
|
||||
></el-input></p>
|
||||
<map-componment :pform="form" ref="mapRef" @pform="getForm"></map-componment>
|
||||
<div style="display: flex;margin-bottom: 20px">
|
||||
<span style="margin-right: 10px">店铺福利:</span>
|
||||
<el-checkbox-group v-model="welfare" ref="" @change="getCheckbox">
|
||||
@ -24,6 +19,7 @@
|
||||
</div>
|
||||
<el-button type="primary" @click="submitStore">保存信息</el-button>
|
||||
</el-card>
|
||||
|
||||
<el-card class="card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>门店二维码</span>
|
||||
@ -35,6 +31,7 @@
|
||||
下载门店二维码
|
||||
</el-button>
|
||||
</el-card>
|
||||
|
||||
<el-card class="card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>收款二维码</span>
|
||||
@ -102,8 +99,16 @@ export default {
|
||||
created() {
|
||||
this.getQRCodeInfo();
|
||||
this.getStore();
|
||||
this.getForm()
|
||||
},
|
||||
methods: {
|
||||
getForm(data){
|
||||
if (data != undefined){
|
||||
this.form.lat = data.lat;
|
||||
this.form.lng = data.lng;
|
||||
this.form.address = data.address;
|
||||
}
|
||||
},
|
||||
// 获取门店信息
|
||||
getStore() {
|
||||
ljStoreInfo().then(response => {
|
||||
@ -112,6 +117,7 @@ export default {
|
||||
this.form.lng = this.store.longitude;
|
||||
this.form.address = this.store.address;
|
||||
this.welfare = this.store.welfare.split(",")
|
||||
this.$refs.mapRef.initAMap();
|
||||
})
|
||||
},
|
||||
|
||||
@ -120,6 +126,9 @@ export default {
|
||||
},
|
||||
|
||||
submitStore(){
|
||||
this.store.latitude = this.form.lat;
|
||||
this.store.longitude = this.form.lng;
|
||||
this.store.address = this.form.address;
|
||||
updateStore(this.store).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
this.getStore();
|
||||
@ -181,9 +190,11 @@ export default {
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.app-container{
|
||||
background: #f6f8f9;
|
||||
}
|
||||
.card{
|
||||
width: 96%;
|
||||
margin: 30px auto;
|
||||
margin: 15px auto;
|
||||
}
|
||||
.qrcode{
|
||||
width: 180px;
|
||||
|
@ -1,76 +1,225 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="等级名称" prop="name">
|
||||
<el-card>
|
||||
<div slot="header" class="clearfix">
|
||||
<span>等级配置</span>
|
||||
</div>
|
||||
<div>
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<span style="color: grey;">会员等级规则说明</span>
|
||||
<el-button type="success" round>开启等级功能</el-button>
|
||||
</div>
|
||||
<el-alert
|
||||
type="warning"
|
||||
style="margin-top: 15px"
|
||||
:closable="false">
|
||||
<p>
|
||||
1、用户每次消费后根据“成长值计算方式”中的规则获得相应的成长值,并根据“会员等级配置”的规则自动更新用户的会员等级
|
||||
</p>
|
||||
<p>
|
||||
2、会员等级区分汽油、柴油、天然气;会员加油或加气将按照对应的等级进行优惠
|
||||
</p>
|
||||
<p>
|
||||
3、当成长值累计达到下一个等级时,实时升级,升级后的等级规则将生效
|
||||
</p>
|
||||
<p>
|
||||
4、开启会员等级功能、系统将按照规则及成长值进行处理、如关闭等级功能、用户等级将失效,将无法享受对应优惠规则、成长值将暂停增加或减少、但不影响会员已有成长值
|
||||
</p>
|
||||
</el-alert>
|
||||
</div>
|
||||
<div style="margin-top: 15px">
|
||||
<span style="color: grey;">等级清算规则</span>
|
||||
<div style="margin-top: 10px">
|
||||
<template>
|
||||
<el-radio v-model="clear" label="clear_month">按月清算</el-radio>
|
||||
<el-radio v-model="clear" label="clear_no">不清算</el-radio>
|
||||
</template>
|
||||
<el-button type="primary" round @click="updateClearConfig">保存</el-button>
|
||||
</div>
|
||||
<el-alert
|
||||
type="warning"
|
||||
style="margin-top: 15px"
|
||||
:closable="false">
|
||||
<p>
|
||||
清算说明
|
||||
</p>
|
||||
<p>
|
||||
1、油站可根据自身运营情况选择并设置会员等级的清算规则、保存后实时生效、不影响会员已有成长值(规则不影响会员的成长值增减)
|
||||
</p>
|
||||
<p>
|
||||
2、按月清算: 以月为周期动态调整会员成长值等级清算,如本月所属会员等级则按照上月成长值计算、本月所得成长值下月有效
|
||||
</p>
|
||||
<p>
|
||||
3、不清算: 按照成长值累计只升不降、且用户等级按照用户获得的成长值实时计算所属会员等级
|
||||
</p>
|
||||
</el-alert>
|
||||
</div>
|
||||
<div style="margin-top: 15px">
|
||||
<span style="color: grey;">成长值计算方式</span>
|
||||
<div style="display: flex;justify-content: space-between">
|
||||
<div style="margin-top: 10px;display: flex;width: 30%">
|
||||
<el-input
|
||||
v-model="queryParams.name"
|
||||
placeholder="请输入等级名称"
|
||||
clearable
|
||||
style="width: 240px;"
|
||||
@keyup.enter.native="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="升级方式" prop="catchType">
|
||||
<el-select
|
||||
v-model="queryParams.catchType"
|
||||
clearable
|
||||
placeholder="升级方式"
|
||||
>
|
||||
<el-option v-for="catchType in catchTypeList" :key="catchType.key" :label="catchType.name" :value="catchType.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-select
|
||||
v-model="queryParams.status"
|
||||
placeholder="状态"
|
||||
clearable
|
||||
>
|
||||
<el-option key="A" label="启用" value="A"/>
|
||||
<el-option key="N" label="禁用" value="N"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
plain
|
||||
icon="el-icon-plus"
|
||||
size="mini"
|
||||
@click="handleAdd"
|
||||
v-hasPermi="['userGrade:add']"
|
||||
>新增</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
placeholder="汽油成长值比例,每消费1元积"
|
||||
:disabled="true" style="width: 800px">
|
||||
</el-input>
|
||||
<el-input
|
||||
placeholder="1"
|
||||
:disabled="true">
|
||||
</el-input>
|
||||
<el-input
|
||||
placeholder="成长值"
|
||||
:disabled="true">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-top: 10px;display: flex;width: 30%">
|
||||
<el-input
|
||||
placeholder="柴油成长值比例,每消费1元积"
|
||||
:disabled="true" style="width: 800px">
|
||||
</el-input>
|
||||
<el-input
|
||||
placeholder="1"
|
||||
:disabled="true">
|
||||
</el-input>
|
||||
<el-input
|
||||
placeholder="成长值"
|
||||
:disabled="true">
|
||||
</el-input>
|
||||
</div>
|
||||
<div style="margin-top: 10px;display: flex;width: 30%">
|
||||
<el-input
|
||||
placeholder="天然气成长值比例,每消费1元积"
|
||||
:disabled="true" style="width: 800px">
|
||||
</el-input>
|
||||
<el-input
|
||||
placeholder="1"
|
||||
:disabled="true">
|
||||
</el-input>
|
||||
<el-input
|
||||
placeholder="成长值"
|
||||
:disabled="true">
|
||||
</el-input>
|
||||
</div>
|
||||
</div>
|
||||
<el-alert
|
||||
type="warning"
|
||||
style="margin-top: 15px"
|
||||
:closable="false">
|
||||
<p>
|
||||
1、支付成功订单增加成长值,退款成功订单扣减成长值
|
||||
</p>
|
||||
<p>
|
||||
2、成长值按照加油或加气订单消费金额计算(非实付金额)、商品订单不包含在内
|
||||
</p>
|
||||
<p>
|
||||
3、汽油、柴油、天然气成长值默认为1:1进行计算,如加油金额消费99.6元,将累计99个成长值(不足1元的部分直接舍掉),成长值比例暂不支持更改
|
||||
</p>
|
||||
</el-alert>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
<!-- <el-card class="card">-->
|
||||
<!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">-->
|
||||
<!-- <el-form-item label="等级名称" prop="name">-->
|
||||
<!-- <el-input-->
|
||||
<!-- v-model="queryParams.name"-->
|
||||
<!-- placeholder="请输入等级名称"-->
|
||||
<!-- clearable-->
|
||||
<!-- style="width: 240px;"-->
|
||||
<!-- @keyup.enter.native="handleQuery"-->
|
||||
<!-- />-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="升级方式" prop="catchType">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="queryParams.catchType"-->
|
||||
<!-- clearable-->
|
||||
<!-- placeholder="升级方式"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option v-for="catchType in catchTypeList" :key="catchType.key" :label="catchType.name" :value="catchType.value"/>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item label="状态" prop="status">-->
|
||||
<!-- <el-select-->
|
||||
<!-- v-model="queryParams.status"-->
|
||||
<!-- placeholder="状态"-->
|
||||
<!-- clearable-->
|
||||
<!-- >-->
|
||||
<!-- <el-option key="A" label="启用" value="A"/>-->
|
||||
<!-- <el-option key="N" label="禁用" value="N"/>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- <el-form-item>-->
|
||||
<!-- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>-->
|
||||
<!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="primary"-->
|
||||
<!-- plain-->
|
||||
<!-- icon="el-icon-plus"-->
|
||||
<!-- size="mini"-->
|
||||
<!-- @click="handleAdd"-->
|
||||
<!-- v-hasPermi="['userGrade:add']"-->
|
||||
<!-- >新增</el-button>-->
|
||||
<!-- </el-form-item>-->
|
||||
<!-- </el-form>-->
|
||||
<!-- </el-card>-->
|
||||
|
||||
<el-card class="card">
|
||||
<el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
|
||||
<el-table-column label="等级" prop="grade" width="55"/>
|
||||
<el-table-column label="等级名称" align="center" prop="name" />
|
||||
<el-table-column label="升级方式" align="center" prop="catchType" />
|
||||
<el-table-column label="升级条件值" align="center" prop="catchValue">
|
||||
<el-table-column label="汽油成长值" align="center" prop="gasoline" />
|
||||
<el-table-column label="柴油成长值" align="center" prop="dieselOil" />
|
||||
<el-table-column label="天然气成长值" align="center" prop="naturalGas" />
|
||||
<!-- <el-table-column label="升级条件值" align="center" prop="catchValue">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <span v-if="scope.row.catchValue > 0">-->
|
||||
<!-- <span>{{ scope.row.catchValue }}</span>-->
|
||||
<!-- </span>-->
|
||||
<!-- <span v-else>无条件</span>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column label="有效天数" align="center" prop="validDay">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <span v-if="scope.row.validDay > 0">{{ scope.row.validDay + '天' }}</span>-->
|
||||
<!-- <span v-else>永久</span>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column label="支付折扣" align="center" prop="discount">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <span v-if="scope.row.discount > 0">{{ scope.row.discount + '折' }}</span>-->
|
||||
<!-- <span v-else>无折扣</span>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<!-- <el-table-column label="积分加速" align="center" prop="speedPoint">-->
|
||||
<!-- <template slot-scope="scope">-->
|
||||
<!-- <span v-if="scope.row.speedPoint > 0">{{ scope.row.speedPoint + '倍数' }}</span>-->
|
||||
<!-- <span v-else>不加倍</span>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-table-column>-->
|
||||
<el-table-column label="优惠类型" align="center" prop="preferential" >
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.catchValue > 0">
|
||||
<span>{{ scope.row.catchValue }}</span>
|
||||
</span>
|
||||
<span v-else>无条件</span>
|
||||
<dict-tag :options="dict.type.yhlx" :value="scope.row.preferential"/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="有效天数" align="center" prop="validDay">
|
||||
<el-table-column label="特权信息" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.validDay > 0">{{ scope.row.validDay + '天' }}</span>
|
||||
<span v-else>永久</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="支付折扣" align="center" prop="discount">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.discount > 0">{{ scope.row.discount + '折' }}</span>
|
||||
<span v-else>无折扣</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="积分加速" align="center" prop="speedPoint">
|
||||
<template slot-scope="scope">
|
||||
<span v-if="scope.row.speedPoint > 0">{{ scope.row.speedPoint + '倍数' }}</span>
|
||||
<span v-else>不加倍</span>
|
||||
<div v-show="scope.row.preferential=='自定义优惠'">
|
||||
<p>
|
||||
汽油:
|
||||
<span style="margin-left: 10px">{{ scope.row.gasolineDiscount }}</span>
|
||||
</p>
|
||||
<p>
|
||||
柴油:
|
||||
<span style="margin-left: 10px">{{ scope.row.dieselDiscount }}</span>
|
||||
</p>
|
||||
<p>
|
||||
天然气:
|
||||
<span style="margin-left: 10px">{{ scope.row.naturalGasDiscount }}</span>
|
||||
</p>
|
||||
</div>
|
||||
<div v-show="scope.row.preferential=='优惠活动组'">
|
||||
优惠活动组:
|
||||
<span style="margin-left: 10px">{{ scope.row.promotionGroup }}</span>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="状态" align="center" prop="status">
|
||||
@ -110,6 +259,7 @@
|
||||
:limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</el-card>
|
||||
|
||||
<!-- 添加或修改对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="open" class="common-dialog" width="700px" append-to-body>
|
||||
@ -204,10 +354,14 @@
|
||||
|
||||
<script>
|
||||
import { getUserGradeList, updateUserGradeStatus, getUserGradeInfo, saveUserGrade, deleteUserGrade } from "@/api/userGrade";
|
||||
import {listUserGrade} from "@/api/staff/user/usergrade";
|
||||
import {getChainStoreConfig, updateChainStoreConfig} from "@/api/staff/user/chainstoreconfig";
|
||||
export default {
|
||||
name: "UserGradeIndex",
|
||||
dicts: ['yhlx'],
|
||||
data() {
|
||||
return {
|
||||
clear:'',
|
||||
// 遮罩层
|
||||
loading: true,
|
||||
// 标题
|
||||
@ -268,18 +422,36 @@ export default {
|
||||
},
|
||||
created() {
|
||||
this.getList();
|
||||
this.getClearConfig();
|
||||
},
|
||||
methods: {
|
||||
// 查询连锁店配置信息
|
||||
getClearConfig(){
|
||||
getChainStoreConfig().then(response => {
|
||||
this.clear = response.data.levelClearRule;
|
||||
})
|
||||
},
|
||||
updateClearConfig(){
|
||||
updateChainStoreConfig({'levelClearRule':this.clear}).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
console.log(response)
|
||||
});
|
||||
this.getClearConfig();
|
||||
},
|
||||
// 查询列表
|
||||
getList() {
|
||||
this.loading = true;
|
||||
getUserGradeList(this.queryParams).then( response => {
|
||||
this.list = response.data.paginationResponse.content;
|
||||
this.total = response.data.paginationResponse.totalElements;
|
||||
this.catchTypeList = response.data.catchTypeList
|
||||
listUserGrade().then(response => {
|
||||
this.list = response.data.records;
|
||||
this.total = response.data.total;
|
||||
this.loading = false;
|
||||
}
|
||||
);
|
||||
})
|
||||
// getUserGradeList(this.queryParams).then( response => {
|
||||
// this.list = response.data.paginationResponse.content;
|
||||
// this.total = response.data.paginationResponse.totalElements;
|
||||
// this.catchTypeList = response.data.catchTypeList
|
||||
// }
|
||||
// );
|
||||
},
|
||||
// 搜索按钮操作
|
||||
handleQuery() {
|
||||
@ -387,3 +559,13 @@ export default {
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.app-container{
|
||||
//width: 100%;
|
||||
//height: 100vh;
|
||||
background: #f6f8f9;
|
||||
}
|
||||
.card{
|
||||
margin-top: 15px;
|
||||
}
|
||||
</style>
|
||||
|
@ -0,0 +1,39 @@
|
||||
package com.fuint.business.userManager.controller;
|
||||
|
||||
import com.fuint.business.userManager.entity.ChainStoreConfig;
|
||||
import com.fuint.business.userManager.service.ChainStoreConfigService;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 连锁店配置信息 controller层
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/userManager/chainStoreConfig")
|
||||
public class ChainStoreConfigController extends BaseController {
|
||||
@Autowired
|
||||
private ChainStoreConfigService chainStoreConfigService;
|
||||
|
||||
/**
|
||||
* 根据id查询连锁店配置信息
|
||||
* @return
|
||||
*/
|
||||
@GetMapping
|
||||
public ResponseObject chainStoreConfigInfo(){
|
||||
ChainStoreConfig chainStoreConfig = chainStoreConfigService.selectChainStoreConfigById();
|
||||
return getSuccessResult(chainStoreConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改连锁店配置信息
|
||||
* @param chainStoreConfig
|
||||
* @return
|
||||
*/
|
||||
@PutMapping
|
||||
public ResponseObject edit(@Validated @RequestBody ChainStoreConfig chainStoreConfig){
|
||||
return getSuccessResult(chainStoreConfigService.updateChainStoreConfig(chainStoreConfig));
|
||||
}
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
package com.fuint.business.userManager.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.userManager.entity.LJUser;
|
||||
import com.fuint.business.userManager.service.LJUserService;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 会员信息 controller层
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/userManager/user")
|
||||
public class LJUserController extends BaseController {
|
||||
@Autowired
|
||||
private LJUserService userService;
|
||||
|
||||
/**
|
||||
* 根据条件分页查询会员信息
|
||||
* @param user
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public ResponseObject list(LJUser user,
|
||||
@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize){
|
||||
Page page =new Page(pageNo,pageSize);
|
||||
IPage<LJUser> list = userService.selectUserList(page,user);
|
||||
return getSuccessResult(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询会员信息
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
public ResponseObject userInfo(@PathVariable Integer id){
|
||||
LJUser user = userService.selectUserById(id);
|
||||
return getSuccessResult(user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除会员信息
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping("/{id}")
|
||||
public ResponseObject remove(@PathVariable Integer id){
|
||||
userService.deleteUserById(id);
|
||||
return getSuccessResult("操作成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加会员信息
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
@PostMapping
|
||||
public ResponseObject add(@Validated @RequestBody LJUser user){
|
||||
return getSuccessResult(userService.insertUser(user));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改会员信息
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
@PutMapping
|
||||
public ResponseObject edit(@Validated @RequestBody LJUser user){
|
||||
return getSuccessResult(userService.updateUser(user));
|
||||
}
|
||||
}
|
@ -0,0 +1,78 @@
|
||||
package com.fuint.business.userManager.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.userManager.entity.LJUserGrade;
|
||||
import com.fuint.business.userManager.service.LJUserGradeService;
|
||||
import com.fuint.framework.web.BaseController;
|
||||
import com.fuint.framework.web.ResponseObject;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 会员等级信息 controller层
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business/userManager/userGrade")
|
||||
public class LJUserGradeController extends BaseController {
|
||||
@Autowired
|
||||
private LJUserGradeService userGradeService;
|
||||
|
||||
/**
|
||||
* 根据条件分页查询会员等级信息
|
||||
* @param userGrade
|
||||
* @param pageNo
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public ResponseObject list(LJUserGrade userGrade,
|
||||
@RequestParam(value = "pageNo",defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize",defaultValue = "10") Integer pageSize){
|
||||
Page page =new Page(pageNo,pageSize);
|
||||
IPage<LJUserGrade> list = userGradeService.selectUserGradeList(page,userGrade);
|
||||
return getSuccessResult(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询会员等级信息
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
public ResponseObject staffInfo(@PathVariable Integer id){
|
||||
LJUserGrade userGrade = userGradeService.selectUserGradeById(id);
|
||||
return getSuccessResult(userGrade);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除会员等级信息
|
||||
* @return
|
||||
*/
|
||||
@DeleteMapping("/{id}")
|
||||
public ResponseObject remove(@PathVariable Integer id){
|
||||
userGradeService.deleteUserGradeById(id);
|
||||
return getSuccessResult("操作成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加会员等级信息
|
||||
* @param userGrade
|
||||
* @return
|
||||
*/
|
||||
@PostMapping
|
||||
public ResponseObject add(@Validated @RequestBody LJUserGrade userGrade){
|
||||
return getSuccessResult(userGradeService.insertUserGrade(userGrade));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改会员等级信息
|
||||
* @param userGrade
|
||||
* @return
|
||||
*/
|
||||
@PutMapping
|
||||
public ResponseObject edit(@Validated @RequestBody LJUserGrade userGrade){
|
||||
return getSuccessResult(userGradeService.updateUserGrade(userGrade));
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package com.fuint.business.userManager.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fuint.framework.entity.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 连锁店配置信息
|
||||
*
|
||||
* Created by FSQ
|
||||
* CopyRight https://www.fuint.cn
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("chain_store_config")
|
||||
@ApiModel(value = "ChainStoreConfig", description = "连锁店配置信息")
|
||||
public class ChainStoreConfig extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("连锁店配置类ID")
|
||||
@TableId(value = "ID", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty("连锁店id")
|
||||
private Integer chainStoreId;
|
||||
|
||||
@ApiModelProperty("等级清算规则")
|
||||
private String levelClearRule;
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
package com.fuint.business.userManager.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fuint.framework.entity.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 会员个人信息
|
||||
*
|
||||
* Created by FSQ
|
||||
* CopyRight https://www.fuint.cn
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("mt_user")
|
||||
@ApiModel(value = "MtUser对象", description = "会员个人信息")
|
||||
public class LJUser extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("会员ID")
|
||||
@TableId(value = "ID", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty("会员号")
|
||||
private String userNo;
|
||||
|
||||
@ApiModelProperty("头像")
|
||||
private String avatar;
|
||||
|
||||
@ApiModelProperty("称呼")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty("微信open_id")
|
||||
private String openId;
|
||||
|
||||
@ApiModelProperty("手机号码")
|
||||
private String mobile;
|
||||
|
||||
@ApiModelProperty("证件号码")
|
||||
private String idcard;
|
||||
|
||||
@ApiModelProperty("等级ID")
|
||||
private String gradeId;
|
||||
|
||||
@ApiModelProperty("会员开始时间")
|
||||
@TableField(strategy = FieldStrategy.IGNORED)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date startTime;
|
||||
|
||||
@ApiModelProperty("会员结束时间")
|
||||
@TableField(strategy=FieldStrategy.IGNORED)
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date endTime;
|
||||
|
||||
@ApiModelProperty("余额")
|
||||
private BigDecimal balance;
|
||||
|
||||
@ApiModelProperty("积分")
|
||||
private Integer point;
|
||||
|
||||
@ApiModelProperty("性别 1男;0女")
|
||||
private Integer sex;
|
||||
|
||||
@ApiModelProperty("出生日期")
|
||||
private String birthday;
|
||||
|
||||
@ApiModelProperty("车牌号")
|
||||
private String carNo;
|
||||
|
||||
@ApiModelProperty("来源渠道")
|
||||
private String source;
|
||||
|
||||
@ApiModelProperty("密码")
|
||||
private String password;
|
||||
|
||||
@ApiModelProperty("salt")
|
||||
private String salt;
|
||||
|
||||
@ApiModelProperty("地址")
|
||||
private String address;
|
||||
|
||||
@ApiModelProperty("所属商户ID")
|
||||
private Integer merchantId;
|
||||
|
||||
@ApiModelProperty("默认店铺")
|
||||
private Integer storeId;
|
||||
|
||||
@ApiModelProperty("状态,A:激活;N:禁用;D:删除")
|
||||
private String status;
|
||||
|
||||
@ApiModelProperty("备注信息")
|
||||
private String description;
|
||||
|
||||
@ApiModelProperty("最后操作人")
|
||||
private String operator;
|
||||
|
||||
@ApiModelProperty("升数卡")
|
||||
private BigDecimal literCard;
|
||||
|
||||
@ApiModelProperty("公众号")
|
||||
private String official;
|
||||
|
||||
@ApiModelProperty("加油金")
|
||||
private BigDecimal refuelMoney;
|
||||
|
||||
@ApiModelProperty("加油次数")
|
||||
private BigDecimal consumeNum;
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
package com.fuint.business.userManager.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fuint.framework.entity.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 会员等级表
|
||||
*
|
||||
* Created by FSQ
|
||||
* CopyRight https://www.fuint.cn
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@TableName("mt_user_grade")
|
||||
@ApiModel(value = "MtUserGrade对象", description = "")
|
||||
public class LJUserGrade extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("自增ID")
|
||||
@TableId(value = "ID", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty("商户ID")
|
||||
private Integer merchantId;
|
||||
|
||||
@ApiModelProperty("等级")
|
||||
private Integer grade;
|
||||
|
||||
@ApiModelProperty("等级名称")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty("升级会员等级条件描述")
|
||||
private String catchCondition;
|
||||
|
||||
@ApiModelProperty("升级会员等级条件,init:默认获取;pay:付费升级;frequency:消费次数;amount:累积消费金额升级")
|
||||
private String catchType;
|
||||
|
||||
@ApiModelProperty("达到升级条件的值")
|
||||
private BigDecimal catchValue;
|
||||
|
||||
@ApiModelProperty("会员权益描述")
|
||||
private String userPrivilege;
|
||||
|
||||
@ApiModelProperty("有效期")
|
||||
private Integer validDay;
|
||||
|
||||
@ApiModelProperty("享受折扣")
|
||||
private Float discount;
|
||||
|
||||
@ApiModelProperty("积分加速")
|
||||
private Float speedPoint;
|
||||
|
||||
@ApiModelProperty("状态")
|
||||
private String status;
|
||||
|
||||
@ApiModelProperty("汽油成长值")
|
||||
private Integer gasoline;
|
||||
|
||||
@ApiModelProperty("柴油成长值")
|
||||
private Integer dieselOil;
|
||||
|
||||
@ApiModelProperty("天然气成长值")
|
||||
private Integer naturalGas;
|
||||
|
||||
@ApiModelProperty("优惠类型,自定义优惠,优惠活动组")
|
||||
private String preferential;
|
||||
|
||||
@ApiModelProperty("汽油优惠,无优惠,满减优惠,每升优惠")
|
||||
private String gasolineDiscount;
|
||||
|
||||
@ApiModelProperty("柴油优惠,无优惠,满减优惠,每升优惠")
|
||||
private String dieselDiscount;
|
||||
|
||||
@ApiModelProperty("天然气优惠,无优惠,满减优惠,每单位优惠")
|
||||
private String naturalGasDiscount;
|
||||
|
||||
@ApiModelProperty("优惠活动组")
|
||||
private String promotionGroup;
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.fuint.business.userManager.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.fuint.business.userManager.entity.ChainStoreConfig;
|
||||
|
||||
/**
|
||||
* 连锁店配置类 mapper层
|
||||
*/
|
||||
public interface ChainStoreConfigMapper extends BaseMapper<ChainStoreConfig> {
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package com.fuint.business.userManager.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.userManager.entity.LJUser;
|
||||
import com.fuint.business.userManager.entity.LJUserGrade;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 会员等级信息 mapper层
|
||||
*/
|
||||
public interface LJUserGradeMapper extends BaseMapper<LJUserGrade> {
|
||||
/**
|
||||
* 根据条件分页查询会员等级信息
|
||||
* @param page
|
||||
* @param userGrade
|
||||
* @return
|
||||
*/
|
||||
public IPage<LJUserGrade> selectUserGradeList(Page page, @Param("userGrade") LJUserGrade userGrade);
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
package com.fuint.business.userManager.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.userManager.entity.LJUser;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 会员信息 mapper层
|
||||
*/
|
||||
public interface LJUserMapper extends BaseMapper<LJUser> {
|
||||
/**
|
||||
* 根据条件分页查询会员信息
|
||||
* @param page
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
public IPage<LJUser> selectUserList(Page page, @Param("user") LJUser user);
|
||||
}
|
@ -0,0 +1,55 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.fuint.business.userManager.mapper.LJUserGradeMapper">
|
||||
<resultMap id="UserGradeResult" type="com.fuint.business.userManager.entity.LJUserGrade">
|
||||
<id property="id" column="id" />
|
||||
<result property="merchantId" column="merchant_id" />
|
||||
<result property="name" column="name" />
|
||||
<result property="grade" column="grade" />
|
||||
<result property="catchCondition" column="catch_condition" />
|
||||
<result property="catchType" column="catch_type" />
|
||||
<result property="catchValue" column="catch_value" />
|
||||
<result property="userPrivilege" column="user_privilege" />
|
||||
<result property="validDay" column="valid_day" />
|
||||
<result property="discount" column="discount" />
|
||||
<result property="speedPoint" column="speed_point" />
|
||||
<result property="status" column="status" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="gasoline" column="gasoline" />
|
||||
<result property="dieselOil" column="diesel_oil" />
|
||||
<result property="naturalGas" column="natural_gas" />
|
||||
<result property="preferential" column="preferential" />
|
||||
<result property="gasolineDiscount" column="gasoline_discount" />
|
||||
<result property="dieselDiscount" column="diesel_discount" />
|
||||
<result property="naturalGasDiscount" column="natural_gas_discount" />
|
||||
<result property="promotionGroup" column="promotion_group" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectUserGrade">
|
||||
select id, merchant_id, grade, name, catch_condition, catch_type, catch_value, user_privilege, valid_day, discount,
|
||||
speed_point, status, create_time, update_time, create_by, update_by, gasoline, diesel_oil, natural_gas,
|
||||
preferential, gasoline_discount, diesel_discount, natural_gas_discount,promotion_group from mt_user_grade
|
||||
</sql>
|
||||
|
||||
<select id="selectUserGradeList" resultMap="UserGradeResult">
|
||||
<include refid="selectUserGrade"></include>
|
||||
<!-- <where>-->
|
||||
<!-- store_id = #{user.storeId}-->
|
||||
<!-- <if test="userGrade.mobile != null and userGrade.mobile != ''">-->
|
||||
<!-- and mobile like concat('%', #{userGrade.mobile}, '%')-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="userGrade.userNo != null and userGrade.userNo != ''">-->
|
||||
<!-- and user_no like concat('%', #{userGrade.userNo}, '%')-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="userGrade.name != null and userGrade.name != ''">-->
|
||||
<!-- and name like concat('%', #{userGrade.name}, '%')-->
|
||||
<!-- </if>-->
|
||||
<!-- <if test="userGrade.gradeId != null and userGrade.gradeId != ''">-->
|
||||
<!-- and grade_id = #{userGrade.gradeId}-->
|
||||
<!-- </if>-->
|
||||
<!-- </where>-->
|
||||
</select>
|
||||
</mapper>
|
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.fuint.business.userManager.mapper.LJUserMapper">
|
||||
<resultMap id="UserResult" type="com.fuint.business.userManager.entity.LJUser">
|
||||
<id property="id" column="id" />
|
||||
<result property="merchantId" column="merchant_id" />
|
||||
<result property="storeId" column="store_id" />
|
||||
<result property="userNo" column="user_no" />
|
||||
<result property="avatar" column="avatar" />
|
||||
<result property="name" column="name" />
|
||||
<result property="openId" column="open_id" />
|
||||
<result property="idcard" column="idcard" />
|
||||
<result property="gradeId" column="grade_id" />
|
||||
<result property="startTime" column="start_time" />
|
||||
<result property="endTime" column="end_time" />
|
||||
<result property="mobile" column="mobile" />
|
||||
<result property="balance" column="balance" />
|
||||
<result property="point" column="point" />
|
||||
<result property="sex" column="sex" />
|
||||
<result property="birthday" column="birthday" />
|
||||
<result property="carNo" column="car_no" />
|
||||
<result property="source" column="source" />
|
||||
<result property="password" column="password" />
|
||||
<result property="salt" column="salt" />
|
||||
<result property="address" column="address" />
|
||||
<result property="status" column="status" />
|
||||
<result property="operator" column="operator" />
|
||||
<result property="description" column="description" />
|
||||
<result property="official" column="official" />
|
||||
<result property="literCard" column="liter_card" />
|
||||
<result property="refuelMoney" column="refuel_money" />
|
||||
<result property="consumeNum" column="consume_num" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectUser">
|
||||
select id, mobile, user_no, avatar, name, open_id, idcard, grade_id, start_time, end_time, balance, point,
|
||||
sex, birthday, car_no, source, password, salt, address, merchant_id, store_id, create_time, update_time,
|
||||
status, description, operator,official,liter_card,refuel_money,consume_num from mt_user
|
||||
</sql>
|
||||
|
||||
<select id="selectUserList" resultMap="UserResult">
|
||||
<include refid="selectUser"></include>
|
||||
<where>
|
||||
store_id = #{user.storeId}
|
||||
<if test="user.mobile != null and user.mobile != ''">
|
||||
and mobile like concat('%', #{user.mobile}, '%')
|
||||
</if>
|
||||
<if test="user.userNo != null and user.userNo != ''">
|
||||
and user_no like concat('%', #{user.userNo}, '%')
|
||||
</if>
|
||||
<if test="user.name != null and user.name != ''">
|
||||
and name like concat('%', #{user.name}, '%')
|
||||
</if>
|
||||
<if test="user.gradeId != null and user.gradeId != ''">
|
||||
and grade_id = #{user.gradeId}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
@ -0,0 +1,21 @@
|
||||
package com.fuint.business.userManager.service;
|
||||
|
||||
import com.fuint.business.userManager.entity.ChainStoreConfig;
|
||||
|
||||
/**
|
||||
* 连锁店配置信息 业务层
|
||||
*/
|
||||
public interface ChainStoreConfigService {
|
||||
/**
|
||||
* 根据id查询连锁店配置信息
|
||||
* @return
|
||||
*/
|
||||
public ChainStoreConfig selectChainStoreConfigById();
|
||||
|
||||
/**
|
||||
* 根据id修改连锁店配置信息
|
||||
* @param chainStoreConfig
|
||||
* @return
|
||||
*/
|
||||
public int updateChainStoreConfig(ChainStoreConfig chainStoreConfig);
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package com.fuint.business.userManager.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.userManager.entity.LJUserGrade;
|
||||
|
||||
/**
|
||||
* 会员等级信息 业务层
|
||||
*/
|
||||
public interface LJUserGradeService {
|
||||
/**
|
||||
* 根据条件分页查询员工信息
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
public IPage<LJUserGrade> selectUserGradeList(Page page, LJUserGrade userGrade);
|
||||
|
||||
/**
|
||||
* 根据id查询员工信息
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public LJUserGrade selectUserGradeById(int id);
|
||||
|
||||
/**
|
||||
* 根据id删除员工信息
|
||||
* @param id
|
||||
*/
|
||||
public void deleteUserGradeById(Integer id);
|
||||
|
||||
/**
|
||||
* 增加员工信息
|
||||
* @param userGrade
|
||||
* @return
|
||||
*/
|
||||
public int insertUserGrade(LJUserGrade userGrade);
|
||||
|
||||
/**
|
||||
* 修改员工信息
|
||||
* @param userGrade
|
||||
* @return
|
||||
*/
|
||||
public int updateUserGrade(LJUserGrade userGrade);
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package com.fuint.business.userManager.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.fuint.business.userManager.entity.LJUser;
|
||||
|
||||
/**
|
||||
* 会员信息 业务层
|
||||
*/
|
||||
public interface LJUserService {
|
||||
/**
|
||||
* 根据条件分页查询员工信息
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
public IPage<LJUser> selectUserList(Page page, LJUser user);
|
||||
|
||||
/**
|
||||
* 根据id查询员工信息
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public LJUser selectUserById(int id);
|
||||
|
||||
/**
|
||||
* 根据id删除员工信息
|
||||
* @param id
|
||||
*/
|
||||
public void deleteUserById(Integer id);
|
||||
|
||||
/**
|
||||
* 增加员工信息
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
public int insertUser(LJUser user);
|
||||
|
||||
/**
|
||||
* 修改员工信息
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
public int updateUser(LJUser user);
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package com.fuint.business.userManager.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fuint.business.member.entity.LJStaff;
|
||||
import com.fuint.business.storeInformation.entity.LJStore;
|
||||
import com.fuint.business.storeInformation.service.ILJStoreService;
|
||||
import com.fuint.business.userManager.entity.ChainStoreConfig;
|
||||
import com.fuint.business.userManager.mapper.ChainStoreConfigMapper;
|
||||
import com.fuint.business.userManager.service.ChainStoreConfigService;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class ChainStoreConfigServiceImpl extends ServiceImpl<ChainStoreConfigMapper, ChainStoreConfig> implements ChainStoreConfigService {
|
||||
@Autowired
|
||||
private ILJStoreService storeService;
|
||||
/**
|
||||
* 根据id查询连锁店配置信息
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public ChainStoreConfig selectChainStoreConfigById() {
|
||||
LJStore store = storeService.selectStoreById();
|
||||
Integer id = store.getChainStoreId();
|
||||
return baseMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id修改连锁店配置信息
|
||||
* @param chainStoreConfig
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int updateChainStoreConfig(ChainStoreConfig chainStoreConfig) {
|
||||
LJStore store = storeService.selectStoreById();
|
||||
Integer id = store.getChainStoreId();
|
||||
chainStoreConfig.setChainStoreId(id);
|
||||
System.out.println(chainStoreConfig.getLevelClearRule());
|
||||
int row = baseMapper.updateById(chainStoreConfig);
|
||||
return row;
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package com.fuint.business.userManager.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fuint.business.userManager.entity.LJUserGrade;
|
||||
import com.fuint.business.userManager.mapper.LJUserGradeMapper;
|
||||
import com.fuint.business.userManager.service.LJUserGradeService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class LJUserGradeServiceImpl extends ServiceImpl<LJUserGradeMapper, LJUserGrade> implements LJUserGradeService {
|
||||
@Override
|
||||
public IPage<LJUserGrade> selectUserGradeList(Page page, LJUserGrade userGrade) {
|
||||
return baseMapper.selectUserGradeList(page,userGrade);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LJUserGrade selectUserGradeById(int id) {
|
||||
return baseMapper.selectById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteUserGradeById(Integer id) {
|
||||
baseMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertUserGrade(LJUserGrade userGrade) {
|
||||
int row = baseMapper.insert(userGrade);
|
||||
return row;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateUserGrade(LJUserGrade userGrade) {
|
||||
int row = baseMapper.updateById(userGrade);
|
||||
return row;
|
||||
}
|
||||
}
|
@ -0,0 +1,75 @@
|
||||
package com.fuint.business.userManager.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.fuint.business.userManager.entity.LJUser;
|
||||
import com.fuint.business.userManager.mapper.LJUserMapper;
|
||||
import com.fuint.business.userManager.service.LJUserService;
|
||||
import com.fuint.common.dto.AccountInfo;
|
||||
import com.fuint.common.util.TokenUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 会员信息 业务层
|
||||
*/
|
||||
@Service
|
||||
public class LJUserServiceImpl extends ServiceImpl<LJUserMapper, LJUser> implements LJUserService {
|
||||
/**
|
||||
* 根据条件分页查询会员信息
|
||||
* @param page
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public IPage<LJUser> selectUserList(Page page, LJUser user) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
user.setStoreId(storeId);
|
||||
return baseMapper.selectUserList(page,user);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id查询会员信息
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public LJUser selectUserById(int id) {
|
||||
return baseMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据id删除会员信息
|
||||
* @param id
|
||||
*/
|
||||
@Override
|
||||
public void deleteUserById(Integer id) {
|
||||
baseMapper.deleteById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加会员信息
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int insertUser(LJUser user) {
|
||||
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
|
||||
Integer storeId = nowAccountInfo.getStoreId();
|
||||
user.setStoreId(storeId);
|
||||
int row = baseMapper.insert(user);
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改会员信息
|
||||
* @param user
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public int updateUser(LJUser user) {
|
||||
int row = baseMapper.updateById(user);
|
||||
return row;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user