提交 22afd49f authored 作者: yueweilu's avatar yueweilu

我的接口

上级 d6e31643
...@@ -112,6 +112,7 @@ abstract class CommonAPI { ...@@ -112,6 +112,7 @@ abstract class CommonAPI {
} }
/// 8、搜索书籍 /// 8、搜索书籍
///
static Future <List<CourseModel>> searchBooks({ static Future <List<CourseModel>> searchBooks({
int page = 1, int page = 1,
int limit = 20, int limit = 20,
......
...@@ -30,6 +30,7 @@ abstract class LibraryAPI { ...@@ -30,6 +30,7 @@ abstract class LibraryAPI {
} }
/// 3、书籍列表 /// 3、书籍列表
///
static Future <List<CourseModel>> bookList({ static Future <List<CourseModel>> bookList({
int page = 1, int page = 1,
int limit = 20, int limit = 20,
...@@ -47,6 +48,25 @@ abstract class LibraryAPI { ...@@ -47,6 +48,25 @@ abstract class LibraryAPI {
}); });
} }
/// 4、收藏、取消收藏
static Future <bool> love({
required String bookId,
required String isSelect
}) async {
final result = await HttpService.to.post(
'/v1/book/Information/serachDel',
params: {
'book_id':bookId,
'is_select': isSelect
},
);
if (result.data is Map && result.data['is_success'] == 1){
return true;
}
return false;
}
} }
\ No newline at end of file
...@@ -2,4 +2,17 @@ part of apis; ...@@ -2,4 +2,17 @@ part of apis;
abstract class MineAPI { abstract class MineAPI {
/// 1、个人信息以及8个数据
///
static Future <Map<String,dynamic>> userInfo() async {
final result = await HttpService.to.post(
'/v1/members/Information/getMyStatistics',
params: {},
);
if (result.data is! Map ) return {};
return result.data;
}
} }
\ No newline at end of file
part of models;
class ReadModel {
ReadModel({
required this.value,
required this.name,
});
String value;
String name;
}
\ No newline at end of file
...@@ -4,7 +4,14 @@ part of mine; ...@@ -4,7 +4,14 @@ part of mine;
class MineController extends GetxController { class MineController extends GetxController {
// 广告数据
List<AdModel> ads = []; List<AdModel> ads = [];
// 个人信息数据
Map<String,dynamic> userInfo = {'name':'','phone':''};
// 笔记 讨论 错题 收藏
List<ReadModel> reads = [];
// 我的账户数据
List<ReadModel> accounts = [];
// 消息未读数 // 消息未读数
int num = 0; int num = 0;
...@@ -14,6 +21,7 @@ class MineController extends GetxController { ...@@ -14,6 +21,7 @@ class MineController extends GetxController {
void onReady() { void onReady() {
_getAds(); _getAds();
_getNums(); _getNums();
_getInfo();
super.onReady(); super.onReady();
} }
...@@ -30,4 +38,22 @@ class MineController extends GetxController { ...@@ -30,4 +38,22 @@ class MineController extends GetxController {
update(); update();
} }
/// 获取个人信息数据
void _getInfo() async {
userInfo = await MineAPI.userInfo();
reads = [
ReadModel(name: '笔记',value: userInfo['note_nums'].toString()),
ReadModel(name: '讨论',value: userInfo['comment_nums'].toString()),
ReadModel(name: '错题',value: userInfo['wrong_nums'].toString()),
ReadModel(name: '收藏',value: userInfo['collect_nums'].toString())
];
accounts = [
ReadModel(name: '优惠券',value: userInfo['coupon_nums'].toString()),
ReadModel(name: '积分',value: userInfo['integral_nums'].toString()),
ReadModel(name: '紫金币',value: userInfo['bean_nums'].toString()),
ReadModel(name: '订单',value: userInfo['orders_nums'].toString())
];
update();
}
} }
\ No newline at end of file
...@@ -14,6 +14,7 @@ class _MinePageState extends State<MinePage> { ...@@ -14,6 +14,7 @@ class _MinePageState extends State<MinePage> {
return GetBuilder<MineController>( return GetBuilder<MineController>(
init: MineController(), init: MineController(),
builder:(controller) => Scaffold( builder:(controller) => Scaffold(
backgroundColor:Colours.cF9,
appBar: CustomAppBar( appBar: CustomAppBar(
backgroundColor: Colors.transparent, backgroundColor: Colors.transparent,
actions: [ actions: [
...@@ -58,16 +59,18 @@ class _MinePageState extends State<MinePage> { ...@@ -58,16 +59,18 @@ class _MinePageState extends State<MinePage> {
) )
], ],
), ),
body: SingleChildScrollView( body: Container(
color: Colours.cF9,
child: SingleChildScrollView(
child: Container( child: Container(
margin: EdgeInsets.symmetric(horizontal: AppTheme.margin), margin: const EdgeInsets.symmetric(horizontal: AppTheme.margin),
child: Column( child: Column(
children: [ children: [
BuildUser(onTap: (){ BuildUser(userInfo:controller.userInfo,onTap: (){
context.pushNamed(Routes.userInfo); context.pushNamed(Routes.userInfo);
},), },),
Gaps.vGaps10, Gaps.vGaps10,
BuildRead(items: ['1','2','3','4'],), BuildRead(items: controller.reads),
controller.ads.isNotEmpty?Gaps.vGaps10:SizedBox(), controller.ads.isNotEmpty?Gaps.vGaps10:SizedBox(),
controller.ads.isNotEmpty? controller.ads.isNotEmpty?
Container( Container(
...@@ -76,12 +79,20 @@ class _MinePageState extends State<MinePage> { ...@@ -76,12 +79,20 @@ class _MinePageState extends State<MinePage> {
child: BuildBanner(items:controller.ads), child: BuildBanner(items:controller.ads),
):const SizedBox(), ):const SizedBox(),
Gaps.vGaps10, Gaps.vGaps10,
BuildAccount(items: ['1','11','紫荆币','1111'],), BuildAccount(items:controller.accounts,),
Gaps.vGaps10, Gaps.vGaps10,
Container( Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
color: Colors.cyan, color: const Color(0xFFF9F9F9),
boxShadow: [
BoxShadow(
color: const Color(0xFFC7C7C7).withOpacity(0.5),
offset: const Offset(3, 0),
blurRadius: 10.w,
spreadRadius: 0.w,
),
],
), ),
child: Column( child: Column(
children: [ children: [
...@@ -98,6 +109,7 @@ class _MinePageState extends State<MinePage> { ...@@ -98,6 +109,7 @@ class _MinePageState extends State<MinePage> {
), ),
), ),
), ),
),
); );
} }
......
part of mine; part of mine;
class BuildAccount extends StatelessWidget { class BuildAccount extends StatelessWidget {
final List items ; final List<ReadModel> items ;
const BuildAccount({ const BuildAccount({
super.key, super.key,
...@@ -13,20 +13,28 @@ class BuildAccount extends StatelessWidget { ...@@ -13,20 +13,28 @@ class BuildAccount extends StatelessWidget {
return Container( return Container(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
color: Colors.cyan, color: const Color(0xFFF9F9F9),
boxShadow: [
BoxShadow(
color: const Color(0xFFC7C7C7).withOpacity(0.5),
offset: const Offset(3, 0),
blurRadius: 10.w,
spreadRadius: 0.w,
),
],
), ),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Container( Container(
padding: EdgeInsets.only(left: 17,top: 14,bottom: 14,right: 17), padding: const EdgeInsets.only(left: 17,top: 14,bottom: 14,right: 17),
child: Text('我的账户',style: TextStyle(color: Colours.c3,fontSize: 16,height: 1.6,fontWeight: Fonts.medium),), child: const Text('我的账户',style: TextStyle(color: Colours.c3,fontSize: 16,height: 1.6,fontWeight: Fonts.medium),),
), ),
Container( Container(
padding: EdgeInsets.only(bottom: 13,top: 5), padding: const EdgeInsets.only(bottom: 13,top: 5),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: items.map((item){ children: items.map((model){
return Column( return Column(
children: [ children: [
Container( Container(
...@@ -35,13 +43,13 @@ class BuildAccount extends StatelessWidget { ...@@ -35,13 +43,13 @@ class BuildAccount extends StatelessWidget {
color: Colors.green, color: Colors.green,
), ),
Gaps.vGaps5, Gaps.vGaps5,
Text('111',style: TextStyle(fontSize:12.w,height: 1.6,color: Colours.c9),), Text(model.name,style: TextStyle(fontSize:12.w,height: 1.6,color: Colours.c9),),
items.indexOf(item) == 0?Row( items.indexOf(model) == 0?Row(
children: [ children: [
Text('3',style: TextStyle(fontSize: 16,height: 1.6,fontWeight: Fonts.medium,color: AppTheme.primary,),), Text(model.value.toString(),style: TextStyle(fontSize: 16,height: 1.6,fontWeight: Fonts.medium,color: AppTheme.primary,),),
Text('张',style: TextStyle(fontSize: 12,height:1.6,color: Colours.c3),) const Text('张',style: TextStyle(fontSize: 12,height:1.6,color: Colours.c3),)
], ],
):Text('11',style: TextStyle(fontSize: 16,height:1.6,color: Colours.c3),) ):Text(model.value.toString(),style: TextStyle(fontSize: 16,height:1.6,color: Colours.c3),)
], ],
); );
} ).toList(), } ).toList(),
......
...@@ -4,7 +4,7 @@ part of mine; ...@@ -4,7 +4,7 @@ part of mine;
class BuildRead extends StatelessWidget { class BuildRead extends StatelessWidget {
final void Function()? onTap; final void Function()? onTap;
final List items; final List <ReadModel>items;
const BuildRead ({ const BuildRead ({
super.key, super.key,
this.onTap, this.onTap,
...@@ -15,22 +15,28 @@ class BuildRead extends StatelessWidget { ...@@ -15,22 +15,28 @@ class BuildRead extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return GestureDetector( return GestureDetector(
child: Container( child: Container(
padding: EdgeInsets.symmetric(vertical: 16.5), padding: const EdgeInsets.symmetric(vertical: 16.5),
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius:BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
color: Colors.green, color: const Color(0xFFF9F9F9),
boxShadow: [
BoxShadow(
color: const Color(0xFFC7C7C7).withOpacity(0.5),
offset: const Offset(3, 0),
blurRadius: 10.w,
spreadRadius: 0.w,
),
],
), ),
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: items.map((item){ children: items.map((model){
return Container( return Column(
child: Column(
children: [ children: [
Text('3',style: TextStyle(fontSize: 18,height: 1.6,fontWeight: Fonts.medium,color: Colours.c3),), Text(model.value,style: const TextStyle(fontSize: 18,height: 1.6,fontWeight: Fonts.medium,color: Colours.c3),),
Gaps.vGaps5, Gaps.vGaps5,
Text('笔记',style: TextStyle(fontSize: 13,height:1.6,color: Colours.c6)) Text(model.name,style: const TextStyle(fontSize: 13,height:1.6,color: Colours.c6))
], ],
),
); );
}).toList(), }).toList(),
), ),
......
...@@ -4,10 +4,12 @@ part of mine; ...@@ -4,10 +4,12 @@ part of mine;
class BuildUser extends StatelessWidget { class BuildUser extends StatelessWidget {
final void Function()? onTap; final void Function()? onTap;
final Map<String,dynamic> userInfo;
const BuildUser ({ const BuildUser ({
super.key, super.key,
this.onTap, this.onTap,
required this.userInfo
}); });
@override @override
...@@ -23,14 +25,16 @@ class BuildUser extends StatelessWidget { ...@@ -23,14 +25,16 @@ class BuildUser extends StatelessWidget {
), ),
Gaps.hGaps10, Gaps.hGaps10,
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text('八仙过海',style: TextStyle( Text(userInfo.containsKey('name')?userInfo['name']:'',style: TextStyle(
color: Colours.c3, color: Colours.c3,
fontSize: 15.w, fontSize: 15.w,
fontWeight: Fonts.medium, fontWeight: Fonts.medium,
height: 1.6.w height: 1.6.w
),), ),),
Text('1881000000',style: TextStyle( Gaps.vGaps5,
Text(userInfo.containsKey('phone')?userInfo['phone']:'',style: TextStyle(
fontSize: 12.w, fontSize: 12.w,
color: Colours.c6 color: Colours.c6
),) ),)
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论