Bladeren bron

1.增加跳过登录
2.增加获取抵用券接口
3.判断是否有抵用券

zhangmengjie 5 jaren geleden
bovenliggende
commit
7e2df6e4ae
6 gewijzigde bestanden met toevoegingen van 111 en 48 verwijderingen
  1. 48 2
      pages/Login.js
  2. 4 4
      pages/buy/buy.js
  3. 42 37
      pages/buy/ticket.js
  4. 5 1
      pages/services/PayUtil.js
  5. 8 4
      pages/services/api.js
  6. 4 0
      pages/services/user.js

+ 48 - 2
pages/Login.js

@@ -24,7 +24,7 @@ export default class Login extends BasePage {
 			<View style={styles.wrapper}>
 				<StatusBar backgroundColor={'white'} translucent={true} barStyle={'dark-content'} />
 				<View style={styles.jump}>
-					<TouchableOpacity style={styles.jumpBtn}>
+					<TouchableOpacity style={styles.jumpBtn} onPress={this.jumpBtn.bind(this)}>
 						<Text style={styles.jumpText}>跳过</Text>
 						<Image source={require('./images/common/arrowRight.png')} />
 					</TouchableOpacity>
@@ -174,6 +174,52 @@ export default class Login extends BasePage {
 		}
 	}
 
+	jumpBtn() {
+		let option = {
+			method: 'POST',
+			body: {
+				channel: '006',
+				deviceCode: this.state.deviceCode,
+				openId: '',
+				unionId: '',
+				avatar: '',
+				sex: '',
+				nickName: ''
+			}
+		};
+		http_user.jumpLogin(option).then((result) => {
+			if (result.code == 200) {
+				//登陆成功了,可以存储用户数据到本地
+				console.log('====================================');
+				console.log('jumpLogin-result:', result);
+				console.log('====================================');
+				var usermap = new Map();
+				usermap.set('isVisitor', result.data.isVisitor);
+				usermap.set('birthday', result.data.user.birthday);
+				usermap.set('channel', result.data.user.channel);
+				usermap.set('city', result.data.user.city);
+				usermap.set('country', result.data.user.country);
+				usermap.set('eid', result.data.user.eid);
+				usermap.set('gmtCreated', result.data.user.gmtCreated);
+				usermap.set('gmtModified', result.data.user.gmtModified);
+				usermap.set('grade', result.data.user.grade);
+				usermap.set('mobile', result.data.user.mobile);
+				usermap.set('nickName', result.data.user.nickName);
+				usermap.set('province', result.data.user.province);
+				usermap.set('school', result.data.user.school);
+				usermap.set('sex', result.data.user.sex);
+				usermap.set('status', result.data.user.status);
+				usermap.set('uid', result.data.user.uid);
+				usermap.set('ageGroup', result.data.user.ageGroup);
+				usermap.set('avatar', result.data.user.avatar);
+				this.saveUserInfo(commonutil.mapToJson(usermap));
+				this.clearPageToNext('SchoolAge');
+			} else {
+				ToastAndroid.show(result.message, ToastAndroid.SHORT);
+			}
+		});
+	}
+
 	wechatLogin() {
 		wechat.wechatLogin((user) => {
 			let option = {
@@ -184,7 +230,7 @@ export default class Login extends BasePage {
 					openId: user['openid'],
 					unionId: user['unionid'],
 					avatar: user['headimgurl'],
-					sex: +user['sex'],
+					sex: user['sex'],
 					nickName: user['nickname']
 				}
 			};

+ 4 - 4
pages/buy/buy.js

@@ -25,7 +25,7 @@ import Dimensions from '../utils/dimensions';
 import TopicTitle from '../components/TopicTitle';
 import CourseTitle from '../components/CourseTitle';
 import wechat from '../utils/wechat';
-import PayUtil from '../services/PayUtil';
+import PayServer from '../services/Pay';
 import Alipay from 'react-native-yunpeng-alipay';
 
 export default class Buy extends BasePage {
@@ -133,7 +133,7 @@ export default class Buy extends BasePage {
 	};
 
 	async getMember() {
-		await PayUtil.getMember().then((result) => {
+		await PayServer.getMember().then((result) => {
 			this.setState({
 				shopData: result.data
 			});
@@ -172,7 +172,7 @@ export default class Buy extends BasePage {
 					useVoucher: this.state.useTicket
 				};
 
-				PayUtil.payByWechat(params).then((result) => {
+				PayServer.payByWechat(params).then((result) => {
 					wechat.pay(
 						result.data.partnerid,
 						result.data.prepayid,
@@ -197,7 +197,7 @@ export default class Buy extends BasePage {
 					useVoucher: this.state.useTicket
 				};
 				//先请求后台给支付数据
-				PayUtil.payByAli(params_ali).then((result) => {
+				PayServer.payByAli(params_ali).then((result) => {
 					Alipay.pay(result.data.response).then(
 						function(data) {
 							//成功

+ 42 - 37
pages/buy/ticket.js

@@ -19,33 +19,15 @@ import {
 import BasePage from '../BasePage';
 import Dimensions from '../utils/dimensions';
 import CourseTitle from '../components/CourseTitle';
+import PayServer from '../services/Pay';
 
 export default class Ticket extends BasePage {
 	state = {
-		data: [
-			{
-				type: 1,
-				price: 12,
-				num: 6,
-				time: '2019-12-12'
-			},
-			{
-				type: 1,
-				price: 33,
-				num: 9,
-				time: '2019-12-12'
-			},
-			{
-				type: 1,
-				price: 50,
-				limit: '199',
-				time: '2019-12-12'
-			}
-		]
+		ticket_data: []
 	};
 	renderItem = (item, index) => {
 		return (
-			<View style={{ justifyContent: 'center', alignItems: 'center' }}>
+			<View style={{}}>
 				{item.type === 1 ? (
 					// 抵用券
 					<TouchableOpacity
@@ -60,12 +42,12 @@ export default class Ticket extends BasePage {
 						>
 							<View style={{ flex: 0.3 }} />
 							<View style={styles.topInfo}>
-								<View style={{ flex: 1.3 }} />
+								<View style={{ flex: 0.5 }} />
 								<View style={styles.left2}>
 									<Text style={styles.price}>¥{item.price}</Text>
 									<Text style={styles.type}>抵用券</Text>
 								</View>
-								<View style={{ flex: 0.05 }} />
+								<View style={{ flex: 0.2 }} />
 								<View style={styles.right2}>
 									<Text style={{ fontSize: 16, color: 'rgba(22, 22, 22, 1)' }}>
 										购买{item.num}个单课程的奖励
@@ -99,15 +81,12 @@ export default class Ticket extends BasePage {
 										</Text>
 									</ImageBackground>
 								</View>
-								<View style={{ flex: 1.5 }} />
+								<View style={{ flex: 1 }} />
 							</View>
 							<View style={{ flex: 0.2 }} />
 							<View style={styles.bottomInfo}>
-								<View style={{ flex: 1 }} />
 								<Text style={styles.greyText}>注:开通会员时方可使用</Text>
-								<View style={{ flex: 1 }} />
 								<Text style={styles.blueText}>查看订单</Text>
-								<View style={{ flex: 1 }} />
 							</View>
 						</ImageBackground>
 					</TouchableOpacity>
@@ -154,16 +133,42 @@ export default class Ticket extends BasePage {
 				</View>
 				<View style={{ flex: 0.1, backgroundColor: 'rgba(242, 242, 242, 1)' }} />
 				<View style={{ flex: 5, backgroundColor: 'rgba(242, 242, 242, 1)' }}>
-					<FlatList
-						data={this.state.data}
-						horizontal={false}
-						renderItem={({ item, index }) => this.renderItem(item, index)}
-						keyExtractor={(item, index) => index.toString()}
-					/>
+					{this.state.ticket_data.length > 0 ? (
+						<FlatList
+							data={this.state.ticket_data}
+							horizontal={false}
+							renderItem={({ item, index }) => this.renderItem(item, index)}
+							keyExtractor={(item, index) => index.toString()}
+						/>
+					) : (
+						<Text
+							style={{ height: '100%', width: '100%', textAlign: 'center', textAlignVertical: 'center' }}
+						>
+							还没有获取到抵用券
+						</Text>
+					)}
 				</View>
 			</View>
 		);
 	}
+	componentWillMount() {
+		//获取用户优惠券信息
+		this.getVoucher();
+	}
+
+	async getVoucher() {
+		await PayServer.getVoucher().then((result) => {
+			console.log('====================================');
+			console.log('getVoucher', result);
+			console.log('====================================');
+			if (result.data.length == 0) {
+			} else {
+				this.setState({
+					ticket_data: result.data
+				});
+			}
+		});
+	}
 
 	userdiscount = (item) => {
 		if (this.props.navigation.state.params != undefined) {
@@ -190,7 +195,7 @@ const styles = StyleSheet.create({
 		alignItems: 'center'
 	},
 	left2: {
-		flex: 1,
+		flex: 1.2,
 		flexDirection: 'column'
 	},
 	price: {
@@ -204,7 +209,7 @@ const styles = StyleSheet.create({
 		fontWeight: '500'
 	},
 	right2: {
-		flex: 2.8,
+		flex: 3.5,
 		flexDirection: 'column',
 		marginTop: 10
 	},
@@ -214,9 +219,9 @@ const styles = StyleSheet.create({
 		alignItems: 'center'
 	},
 	bottomInfo: {
-		width: '100%',
+		width: '90%',
 		flex: 1,
-		paddingHorizontal: 12,
+		// paddingHorizontal: 12,
 		flexDirection: 'row',
 		alignItems: 'center',
 		justifyContent: 'space-between'

+ 5 - 1
pages/services/PayUtil.js

@@ -5,7 +5,11 @@ import commonUitl from '../utils/commonutil';
 
 export default class PayUtil {
 	static async getMember() {
-		return request(APIConfig.getMember() + '?appCode=' + commonUitl.getAppCode(), { method: 'GET' });
+		return request(APIConfig.getMemberUrl() + '?appCode=' + commonUitl.getAppCode(), { method: 'GET' });
+	}
+
+	static async getVoucher() {
+		return request(APIConfig.getVoucherUrl(), { method: 'GET' });
 	}
 
 	static async payByAli(params) {

+ 8 - 4
pages/services/api.js

@@ -3,8 +3,9 @@ const url = {
 	schedule_url: 'http://ott80test-schedule.yifangjiaoyu.cn/mobile/schedule/',
 	user_url: 'http://ott80test-base.yifangjiaoyu.cn/mobile/user',
 	upload_img: 'http://ott80test-base.yifangjiaoyu.cn/file/upload',
-	getMember: 'http://ott80test-trade.yifangjiaoyu.cn/customer/order/member',
-	pay_url: 'http://ott80test-trade.yifangjiaoyu.cn/mobile'
+	get_member: 'http://ott80test-trade.yifangjiaoyu.cn/customer/order/member',
+	pay_url: 'http://ott80test-trade.yifangjiaoyu.cn/mobile',
+	get_voucher: 'http://ott80test-trade.yifangjiaoyu.cn/mobile/voucher'
 };
 
 export default class APIConfig {
@@ -25,7 +26,10 @@ export default class APIConfig {
 	static getPayUrl() {
 		return url.pay_url;
 	}
-	static getMember() {
-		return url.getMember;
+	static getMemberUrl() {
+		return url.get_member;
+	}
+	static getVoucherUrl() {
+		return url.get_voucher;
 	}
 }

+ 4 - 0
pages/services/user.js

@@ -86,6 +86,10 @@ export default class user {
 	static wechatLogin(opts) {
 		return request(APIConfig.getUserUrl(``), opts);
 	}
+	//跳过
+	static jumpLogin(opts) {
+		return request(APIConfig.getUserUrl(``), opts);
+	}
 }
 
 async function getuid() {