From 906b804b2b85e336cfe5612bb11551d996ff10ed Mon Sep 17 00:00:00 2001 From: cun-nan <19819293608@163.com> Date: Tue, 31 Oct 2023 18:18:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=BF=E5=88=A9=E5=BA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fuintAdmin/src/api/staff/staff.js | 9 + fuintAdmin/src/api/staff/user/user.js | 11 +- fuintAdmin/src/api/staff/user/usergrade.js | 9 + .../api/staffCommission/staffcommission.js | 36 ++ .../src/views/convenienceStore/goodsFile.vue | 27 +- .../src/views/convenienceStore/index.vue | 10 +- .../src/views/convenienceStore/supplier.vue | 26 +- fuintAdmin/src/views/member/fixingLevel.vue | 27 +- fuintAdmin/src/views/member/index.vue | 87 ++-- fuintAdmin/src/views/member/userInfo.vue | 13 +- fuintAdmin/src/views/staff/list.vue | 101 +++-- .../views/staffCommission/staffCommission.vue | 381 ++++++++++++++++++ fuintAdmin/src/views/userGrade/index.vue | 41 +- .../controller/StaffCommissionController.java | 70 ++++ .../commission/entity/CommissionRecord.java | 61 +++ .../commission/entity/StaffCommission.java | 85 ++++ .../mapper/StaffCommissionMapper.java | 16 + .../mapper/xml/StaffCommissionMapper.xml | 14 + .../service/StaffCommissionService.java | 40 ++ .../impl/StaffCommissionServiceImpl.java | 53 +++ .../commission/vo/CommissionRecordVo.java | 4 + .../controller/CvsGoodsController.java | 2 +- .../member/controller/LJStaffController.java | 14 + .../member/service/ILJStaffService.java | 7 + .../service/impl/LJStaffServiceImpl.java | 17 + .../controller/ExportController.java | 14 + .../controller/LJUserController.java | 24 +- .../controller/LJUserGradeController.java | 16 +- .../controller/UserStatisticController.java | 40 ++ .../userManager/entity/LJUserGrade.java | 6 +- .../userManager/entity/UserStatistic.java | 64 +++ .../mapper/UserStatisticMapper.java | 16 + .../mapper/xml/LJUserGradeMapper.xml | 43 +- .../mapper/xml/UserStatisticMapper.xml | 14 + .../service/LJUserGradeService.java | 17 +- .../service/UserStatisticService.java | 25 ++ .../service/impl/LJUserGradeServiceImpl.java | 17 + .../service/impl/LJUserServiceImpl.java | 1 - .../impl/UserStatisticServiceImpl.java | 40 ++ 39 files changed, 1316 insertions(+), 182 deletions(-) create mode 100644 fuintAdmin/src/api/staffCommission/staffcommission.js create mode 100644 fuintAdmin/src/views/staffCommission/staffCommission.vue create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/commission/controller/StaffCommissionController.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/commission/entity/CommissionRecord.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/commission/entity/StaffCommission.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/commission/mapper/StaffCommissionMapper.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/commission/mapper/xml/StaffCommissionMapper.xml create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/commission/service/StaffCommissionService.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/commission/service/impl/StaffCommissionServiceImpl.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/commission/vo/CommissionRecordVo.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/controller/UserStatisticController.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/entity/UserStatistic.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/mapper/UserStatisticMapper.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/mapper/xml/UserStatisticMapper.xml create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/UserStatisticService.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/UserStatisticServiceImpl.java diff --git a/fuintAdmin/src/api/staff/staff.js b/fuintAdmin/src/api/staff/staff.js index e9dcdc5e7..0bb2df413 100644 --- a/fuintAdmin/src/api/staff/staff.js +++ b/fuintAdmin/src/api/staff/staff.js @@ -17,6 +17,15 @@ export function getStaff(id) { }) } +// 根据手机号查询员工详情 +export function queryStaff(data) { + return request({ + url: '/business/member/staff/mobile', + method: 'post', + data: data + }) +} + // 新增员工 export function addStaff(data) { return request({ diff --git a/fuintAdmin/src/api/staff/user/user.js b/fuintAdmin/src/api/staff/user/user.js index 9dd72b2c1..9a4171acb 100644 --- a/fuintAdmin/src/api/staff/user/user.js +++ b/fuintAdmin/src/api/staff/user/user.js @@ -9,6 +9,15 @@ export function listUser(query) { }) } +// 查询会员统计列表 +export function listUserStatistic(query) { + return request({ + url: '/business/userManager/userStatistic/list', + method: 'get', + params: query + }) +} + // 查询会员列表 export function listStatistic(query) { return request({ @@ -25,7 +34,7 @@ export function getUser(id) { method: 'get' }) } -// 查询会员详细 +// 根据手机号查询会员详细 export function getUserMobile(data) { return request({ url: '/business/userManager/user/mobile' , diff --git a/fuintAdmin/src/api/staff/user/usergrade.js b/fuintAdmin/src/api/staff/user/usergrade.js index 9872fe133..7eeae693a 100644 --- a/fuintAdmin/src/api/staff/user/usergrade.js +++ b/fuintAdmin/src/api/staff/user/usergrade.js @@ -17,6 +17,15 @@ export function getUserGrade(id) { }) } +// 根据会员等级名称查询会员等级信息 +export function queryUserGrade(data) { + return request({ + url: '/business/userManager/userGrade/getName', + method: 'post', + data: data + }) +} + // 新增会员等级 export function addUserGrade(data) { return request({ diff --git a/fuintAdmin/src/api/staffCommission/staffcommission.js b/fuintAdmin/src/api/staffCommission/staffcommission.js new file mode 100644 index 000000000..76c1a3e17 --- /dev/null +++ b/fuintAdmin/src/api/staffCommission/staffcommission.js @@ -0,0 +1,36 @@ +import request from '@/utils/request' + +// 查询会员列表 +export function listCommission(query) { + return request({ + url: '/business/commission/staffCommission/list', + method: 'get', + params: query + }) +} + +// 查询会员详细 +export function getCommission(id) { + return request({ + url: '/business/commission/staffCommission/' + id, + method: 'get' + }) +} +// 新增会员 +export function addCommission(data) { + return request({ + url: '/business/commission/staffCommission', + method: 'post', + data: data + }) +} + +// 修改会员 +export function updateCommission(data) { + return request({ + url: '/business/commission/staffCommission', + method: 'put', + data: data + }) +} + diff --git a/fuintAdmin/src/views/convenienceStore/goodsFile.vue b/fuintAdmin/src/views/convenienceStore/goodsFile.vue index 9dba8cb59..9ef768d8c 100644 --- a/fuintAdmin/src/views/convenienceStore/goodsFile.vue +++ b/fuintAdmin/src/views/convenienceStore/goodsFile.vue @@ -390,7 +390,6 @@ export default { rules: { goodsNo: [ { required: true, message: "商品条码不能为空", trigger: "blur" }, - { required: true, validator: this.checkGoodsNo, trigger: "blur" }, ], name: [ { required: true, message: "商品名称不能为空", trigger: "blur" }, @@ -434,15 +433,6 @@ export default { computed:{ }, methods:{ - checkGoodsNo(rule, value, callback){ - queryLJGoods({goodsNo:this.form.goodsNo}).then( response => { - if(response.data!=null){ - callback(new Error("商品已存在")) - }else { - callback(); - } - }) - }, // 查询供应商信息 selectSupplier(data){ console.log(data) @@ -634,11 +624,18 @@ export default { this.getList(); }); } else { - addLJGoods(this.form).then(response => { - this.$modal.msgSuccess("商品信息新增成功"); - this.open = false; - this.getList(); - }); + queryLJGoods({goodsNo:this.form.goodsNo}).then( response => { + if(response.data!=null){ + this.$modal.msgError("商品已存在"); + }else { + addLJGoods(this.form).then(response => { + this.$modal.msgSuccess("商品信息新增成功"); + this.open = false; + this.getList(); + }); + } + }) + } } }); diff --git a/fuintAdmin/src/views/convenienceStore/index.vue b/fuintAdmin/src/views/convenienceStore/index.vue index 092b2825e..d834c49f6 100644 --- a/fuintAdmin/src/views/convenienceStore/index.vue +++ b/fuintAdmin/src/views/convenienceStore/index.vue @@ -375,9 +375,13 @@ export default { }); } else { insertCvsGoods(this.form).then(response => { - this.$modal.msgSuccess("分类添加成功"); - this.open = false; - this.getList(); + if (response.data == -1){ + this.$modal.msgError("分类名称已存在,添加失败"); + }else { + this.$modal.msgSuccess("分类添加成功"); + this.open = false; + this.getList(); + } }); } } diff --git a/fuintAdmin/src/views/convenienceStore/supplier.vue b/fuintAdmin/src/views/convenienceStore/supplier.vue index c536434a0..0c7dc624d 100644 --- a/fuintAdmin/src/views/convenienceStore/supplier.vue +++ b/fuintAdmin/src/views/convenienceStore/supplier.vue @@ -188,7 +188,6 @@ export default { rules: { name: [ { required: true, message: "供应商名称不能为空", trigger: "blur" }, - { required: true, validator: this.checkName, trigger: "blur" }, ], } } @@ -197,15 +196,6 @@ export default { this.getList(); }, methods:{ - checkName(rule, value, callback){ - querySupplier({name:this.form.name}).then( response => { - if(response.data!=null){ - callback(new Error("供应商名称已存在")) - }else { - callback(); - } - }) - }, // 查询列表 getList() { this.loading = true; @@ -269,11 +259,17 @@ export default { this.getList(); }); } else { - addSupplier(this.form).then(response => { - this.$modal.msgSuccess("供应商新增成功"); - this.open = false; - this.getList(); - }); + querySupplier({name:this.form.name}).then( response => { + if(response.data!=null){ + this.$modal.msgError("供应商名称已存在"); + }else { + addSupplier(this.form).then(response => { + this.$modal.msgSuccess("供应商新增成功"); + this.open = false; + this.getList(); + }); + } + }) } } }); diff --git a/fuintAdmin/src/views/member/fixingLevel.vue b/fuintAdmin/src/views/member/fixingLevel.vue index fc72ae3b9..22ebed0a1 100644 --- a/fuintAdmin/src/views/member/fixingLevel.vue +++ b/fuintAdmin/src/views/member/fixingLevel.vue @@ -928,7 +928,6 @@ export default { rules: { name: [ { required: true, message: "请填写认证名称", trigger: "blur" }, - { required: true, validator: this.checkName, trigger: "blur" }, ], discountType: [ { required: true, message: "请选择优惠类型", trigger: "blur" }, @@ -994,16 +993,6 @@ export default { this.getUserList(); }, methods: { - // 检验固定等级名称是否存在 - checkName(rule, value, callback){ - queryFixingLevel({name:this.form.name}).then( response => { - if(response.data!=null){ - callback(new Error("固定等级名称不可重复")) - }else { - callback(); - } - }) - }, handleClick(tab, event) { // console.log(tab, event); }, @@ -1219,11 +1208,17 @@ export default { this.getList(); }); } else { - addFixingLevel(this.form).then(response => { - this.$modal.msgSuccess("认证类型创建成功"); - this.open = false; - this.getList(); - }); + queryFixingLevel({name:this.form.name}).then( response => { + if(response.data!=null){ + this.$modal.msgError("固定等级名称不可重复"); + }else { + addFixingLevel(this.form).then(response => { + this.$modal.msgSuccess("认证类型创建成功"); + this.open = false; + this.getList(); + }); + } + }) } } }); diff --git a/fuintAdmin/src/views/member/index.vue b/fuintAdmin/src/views/member/index.vue index e2cfcca04..e7b993f4a 100644 --- a/fuintAdmin/src/views/member/index.vue +++ b/fuintAdmin/src/views/member/index.vue @@ -258,7 +258,7 @@ - + @@ -266,7 +266,7 @@ {{item}}

-
+
录入单个会员
- - - - - - - + + + + + + + - - + + + + {}) - }, // 跳转详情页 goDedi(id){ this.$router.push({ @@ -571,6 +584,14 @@ export default { } }) }, + getUserList(){ + this.loading = true; + listUserStatistic().then( response => { + this.userList = response.data.records; + this.total1 = response.data.total; + this.loading = false; + }); + }, // 查询列表 getList() { this.loading = true; @@ -579,17 +600,6 @@ export default { 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; - // } - // ); }, // 获得统计信息 getStatistic(){ @@ -662,6 +672,7 @@ export default { this.openResult = true; this.title = "会员创建结果"; this.getList(); + this.getUserList(); }, // 积分变更操作 handlePoint(userId) { @@ -725,11 +736,19 @@ export default { this.getList(); }); } else { - addUser(this.form).then(response => { - this.$modal.msgSuccess("新增会员成功"); - this.open = false; - this.getList(); - }); + getUserMobile({mobile:this.form.mobile}).then( response => { + if(response.data!=null){ + this.$modal.msgError("手机号已存在"); + }else { + addUser(this.form).then(response => { + this.$modal.msgSuccess("新增会员成功"); + this.open = false; + this.openUser = false; + this.getList(); + this.getUserList(); + }); + } + }) } } }); diff --git a/fuintAdmin/src/views/member/userInfo.vue b/fuintAdmin/src/views/member/userInfo.vue index e0a854f00..df25a8cb4 100644 --- a/fuintAdmin/src/views/member/userInfo.vue +++ b/fuintAdmin/src/views/member/userInfo.vue @@ -294,7 +294,7 @@ - + - 审核权限 - + 特殊权限 + - 特殊权限 - + 审核权限 + import {getName} from "../../utils/fuint"; -import {addStaff, delStaff, getStaff, listStaff, updateStaff} from "@/api/staff/staff"; +import {addStaff, delStaff, getStaff, listStaff, queryStaff, updateStaff} from "@/api/staff/staff"; import {getDuty, listDuty} from "@/api/staff/duty"; export default { @@ -601,20 +601,43 @@ export default { // role:[], posPrem:'', posOptions:[ - {value: '首页权限',label: '首页权限',children:[{value: '禁用普通收款权限', label: '禁用普通收款权限' },]}, - {value: '会员储值',label: '会员储值'}, - {value: '会员实体卡',label: '会员实体卡'}, - {value: '会员积分',label: '会员积分'}, - {value: '加油金变动',label: '加油金变动'}, - {value: '会员卡券',label: '会员卡券'}, - {value: '会员成长值',label: '会员成长值'}, + {value: '首页权限',label: '首页权限', + children:[ + {value: '禁用普通收款', label: '禁用普通收款' }, + {value: '禁用会员收款', label: '禁用会员收款' }, + {value: '禁用新增会员', label: '禁用新增会员' }, + {value: '禁用订单记录', label: '禁用订单记录' }, + {value: '禁用员工交班', label: '禁用员工交班' }, + ]}, + {value: '会员储值',label: '会员储值',children:[{value: '禁止会员充值', label: '禁止会员充值' },]}, + {value: '会员实体卡',label: '会员实体卡',children:[{value: '禁止绑卡换卡', label: '禁止绑卡换卡' },]}, + {value: '会员积分',label: '会员积分',children:[{value: '增加', label: '增加' },{value: '减少', label: '减少' },]}, + {value: '加油金变动',label: '加油金变动',children:[{value: '增加', label: '增加' },{value: '减少', label: '减少' },]}, + {value: '会员卡券',label: '会员卡券', + children:[ + {value: '优惠券赠送', label: '优惠券赠送' }, + {value: '兑换券赠送', label: '兑换券赠送' }, + ]}, + {value: '会员成长值',label: '会员成长值', + children:[ + {value: '成长值增加', label: '成长值增加' }, + {value: '成长值减少', label: '成长值减少' }, + ]}, ], props: { multiple: true }, appletPrem:'', appletOptions:[ - {value: '首页权限',label: '首页权限',children:[{value: '女装', label: '女装' },]}, - {value: '会员储值',label: '会员储值'}, - {value: '会员实体卡',label: '会员实体卡'}, + {value: '交易',label: '交易',children:[{value: '油品交易', label: '油品交易' },]}, + {value: '库存',label: '库存', + children:[ + {value: '库存盘点', label: '库存盘点' }, + {value: '库存查询', label: '库存查询' }, + ]}, + {value: '核销',label: '核销', + children:[ + {value: '扫码核销', label: '扫码核销' }, + {value: '核销记录', label: '核销记录' }, + ]}, ], writeOff:[], write:[], @@ -654,7 +677,7 @@ export default { ], mobile: [ { required: true, message: "手机号不能为空", trigger: "blur" }, - { min: 11, max: 20, message: '手机号长度必须11', trigger: 'blur' } + { min: 11, max: 20, message: '手机号长度必须11', trigger: 'blur' }, ], role: [ { required: true, message: "请选择员工角色", trigger: "blur" } @@ -663,7 +686,7 @@ export default { { required: true, message: "请选择加油状态", trigger: "blur" } ], pos: [ - { required: true, message: "请选择员状态", trigger: "blur" } + { required: true, message: "请选择", trigger: "blur" } ], transaction: [ { required: true, message: "请选择", trigger: "blur" } @@ -811,13 +834,19 @@ export default { this.$refs["form"].validate(valid => { if (valid) { if (!this.form.id) { - this.form.posPrem = JSON.stringify(this.form.posPrem); - this.form.appletPrem = JSON.stringify(this.form.appletPrem); - addStaff(this.form).then(response => { - this.$modal.msgSuccess("新增成功"); - this.open = false; - this.getList(); - }); + queryStaff({mobile:this.form.mobile}).then( response => { + if(response.data!=null){ + this.$modal.msgError("手机号已存在"); + }else { + this.form.posPrem = JSON.stringify(this.form.posPrem); + this.form.appletPrem = JSON.stringify(this.form.appletPrem); + addStaff(this.form).then(response => { + this.$modal.msgSuccess("新增成功"); + this.open = false; + this.getList(); + }); + } + }) } else { updateStaff(this.form).then(response => { this.$modal.msgSuccess("修改成功"); @@ -838,11 +867,21 @@ export default { // this.form.category = response.data.staffInfo.category + ''; this.open = true; this.title = "编辑员工信息"; - this.writeOff = this.form.writeOff.split(","); - this.specialPrem = this.form.specialPrem.split(","); - this.auditPrem = this.form.auditPrem.split(","); - this.posPrem = JSON.parse(this.form.posPrem); - this.appletPrem = JSON.parse(this.form.appletPrem); + if (this.auditPrem.length > 0){ + this.auditPrem = this.form.auditPrem.split(","); + } + if (this.writeOff.length > 0){ + this.writeOff = this.form.writeOff.split(","); + } + if (this.specialPrem.length > 0){ + this.specialPrem = this.form.specialPrem.split(","); + } + if (this.posPrem != null && this.posPrem != ""){ + this.posPrem = JSON.parse(this.form.posPrem); + } + if (this.appletPrem != null && this.appletPrem != ""){ + this.appletPrem = JSON.parse(this.form.appletPrem); + } }); }, // 删除按钮操作 diff --git a/fuintAdmin/src/views/staffCommission/staffCommission.vue b/fuintAdmin/src/views/staffCommission/staffCommission.vue new file mode 100644 index 000000000..d754bc16f --- /dev/null +++ b/fuintAdmin/src/views/staffCommission/staffCommission.vue @@ -0,0 +1,381 @@ + + + + + diff --git a/fuintAdmin/src/views/userGrade/index.vue b/fuintAdmin/src/views/userGrade/index.vue index 880d0fb47..3527a78fe 100644 --- a/fuintAdmin/src/views/userGrade/index.vue +++ b/fuintAdmin/src/views/userGrade/index.vue @@ -531,7 +531,14 @@