上线前最终调整

This commit is contained in:
mactj 2021-01-21 19:04:31 +08:00
parent 805dcebb81
commit f5f13295bb
19 changed files with 281 additions and 73 deletions

View File

@ -117,18 +117,26 @@ public class AppActivityController extends BaseController {
return toAjax(iAppActivityService.removeByIds(Arrays.asList(ids)) ? 1 : 0); return toAjax(iAppActivityService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
} }
/**
* 审核中接口
*/
@GetMapping("/open/hotSwitch")
public AjaxResult openHotSwitch() {
return AjaxResult.success(true);
}
/** /**
* 查询活动列表(开放) * 首页跑马灯
*/ */
@GetMapping("/open/notice") @GetMapping("/open/notice")
public AjaxResult openNotice() { public AjaxResult openNotice() {
// String notice =
// "手机尾号4707的用户购买了「山之语·赤霞珠干红葡萄酒」, " +
// "手机尾号5266的用户购买了「2021辛丑牛年纪念酒」" +
// "手机尾号3062的用户购买了「留世传奇红葡萄酒」";
String notice = "客服热线请致电17395097925";
String notice =
"手机尾号4707的用户购买了「山之语·赤霞珠干红葡萄酒」, " +
"手机尾号5266的用户购买了「2021辛丑牛年纪念酒」" +
"手机尾号3062的用户购买了「留世传奇红葡萄酒」";
return AjaxResult.success(notice); return AjaxResult.success(notice);
} }

View File

@ -241,6 +241,12 @@ public class AppOrderController extends BaseController {
@Log(title = "订单", businessType = BusinessType.UPDATE) @Log(title = "订单", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody AppOrder appOrder) { public AjaxResult edit(@RequestBody AppOrder appOrder) {
// 0=待支付,1=已取消,2=已支付,3=待收货,4=交易完成
if (appOrder.getStatus() == 1) {
appOrder.setCancelTime(DateUtils.getNowDate());
}
return toAjax(iAppOrderService.updateById(appOrder) ? 1 : 0); return toAjax(iAppOrderService.updateById(appOrder) ? 1 : 0);
} }
@ -266,4 +272,7 @@ public class AppOrderController extends BaseController {
// TODO 根据自己业务场景需要构造返回对象 // TODO 根据自己业务场景需要构造返回对象
return WxPayNotifyResponse.success("成功"); return WxPayNotifyResponse.success("成功");
} }
} }

View File

@ -157,7 +157,7 @@ public class AppOrderDetailController extends BaseController {
return toAjax(iAppOrderDetailService.removeByIds(Arrays.asList(ids)) ? 1 : 0); return toAjax(iAppOrderDetailService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
} }
@PreAuthorize("@ss.hasPermi('winery:detail:remove')") @PreAuthorize("@ss.hasPermi('winery:detail:refund')")
@Log(title = "退款", businessType = BusinessType.OTHER) @Log(title = "退款", businessType = BusinessType.OTHER)
@PostMapping("/refund/{id}") @PostMapping("/refund/{id}")
AjaxResult refund(@PathVariable String id) { AjaxResult refund(@PathVariable String id) {

View File

@ -86,6 +86,11 @@ public class GoodsMainController extends BaseController {
if (StringUtils.isNotBlank(goodsMain.getGoodsImg())) { if (StringUtils.isNotBlank(goodsMain.getGoodsImg())) {
lqw.eq(GoodsMain::getGoodsImg, goodsMain.getGoodsImg()); lqw.eq(GoodsMain::getGoodsImg, goodsMain.getGoodsImg());
} }
if (isMiniUser()) {
lqw.eq(GoodsMain::getState, 1);
}
lqw.orderByAsc(GoodsMain::getSort); lqw.orderByAsc(GoodsMain::getSort);
List<GoodsMain> list = iWineryGoodsService.list(lqw); List<GoodsMain> list = iWineryGoodsService.list(lqw);

View File

@ -101,7 +101,6 @@ public class AppOrderDetail implements Serializable {
@Excel(name = "退款理由") @Excel(name = "退款理由")
private String refundReason; private String refundReason;
/** /**
* 创建时间 * 创建时间
*/ */

View File

@ -1,8 +1,8 @@
X:完成 x:完成
域名[x] 域名[x]
注册[X] 注册[x]
登录[X] 登录[x]
首页装修[x] 首页装修[x]
资讯/酒庄信息管理[x] 资讯/酒庄信息管理[x]
采集酒庄介绍(图标/图片)[6/12] 采集酒庄介绍(图标/图片)[6/12]
@ -18,16 +18,21 @@
紫环会[x] 紫环会[x]
发货单excel输出[x] 发货单excel输出[x]
我的[x] 我的[x]
******---------------******
公众号专题链接列表[]
公众号专题链接列表[x]
产品追溯[] 产品追溯[]
视频直播[] 视频直播[]
新品推荐[] 新品推荐[]
用户协议/隐私政策[]
小程序图标[] 用户协议/隐私政策[x]
小程序图标[x]
退款申请[] 退款申请[]
物流追踪[] 物流追踪[]
订单跟踪[]
发货单excel导入[] 发货单excel导入[]

View File

@ -23,7 +23,7 @@
} }
}, },
"compileType": "miniprogram", "compileType": "miniprogram",
"appid": "wx76ec015fc31a1946", "appid": "wx4306452d346f783d",
"projectname": "mini-app", "projectname": "mini-app",
"miniprogramRoot": "weapp/", "miniprogramRoot": "weapp/",
"simulatorType": "wechat", "simulatorType": "wechat",

View File

@ -30,6 +30,12 @@ class MallApis {
}) })
} }
getHotSwitch() {
return request.get({
url: baseUrl + 'winery/activity/open/hotSwitch'
})
}
getNotice() { getNotice() {
return request.get({ return request.get({
url: baseUrl + 'winery/activity/open/notice' url: baseUrl + 'winery/activity/open/notice'

View File

@ -30,6 +30,13 @@ class OrderApis {
}) })
} }
editOrder(data) {
return request.put({
url: baseUrl + 'winery/order',
data: data
})
}
getOrderDetailList(data) { getOrderDetailList(data) {
return request.get({ return request.get({
url: baseUrl + 'winery/detail/list', url: baseUrl + 'winery/detail/list',

View File

@ -47,8 +47,7 @@ default:
break break
} }
console.log("123:",status)
console.log("123:",result)
return result return result

View File

@ -47,14 +47,36 @@ default:
break break
} }
return result return result
}
const parseOrderDetailStatus = (status) => {
let result = '未知状态'
switch(status) {
case 0:
result = '未退款'
break
case 1:
result = '退款申请'
break
case 2:
result = '退款中'
break
case 3:
result = '退款成功'
break
default:
break
} }
return result
}
module.exports.parseImage = parseImage; module.exports.parseImage = parseImage;
module.exports.parseOrderStatus = parseOrderStatus; module.exports.parseOrderStatus = parseOrderStatus;
module.exports.parseOrderDetailStatus = parseOrderDetailStatus;
</wxs> </wxs>
<template> <template>
@ -83,19 +105,41 @@ module.exports.parseOrderStatus = parseOrderStatus;
:title="item.goods.goodsName" :title="item.goods.goodsName"
:thumb="filters.parseImage(item.goods.goodsFaceImg)" :thumb="filters.parseImage(item.goods.goodsFaceImg)"
> >
<view slot="footer"> <view slot="footer" style="display: flex; flex-direction: column;text-align: left;">
<van-button v-if="row.status === 2 || row.status === 4" size="mini" plain @tap="onRefund(item)">申请退款
</van-button>
<van-button size="mini" plain @tap="onDetail(item)" style="margin-left: 10px;margin-top: 10px;">查看详情</van-button>
<div style="display:flex;align-items: center;width: 100%; justify-content: flex-end;">
<van-tag v-if="item.status !== 0" color="#ffe1e1" text-color="#ad0000">
{{filters.parseOrderDetailStatus(item.status)}}
</van-tag>
<van-button v-else-if="(row.status === 2 || row.status === 4) && item.status === 0" size="mini" plain
@tap="onRefund(item)">申请退款
</van-button>
<van-button size="mini" plain @tap="onDetail(item)" style="margin-left: 10px;">商品详情</van-button>
</div>
</view> </view>
</van-card> </van-card>
</div>
<div v-if="row.status === 0"> <div style="padding: 15px;">
<van-divider /> <div style="display: flex;margin-top: 10px;align-items: center;width: 100%;">
<van-button style="float: right;margin-right: 16px;" size="mini" plain @tap="onPay(row)">继续支付</van-button> <span style="color: #333; font-size: 13px;">收货人:{{row.postName}}</span> <span
style="margin-left: 5px; color: #999999; font-size: 12px;">{{row.postMobile}}</span>
</div> </div>
<div
style="display: flex;margin-top: 5px;align-items: center;width: 100%;flex-wrap: wrap;">
<span style="color: #333; font-size: 13px;">
收货地址:{{row.postRegion}}{{row.postAddress}}
</span>
</div>
</div>
<div v-if="row.status === 0">
<van-divider />
<div style="float: right;margin-right: 16px;display: flex;">
<van-button size="mini" plain @tap="onPay(row)">继续支付</van-button>
<van-button size="mini" plain @tap="onCancel(row)" style="margin-left: 10px;">取消订单</van-button>
</div>
</div> </div>
</div> </div>
</view> </view>
@ -113,6 +157,7 @@ import appManager from '../../../appManager'
import orderApis from '../../../apis/orderApis' import orderApis from '../../../apis/orderApis'
import { goodsDetailPage } from '../../../store/constant/nav/pages' import { goodsDetailPage } from '../../../store/constant/nav/pages'
import eventHub from '../../../common/eventHub'
wepy.component({ wepy.component({
store, store,
@ -140,13 +185,22 @@ wepy.component({
onRefund(item) { onRefund(item) {
// 申请退款 // 申请退款
orderApis.refundOrder(item.id) appManager.showToast('即将开放:如需联系退款请拨打客服热线17395097925')
}, },
onDetail(item) { onDetail(item) {
appManager.navigateTo(goodsDetailPage + '?id=' + item.goods.id) appManager.navigateTo(goodsDetailPage + '?id=' + item.goods.id)
}, },
onCancel(item) {
let data = {
id: item.id,
status: 1
}
orderApis.editOrder(data).then(r => {
appManager.showToast(r.msg)
this.$emit('reload')
})
},
onPay(item) { onPay(item) {
let self = this let self = this
console.log(item) console.log(item)
let payData = JSON.parse(item.payMsg) let payData = JSON.parse(item.payMsg)
@ -189,11 +243,12 @@ wepy.component({
}, },
ready() { ready() {
console.log('ready') eventHub.$on('refreshOrderList', (...args) => {
this.init()
})
this.init() this.init()
}, },
onShow() { onShow() {
console.log('onShow')
this.init() this.init()
} }
}) })

View File

@ -100,7 +100,7 @@ module.exports.parseImage = parseImage;
<span style="font-size: 11px;color: #999999;">{{user.mobile}}</span> <span style="font-size: 11px;color: #999999;">{{user.mobile}}</span>
</div> </div>
</van-col> </van-col>
<van-col offset="1" span="7"> <van-col offset="1" span="7" v-if="hotSwitch">
<van-button round style="height: 25px;" size="small" plain color="#AC1630" @tap="onShoppingCar"> <van-button round style="height: 25px;" size="small" plain color="#AC1630" @tap="onShoppingCar">
<van-icon name="shopping-cart-o" color="#AC1630" /> <van-icon name="shopping-cart-o" color="#AC1630" />
<span style="margin-left: 5px;color: #333333;">购物车</span> <span style="margin-left: 5px;color: #333333;">购物车</span>
@ -120,7 +120,7 @@ module.exports.parseImage = parseImage;
</van-notice-bar> </van-notice-bar>
<van-row style="margin-top: 20px;"> <van-row style="margin-top: 20px;" v-if="hotSwitch">
<van-col span="11"> <van-col span="11">
@ -148,7 +148,7 @@ module.exports.parseImage = parseImage;
</van-row> </van-row>
<div class="grid-body"> <div class="grid-body" v-if="hotSwitch">
<van-grid column-num="3" border="{{ false }}" style="margin-top: 15px;"> <van-grid column-num="3" border="{{ false }}" style="margin-top: 15px;">
<van-grid-item use-slot v-for=" (item, index) in navDefine.HOME_MENU_LIST" @tap="onNavItem(item)"> <van-grid-item use-slot v-for=" (item, index) in navDefine.HOME_MENU_LIST" @tap="onNavItem(item)">
@ -240,7 +240,8 @@ wepy.component({
...mapState({ ...mapState({
'imageDefine': state => state.imageDefine, 'imageDefine': state => state.imageDefine,
'user': state => state.user, 'user': state => state.user,
'navDefine': state => state.navDefine 'navDefine': state => state.navDefine,
'hotSwitch': state => state.hotSwitch
}) })
}, },

View File

@ -0,0 +1,101 @@
<wxs module="filters" lang="babel">
const parseImage = (imageKey) => {
return 'https://winery-1257413599.cos.ap-beijing.myqcloud.com/' + imageKey
}
module.exports.parseImage = parseImage;
</wxs>
<style lang="less">
.header {
width: 100%;
height: 536rpx;
z-index: -10;
}
</style>
<template>
<div>
<van-dialog
use-slot
title="退款申请"
:show="isShow"
show-cancel-button
bind:close="onClose"
bind:cancel="onClose"
bind:confirm="onConfirm"
:asyncClose="true"
>
<van-card
:num="item.goodsCount"
:price="item.goodsCount * item.goods.goodsPrice"
:desc="item.goods.goodsAlias"
:title="item.goods.goodsName"
:thumb="filters.parseImage(item.goods.goodsFaceImg)"
>
</van-card>
</van-dialog>
</div>
</template>
<script>
import wepy from '@wepy/core'
import store from '@/store'
import { mapActions, mapState } from '@wepy/x'
import eventHub from '../../common/eventHub'
import appManager from '../../appManager'
wepy.component({
store,
props: {
item: {}
},
hooks: {},
data: {
isShow: false
},
computed: {
...mapState({
'imageDefine': state => state.imageDefine
})
},
events: {},
methods: {
...mapActions([
]),
onConfirm(event) {
},
onClose() {
this.isShow = false
}
},
ready() {
}
})
</script>
<config>
{
navigationBarTitleText: ''
}
</config>

View File

@ -94,7 +94,15 @@ wepy.component({
isChecked: false isChecked: false
}, },
computed: mapState(['user']), // computed: mapState(['user']),
computed: {
...mapState({
'user': state => state.user,
'hotSwitch': state => state.hotSwitch
})
},
events: {}, events: {},
methods: { methods: {

View File

@ -28,8 +28,8 @@ return `${hour}:${mins}:${sec}.${milli}`;
module.exports.getTime = getTime; module.exports.getTime = getTime;
</wxs> </wxs>
<template> <template>
<van-tabbar active="{{ pageIndex }}" bind:change="onChange" fixed active-color="#AC1630"> <van-tabbar v-if="hotSwitch" active="{{ pageIndex }}" bind:change="onChange" fixed active-color="#AC1630">
<van-tabbar-item > <van-tabbar-item>
<image <image
slot="icon" slot="icon"
:src="imageDefine.TAP_BAR_ICON1_OFF" :src="imageDefine.TAP_BAR_ICON1_OFF"
@ -44,7 +44,7 @@ module.exports.getTime = getTime;
/> />
首页 首页
</van-tabbar-item> </van-tabbar-item>
<van-tabbar-item > <van-tabbar-item>
<image <image
slot="icon" slot="icon"
:src="imageDefine.TAP_BAR_ICON2_OFF" :src="imageDefine.TAP_BAR_ICON2_OFF"
@ -59,7 +59,7 @@ module.exports.getTime = getTime;
/> />
福利购 福利购
</van-tabbar-item> </van-tabbar-item>
<van-tabbar-item > <van-tabbar-item>
<image <image
slot="icon" slot="icon"
:src="imageDefine.TAP_BAR_ICON3_OFF" :src="imageDefine.TAP_BAR_ICON3_OFF"
@ -74,7 +74,7 @@ module.exports.getTime = getTime;
/> />
紫环会 紫环会
</van-tabbar-item> </van-tabbar-item>
<van-tabbar-item > <van-tabbar-item>
<image <image
slot="icon" slot="icon"
:src="imageDefine.TAP_BAR_ICON4_OFF" :src="imageDefine.TAP_BAR_ICON4_OFF"
@ -107,6 +107,7 @@ import userApis from '../../apis/userApis'
import appManager from '../../appManager' import appManager from '../../appManager'
import eventHub from '../../common/eventHub' import eventHub from '../../common/eventHub'
import defaultMix from '../../mixins/defaultMix' import defaultMix from '../../mixins/defaultMix'
import mallApis from '../../apis/mallApis'
wepy.page({ wepy.page({
store, store,
@ -120,7 +121,8 @@ wepy.page({
computed: { computed: {
...mapState({ ...mapState({
'imageDefine': state => state.imageDefine, 'imageDefine': state => state.imageDefine,
'user': state => state.user 'user': state => state.user,
'hotSwitch': state => state.hotSwitch
}) })
}, },
@ -146,12 +148,21 @@ wepy.page({
}, },
changeTab(index) { changeTab(index) {
this.pageIndex = index this.pageIndex = index
},
init() {
mallApis.getHotSwitch().then(r => {
store.state.hotSwitch = r.data
appManager.login()
})
} }
}, },
ready() { ready() {
appManager.login() this.init()
// appManager.login()
}, },
onShow() { onShow() {
} }

View File

@ -19,23 +19,25 @@ module.exports.parseImage = parseImage;
<van-tabs active="{{ activeTab }}" bind:change="onChangeTab"> <van-tabs active="{{ activeTab }}" bind:change="onChangeTab">
<van-tab title="全部"> <van-tab title="全部">
<order-list-body /> <order-list-body @reload="reload" />
</van-tab> </van-tab>
<van-tab title="待支付"> <van-tab title="待支付">
<order-list-body status="0" /> <order-list-body @reload="reload" status="0" />
</van-tab> </van-tab>
<van-tab title="待收货"> <van-tab title="待收货">
<order-list-body status="2" /> <order-list-body @reload="reload" status="2" />
</van-tab> </van-tab>
<van-tab title="交易完成"> <van-tab title="交易完成">
<order-list-body status="3" /> <order-list-body @reload="reload" status="3" />
</van-tab> </van-tab>
<van-tab title="已取消"> <van-tab title="已取消">
<order-list-body status="1" /> <order-list-body @reload="reload" status="1" />
</van-tab> </van-tab>
</van-tabs> </van-tabs>
<!-- <dialog-refund />-->
</div> </div>
</template> </template>
@ -50,6 +52,7 @@ import appManager from '../../../appManager'
import addressApis from '../../../apis/addressApis' import addressApis from '../../../apis/addressApis'
import { userAddressPage } from '../../../store/constant/nav/home' import { userAddressPage } from '../../../store/constant/nav/home'
import orderApis from '../../../apis/orderApis' import orderApis from '../../../apis/orderApis'
import eventHub from '../../../common/eventHub'
wepy.page({ wepy.page({
store, store,
@ -75,30 +78,16 @@ wepy.page({
onChangeTab(e) { onChangeTab(e) {
this.activeTab = e.$wx.detail.index this.activeTab = e.$wx.detail.index
}, },
async init() { reload() {
// this.isInit = false eventHub.$emit('refreshOrderList')
// const req = await orderApis.getOrderList()
//
// if (req.code === 200) {
// this.records = req.rows
// }
//
// this.isInit = true
} }
}, },
onLoad(options) { onLoad(options) {
if (options.orderStatus) { if (options.orderStatus) {
this.activeTab = Number(options.orderStatus) this.activeTab = Number(options.orderStatus)
} }
}, },
ready() { ready() {
this.init()
},
onShow() {
this.init()
} }
}) })
</script> </script>
@ -108,7 +97,8 @@ navigationBarTitleText: '',
usingComponents: { usingComponents: {
'order-list-body': '../../../components/mall/order/order-list-body', 'order-list-body': '../../../components/mall/order/order-list-body',
'order-detail-body': '../../../components/mall/order/order-detail-body' 'order-detail-body': '../../../components/mall/order/order-detail-body',
'dialog-refund': '../../../components/order/dialog-refund'
} }

View File

@ -43,9 +43,9 @@
<div v-if="records.length < 1" style="display: flex;flex-direction: column;align-items: center;width: 100%;"> <div v-if="records.length < 1" style="display: flex;flex-direction: column;align-items: center;width: 100%;">
<van-empty description="您还没有添加收货地址" /> <van-empty description="您还没有添加收货地址" />
<div style="width: 600rpx;"> <!-- <div style="width: 600rpx;">-->
<van-button round type="info" size="large" @tap="onAdd">点击添加</van-button> <!-- <van-button round type="info" size="large" @tap="onAdd">点击添加</van-button>-->
</div> <!-- </div>-->
</div> </div>
<div v-for="(item,index) in records" class="address-item" <div v-for="(item,index) in records" class="address-item"

View File

@ -17,7 +17,10 @@ export default new Vuex.Store({
token: '', token: '',
company: '企业名称', company: '企业名称',
currWebUrl: '' currWebUrl: ''
}, },
// 热开关
hotSwitch: false,
// 订单 // 订单
order: {}, order: {},
// 购物车 // 购物车
@ -52,9 +55,7 @@ export default new Vuex.Store({
state.order = order state.order = order
}, },
setShoppingCar(state, shoppingCar) { setShoppingCar(state, shoppingCar) {
state.shoppingCar = shoppingCar state.shoppingCar = shoppingCar
} }
}, },

View File

@ -205,7 +205,10 @@ tencent-cos:
#微信小程序支付配置 #微信小程序支付配置
wxmini: wxmini:
appId: wx76ec015fc31a1946 #微信公众号或者小程序等的appid 必填 # appId: wx76ec015fc31a1946 #微信公众号或者小程序等的appid 必填
appId: wx4306452d346f783d #微信公众号或者小程序等的appid 必填
# secret: 94ee42c0899a6ceccf353e1e729c50d4 #微信小程序的Secret
secret: dc55bc1729090bdff9b63e1a5f0d03b2 #微信小程序的Secret
mchId: 1486984962 mchId: 1486984962
mchKey: 82aZ9Tb6eu5W2HdXKQWZU2SztU8w8nJ8 mchKey: 82aZ9Tb6eu5W2HdXKQWZU2SztU8w8nJ8
@ -213,7 +216,7 @@ wxmini:
subMchId: #服务商模式下的子商户号 subMchId: #服务商模式下的子商户号
tradeType: JSAPI #交易类型 tradeType: JSAPI #交易类型
keyPath: "classpath:/cert/apiclient_cert1486984962.p12" # p12证书的位置可以指定绝对路径也可以指定类路径以classpath:开头) keyPath: "classpath:/cert/apiclient_cert1486984962.p12" # p12证书的位置可以指定绝对路径也可以指定类路径以classpath:开头)
secret: 94ee42c0899a6ceccf353e1e729c50d4 #微信小程序的Secret
token: xiao4r #微信小程序消息服务器配置的token token: xiao4r #微信小程序消息服务器配置的token
aesKey: jNXajd2sQSMYQNg3rcdMF9HraUJxXF0iswgdMxVik9W #微信小程序消息服务器配置的EncodingAESKey aesKey: jNXajd2sQSMYQNg3rcdMF9HraUJxXF0iswgdMxVik9W #微信小程序消息服务器配置的EncodingAESKey
msgDataFormat: JSON msgDataFormat: JSON