This commit is contained in:
cun-nan 2024-03-01 15:38:46 +08:00
parent 1177caac17
commit 55e449a45d
31 changed files with 273 additions and 129 deletions

View File

@ -9,6 +9,15 @@ export function listSupplier(query) {
}) })
} }
// 查询供应商列表
export function listSuppliers(query) {
return request({
url: '/business/convenience/supplier/lists',
method: 'get',
params: query
})
}
// 查询供应商详细 // 查询供应商详细
export function getSupplier(id) { export function getSupplier(id) {
return request({ return request({

View File

@ -205,7 +205,6 @@
v-model="form.cvsGoodId" v-model="form.cvsGoodId"
placeholder="全部" placeholder="全部"
clearable clearable
disabled
style="width: 300px" style="width: 300px"
> >
<el-option v-for="item in cvsGoodList" :key="item.id" :label="item.name" :value="item.id"/> <el-option v-for="item in cvsGoodList" :key="item.id" :label="item.name" :value="item.id"/>
@ -282,32 +281,30 @@
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="供应商" prop="supplierId"> <el-form-item label="供应商" prop="supplierId">
<!-- <el-select--> <el-select
<!-- v-model="form.supplierId"--> v-model="form.supplierId"
<!-- filterable--> filterable
<!-- placeholder="全部"--> placeholder="请选择供应商"
<!-- clearable--> @visible-change="changeSupplier"
<!-- style="width: 300px"--> clearable
<!-- @change="selectSupplier"--> style="width: 94%">
<!-- >--> <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"/>
<!-- <el-option v-for="item in supplierList" :key="item.id" :label="item.name" :value="item.id"/>--> </el-select>
<!-- </el-select>--> <!-- <el-autocomplete-->
<el-autocomplete <!-- popper-class="my-autocomplete"-->
popper-class="my-autocomplete" <!-- style="width: 94%"-->
style="width: 94%" <!-- v-model="supplier"-->
disabled <!-- :fetch-suggestions="querySearch"-->
v-model="supplier" <!-- placeholder="供应商名称,如果是未添加的供应商,输完名称点回车即可自动添加"-->
:fetch-suggestions="querySearch" <!-- @change="addSupplier"-->
placeholder="供应商名称,如果是未添加的供应商,输完名称点回车即可自动添加" <!-- @select="selectSupplier">-->
@change="addSupplier" <!-- <template slot-scope="{ item }">-->
@select="selectSupplier"> <!-- <div style="display: flex;justify-content: space-between">-->
<template slot-scope="{ item }"> <!-- <span class="name">{{ item.name }}</span>-->
<div style="display: flex;justify-content: space-between"> <!--&lt;!&ndash; <span class="addr">{{ item.memberPrice }}</span>&ndash;&gt;-->
<span class="name">{{ item.name }}</span> <!-- </div>-->
<!-- <span class="addr">{{ item.memberPrice }}</span>--> <!-- </template>-->
</div> <!-- </el-autocomplete>-->
</template>
</el-autocomplete>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -348,7 +345,7 @@
import {cvsGoodsAll, cvsGoodsTree, selectTree} from "@/api/convenienceStore/goods"; import {cvsGoodsAll, cvsGoodsTree, selectTree} from "@/api/convenienceStore/goods";
import {addSupplier, getSupplier, listSupplier} from "@/api/convenienceStore/supplier"; import {addSupplier, listSuppliers} from "@/api/convenienceStore/supplier";
import { import {
addLJGoods, addLJGoods,
createGoodsNo, createGoodsNo,
@ -466,6 +463,16 @@ export default {
computed:{ computed:{
}, },
methods:{ methods:{
//
changeSupplier(val){
if (val){
listSuppliers({ifDelete:'0'}).then(response => {
this.supplierList = response.data
})
}else {
this.getSuppilers();
}
},
// //
querySearch(queryString, cb) { querySearch(queryString, cb) {
let _this = this; let _this = this;
@ -493,7 +500,7 @@ export default {
}, },
addSupplier(val){ addSupplier(val){
// console.log(val,222) // console.log(val,222)
addSupplier({name:val,remark:"添加商品自动添加"}).then(res => { addSupplier({name:val,remark:"添加商品自动添加",ifDelete:'0'}).then(res => {
// console.log(res) // console.log(res)
if (res.data==1){ if (res.data==1){
this.$modal.msgSuccess("已为您自动添加此供应商") this.$modal.msgSuccess("已为您自动添加此供应商")
@ -590,8 +597,8 @@ export default {
}); });
}, },
getSuppilers(val){ getSuppilers(val){
listSupplier().then(response => { listSuppliers().then(response => {
this.supplierList = response.data.records this.supplierList = response.data
if (val){ if (val){
this.supplierList.forEach(item => { this.supplierList.forEach(item => {
if (item.name = val){ if (item.name = val){
@ -689,6 +696,7 @@ export default {
// } // }
// } // }
// }) // })
console.log(this.supplierList)
this.supplierList.forEach(item => { this.supplierList.forEach(item => {
if (item.id == response.data.supplierId){ if (item.id == response.data.supplierId){
this.supplier = item.name this.supplier = item.name

View File

@ -280,7 +280,7 @@ import {getAccount} from "@/api/system/account";
import {addLJGoods, createGoodsNo, queryGoodsVoList, queryLJGoods, scanCode} from "@/api/convenienceStore/ljgoods"; import {addLJGoods, createGoodsNo, queryGoodsVoList, queryLJGoods, scanCode} from "@/api/convenienceStore/ljgoods";
import pinyin from "js-pinyin"; import pinyin from "js-pinyin";
import {getSysConfig} from "@/api/staff/user/sysconfig"; import {getSysConfig} from "@/api/staff/user/sysconfig";
import {addSupplier, listSupplier} from "@/api/convenienceStore/supplier"; import {addSupplier, listSuppliers} from "@/api/convenienceStore/supplier";
export default { export default {
dicts:['zhzt','yes_or_no'], dicts:['zhzt','yes_or_no'],
data() { data() {
@ -385,7 +385,7 @@ export default {
{ required: true, message: "请选择是否能使用积分抵扣", trigger: "blur" }, { required: true, message: "请选择是否能使用积分抵扣", trigger: "blur" },
], ],
supplierId: [ supplierId: [
{ required: true, message: "请选择供应商", trigger: "change" }, { required: true, message: "请选择供应商", trigger: "blur" },
], ],
status: [ status: [
{ required: true, message: "请选择商品状态", trigger: "blur" }, { required: true, message: "请选择商品状态", trigger: "blur" },
@ -403,12 +403,12 @@ export default {
}, },
methods: { methods: {
getSuppilers(val){ getSuppilers(val){
listSupplier().then(response => { listSuppliers({ifDelete:'0'}).then(response => {
this.supplierList = response.data.records this.supplierList = response.data
if (val){ if (val){
this.supplierList.forEach(item => { this.supplierList.forEach(item => {
if (item.name = val){ if (item.name == val){
this.form.supplierId = item.id this.form1.supplierId = item.id
} }
}) })
} }
@ -469,24 +469,25 @@ export default {
selectSupplier(data){ selectSupplier(data){
this.supplier = data.name; this.supplier = data.name;
this.form1.supplierId = data.id this.form1.supplierId = data.id
this.$forceUpdate() // this.$forceUpdate()
}, },
addSupplier(val){ addSupplier(val){
// console.log(val,222) // console.log(val,222)
if (!val){ if (!val){
return; return;
} }
addSupplier({name:val,remark:"添加商品自动添加"}).then(res => { addSupplier({name:val,remark:"添加商品自动添加",ifDelete:'0'}).then(async res => {
// console.log(res) // console.log(res)
if (res.data==1){ if (res.data == 1) {
this.supplier = val; this.supplier = val;
this.$modal.msgSuccess("已为您自动添加此供应商") this.$modal.msgSuccess("已为您自动添加此供应商")
this.getSuppilers(val) await this.getSuppilers(val)
} }
}) })
}, },
// //
submitForm1: function() { submitForm1: function() {
console.log(this.form1.supplierId,8274)
this.$refs["form1"].validate(valid => { this.$refs["form1"].validate(valid => {
if (valid) { if (valid) {
if (this.form1) { if (this.form1) {
@ -669,7 +670,8 @@ export default {
// //
addGoods(data){ addGoods(data){
this.openGoods = true this.openGoods = true
this.form1.cvsGoodId = data.id this.form1 = {status:'jy', canUsePoint:'no', stock:0, sort:0, buyingPrice:0, retailPrice:0, memberPrice:0, cvsGoodId:data.id}
// this.form1.cvsGoodId = data.id
this.supplier = "" this.supplier = ""
this.title = "添加商品信息" this.title = "添加商品信息"
}, },

View File

@ -4,18 +4,18 @@
<el-card > <el-card >
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="商品分类" prop="cvsGoodId"> <el-form-item label="商品分类" prop="cvsGoodId">
<el-cascader v-model="cvsGoodId" <!-- <el-cascader v-model="cvsGoodId"-->
:options="cvsGoodOptions" <!-- :options="cvsGoodOptions"-->
:props="{ checkStrictly: true }" <!-- :props="{ checkStrictly: true }"-->
clearable></el-cascader> <!-- clearable></el-cascader>-->
<!-- <el-select--> <el-select
<!-- v-model="queryParams.cvsGoodId"--> v-model="queryParams.cvsGoodId"
<!-- placeholder="全部"--> placeholder="全部"
<!-- clearable--> clearable
<!-- style="width: 300px"--> style="width: 300px"
<!-- >--> >
<!-- <el-option v-for="item in cvsGoodList" :key="item.id" :label="item.name" :value="item.id"/>--> <el-option v-for="item in cvsGoodList" :key="item.id" :label="item.name" :value="item.id"/>
<!-- </el-select>--> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="供应商" prop="supplierId"> <el-form-item label="供应商" prop="supplierId">
<el-select <el-select
@ -63,19 +63,21 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="等级状态" prop="status"> <el-form-item label="上架状态" prop="status">
<el-select <el-select
v-model="queryParams.status" v-model="queryParams.status"
placeholder="全部" placeholder="全部"
clearable clearable
style="width: 240px" style="width: 240px"
> >
<el-option <!-- <el-option-->
v-for="dict in dict.type.zhzt" <!-- v-for="dict in dict.type.zhzt"-->
:key="dict.value" <!-- :key="dict.value"-->
:label="dict.label" <!-- :label="dict.label"-->
:value="dict.value" <!-- :value="dict.value"-->
/> <!-- />-->
<el-option label="上架" value="qy"/>
<el-option label="下架" value="jy"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -227,8 +229,8 @@
</template> </template>
<script> <script>
import {cvsGoodsTree, selectTree} from "@/api/convenienceStore/goods"; import {cvsGoodsTree, list, selectTree} from "@/api/convenienceStore/goods";
import {listSupplier} from "@/api/convenienceStore/supplier"; import {listSupplier, listSuppliers} from "@/api/convenienceStore/supplier";
import {exportStocks, getStock, listStock} from "@/api/convenienceStore/stockstatistic"; import {exportStocks, getStock, listStock} from "@/api/convenienceStore/stockstatistic";
import {listTrack} from "@/api/convenienceStore/stocktrack"; import {listTrack} from "@/api/convenienceStore/stocktrack";
@ -290,6 +292,7 @@ export default {
methods: { methods: {
getName(list,id){ getName(list,id){
let name = "" let name = ""
console.log(list)
list.forEach(item => { list.forEach(item => {
if (item.id==id){ if (item.id==id){
name = item.name; name = item.name;
@ -341,20 +344,20 @@ export default {
// //
handleQuery() { handleQuery() {
this.queryParams.page = 1; this.queryParams.page = 1;
if (this.cvsGoodId.length==1){ // if (this.cvsGoodId.length==1){
this.queryParams.cvsGoodId = this.cvsGoodId[0] // this.queryParams.cvsGoodId = this.cvsGoodId[0]
}else { // }else {
this.queryParams.cvsGoodId = this.cvsGoodId[1] // this.queryParams.cvsGoodId = this.cvsGoodId[1]
} // }
this.getList(); this.getList();
}, },
// //
getQueryList(){ getQueryList(){
selectTree().then(response => { list().then(response => {
this.cvsGoodList = response.data.records this.cvsGoodList = response.data
}); });
listSupplier().then(response => { listSuppliers().then(response => {
this.supplierList = response.data.records this.supplierList = response.data
}) })
}, },
// //

View File

@ -29,17 +29,30 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="交班时间"> <el-form-item label="交班时间">
<!-- <el-date-picker-->
<!-- v-model="dateRange"-->
<!-- style="width: 240px"-->
<!-- size="medium"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- type="daterange"-->
<!-- range-separator="-"-->
<!-- clearable-->
<!-- start-placeholder="开始日期"-->
<!-- end-placeholder="结束日期"-->
<!-- ></el-date-picker>-->
<el-date-picker <el-date-picker
v-model="dateRange" v-model="beginTime"
style="width: 240px" style="width: 160px"
size="medium" type="date"
value-format="yyyy-MM-dd" placeholder="开始日期">
type="daterange" </el-date-picker>
range-separator="-"
clearable <el-date-picker
start-placeholder="开始日期" v-model="endTime"
end-placeholder="结束日期" style="width: 160px"
></el-date-picker> type="date"
placeholder="结束日期">
</el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -133,6 +146,8 @@ export default {
}, },
loading: false, loading: false,
dateRange: [new Date(),new Date()], dateRange: [new Date(),new Date()],
beginTime:new Date(),
endTime:new Date(),
defaultSort: {prop: 'createTime', order: 'descending'}, defaultSort: {prop: 'createTime', order: 'descending'},
total: 0, total: 0,
@ -153,6 +168,11 @@ export default {
}, },
methods: { methods: {
getList(){ getList(){
this.dateRange = []
if (this.beginTime && this.endTime) {
this.dateRange.push(this.beginTime.toLocaleDateString())
this.dateRange.push(this.endTime.toLocaleDateString())
}
getHandoverListApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{ getHandoverListApi(this.addDateRange(this.queryParams, this.dateRange)).then(res=>{
this.dataList = res.data.records this.dataList = res.data.records
this.total = res.data.total this.total = res.data.total
@ -201,6 +221,8 @@ export default {
pageSize:10 pageSize:10
}, },
this.dateRange = [] this.dateRange = []
this.beginTime = "";
this.endTime = ""
this.getList(); this.getList();
}, },
printLocally(data) { printLocally(data) {

View File

@ -254,12 +254,11 @@ export default {
}) })
}, },
changeCreditAmount(){ changeCreditAmount(){
if (this.title = "新增挂账单位") { if (!this.form1.id) {
this.form1.usedCreditLimit = 0 this.form1.usedCreditLimit = 0
this.form1.residueCreditLimit = this.form1.creditLimit this.form1.residueCreditLimit = this.form1.creditLimit
} }else {
if (this.title = "修改挂账单位") { this.form1.residueCreditLimit = this.form1.creditLimit - this.form1.usedCreditLimit
this.form1.usedCreditLimit = this.form1.creditLimit - this.form1.residueCreditLimit
} }
}, },
getList(){ getList(){
@ -298,8 +297,8 @@ export default {
this.$refs["formName"].validate((valid) => { this.$refs["formName"].validate((valid) => {
if (valid) { if (valid) {
if (this.form1.id){ if (this.form1.id){
if (this.form1.creditLimit < this.form1.residueCreditLimit){ if (this.form1.creditLimit < this.form1.usedCreditLimit || this.form1.residueCreditLimit < 0){
this.$modal.msgError("请确保预设挂账额度大于剩余挂账额度"); this.$modal.msgError("请确保预设挂账额度大于已使用挂账额度");
return ; return ;
} }
editCreditUnit(this.form1).then(res => { editCreditUnit(this.form1).then(res => {

View File

@ -96,7 +96,7 @@
<!-- <img src="file://D:/certifiedPhoto/static/uploadImages/20231025/8c3dbcf4924f40ebb479c17abd573ffb.jpg">--> <!-- <img src="file://D:/certifiedPhoto/static/uploadImages/20231025/8c3dbcf4924f40ebb479c17abd573ffb.jpg">-->
<el-card> <el-card style="margin-top: 20px">
<div v-if="activeName=='member'"> <div v-if="activeName=='member'">
<el-button <el-button
type="primary" type="primary"
@ -1095,6 +1095,10 @@ export default {
}, },
// //
handleAddMember() { handleAddMember() {
if (this.fixingLevelList.length==0){
this.$message.error("请先设置企业会员等级")
return;
}
this.openMember = true; this.openMember = true;
this.title = "新增用户认证"; this.title = "新增用户认证";
}, },

View File

@ -230,6 +230,7 @@
<span v-else-if="cashierOrder.payType == 'UNIONPAY'">银联二维码</span> <span v-else-if="cashierOrder.payType == 'UNIONPAY'">银联二维码</span>
<span v-else-if="cashierOrder.payType == 'oilCard'">囤油卡</span> <span v-else-if="cashierOrder.payType == 'oilCard'">囤油卡</span>
<span v-else-if="cashierOrder.payType == 'balance'">储值卡</span> <span v-else-if="cashierOrder.payType == 'balance'">储值卡</span>
<span v-else-if="cashierOrder.payType == 'credit'">挂账</span>
<span v-else>小程序码</span> <span v-else>小程序码</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="付款状态"> <el-descriptions-item label="付款状态">

View File

@ -150,7 +150,17 @@
</el-table-column> </el-table-column>
<el-table-column label="实付金额" align="center" prop="payAmount"/> <el-table-column label="实付金额" align="center" prop="payAmount"/>
<el-table-column label="付款用户" align="center" prop="payUser"/> <el-table-column label="付款用户" align="center" prop="payUser"/>
<el-table-column label="付款类型" align="center" prop="payType"> <el-table-column label="付款方式" align="center" prop="payType">
<template slot-scope="scope">
<span v-if="scope.row.payType=='credit'">挂账</span>
<span v-else-if="scope.row.payType == 'CASH'">现金</span>
<span v-else-if="scope.row.payType == 'WECHAT'">微信</span>
<span v-else-if="scope.row.payType == 'ALIPAY'">支付宝</span>
<span v-else-if="scope.row.payType == 'UNIONPAY'">银联二维码</span>
<span v-else-if="scope.row.payType == '0'">兑换券核销</span>
</template>
</el-table-column>
<el-table-column label="付款状态" align="center" prop="payType">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag> <el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag> <el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>

View File

@ -205,6 +205,7 @@
<span>{{getType(payList,scope.row.payType)}}</span> <span>{{getType(payList,scope.row.payType)}}</span>
<span v-if="scope.row.payType=='oilCard'">囤油卡</span> <span v-if="scope.row.payType=='oilCard'">囤油卡</span>
<span v-if="scope.row.payType=='balance'">储值卡</span> <span v-if="scope.row.payType=='balance'">储值卡</span>
<span v-if="scope.row.payType=='credit'">挂账</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="orderStatus" label="付款状态" align="center" width="120"> <el-table-column prop="orderStatus" label="付款状态" align="center" width="120">

View File

@ -31,7 +31,8 @@
<!-- </el-card>--> <!-- </el-card>-->
<el-card class="box-card" shadow="hover" v-for="item in merchantList" :key="item.id"> <el-card class="box-card" shadow="hover" v-for="item in merchantList" :key="item.id">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span @click="getMerchantList(item.id)"><dict-tag :options="dict.type.payment_channel" :value="item.merchantName"/></span> <!-- <span @click="getMerchantList(item.id)"><dict-tag :options="dict.type.payment_channel" :value="item.merchantName"/></span>-->
<span><dict-tag :options="dict.type.payment_channel" :value="item.merchantName"/></span>
<el-button v-if="item.isUse=='0'" <el-button v-if="item.isUse=='0'"
@click="editStatus(item,1)" @click="editStatus(item,1)"
style="float: right; padding: 3px 0" type="text">切换为当前通道</el-button> style="float: right; padding: 3px 0" type="text">切换为当前通道</el-button>

View File

@ -54,7 +54,7 @@
@click="handleAdd" @click="handleAdd"
>新增员工</el-button> >新增员工</el-button>
</el-col> </el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>-->
</el-row> </el-row>
<el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange"> <el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">

View File

@ -48,7 +48,7 @@ Vue.prototype.getName = getName
Vue.prototype.download = download Vue.prototype.download = download
Vue.prototype.handleTree = handleTree Vue.prototype.handleTree = handleTree
// Vue.prototype.pcUrl = 'http://192.168.0.121:82/' // Vue.prototype.pcUrl = 'http://192.168.0.121:82/'
Vue.prototype.pcUrl = 'http://192.168.0.178:81/' Vue.prototype.pcUrl = 'http://192.168.0.121:82/'
// Vue.prototype.pcUrl = 'http://47.95.206.185:85/' // Vue.prototype.pcUrl = 'http://47.95.206.185:85/'
// 全局组件挂载 // 全局组件挂载

View File

@ -49,8 +49,8 @@ public class Const {
public static String NOTIFY_PUBLIC_KEYS="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCbBAl3xSB7YeUnze4yYZmnTeT7OtXZr0sP10TsDVRH2SY/VEjgS9KPmHMmVeKZT3+6xKsUvulgVyie46GGtZPrnoh+glF1gzsYAXJ7dvR/R5nYO5VvfwK/ChPFTiKhbTtO4OKtchgBZuqCbsemG+gFIiVJo37dY0Kg0zISmFHdOQIDAQAB"; public static String NOTIFY_PUBLIC_KEYS="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCbBAl3xSB7YeUnze4yYZmnTeT7OtXZr0sP10TsDVRH2SY/VEjgS9KPmHMmVeKZT3+6xKsUvulgVyie46GGtZPrnoh+glF1gzsYAXJ7dvR/R5nYO5VvfwK/ChPFTiKhbTtO4OKtchgBZuqCbsemG+gFIiVJo37dY0Kg0zISmFHdOQIDAQAB";
//异步通知(回调地址) //异步通知(回调地址)
public static String notify_url = "https://www.tuofeng.cc/oilAdmin/api/fyPay/notify"; // public static String notify_url = "https://www.tuofeng.cc/oilAdmin/api/fyPay/notify";
// public static String notify_url = "https://8q4f124343.yicp.fun/api/fyPay/notify"; public static String notify_url = "https://8q4f124343.yicp.fun/api/fyPay/notify";
//下单 //下单
public static String fuiou_21_url = "https://fundwx.fuiou.com/preCreate"; public static String fuiou_21_url = "https://fundwx.fuiou.com/preCreate";

View File

@ -37,6 +37,16 @@ public class SupplierController extends BaseController {
return getSuccessResult(list); return getSuccessResult(list);
} }
/**
* 根据条件查询当前店铺所有供应商信息
* @param supplier
* @return
*/
@GetMapping("/lists")
public ResponseObject lists(Supplier supplier){
return getSuccessResult(supplierService.selectSuppliers(supplier));
}
/** /**
* 根据id查询供应商信息 * 根据id查询供应商信息
* @param id * @param id

View File

@ -54,5 +54,10 @@ public class Supplier extends BaseEntity implements Serializable {
*/ */
@ApiModelProperty("商铺id") @ApiModelProperty("商铺id")
private Integer storeId; private Integer storeId;
/**
* 是否删除 0未删除 1删除
*/
@ApiModelProperty("是否删除 0未删除 1删除")
private String ifDelete;
} }

View File

@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fuint.business.convenienceSore.mapper.StockStatisticMapper"> <mapper namespace="com.fuint.business.convenienceSore.mapper.StockStatisticMapper">
<sql id="selectStock"> <sql id="selectStock">
select st.id, st.supplier_id, st.cvs_good_id, st.goods_id, st.store_id, st.cost_amount, mg.status, select st.id, mg.supplier_id, mg.cvs_good_id, st.goods_id, st.store_id, st.cost_amount, mg.status,
mg.name,mg.goods_no,mg.pinyin_code,mg.shelf_number, mg.name,mg.goods_no,mg.pinyin_code,mg.shelf_number,
mg.retail_price,mg.unit,mg.stock,mg.buying_price,mg.update_time mg.retail_price,mg.unit,mg.stock,mg.buying_price,mg.update_time
from stock_statistic st inner join mt_goods mg on st.goods_id = mg.id from stock_statistic st inner join mt_goods mg on st.goods_id = mg.id
@ -13,10 +13,10 @@
<where> <where>
st.store_id = #{stock.storeId} and mg.if_delete = '0' st.store_id = #{stock.storeId} and mg.if_delete = '0'
<if test="stock.cvsGoodId != null and stock.cvsGoodId != ''"> <if test="stock.cvsGoodId != null and stock.cvsGoodId != ''">
and st.cvs_good_id = #{stock.cvsGoodId} and mg.cvs_good_id = #{stock.cvsGoodId}
</if> </if>
<if test="stock.supplierId != null and stock.supplierId != ''"> <if test="stock.supplierId != null and stock.supplierId != ''">
and st.supplier_id = #{stock.supplierId} and mg.supplier_id = #{stock.supplierId}
</if> </if>
<if test="stock.name != null and stock.name != ''"> <if test="stock.name != null and stock.name != ''">
and mg.name like concat('%', #{stock.name}, '%') and mg.name like concat('%', #{stock.name}, '%')

View File

@ -8,7 +8,7 @@
<select id="selectSupplierList" resultType="com.fuint.business.convenienceSore.entity.Supplier"> <select id="selectSupplierList" resultType="com.fuint.business.convenienceSore.entity.Supplier">
<include refid="selectSupplier"></include> <include refid="selectSupplier"></include>
<where> <where>
store_id = #{supplier.storeId} store_id = #{supplier.storeId} and if_delete = '0'
<if test="supplier.name != null and supplier.name != ''"> <if test="supplier.name != null and supplier.name != ''">
and name like concat('%', #{supplier.name}, '%') and name like concat('%', #{supplier.name}, '%')
</if> </if>

View File

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.fuint.business.convenienceSore.entity.Supplier; import com.fuint.business.convenienceSore.entity.Supplier;
import java.util.List;
/** /**
* 供应商信息 业务层 * 供应商信息 业务层
*/ */
@ -16,6 +18,12 @@ public interface SupplierService extends IService<Supplier> {
*/ */
public IPage<Supplier> selectSupplierList(Page page, Supplier supplier); public IPage<Supplier> selectSupplierList(Page page, Supplier supplier);
/**
* 根据条件查询当前店铺所有供应商信息
* @return
*/
List<Supplier> selectSuppliers(Supplier supplier);
/** /**
* 根据id查询供应商信息 * 根据id查询供应商信息
* @param id * @param id

View File

@ -12,6 +12,8 @@ import com.fuint.common.dto.AccountInfo;
import com.fuint.common.util.TokenUtil; import com.fuint.common.util.TokenUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* 供应商 业务层 * 供应商 业务层
*/ */
@ -31,6 +33,16 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
return supplierIPage; return supplierIPage;
} }
@Override
public List<Supplier> selectSuppliers(Supplier supplier) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("store_id",nowAccountInfo.getStoreId());
if (ObjectUtil.isNotEmpty(supplier) && ObjectUtil.isNotEmpty(supplier.getIfDelete()))
queryWrapper.eq("if_delete",supplier.getIfDelete());
return baseMapper.selectList(queryWrapper);
}
/** /**
* 根据id查询供应商信息 * 根据id查询供应商信息
* @param id * @param id
@ -38,7 +50,10 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
*/ */
@Override @Override
public Supplier selectSupplierById(int id) { public Supplier selectSupplierById(int id) {
return baseMapper.selectById(id); QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("if_delete","0");
queryWrapper.eq("id",id);
return baseMapper.selectOne(queryWrapper);
} }
/** /**
@ -53,6 +68,7 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
QueryWrapper queryWrapper = new QueryWrapper<>(); QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name",name); queryWrapper.eq("name",name);
queryWrapper.eq("store_id",storeId); queryWrapper.eq("store_id",storeId);
queryWrapper.eq("if_delete","0");
Supplier supplier = baseMapper.selectOne(queryWrapper); Supplier supplier = baseMapper.selectOne(queryWrapper);
return supplier; return supplier;
} }
@ -63,7 +79,11 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
*/ */
@Override @Override
public void deleteSupplierById(Integer id) { public void deleteSupplierById(Integer id) {
baseMapper.deleteById(id); Supplier supplier = baseMapper.selectById(id);
if (ObjectUtil.isNotEmpty(supplier)){
supplier.setIfDelete("1");
this.updateSupplier(supplier);
}
} }
/** /**

View File

@ -691,6 +691,7 @@ public class CardValueRecordServiceImpl extends ServiceImpl<CardValueRecordMappe
cardValueRecord.setId(id); cardValueRecord.setId(id);
cardValueRecord.setPayStatus(payStatus); cardValueRecord.setPayStatus(payStatus);
int i = baseMapper.updateById(cardValueRecord); int i = baseMapper.updateById(cardValueRecord);
// staffCommissionService.countStaffCommission(cardValueOrders.getStaffId(),cardValueOrders.getStoreId(),cardValueOrders.getAmount(),cardValueOrders.getPayAmount(),"3",cardValueOrders.getOrderNo());
return i>0; return i>0;
} }

View File

@ -321,7 +321,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
// 支付状态 // 支付状态
String payStatus = "unpaid"; String payStatus = "unpaid";
if (payType.equals("CASH") || map.get("allAmount").equals("0")){ if (payType.equals("CASH") || payType.equals("credit") || map.get("allAmount").equals("0")){
payStatus = "paid"; payStatus = "paid";
}else { }else {
payStatus = "unpaid"; payStatus = "unpaid";
@ -377,7 +377,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
// 查询商品订单号 // 查询商品订单号
LJOrder ljOrder2 = orderService.selectGoodsOrder(orderNo); LJOrder ljOrder2 = orderService.selectGoodsOrder(orderNo);
if (payType.equals("CASH")) { if (payType.equals("CASH") || payType.equals("credit")) {
// 添加商品订单记录表 // 添加商品订单记录表
OrderGoods orderGoods = new OrderGoods(); OrderGoods orderGoods = new OrderGoods();
for (JSONObject good : goods) { for (JSONObject good : goods) {
@ -448,7 +448,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
if (ObjectUtil.isNotEmpty(jsonObjects.get(i).get("type"))){ if (ObjectUtil.isNotEmpty(jsonObjects.get(i).get("type"))){
order.setActiveType(jsonObjects.get(i).get("type").toString()); order.setActiveType(jsonObjects.get(i).get("type").toString());
} }
if (payType.equals("CASH")){ if (payType.equals("CASH") || payType.equals("credit")){
order.setPayTime(new Date()); order.setPayTime(new Date());
this.addOilTrack(jsonObjects.get(i),storeId); this.addOilTrack(jsonObjects.get(i),storeId);
this.updateCardAndActiveById(storeId,userId,order.getActiveId(),order.getCouponId(),order.getActiveType(),order.getOrderAmount(), Integer.valueOf(order.getOils())); this.updateCardAndActiveById(storeId,userId,order.getActiveId(),order.getCouponId(),order.getActiveType(),order.getOrderAmount(), Integer.valueOf(order.getOils()));
@ -471,7 +471,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
cashierOrder.setStatus(payStatus); cashierOrder.setStatus(payStatus);
cashierOrder.setOilPayAmount(oilActualPay); cashierOrder.setOilPayAmount(oilActualPay);
cashierOrder.setGoodsPayAmount(goodsActualPay); cashierOrder.setGoodsPayAmount(goodsActualPay);
if (payType.equals("CASH")){ if (payType.equals("CASH") || payType.equals("credit")){
if (StringUtils.isNotEmpty(map.get("authCode"))){ if (StringUtils.isNotEmpty(map.get("authCode"))){
cashierOrder.setPayAmount(Double.valueOf(map.get("authCode"))); cashierOrder.setPayAmount(Double.valueOf(map.get("authCode")));
}else { }else {
@ -493,7 +493,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
cashierOrder.setAfterDiscountAmount(oilAmount+goodsAmount-oilDiscount-goodsDiscount); cashierOrder.setAfterDiscountAmount(oilAmount+goodsAmount-oilDiscount-goodsDiscount);
// 如果金额不等于0调用第三方支付接口 // 如果金额不等于0调用第三方支付接口
if (!map.get("allAmount").equals("0") && !map.get("payType").equals("CASH")){ if (!map.get("allAmount").equals("0") && !map.get("payType").equals("CASH") || !payType.equals("credit")){
Integer allAmount = (int) (Double.valueOf(map.get("allAmount"))*100); Integer allAmount = (int) (Double.valueOf(map.get("allAmount"))*100);
// 判断是否开启支付规则 // 判断是否开启支付规则
List<MerchantConfig> list = merchantConfigService.selectMeChByIsOpen(storeId); List<MerchantConfig> list = merchantConfigService.selectMeChByIsOpen(storeId);

View File

@ -46,7 +46,7 @@ public class MtUserGradeChildServiceImpl extends ServiceImpl<MtUserGradeChildMap
@Override @Override
public List<MtUserGradeChild> selectListByUserId(Integer userId,Integer storeId) { public List<MtUserGradeChild> selectListByUserId(Integer userId,Integer storeId) {
LJUserVo userVo = userService.queryUserById(userId, storeId); LJUserVo userVo = userService.queryUserById(userId, storeId);
LJStore store = storeService.selectStoreById(); LJStore store = storeService.selectStoreByStoreId(storeId);
ChainStoreConfig chainStoreConfig = chainStoreConfigService.selectChainStoreById(store.getChainStoreId()); ChainStoreConfig chainStoreConfig = chainStoreConfigService.selectChainStoreById(store.getChainStoreId());
String isEnableLevel = chainStoreConfig.getIsEnableLevel(); String isEnableLevel = chainStoreConfig.getIsEnableLevel();
if (isEnableLevel.equals("yes")){ if (isEnableLevel.equals("yes")){

View File

@ -156,7 +156,7 @@ public class AlipayController extends BaseController {
// 获取支付宝userid // 获取支付宝userid
AlipaySystemOauthTokenResponse alipayProfile = alipayService.getAlipayProfile(authCode); AlipaySystemOauthTokenResponse alipayProfile = alipayService.getAlipayProfile(authCode);
if (ObjectUtil.isEmpty(alipayProfile)) { if (ObjectUtil.isEmpty(alipayProfile)) {
return getSuccessResult("false"); return getSuccessResult(false);
} }
// 判断是否为未登录状态下支付 // 判断是否为未登录状态下支付
@ -178,7 +178,7 @@ public class AlipayController extends BaseController {
return getSuccessResult(true); return getSuccessResult(true);
} }
if (ObjectUtil.isEmpty(alipayProfile.getUserId())) return getSuccessResult("false"); if (ObjectUtil.isEmpty(alipayProfile.getUserId())) return getSuccessResult(false);
String userId = alipayProfile.getUserId(); String userId = alipayProfile.getUserId();
@ -190,15 +190,15 @@ public class AlipayController extends BaseController {
if (ObjectUtil.isNotEmpty(ljUser) && ObjectUtil.isNotEmpty(ljUser.getUserId())){ if (ObjectUtil.isNotEmpty(ljUser) && ObjectUtil.isNotEmpty(ljUser.getUserId())){
if (ljUser.getUserId().equals(userId)) { if (ljUser.getUserId().equals(userId)) {
return getSuccessResult("true"); return getSuccessResult(true);
} }
}else { }else {
return getSuccessResult("false"); return getSuccessResult(false);
} }
return getSuccessResult("false"); return getSuccessResult(false);
} }

View File

@ -1243,12 +1243,11 @@ import {getLodop} from "@/api/LodopFuncs";
this.handleQuery1(); this.handleQuery1();
}, },
changeCreditAmount(){ changeCreditAmount(){
if (this.title = "新增挂账单位") { if (!this.form1.id) {
this.form1.usedCreditLimit = 0 this.form1.usedCreditLimit = 0
this.form1.residueCreditLimit = this.form1.creditLimit this.form1.residueCreditLimit = this.form1.creditLimit
} }else {
if (this.title = "修改挂账单位") { this.form1.residueCreditLimit = this.form1.creditLimit - this.form1.usedCreditLimit
this.form1.usedCreditLimit = this.form1.creditLimit - this.form1.residueCreditLimit
} }
}, },
addUnit(){ addUnit(){
@ -1639,8 +1638,8 @@ import {getLodop} from "@/api/LodopFuncs";
this.$refs["formName"].validate((valid) => { this.$refs["formName"].validate((valid) => {
if (valid) { if (valid) {
if (this.form1.id){ if (this.form1.id){
if (this.form1.creditLimit < this.form1.residueCreditLimit){ if (this.form1.creditLimit < this.form1.usedCreditLimit || this.form1.residueCreditLimit < 0){
this.$modal.msgError("请确保预设挂账额度大于剩余挂账额度"); this.$modal.msgError("请确保预设挂账额度大于已使用挂账额度");
return ; return ;
} }
editCreditUnit(this.form1).then(res => { editCreditUnit(this.form1).then(res => {

View File

@ -120,7 +120,7 @@
</div> </div>
<div>-{{ oilDiscount.toFixed(2) }}</div> <div>-{{ oilDiscount.toFixed(2) }}</div>
</div> </div>
<div class="center-left-hj" v-show="isMember && refuelMoney.length>0"> <div class="center-left-hj" v-show="isMember && refuelMoney && refuelMoney.length>0">
<div> <div>
<el-checkbox <el-checkbox
style="color: black;font-size: 16px" style="color: black;font-size: 16px"
@ -569,7 +569,7 @@
<span style="font-weight: bold">{{member.cardBalance ? member.cardBalance : "0"}}</span> <span style="font-weight: bold">{{member.cardBalance ? member.cardBalance : "0"}}</span>
</template> </template>
<el-descriptions-item label="账户余额">{{member.cardBalance ? member.cardBalance : 0}}</el-descriptions-item> <el-descriptions-item label="账户余额">{{member.cardBalance ? member.cardBalance : 0}}</el-descriptions-item>
<el-descriptions-item label="囤油卡余额"> <el-descriptions-item label="囤油卡余额" v-if="refuelMoney">
<div style="margin: 5px 0" v-for="(item,index) in refuelMoney" :key="index"> <div style="margin: 5px 0" v-for="(item,index) in refuelMoney" :key="index">
{{ item.type }} {{ item.type }}
<!-- <span style="color: #00afff">{{ item.oilType }}</span>--> <!-- <span style="color: #00afff">{{ item.oilType }}</span>-->
@ -2516,9 +2516,8 @@
this.$refs["form"].validate((valid) => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
addHangBill(this.form1).then( async response => { addHangBill(this.form1).then( async response => {
if (response.data==0){ if (response.data==1){
this.$modal.msgError("挂账单位可用额度不足,无法进行挂账"); await this.addOrder();
}else {
this.$modal.msgSuccess("挂账记录添加成功"); this.$modal.msgSuccess("挂账记录添加成功");
this.dialogVisibleCredit = false; this.dialogVisibleCredit = false;
this.printLocally() this.printLocally()
@ -2527,6 +2526,8 @@
this.resetMember(); this.resetMember();
this.resetting(); this.resetting();
this.empty(); this.empty();
}else {
this.$modal.msgError("挂账单位可用额度不足,无法进行挂账");
} }
}) })
}else { }else {
@ -2534,6 +2535,34 @@
} }
}) })
}, },
//
async addOrder() {
this.map.seekZero = this.seekZero;
this.map.oilAmount = this.oilAmount;
this.map.payType = this.payType;
this.map.goodsAmount = this.goodsAmount;
this.map.oilActualPay = this.oilActualPay;
this.map.goodsActualPay = this.goodsActualPay;
this.map.oilDiscount = 0.0;
this.map.goodsDiscount = 0.0;
this.map.goodsNum = this.goodsTotal;
this.map.balanceAmount = 0.0;
this.map.oilCardAmount = 0.0;
this.map.oilOrder = JSON.stringify(this.oilOrder);
this.map.goodsOrder = JSON.stringify(this.goodsOrder);
this.map.authCode = this.authCode;
this.map.allAmount = +this.oilActualPay + +this.goodsActualPay
this.map.consumeAmount = 0.0;
this.map.refuelMoney = JSON.stringify(this.refuelMoney)
this.map.couponId = this.useCouponIds
this.map.staffId = this.staff.id
this.map.cardFavorableId = this.cardFavorableId
this.map.recordId = this.recordId
this.map.userId = this.member.id
await addLJGoods(this.map).then(response => {
})
},
// //
changeUnit(val){ changeUnit(val){
this.form1.creditUnitId = val.id; this.form1.creditUnitId = val.id;

View File

@ -241,6 +241,7 @@
<span v-else-if="cashierOrder.payType == 'UNIONPAY'">银联二维码</span> <span v-else-if="cashierOrder.payType == 'UNIONPAY'">银联二维码</span>
<span v-else-if="cashierOrder.payType == 'oilCard'">囤油卡</span> <span v-else-if="cashierOrder.payType == 'oilCard'">囤油卡</span>
<span v-else-if="cashierOrder.payType == 'balance'">储值卡</span> <span v-else-if="cashierOrder.payType == 'balance'">储值卡</span>
<span v-else-if="cashierOrder.payType == 'credit'">挂账</span>
<span v-else>小程序码</span> <span v-else>小程序码</span>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="付款状态"> <el-descriptions-item label="付款状态">

View File

@ -150,7 +150,17 @@
</el-table-column> </el-table-column>
<el-table-column label="实付金额" align="center" prop="payAmount"/> <el-table-column label="实付金额" align="center" prop="payAmount"/>
<el-table-column label="付款用户" align="center" prop="payUser"/> <el-table-column label="付款用户" align="center" prop="payUser"/>
<el-table-column label="付款类型" align="center" prop="payType"> <el-table-column label="付款方式" align="center" prop="payType">
<template slot-scope="scope">
<span v-if="scope.row.payType=='credit'">挂账</span>
<span v-else-if="scope.row.payType == 'CASH'">现金</span>
<span v-else-if="scope.row.payType == 'WECHAT'">微信</span>
<span v-else-if="scope.row.payType == 'ALIPAY'">支付宝</span>
<span v-else-if="scope.row.payType == 'UNIONPAY'">银联二维码</span>
<span v-else-if="scope.row.payType == '0'">兑换券核销</span>
</template>
</el-table-column>
<el-table-column label="付款状态" align="center" prop="payType">
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag> <el-tag v-if="scope.row.status == 'unpaid'">未支付</el-tag>
<el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag> <el-tag type="success" v-else-if="scope.row.status == 'paid'">已支付</el-tag>

View File

@ -206,6 +206,7 @@
<span>{{getType(payList,scope.row.payType)}}</span> <span>{{getType(payList,scope.row.payType)}}</span>
<span v-if="scope.row.payType=='oilCard'">囤油卡</span> <span v-if="scope.row.payType=='oilCard'">囤油卡</span>
<span v-if="scope.row.payType=='balance'">储值卡</span> <span v-if="scope.row.payType=='balance'">储值卡</span>
<span v-if="scope.row.payType=='credit'">挂账</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="orderStatus" label="付款状态" align="center" width="120"> <el-table-column prop="orderStatus" label="付款状态" align="center" width="120">

View File

@ -86,9 +86,9 @@
<view class="station-title" style="display: flex;justify-content: space-between;"> <view class="station-title" style="display: flex;justify-content: space-between;">
{{store.name}}{{store.description ? "("+store.description+")" : ""}} {{store.name}}{{store.description ? "("+store.description+")" : ""}}
<!-- <view class="" @click="goChooseAddress" style="width: 22%;font-size: 14px;font-weight: 400;"> <view class="" @click="goChooseAddress" style="width: 22%;font-size: 14px;font-weight: 400;">
<view>切换位置 <uni-icons type="right" color="#304fff" size="16"></uni-icons> </view> <view>切换位置 <uni-icons type="right" color="#304fff" size="16"></uni-icons> </view>
</view> --> </view>
</view><!--顺通石化加油站(工业南路站)--> </view><!--顺通石化加油站(工业南路站)-->
<view style="display: flex;"> <view style="display: flex;">
<view class="bule-icon" v-if="welfare.length!=0" v-for="(item,index) in welfare" :key="index"> <view class="bule-icon" v-if="welfare.length!=0" v-for="(item,index) in welfare" :key="index">

View File

@ -573,8 +573,8 @@
code: res.code, code: res.code,
isRefuel: true, isRefuel: true,
} }
}).then(res => { }).then(resp => {
if (!res.data) { if (!resp.data) {
uni.removeStorageSync("App-Token"); uni.removeStorageSync("App-Token");
} }
}) })
@ -600,7 +600,7 @@
isRefuel: true, isRefuel: true,
}, },
}).then((resp) => { }).then((resp) => {
if (!res.data) { if (!resp.data) {
uni.removeStorageSync("App-Token"); uni.removeStorageSync("App-Token");
} }
}) })