From 3328609a0941f2426a8fc92cc5b2654400b5e011 Mon Sep 17 00:00:00 2001 From: cun-nan <19819293608@163.com> Date: Wed, 17 Jul 2024 17:58:23 +0800 Subject: [PATCH] bug --- fuintAdmin_zt/src/api/payConfig/ruleConfig.js | 61 ++ fuintAdmin_zt/src/views/Service/details.vue | 5 +- fuintAdmin_zt/src/views/Service/index.vue | 7 +- .../src/views/components/Service/payment.vue | 897 +++++++++++------- .../controller/MerchantConfigController.java | 3 +- .../PaymentRuleConfigController.java | 18 +- .../com/fuint/api/fuyou/entity/OilConfig.java | 2 +- .../api/fuyou/entity/PaymentRuleConfig.java | 5 +- .../fuyou/mapper/MerchantConfigMapper.java | 5 + .../api/fuyou/mapper/OilConfigMapper.java | 2 + .../fuyou/mapper/PaymentRuleConfigMapper.java | 16 + .../fuyou/mapper/xml/MerchantConfigMapper.xml | 9 + .../api/fuyou/mapper/xml/OilConfigMapper.xml | 7 + .../mapper/xml/PaymentRuleConfigMapper.xml | 16 + .../fuyou/service/MerchantConfigService.java | 3 +- .../api/fuyou/service/OilConfigService.java | 8 +- .../service/PaymentRuleConfigService.java | 12 +- .../impl/MerchantConfigServiceImpl.java | 10 +- .../service/impl/OilConfigServiceImpl.java | 38 +- .../impl/PaymentRuleConfigServiceImpl.java | 95 +- .../fuint/api/fuyou/vo/MerchantConfigVo.java | 16 + .../api/fuyou/vo/PaymentRuleConfigVo.java | 9 + .../service/impl/OilGunServiceImpl.java | 6 +- 23 files changed, 834 insertions(+), 416 deletions(-) create mode 100644 fuintAdmin_zt/src/api/payConfig/ruleConfig.js create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/mapper/xml/PaymentRuleConfigMapper.xml create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/vo/MerchantConfigVo.java create mode 100644 fuintBackend/fuint-application/src/main/java/com/fuint/api/fuyou/vo/PaymentRuleConfigVo.java diff --git a/fuintAdmin_zt/src/api/payConfig/ruleConfig.js b/fuintAdmin_zt/src/api/payConfig/ruleConfig.js new file mode 100644 index 000000000..fccb3057d --- /dev/null +++ b/fuintAdmin_zt/src/api/payConfig/ruleConfig.js @@ -0,0 +1,61 @@ +import request from '@/utils/request' + +// 查询支付配置规则列表 +export function listRuleConfig(query) { + return request({ + url: '/api/ruleConfig', + method: 'get', + params: query, + }) +} + +// 查询支付配置规则列表 +export function getRuleConfig(id) { + return request({ + url: '/api/ruleConfig/'+id, + method: 'get', + }) +} + +// 查询支付配置规则列表 +export function addRuleConfig(query) { + return request({ + url: '/api/ruleConfig', + method: 'post', + data: query, + }) +} + +// 查询支付配置规则列表 +export function editRuleConfig(query) { + return request({ + url: '/api/ruleConfig', + method: 'put', + data: query, + }) +} +// 查询支付配置规则列表 +export function enableRuleConfig(query) { + return request({ + url: '/api/ruleConfig/enableRule', + method: 'post', + data: query, + }) +} + +// 查询支付配置规则列表 +export function deleteRuleConfig(id) { + return request({ + url: '/api/ruleConfig/'+id, + method: 'delete', + }) +} + +// 查询支付配置规则列表 +export function getOilGunList(query) { + return request({ + url: '/business/petrolStationManagement/oilGun/queryByPage', + method: 'get', + params: query, + }) +} diff --git a/fuintAdmin_zt/src/views/Service/details.vue b/fuintAdmin_zt/src/views/Service/details.vue index 580715b11..193a7cf2e 100644 --- a/fuintAdmin_zt/src/views/Service/details.vue +++ b/fuintAdmin_zt/src/views/Service/details.vue @@ -9,10 +9,11 @@ - + + @@ -49,6 +50,7 @@ data() { return { id:'', + deptId:'', activeName: 'first', tabindex:0, tabList:[ @@ -88,6 +90,7 @@ }, created() { this.id = this.$route.query.id + this.deptId = this.$route.query.deptId }, mounted() { console.log(this.id) diff --git a/fuintAdmin_zt/src/views/Service/index.vue b/fuintAdmin_zt/src/views/Service/index.vue index 0a866243d..4cd4ca4ed 100644 --- a/fuintAdmin_zt/src/views/Service/index.vue +++ b/fuintAdmin_zt/src/views/Service/index.vue @@ -148,7 +148,7 @@
-
+
启用 禁用
@@ -284,11 +284,12 @@ export default { this.getlist() }, - godetails(id){ + godetails(id,deptId){ this.$router.push({ path:'/Service/details', query:{ - id:id + id:id, + deptId:deptId } }) diff --git a/fuintAdmin_zt/src/views/components/Service/payment.vue b/fuintAdmin_zt/src/views/components/Service/payment.vue index 576a16975..8724bdda0 100644 --- a/fuintAdmin_zt/src/views/components/Service/payment.vue +++ b/fuintAdmin_zt/src/views/components/Service/payment.vue @@ -5,12 +5,14 @@
商户信息
-
说明:为了保证加油站商户日常在线支付业务的稳定性,目前支持多通道支付,可以有效的避免单支付通道带来不稳定性,从而造成油站不能正常支付问题,加油站一旦出现不能正常支付的情况,可以随时手工切换支付通道,来保证加油站支付收款业务
+
+ 说明:为了保证加油站商户日常在线支付业务的稳定性,目前支持多通道支付,可以有效的避免单支付通道带来不稳定性,从而造成油站不能正常支付问题,加油站一旦出现不能正常支付的情况,可以随时手工切换支付通道,来保证加油站支付收款业务 +
新增商户信息
@@ -21,46 +23,53 @@ width="50"> + > + + @@ -70,7 +79,7 @@ width="100" label="操作"> @@ -78,7 +87,9 @@
商户分账规则
-
使用说明:添加/编辑对应的规则->规则配置正常->发布规则->规则生效 注意:功能状态启用且通道规则发布生效后当前功能才有效,否则使用系统单商户号模式
+
使用说明:添加/编辑对应的规则->规则配置正常->发布规则->规则生效 + 注意:功能状态启用且通道规则发布生效后当前功能才有效,否则使用系统单商户号模式 +
新增规则
@@ -93,7 +104,7 @@ width="50"> @@ -103,19 +114,26 @@ + @@ -152,242 +170,282 @@ label="操作">
- - - - - - + + + + + - - - - + + + - - + + - - + + - - + + - + - - + + - +
-
按比例分账
-
按交易类型分账
+
按比例分账 +
+
按交易类型分账 +
- - + + -
+
- - - + + - + - - + +
- +
-
+
- - - + + - + - - - + + + + + - - - - + + +
- +
- - - -
- - - -
- - - -
+ + + +
+ + + +
+ + + +
启用成功后其他规则的规则状态变为停用!
+ +
- - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - + - + @@ -419,8 +477,8 @@ 请输入备注信息 + v-model="merchantConfig.remark" + clearable> 取 消 @@ -428,7 +486,7 @@ - + @@ -458,18 +516,18 @@
交易占比满足规则后切换到下一个支付通道
- - - - - - - + + + + + + + - - - - + + + +
@@ -500,32 +558,41 @@ import { oilConfigInfo } from "@/api/payConfig/oilconfig"; import {addUser, getUserMobile, updateUser} from "@/api/staff/user/user"; +import {selectChildByDeptId} from "@/api/system/Site/site"; +import { + addRuleConfig, + deleteRuleConfig, + editRuleConfig, enableRuleConfig, + getOilGunList, + getRuleConfig, + listRuleConfig +} from "@/api/payConfig/ruleConfig"; export default { dicts: ['payment_channel'], name: 'peizhi', - props: ["id"], + props: ["id","deptId"], - data(){ - return{ - ruleForm:[], - Enable:false, - SeparateAccounts:1, - addRule:false, - Ruletitle:'', - addMerchants:false, - addMerchantTitile:'', + data() { + return { + ruleForm: [], + Enable: false, + SeparateAccounts: 1, + addRule: false, + Ruletitle: '', + addMerchants: false, + addMerchantTitile: '', // 是否禁用 - isDis:false, + isDis: false, // 商户配置信息 - merchantList:[], + merchantList: [], // 商品规则配置信息 - oilConfigList:[], + oilConfigList: [], // 规则周期 - ruleCycle:"singleDay", + ruleCycle: "singleDay", form: { name: '', - region: '', + deptId: '', date1: '', date2: '', num: 1, @@ -533,70 +600,76 @@ export default { type: [], resource: '', desc: '', - boxlist:[], + boxlist: [], }, - form1:{}, + formRule: { + ruleList:[], + ruleType:1, + }, + deptListSelect: [], + form1: {}, + oilGunList:[], formLabelWidth: '100px', - dialogFormVisible:false, - dialogVisible:false, - show:false, - value:false, - value1:true, + dialogFormVisible: false, + dialogVisible: false, + show: false, + value: false, + value1: true, labelPosition: 'singleDay', - title:"", - boxlist:[], - merchantConfig:{}, + title: "", + boxlist: [], + merchantConfig: {}, tableData: [{ date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄', - PaymentChannel:'富有', - PaymentNum:'00004879449874854', - price:'1587461740.00', + PaymentChannel: '富有', + PaymentNum: '00004879449874854', + price: '1587461740.00', status: '正在使用', - remark:'', - founder:'xxxx', + remark: '', + founder: 'xxxx', }, { date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄', - PaymentChannel:'富有', - PaymentNum:'00004879449874854', - price:'1587461740.00', + PaymentChannel: '富有', + PaymentNum: '00004879449874854', + price: '1587461740.00', status: '正在使用', - remark:'', - founder:'xxxx', - },{ + remark: '', + founder: 'xxxx', + }, { date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄', - PaymentChannel:'富有', - PaymentNum:'00004879449874854', - price:'1587461740.00', + PaymentChannel: '富有', + PaymentNum: '00004879449874854', + price: '1587461740.00', status: '正在使用', - remark:'', - founder:'xxxx', - },{ + remark: '', + founder: 'xxxx', + }, { date: '2016-05-02', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄', - PaymentChannel:'富有', - PaymentNum:'00004879449874854', - price:'1587461740.00', + PaymentChannel: '富有', + PaymentNum: '00004879449874854', + price: '1587461740.00', status: '正在使用', - remark:'', - founder:'xxxx', - }, ], + remark: '', + founder: 'xxxx', + },], tableData1: [{ date: '2016-05-02', name: '按交易类型分账', address: 'xxxxxxxxxxxxxxxxxxx', - RuleName:'规则名字', - PaymentNum:'00004879449874854', - price:'1587461740.00', + RuleName: '规则名字', + PaymentNum: '00004879449874854', + price: '1587461740.00', status: true, - remark:'', - founder:'xxxx', + remark: '', + founder: 'xxxx', }, { id: 2, date: '2016-05-04', @@ -614,54 +687,152 @@ export default { name: '王小虎', address: 'xxxxxxxxxxxxxxxxxxx', }], - rules:{ + rules: { merchantName: [ - { required: true, message: '请选择支付通道', trigger: 'blur' }, + {required: true, message: '请选择支付通道', trigger: 'blur'}, ], mchntCd: [ - { required: true, message: '请填写商户号', trigger: 'blur' }, + {required: true, message: '请填写商户号', trigger: 'blur'}, + ], + deptId: [ + {required: true, message: '请选择机构信息', trigger: 'blur'}, ], } } }, created() { this.getList(); + this.selectChildByDeptIdApi() + this.getOilGunList() }, - methods:{ - addboxlsit(){ + methods: { + submitEnable(val){ + this.formRule.status = val + enableRuleConfig(this.formRule).then(res => { + if (res.data === 1) { + this.$modal.msgSuccess("启用成功") + this.getList() + this.Enable = false + }else { + this.$modal.msgError("启用失败,请确保交易占比相加满足百分之百") + } + }) + }, + // 确定信息 + submitAddRule(){ + this.$refs["formRule"].validate(valid => { + if (valid) { + if (this.formRule.id) { + editRuleConfig(this.formRule).then(res => { + if (res.data === 1) { + this.$modal.msgSuccess("修改成功") + this.getList() + this.addRule = false + }else { + this.$modal.msgError("规则名称不可重复") + } + }) + } else { + this.formRule.storeId = this.id + this.formRule.deptId = this.deptId + addRuleConfig(this.formRule).then(res => { + if (res.data == 1) { + this.$modal.msgSuccess("添加成功"); + this.getList() + this.addRule = false + } else { + this.$modal.msgError("添加失败,规则名称不可重复") + } + }) + } + } + }) + }, + // 获取油枪列表信息 + getOilGunList(){ + getOilGunList({storeId:this.id}).then(res => { + this.oilGunList = res.data.records + }) + }, + // 查询 + selectChildByDeptIdApi() { + selectChildByDeptId().then(res => { + this.deptListSelect = res.data + }) + }, + chooseMerchConfig(val,index){ + this.merchantList.forEach(item => { + if (item.id == val){ + this.formRule.ruleList[index].mchntCd = item.mchntCd + } + }) + }, + addboxlsit() { - let data = { - one: '', - two: '', - three: '', - } - this.form.boxlist.push(data) + let data = { + storeId: this.id, + merchConfigId: '', + transactionType: '', + proportion: '', + oilGunId: '', + } + this.formRule.ruleList.push(data) }, - deleteDoxlist(index){ - this.form.boxlist.splice(index, 1) + deleteDoxlist(index) { + this.formRule.ruleList.splice(index, 1) }, - addRules(){ + addRules() { this.Ruletitle = '新增规则' this.addRule = true + this.formRule = { ruleList:[],ruleType:1 } + this.formRule.deptId = this.deptId }, - addMerchantShow(){ + addMerchantShow() { this.addMerchantTitile = '新增商户信息' this.addMerchants = true - + this.form = {} + this.form.deptId = this.deptId }, - editMerchant(data){ + editRule(data){ + getRuleConfig(data.id).then(res => { + this.Ruletitle = '修改商户信息' + this.addRule = true + this.formRule = res.data + }) + }, + EnableRule(data){ + getRuleConfig(data.id).then(res => { + this.Ruletitle = '修改商户信息' + this.Enable = true + this.formRule = res.data + }) + }, + deleteRule(data){ + let name = data.ruleName + this.$modal.confirm('是否确认删除"' + name + '"的支付配置信息?').then(function () { + return deleteRuleConfig(data.id); + }).then(() => { + this.getList(); + this.$modal.msgSuccess("删除成功"); + }).catch(() => { + }); + }, + editMerchant(data) { // data用于请求接口 - this.addMerchantTitile = '修改商户信息' - this.addMerchants = true + merchantInfo(data.id).then(res => { + this.addMerchantTitile = '修改商户信息' + this.addMerchants = true + this.form = res.data + }) }, - handleUpdate(data){ + handleUpdate(data) { merchantInfo(data.id).then(res => { this.title = "商户信息" this.dialogVisible = true this.form1 = res.data }) }, - handleDelete(data){ + handleDelete(data) { let name = data.remark ? data.merchantName + "(" + data.remark + ")" : data.merchantName this.$modal.confirm('是否确认删除"' + name + '"的支付配置信息?').then(function () { return deleteMerchant(data.id); @@ -672,9 +843,9 @@ export default { }); }, // 修改商户备注信息 - submitRemark(){ + submitRemark() { editMerchantRemark(this.merchantConfig).then(res => { - if (res.data===1){ + if (res.data === 1) { this.$modal.msgSuccess("修改成功") this.getList() this.show = false @@ -682,34 +853,37 @@ export default { }) }, // 打开修改商户备注信息对话框 - editRemark(id){ + editRemark(id) { this.title = "备注" this.show = true merchantInfo(id).then(res => { this.merchantConfig = res.data }) }, - submitMerchant(){ - console.log("hello world") - this.$refs["form1"].validate(valid => { + submitMerchant() { + this.$refs["formAdd"].validate(valid => { if (valid) { - if (this.form1.id){ - editMerchantRemark(this.form1).then(res => { - if (res.data===1){ + if (this.form.id) { + editMerchantRemark(this.form).then(res => { + if (res.data === 1) { this.$modal.msgSuccess("修改成功") this.getList() - this.dialogVisible = false + this.addMerchants = false + }else { + this.$modal.msgError("商户编号不可重复") } }) - }else { - this.form1.storeId = this.id - addMerchantApi(this.form1).then(res => { - if (res.data == 1){ + } else { + this.form.storeId = this.id + addMerchantApi(this.form).then(res => { + if (res.data == 1) { this.$modal.msgSuccess("添加成功"); this.getList() - this.dialogVisible = false - }else { + this.addMerchants = false + } else if (res.data == 0) { this.$modal.msgError("添加失败,当前通道未配置") + }else { + this.$modal.msgError("商户编号不可重复") } }) } @@ -717,19 +891,19 @@ export default { }) }, // 添加商户号信息 - addMerchant(){ + addMerchant() { this.title = "添加商户信息" this.dialogVisible = true this.form1 = {} }, // 删除支付配置信息 - deleteOilConfig(id){ + deleteOilConfig(id) { this.$confirm('确认删除此通道规则吗?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { - delOilConfig(id).then( response => { + delOilConfig(id).then(response => { this.$message({ type: 'success', message: '规则数据删除成功' @@ -738,10 +912,11 @@ export default { this.value1 = true; this.changeStatus1(); }) - }).catch(() => {}); + }).catch(() => { + }); }, // 添加商户信息 - addOil(){ + addOil() { this.title = "添加商户规则" this.dialogFormVisible = true; this.form = { @@ -757,15 +932,15 @@ export default { } }, // 选择下拉商户信息 - changeMerch(val){ + changeMerch(val) { this.merchantList.forEach(item => { - if (item.id == val){ + if (item.id == val) { this.form.mchntCd = item.mchntCd } }) }, // 提交按钮 - submitOilConfig(){ + submitOilConfig() { this.$refs["form"].validate(valid => { if (valid) { this.form.storeId = this.id @@ -777,13 +952,13 @@ export default { this.isDis = false; }); } else { - addOilConfig(this.form).then( response => { - if (response.data==1){ + addOilConfig(this.form).then(response => { + if (response.data == 1) { this.$modal.msgSuccess("新增通道成功"); this.getList(); this.dialogFormVisible = false; this.isDis = false; - }else { + } else { this.$modal.msgError("已存在当前通道商户号的规则"); } }) @@ -792,31 +967,31 @@ export default { }); }, // 取消按钮 - clearOil(){ + clearOil() { this.dialogFormVisible = false; this.isDis = false; }, // 修改支付配置信息 - editOilConfig(id){ + editOilConfig(id) { this.title = "修改商户规则" this.isDis = true; this.dialogFormVisible = true; - oilConfigInfo(id).then( response => { + oilConfigInfo(id).then(response => { this.form = response.data }) }, // 修改启用状态 - changeStatus(){ - if (this.value){ - isOpenOilConfig({isOpen:1,ruleCycle:this.ruleCycle,storeId:this.id}).then( response => { - if (response.data!=1){ + changeStatus() { + if (this.value) { + isOpenOilConfig({isOpen: 1, ruleCycle: this.ruleCycle, storeId: this.id}).then(response => { + if (response.data != 1) { this.$message({ type: 'error', message: '支付通道切换失败,请确保交易占比相加满足百分之百' }); this.value = false; this.value1 = true; - }else { + } else { this.$message({ type: 'success', message: '发布成功!' @@ -824,27 +999,27 @@ export default { this.value1 = false; } }) - }else { - isOpenOilConfig({isOpen:0,ruleCycle:this.ruleCycle,storeId:this.id}).then( response => { + } else { + isOpenOilConfig({isOpen: 0, ruleCycle: this.ruleCycle, storeId: this.id}).then(response => { this.value1 = true; }) } }, - changeStatus1(){ - if (this.value1){ - isOpenOilConfig({isOpen:0,ruleCycle:this.ruleCycle,storeId:this.id}).then( response => { + changeStatus1() { + if (this.value1) { + isOpenOilConfig({isOpen: 0, ruleCycle: this.ruleCycle, storeId: this.id}).then(response => { this.value = false; }) - }else { - isOpenOilConfig({isOpen:1,ruleCycle:this.ruleCycle,storeId:this.id}).then( response => { - if (response.data!=1){ + } else { + isOpenOilConfig({isOpen: 1, ruleCycle: this.ruleCycle, storeId: this.id}).then(response => { + if (response.data != 1) { this.$message({ type: 'error', message: '支付通道切换失败,请确保交易占比相加满足百分之百' }); this.value = false; this.value1 = true; - }else { + } else { this.$message({ type: 'success', message: '发布成功!' @@ -855,35 +1030,36 @@ export default { } }, // 修改商户使用状态 - editStatus(data,isUse){ - this.$confirm('确定将当前支付配置切换为商户号('+data.mchntCd+')吗?切换后实时生效!', '提示', { + editStatus(data, isUse) { + this.$confirm('确定将当前支付配置切换为商户号(' + data.mchntCd + ')吗?切换后实时生效!', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { data.isUse = isUse - editMerchant(data).then( response => { + editMerchant(data).then(response => { this.getList(); this.$message({ type: 'success', - message: '支付通道切换成功,已实时切换为商户号('+data.mchntCd+')' + message: '支付通道切换成功,已实时切换为商户号(' + data.mchntCd + ')' }); }) - }).catch(() => {}); + }).catch(() => { + }); }, // 获取商户列表信息 - getList(){ - listMerchant2({storeId : this.id}).then( response => { + getList() { + listMerchant2({storeId: this.id}).then(response => { this.merchantList = response.data; this.merchantList.forEach(item => { - if (item.isOpenRule == "1"){ + if (item.isOpenRule == "1") { this.value1 = false; this.value = true; } }) }) - listOilConfig({storeId : this.id}).then( response => { - this.oilConfigList = response.data; + listRuleConfig({storeId: this.id}).then(response => { + this.tableData1 = response.data; }) }, open() { @@ -908,51 +1084,58 @@ export default {