整包上传

main
zhangshengli 5 months ago
parent 0868495677
commit e4f0d88c1a

@ -11,5 +11,5 @@ VUE_APP_BASE_API = '/fuint-application/'
VUE_APP_PUBLIC_PATH = '/fuintAdmin/' VUE_APP_PUBLIC_PATH = '/fuintAdmin/'
# 后端接口地址 # 后端接口地址
VUE_APP_SERVER_URL = 'https://www.fuint.cn/fuint-application/' VUE_APP_SERVER_URL = 'https://www.huamar.com/fuint-application/'

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

@ -1,6 +1,6 @@
/** /**
* css * css
* Copyright (c) 2022 https://www.fuint.cn * Copyright (c) 2022 https://www.huamar.com
*/ */
/** 基础通用 **/ /** 基础通用 **/
.pt5 { .pt5 {

@ -9,7 +9,7 @@ export default {
name: 'FuintDoc', name: 'FuintDoc',
data() { data() {
return { return {
url: 'https://www.fuint.cn/docs/index/' url: 'https://www.huamar.com/docs/index/'
} }
}, },
methods: { methods: {

@ -1,6 +1,6 @@
/** /**
* v-hasPermi 操作权限处理 * v-hasPermi 操作权限处理
* Copyright (c) 2023 https://www.fuint.cn * Copyright (c) 2023 https://www.huamar.com
*/ */
import store from '@/store' import store from '@/store'

@ -1,6 +1,6 @@
/** /**
* 通用js方法封装处理 * 通用js方法封装处理
* Copyright (c) 2022 https://www.fuint.cn * Copyright (c) 2022 https://www.huamar.com
*/ */
// 获取过去n天时间 // 获取过去n天时间

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="会员ID" prop="userId"> <el-form-item label="会员ID" prop="userId">
<el-input <el-input
v-model="queryParams.userId" v-model="queryParams.userId"

@ -23,7 +23,7 @@
</li> </li>
</ul> </ul>
<div class="client"> <div class="client">
<a target="_blank" href="https://www.fuint.cn/download?v=202307024">下载客户端</a> <a target="_blank" href="https://www.huamar.com/download?v=202307024">下载客户端</a>
</div> </div>
</div> </div>
</div> </div>

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form size="small" :inline="true" class="main-search" label-width="68px"> <el-form size="small" :inline="true" class="main-search" label-width="83px">
<el-form-item label="所属店铺" prop="storeId"> <el-form-item label="所属服务站" prop="storeId">
<el-select v-model="storeId" filterable clearable placeholder="请选择店铺" style="width: 100%;"> <el-select v-model="storeId" filterable clearable placeholder="请选择店铺" style="width: 100%;">
<el-option <el-option
v-for="item in storeOptions" v-for="item in storeOptions"

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<!--查询参数--> <!--查询参数-->
<el-form size="small" :inline="true" class="main-search" label-width="68px"> <el-form size="small" :inline="true" class="main-search" label-width="83px">
<el-form-item label="分佣对象" prop="target"> <el-form-item label="分佣对象" prop="target">
<el-select v-model="target" placeholder="请选择方案对象" clearable style="width: 100%;"> <el-select v-model="target" placeholder="请选择方案对象" clearable style="width: 100%;">
<el-option key="" label="全部" value=""/> <el-option key="" label="全部" value=""/>
@ -9,7 +9,7 @@
<el-option key="member" label="会员分销" value="member"/> <el-option key="member" label="会员分销" value="member"/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="所属店铺" prop="storeId"> <el-form-item label="所属服务站" prop="storeId">
<el-select v-model="storeId" filterable clearable placeholder="请选择店铺" style="width: 100%;"> <el-select v-model="storeId" filterable clearable placeholder="请选择店铺" style="width: 100%;">
<el-option <el-option
v-for="item in storeOptions" v-for="item in storeOptions"
@ -214,7 +214,7 @@
<span>{{ scope.row.userInfo ? scope.row.userInfo.userName : '-' }}</span> <span>{{ scope.row.userInfo ? scope.row.userInfo.userName : '-' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属店铺" align="center" prop="storeInfo.name"> <el-table-column label="所属服务站" align="center" prop="storeInfo.name">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.storeInfo">{{ scope.row.storeInfo.name }}</span> <span v-if="scope.row.storeInfo">{{ scope.row.storeInfo.name }}</span>
<span v-else>-</span> <span v-else>-</span>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<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="83px">
<el-form-item label="会员ID" prop="title"> <el-form-item label="会员ID" prop="title">
<el-input <el-input
v-model="queryParams.title" v-model="queryParams.title"
@ -10,10 +10,10 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="所属店铺" prop="store"> <el-form-item label="所属服务站" prop="store">
<el-select <el-select
v-model="queryParams.storeId" v-model="queryParams.storeId"
placeholder="所属店铺" placeholder="所属服务站"
clearable clearable
style="width: 180px" style="width: 180px"
> >
@ -49,7 +49,7 @@
<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">
<el-table-column label="ID" prop="id" width="55"/> <el-table-column label="ID" prop="id" width="55"/>
<el-table-column label="标题" align="center" prop="title" /> <el-table-column label="标题" align="center" prop="title" />
<el-table-column label="所属店铺" align="center" prop="store"> <el-table-column label="所属服务站" align="center" prop="store">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.storeId && scope.row.storeId > 0"> <span v-if="scope.row.storeId && scope.row.storeId > 0">
<span>{{ getName(storeList, scope.row.storeId) }}</span> <span>{{ getName(storeList, scope.row.storeId) }}</span>
@ -118,11 +118,11 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="所属店铺" prop="storeId"> <el-form-item label="所属服务站" prop="storeId">
<el-select <el-select
v-model="form.storeId" v-model="form.storeId"
style="width: 260px" style="width: 260px"
placeholder="所属店铺,空则为公共所有" placeholder="所属服务站,空则为公共所有"
> >
<el-option :key="0" label="公共所有" v-if="!this.$store.getters.storeId" :value="0"/> <el-option :key="0" label="公共所有" v-if="!this.$store.getters.storeId" :value="0"/>
<el-option v-for="storeInfo in storeList" :key="storeInfo.id" :label="storeInfo.name" :value="storeInfo.id"/> <el-option v-for="storeInfo in storeList" :key="storeInfo.id" :label="storeInfo.name" :value="storeInfo.id"/>

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<!--查询参数--> <!--查询参数-->
<el-form size="small" :inline="true" class="main-search" label-width="68px"> <el-form size="small" :inline="true" class="main-search" label-width="83px">
<el-form-item label="方案名称"> <el-form-item label="方案名称">
<el-input <el-input
v-model="name" v-model="name"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" label-width="83px">
<el-form-item label="文章标题" prop="title"> <el-form-item label="文章标题" prop="title">
<el-input <el-input
v-model="queryParams.title" v-model="queryParams.title"
@ -93,7 +93,7 @@
<!-- 添加或修改文章对话框 --> <!-- 添加或修改文章对话框 -->
<el-dialog :title="title" :visible.sync="open" class="common-dialog" width="700px" append-to-body> <el-dialog :title="title" :visible.sync="open" class="common-dialog" width="700px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="83px">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
@ -133,11 +133,11 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="所属店铺" prop="storeId"> <el-form-item label="所属服务站" prop="storeId">
<el-select <el-select
v-model="form.storeId" v-model="form.storeId"
style="width: 260px" style="width: 260px"
placeholder="所属店铺,空则为公共所有" placeholder="所属服务站,空则为公共所有"
> >
<el-option :key="0" label="公共所有" v-if="!this.$store.getters.storeId" :value="0"/> <el-option :key="0" label="公共所有" v-if="!this.$store.getters.storeId" :value="0"/>
<el-option v-for="storeInfo in storeList" :key="storeInfo.id" :label="storeInfo.name" :value="storeInfo.id"/> <el-option v-for="storeInfo in storeList" :key="storeInfo.id" :label="storeInfo.name" :value="storeInfo.id"/>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input <el-input
v-model="queryParams.title" v-model="queryParams.title"
@ -10,10 +10,10 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="所属店铺" prop="store"> <el-form-item label="所属服务站" prop="store">
<el-select <el-select
v-model="queryParams.storeId" v-model="queryParams.storeId"
placeholder="所属店铺" placeholder="所属服务站"
clearable clearable
style="width: 180px" style="width: 180px"
> >
@ -49,7 +49,7 @@
<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">
<el-table-column label="ID" prop="id" width="55"/> <el-table-column label="ID" prop="id" width="55"/>
<el-table-column label="标题" align="center" prop="title" /> <el-table-column label="标题" align="center" prop="title" />
<el-table-column label="所属店铺" align="center" prop="store"> <el-table-column label="所属服务站" align="center" prop="store">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.storeId && scope.row.storeId > 0"> <span v-if="scope.row.storeId && scope.row.storeId > 0">
<span>{{ getName(storeList, scope.row.storeId) }}</span> <span>{{ getName(storeList, scope.row.storeId) }}</span>
@ -123,11 +123,11 @@
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="所属店铺" prop="storeId"> <el-form-item label="所属服务站" prop="storeId">
<el-select <el-select
v-model="form.storeId" v-model="form.storeId"
style="width: 260px" style="width: 260px"
placeholder="所属店铺,空则为公共所有" placeholder="所属服务站,空则为公共所有"
> >
<el-option :key="0" label="公共所有" v-if="!this.$store.getters.storeId" :value="0"/> <el-option :key="0" label="公共所有" v-if="!this.$store.getters.storeId" :value="0"/>
<el-option v-for="storeInfo in storeList" :key="storeInfo.id" :label="storeInfo.name" :value="storeInfo.id"/> <el-option v-for="storeInfo in storeList" :key="storeInfo.id" :label="storeInfo.name" :value="storeInfo.id"/>

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<div class="main-panel"> <div class="main-panel">
<el-form class="form" ref="form" :model="form" :rules="rules" label-width="80px"> <el-form class="form" ref="form" :model="form" :rules="rules" label-width="83px">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item class="form-item" label="核销码" prop="code"> <el-form-item class="form-item" label="核销码" prop="code">

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="会员ID" prop="userId"> <el-form-item label="会员ID" prop="userId">
<el-input <el-input
v-model="queryParams.userId" v-model="queryParams.userId"
@ -74,7 +74,7 @@
<span v-else>-</span> <span v-else>-</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属店铺" align="center" prop="storeInfo.name"> <el-table-column label="所属服务站" align="center" prop="storeInfo.name">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.storeInfo">{{ scope.row.storeInfo.name }}</span> <span v-if="scope.row.storeInfo">{{ scope.row.storeInfo.name }}</span>
<span v-else></span> <span v-else></span>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="卡券ID" prop="couponId"> <el-form-item label="卡券ID" prop="couponId">
<el-input <el-input
v-model="queryParams.id" v-model="queryParams.id"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="会员ID" prop="userId"> <el-form-item label="会员ID" prop="userId">
<el-input <el-input
v-model="queryParams.userId" v-model="queryParams.userId"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="分组ID" prop="couponId"> <el-form-item label="分组ID" prop="couponId">
<el-input <el-input
v-model="queryParams.id" v-model="queryParams.id"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="会员ID" prop="userId"> <el-form-item label="会员ID" prop="userId">
<el-input <el-input
v-model="queryParams.userId" v-model="queryParams.userId"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="ID" prop="id"> <el-form-item label="ID" prop="id">
<el-input <el-input
v-model="queryParams.id" v-model="queryParams.id"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" class="main-search" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" class="main-search" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="分类名称" prop="name"> <el-form-item label="分类名称" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" class="main-search" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" class="main-search" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="商品名称" prop="name"> <el-form-item label="商品名称" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"

@ -70,13 +70,14 @@
<div class="content"> <div class="content">
<el-row class="line home-tools"> <el-row class="line home-tools">
<!-- <el-col class="item no-border" :span="8"><div class="do" @click="toCashier('/fuintCashier/')"><img class="t-icon" src="@/assets/images/home/pay.png"><div class="text">收银下单</div></div></el-col>--> <!-- <el-col class="item no-border" :span="8"><div class="do" @click="toCashier('/fuintCashier/')"><img class="t-icon" src="@/assets/images/home/pay.png"><div class="text">收银下单</div></div></el-col>-->
<el-col class="item no-border" :span="8"><div class="do" @click="toTarget('/coupon/confirm/index')"><img class="t-icon" src="@/assets/images/home/coupon.png"><div class="text">核销卡券</div></div></el-col> <el-col class="item no-border" :span="12"><div class="do" @click="toTarget('/coupon/confirm/index')"><img class="t-icon" src="@/assets/images/home/coupon.png"><div class="text">核销卡券</div></div></el-col>
<el-col class="item no-border" :span="8"><div class="do" @click="toTarget('/member/index')"><img class="t-icon" src="@/assets/images/home/member.png"><div class="text">会员管理</div></div></el-col> <el-col class="item no-border" :span="12"><div class="do" @click="toTarget('/member/index')"><img class="t-icon" src="@/assets/images/home/member.png"><div class="text">会员管理</div></div></el-col>
</el-row> </el-row>
<el-row class="line home-tools"> <el-row class="line home-tools">
<el-col class="item no-border" :span="8"><div class="do" @click="toTarget('/order/index')"><img class="t-icon" src="@/assets/images/home/order.png"><div class="text">订单管理</div></div></el-col> <el-col class="item no-border" :span="8"><div class="do" @click="toTarget('/goods/goods/index')"><img class="t-icon" src="@/assets/images/home/goods.png"><div class="text">商品管理</div></div></el-col>
<el-col class="item no-border" :span="8"><div class="do" @click="toTarget('/order/index')"><img class="t-icon" src="@/assets/images/home/order.png"><div class="text">订单管理</div></div></el-col>
<el-col class="item no-border" :span="8"><div class="do" @click="toTarget('/coupon/coupon/index')"><img class="t-icon" src="@/assets/images/home/card.png"><div class="text">卡券管理</div></div></el-col> <el-col class="item no-border" :span="8"><div class="do" @click="toTarget('/coupon/coupon/index')"><img class="t-icon" src="@/assets/images/home/card.png"><div class="text">卡券管理</div></div></el-col>
<el-col class="item no-border" :span="8"><div class="do" @click="toTarget('/goods/goods/index')"><img class="t-icon" src="@/assets/images/home/goods.png"><div class="text">商品管理</div></div></el-col>
</el-row> </el-row>
</div> </div>
</div> </div>
@ -221,7 +222,14 @@ export default {
} }
.home-tools { .home-tools {
.do { .do {
height: 90px; display: flex;
justify-content: center; /* 水平居中 */
align-items: center; /* 垂直居中 */
/* 其他样式保持不变 */
height: 90px;
margin-bottom: 10px; margin-bottom: 10px;
cursor: pointer; cursor: pointer;
font-weight: bold; font-weight: bold;
@ -235,6 +243,7 @@ export default {
border: solid 1px #cccccc; border: solid 1px #cccccc;
.text { .text {
margin-top: 14px; margin-top: 14px;
text-align: center;
} }
} }
.t-icon { .t-icon {

@ -3,7 +3,7 @@
<div class="login-main"> <div class="login-main">
<div class="caption"> <div class="caption">
<h4 class="caption-title">{{ systemName }}</h4> <h4 class="caption-title">{{ systemName }}</h4>
<p class="caption-remark">欢迎使用 {{ systemName }}您的卡券计次卡等会员营销小管家</p> <p class="caption-remark">欢迎使用 {{ systemName }}</p>
</div> </div>
</div> </div>
<div class="login-form"> <div class="login-form">
@ -65,7 +65,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div class="copy-right"> <div class="copy-right">
<span>Copyright © 2022-2024 <a class="link" href="https://www.fuint.cn">fuint.cn</a> All Rights Reserved.</span> <span>Copyright © 2022-2024 <a class="link" href="https://www.huamar.com">huamar.com</a> All Rights Reserved.</span>
</div> </div>
</div> </div>
</div> </div>
@ -185,7 +185,7 @@ export default {
overflow: hidden; overflow: hidden;
background-size: cover; background-size: cover;
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; // background-position: center;
.caption { .caption {
.caption-title { .caption-title {
font-size: 30px; font-size: 30px;

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" label-width="83px">
<el-form-item label="分组ID" prop="id"> <el-form-item label="分组ID" prop="id">
<el-input <el-input
v-model="queryParams.id" v-model="queryParams.id"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="会员ID" prop="id"> <el-form-item label="会员ID" prop="id">
<el-input <el-input
v-model="queryParams.id" v-model="queryParams.id"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<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="83px">
<el-form-item label="公司号" prop="no"> <el-form-item label="公司号" prop="no">
<el-input <el-input
v-model="queryParams.no" v-model="queryParams.no"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="卡券ID" prop="couponId"> <el-form-item label="卡券ID" prop="couponId">
<el-input <el-input
v-model="queryParams.couponId" v-model="queryParams.couponId"

@ -67,14 +67,14 @@
</el-col> </el-col>
</el-row> </el-row>
<el-row class="row"> <el-row class="row">
<el-col :span="8"> <!-- <el-col :span="8">-->
<span class="head">使用积分</span> <!-- <span class="head">使用积分</span>-->
<span class="control-label">{{ orderInfo.usePoint ? orderInfo.usePoint : 0 }}</span> <!-- <span class="control-label">{{ orderInfo.usePoint ? orderInfo.usePoint : 0 }}</span>-->
</el-col> <!-- </el-col>-->
<el-col :span="8"> <!-- <el-col :span="8">-->
<span class="head">积分金额</span> <!-- <span class="head">积分金额</span>-->
<span class="control-label">{{ orderInfo.pointAmount.toFixed(2) }}</span> <!-- <span class="control-label">{{ orderInfo.pointAmount.toFixed(2) }}</span>-->
</el-col> <!-- </el-col>-->
<el-col :span="8"> <el-col :span="8">
<span class="head">配送费用</span> <span class="head">配送费用</span>
<span class="control-label">{{ orderInfo.deliveryFee ? orderInfo.deliveryFee.toFixed(2) : '-' }}</span> <span class="control-label">{{ orderInfo.deliveryFee ? orderInfo.deliveryFee.toFixed(2) : '-' }}</span>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="会员ID" prop="name"> <el-form-item label="会员ID" prop="name">
<el-input <el-input
v-model="queryParams.userId" v-model="queryParams.userId"
@ -199,8 +199,8 @@
</span> </span>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="handleView" icon="el-icon-view" v-hasPermi="['order:index']"></el-dropdown-item> <el-dropdown-item command="handleView" icon="el-icon-view" v-hasPermi="['order:index']"></el-dropdown-item>
<el-dropdown-item command="handlePrint" icon="el-icon-notebook-2" v-hasPermi="['order:index']"></el-dropdown-item> <!-- <el-dropdown-item command="handlePrint" icon="el-icon-notebook-2" v-hasPermi="['order:index']"></el-dropdown-item>-->
<el-dropdown-item v-if="scope.row.payStatus == 'B'" command="handleRefund" icon="el-icon-s-order" v-hasPermi="['order:index']">退</el-dropdown-item> <!-- <el-dropdown-item v-if="scope.row.payStatus == 'B'" command="handleRefund" icon="el-icon-s-order" v-hasPermi="['order:index']">退</el-dropdown-item>-->
<el-dropdown-item v-if="scope.row.payStatus != 'B'" command="handleDelete" icon="el-icon-remove" v-hasPermi="['order:delete']"></el-dropdown-item> <el-dropdown-item v-if="scope.row.payStatus != 'B'" command="handleDelete" icon="el-icon-remove" v-hasPermi="['order:delete']"></el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="会员ID" prop="userId"> <el-form-item label="会员ID" prop="userId">
<el-input <el-input
v-model="queryParams.userId" v-model="queryParams.userId"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="订单号" prop="name"> <el-form-item label="订单号" prop="name">
<el-input <el-input
v-model="queryParams.orderSn" v-model="queryParams.orderSn"
@ -66,7 +66,7 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="会员ID" align="center" prop="userId" /> <el-table-column label="会员ID" align="center" prop="userId" />
<el-table-column label="所属店铺" align="center" width="140" prop="storeInfo.name"> <el-table-column label="所属服务站" align="center" width="140" prop="storeInfo.name">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.storeInfo">{{ scope.row.storeInfo.name }}</span> <span v-if="scope.row.storeInfo">{{ scope.row.storeInfo.name }}</span>
<span v-else>-</span> <span v-else>-</span>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="备注信息" prop="description"> <el-form-item label="备注信息" prop="description">
<el-input <el-input
v-model="queryParams.description" v-model="queryParams.description"
@ -155,7 +155,7 @@
<span>{{ scope.row.typeName }}</span> <span>{{ scope.row.typeName }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属店铺" align="center" width="140" prop="storeInfo.name"> <el-table-column label="所属服务站" align="center" width="140" prop="storeInfo.name">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.storeInfo">{{ scope.row.storeInfo.name }}</span> <span v-if="scope.row.storeInfo">{{ scope.row.storeInfo.name }}</span>
<span v-else>-</span> <span v-else>-</span>
@ -209,7 +209,7 @@
<span>{{ scope.row.orderInfo.typeName }}</span> <span>{{ scope.row.orderInfo.typeName }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="所属店铺" align="center" width="140" prop="storeInfo.name"> <el-table-column label="所属服务站" align="center" width="140" prop="storeInfo.name">
<template slot-scope="scope"> <template slot-scope="scope">
<span v-if="scope.row.orderInfo.storeInfo">{{ scope.row.orderInfo.storeInfo.name }}</span> <span v-if="scope.row.orderInfo.storeInfo">{{ scope.row.orderInfo.storeInfo.name }}</span>
<span v-else>-</span> <span v-else>-</span>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="手机号" prop="mobile"> <el-form-item label="手机号" prop="mobile">
<el-input <el-input
v-model="queryParams.mobile" v-model="queryParams.mobile"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="模板代码" prop="code"> <el-form-item label="模板代码" prop="code">
<el-input <el-input
v-model="queryParams.code" v-model="queryParams.code"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="员工类别" prop="category"> <el-form-item label="员工类别" prop="category">
<el-select v-model="queryParams.category" clearable placeholder="请选择员工类别"> <el-select v-model="queryParams.category" clearable placeholder="请选择员工类别">
<el-option <el-option

@ -24,10 +24,10 @@
<div class="do-search"> <div class="do-search">
<el-button icon="el-icon-refresh" size="small" @click="reset"></el-button> <el-button icon="el-icon-refresh" size="small" @click="reset"></el-button>
<el-button type="primary" icon="el-icon-search" size="small" @click="getMainData"></el-button> <el-button type="primary" icon="el-icon-search" size="small" @click="getMainData"></el-button>
<span class="ex" @click="setDay(3)">3</span> <span class="ex" @click="setDay('today')"></span>
<span class="ex" @click="setDay(7)">7</span> <span class="ex" @click="setDay('week')"></span>
<span class="ex" @click="setDay(15)">15</span> <span class="ex" @click="setDay('month')"></span>
<span class="ex" @click="setDay(30)">30</span> <span class="ex" @click="setDay('year')"></span>
</div> </div>
</el-row> </el-row>
<el-row class="line"> <el-row class="line">
@ -186,11 +186,70 @@ export default {
}, },
// //
setDay(day) { setDay(day) {
this.startTime = getNumDayTime(day - 1);
this.endTime = getNumDayTime(0); let today= this.getNumDayTime(day);
this.startTime = today.startDate;
this.endTime = today.endDate;
// Testing the function
//console.log(this.getNumDayTime('today')); // Output: { startDate: "2024-06-11 00:00:00", endDate: "2024-06-11 23:59:59" }
//console.log(this.getNumDayTime('week')); // Output should be the current week's start and end dates
//console.log(this.getNumDayTime('month')); // Output should be the current month's start and end dates
//console.log(this.getNumDayTime('year')); // Output should be the current year's start and end dates
//this.startTime = getNumDayTime(day - 1);
//this.endTime = getNumDayTime(0);
debugger
this.getMainData(); this.getMainData();
this.getTopData(); this.getTopData();
}, },
getNumDayTime(rangeType) {
const now = new Date();
let startDate, endDate;
switch (rangeType) {
case 'today':
startDate = new Date(now.getFullYear(), now.getMonth(), now.getDate());
endDate = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59);
break;
case 'week':
// Assuming Monday is the first day of the week
let dayOfWeek = now.getDay();
let startOfWeek = now.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1); // Adjust for Sunday being 0
startDate = new Date(now.getFullYear(), now.getMonth(), startOfWeek);
endDate = new Date(now.getFullYear(), now.getMonth(), startOfWeek + 6, 23, 59, 59);
break;
case 'month':
startDate = new Date(now.getFullYear(), now.getMonth(), 1);
endDate = new Date(now.getFullYear(), now.getMonth() + 1, 0, 23, 59, 59);
break;
case 'year':
startDate = new Date(now.getFullYear(), 0, 1);
endDate = new Date(now.getFullYear(), 11, 31, 23, 59, 59);
break;
default:
throw new Error('Invalid range type');
}
// Format dates as strings
function formatDate(date) {
let year = date.getFullYear();
let month = String(date.getMonth() + 1).padStart(2, '0');
let day = String(date.getDate()).padStart(2, '0');
let hours = String(date.getHours()).padStart(2, '0');
let minutes = String(date.getMinutes()).padStart(2, '0');
let seconds = String(date.getSeconds()).padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
return {
startDate: formatDate(startDate),
endDate: formatDate(endDate)
};
},
// //
getMainData() { getMainData() {
this.loading = true; this.loading = true;

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" class="main-search" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" class="main-search" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="说明备注" prop="description"> <el-form-item label="说明备注" prop="description">
<el-input <el-input
v-model="queryParams.description" v-model="queryParams.description"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="服务站名称" prop="name"> <el-form-item label="服务站名称" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="关键字" prop="content"> <el-form-item label="关键字" prop="content">
<el-input <el-input
v-model="queryParams.title" v-model="queryParams.title"

@ -1,7 +1,7 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<h4 class="form-header h4">基本信息</h4> <h4 class="form-header h4">基本信息</h4>
<el-form ref="form" :model="form" label-width="80px"> <el-form ref="form" :model="form" label-width="83px">
<el-row> <el-row>
<el-col :span="8" :offset="2"> <el-col :span="8" :offset="2">
<el-form-item label="用户昵称" prop="nickName"> <el-form-item label="用户昵称" prop="nickName">

@ -3,7 +3,7 @@
<el-row :gutter="20"> <el-row :gutter="20">
<!--用户数据--> <!--用户数据-->
<el-col :span="24" :xs="24"> <el-col :span="24" :xs="24">
<el-form :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="用户名" prop="accountName"> <el-form-item label="用户名" prop="accountName">
<el-input <el-input
v-model="queryParams.accountName" v-model="queryParams.accountName"
@ -154,7 +154,7 @@
<!-- 添加或修改管理员配置对话框 --> <!-- 添加或修改管理员配置对话框 -->
<el-dialog :title="title" :visible.sync="open" class="common-dialog" width="600px" append-to-body> <el-dialog :title="title" :visible.sync="open" class="common-dialog" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="83px">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="用户名" prop="accountName"> <el-form-item label="用户名" prop="accountName">

@ -1,5 +1,5 @@
<template> <template>
<el-form ref="form" :model="user" :rules="rules" label-width="80px"> <el-form ref="form" :model="user" :rules="rules" label-width="83px">
<el-form-item label="旧密码" prop="oldPassword"> <el-form-item label="旧密码" prop="oldPassword">
<el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password/> <el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password/>
</el-form-item> </el-form-item>

@ -1,5 +1,5 @@
<template> <template>
<el-form ref="form" :model="user" :rules="rules" label-width="80px"> <el-form ref="form" :model="user" :rules="rules" label-width="83px">
<el-form-item label="用户昵称" prop="nickName"> <el-form-item label="用户昵称" prop="nickName">
<el-input v-model="user.nickName" maxlength="30" /> <el-input v-model="user.nickName" maxlength="30" />
</el-form-item> </el-form-item>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="参数名称" prop="configName"> <el-form-item label="参数名称" prop="configName">
<el-input <el-input
v-model="queryParams.configName" v-model="queryParams.configName"
@ -149,7 +149,7 @@
<!-- 添加或修改参数配置对话框 --> <!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="83px">
<el-form-item label="参数名称" prop="configName"> <el-form-item label="参数名称" prop="configName">
<el-input v-model="form.configName" placeholder="请输入参数名称" /> <el-input v-model="form.configName" placeholder="请输入参数名称" />
</el-form-item> </el-form-item>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<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="83px">
<el-form-item label="字典名称" prop="dictType"> <el-form-item label="字典名称" prop="dictType">
<el-select v-model="queryParams.dictType"> <el-select v-model="queryParams.dictType">
<el-option <el-option
@ -142,7 +142,7 @@
<!-- 添加或修改参数配置对话框 --> <!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="83px">
<el-form-item label="字典类型"> <el-form-item label="字典类型">
<el-input v-model="form.dictType" :disabled="true" /> <el-input v-model="form.dictType" :disabled="true" />
</el-form-item> </el-form-item>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<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="83px">
<el-form-item label="字典名称" prop="dictName"> <el-form-item label="字典名称" prop="dictName">
<el-input <el-input
v-model="queryParams.dictName" v-model="queryParams.dictName"
@ -159,7 +159,7 @@
<!-- 添加或修改参数配置对话框 --> <!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="83px">
<el-form-item label="字典名称" prop="dictName"> <el-form-item label="字典名称" prop="dictName">
<el-input v-model="form.dictName" placeholder="请输入字典名称" /> <el-input v-model="form.dictName" placeholder="请输入字典名称" />
</el-form-item> </el-form-item>

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="表名称" prop="title"> <el-form-item label="表名称" prop="title">
<el-input <el-input
v-model="queryParams.tableName" v-model="queryParams.tableName"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" class="main-search" size="small" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" class="main-search" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="操作内容" prop="title"> <el-form-item label="操作内容" prop="title">
<el-input <el-input
v-model="queryParams.keyword" v-model="queryParams.keyword"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<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="83px">
<el-form-item label="公告标题" prop="noticeTitle"> <el-form-item label="公告标题" prop="noticeTitle">
<el-input <el-input
v-model="queryParams.noticeTitle" v-model="queryParams.noticeTitle"
@ -124,7 +124,7 @@
<!-- 添加或修改公告对话框 --> <!-- 添加或修改公告对话框 -->
<el-dialog :title="title" :visible.sync="open" width="780px" append-to-body> <el-dialog :title="title" :visible.sync="open" width="780px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="83px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="公告标题" prop="noticeTitle"> <el-form-item label="公告标题" prop="noticeTitle">

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<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="83px">
<el-form-item label="表名称" prop="tableName"> <el-form-item label="表名称" prop="tableName">
<el-input <el-input
v-model="queryParams.tableName" v-model="queryParams.tableName"

@ -1,6 +1,6 @@
<template> <template>
<div class="app-container"> <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 :model="queryParams" class="main-search" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="83px">
<el-form-item label="等级名称" prop="name"> <el-form-item label="等级名称" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"

@ -11,7 +11,7 @@ const name = process.env.VUE_APP_TITLE || 'fuint会员营销管理系统' // 网
const port = process.env.port || process.env.npm_config_port || 81 // 端口 const port = process.env.port || process.env.npm_config_port || 81 // 端口
const serverUrl = process.env.VUE_APP_SERVER_URL || 'https://www.fuint.cn' const serverUrl = process.env.VUE_APP_SERVER_URL || 'https://www.huamar.com'
// vue.config.js 配置说明 // vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions //官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
@ -19,7 +19,7 @@ const serverUrl = process.env.VUE_APP_SERVER_URL || 'https://www.fuint.cn'
module.exports = { module.exports = {
// 部署生产环境和开发环境下的URL。 // 部署生产环境和开发环境下的URL。
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上 // 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.fuint.cn/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.fuint.cn/admin/,则设置 baseUrl 为 /admin/。 // 例如 https://www.huamar.com/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.huamar.com/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.VUE_APP_PUBLIC_PATH, publicPath: process.env.VUE_APP_PUBLIC_PATH,
// 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist // 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist
outputDir: 'dist', outputDir: 'dist',

@ -1,123 +1,3 @@
# fuint会员营销系统介绍 后台管理
xinaoadmin
#### 介绍 xinaoadmin
fuint会员营销系统是一套开源的实体店铺会员管理和营销系统。系统基于前后端分离的架构后端采用<b>Java SpringBoot</b> + <b>Mysql</b>,前端基于当前流行的<b>Uniapp</b><b>Element UI</b>支持小程序、h5。主要功能包含电子优惠券、储值卡、实体卡、集次卡计次卡、短信发送、储值卡、会员积分、会员等级权益体系支付收款等会员日常营销工具。本系统适用于各类实体店铺如零售超市、酒吧、酒店、汽车4S店、鲜花店、奶茶店、甜品店、餐饮店、农家乐等是实体店铺会员营销必备的一款利器。
以下是前台的页面展示:
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/g1.png?v=1" alt="前台页面1"></p>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/g2.png?v=2" alt="前台页面2"></p>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/g3.png?v=2" alt="前台页面3"></p>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/g4.png?v=1" alt="前台页面4"></p>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/g5.png?v=1" alt="前台页面4"></p>
fuint侧重于线下实体店的私域流量的运营同时提供会员端小程序和收银系统的线上线下统一渠道帮助商户降低获客成本。顾客通过扫码支付成为私域流量支付即可成为会员。积分和卡券功能建立起会员等级体系通过消息推送和短信营销方便触达用户。
<p>1、会员运营自动化商家通过日常活动设置如开卡礼设置沉睡唤醒等成为会员后自动给顾客送优惠券让顾客更有黏性提升会员运营效率。</p>
<p>2、打通收银系统和会员营销的壁垒代客下单收银支付即成为会员。</p>
<p>3、会员体系完整化积分兑换、积分转赠、会员等级权益、积分加速、买单折扣。</p>
<p>4、会员卡券齐全储值卡、电子券、优惠券、集次卡、计次卡、实体卡购买并兑换、会员充值、余额支付。</p>
<p>5、线上代客下单收银系统后台管理员可帮助临柜的会员下单、扫码支付。</p>
<p>6、支持手机短信、站内弹框消息、微信订阅消息支持包括发货消息、卡券到期提醒、活动提醒、会员到期提醒、积分余额变动提醒等消息。</p>
<p>小程序前端仓库https://gitee.com/fuint/fuint-uniapp</p>
<b>扫码小程序演示:</b><br>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/miniapp.png" alt="小程序演示"></p>
<br>
<b>官网演示地址:</b><br>
<p>
1、官网<a target="_blank" href="https://www.fuint.cn">https://www.fuint.cn</a> 点击 -> 系统演示演示账号fuint / 123456<br>
2、swagger接口文档<a target="_blank" href="https://www.fuint.cn/fuint-application/swagger-ui.html">https://www.fuint.cn/fuint-application/swagger-ui.html</a>
</p>
#### 软件架构
后端JAVA SpringBoot + MYSQL Mybatis Plus + Redis
前端采用基于Vue的Uniapp、Element UI前后端分离支持微信小程序、h5等
<p>后台截图:</p>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/login.png?v=fuint" alt="登录界面"></p>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/homeV2.png?v=fuint" alt="首页"></p>
前端使用技术<br>
2.1 Vue2<br>
2.2 Uniapp<br>
2.3 Element UI
2.4 Nodejs 14或16版本
后端使用技术<br>
1.1 SpringBoot 2.5<br>
1.2 Mybatis Plus<br>
1.3 Maven<br>
1.4 SpringSecurity<br>
1.5 Druid<br>
1.6 Slf4j<br>
1.7 Fastjson<br>
1.8 JWT<br>
1.9 Redis<br>
1.10 Quartz<br>
1.11 Mysql 5.7或8版<br>
1.12 Swagger UI<br>
#### 安装步骤
推荐软件环境版本jdk 1.8、mysql 5.8
1. 导入db目录下的数据库文件。
2. 修改config目录下的配置文件。
3. 将工程打包把jar包上传并执行。
<p>提示无后端和linux基础的朋友可以使用<b>宝塔</b>部署,非常方便简单。</p>
#### 前台使用说明
1. 会员登录,登录成功后可看到会员的卡券列表。
2. 卡券领取和购买,预存券的充值等。
3. 核销卡券,会员在前台出示二维码,管理员用微信扫一扫即可核销。
4. 卡券转赠,会员可将自己的卡券转赠给其他用户,输入对方的手机号即可完成转赠,获赠的好友会收到卡券赠送的短信。
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/create.png?v=fuint" alt="卡券创建界面"></p>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/member.png?v=fuint" alt="卡券创建界面"></p>
#### 后台使用
1. 会员管理:会员新增、导入、禁用等。
2. 内容管理:焦点图管理、文章管理等。
3. 卡券管理电子券管理为2层结构即电子券组和电子券。
4. 会员积分:会员积分管理,会员积分的操作,会员积分明细查看。
5. 转赠管理:卡券转赠记录。
6. 短信管理:短信营销功能,已发送的短信列表。
7. 系统配置:配置系统管理员权限等。
8. 店铺管理:支持多店铺模式。
9. 核销管理员:核销人员管理主要包含3个功能核销人员列表、核销人员审核、核销人员信息编辑。
10. 短信模板管理:可配置不同场景和业务的短信内容。
11. 卡券发放:单独发放、批量发放,发放成功后给会员发送短信通知
12. 操作日志主要针对电子券系统后台的一些关键操作进行日志记录,方便排查相关操作人的行为等问题。
13. 发券记录主要根据发券的实际操作情况来记录,分为单用户发券和批量发券,同时可针对该次发券记录进行作废操作。
14. 代客下单、收银功能。
<p>卡券营销:</p>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/coupon-list.png?v=fuint" alt="卡券列表"></p>
<p>收银代客下单功能:店员角色登录后台,从首页的“下单首页”菜单可进入代客收银下单界面,完成代客下单收银的流程。</p>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/cashier.png?v=fuint3.0.8" alt="收银界面"></p>
<p>发起结算:</p>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/cashier-1.png?v=fuint3.0.8" alt="收银结算"></p>
#### 开发计划
1. 完善的报表统计;
2. 分享助力、分享领券、分享获得积分;
3. 员工提成、分销功能;
4. 店铺结算功能;
5. 更多营销工具,比如签到等。
#### 允许使用范围:
1. 允许个人学习使用
2. 允许用于毕业设计、论文参考代码
3. 推荐Watch、Star项目获取项目第一时间更新同时也是对项目最好的支持
4. 希望大家多多支持原创软件
5. 请勿去除版权标签,要商用请购买源码授权(非常便宜),感谢理解!
不足和待完善之处请谅解!源码仅供学习交流,更多功能欢迎进群咨询讨论,或需安装帮助请联系我们(<b>麻烦先点star</b>)。<br>
官方网站https://www.fuint.cn <br>
开源不易,感谢支持!<br>
<b>作者wxfsq_better</b><br>
<p><img src="https://fuint-cn.oss-cn-shenzhen.aliyuncs.com/screenshots/qr.png" alt="公众号二维码"></p>
特别鸣谢:<br>
Mybaits Plus: https://github.com/baomidou/mybatis-plus<br>
Vue: https://github.com/vuejs/vue<br>
Element UI: https://element.eleme.cn

@ -7,7 +7,7 @@ spring.datasource.password=hmkj@2023
spring.session.store-type=redis spring.session.store-type=redis
spring.session.redis.namespace=fuint spring.session.redis.namespace=fuint
# Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA4\u4E3A0\uFF09 # Redis\u6570\u636E\u5E93\u7D22\u5F15\uFF08\u9ED8\u8BA4\u4E3A0\uFF09
spring.redis.database=0 spring.redis.database=0
# Redis\u670D\u52A1\u5668\u5730\u5740(\u751F\u4EA7) # Redis\u670D\u52A1\u5668\u5730\u5740(\u751F\u4EA7)
spring.redis.host=120.46.159.203 spring.redis.host=120.46.159.203
# Redis\u670D\u52A1\u5668\u8FDE\u63A5\u7AEF\u53E3 # Redis\u670D\u52A1\u5668\u8FDE\u63A5\u7AEF\u53E3
@ -17,11 +17,11 @@ spring.redis.password=a8EYUSoT8wHbuRkX
# \u8FDE\u63A5\u6C60\u6700\u5927\u8FDE\u63A5\u6570\uFF08\u4F7F\u7528\u8D1F\u503C\u8868\u793A\u6CA1\u6709\u9650\u5236\uFF09 # \u8FDE\u63A5\u6C60\u6700\u5927\u8FDE\u63A5\u6570\uFF08\u4F7F\u7528\u8D1F\u503C\u8868\u793A\u6CA1\u6709\u9650\u5236\uFF09
spring.redis.pool.max-active=-1 spring.redis.pool.max-active=-1
# \u8FDE\u63A5\u6C60\u6700\u5927\u963B\u585E\u7B49\u5F85\u65F6\u95F4\uFF08\u4F7F\u7528\u8D1F\u503C\u8868\u793A\u6CA1\u6709\u9650\u5236\uFF09 # \u8FDE\u63A5\u6C60\u6700\u5927\u963B\u585E\u7B49\u5F85\u65F6\u95F4\uFF08\u4F7F\u7528\u8D1F\u503C\u8868\u793A\u6CA1\u6709\u9650\u5236\uFF09
spring.redis.pool.max-wait=-1 spring.redis.pool.max-wait=-1
# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5 # \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5927\u7A7A\u95F2\u8FDE\u63A5
spring.redis.pool.max-idle=8 spring.redis.pool.max-idle=8
# \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5 # \u8FDE\u63A5\u6C60\u4E2D\u7684\u6700\u5C0F\u7A7A\u95F2\u8FDE\u63A5
spring.redis.pool.min-idle=0 spring.redis.pool.min-idle=0
# \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09 # \u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09
spring.redis.timeout=0 spring.redis.timeout=0
@ -29,7 +29,7 @@ spring.redis.timeout=0
system.name = fuint\u4F1A\u5458\u8425\u9500\u7BA1\u7406\u7CFB\u7EDF system.name = fuint\u4F1A\u5458\u8425\u9500\u7BA1\u7406\u7CFB\u7EDF
# \u524D\u7AEFh5\u5730\u5740 # \u524D\u7AEFh5\u5730\u5740
website.url=https://www.fuint.cn/h5/ website.url=https://www.huamar.com/h5/
# \u4E0A\u4F20\u56FE\u7247\u672C\u5730\u5730\u5740 # \u4E0A\u4F20\u56FE\u7247\u672C\u5730\u5730\u5740
images.root=D:/code/XinAoDTS/fuintBackend/fuint-application/target/classes images.root=D:/code/XinAoDTS/fuintBackend/fuint-application/target/classes
@ -107,7 +107,7 @@ alipay.appId = \u5E94\u7528\u7F16\u53F7
alipay.privateKey = \u5E94\u7528\u79C1\u94A5 alipay.privateKey = \u5E94\u7528\u79C1\u94A5
alipay.publicKey = \u652F\u4ED8\u5B9D\u516C\u94A5\uFF08\u901A\u8FC7\u5E94\u7528\u516C\u94A5\u4E0A\u4F20\u5230\u652F\u4ED8\u5B9D\u5F00\u653E\u5E73\u53F0\u6362\u53D6\u652F\u4ED8\u5B9D\u516C\u94A5\uFF09 alipay.publicKey = \u652F\u4ED8\u5B9D\u516C\u94A5\uFF08\u901A\u8FC7\u5E94\u7528\u516C\u94A5\u4E0A\u4F20\u5230\u652F\u4ED8\u5B9D\u5F00\u653E\u5E73\u53F0\u6362\u53D6\u652F\u4ED8\u5B9D\u516C\u94A5\uFF09
alipay.serverUrl=https://openapi.alipay.com/gateway.do alipay.serverUrl=https://openapi.alipay.com/gateway.do
alipay.domain=https://www.fuint.cn/fuint-application/clientApi/pay/aliPayCallback alipay.domain=https://www.huamar.com/fuint-application/clientApi/pay/aliPayCallback
################ \u5FAE\u4FE1\u8BA2\u9605\u6A21\u677F\u6D88\u606F\u914D\u7F6E ###################### ################ \u5FAE\u4FE1\u8BA2\u9605\u6A21\u677F\u6D88\u606F\u914D\u7F6E ######################
weixin.subMessage.orderCreated=[{'key':'time', 'name':'\u8BA2\u5355\u65F6\u95F4'},{'key':'orderSn', 'name':'\u8BA2\u5355\u53F7'},{'key':'remark', 'name':'\u5907\u6CE8\u4FE1\u606F'}] weixin.subMessage.orderCreated=[{'key':'time', 'name':'\u8BA2\u5355\u65F6\u95F4'},{'key':'orderSn', 'name':'\u8BA2\u5355\u53F7'},{'key':'remark', 'name':'\u5907\u6CE8\u4FE1\u606F'}]
@ -116,4 +116,4 @@ weixin.subMessage.couponExpire=[{'key':'name', 'name':'\u5361\u5238\u540D\u79F0'
weixin.subMessage.couponArrival=[{'key':'name', 'name':'\u5361\u5238\u540D\u79F0'},{'key':'amount', 'name':'\u91D1\u989D'},{'key':'tips', 'name':'\u6E29\u99A8\u63D0\u793A'}] weixin.subMessage.couponArrival=[{'key':'name', 'name':'\u5361\u5238\u540D\u79F0'},{'key':'amount', 'name':'\u91D1\u989D'},{'key':'tips', 'name':'\u6E29\u99A8\u63D0\u793A'}]
weixin.subMessage.balanceChange=[{'key':'amount', 'name':'\u53D8\u52A8\u91D1\u989D'},{'key':'time', 'name':'\u53D8\u52A8\u65F6\u95F4'},{'key':'tips', 'name':'\u6E29\u99A8\u63D0\u793A'}] weixin.subMessage.balanceChange=[{'key':'amount', 'name':'\u53D8\u52A8\u91D1\u989D'},{'key':'time', 'name':'\u53D8\u52A8\u65F6\u95F4'},{'key':'tips', 'name':'\u6E29\u99A8\u63D0\u793A'}]
weixin.subMessage.couponConfirm=[{'key':'name', 'name':'\u5361\u5238\u540D\u79F0'},{'key':'time', 'name':'\u6838\u9500\u65F6\u95F4'}] weixin.subMessage.couponConfirm=[{'key':'name', 'name':'\u5361\u5238\u540D\u79F0'},{'key':'time', 'name':'\u6838\u9500\u65F6\u95F4'}]
weixin.subMessage.pointChange=[{'key':'amount', 'name':'\u53D8\u52A8\u6570\u91CF'},{'key':'time', 'name':'\u53D8\u52A8\u65F6\u95F4'},{'key':'remark', 'name':'\u5907\u6CE8\u4FE1\u606F'}] weixin.subMessage.pointChange=[{'key':'amount', 'name':'\u53D8\u52A8\u6570\u91CF'},{'key':'time', 'name':'\u53D8\u52A8\u65F6\u95F4'},{'key':'remark', 'name':'\u5907\u6CE8\u4FE1\u606F'}]

@ -7,7 +7,7 @@ spring.datasource.password=root
spring.session.store-type=redis spring.session.store-type=redis
spring.session.redis.namespace=fuint spring.session.redis.namespace=fuint
# Redis数据库索引默认为0 # Redis数据库索引默认为0
spring.redis.database=0 spring.redis.database=0
# Redis服务器地址(生产) # Redis服务器地址(生产)
spring.redis.host=127.0.0.1 spring.redis.host=127.0.0.1
# Redis服务器连接端口 # Redis服务器连接端口
@ -17,11 +17,11 @@ spring.redis.password=
# 连接池最大连接数(使用负值表示没有限制) # 连接池最大连接数(使用负值表示没有限制)
spring.redis.pool.max-active=-1 spring.redis.pool.max-active=-1
# 连接池最大阻塞等待时间(使用负值表示没有限制) # 连接池最大阻塞等待时间(使用负值表示没有限制)
spring.redis.pool.max-wait=-1 spring.redis.pool.max-wait=-1
# 连接池中的最大空闲连接 # 连接池中的最大空闲连接
spring.redis.pool.max-idle=8 spring.redis.pool.max-idle=8
# 连接池中的最小空闲连接 # 连接池中的最小空闲连接
spring.redis.pool.min-idle=0 spring.redis.pool.min-idle=0
# 连接超时时间(毫秒) # 连接超时时间(毫秒)
spring.redis.timeout=0 spring.redis.timeout=0
@ -29,7 +29,7 @@ spring.redis.timeout=0
system.name = fuint会员营销管理系统 system.name = fuint会员营销管理系统
# 前端h5地址 # 前端h5地址
website.url=https://www.fuint.cn/h5/ website.url=https://www.huamar.com/h5/
# 上传图片本地地址 # 上传图片本地地址
images.root=/www/wwwroot/www.xxx.com images.root=/www/wwwroot/www.xxx.com
@ -89,14 +89,14 @@ wxpay.appSecret = 76a538bfa5b55a4564d5f2be5540
wxpay.mchId=1636980812 wxpay.mchId=1636980812
wxpay.apiV2=34354320201030y323e432342343 wxpay.apiV2=34354320201030y323e432342343
wxpay.certPath=/usr/local/fuint/cert/apiclient_cert.p12 wxpay.certPath=/usr/local/fuint/cert/apiclient_cert.p12
wxpay.domain=https://www.fuint.cn/fuint-application wxpay.domain=https://www.huamar.com/fuint-application
################## 支付宝支付相关配置 ###################### ################## 支付宝支付相关配置 ######################
alipay.appId = 应用编号 alipay.appId = 应用编号
alipay.privateKey = 应用私钥 alipay.privateKey = 应用私钥
alipay.publicKey = 支付宝公钥(通过应用公钥上传到支付宝开放平台换取支付宝公钥) alipay.publicKey = 支付宝公钥(通过应用公钥上传到支付宝开放平台换取支付宝公钥)
alipay.serverUrl=https://openapi.alipay.com/gateway.do alipay.serverUrl=https://openapi.alipay.com/gateway.do
alipay.domain=https://www.fuint.cn/fuint-application/clientApi/pay/aliPayCallback alipay.domain=https://www.huamar.com/fuint-application/clientApi/pay/aliPayCallback
################ 微信订阅模板消息配置 ###################### ################ 微信订阅模板消息配置 ######################
weixin.subMessage.orderCreated=[{'key':'time', 'name':'订单时间'},{'key':'orderSn', 'name':'订单号'},{'key':'remark', 'name':'备注信息'}] weixin.subMessage.orderCreated=[{'key':'time', 'name':'订单时间'},{'key':'orderSn', 'name':'订单号'},{'key':'remark', 'name':'备注信息'}]
@ -105,4 +105,4 @@ weixin.subMessage.couponExpire=[{'key':'name', 'name':'卡券名称'}, {'key':'e
weixin.subMessage.couponArrival=[{'key':'name', 'name':'卡券名称'},{'key':'amount', 'name':'金额'},{'key':'tips', 'name':'温馨提示'}] weixin.subMessage.couponArrival=[{'key':'name', 'name':'卡券名称'},{'key':'amount', 'name':'金额'},{'key':'tips', 'name':'温馨提示'}]
weixin.subMessage.balanceChange=[{'key':'amount', 'name':'变动金额'},{'key':'time', 'name':'变动时间'},{'key':'tips', 'name':'温馨提示'}] weixin.subMessage.balanceChange=[{'key':'amount', 'name':'变动金额'},{'key':'time', 'name':'变动时间'},{'key':'tips', 'name':'温馨提示'}]
weixin.subMessage.couponConfirm=[{'key':'name', 'name':'卡券名称'},{'key':'time', 'name':'核销时间'}] weixin.subMessage.couponConfirm=[{'key':'name', 'name':'卡券名称'},{'key':'time', 'name':'核销时间'}]
weixin.subMessage.pointChange=[{'key':'amount', 'name':'变动数量'},{'key':'time', 'name':'变动时间'},{'key':'remark', 'name':'备注信息'}] weixin.subMessage.pointChange=[{'key':'amount', 'name':'变动数量'},{'key':'time', 'name':'变动时间'},{'key':'remark', 'name':'备注信息'}]

File diff suppressed because one or more lines are too long

@ -48,7 +48,7 @@ CREATE TABLE `mt_article` (
/*Data for the table `mt_article` */ /*Data for the table `mt_article` */
insert into `mt_article`(`ID`,`STORE_ID`,`MERCHANT_ID`,`TITLE`,`BRIEF`,`URL`,`IMAGE`,`DESCRIPTION`,`CLICK`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`SORT`,`STATUS`) values insert into `mt_article`(`ID`,`STORE_ID`,`MERCHANT_ID`,`TITLE`,`BRIEF`,`URL`,`IMAGE`,`DESCRIPTION`,`CLICK`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`SORT`,`STATUS`) values
(3,7,1,'“美食荒漠”? 温州:不存在的!','吃妈妈做的菜?或者足不出户,优哉游哉?不管在哪,假期的意义,绝对少不了一个“吃”。周刊君特别推出“五一就要吃”评论系列,小伙伴们会来讲讲,他们各自心心念念的家乡美食。也欢迎大家留言参与,看看哪个更馋人。','','/static/defaultImage/banner-2.png?v=1','<h1>oi五一假期终于来了你在哪是去看人山人海搞“特种兵式的旅行”还是回老家吃妈妈做的菜或者足不出户优哉游哉不管在哪假期的意义绝对少不了一个“吃”。周刊君特别推出“五一就要吃”评论系列小伙伴们会来讲讲他们各自心心念念的家乡美食。也欢迎大家留言参与看看哪个更馋人。  我的家乡是一座山城相拥、海陆交融的山水之城。</h1><p><br></p><p>  诗画山水,温润之州,是为温州。</p><p><img src=\"https://fuint-application.oss-cn-shenzhen.aliyuncs.com/uploads/20230512/a8468b3bdf35448ca2f528535077306a.png\"></p><p><br></p><p>  这里有“欲写龙湫难下笔,不游雁荡是虚生”中国东南第一山雁荡山,有山水诗的发祥地楠溪江,有山与海的尽头、东海明珠南麂岛,更有“走遍千山万水、想尽千方百计、说尽千言万语、吃尽千辛万苦”的温州精神。</p><p><br></p><p>  温州古为瓯越大地,也称东瓯,故这里的食物被称为“瓯菜”。</p><p><br></p><p>  这里山川湖海汇聚,美食自然丰富多样。山里的、海里的、湖里的、江里的、溪里的,各有各的滋味,所谓一方水土一方美食,无外乎如此。</p><p><br></p><p>  很多人对温州美食的初印象,来自电视剧《温州一家人》,这部由李立群、殷桃、张译主演的热播剧,讲述了温州一个普通家庭的草根创业奋斗史。</p><p><br></p><p><br></p><h1>  在这部剧中,温州的美食伴随着市井烟火气,令人垂涎欲滴。但现实却是,或许是温州人对于这些美食太过习以为常,又或许是温州于经商一途上声名太响,让人潜意识里忽略了这里的吃食,误以为是“美食荒漠”,并不为太多人所熟知,以至于忽略了这里蕴藏着一座城的美食。</h1><p><br></p><p>  至少来温州旅游的人,很少是冲着美食来的。</p>',105,'2023-05-12 09:12:16','2023-06-20 17:14:24','fuint',0,'A'), (3,7,1,'“美食荒漠”? 温州:不存在的!','吃妈妈做的菜?或者足不出户,优哉游哉?不管在哪,假期的意义,绝对少不了一个“吃”。周刊君特别推出“五一就要吃”评论系列,小伙伴们会来讲讲,他们各自心心念念的家乡美食。也欢迎大家留言参与,看看哪个更馋人。','','/static/defaultImage/banner-2.png?v=1','<h1>oi五一假期终于来了你在哪是去看人山人海搞“特种兵式的旅行”还是回老家吃妈妈做的菜或者足不出户优哉游哉不管在哪假期的意义绝对少不了一个“吃”。周刊君特别推出“五一就要吃”评论系列小伙伴们会来讲讲他们各自心心念念的家乡美食。也欢迎大家留言参与看看哪个更馋人。  我的家乡是一座山城相拥、海陆交融的山水之城。</h1><p><br></p><p>  诗画山水,温润之州,是为温州。</p><p><img src=\"https://fuint-application.oss-cn-shenzhen.aliyuncs.com/uploads/20230512/a8468b3bdf35448ca2f528535077306a.png\"></p><p><br></p><p>  这里有“欲写龙湫难下笔,不游雁荡是虚生”中国东南第一山雁荡山,有山水诗的发祥地楠溪江,有山与海的尽头、东海明珠南麂岛,更有“走遍千山万水、想尽千方百计、说尽千言万语、吃尽千辛万苦”的温州精神。</p><p><br></p><p>  温州古为瓯越大地,也称东瓯,故这里的食物被称为“瓯菜”。</p><p><br></p><p>  这里山川湖海汇聚,美食自然丰富多样。山里的、海里的、湖里的、江里的、溪里的,各有各的滋味,所谓一方水土一方美食,无外乎如此。</p><p><br></p><p>  很多人对温州美食的初印象,来自电视剧《温州一家人》,这部由李立群、殷桃、张译主演的热播剧,讲述了温州一个普通家庭的草根创业奋斗史。</p><p><br></p><p><br></p><h1>  在这部剧中,温州的美食伴随着市井烟火气,令人垂涎欲滴。但现实却是,或许是温州人对于这些美食太过习以为常,又或许是温州于经商一途上声名太响,让人潜意识里忽略了这里的吃食,误以为是“美食荒漠”,并不为太多人所熟知,以至于忽略了这里蕴藏着一座城的美食。</h1><p><br></p><p>  至少来温州旅游的人,很少是冲着美食来的。</p>',105,'2023-05-12 09:12:16','2023-06-20 17:14:24','fuint',0,'A'),
(5,1,1,'又到一年最佳赏樱季','又到一年最佳赏樱季,一直想去亲眼目睹一次被誉为“世界三大赏樱胜地”之一 的无锡鼋头渚,正值无锡太湖鼋头渚国际樱花节 3万多株、100多个品种的樱花树着实让人期待。','','/static/defaultImage/banner-1.png?v=1','<p><span class=\"ql-size-large\">又到一年最佳赏樱季,一直想去亲眼目睹一次被誉为“世界三大赏樱胜地”之一 的无锡鼋头渚,正值无锡太湖鼋头渚国际樱花节 3万多株、100多个品种的樱花树着实让人期待。</span></p><p><img src=\"https://fuint-application.oss-cn-shenzhen.aliyuncs.com/uploads/20230512/fd8879a1c6034059bdb1794d6218cf5b.png\"></p><p>无锡太湖鼋头渚国际樱花节将从3月1日持续至5月3日这期间来可以看到早樱、中樱、晚樱等各品种的樱花独揽芳华晨赏、日赏、暮赏、夜赏能看到千姿百态的樱花。</p><p><br></p><p>走在鼋头渚的小道上,空气里都是芬芳的樱花味道,漫山遍野的樱花,粉白、玫红、粉红色……不同的颜色交叠,层次感丰富,浪漫迷人~</p><p><br></p><p>我喜欢这里樱花盛开的时候,建筑的设计和樱花的飘落,虽然去的那天是阴天,但是却也别有一番诗情画意,小桥流水,樱花古韵,水波带着花影泛起阵阵涟漪,随手一拍就会有一种中式浪漫的感觉,沉醉在江南意境中,尤其穿上汉服拍照,绝美!</p>',88,'2023-05-12 18:29:01','2023-07-05 15:05:37','fuint',1,'A'); (5,1,1,'又到一年最佳赏樱季','又到一年最佳赏樱季,一直想去亲眼目睹一次被誉为“世界三大赏樱胜地”之一 的无锡鼋头渚,正值无锡太湖鼋头渚国际樱花节 3万多株、100多个品种的樱花树着实让人期待。','','/static/defaultImage/banner-1.png?v=1','<p><span class=\"ql-size-large\">又到一年最佳赏樱季,一直想去亲眼目睹一次被誉为“世界三大赏樱胜地”之一 的无锡鼋头渚,正值无锡太湖鼋头渚国际樱花节 3万多株、100多个品种的樱花树着实让人期待。</span></p><p><img src=\"https://fuint-application.oss-cn-shenzhen.aliyuncs.com/uploads/20230512/fd8879a1c6034059bdb1794d6218cf5b.png\"></p><p>无锡太湖鼋头渚国际樱花节将从3月1日持续至5月3日这期间来可以看到早樱、中樱、晚樱等各品种的樱花独揽芳华晨赏、日赏、暮赏、夜赏能看到千姿百态的樱花。</p><p><br></p><p>走在鼋头渚的小道上,空气里都是芬芳的樱花味道,漫山遍野的樱花,粉白、玫红、粉红色……不同的颜色交叠,层次感丰富,浪漫迷人~</p><p><br></p><p>我喜欢这里樱花盛开的时候,建筑的设计和樱花的飘落,虽然去的那天是阴天,但是却也别有一番诗情画意,小桥流水,樱花古韵,水波带着花影泛起阵阵涟漪,随手一拍就会有一种中式浪漫的感觉,沉醉在江南意境中,尤其穿上汉服拍照,绝美!</p>',88,'2023-05-12 18:29:01','2023-07-05 15:05:37','fuint',1,'A');
@ -74,7 +74,7 @@ CREATE TABLE `mt_balance` (
/*Data for the table `mt_balance` */ /*Data for the table `mt_balance` */
insert into `mt_balance`(`ID`,`MERCHANT_ID`,`STORE_ID`,`MOBILE`,`USER_ID`,`ORDER_SN`,`AMOUNT`,`CREATE_TIME`,`UPDATE_TIME`,`DESCRIPTION`,`OPERATOR`,`STATUS`) values insert into `mt_balance`(`ID`,`MERCHANT_ID`,`STORE_ID`,`MOBILE`,`USER_ID`,`ORDER_SN`,`AMOUNT`,`CREATE_TIME`,`UPDATE_TIME`,`DESCRIPTION`,`OPERATOR`,`STATUS`) values
(1,1,0,'18976679980',163,'202309082201183531567',-72.08,'2023-09-08 22:01:18','2023-09-08 22:01:18','','','A'), (1,1,0,'18976679980',163,'202309082201183531567',-72.08,'2023-09-08 22:01:18','2023-09-08 22:01:18','','','A'),
(2,1,0,'18976679980',163,'202309082204254176805',-72.08,'2023-09-08 22:04:25','2023-09-08 22:04:25','','','A'), (2,1,0,'18976679980',163,'202309082204254176805',-72.08,'2023-09-08 22:04:25','2023-09-08 22:04:25','','','A'),
(4,0,3,'18976679980',163,'202309201800308947963',-4.04,'2023-09-20 18:00:31','2023-09-20 18:00:31','','','A'), (4,0,3,'18976679980',163,'202309201800308947963',-4.04,'2023-09-20 18:00:31','2023-09-20 18:00:31','','','A'),
@ -102,7 +102,7 @@ CREATE TABLE `mt_banner` (
/*Data for the table `mt_banner` */ /*Data for the table `mt_banner` */
insert into `mt_banner`(`ID`,`TITLE`,`MERCHANT_ID`,`STORE_ID`,`URL`,`IMAGE`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`SORT`,`STATUS`) values insert into `mt_banner`(`ID`,`TITLE`,`MERCHANT_ID`,`STORE_ID`,`URL`,`IMAGE`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`SORT`,`STATUS`) values
(1,'活动',1,0,'pages/user/index','/static/defaultImage/banner-2.png?v=1','','2021-04-14 09:38:20','2023-08-01 07:52:08','fuint',1,'A'), (1,'活动',1,0,'pages/user/index','/static/defaultImage/banner-2.png?v=1','','2021-04-14 09:38:20','2023-08-01 07:52:08','fuint',1,'A'),
(2,'活动',2,0,'pages/category/index','/static/defaultImage/banner-1.png?v=1','','2021-04-14 09:38:36','2023-07-25 17:37:40','fuint',1,'A'); (2,'活动',2,0,'pages/category/index','/static/defaultImage/banner-1.png?v=1','','2021-04-14 09:38:36','2023-07-25 17:37:40','fuint',1,'A');
@ -128,7 +128,7 @@ CREATE TABLE `mt_book` (
/*Data for the table `mt_book` */ /*Data for the table `mt_book` */
insert into `mt_book`(`ID`,`MERCHANT_ID`,`STORE_ID`,`GOODS_ID`,`SERVICE_DATES`,`SERVICE_TIMES`,`SERVICE_STAFF_IDS`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`STATUS`) values insert into `mt_book`(`ID`,`MERCHANT_ID`,`STORE_ID`,`GOODS_ID`,`SERVICE_DATES`,`SERVICE_TIMES`,`SERVICE_STAFF_IDS`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`STATUS`) values
(1,1,1,1,'2023-02-04_2023-02-08,2023-03-04_2023-05-08','9:00-11:00,14:00-16:00,20:00-22:00','1,2,4,5,6,7,10','针灸预约','2023-02-14 11:45:54','2023-02-15 11:45:57','','A'); (1,1,1,1,'2023-02-04_2023-02-08,2023-03-04_2023-05-08','9:00-11:00,14:00-16:00,20:00-22:00','1,2,4,5,6,7,10','针灸预约','2023-02-14 11:45:54','2023-02-15 11:45:57','','A');
/*Table structure for table `mt_book_item` */ /*Table structure for table `mt_book_item` */
@ -476,7 +476,7 @@ CREATE TABLE `mt_give` (
/*Data for the table `mt_give` */ /*Data for the table `mt_give` */
insert into `mt_give`(`ID`,`USER_ID`,`MERCHANT_ID`,`STORE_ID`,`GIVE_USER_ID`,`MOBILE`,`USER_MOBILE`,`GROUP_IDS`,`GROUP_NAMES`,`COUPON_IDS`,`COUPON_NAMES`,`NUM`,`MONEY`,`NOTE`,`MESSAGE`,`CREATE_TIME`,`UPDATE_TIME`,`STATUS`) values insert into `mt_give`(`ID`,`USER_ID`,`MERCHANT_ID`,`STORE_ID`,`GIVE_USER_ID`,`MOBILE`,`USER_MOBILE`,`GROUP_IDS`,`GROUP_NAMES`,`COUPON_IDS`,`COUPON_NAMES`,`NUM`,`MONEY`,`NOTE`,`MESSAGE`,`CREATE_TIME`,`UPDATE_TIME`,`STATUS`) values
(1,163,1,1,693,'18976679980','18888884444','4','2021年中秋','4','酬宾早餐优惠券',1,50.00,'','转赠一张优惠券给你','2022-02-11 13:43:47','2022-02-11 13:43:47','A'), (1,163,1,1,693,'18976679980','18888884444','4','2021年中秋','4','酬宾早餐优惠券',1,50.00,'','转赠一张优惠券给你','2022-02-11 13:43:47','2022-02-11 13:43:47','A'),
(2,772,1,1,772,'18175702219','18175702219','12','26656','30','tanyi',1,10.00,'','转赠一张优惠券给你','2022-03-06 20:19:18','2022-03-06 20:19:18','A'), (2,772,1,1,772,'18175702219','18175702219','12','26656','30','tanyi',1,10.00,'','转赠一张优惠券给你','2022-03-06 20:19:18','2022-03-06 20:19:18','A'),
(3,921,1,1,921,'13882064775','13882064775','6','十月份活动','14','优惠券10元',1,100.00,'','转赠一张优惠券给你','2022-04-13 19:46:41','2022-04-13 19:46:41','A'), (3,921,1,1,921,'13882064775','13882064775','6','十月份活动','14','优惠券10元',1,100.00,'','转赠一张优惠券给你','2022-04-13 19:46:41','2022-04-13 19:46:41','A'),
@ -549,7 +549,7 @@ CREATE TABLE `mt_give_item` (
/*Data for the table `mt_give_item` */ /*Data for the table `mt_give_item` */
insert into `mt_give_item`(`ID`,`GIVE_ID`,`USER_COUPON_ID`,`CREATE_TIME`,`UPDATE_TIME`,`STATUS`) values insert into `mt_give_item`(`ID`,`GIVE_ID`,`USER_COUPON_ID`,`CREATE_TIME`,`UPDATE_TIME`,`STATUS`) values
(1,1,613,'2022-02-11 13:43:47','2022-02-11 13:43:47','A'), (1,1,613,'2022-02-11 13:43:47','2022-02-11 13:43:47','A'),
(2,2,1658,'2022-03-06 20:19:18','2022-03-06 20:19:18','A'), (2,2,1658,'2022-03-06 20:19:18','2022-03-06 20:19:18','A'),
(3,3,122298,'2022-04-13 19:46:41','2022-04-13 19:46:41','A'), (3,3,122298,'2022-04-13 19:46:41','2022-04-13 19:46:41','A'),
@ -641,13 +641,13 @@ CREATE TABLE `mt_goods` (
/*Data for the table `mt_goods` */ /*Data for the table `mt_goods` */
insert into `mt_goods`(`ID`,`TYPE`,`MERCHANT_ID`,`STORE_ID`,`NAME`,`CATE_ID`,`GOODS_NO`,`IS_SINGLE_SPEC`,`LOGO`,`IMAGES`,`PRICE`,`LINE_PRICE`,`STOCK`,`WEIGHT`,`COUPON_IDS`,`SERVICE_TIME`,`INIT_SALE`,`SALE_POINT`,`CAN_USE_POINT`,`IS_MEMBER_DISCOUNT`,`SORT`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`STATUS`) values insert into `mt_goods`(`ID`,`TYPE`,`MERCHANT_ID`,`STORE_ID`,`NAME`,`CATE_ID`,`GOODS_NO`,`IS_SINGLE_SPEC`,`LOGO`,`IMAGES`,`PRICE`,`LINE_PRICE`,`STOCK`,`WEIGHT`,`COUPON_IDS`,`SERVICE_TIME`,`INIT_SALE`,`SALE_POINT`,`CAN_USE_POINT`,`IS_MEMBER_DISCOUNT`,`SORT`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`STATUS`) values
(1,'product',1,0,'韩式防水围裙',1,'9983242340','N','/static/uploadImages/20220110/4c90921a7fc34c97b0f62cebf314d2bb.jpg','[\"/static/uploadImages/20220110/4c90921a7fc34c97b0f62cebf314d2bb.jpg\",\"/static/uploadImages/20220110/9b64b3d65fa04296b62de186899f24ea.jpg\",\"/static/uploadImages/20220110/ff4809f7a17d4142ace9bc287aab105a.jpg\"]',88.00,99.00,90013,1.00,'',0,747,'超级防水','Y','Y',1,'<p>1234444</p>','2021-10-13 13:56:04','2023-07-31 19:51:21','fuint','A'), (1,'product',1,0,'韩式防水围裙',1,'9983242340','N','/static/uploadImages/20220110/4c90921a7fc34c97b0f62cebf314d2bb.jpg','[\"/static/uploadImages/20220110/4c90921a7fc34c97b0f62cebf314d2bb.jpg\",\"/static/uploadImages/20220110/9b64b3d65fa04296b62de186899f24ea.jpg\",\"/static/uploadImages/20220110/ff4809f7a17d4142ace9bc287aab105a.jpg\"]',88.00,99.00,90013,1.00,'',0,747,'超级防水','Y','Y',1,'<p>1234444</p>','2021-10-13 13:56:04','2023-07-31 19:51:21','fuint','A'),
(2,'product',1,0,'小清新水果刀三件套',4,'6975486820418','Y','/static/uploadImages/20220110/6b67b70f35734ff28a03aa3d82ac96a0.jpg','[\"/static/uploadImages/20220110/6b67b70f35734ff28a03aa3d82ac96a0.jpg\"]',0.01,20.00,1946,2.00,'',0,33,'小清新','Y','N',1,'<h2>123</h2>','2021-10-13 14:19:45','2023-07-31 20:01:44','fuint','A'), (2,'product',1,0,'小清新水果刀三件套',4,'6975486820418','Y','/static/uploadImages/20220110/6b67b70f35734ff28a03aa3d82ac96a0.jpg','[\"/static/uploadImages/20220110/6b67b70f35734ff28a03aa3d82ac96a0.jpg\"]',0.01,20.00,1946,2.00,'',0,33,'小清新','Y','N',1,'<h2>123</h2>','2021-10-13 14:19:45','2023-07-31 20:01:44','fuint','A'),
(3,'product',1,0,'可爱旅行大号牙刷杯两个装',3,'92342342342','N','/static/uploadImages/20220110/56e306c812f240f89c0ed96ab8f94ad0.jpg','[\"/static/uploadImages/20220110/56e306c812f240f89c0ed96ab8f94ad0.jpg\",\"/static/uploadImages/20220110/56e306c812f240f89c0ed96ab8f94ad0.jpg\",\"/static/uploadImages/20220110/d39f84568b9746f89d9f6a368b8067c4.jpg\"]',99.00,120.00,6000,1.00,'',0,1532,'超级实惠','Y','Y',1,'<p><br></p>','2021-10-14 01:08:45','2023-09-22 13:38:42','fuint','A'), (3,'product',1,0,'可爱旅行大号牙刷杯两个装',3,'92342342342','N','/static/uploadImages/20220110/56e306c812f240f89c0ed96ab8f94ad0.jpg','[\"/static/uploadImages/20220110/56e306c812f240f89c0ed96ab8f94ad0.jpg\",\"/static/uploadImages/20220110/56e306c812f240f89c0ed96ab8f94ad0.jpg\",\"/static/uploadImages/20220110/d39f84568b9746f89d9f6a368b8067c4.jpg\"]',99.00,120.00,6000,1.00,'',0,1532,'超级实惠','Y','Y',1,'<p><br></p>','2021-10-14 01:08:45','2023-09-22 13:38:42','fuint','A'),
(4,'product',1,0,'筷子便携餐盒3件套',1,'6914068026176','N','/static/uploadImages/20220110/31cbf7ad0ef442a4b10dcefc24db0662.jpg','[\"/static/uploadImages/20220110/31cbf7ad0ef442a4b10dcefc24db0662.jpg\"]',80.00,99.00,4010,1.00,'',0,1325,'一体成型','Y','N',1,'<p>测试商品</p>','2021-10-14 05:46:23','2023-07-28 15:13:50','fuint','A'), (4,'product',1,0,'筷子便携餐盒3件套',1,'6914068026176','N','/static/uploadImages/20220110/31cbf7ad0ef442a4b10dcefc24db0662.jpg','[\"/static/uploadImages/20220110/31cbf7ad0ef442a4b10dcefc24db0662.jpg\"]',80.00,99.00,4010,1.00,'',0,1325,'一体成型','Y','N',1,'<p>测试商品</p>','2021-10-14 05:46:23','2023-07-28 15:13:50','fuint','A'),
(5,'product',1,0,'简壳 一拖三可收纳伸缩充电线',2,'6922577729501','N','/static/uploadImages/20220110/856dbc96197e4782b4febb7a6e671bcb.jpg','[\"/static/uploadImages/20220110/856dbc96197e4782b4febb7a6e671bcb.jpg\"]',0.10,100.00,3877,0.00,'',0,1168,'可伸缩','Y','Y',1,'<p><br></p>','2021-10-14 05:47:31','2023-07-24 19:00:45','fuint','A'), (5,'product',1,0,'简壳 一拖三可收纳伸缩充电线',2,'6922577729501','N','/static/uploadImages/20220110/856dbc96197e4782b4febb7a6e671bcb.jpg','[\"/static/uploadImages/20220110/856dbc96197e4782b4febb7a6e671bcb.jpg\"]',0.10,100.00,3877,0.00,'',0,1168,'可伸缩','Y','Y',1,'<p><br></p>','2021-10-14 05:47:31','2023-07-24 19:00:45','fuint','A'),
(6,'product',1,0,'抽绳垃圾袋16只*4卷',1,'6975486820418','Y','/static/uploadImages/20220110/6083071182cd48afa6c2b9e23f181832.jpg','[\"/static/uploadImages/20220110/6083071182cd48afa6c2b9e23f181832.jpg\",\"/static/uploadImages/20220110/ee5c67ed338442fc90e5c647ccbfd381.jpg\"]',18.00,20.00,109528,1.00,'',11,4209,'厨房必备小帮手','Y','Y',0,'<p><img src=\"https://www.fuint.cn/fuint-application/static/uploadImages/20220110/6083071182cd48afa6c2b9e23f181832.jpg\"></p><p><img src=\"https://www.fuint.cn/fuint-application/static/uploadImages/20220110/ee5c67ed338442fc90e5c647ccbfd381.jpg\"></p>','2021-10-14 05:48:43','2023-07-31 20:00:49','fuint','A'); (6,'product',1,0,'抽绳垃圾袋16只*4卷',1,'6975486820418','Y','/static/uploadImages/20220110/6083071182cd48afa6c2b9e23f181832.jpg','[\"/static/uploadImages/20220110/6083071182cd48afa6c2b9e23f181832.jpg\",\"/static/uploadImages/20220110/ee5c67ed338442fc90e5c647ccbfd381.jpg\"]',18.00,20.00,109528,1.00,'',11,4209,'厨房必备小帮手','Y','Y',0,'<p><img src=\"https://www.huamar.com/fuint-application/static/uploadImages/20220110/6083071182cd48afa6c2b9e23f181832.jpg\"></p><p><img src=\"https://www.huamar.com/fuint-application/static/uploadImages/20220110/ee5c67ed338442fc90e5c647ccbfd381.jpg\"></p>','2021-10-14 05:48:43','2023-07-31 20:00:49','fuint','A');
/*Table structure for table `mt_goods_cate` */ /*Table structure for table `mt_goods_cate` */
@ -670,7 +670,7 @@ CREATE TABLE `mt_goods_cate` (
/*Data for the table `mt_goods_cate` */ /*Data for the table `mt_goods_cate` */
insert into `mt_goods_cate`(`ID`,`MERCHANT_ID`,`STORE_ID`,`NAME`,`LOGO`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`SORT`,`STATUS`) values insert into `mt_goods_cate`(`ID`,`MERCHANT_ID`,`STORE_ID`,`NAME`,`LOGO`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`SORT`,`STATUS`) values
(1,1,0,'生活用品','/static/defaultImage/life.png','1234','2021-10-09 06:27:11','2023-07-24 23:30:10','fuint',1,'A'), (1,1,0,'生活用品','/static/defaultImage/life.png','1234','2021-10-09 06:27:11','2023-07-24 23:30:10','fuint',1,'A'),
(2,1,0,'办公用品','/static/defaultImage/office.png','','2021-10-09 06:27:11','2023-07-21 18:47:52','fuint',3,'A'), (2,1,0,'办公用品','/static/defaultImage/office.png','','2021-10-09 06:27:11','2023-07-21 18:47:52','fuint',3,'A'),
(3,1,0,'好物推荐','/static/defaultImage/love.png','好物推荐','2021-10-09 06:27:11','2023-07-24 19:13:13','fuint',1,'A'), (3,1,0,'好物推荐','/static/defaultImage/love.png','好物推荐','2021-10-09 06:27:11','2023-07-24 19:13:13','fuint',1,'A'),
@ -698,7 +698,7 @@ CREATE TABLE `mt_goods_sku` (
/*Data for the table `mt_goods_sku` */ /*Data for the table `mt_goods_sku` */
insert into `mt_goods_sku`(`ID`,`SKU_NO`,`LOGO`,`GOODS_ID`,`SPEC_IDS`,`STOCK`,`PRICE`,`LINE_PRICE`,`WEIGHT`,`STATUS`) values insert into `mt_goods_sku`(`ID`,`SKU_NO`,`LOGO`,`GOODS_ID`,`SPEC_IDS`,`STOCK`,`PRICE`,`LINE_PRICE`,`WEIGHT`,`STATUS`) values
(142,'','',27,'46',0,0.00,0.00,0.00,'A'), (142,'','',27,'46',0,0.00,0.00,0.00,'A'),
(143,'','',27,'47',0,0.00,0.00,0.00,'A'), (143,'','',27,'47',0,0.00,0.00,0.00,'A'),
(145,'','',37,'56',51,200.00,300.00,1.20,'A'), (145,'','',37,'56',51,200.00,300.00,1.20,'A'),
@ -845,7 +845,7 @@ CREATE TABLE `mt_goods_spec` (
/*Data for the table `mt_goods_spec` */ /*Data for the table `mt_goods_spec` */
insert into `mt_goods_spec`(`ID`,`GOODS_ID`,`NAME`,`VALUE`,`STATUS`) values insert into `mt_goods_spec`(`ID`,`GOODS_ID`,`NAME`,`VALUE`,`STATUS`) values
(1,6,'厚度','正常','D'), (1,6,'厚度','正常','D'),
(2,6,'厚度','加厚','D'), (2,6,'厚度','加厚','D'),
(3,6,'糖分','黑色','D'), (3,6,'糖分','黑色','D'),
@ -1302,7 +1302,7 @@ CREATE TABLE `mt_merchant` (
/*Data for the table `mt_merchant` */ /*Data for the table `mt_merchant` */
insert into `mt_merchant`(`ID`,`TYPE`,`LOGO`,`NO`,`NAME`,`CONTACT`,`PHONE`,`ADDRESS`,`WX_APP_ID`,`WX_APP_SECRET`,`WX_OFFICIAL_APP_ID`,`WX_OFFICIAL_APP_SECRET`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`STATUS`,`OPERATOR`) values insert into `mt_merchant`(`ID`,`TYPE`,`LOGO`,`NO`,`NAME`,`CONTACT`,`PHONE`,`ADDRESS`,`WX_APP_ID`,`WX_APP_SECRET`,`WX_OFFICIAL_APP_ID`,`WX_OFFICIAL_APP_SECRET`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`STATUS`,`OPERATOR`) values
(1,'','/uploads/20230804/8e5893378bec4b8ab3cabb77e15162d2.PNG','10001','小隅安商行','安安','18976679980','海口市永万路7号','','','','','默认','2023-08-01 12:03:55','2023-08-04 09:55:37','A','fuint'), (1,'','/uploads/20230804/8e5893378bec4b8ab3cabb77e15162d2.PNG','10001','小隅安商行','安安','18976679980','海口市永万路7号','','','','','默认','2023-08-01 12:03:55','2023-08-04 09:55:37','A','fuint'),
(2,'','/uploads/20230804/11f9b3135db043488e4b9bdcadda9f56.png','10002','延禾技术','FSQ','18976679980','海口市国兴大道100号','','','','','测试','2023-08-01 14:04:14','2023-08-04 09:56:04','A','fuint'); (2,'','/uploads/20230804/11f9b3135db043488e4b9bdcadda9f56.png','10002','延禾技术','FSQ','18976679980','海口市国兴大道100号','','','','','测试','2023-08-01 14:04:14','2023-08-04 09:56:04','A','fuint');
@ -1329,7 +1329,7 @@ CREATE TABLE `mt_message` (
/*Data for the table `mt_message` */ /*Data for the table `mt_message` */
insert into `mt_message`(`ID`,`MERCHANT_ID`,`USER_ID`,`TYPE`,`TITLE`,`CONTENT`,`IS_READ`,`CREATE_TIME`,`UPDATE_TIME`,`PARAMS`,`IS_SEND`,`SEND_TIME`,`STATUS`) values insert into `mt_message`(`ID`,`MERCHANT_ID`,`USER_ID`,`TYPE`,`TITLE`,`CONTENT`,`IS_READ`,`CREATE_TIME`,`UPDATE_TIME`,`PARAMS`,`IS_SEND`,`SEND_TIME`,`STATUS`) values
(1,0,163,'sub','积分变更提醒','积分变更提醒','Y','2023-08-03 08:51:17','2023-08-03 08:53:01','{\"touser\":\"owOWg5cYFQr15C2QJkuAPfvMpHTQ\",\"data\":{\"thing7\":{\"value\":\"-1000\"},\"thing3\":{\"value\":\"您的积分发生了变动,请留意~\"},\"date2\":{\"value\":\"2023-08-03 08:51\"}},\"template_id\":\"MJCUWLiPDVPnuCgqsjbl5X385bowwoKwshuLmnUU5Ss\",\"page\":\"pages/user/index\"}','Y','2023-08-03 08:52:17','A'), (1,0,163,'sub','积分变更提醒','积分变更提醒','Y','2023-08-03 08:51:17','2023-08-03 08:53:01','{\"touser\":\"owOWg5cYFQr15C2QJkuAPfvMpHTQ\",\"data\":{\"thing7\":{\"value\":\"-1000\"},\"thing3\":{\"value\":\"您的积分发生了变动,请留意~\"},\"date2\":{\"value\":\"2023-08-03 08:51\"}},\"template_id\":\"MJCUWLiPDVPnuCgqsjbl5X385bowwoKwshuLmnUU5Ss\",\"page\":\"pages/user/index\"}','Y','2023-08-03 08:52:17','A'),
(2,0,163,'sub','积分变更提醒','积分变更提醒','N','2023-08-03 08:51:36','2023-08-03 08:53:01','{\"touser\":\"owOWg5cYFQr15C2QJkuAPfvMpHTQ\",\"data\":{\"thing7\":{\"value\":\"1000\"},\"thing3\":{\"value\":\"您的积分发生了变动,请留意~\"},\"date2\":{\"value\":\"2023-08-03 08:51\"}},\"template_id\":\"MJCUWLiPDVPnuCgqsjbl5X385bowwoKwshuLmnUU5Ss\",\"page\":\"pages/user/index\"}','Y','2023-08-03 08:52:36','A'), (2,0,163,'sub','积分变更提醒','积分变更提醒','N','2023-08-03 08:51:36','2023-08-03 08:53:01','{\"touser\":\"owOWg5cYFQr15C2QJkuAPfvMpHTQ\",\"data\":{\"thing7\":{\"value\":\"1000\"},\"thing3\":{\"value\":\"您的积分发生了变动,请留意~\"},\"date2\":{\"value\":\"2023-08-03 08:51\"}},\"template_id\":\"MJCUWLiPDVPnuCgqsjbl5X385bowwoKwshuLmnUU5Ss\",\"page\":\"pages/user/index\"}','Y','2023-08-03 08:52:36','A'),
(3,0,163,'sub','余额变动提醒','余额变动提醒','Y','2023-08-03 08:58:26','2023-08-03 09:00:01','{\"touser\":\"owOWg5cYFQr15C2QJkuAPfvMpHTQ\",\"data\":{\"amount6\":{\"value\":\"-0.01\"},\"thing3\":{\"value\":\"您的余额发生了变动,请留意~\"},\"time8\":{\"value\":\"2023-08-03 08:58\"}},\"template_id\":\"6Klx5n119OFezK2AUr8J_YeNp_B2acCGNNUGoAoYsgw\",\"page\":\"pages/user/index\"}','Y','2023-08-03 08:59:26','A'), (3,0,163,'sub','余额变动提醒','余额变动提醒','Y','2023-08-03 08:58:26','2023-08-03 09:00:01','{\"touser\":\"owOWg5cYFQr15C2QJkuAPfvMpHTQ\",\"data\":{\"amount6\":{\"value\":\"-0.01\"},\"thing3\":{\"value\":\"您的余额发生了变动,请留意~\"},\"time8\":{\"value\":\"2023-08-03 08:58\"}},\"template_id\":\"6Klx5n119OFezK2AUr8J_YeNp_B2acCGNNUGoAoYsgw\",\"page\":\"pages/user/index\"}','Y','2023-08-03 08:59:26','A'),
@ -1382,7 +1382,7 @@ CREATE TABLE `mt_open_gift` (
/*Data for the table `mt_open_gift` */ /*Data for the table `mt_open_gift` */
insert into `mt_open_gift`(`ID`,`MERCHANT_ID`,`STORE_ID`,`GRADE_ID`,`POINT`,`COUPON_ID`,`COUPON_NUM`,`CREATE_TIME`,`UPDATE_TIME`,`STATUS`,`OPERATOR`) values insert into `mt_open_gift`(`ID`,`MERCHANT_ID`,`STORE_ID`,`GRADE_ID`,`POINT`,`COUPON_ID`,`COUPON_NUM`,`CREATE_TIME`,`UPDATE_TIME`,`STATUS`,`OPERATOR`) values
(115,1,0,1,1000,0,0,'2023-07-24 20:06:48','2023-07-24 20:06:48','A','fuint'), (115,1,0,1,1000,0,0,'2023-07-24 20:06:48','2023-07-24 20:06:48','A','fuint'),
(116,1,0,1,0,153,1,'2023-07-24 22:17:38','2023-07-24 22:17:38','A','fuint'); (116,1,0,1,0,153,1,'2023-07-24 22:17:38','2023-07-24 22:17:38','A','fuint');
@ -1502,7 +1502,7 @@ CREATE TABLE `mt_point` (
/*Data for the table `mt_point` */ /*Data for the table `mt_point` */
insert into `mt_point`(`ID`,`MERCHANT_ID`,`STORE_ID`,`USER_ID`,`ORDER_SN`,`AMOUNT`,`CREATE_TIME`,`UPDATE_TIME`,`DESCRIPTION`,`OPERATOR`,`STATUS`) values insert into `mt_point`(`ID`,`MERCHANT_ID`,`STORE_ID`,`USER_ID`,`ORDER_SN`,`AMOUNT`,`CREATE_TIME`,`UPDATE_TIME`,`DESCRIPTION`,`OPERATOR`,`STATUS`) values
(1,0,0,163,'202309082158244549616',-1000,'2023-09-08 21:58:24','2023-09-08 21:58:24','支付扣除1000积分','','A'), (1,0,0,163,'202309082158244549616',-1000,'2023-09-08 21:58:24','2023-09-08 21:58:24','支付扣除1000积分','','A'),
(2,0,0,163,'202309082158244549616',1000,'2023-09-10 09:58:01','2023-09-10 09:58:01','订单取消202309082158244549616退回1000积分','','A'), (2,0,0,163,'202309082158244549616',1000,'2023-09-10 09:58:01','2023-09-10 09:58:01','订单取消202309082158244549616退回1000积分','','A'),
(3,2,7,6143,'',1000,'2023-09-18 18:02:17','2023-09-18 18:02:17','开卡赠送1000积分','系统','A'), (3,2,7,6143,'',1000,'2023-09-18 18:02:17','2023-09-18 18:02:17','开卡赠送1000积分','系统','A'),
@ -1550,7 +1550,7 @@ CREATE TABLE `mt_region` (
/*Data for the table `mt_region` */ /*Data for the table `mt_region` */
insert into `mt_region`(`ID`,`NAME`,`PID`,`CODE`,`LEVEL`) values insert into `mt_region`(`ID`,`NAME`,`PID`,`CODE`,`LEVEL`) values
(1,'北京',0,'110000',1), (1,'北京',0,'110000',1),
(2,'北京市',1,'110010',2), (2,'北京市',1,'110010',2),
(3,'东城区',2,'110101',3), (3,'东城区',2,'110101',3),
@ -5305,7 +5305,7 @@ CREATE TABLE `mt_setting` (
/*Data for the table `mt_setting` */ /*Data for the table `mt_setting` */
insert into `mt_setting`(`ID`,`MERCHANT_ID`,`STORE_ID`,`TYPE`,`NAME`,`VALUE`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`STATUS`) values insert into `mt_setting`(`ID`,`MERCHANT_ID`,`STORE_ID`,`TYPE`,`NAME`,`VALUE`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`STATUS`) values
(1,1,0,'user','getCouponNeedPhone','false','领券是否需要手机号码','2022-03-12 13:55:55','2023-07-28 20:06:11','fuint','A'), (1,1,0,'user','getCouponNeedPhone','false','领券是否需要手机号码','2022-03-12 13:55:55','2023-07-28 20:06:11','fuint','A'),
(2,1,0,'user','submitOrderNeedPhone','false','提交订单是否需要手机号码','2022-03-12 13:55:56','2023-07-28 20:06:11','fuint','A'), (2,1,0,'user','submitOrderNeedPhone','false','提交订单是否需要手机号码','2022-03-12 13:55:56','2023-07-28 20:06:11','fuint','A'),
(3,1,0,'user','loginNeedPhone','false','登录是否需要手机号','2022-03-12 13:55:56','2023-07-28 20:06:11','fuint','A'), (3,1,0,'user','loginNeedPhone','false','登录是否需要手机号','2022-03-12 13:55:56','2023-07-28 20:06:11','fuint','A'),
@ -5417,7 +5417,7 @@ CREATE TABLE `mt_sms_template` (
/*Data for the table `mt_sms_template` */ /*Data for the table `mt_sms_template` */
insert into `mt_sms_template`(`ID`,`MERCHANT_ID`,`STORE_ID`,`NAME`,`UNAME`,`CODE`,`CONTENT`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`STATUS`) values insert into `mt_sms_template`(`ID`,`MERCHANT_ID`,`STORE_ID`,`NAME`,`UNAME`,`CODE`,`CONTENT`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`STATUS`) values
(1,1,0,'会员登录验证码','login-code','SMS_129758678','您的验证码是:{code},该验证码仅用于登录验证,请放心泄露给他人使用哈。','2022-08-23 11:41:16','2024-04-19 10:09:55','fuint','A'), (1,1,0,'会员登录验证码','login-code','SMS_129758678','您的验证码是:{code},该验证码仅用于登录验证,请放心泄露给他人使用哈。','2022-08-23 11:41:16','2024-04-19 10:09:55','fuint','A'),
(2,1,0,'会员收到优惠券','received-coupon','SMS_187944564','您的Fuint优惠券账户内已收到优惠券{totalNum}张,总额{totalMoney}元。请您关注Fuint公众号Fuint卡券系统在我的优惠券中通过本手机号登录查看。','2022-05-11 09:27:14','2023-12-23 16:31:50','fuint','A'), (2,1,0,'会员收到优惠券','received-coupon','SMS_187944564','您的Fuint优惠券账户内已收到优惠券{totalNum}张,总额{totalMoney}元。请您关注Fuint公众号Fuint卡券系统在我的优惠券中通过本手机号登录查看。','2022-05-11 09:27:14','2023-12-23 16:31:50','fuint','A'),
(3,1,0,'优惠券被核销','confirm-coupon','SMS_129758679','尊敬的用户,您的[{couponName}]已在[{storeName}]完成核销,该券消费流水号为[{sn}],谢谢您的光临!','2020-04-18 17:06:25','2023-12-23 16:31:44','sysadmin','A'), (3,1,0,'优惠券被核销','confirm-coupon','SMS_129758679','尊敬的用户,您的[{couponName}]已在[{storeName}]完成核销,该券消费流水号为[{sn}],谢谢您的光临!','2020-04-18 17:06:25','2023-12-23 16:31:44','sysadmin','A'),
@ -5450,7 +5450,7 @@ CREATE TABLE `mt_staff` (
/*Data for the table `mt_staff` */ /*Data for the table `mt_staff` */
insert into `mt_staff`(`ID`,`MERCHANT_ID`,`STORE_ID`,`USER_ID`,`CATEGORY`,`MOBILE`,`REAL_NAME`,`WECHAT`,`CREATE_TIME`,`UPDATE_TIME`,`AUDITED_STATUS`,`AUDITED_TIME`,`DESCRIPTION`) values insert into `mt_staff`(`ID`,`MERCHANT_ID`,`STORE_ID`,`USER_ID`,`CATEGORY`,`MOBILE`,`REAL_NAME`,`WECHAT`,`CREATE_TIME`,`UPDATE_TIME`,`AUDITED_STATUS`,`AUDITED_TIME`,`DESCRIPTION`) values
(4,1,3,2,1,'16671050702','符小安',NULL,'2023-07-24 18:57:49','2024-04-09 14:40:21','A','2024-04-09 14:40:21','123'), (4,1,3,2,1,'16671050702','符小安',NULL,'2023-07-24 18:57:49','2024-04-09 14:40:21','A','2024-04-09 14:40:21','123'),
(5,1,3,1,2,'16671050703','符SQ',NULL,'2023-07-24 20:12:31','2024-04-09 14:40:19','A','2024-04-09 14:40:19','123'); (5,1,3,1,2,'16671050703','符SQ',NULL,'2023-07-24 20:12:31','2024-04-09 14:40:19','A','2024-04-09 14:40:19','123');
@ -5532,7 +5532,7 @@ CREATE TABLE `mt_store` (
/*Data for the table `mt_store` */ /*Data for the table `mt_store` */
insert into `mt_store`(`ID`,`MERCHANT_ID`,`NAME`,`QR_CODE`,`LOGO`,`IS_DEFAULT`,`CONTACT`,`WX_MCH_ID`,`WX_API_V2`,`WX_CERT_PATH`,`ALIPAY_APP_ID`,`ALIPAY_PRIVATE_KEY`,`ALIPAY_PUBLIC_KEY`,`PHONE`,`ADDRESS`,`LATITUDE`,`LONGITUDE`,`DISTANCE`,`HOURS`,`LICENSE`,`CREDIT_CODE`,`BANK_NAME`,`BANK_CARD_NAME`,`BANK_CARD_NO`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`STATUS`,`OPERATOR`) values insert into `mt_store`(`ID`,`MERCHANT_ID`,`NAME`,`QR_CODE`,`LOGO`,`IS_DEFAULT`,`CONTACT`,`WX_MCH_ID`,`WX_API_V2`,`WX_CERT_PATH`,`ALIPAY_APP_ID`,`ALIPAY_PRIVATE_KEY`,`ALIPAY_PUBLIC_KEY`,`PHONE`,`ADDRESS`,`LATITUDE`,`LONGITUDE`,`DISTANCE`,`HOURS`,`LICENSE`,`CREDIT_CODE`,`BANK_NAME`,`BANK_CARD_NAME`,`BANK_CARD_NO`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`STATUS`,`OPERATOR`) values
(2,1,'海口解放路店','','','N','李思','','','','','','','18956185345','海口市解放西路10号','20.04013','110.34120',0.00,'9:00-1800','','','','','','海口分店','2020-04-26 09:27:22','2023-09-07 14:58:40','A','fuint'), (2,1,'海口解放路店','','','N','李思','','','','','','','18956185345','海口市解放西路10号','20.04013','110.34120',0.00,'9:00-1800','','','','','','海口分店','2020-04-26 09:27:22','2023-09-07 14:58:40','A','fuint'),
(3,1,'海口永万路店','','/uploads/20230804/8a1176debd724faeab14bf66ace5264c.png','N','张易','','','','','','','13800138001','海口市永万路7号2楼01室','20.004229','110.273855',0.00,'9:00-22:00','/uploads/20230804/f80754b1973347b3832ceff604a3153f.png','123','中国邮政','123','123','海口分店','2022-01-07 16:57:42','2023-09-07 14:58:35','A','fuint'), (3,1,'海口永万路店','','/uploads/20230804/8a1176debd724faeab14bf66ace5264c.png','N','张易','','','','','','','13800138001','海口市永万路7号2楼01室','20.004229','110.273855',0.00,'9:00-22:00','/uploads/20230804/f80754b1973347b3832ceff604a3153f.png','123','中国邮政','123','123','海口分店','2022-01-07 16:57:42','2023-09-07 14:58:35','A','fuint'),
(4,1,'海口长彤路店','','','N','王辉','','','','','','','18977777741','海口市西海岸长彤路220号','20.01874','110.34967',0.00,'9:00-22:00','','','','','','长彤路店','2022-01-14 11:22:03','2023-08-01 08:32:27','A','fuint'), (4,1,'海口长彤路店','','','N','王辉','','','','','','','18977777741','海口市西海岸长彤路220号','20.01874','110.34967',0.00,'9:00-22:00','','','','','','长彤路店','2022-01-14 11:22:03','2023-08-01 08:32:27','A','fuint'),
@ -5578,7 +5578,7 @@ CREATE TABLE `mt_user` (
/*Data for the table `mt_user` */ /*Data for the table `mt_user` */
insert into `mt_user`(`ID`,`MOBILE`,`GROUP_ID`,`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`) values insert into `mt_user`(`ID`,`MOBILE`,`GROUP_ID`,`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`) values
(1,'',0,'8546130940096','','符SQ','','','1',NULL,NULL,0.00,1000,1,'','','backend_add','','','',1,3,'2024-04-09 14:40:19','2024-04-09 14:40:19','A','系统自动注册店铺员工账号',''), (1,'',0,'8546130940096','','符SQ','','','1',NULL,NULL,0.00,1000,1,'','','backend_add','','','',1,3,'2024-04-09 14:40:19','2024-04-09 14:40:19','A','系统自动注册店铺员工账号',''),
(2,'',0,'8876626060558','','符小安','','','1',NULL,NULL,0.00,1000,1,'','','backend_add','','','',1,3,'2024-04-09 14:40:21','2024-04-09 14:40:21','A','系统自动注册店铺员工账号',''); (2,'',0,'8876626060558','','符小安','','','1',NULL,NULL,0.00,1000,1,'','','backend_add','','','',1,3,'2024-04-09 14:40:21','2024-04-09 14:40:21','A','系统自动注册店铺员工账号','');
@ -5660,7 +5660,7 @@ CREATE TABLE `mt_user_grade` (
/*Data for the table `mt_user_grade` */ /*Data for the table `mt_user_grade` */
insert into `mt_user_grade`(`ID`,`MERCHANT_ID`,`GRADE`,`NAME`,`CATCH_CONDITION`,`CATCH_TYPE`,`CATCH_VALUE`,`USER_PRIVILEGE`,`VALID_DAY`,`DISCOUNT`,`SPEED_POINT`,`STATUS`) values insert into `mt_user_grade`(`ID`,`MERCHANT_ID`,`GRADE`,`NAME`,`CATCH_CONDITION`,`CATCH_TYPE`,`CATCH_VALUE`,`USER_PRIVILEGE`,`VALID_DAY`,`DISCOUNT`,`SPEED_POINT`,`STATUS`) values
(1,1,1,'普通会员','默认取得','init',0.00,'基础会员1',0,0.00,0.00,'A'), (1,1,1,'普通会员','默认取得','init',0.00,'基础会员1',0,0.00,0.00,'A'),
(2,1,2,'铜牌会员','铜牌会员','pay',800.00,'铜牌会员',100,7.80,1.00,'A'), (2,1,2,'铜牌会员','铜牌会员','pay',800.00,'铜牌会员',100,7.80,1.00,'A'),
(4,1,3,'银牌会员','付费升级','pay',1000.00,'123',100,8.50,2.00,'A'), (4,1,3,'银牌会员','付费升级','pay',1000.00,'123',100,8.50,2.00,'A'),
@ -5687,7 +5687,7 @@ CREATE TABLE `mt_user_group` (
/*Data for the table `mt_user_group` */ /*Data for the table `mt_user_group` */
insert into `mt_user_group`(`ID`,`MERCHANT_ID`,`STORE_ID`,`NAME`,`PARENT_ID`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`STATUS`) values insert into `mt_user_group`(`ID`,`MERCHANT_ID`,`STORE_ID`,`NAME`,`PARENT_ID`,`DESCRIPTION`,`CREATE_TIME`,`UPDATE_TIME`,`OPERATOR`,`STATUS`) values
(1,1,0,'默认分组',0,'','2023-10-23 14:57:39','2023-10-23 14:57:39','fuint','A'); (1,1,0,'默认分组',0,'','2023-10-23 14:57:39','2023-10-23 14:57:39','fuint','A');
/*Table structure for table `mt_verify_code` */ /*Table structure for table `mt_verify_code` */
@ -5735,7 +5735,7 @@ CREATE TABLE `t_account` (
/*Data for the table `t_account` */ /*Data for the table `t_account` */
insert into `t_account`(`acct_id`,`account_key`,`account_name`,`password`,`account_status`,`is_active`,`create_date`,`modify_date`,`salt`,`role_ids`,`locked`,`owner_id`,`real_name`,`merchant_id`,`store_id`,`staff_id`) values insert into `t_account`(`acct_id`,`account_key`,`account_name`,`password`,`account_status`,`is_active`,`create_date`,`modify_date`,`salt`,`role_ids`,`locked`,`owner_id`,`real_name`,`merchant_id`,`store_id`,`staff_id`) values
(1,'20230714677851484251776','fuint','cb4c1e2741076af41c548e888fe3f2be9e5e69d8',1,1,'2019-10-25 15:54:17','2023-09-22 13:39:50','405c73e643551163','2',0,NULL,'管理员',1,0,0), (1,'20230714677851484251776','fuint','cb4c1e2741076af41c548e888fe3f2be9e5e69d8',1,1,'2019-10-25 15:54:17','2023-09-22 13:39:50','405c73e643551163','2',0,NULL,'管理员',1,0,0),
(2,'20231016340951724856742','admin','cb4c1e2741076af41c548e888fe3f2be9e5e69d8',1,0,'2021-10-12 22:19:32','2023-07-24 22:35:34','405c73e643551163','2',0,1,'超管',0,0,4), (2,'20231016340951724856742','admin','cb4c1e2741076af41c548e888fe3f2be9e5e69d8',1,0,'2021-10-12 22:19:32','2023-07-24 22:35:34','405c73e643551163','2',0,1,'超管',0,0,4),
(3,'20231016344347831674930','store','2de84820760676616c115532b4126cd2823107d2',1,1,'2021-10-16 20:39:43','2023-09-14 20:03:53','5fe163d5c1a994cd','2',0,NULL,'店铺账号',1,3,4), (3,'20231016344347831674930','store','2de84820760676616c115532b4126cd2823107d2',1,1,'2021-10-16 20:39:43','2023-09-14 20:03:53','5fe163d5c1a994cd','2',0,NULL,'店铺账号',1,3,4),
@ -5757,7 +5757,7 @@ CREATE TABLE `t_account_duty` (
/*Data for the table `t_account_duty` */ /*Data for the table `t_account_duty` */
insert into `t_account_duty`(`acc_duty_id`,`acct_id`,`duty_id`) values insert into `t_account_duty`(`acc_duty_id`,`acct_id`,`duty_id`) values
(259,5,2), (259,5,2),
(273,4,2), (273,4,2),
(281,8,2), (281,8,2),
@ -5922,7 +5922,7 @@ CREATE TABLE `t_duty` (
/*Data for the table `t_duty` */ /*Data for the table `t_duty` */
insert into `t_duty`(`merchant_id`,`duty_id`,`duty_name`,`status`,`description`,`duty_type`) values insert into `t_duty`(`merchant_id`,`duty_id`,`duty_name`,`status`,`description`,`duty_type`) values
(0,2,'系统管理员','A','系统管理员','1'), (0,2,'系统管理员','A','系统管理员','1'),
(0,7,'商户管理员','A','商户管理员','2'), (0,7,'商户管理员','A','商户管理员','2'),
(0,8,'店铺管理员','A','店铺管理员','2'), (0,8,'店铺管理员','A','店铺管理员','2'),
@ -5945,7 +5945,7 @@ CREATE TABLE `t_duty_source` (
/*Data for the table `t_duty_source` */ /*Data for the table `t_duty_source` */
insert into `t_duty_source`(`duty_source_id`,`duty_id`,`source_id`) values insert into `t_duty_source`(`duty_source_id`,`duty_id`,`source_id`) values
(9387,10,61), (9387,10,61),
(9388,10,79), (9388,10,79),
(9389,10,80), (9389,10,80),
@ -6288,7 +6288,7 @@ CREATE TABLE `t_gen_code` (
/*Data for the table `t_gen_code` */ /*Data for the table `t_gen_code` */
insert into `t_gen_code`(`id`,`service_name`,`module_name`,`table_name`,`table_prefix`,`pk_name`,`package_name`,`backend_path`,`front_path`,`author`,`create_time`,`update_time`,`status`) values insert into `t_gen_code`(`id`,`service_name`,`module_name`,`table_name`,`table_prefix`,`pk_name`,`package_name`,`backend_path`,`front_path`,`author`,`create_time`,`update_time`,`status`) values
(1,'Banner','焦点图','banner','mt_','id','banner','C:/Code/fuintBackend',NULL,'FSQ','2024-04-09 15:18:06','2024-04-09 15:20:52','A'); (1,'Banner','焦点图','banner','mt_','id','banner','C:/Code/fuintBackend',NULL,'FSQ','2024-04-09 15:18:06','2024-04-09 15:20:52','A');
/*Table structure for table `t_platform` */ /*Table structure for table `t_platform` */
@ -6306,7 +6306,7 @@ CREATE TABLE `t_platform` (
/*Data for the table `t_platform` */ /*Data for the table `t_platform` */
insert into `t_platform`(`owner_id`,`name`,`status`,`description`,`platform_type`) values insert into `t_platform`(`owner_id`,`name`,`status`,`description`,`platform_type`) values
(1,'会员营销管理系统',1,'会员营销管理系统说明',1); (1,'会员营销管理系统',1,'会员营销管理系统说明',1);
/*Table structure for table `t_source` */ /*Table structure for table `t_source` */
@ -6343,7 +6343,7 @@ CREATE TABLE `t_source` (
/*Data for the table `t_source` */ /*Data for the table `t_source` */
insert into `t_source`(`merchant_id`,`source_id`,`source_name`,`source_code`,`path`,`ename`,`new_icon`,`status`,`source_level`,`source_style`,`is_menu`,`description`,`parent_id`,`is_log`,`icon`) values insert into `t_source`(`merchant_id`,`source_id`,`source_name`,`source_code`,`path`,`ename`,`new_icon`,`status`,`source_level`,`source_style`,`is_menu`,`description`,`parent_id`,`is_log`,`icon`) values
(0,1,'后台管理员','system/account/index','system/account/index','SystemAccountIndex','select','A',2,'7',1,'管理员管理',15,1,NULL), (0,1,'后台管理员','system/account/index','system/account/index','SystemAccountIndex','select','A',2,'7',1,'管理员管理',15,1,NULL),
(0,2,'新增用户','/user/add','system/account/add','SystemAccountAdd','select','A',3,'99',0,'',1,1,NULL), (0,2,'新增用户','/user/add','system/account/add','SystemAccountAdd','select','A',3,'99',0,'',1,1,NULL),
(0,3,'修改用户','/user/edit','system/account/edit','SystemAccountEdit','select','A',3,'99',0,'',1,1,NULL), (0,3,'修改用户','/user/edit','system/account/edit','SystemAccountEdit','select','A',3,'99',0,'',1,1,NULL),

@ -7,7 +7,7 @@ import java.util.Map;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
public class Constants { public class Constants {

@ -22,7 +22,7 @@ import org.springframework.stereotype.Component;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Component // 声明组件 @Component // 声明组件
@Aspect // 声明切面 @Aspect // 声明切面

@ -7,7 +7,7 @@ import org.springframework.stereotype.Component;
/** /**
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Component @Component
@Aspect @Aspect

@ -36,7 +36,7 @@ import java.util.Map;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Component @Component
@Aspect @Aspect

@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
* Bean * Bean
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Component @Component
@PropertySource("file:${env.properties.path}/${env.profile}/application.properties") @PropertySource("file:${env.properties.path}/${env.profile}/application.properties")

@ -6,7 +6,7 @@ import com.alibaba.fastjson.JSON;
* H5Bean * H5Bean
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
public class H5SceneInfo { public class H5SceneInfo {
private H5 h5_info; private H5 h5_info;

@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
* Bean * Bean
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Component @Component
@PropertySource("file:${env.properties.path}/${env.profile}/application.properties") @PropertySource("file:${env.properties.path}/${env.profile}/application.properties")

@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
* Bean * Bean
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Component @Component
@PropertySource("file:${env.properties.path}/${env.profile}/application.properties") @PropertySource("file:${env.properties.path}/${env.profile}/application.properties")

@ -8,7 +8,7 @@ import org.springframework.stereotype.Component;
* V3Bean * V3Bean
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Component @Component
@PropertySource("file:${env.properties.path}/${env.profile}/application.properties") @PropertySource("file:${env.properties.path}/${env.profile}/application.properties")

@ -13,7 +13,7 @@ import java.util.Properties;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Configuration @Configuration
public class CaptchaConfig { public class CaptchaConfig {

@ -4,7 +4,7 @@ package com.fuint.common.config;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
public class Message { public class Message {
public static final String PARAM_ERROR = "参数出错"; public static final String PARAM_ERROR = "参数出错";

@ -13,7 +13,7 @@ import org.springframework.context.annotation.Configuration;
* MybatisPlus * MybatisPlus
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Configuration @Configuration
@MapperScan({"com.fuint.repository.**.mapper"}) @MapperScan({"com.fuint.repository.**.mapper"})

@ -18,7 +18,7 @@ import org.springframework.session.data.redis.config.annotation.web.http.EnableR
* redis * redis
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Configuration @Configuration
@EnableCaching @EnableCaching

@ -14,7 +14,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter { public class SecurityConfig extends WebSecurityConfigurerAdapter {

@ -15,7 +15,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
* Swagger * Swagger
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Configuration @Configuration
@EnableSwagger2 @EnableSwagger2
@ -36,9 +36,9 @@ public class SwaggerConfig implements WebMvcConfigurer {
return new ApiInfoBuilder() return new ApiInfoBuilder()
.title("fuint会员营销系统接口文档") .title("fuint会员营销系统接口文档")
.description("fuint会员营销系统接口文档“/clientApi”目录接口为会员端相关接口“/backendApi”目录接口为后台管理端相关接口。") .description("fuint会员营销系统接口文档“/clientApi”目录接口为会员端相关接口“/backendApi”目录接口为后台管理端相关接口。")
.termsOfServiceUrl("https://www.fuint.cn/") .termsOfServiceUrl("https://www.huamar.com/")
.contact(new Contact("海南延禾信息技术有限公司","https://www.fuint.cn/", "fushengqian@qq.com")) .contact(new Contact("海南延禾信息技术有限公司","https://www.huamar.com/", "fushengqian@qq.com"))
.version("1.0") .version("1.0")
.build(); .build();
} }
} }

@ -16,7 +16,7 @@ import java.util.concurrent.TimeUnit;
* web * web
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Configuration @Configuration
public class WebConfig extends WebMvcConfigurationSupport { public class WebConfig extends WebMvcConfigurationSupport {

@ -12,7 +12,7 @@ import java.util.List;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -9,7 +9,7 @@ import com.fasterxml.jackson.annotation.JsonInclude;
* TreeSelect * TreeSelect
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
public class TreeSelect implements Serializable { public class TreeSelect implements Serializable {

@ -10,7 +10,7 @@ import java.util.Date;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -10,7 +10,7 @@ import java.util.Date;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Data @Data
public class AccountInfo implements Serializable { public class AccountInfo implements Serializable {

@ -9,7 +9,7 @@ import java.io.Serializable;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -8,7 +8,7 @@ import lombok.Setter;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -14,7 +14,7 @@ import java.util.Date;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -12,7 +12,7 @@ import java.util.Date;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -10,7 +10,7 @@ import java.util.Map;
* Body * Body
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -11,7 +11,7 @@ import java.util.Date;
/** /**
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Data @Data
public class CommissionCashDto implements Serializable { public class CommissionCashDto implements Serializable {

@ -13,7 +13,7 @@ import java.util.Date;
/** /**
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Data @Data
public class CommissionLogDto implements Serializable { public class CommissionLogDto implements Serializable {

@ -9,7 +9,7 @@ import java.util.List;
/** /**
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Data @Data
public class CommissionRuleDto implements Serializable { public class CommissionRuleDto implements Serializable {

@ -8,7 +8,7 @@ import java.math.BigDecimal;
/** /**
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Data @Data
public class CommissionRuleItemDto implements Serializable { public class CommissionRuleItemDto implements Serializable {

@ -16,7 +16,7 @@ import java.util.Date;
* dto * dto
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -9,7 +9,7 @@ import java.util.List;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -9,7 +9,7 @@ import java.math.BigDecimal;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Data @Data
public class CouponDto implements Serializable { public class CouponDto implements Serializable {

@ -8,7 +8,7 @@ import lombok.Setter;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -8,7 +8,7 @@ import lombok.Setter;
* dto * dto
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -12,7 +12,7 @@ import java.math.BigDecimal;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -13,7 +13,7 @@ import java.util.Date;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -12,7 +12,7 @@ import lombok.Setter;
* DTO * DTO
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -14,7 +14,7 @@ import java.util.List;
* *
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

@ -18,7 +18,7 @@ import java.util.List;
* DTO * DTO
* *
* Created by FSQ * Created by FSQ
* CopyRight https://www.fuint.cn * CopyRight https://www.huamar.com
*/ */
@Getter @Getter
@Setter @Setter

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save