<template>
	<view class="payment_bg">
		<view class="payment_info">
			<view class="people_num"><text>{{peopleNum}}人已测</text></view>
			<view class="price_num"><text>￥{{orderInfo.total}}</text></view>
			<view class="pay_btn_sm" @click="payHandle">{{orderInfo.total}}元解锁专属测试报告</view>
		</view>
		<view class="payment_desc">
			<image src="https://test.jue-ming.com:8849/api/show?filePath=./webo/Charm/paymentPage/pay_scale_desc.png"
				mode="widthFix"></image>
		</view>
		<view class="top_footer">
			<template v-if="hasDiscount">
				<view class="pay_price">
					<!-- <view class='pay_price_y'>优惠价</view> -->
					<view class="pay_price_p">￥{{price}}</view>
					<view class="pro_tag"><text style="margin: 6rpx 5rpx 0 0;">优惠后:</text><text
							class="price">￥{{promotionPrice}}</text></view>
				</view>
				<view style="display: flex;justify-content: center; align-items: center; margin: 20rpx 0;">
					<!-- <view class="people_sy"> 本次优惠剩余名额：{{residueNum}} </view> -->
					<view class="people_sy_time">
						<!-- <uni-countdown :show-day="false" :hour="testHour" :minute="testMinute" :second="testSecond" /> -->
						<text>优惠倒计时：</text><uni-countdown :show-day="true" background-color="#FF9D41" color="#ffffff"
							:start="start" :hour="testHour" :minute="testMinute" :second="testSecond" />
					</view>
				</view>
			</template>
			<view class="pay_btn_lg" @click="payHandle">
				{{hasDiscount? promotionPrice : price}}元解锁专属测试报告
			</view>
		</view>
		<uni-popup ref="popup" type="center">
			<view class="pay_dialog">
				<view class="btn_area">
					<image style="margin-right: 89rpx;" @click="completeHandle"
						src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/complete_btn.png"
						mode="widthFix"></image>
					<image @click="uncompleteHandle"
						src="https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/uncomplete_btn.png"
						mode="widthFix"></image>
				</view>
			</view>
		</uni-popup>
	</view>
</template>

<script>
	import {
		timestampFormatter
	} from '../../utils/util.js'
	export default {
		data() {
			return {
				orderNo: '',
				orderInfo: {},
				peopleNum: 0,
				residueNum: 0, // 剩余名额
				price: 0, // 正常价格
				promotionPrice: 0, // 优惠价格
				promotionEndTime: 0, // 结束时间（时间戳）
				testHour: 0, // 时
				testMinute: 0, // 分
				testSecond: 0, // 秒
				start: false
			}
		},
		onLoad(options) {
			if (options.orderNo) {
				this.orderNo = options.orderNo;
				setTimeout(() => {
					this.payEnsure();
				}, 200)
			}
			this.orderInfo = uni.getStorageSync('orderInfo');
			this.getPeople();
			this.queryPromotion();
		},
		computed: {
			// 是否有折扣
			hasDiscount() {
				let timeSpan = new Date().getTime();
				let endTime = this.promotionEndTime - timeSpan;
				return this.residueNum > 0 && endTime > 0
			}
		},
		methods: {
			payHandle() {
				// #ifdef H5
				this.getH5Pay();
				// #endif
				// #ifdef MP-TOUTIAO
				this.createOrder();
				// #endif
			},
			// 检查订单支付状态
			checkOrder() {
				let _this = this;
				_this.$request
					.get({
						url: `api/wx-pay/queryOrder/${_this.orderNo}`,
						loadingTip: "加载中...",
						data: {},
					})
					.then((res) => {
						uni.hideLoading();
						let resultInfo = JSON.parse(res.data.body)
						if (resultInfo.trade_state === 'SUCCESS') {
							uni.navigateTo({
								url: `/newScale/Charm/testResult?resultId=${this.orderInfo.resultId}&messageShare=1`
							});
						} else {
							return;
						}
					});
			},
			// 拉起微信支付
			getH5Pay(params) {
				let _this = this;
				_this.$request
					.get({
						url: `api/orderInfo/queryOrderByResultIdAndUserId/${this.orderInfo.userId}/${this.orderInfo.resultId}`,
						loadingTip: "加载中...",
						data: {},
					})
					.then((res) => {
						uni.hideLoading();
						if (res.data && res.data.orderStatus === '支付成功') {
							uni.navigateTo({
								url: `/newScale/Charm/testResult?resultId=${this.orderInfo.resultId}&messageShare=1`
							});
						} else {
							// _this.orderInfo.total = _this.hasDiscount ? _this.promotionPrice : _this.price;
							_this.$request
								.post({
									url: "api/wx-pay/h5Pay",
									loadingTip: "加载中...",
									data: _this.orderInfo
								})
								.then((res) => {
									let redirect_url = encodeURI(
										`http://hnhong-duo.com/webo/newScale/Charm/paymentPage?orderNo=${res.data.orderNo}`
									)
									window.location.href = `${res.data.codeUrl}&redirect_url=${redirect_url}`;
								});
						}
					});
			},
			createOrder() {
				let _this = this;
				let params = {
					resultId: _this.orderInfo.resultId,
					subject: _this.orderInfo.description,
					body: _this.orderInfo.description,
					total_amount: _this.orderInfo.total * 100,
					msgPage: "",
				}
				_this.$request
					.post({
						url: "api/douyin/createOrder",
						loadingTip: "加载中...",
						data: params
					})
					.then((res) => {
						_this.orderNo = res.data.orderNo;
						let imageUrl = 'https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/banner1.png';
						_this.payToutiao(
							res.data.orderId,
							res.data.orderToken,
							res.data.orderNo
						);
					});
			},
			payToutiao(orderId, orderToken, orderNo) {
				let _this = this;
				tt.pay({
					orderInfo: {
						order_id: orderId,
						order_token: orderToken,
					},
					service: 5,
					success: (response) => {
						_this.timer = setInterval(() => {
							_this.getQueryOrder(orderNo);
						}, 1000);
					},
					fail: (err) => {
						uni.showToast({
							icon: "none",
							name: "支付失败",
						});
					},
				});
			},
			// 订单状态
			getQueryOrder(orderNo) {
				let _this = this;
				_this.$request
					.get({
						url: `api/douyin/queryOrder/${orderNo}`,
						loadingTip: "加载中...",
						data: {},
					})
					.then((res) => {
						if (res.code == "200") {
							if (res.data.statusCode == "SUCCESS") {
								let imageUrl =
									'https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/banner1.png';
								uni.navigateTo({
									url: `/newScale/Charm/testResult?resultId=${_this.orderInfo.resultId}&messageShare=1`
								});

								clearInterval(_this.timer);
								uni.showToast({
									title: "支付成功",
								});
							} else if (res.data.statusCode == "CLOSED") {
								// console.log("订单支付回调成功===========CLOSED》", _this.trade_state_closed );
							} else {
								clearInterval(_this.timer);
								// console.log("订单支付回调成功CLOSED===========》", _this.trade_state_closed);
							}
						} else {
							uni.showToast({
								title: "支付失败",
							});
						}
					});
			},
			// 查询测试人数
			getPeople() {
				let _this = this;
				_this.$request
					.get({
						url: "record/countByFlag?flag=20210804164957",
						loadingTip: "加载中..."
					})
					.then((res) => {
						_this.peopleNum = res.data + 57000
					});
			},
			payEnsure() {
				// console.log(11111)
				this.$refs.popup.open();
			},
			uncompleteHandle() {
				this.$refs.popup.close();
			},
			completeHandle() {
				uni.showLoading({
					title: ''
				});
				this.checkOrder();
			},
			// 查询优惠信息
			queryPromotion() {
				let _this = this;
				_this.$request
					.get({
						url: `api/promotionInfo/queryPromotionDetail/${this.orderInfo.productId}`,
						loadingTip: "加载中...",
						data: {},
					})
					.then((res) => {
						this.residueNum = res.data.residueNum
						this.price = res.data.price;
						this.promotionPrice = res.data.promotionPrice;
						this.promotionEndTime = new Date(res.data.promotionEndTime).getTime()
						this.getDhms();
						uni.hideLoading();
					});
			},
			// 获取天时分秒
			getDhms() {
				let timeSpan = this.promotionEndTime - new Date().getTime();
				let time = timestampFormatter(timeSpan);
				this.testHour = time.h;
				this.testMinute = time.m;
				this.testSecond = time.s;
				this.start = true;
			}
		}
	}
</script>

<style scoped>
	.payment_bg {
		width: 100%;
		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/payment_bg.png) no-repeat top;
		background-size: 100% auto;
		overflow: hidden;
		padding-bottom: 311rpx;
	}

	.payment_info {
		width: 750rpx;
		height: 531rpx;
		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/Charm/paymentPage/pay_scale_info.png) no-repeat center;
		background-size: cover;
		position: relative;
		margin-top: 143rpx;
		overflow: hidden;
	}

	.payment_info image {
		width: 100%;
		height: auto;
		margin-top: 134rpx;
	}

	.payment_info .pay_btn_sm {
		width: 640rpx;
		height: 73rpx;
		line-height: 73rpx;
		position: absolute;
		left: 55rpx;
		bottom: 73rpx;
		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/pay_button.png) no-repeat center;
		background-size: 100% auto;
		font-family: 'Alibaba PuHuiTi 2.0';
		font-weight: bold;
		font-size: 36rpx;
		color: #FFFFFF;
		text-shadow: 0rpx 0rpx 5rpx rgba(168, 63, 90, 0.5);
		text-align: center;
	}

	.payment_desc image {
		width: 750rpx;
	}

	.pay_btn_lg {
		width: 640rpx;
		height: 73rpx;
		line-height: 73rpx;
		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/pay_button.png) no-repeat center;
		background-size: 100% auto;
		font-family: 'Alibaba PuHuiTi 2.0';
		font-weight: bold;
		font-size: 36rpx;
		color: #FFFFFF;
		text-shadow: 0rpx 0rpx 5rpx rgba(168, 63, 90, 0.5);
		text-align: center;
		margin: 20rpx auto 60rpx;
	}

	.pay_dialog {
		width: 594rpx;
		height: 360rpx;
		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/EQtest/paymentPage/dialog_bg.png) no-repeat top;
		background-size: cover;
		position: fixed;
		top: 540rpx;
		left: 50%;
		transform: translate(-50%, -50%);
	}

	.btn_area {
		margin: 240rpx 0 0 96rpx;
	}

	.btn_area image {
		width: 160rpx;
	}

	.btn_area image:active {
		border: 1rpx solid #999999;
		opacity: 0.8;
		border-radius: 28rpx;
	}

	.people_num {
		margin-top: 177rpx;
	}

	.people_num text {
		min-width: 157rpx;
		height: 44rpx;
		padding: 0 10rpx;
		background: #FFEDF1;
		border-radius: 22rpx;
		font-family: 'Alibaba PuHuiTi 2.0';
		font-size: 28rpx;
		color: #FC716D;
		line-height: 44rpx;
		text-align: center;
		margin-left: 373rpx;
	}

	.price_num {
		margin-top: 72rpx;
	}

	.price_num text {
		min-width: 74rpx;
		font-family: 'Alibaba PuHuiTi 2.0';
		font-weight: normal;
		font-size: 32rpx;
		color: #FC716D;
		line-height: 24rpx;
		margin-left: 374rpx;
	}

	.top_footer {
		width: 750rpx;
		height: 261rpx;
		background: #FFFFFF;
		padding-bottom: 20rpx;
		position: fixed;
		bottom: 0;
	}

	.pay_price {
		box-sizing: border-box;
		display: flex;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		padding: 10px 50rpx 0 50rpx;
	}

	.pay_price_y {
		background-color: #fe605f;
		margin-left: 20px;
		margin-right: 5px;
		color: #ffffff;
	}

	.pay_price_p {
		font-size: 32rpx;
		font-family: Source Han Sans-Bold, Source Han Sans;
		font-weight: 700;
		color: #f94206;
		/* line-height: 38px; */
		margin-left: 10px;
	}

	.radio_class {
		display: flex;
		background-color: #ffffff;
		margin-bottom: 10px;
		padding-left: 10px;
		padding-right: 10px;
		padding-top: 5px;
		border-radius: 5px;
		padding-bottom: 5px;
		align-items: center;
	}

	.radio_class_1 {
		display: flex;
		justify-content: space-around;
	}

	.pay_title {
		text-align: center;
		/* margin-top:38px; */
		font-size: 20px;
		font-family: AlibabaPuHuiTi-Heavy, AlibabaPuHuiTi;
		font-weight: 900;
		color: #500000;
		line-height: 101px;
	}

	.top_page_yh {
		font-size: 14px;
		font-family: Source Han Sans-Regular, Source Han Sans;
		font-weight: 400;
		color: #656c74;
		line-height: 20px;
	}

	.main_scale_gmcp {
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.main_scale_font_gmcp {
		font-size: 16px;
		font-family: Source Han Sans-Medium, Source Han Sans;
		font-weight: 700;
		color: #040000;
	}

	.main_xing_left {
		height: 30px;
		width: 20px;
		margin-right: 20px;
	}

	.main_xing_right {
		height: 30px;
		width: 20px;
		margin-left: 20px;
	}

	.scale_gmcp_connent {
		margin-top: 10px;
		background-color: #ffffff;
		border-radius: 10px 10px 10px 10px;
		opacity: 1;
		padding: 24px 15px;
		margin-bottom: 200px;
		overflow-y: scroll;
	}

	.pub_time {
		margin-top: 5px;
		font-size: 12px;
		font-family: Source Han Sans-Regular, Source Han Sans;
		font-weight: 400;
		color: #c4c4c4;
		line-height: 17px;
	}

	.pub_connnet {
		font-size: 14px;
		font-family: Source Han Sans-Regular, Source Han Sans;
		font-weight: 400;
		color: #3d3d3d;
		line-height: 20px;
	}

	.people_sy {
		font-size: 14px;
		font-family: Source Han Sans-Regular, Source Han Sans;
		font-weight: 400;
		color: #656c74;
		line-height: 20px;
		margin-left: 4px;
	}

	.people_sy_time {
		font-family: 'Alibaba PuHuiTi 2.0';
		font-weight: normal;
		font-size: 32rpx;
		color: #333333;
		line-height: 16rpx;
		display: flex;
		margin-right: 4px;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.time_ol {
		background: linear-gradient(270deg, #ff9d41 0%, #fc3c3c 100%);
		border-radius: 4px 4px 4px 4px;
		padding: 2px;
		color: #ffffff;
	}

	.time_mao {
		color: #ff9d41;
	}

	.pro_tag {
		height: 62rpx;
		padding: 0 20rpx;
		background: url(https://test.jue-ming.com:8849/api/show?filePath=./webo/Charm/paymentPage/price_bg.png) no-repeat center;
		border-radius: 40rpx 40rpx 40rpx 40rpx;
		margin-left: 16rpx;
		color: #ffffff;
		display: flex;
		align-items: center;
		font-family: 'Alibaba PuHuiTi 2.0';
		font-weight: normal;
		font-size: 24rpx;
		color: #FFFFFF;

		.price {
			font-family: 'Alibaba PuHuiTi 2.0';
			font-weight: bold;
			font-size: 40rpx;
			color: #FFFFFF;
			line-height: 16rpx;
		}
	}
</style>