Browse Source

提交代码

master
HY 3 months ago
parent
commit
7ac8c7253f
27 changed files with 813 additions and 166 deletions
  1. +1
    -1
      admin-hanhai-vue/.env.development
  2. +2
    -2
      admin-hanhai-vue/.env.production
  3. +2
    -2
      admin-hanhai-vue/.env.test
  4. +60
    -6
      admin-hanhai-vue/src/views/system/GoodsList.vue
  5. +225
    -0
      admin-hanhai-vue/src/views/system/HanHaiMemberList.vue
  6. +10
    -1
      admin-hanhai-vue/src/views/system/HotelBalanceLogList.vue
  7. +11
    -11
      admin-hanhai-vue/src/views/system/HotelMemberAccountList.vue
  8. +27
    -22
      admin-hanhai-vue/src/views/system/LeaseOrderList.vue
  9. +32
    -28
      admin-hanhai-vue/src/views/system/RefundOrderList.vue
  10. +26
    -22
      admin-hanhai-vue/src/views/system/ReplaceOrderList.vue
  11. +26
    -22
      admin-hanhai-vue/src/views/system/WashOrderList.vue
  12. +144
    -0
      admin-hanhai-vue/src/views/system/modules/HanHaiMemberForm.vue
  13. +84
    -0
      admin-hanhai-vue/src/views/system/modules/HanHaiMemberModal.Style#Drawer.vue
  14. +60
    -0
      admin-hanhai-vue/src/views/system/modules/HanHaiMemberModal.vue
  15. +11
    -6
      admin-hanhai-vue/src/views/system/modules/HotelGoodsSkuForm.vue
  16. +1
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/entity/HanHaiMember.java
  17. +10
    -31
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/vue/HanHaiMemberList.vue
  18. +40
    -3
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelgoods/controller/HotelGoodsController.java
  19. +2
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelgoods/entity/HotelGoods.java
  20. +2
    -0
      jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelgoodssku/entity/HotelGoodsSku.java
  21. +7
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/conf/controller/ConfController.java
  22. +7
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/conf/service/IConfService.java
  23. +5
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/conf/service/impl/ConfServiceImpl.java
  24. +10
    -0
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/goods/service/impl/GoodsServiceImpl.java
  25. +1
    -2
      jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/service/impl/OrderServiceImpl.java
  26. +4
    -4
      jeecg-boot-module-system/src/main/resources/application-dev.yml
  27. +3
    -3
      jeecg-boot-module-system/src/main/resources/application-test.yml

+ 1
- 1
admin-hanhai-vue/.env.development View File

@ -1,5 +1,5 @@
NODE_ENV=development
VUE_APP_API_BASE_URL=https://admin.buzhoudao.com/hotel/
VUE_APP_API_BASE_URL=http://127.0.0.1:8081/hotel
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview


+ 2
- 2
admin-hanhai-vue/.env.production View File

@ -1,7 +1,7 @@
NODE_ENV=production
VUE_APP_API_BASE_URL=https://admin.buzhoudao.com/hotel/
VUE_APP_API_BASE_URL=https://hotel.java996.icu/hotel
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview
# 微应用列表必须VUE_APP_SUB_开头,jeecg-app-1为子应用的项目名称,也是子应用的路由父路径
# 微应用列表必须VUE_APP_SUB_开头,jeecg-app-1为子应用的项目名称,也是子应用的路由父路径https://admin.buzhoudao.com/hotel/
VUE_APP_SUB_jeecg-app-1 = '//localhost:8092'

+ 2
- 2
admin-hanhai-vue/.env.test View File

@ -1,4 +1,4 @@
NODE_ENV=production
VUE_APP_API_BASE_URL=http://boot.jeecg.com:8080/jeecg-boot
NODE_ENV=test
VUE_APP_API_BASE_URL=https://hotel.java996.icu/hotel
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview

+ 60
- 6
admin-hanhai-vue/src/views/system/GoodsList.vue View File

@ -73,6 +73,19 @@
更多 <a-icon type="down"/>
</a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)">详情</a>
</a-menu-item>
<a-menu-item>
<a @click="handleUp(record,1)">上架</a>
</a-menu-item>
<a-menu-item>
<a @click="handleUp(record,0)">下架</a>
</a-menu-item>
<a-menu-item>
<a @click="handleCopy(record.id)">复制商品</a>
</a-menu-item>
<!-- <a-menu-item>-->
<!-- <a @click="handlePerssion(record.id)">授权</a>-->
<!-- </a-menu-item>-->
@ -163,6 +176,7 @@
更多 <a-icon type="down"/>
</a>
<a-menu slot="overlay">
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">
<a>删除</a>
@ -183,7 +197,7 @@
</template>
<script>
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { deleteAction, postAction, getAction } from '@/api/manage'
import { deleteAction, postAction, getAction,httpAction } from '@/api/manage'
import SelectUserModal from './modules/SelectUserModal'
import RoleModal from './modules/RoleModal'
import HotelGoodsSkuModal from './modules/HotelGoodsSkuModal'
@ -313,6 +327,12 @@
dataIndex: 'title',
width: 120
},
{
title: '颜色',
align: 'center',
dataIndex: 'colour',
width: 120
},
{
title:'商品图',
align:"center",
@ -354,13 +374,15 @@
superQueryMatchType2: 'and',
url: {
list: '/hotelgoods/hotelGoods/list',
delete: '/sys/role/delete',
delete: '/hotelgoods/hotelGoods/delete',
list2: '/hotelgoodssku/hotelGoodsSku/list',
addUserRole: '/sys/user/addSysUserRole',
delete2: '/sys/user/deleteUserRole',
delete2: '/hotelgoodssku/hotelGoodsSku/delete',
deleteBatch2: '/sys/user/deleteUserRoleBatch',
exportXlsUrl: 'sys/role/exportXls',
importExcelUrl: 'sys/role/importExcel'
importExcelUrl: 'sys/role/importExcel',
isUpUrl: '/hotelgoods/hotelGoods/edit',
copyUrl: '/hotelgoods/hotelGoods/copy'
}
}
},
@ -428,7 +450,7 @@
},
handleAdd2: function() {
if (this.currentRoleId == '') {
this.$message.error('请选择一个角色!')
this.$message.error('!')
} else {
this.$refs.modalForm2.roleDisabled = true
this.$refs.modalForm2.title = '新增'
@ -473,7 +495,7 @@
return
}
var that = this
deleteAction(that.url.delete2, { roleId: this.currentRoleId, userId: id }).then((res) => {
deleteAction(that.url.delete2, { id: id }).then((res) => {
if (res.success) {
that.$message.success(res.message)
that.loadData2()
@ -580,6 +602,38 @@
handlePerssion(roleId){
this.$refs.modalUserRole.show(roleId);
},
handleUp(obj,e){
this.loading = true
let param = {
id: obj.id,
upFlag: e
}
httpAction(this.url.isUpUrl,param,'put').then((res)=>{
if(res.success){
this.$message.success(res.message);
}else{
this.$message.warning(res.message);
}
}).finally(() => {
this.loading = false
this.loadData()
})
},
handleCopy(e){
let param = {
id: e
}
getAction(this.url.copyUrl,param).then((res)=>{
if(res.success){
this.$message.success(res.message);
}else{
this.$message.warning(res.message);
}
}).finally(() => {
this.loading = false
this.loadData()
})
}
}
}
</script>


+ 225
- 0
admin-hanhai-vue/src/views/system/HanHaiMemberList.vue View File

@ -0,0 +1,225 @@
<template>
<a-card :bordered="false">
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="昵称">
<a-input placeholder="请输入昵称" v-model="queryParam.nickName"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="水洗店">
<j-search-select-tag placeholder="请选择水洗店" v-model="queryParam.shopId" dict="hotel_shop,name,id"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
<a @click="handleToggleSearch" style="margin-left: 8px">
{{ toggleSearchStatus ? '收起' : '展开' }}
<a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
</a>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!-- 查询区域-END -->
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<!-- <a-button type="primary" icon="download" @click="handleExportXls('用户表')">导出</a-button>-->
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
<!-- <a-button type="primary" icon="import">导入</a-button>-->
<!-- </a-upload>-->
<!-- 高级查询区域 -->
<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
</a-dropdown>
</div>
<!-- table区域-begin -->
<div>
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
</div>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text">
<div v-html="text"></div>
</template>
<template slot="imgSlot" slot-scope="text,record">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<template slot="fileSlot" slot-scope="text">
<span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
<a-button
v-else
:ghost="true"
type="primary"
icon="download"
size="small"
@click="downloadFile(text)">
下载
</a-button>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit(record)">编辑</a>
<a-divider type="vertical" />
<a-dropdown>
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
<a-menu slot="overlay">
<a-menu-item>
<a @click="handleDetail(record)">详情</a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
</a-menu>
</a-dropdown>
</span>
</a-table>
</div>
<han-hai-member-modal ref="modalForm" @ok="modalFormOk"></han-hai-member-modal>
</a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import HanHaiMemberModal from './modules/HanHaiMemberModal'
import {filterMultiDictText} from '@/components/dict/JDictSelectUtil'
export default {
name: 'HanHaiMemberList',
mixins:[JeecgListMixin, mixinDevice],
components: {
HanHaiMemberModal
},
data () {
return {
description: '用户表管理页面',
//
columns: [
{
title: '#',
dataIndex: '',
key:'rowIndex',
width:60,
align:"center",
customRender:function (t,r,index) {
return parseInt(index)+1;
}
},
{
title:'创建日期',
align:"center",
sorter: true,
dataIndex: 'createTime'
},
{
title:'昵称',
align:"center",
dataIndex: 'nickName'
},
{
title:'用户头像',
align:"center",
dataIndex: 'headImage',
scopedSlots: {customRender: 'imgSlot'}
},
{
title:'小程序标识',
align:"center",
sorter: true,
dataIndex: 'appletOpenid'
},
{
title:'绑定水洗店',
align:"center",
dataIndex: 'shopId_dictText'
},
{
title: '操作',
dataIndex: 'action',
align:"center",
fixed:"right",
width:147,
scopedSlots: { customRender: 'action' }
}
],
url: {
list: "/hanHaiMember/hanHaiMember/list",
delete: "/hanHaiMember/hanHaiMember/delete",
deleteBatch: "/hanHaiMember/hanHaiMember/deleteBatch",
exportXlsUrl: "/hanHaiMember/hanHaiMember/exportXls",
importExcelUrl: "hanHaiMember/hanHaiMember/importExcel",
},
dictOptions:{},
superFieldList:[],
}
},
created() {
this.$set(this.dictOptions, 'isDai', [{text:'是',value:'Y'},{text:'否',value:'N'}])
this.getSuperFieldList();
},
computed: {
importExcelUrl: function(){
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
},
},
methods: {
initDictConfig(){
},
getSuperFieldList(){
let fieldList=[];
fieldList.push({type:'datetime',value:'createTime',text:'创建日期'})
fieldList.push({type:'string',value:'nickName',text:'昵称',dictCode:''})
fieldList.push({type:'string',value:'headImage',text:'用户头像',dictCode:''})
fieldList.push({type:'string',value:'phone',text:'手机号码',dictCode:''})
fieldList.push({type:'string',value:'token',text:'登录TOEKN',dictCode:''})
fieldList.push({type:'string',value:'officialOpenid',text:'公众号openid',dictCode:''})
fieldList.push({type:'sel_search',value:'vid',text:'邀请人',dictTable:"han_hai_member", dictText:'nick_name', dictCode:'id'})
fieldList.push({type:'datetime',value:'vtime',text:'邀请时间'})
fieldList.push({type:'string',value:'sex',text:'性别',dictCode:''})
fieldList.push({type:'switch',value:'isDai',text:'是否分销商'})
this.superFieldList = fieldList
}
}
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>

+ 10
- 1
admin-hanhai-vue/src/views/system/HotelBalanceLogList.vue View File

@ -7,7 +7,16 @@
<a-col :md="6" :sm="12">
<a-form-item label="用户编号">
<a-input placeholder="请输入用户编号" v-model="queryParam.userId"></a-input>
<!-- <j-input placeholder="输入账号模糊查询" v-model="queryParam.username"></j-input>-->
</a-form-item>
</a-col>
<a-col :md="6" :sm="12">
<a-form-item label="交易类型">
<j-dict-select-tag dict-code="balance_type" placeholder="请选择交易类型" v-model="queryParam.type"></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :md="6" :sm="12">
<a-form-item label="状态">
<j-dict-select-tag dict-code="balance_status" placeholder="请选择状态" v-model="queryParam.status"></j-dict-select-tag>
</a-form-item>
</a-col>
</a-row>


+ 11
- 11
admin-hanhai-vue/src/views/system/HotelMemberAccountList.vue View File

@ -24,12 +24,12 @@
<!-- </a-upload>-->
<!-- 高级查询区域 -->
<!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>-->
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
</a-dropdown>
<!-- <a-dropdown v-if="selectedRowKeys.length > 0">-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>-->
<!-- </a-menu>-->
<!-- <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>-->
<!-- </a-dropdown>-->
</div>
<!-- table区域-begin -->
@ -83,11 +83,11 @@
<a-menu-item>
<a @click="handleDetail(record)">详情</a>
</a-menu-item>
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
<!-- <a-menu-item>-->
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">-->
<!-- <a>删除</a>-->
<!-- </a-popconfirm>-->
<!-- </a-menu-item>-->
</a-menu>
</a-dropdown>
</span>


+ 27
- 22
admin-hanhai-vue/src/views/system/LeaseOrderList.vue View File

@ -7,6 +7,12 @@
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="12">
<a-form-item label="订单状态">
<j-dict-select-tag dict-code="hotel_order_flow,name,value,pid=0" placeholder="请选择订单状态" v-model="queryParam.status"></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :md="6" :sm="12">
<a-form-item label="订单编号">
<a-input placeholder="请输入订单编号" v-model="queryParam.id"></a-input>
<!-- <j-input placeholder="输入账号模糊查询" v-model="queryParam.username"></j-input>-->
@ -20,8 +26,7 @@
</a-col>
<a-col :md="6" :sm="12">
<a-form-item label="店铺编号">
<a-input placeholder="请输入店铺编号" v-model="queryParam.shopId"></a-input>
<!-- <j-input placeholder="输入账号模糊查询" v-model="queryParam.username"></j-input>-->
<j-dict-select-tag dict-code="hotel_shop,name,user_id" placeholder="请输入店铺编号" v-model="queryParam.shopId"></j-dict-select-tag>
</a-form-item>
</a-col>
</a-row>
@ -144,17 +149,17 @@
<!--<a-button @click="handleEdit2" type="primary" icon="edit" style="margin-top: 16px">用户编辑</a-button>-->
<!-- <a-button @click="handleAddUserRole" type="primary" icon="plus" style="margin-top: 16px">已有用户</a-button>-->
<a-dropdown v-if="selectedRowKeys2.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel2">
<a-icon type="delete"/>
删除
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 批量操作
<a-icon type="down"/>
</a-button>
</a-dropdown>
<!-- <a-dropdown v-if="selectedRowKeys2.length > 0">-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item key="1" @click="batchDel2">-->
<!-- <a-icon type="delete"/>-->
<!-- 删除-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
<!-- <a-button style="margin-left: 8px"> 批量操作-->
<!-- <a-icon type="down"/>-->
<!-- </a-button>-->
<!-- </a-dropdown>-->
</div>
<!-- table区域-begin -->
<div>
@ -180,19 +185,19 @@
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit2(record)">编辑</a>
<a-divider type="vertical"/>
<!-- <a @click="handleEdit2(record)">编辑</a>-->
<!-- <a-divider type="vertical"/>-->
<a-dropdown>
<a class="ant-dropdown-link">
更多 <a-icon type="down"/>
</a>
<a-menu slot="overlay">
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
</a-menu>
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item>-->
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">-->
<!-- <a>删除</a>-->
<!-- </a-popconfirm>-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
</a-dropdown>
</span>
</a-table>


+ 32
- 28
admin-hanhai-vue/src/views/system/RefundOrderList.vue View File

@ -6,6 +6,11 @@
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="12">
<a-form-item label="订单状态">
<j-dict-select-tag dict-code="hotel_order_flow,name,value,pid=3" placeholder="请选择订单状态" v-model="queryParam.status"></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :md="6" :sm="12">
<a-form-item label="订单编号">
<a-input placeholder="请输入订单编号" v-model="queryParam.id"></a-input>
@ -20,8 +25,7 @@
</a-col>
<a-col :md="6" :sm="12">
<a-form-item label="店铺编号">
<a-input placeholder="请输入店铺编号" v-model="queryParam.shopId"></a-input>
<!-- <j-input placeholder="输入账号模糊查询" v-model="queryParam.username"></j-input>-->
<j-dict-select-tag dict-code="hotel_shop,name,user_id" placeholder="请输入店铺编号" v-model="queryParam.shopId"></j-dict-select-tag>
</a-form-item>
</a-col>
</a-row>
@ -38,12 +42,12 @@
<!-- </a-upload>-->
<!-- 高级查询区域 -->
<!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>-->
<a-dropdown v-if="selectedRowKeys.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>
</a-dropdown>
<!-- <a-dropdown v-if="selectedRowKeys.length > 0">-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>-->
<!-- </a-menu>-->
<!-- <a-button style="margin-left: 8px"> 批量操作 <a-icon type="down" /></a-button>-->
<!-- </a-dropdown>-->
</div>
<!-- table区域-begin -->
@ -146,17 +150,17 @@
<!--<a-button @click="handleEdit2" type="primary" icon="edit" style="margin-top: 16px">用户编辑</a-button>-->
<!-- <a-button @click="handleAddUserRole" type="primary" icon="plus" style="margin-top: 16px">已有用户</a-button>-->
<a-dropdown v-if="selectedRowKeys2.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel2">
<a-icon type="delete"/>
删除
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 批量操作
<a-icon type="down"/>
</a-button>
</a-dropdown>
<!-- <a-dropdown v-if="selectedRowKeys2.length > 0">-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item key="1" @click="batchDel2">-->
<!-- <a-icon type="delete"/>-->
<!-- 删除-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
<!-- <a-button style="margin-left: 8px"> 批量操作-->
<!-- <a-icon type="down"/>-->
<!-- </a-button>-->
<!-- </a-dropdown>-->
</div>
<!-- table区域-begin -->
<div>
@ -182,19 +186,19 @@
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit2(record)">编辑</a>
<a-divider type="vertical"/>
<!-- <a @click="handleEdit2(record)">编辑</a>-->
<!-- <a-divider type="vertical"/>-->
<a-dropdown>
<a class="ant-dropdown-link">
更多 <a-icon type="down"/>
</a>
<a-menu slot="overlay">
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
</a-menu>
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item>-->
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">-->
<!-- <a>删除</a>-->
<!-- </a-popconfirm>-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
</a-dropdown>
</span>
</a-table>


+ 26
- 22
admin-hanhai-vue/src/views/system/ReplaceOrderList.vue View File

@ -6,6 +6,11 @@
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="12">
<a-form-item label="订单状态">
<j-dict-select-tag dict-code="hotel_order_flow,name,value,pid=2" placeholder="请选择订单状态" v-model="queryParam.status"></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :md="6" :sm="12">
<a-form-item label="订单编号">
<a-input placeholder="请输入订单编号" v-model="queryParam.id"></a-input>
@ -20,8 +25,7 @@
</a-col>
<a-col :md="6" :sm="12">
<a-form-item label="店铺编号">
<a-input placeholder="请输入店铺编号" v-model="queryParam.shopId"></a-input>
<!-- <j-input placeholder="输入账号模糊查询" v-model="queryParam.username"></j-input>-->
<j-dict-select-tag dict-code="hotel_shop,name,user_id" placeholder="请输入店铺编号" v-model="queryParam.shopId"></j-dict-select-tag>
</a-form-item>
</a-col>
</a-row>
@ -150,17 +154,17 @@
<!--<a-button @click="handleEdit2" type="primary" icon="edit" style="margin-top: 16px">用户编辑</a-button>-->
<!-- <a-button @click="handleAddUserRole" type="primary" icon="plus" style="margin-top: 16px">已有用户</a-button>-->
<a-dropdown v-if="selectedRowKeys2.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel2">
<a-icon type="delete"/>
删除
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 批量操作
<a-icon type="down"/>
</a-button>
</a-dropdown>
<!-- <a-dropdown v-if="selectedRowKeys2.length > 0">-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item key="1" @click="batchDel2">-->
<!-- <a-icon type="delete"/>-->
<!-- 删除-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
<!-- <a-button style="margin-left: 8px"> 批量操作-->
<!-- <a-icon type="down"/>-->
<!-- </a-button>-->
<!-- </a-dropdown>-->
</div>
<!-- table区域-begin -->
<div>
@ -186,19 +190,19 @@
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit2(record)">编辑</a>
<a-divider type="vertical"/>
<!-- <a @click="handleEdit2(record)">编辑</a>-->
<!-- <a-divider type="vertical"/>-->
<a-dropdown>
<a class="ant-dropdown-link">
更多 <a-icon type="down"/>
</a>
<a-menu slot="overlay">
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
</a-menu>
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item>-->
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">-->
<!-- <a>删除</a>-->
<!-- </a-popconfirm>-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
</a-dropdown>
</span>
</a-table>


+ 26
- 22
admin-hanhai-vue/src/views/system/WashOrderList.vue View File

@ -6,6 +6,11 @@
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :md="6" :sm="12">
<a-form-item label="订单状态">
<j-dict-select-tag dict-code="hotel_order_flow,name,value,pid=1" placeholder="请选择订单状态" v-model="queryParam.status"></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :md="6" :sm="12">
<a-form-item label="订单编号">
<a-input placeholder="请输入订单编号" v-model="queryParam.id"></a-input>
@ -20,8 +25,7 @@
</a-col>
<a-col :md="6" :sm="12">
<a-form-item label="店铺编号">
<a-input placeholder="请输入店铺编号" v-model="queryParam.shopId"></a-input>
<!-- <j-input placeholder="输入账号模糊查询" v-model="queryParam.username"></j-input>-->
<j-dict-select-tag dict-code="hotel_shop,name,user_id" placeholder="请输入店铺编号" v-model="queryParam.shopId"></j-dict-select-tag>
</a-form-item>
</a-col>
</a-row>
@ -142,17 +146,17 @@
<!--<a-button @click="handleEdit2" type="primary" icon="edit" style="margin-top: 16px">用户编辑</a-button>-->
<!-- <a-button @click="handleAddUserRole" type="primary" icon="plus" style="margin-top: 16px">已有用户</a-button>-->
<a-dropdown v-if="selectedRowKeys2.length > 0">
<a-menu slot="overlay">
<a-menu-item key="1" @click="batchDel2">
<a-icon type="delete"/>
删除
</a-menu-item>
</a-menu>
<a-button style="margin-left: 8px"> 批量操作
<a-icon type="down"/>
</a-button>
</a-dropdown>
<!-- <a-dropdown v-if="selectedRowKeys2.length > 0">-->
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item key="1" @click="batchDel2">-->
<!-- <a-icon type="delete"/>-->
<!-- 删除-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
<!-- <a-button style="margin-left: 8px"> 批量操作-->
<!-- <a-icon type="down"/>-->
<!-- </a-button>-->
<!-- </a-dropdown>-->
</div>
<!-- table区域-begin -->
<div>
@ -178,19 +182,19 @@
<img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
</template>
<span slot="action" slot-scope="text, record">
<a @click="handleEdit2(record)">编辑</a>
<a-divider type="vertical"/>
<!-- <a @click="handleEdit2(record)">编辑</a>-->
<!-- <a-divider type="vertical"/>-->
<a-dropdown>
<a class="ant-dropdown-link">
更多 <a-icon type="down"/>
</a>
<a-menu slot="overlay">
<a-menu-item>
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">
<a>删除</a>
</a-popconfirm>
</a-menu-item>
</a-menu>
<!-- <a-menu slot="overlay">-->
<!-- <a-menu-item>-->
<!-- <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete2(record.id)">-->
<!-- <a>删除</a>-->
<!-- </a-popconfirm>-->
<!-- </a-menu-item>-->
<!-- </a-menu>-->
</a-dropdown>
</span>
</a-table>


+ 144
- 0
admin-hanhai-vue/src/views/system/modules/HanHaiMemberForm.vue View File

@ -0,0 +1,144 @@
<template>
<a-spin :spinning="confirmLoading">
<j-form-container :disabled="formDisabled">
<a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
<a-row>
<a-col :span="24">
<a-form-model-item label="昵称" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="nickName">
<a-input v-model="model.nickName" placeholder="请输入昵称" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="用户头像" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="headImage">
<j-image-upload isMultiple v-model="model.headImage" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="手机号码" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone">
<a-input v-model="model.phone" placeholder="请输入手机号码" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="登录TOEKN" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="token">
<a-input v-model="model.token" placeholder="请输入登录TOEKN" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="公众号openid" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="officialOpenid">
<a-input v-model="model.officialOpenid" placeholder="请输入公众号openid" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="邀请人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="vid">
<j-search-select-tag v-model="model.vid" dict="han_hai_member,nick_name,id" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="邀请时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="vtime">
<j-date placeholder="请选择邀请时间" v-model="model.vtime" :show-time="true" date-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sex">
<a-input v-model="model.sex" placeholder="请输入性别" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="是否分销商" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isDai">
<j-switch v-model="model.isDai" ></j-switch>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
</j-form-container>
</a-spin>
</template>
<script>
import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
export default {
name: 'HanHaiMemberForm',
components: {
},
props: {
//
disabled: {
type: Boolean,
default: false,
required: false
}
},
data () {
return {
model:{
},
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
},
url: {
add: "/hanHaiMember/hanHaiMember/add",
edit: "/hanHaiMember/hanHaiMember/edit",
queryById: "/hanHaiMember/hanHaiMember/queryById"
}
}
},
computed: {
formDisabled(){
return this.disabled
},
},
created () {
//model
this.modelDefault = JSON.parse(JSON.stringify(this.model));
},
methods: {
add () {
this.edit(this.modelDefault);
},
edit (record) {
this.model = Object.assign({}, record);
this.visible = true;
},
submitForm () {
const that = this;
//
this.$refs.form.validate(valid => {
if (valid) {
that.confirmLoading = true;
let httpurl = '';
let method = '';
if(!this.model.id){
httpurl+=this.url.add;
method = 'post';
}else{
httpurl+=this.url.edit;
method = 'put';
}
httpAction(httpurl,this.model,method).then((res)=>{
if(res.success){
that.$message.success(res.message);
that.$emit('ok');
}else{
that.$message.warning(res.message);
}
}).finally(() => {
that.confirmLoading = false;
})
}
})
},
}
}
</script>

+ 84
- 0
admin-hanhai-vue/src/views/system/modules/HanHaiMemberModal.Style#Drawer.vue View File

@ -0,0 +1,84 @@
<template>
<a-drawer
:title="title"
:width="width"
placement="right"
:closable="false"
@close="close"
destroyOnClose
:visible="visible">
<han-hai-member-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></han-hai-member-form>
<div class="drawer-footer">
<a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
<a-button v-if="!disableSubmit" @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button>
</div>
</a-drawer>
</template>
<script>
import HanHaiMemberForm from './HanHaiMemberForm'
export default {
name: 'HanHaiMemberModal',
components: {
HanHaiMemberForm
},
data () {
return {
title:"操作",
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
});
},
close () {
this.$emit('close');
this.visible = false;
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
handleCancel () {
this.close()
}
}
}
</script>
<style lang="less" scoped>
/** Button按钮间距 */
.ant-btn {
margin-left: 30px;
margin-bottom: 30px;
float: right;
}
.drawer-footer{
position: absolute;
bottom: -8px;
width: 100%;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
</style>

+ 60
- 0
admin-hanhai-vue/src/views/system/modules/HanHaiMemberModal.vue View File

@ -0,0 +1,60 @@
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
@ok="handleOk"
:okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
@cancel="handleCancel"
cancelText="关闭">
<han-hai-member-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></han-hai-member-form>
</j-modal>
</template>
<script>
import HanHaiMemberForm from './HanHaiMemberForm'
export default {
name: 'HanHaiMemberModal',
components: {
HanHaiMemberForm
},
data () {
return {
title:'',
width:800,
visible: false,
disableSubmit: false
}
},
methods: {
add () {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.add();
})
},
edit (record) {
this.visible=true
this.$nextTick(()=>{
this.$refs.realForm.edit(record);
})
},
close () {
this.$emit('close');
this.visible = false;
},
handleOk () {
this.$refs.realForm.submitForm();
},
submitCallback(){
this.$emit('ok');
this.visible = false;
},
handleCancel () {
this.close()
}
}
}
</script>

+ 11
- 6
admin-hanhai-vue/src/views/system/modules/HotelGoodsSkuForm.vue View File

@ -13,13 +13,18 @@
<a-input v-model="model.title" placeholder="请输入标题" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="颜色" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="colour">
<a-input v-model="model.colour" placeholder="请输入颜色" ></a-input>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="原价" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="originalPrice">
<a-input-number v-model="model.originalPrice" placeholder="请输入原价" style="width: 100%" />
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="价格" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="price">
<a-form-model-item label="租金" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="price">
<a-input-number v-model="model.price" placeholder="请输入价格" style="width: 100%" />
</a-form-model-item>
</a-col>
@ -28,11 +33,11 @@
<j-image-upload isMultiple v-model="model.pic" ></j-image-upload>
</a-form-model-item>
</a-col>
<a-col :span="24">
<a-form-model-item label="金" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="depositPrice">
<a-input-number v-model="model.depositPrice" placeholder="请输入金" style="width: 100%" />
</a-form-model-item>
</a-col>
<!-- <a-col :span="24">-->
<!-- <a-form-model-item label="金" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="depositPrice">-->
<!-- <a-input-number v-model="model.depositPrice" placeholder="请输入金" style="width: 100%" />-->
<!-- </a-form-model-item>-->
<!-- </a-col>-->
<a-col :span="24">
<a-form-model-item label="排序" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sort">
<a-input-number v-model="model.sort" placeholder="请输入排序" style="width: 100%" />


+ 1
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/entity/HanHaiMember.java View File

@ -201,6 +201,7 @@ public class HanHaiMember implements Serializable {
@ApiModelProperty(value = "是否分销商")
private java.lang.String isDai;
/**绑定的店铺id*/
@Dict(dictTable = "hotel_shop",dicCode = "id",dicText = "name")
private String shopId;
@TableField(exist = false)
private HotelMemberAccount wallet;


+ 10
- 31
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hanHaiMember/vue/HanHaiMemberList.vue View File

@ -10,8 +10,8 @@
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="邀请人">
<j-search-select-tag placeholder="请选择邀请人" v-model="queryParam.vid" dict="han_hai_member,nick_name,id"/>
<a-form-item label="水洗店">
<j-search-select-tag placeholder="请选择水洗店" v-model="queryParam.shopId" dict="hotel_shop,name,id"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
@ -32,10 +32,10 @@
<!-- 操作按钮区域 -->
<div class="table-operator">
<a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('用户表')">导出</a-button>
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
<a-button type="primary" icon="import">导入</a-button>
</a-upload>
<!-- <a-button type="primary" icon="download" @click="handleExportXls('用户表')">导出</a-button>-->
<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">-->
<!-- <a-button type="primary" icon="import">导入</a-button>-->
<!-- </a-upload>-->
<!-- 高级查询区域 -->
<j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
<a-dropdown v-if="selectedRowKeys.length > 0">
@ -160,36 +160,15 @@
scopedSlots: {customRender: 'imgSlot'}
},
{
title:'手机号码',
title:'小程序标识',
align:"center",
sorter: true,
dataIndex: 'phone'
dataIndex: 'appletOpenid'
},
{
title:'公众号openid',
title:'绑定水洗店',
align:"center",
dataIndex: 'officialOpenid'
},
{
title:'邀请人',
align:"center",
dataIndex: 'vid_dictText'
},
{
title:'邀请时间',
align:"center",
dataIndex: 'vtime'
},
{
title:'性别',
align:"center",
dataIndex: 'sex'
},
{
title:'是否分销商',
align:"center",
dataIndex: 'isDai',
customRender: (text) => (text ? filterMultiDictText(this.dictOptions['isDai'], text) : ''),
dataIndex: 'shopId_dictText'
},
{
title: '操作',


+ 40
- 3
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelgoods/controller/HotelGoodsController.java View File

@ -1,14 +1,15 @@
package org.jeecg.modules.hotelgoods.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
@ -20,12 +21,15 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.hotelgoodssku.entity.HotelGoodsSku;
import org.jeecg.modules.hotelgoodssku.service.IHotelGoodsSkuService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
import org.jeecg.common.system.base.controller.JeecgController;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -49,6 +53,8 @@ import org.jeecg.common.aspect.annotation.AutoLog;
public class HotelGoodsController extends JeecgController<HotelGoods, IHotelGoodsService> {
@Autowired
private IHotelGoodsService hotelGoodsService;
@Resource
private IHotelGoodsSkuService hotelGoodsSkuService;
/**
* 分页列表查询
@ -168,4 +174,35 @@ public class HotelGoodsController extends JeecgController<HotelGoods, IHotelGood
return super.importExcel(request, response, HotelGoods.class);
}
@GetMapping(value = "/copy")
public Result<?> copyGoods(@RequestParam(name="id",required=true) String id){
HotelGoods hotelGoods = hotelGoodsService.getById(id);
List<HotelGoodsSku> hotelGoodsSkus = hotelGoodsSkuService.lambdaQuery()
.eq(HotelGoodsSku::getGoodsId, hotelGoods.getId())
.eq(HotelGoodsSku::getDelFlag, 0)
.list();
HotelGoods hotelGoods1 = new HotelGoods();
BeanUtils.copyProperties(hotelGoods,hotelGoods1);
hotelGoods1.setId(IdWorker.getIdStr());
hotelGoods1.setName(hotelGoods1.getName()+"-副本");
hotelGoods1.setUpFlag(0);
hotelGoods1.setCreateTime(new Date());
List<HotelGoodsSku> hotelGoodsSkus1 = new ArrayList<>();
for (HotelGoodsSku hotelGoodsSku:hotelGoodsSkus){
HotelGoodsSku hotelGoodsSku1 = new HotelGoodsSku();
BeanUtils.copyProperties(hotelGoodsSku,hotelGoodsSku1);
hotelGoodsSku1.setId(IdWorker.getIdStr());
hotelGoodsSku1.setGoodsId(hotelGoods1.getId());
hotelGoodsSkus1.add(hotelGoodsSku1);
}
hotelGoodsService.save(hotelGoods1);
hotelGoodsSkuService.saveBatch(hotelGoodsSkus1);
return Result.OK();
}
}

+ 2
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelgoods/entity/HotelGoods.java View File

@ -100,4 +100,6 @@ public class HotelGoods implements Serializable {
/**押金*/
@TableField(exist = false)
private BigDecimal depositPrice;
@TableField(exist = false)
private String categoryName;
}

+ 2
- 0
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/modules/hotelgoodssku/entity/HotelGoodsSku.java View File

@ -80,4 +80,6 @@ public class HotelGoodsSku implements Serializable {
private BigDecimal originalPrice;
/**分类id*/
private String categoryId;
/**颜色*/
private String colour;
}

+ 7
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/conf/controller/ConfController.java View File

@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.xcx.conf.service.IConfService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -31,4 +32,10 @@ public class ConfController {
public Result<?> getCoupon(){
return confService.getCoupon();
}
@ApiOperation("获取配置")
@PostMapping("/one")
public Result<?> getConf(String name){
return confService.getConf(name);
}
}

+ 7
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/conf/service/IConfService.java View File

@ -16,4 +16,11 @@ public interface IConfService {
*/
Result<?> getCoupon();
/**
* 获取配置
* @param name
* @return
*/
Result<?> getConf(String name);
}

+ 5
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/conf/service/impl/ConfServiceImpl.java View File

@ -44,4 +44,9 @@ public class ConfServiceImpl implements IConfService {
map.put("leaseCouponCondition",leaseCouponCondition);
return Result.OK(map);
}
@Override
public Result<?> getConf(String name) {
return Result.OK(hotelConfService.getConf(name));
}
}

+ 10
- 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/goods/service/impl/GoodsServiceImpl.java View File

@ -9,6 +9,8 @@ import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.config.shiro.ShiroRealm;
import org.jeecg.modules.hanHaiMember.entity.HanHaiMember;
import org.jeecg.modules.hotelcategory.entity.HotelCategory;
import org.jeecg.modules.hotelcategory.service.IHotelCategoryService;
import org.jeecg.modules.hotelconf.service.IHotelConfService;
import org.jeecg.modules.hotelgoods.entity.HotelGoods;
import org.jeecg.modules.hotelgoods.service.IHotelGoodsService;
@ -46,6 +48,8 @@ public class GoodsServiceImpl implements IGoodsService {
private RedisUtil redisUtil;
@Resource
private IHotelConfService hotelConfService;
@Resource
private IHotelCategoryService hotelCategoryService;
@ -93,6 +97,12 @@ public class GoodsServiceImpl implements IGoodsService {
BigDecimal depositPrice = new BigDecimal(hotelConfService.getConf("depositPrice"));
hotelGoods.setDepositPrice(depositPrice);
HotelCategory hotelCategory = hotelCategoryService.lambdaQuery()
.eq(HotelCategory::getDelFlag, 0)
.eq(HotelCategory::getId, hotelGoods.getCategoryId())
.one();
hotelGoods.setCategoryName(hotelCategory.getName());
hotelGoods.setHotelGoodsSkuList(hotelGoodsSkus);
return Result.OK(hotelGoods);


+ 1
- 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/xcx/order/service/impl/OrderServiceImpl.java View File

@ -1872,8 +1872,7 @@ public class OrderServiceImpl implements IOrderService {
}
HotelOrder hotelOrder1 = new HotelOrder();
hotelOrder1.setId(hotelOrder.getId());
hotelOrder1.setDelFlag(1);
hotelOrderService.updateById(hotelOrder1);
hotelOrderService.removeById(hotelOrder1);
return Result.OK();
}


+ 4
- 4
jeecg-boot-module-system/src/main/resources/application-dev.yml View File

@ -134,7 +134,7 @@ spring:
# connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
master:
url: jdbc:mysql://127.0.0.1:3306/hotel-api?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false
url: jdbc:mysql://124.220.65.222:3306/hotel-api?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false
username: root
password: m`A_E+`m
driver-class-name: com.mysql.cj.jdbc.Driver
@ -147,7 +147,7 @@ spring:
#redis 配置
redis:
database: 0
host: 127.0.0.1
host: 124.220.65.222
lettuce:
pool:
max-active: -1 #最大连接数据库连接数,设 -1 为没有限制
@ -333,5 +333,5 @@ third-app:
weixin:
mpAppId: wxad5b3d20a75974c0
mpAppSecret: 3b60a80c8e673986dd42f3cd6f2cf6b1
orderNotifyUrl: https://hotel.java996.icu/hotel/order/notify
replaceOrderNotifyUrl: https://hotel.java996.icu/hotel/order/replace/notify
orderNotifyUrl: http://dev.java996.icu/hotel/order/notify
replaceOrderNotifyUrl: http://dev.java996.icu/hotel/order/replace/notify

+ 3
- 3
jeecg-boot-module-system/src/main/resources/application-test.yml View File

@ -134,12 +134,12 @@ spring:
# connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
master:
url: jdbc:mysql://124.220.65.222:3306/hotel-api?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false
url: jdbc:mysql://127.0.0.1:3306/hotel-api?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai&autoReconnect=true&failOverReadOnly=false
username: root
password: m`A_E+`m
driver-class-name: com.mysql.cj.jdbc.Driver
# 多数据源配置
#multi-datasource1:
#multi-datasource1:124.220.65.222
#url: jdbc:mysql://localhost:3306/jeecg-boot2?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
#username: root
#password: root
@ -147,7 +147,7 @@ spring:
#redis 配置
redis:
database: 0
host: 124.220.65.222
host: 127.0.0.1
lettuce:
pool:
max-active: -1 #最大连接数据库连接数,设 -1 为没有限制


Loading…
Cancel
Save