提交 8277b513 authored 作者: yueweilu's avatar yueweilu

同一注释

上级 9c6fe63b
...@@ -14,6 +14,7 @@ class AdController extends GetxController { ...@@ -14,6 +14,7 @@ class AdController extends GetxController {
startTime(); startTime();
} }
/// 开启定时器
void startTime() { void startTime() {
_timer = Timer.periodic(const Duration(seconds: 1), (timer) { _timer = Timer.periodic(const Duration(seconds: 1), (timer) {
if (_countdown > 0) { if (_countdown > 0) {
......
part of answer; part of answer;
class AnswerController extends GetxController { class AnswerController extends GetxController {
// 刷新token /// 刷新token
Future<String?> refreshToken() async { Future<String?> refreshToken() async {
final result = await CommonAPI.refreshToken(); final result = await CommonAPI.refreshToken();
return result; return result;
......
part of book_detail; part of book_detail;
class BookDetailController extends GetxController with GetSingleTickerProviderStateMixin{ class BookDetailController extends GetxController with GetSingleTickerProviderStateMixin{
// 图书id
final String bookId; final String bookId;
BookDetailController(this.bookId); BookDetailController(this.bookId);
final PageController pageController = PageController(initialPage: 0); final PageController pageController = PageController(initialPage: 0);
List <Widget>tabs = [ List <Widget>tabs = [
const Tab(text: '目录',), const Tab(text: '目录',),
const Tab(text: '编辑推荐',), const Tab(text: '编辑推荐',),
...@@ -15,17 +15,15 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -15,17 +15,15 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
]; ];
late TabController tabController = TabController(length: tabs.length, vsync: this); late TabController tabController = TabController(length: tabs.length, vsync: this);
// 当前章节id
num currentChapterId = 0; num currentChapterId = 0;
// 目录 // 目录
List <ChapterModel> chapters = []; List <ChapterModel> chapters = [];
// 图书 // 图书
BookDetailModel bookDetails = BookDetailModel(); BookDetailModel bookDetails = BookDetailModel();
// 是否能点击 // 是否能点击
bool canTap = true; bool canTap = true;
@override @override
void onReady() { void onReady() {
getBookDetails(); getBookDetails();
...@@ -48,6 +46,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -48,6 +46,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
} }
} }
/// 将当前章节数据写入数据
void writeCurrentReadChapterIdToData(List<ChapterModel> data) { void writeCurrentReadChapterIdToData(List<ChapterModel> data) {
for(ChapterModel cModel in data){ for(ChapterModel cModel in data){
cModel.currentRead = false; cModel.currentRead = false;
...@@ -67,6 +66,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -67,6 +66,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
} }
/// 递归查找章节
ChapterModel? findChapterById(List<ChapterModel> data,num id){ ChapterModel? findChapterById(List<ChapterModel> data,num id){
for (ChapterModel cModel in data){ for (ChapterModel cModel in data){
if(cModel.id == id){ if(cModel.id == id){
...@@ -80,6 +80,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -80,6 +80,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
return null; return null;
} }
/// 递归更新父节点状态
void updateParentsStatus(List<ChapterModel> data, ChapterModel model) { void updateParentsStatus(List<ChapterModel> data, ChapterModel model) {
ChapterModel? parentNode = findParentChapter(data, model); ChapterModel? parentNode = findParentChapter(data, model);
while (parentNode != null) { while (parentNode != null) {
...@@ -88,6 +89,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -88,6 +89,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
} }
} }
/// 寻找父节点
ChapterModel? findParentChapter(List<ChapterModel> data, ChapterModel model){ ChapterModel? findParentChapter(List<ChapterModel> data, ChapterModel model){
for (ChapterModel tModel in data){ for (ChapterModel tModel in data){
if(tModel.id == model.pid){ if(tModel.id == model.pid){
...@@ -101,10 +103,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -101,10 +103,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
return null; return null;
} }
/// 写入特定数据 /// 写入特定数据
void writeData(List<ChapterModel> listA, List<ChapterModel> listB){ void writeData(List<ChapterModel> listA, List<ChapterModel> listB){
for(int i = 0; i < listA.length;i++){ for(int i = 0; i < listA.length;i++){
ChapterModel aModel = listA[i]; ChapterModel aModel = listA[i];
...@@ -163,7 +162,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -163,7 +162,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
update(); update();
} }
// 获取当前的章节id /// 获取当前的章节id
Future<String> getCurrentChapterId() async{ Future<String> getCurrentChapterId() async{
String chapterId = ''; String chapterId = '';
bool netStatus = await Tools.checkCurrentNetStatus(); bool netStatus = await Tools.checkCurrentNetStatus();
...@@ -176,7 +175,8 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -176,7 +175,8 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
} }
return chapterId; return chapterId;
} }
// 获取当前的章节名称
/// 获取当前的章节名称
Future<String> getCurrentChapterName() async{ Future<String> getCurrentChapterName() async{
String chapterName = ''; String chapterName = '';
bool netStatus = await Tools.checkCurrentNetStatus(); bool netStatus = await Tools.checkCurrentNetStatus();
...@@ -193,8 +193,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -193,8 +193,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
return chapterName; return chapterName;
} }
/// 判断是否存在离线文件
// 判断是否存在离线文件
Future<bool> _isExistFile(String bookId) async { Future<bool> _isExistFile(String bookId) async {
bool existDownFile= false; bool existDownFile= false;
String directoryPath = await Tools.getDirectory(); String directoryPath = await Tools.getDirectory();
...@@ -212,6 +211,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -212,6 +211,7 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
return existDownFile; return existDownFile;
} }
/// 获取章节名称
String _getChapterName(String chapterId){ String _getChapterName(String chapterId){
for (ChapterModel model in chapters){ for (ChapterModel model in chapters){
if ('${model.id}' == chapterId){ if ('${model.id}' == chapterId){
...@@ -230,6 +230,4 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt ...@@ -230,6 +230,4 @@ class BookDetailController extends GetxController with GetSingleTickerProviderSt
} }
} }
\ No newline at end of file
...@@ -119,7 +119,6 @@ class BookPayController extends GetxController { ...@@ -119,7 +119,6 @@ class BookPayController extends GetxController {
update(); update();
} }
/// 获取优惠前的价钱 /// 获取优惠前的价钱
/// 总价钱 /// 总价钱
double getOriginalPrice(){ double getOriginalPrice(){
...@@ -198,8 +197,6 @@ class BookPayController extends GetxController { ...@@ -198,8 +197,6 @@ class BookPayController extends GetxController {
} }
} }
final result = await ShopAPI.createOrder( final result = await ShopAPI.createOrder(
bookIdsList:jsonEncode(bookIdsList) , bookIdsList:jsonEncode(bookIdsList) ,
totalPrice: finalPrice.toString(), totalPrice: finalPrice.toString(),
...@@ -244,7 +241,7 @@ class BookPayController extends GetxController { ...@@ -244,7 +241,7 @@ class BookPayController extends GetxController {
} }
// 支付宝支付 /// 支付宝支付
void requestAliPay(){ void requestAliPay(){
tobias.pay(payOrderModel.encryptionOrder!).then((payResult){ tobias.pay(payOrderModel.encryptionOrder!).then((payResult){
...@@ -259,7 +256,7 @@ class BookPayController extends GetxController { ...@@ -259,7 +256,7 @@ class BookPayController extends GetxController {
}); });
} }
// 微信支付 /// 微信支付
void requestWechat(){ void requestWechat(){
Payment payment = Payment( Payment payment = Payment(
appId: payOrderModel.appid??'', appId: payOrderModel.appid??'',
...@@ -284,6 +281,7 @@ class BookPayController extends GetxController { ...@@ -284,6 +281,7 @@ class BookPayController extends GetxController {
}); });
} }
/// 获取订单状态
void requestOrderStatus() async { void requestOrderStatus() async {
final result = await ShopAPI.orderStatus(orderNumber: payOrderModel.ordersnum??'',receipt: ''); final result = await ShopAPI.orderStatus(orderNumber: payOrderModel.ordersnum??'',receipt: '');
if (result.paySuccess == 1){ if (result.paySuccess == 1){
......
part of book_score; part of book_score;
class BookScoreController extends GetxController { class BookScoreController extends GetxController {
// 书籍id
final String bookId; final String bookId;
BookScoreController(this.bookId); BookScoreController(this.bookId);
...@@ -12,6 +13,12 @@ class BookScoreController extends GetxController { ...@@ -12,6 +13,12 @@ class BookScoreController extends GetxController {
// 评价列表 // 评价列表
List<ScoreModel> scores = []; List<ScoreModel> scores = [];
// 每页数量
final int _limit = 10;
// 当前页码
int _page = 1;
// 是否有更多
bool _noMore = false;
@override @override
void onClose() { void onClose() {
...@@ -19,10 +26,6 @@ class BookScoreController extends GetxController { ...@@ -19,10 +26,6 @@ class BookScoreController extends GetxController {
super.onClose(); super.onClose();
} }
final int _limit = 10;
int _page = 1;
bool _noMore = false;
/// 获取课程内图书列表 /// 获取课程内图书列表
Future<void> _getScores(String bookId, [bool isRefresh = false]) async { Future<void> _getScores(String bookId, [bool isRefresh = false]) async {
if (isRefresh) _page = 1; if (isRefresh) _page = 1;
...@@ -37,6 +40,7 @@ class BookScoreController extends GetxController { ...@@ -37,6 +40,7 @@ class BookScoreController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getScores(bookId, true); await _getScores(bookId, true);
...@@ -47,6 +51,7 @@ class BookScoreController extends GetxController { ...@@ -47,6 +51,7 @@ class BookScoreController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
...@@ -8,12 +8,13 @@ class BookshopController extends GetxController { ...@@ -8,12 +8,13 @@ class BookshopController extends GetxController {
// 书架数组 // 书架数组
List<CourseModel> carts = []; List<CourseModel> carts = [];
// 是否全选 // 是否全选
late bool all = false; late bool all = false;
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -28,7 +29,7 @@ class BookshopController extends GetxController { ...@@ -28,7 +29,7 @@ class BookshopController extends GetxController {
super.onClose(); super.onClose();
} }
// 选中 与 取消选中 /// 选中 与 取消选中
void select(CourseModel courseModel) { void select(CourseModel courseModel) {
if (courseModel.status == 1) { if (courseModel.status == 1) {
courseModel.selected = !courseModel.selected; courseModel.selected = !courseModel.selected;
...@@ -47,7 +48,7 @@ class BookshopController extends GetxController { ...@@ -47,7 +48,7 @@ class BookshopController extends GetxController {
update(); update();
} }
// 获取选中数量 /// 获取选中数量
int get num { int get num {
int num = 0; int num = 0;
for (CourseModel model in carts) { for (CourseModel model in carts) {
...@@ -58,8 +59,8 @@ class BookshopController extends GetxController { ...@@ -58,8 +59,8 @@ class BookshopController extends GetxController {
return num; return num;
} }
// 获取总价 /// 获取总价
//总价格 ///总价格
double get allPrice { double get allPrice {
Decimal price = Decimal.zero; Decimal price = Decimal.zero;
for (CourseModel model in carts) { for (CourseModel model in carts) {
...@@ -91,7 +92,7 @@ class BookshopController extends GetxController { ...@@ -91,7 +92,7 @@ class BookshopController extends GetxController {
} }
* */ * */
// 全选 /// 全选
void selectAll() { void selectAll() {
if (all == false) { if (all == false) {
for (CourseModel model in carts) { for (CourseModel model in carts) {
...@@ -148,6 +149,7 @@ class BookshopController extends GetxController { ...@@ -148,6 +149,7 @@ class BookshopController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await getCart(true); await getCart(true);
...@@ -158,6 +160,7 @@ class BookshopController extends GetxController { ...@@ -158,6 +160,7 @@ class BookshopController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
...@@ -171,6 +174,7 @@ class BookshopController extends GetxController { ...@@ -171,6 +174,7 @@ class BookshopController extends GetxController {
} }
} }
/// 测试数据
List<CourseModel> _test() { List<CourseModel> _test() {
return [ return [
CourseModel( CourseModel(
......
...@@ -3,27 +3,22 @@ part of change_phone; ...@@ -3,27 +3,22 @@ part of change_phone;
class ChangePhoneController extends GetxController { class ChangePhoneController extends GetxController {
// 账号 // 账号
final TextEditingController phoneInput = TextEditingController(); final TextEditingController phoneInput = TextEditingController();
// 验证码 // 验证码
final TextEditingController codeInput = TextEditingController(); final TextEditingController codeInput = TextEditingController();
// 定时器 // 定时器
late Timer _timer; late Timer _timer;
// 按钮是否可用 // 按钮是否可用
bool _enable = false; bool _enable = false;
bool get enable => _enable; bool get enable => _enable;
// 倒计时60秒 // 倒计时60秒
int _countDown = 60; int _countDown = 60;
// 倒计时
int get countDown => _countDown; int get countDown => _countDown;
// 是否开始倒计时
bool _isCounting = false; bool _isCounting = false;
bool get isCounting => _isCounting; bool get isCounting => _isCounting;
// 开启定时器 /// 开启定时器
void start() { void start() {
_isCounting = true; _isCounting = true;
_timer = Timer.periodic(const Duration(seconds: 1), (timer) { _timer = Timer.periodic(const Duration(seconds: 1), (timer) {
...@@ -36,7 +31,7 @@ class ChangePhoneController extends GetxController { ...@@ -36,7 +31,7 @@ class ChangePhoneController extends GetxController {
}); });
} }
// 停止计时器 /// 停止计时器
void stop() { void stop() {
if (_timer != null) { if (_timer != null) {
_timer.cancel(); _timer.cancel();
...@@ -45,6 +40,7 @@ class ChangePhoneController extends GetxController { ...@@ -45,6 +40,7 @@ class ChangePhoneController extends GetxController {
_countDown = 60; _countDown = 60;
} }
/// 是否可以点击
void setCanClick() { void setCanClick() {
if (phoneInput.text.length == 11 && codeInput.text.length == 6) { if (phoneInput.text.length == 11 && codeInput.text.length == 6) {
_enable = true; _enable = true;
...@@ -77,6 +73,7 @@ class ChangePhoneController extends GetxController { ...@@ -77,6 +73,7 @@ class ChangePhoneController extends GetxController {
super.onClose(); super.onClose();
} }
/// 发送验证码
void sendCode() async { void sendCode() async {
final result = await AccountAPI.sendCode(phone: phoneInput.text, type: 'login'); final result = await AccountAPI.sendCode(phone: phoneInput.text, type: 'login');
if (result) { if (result) {
...@@ -87,6 +84,7 @@ class ChangePhoneController extends GetxController { ...@@ -87,6 +84,7 @@ class ChangePhoneController extends GetxController {
} }
} }
/// 修改手机号
Future<bool> changePhone() async { Future<bool> changePhone() async {
final result = await MineAPI.changePhone( final result = await MineAPI.changePhone(
phone: phoneInput.text, phone: phoneInput.text,
......
part of change_pwd; part of change_pwd;
class ChangePwdController extends GetxController { class ChangePwdController extends GetxController {
// 用户信息模型
final UserInfoModel userInfo; final UserInfoModel userInfo;
ChangePwdController(this.userInfo); ChangePwdController(this.userInfo);
// 新密码 // 新密码
final TextEditingController pwdInput = TextEditingController(); final TextEditingController pwdInput = TextEditingController();
// 确认密码 // 确认密码
final TextEditingController pwd2Input = TextEditingController(); final TextEditingController pwd2Input = TextEditingController();
// 显示密码 // 显示密码
final ValueNotifier<bool> showPassword = ValueNotifier(false); final ValueNotifier<bool> showPassword = ValueNotifier(false);
// 显示密码 // 显示密码
final ValueNotifier<bool> showPassword2 = ValueNotifier(false); final ValueNotifier<bool> showPassword2 = ValueNotifier(false);
// 按钮是否可用 // 按钮是否可用
bool _enable = false; bool _enable = false;
bool get enable => _enable; bool get enable => _enable;
void onShowPassword() => showPassword.value = !showPassword.value; void onShowPassword() => showPassword.value = !showPassword.value;
void onShowPassword2() => showPassword2.value = !showPassword2.value; void onShowPassword2() => showPassword2.value = !showPassword2.value;
/// 是否可点击
void setCanClick() { void setCanClick() {
if (ValidatorTool.isValidPassword(pwdInput.text) && if (ValidatorTool.isValidPassword(pwdInput.text) &&
ValidatorTool.isValidPassword(pwd2Input.text) && ValidatorTool.isValidPassword(pwd2Input.text) &&
...@@ -45,6 +41,7 @@ class ChangePwdController extends GetxController { ...@@ -45,6 +41,7 @@ class ChangePwdController extends GetxController {
super.onClose(); super.onClose();
} }
/// 更改密码
Future<bool> changePwd() async { Future<bool> changePwd() async {
final result = await MineAPI.changePwd( final result = await MineAPI.changePwd(
password: EncryptUtil.encodeMd5(EncryptUtil.encodeMd5(pwdInput.text)), password: EncryptUtil.encodeMd5(EncryptUtil.encodeMd5(pwdInput.text)),
......
...@@ -3,20 +3,20 @@ part of course; ...@@ -3,20 +3,20 @@ part of course;
class CourseController extends GetxController { class CourseController extends GetxController {
// 课程数组 // 课程数组
List<CourseModel> courses = []; List<CourseModel> courses = [];
// 消息数组 // 消息数组
List<AdModel> ads = []; List<AdModel> ads = [];
// 消息未读数 // 消息未读数
int num = 0; int num = 0;
final EasyRefreshController refreshController = EasyRefreshController( final EasyRefreshController refreshController = EasyRefreshController(
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -64,6 +64,7 @@ class CourseController extends GetxController { ...@@ -64,6 +64,7 @@ class CourseController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getCourse(true); await _getCourse(true);
...@@ -74,6 +75,7 @@ class CourseController extends GetxController { ...@@ -74,6 +75,7 @@ class CourseController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
...@@ -3,27 +3,21 @@ part of forget_pwd; ...@@ -3,27 +3,21 @@ part of forget_pwd;
class ForgetPwdController extends GetxController { class ForgetPwdController extends GetxController {
// 账号 // 账号
final TextEditingController phoneInput = TextEditingController(); final TextEditingController phoneInput = TextEditingController();
// 验证码 // 验证码
final TextEditingController codeInput = TextEditingController(); final TextEditingController codeInput = TextEditingController();
// 定时器 // 定时器
late Timer _timer; late Timer _timer;
// 按钮是否可用 // 按钮是否可用
bool _enable = false; bool _enable = false;
bool get enable => _enable; bool get enable => _enable;
// 倒计时60秒 // 倒计时60秒
int _countDown = 60; int _countDown = 60;
int get countDown => _countDown; int get countDown => _countDown;
bool _isCounting = false; bool _isCounting = false;
bool get isCounting => _isCounting; bool get isCounting => _isCounting;
// 开启定时器 /// 开启定时器
void start() { void start() {
_isCounting = true; _isCounting = true;
_timer = Timer.periodic(const Duration(seconds: 1), (timer) { _timer = Timer.periodic(const Duration(seconds: 1), (timer) {
...@@ -36,7 +30,7 @@ class ForgetPwdController extends GetxController { ...@@ -36,7 +30,7 @@ class ForgetPwdController extends GetxController {
}); });
} }
// 停止计时器 /// 停止计时器
void stop() { void stop() {
if (_timer != null) { if (_timer != null) {
_timer.cancel(); _timer.cancel();
...@@ -45,6 +39,7 @@ class ForgetPwdController extends GetxController { ...@@ -45,6 +39,7 @@ class ForgetPwdController extends GetxController {
_countDown = 60; _countDown = 60;
} }
/// 是否可点击
void setCanClick() { void setCanClick() {
if (ValidatorTool.isValidPhoneNumber(phoneInput.text) && if (ValidatorTool.isValidPhoneNumber(phoneInput.text) &&
codeInput.text.length == 6) { codeInput.text.length == 6) {
...@@ -78,6 +73,7 @@ class ForgetPwdController extends GetxController { ...@@ -78,6 +73,7 @@ class ForgetPwdController extends GetxController {
super.onClose(); super.onClose();
} }
/// 发送验证码
void sendCode() async { void sendCode() async {
final result = final result =
await AccountAPI.sendCode(phone: phoneInput.text, type: 'login'); await AccountAPI.sendCode(phone: phoneInput.text, type: 'login');
...@@ -89,6 +85,7 @@ class ForgetPwdController extends GetxController { ...@@ -89,6 +85,7 @@ class ForgetPwdController extends GetxController {
} }
} }
/// 验证验证码
Future<bool> checkCode() async { Future<bool> checkCode() async {
final result = await AccountAPI.checkCode( final result = await AccountAPI.checkCode(
phone: phoneInput.text, code: codeInput.text); phone: phoneInput.text, code: codeInput.text);
......
...@@ -6,9 +6,13 @@ class HelpCenterController extends GetxController { ...@@ -6,9 +6,13 @@ class HelpCenterController extends GetxController {
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 每页数量
final int _limit = 20; final int _limit = 20;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
// 数据数组
List<HelpCenterModel> helpCenters = []; List<HelpCenterModel> helpCenters = [];
@override @override
...@@ -30,6 +34,7 @@ class HelpCenterController extends GetxController { ...@@ -30,6 +34,7 @@ class HelpCenterController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _gethelpCenters(true); await _gethelpCenters(true);
...@@ -40,6 +45,7 @@ class HelpCenterController extends GetxController { ...@@ -40,6 +45,7 @@ class HelpCenterController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
...@@ -53,6 +59,7 @@ class HelpCenterController extends GetxController { ...@@ -53,6 +59,7 @@ class HelpCenterController extends GetxController {
} }
} }
/// 测试数据
List<HelpCenterModel> test() { List<HelpCenterModel> test() {
return [ return [
HelpCenterModel(id: 1, helpTitle: '账号注册'), HelpCenterModel(id: 1, helpTitle: '账号注册'),
......
part of help_cneter_content; part of help_cneter_content;
class HelpCenterContentController extends GetxController { class HelpCenterContentController extends GetxController {
// 帮助id
final String id; final String id;
HelpCenterContentModel helpCenterContentModel = HelpCenterContentModel(); HelpCenterContentModel helpCenterContentModel = HelpCenterContentModel();
HelpCenterContentController(this.id); HelpCenterContentController(this.id);
// webview 控制器
late InAppWebViewController webViewController; late InAppWebViewController webViewController;
@override @override
......
...@@ -8,7 +8,6 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -8,7 +8,6 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
List<CategoryModel> categories = []; List<CategoryModel> categories = [];
// 标签数据 // 标签数据
List<LabelModel> labels = []; List<LabelModel> labels = [];
// 广告数组 // 广告数组
List<AdModel> ads = []; List<AdModel> ads = [];
// 选中标签 // 选中标签
...@@ -19,10 +18,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -19,10 +18,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
late FilterModel selectedFree = FilterModel(); late FilterModel selectedFree = FilterModel();
// 选中排序的 方式 // 选中排序的 方式
late FilterModel selectedDown = FilterModel(); late FilterModel selectedDown = FilterModel();
// late TabController tabController = TabController(length:categories.length, vsync: this); // late TabController tabController = TabController(length:categories.length, vsync: this);
final EasyRefreshController refreshController = EasyRefreshController( final EasyRefreshController refreshController = EasyRefreshController(
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
...@@ -30,46 +26,35 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -30,46 +26,35 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
// 图书列表数据 // 图书列表数据
List<CourseModel> books = []; List<CourseModel> books = [];
// 分类数据
List<FilterModel> filterCategories = []; List<FilterModel> filterCategories = [];
// 标签数据
List<FilterModel> filterLabels = []; List<FilterModel> filterLabels = [];
// 是否收费
List<FilterModel> filterFree = [ List<FilterModel> filterFree = [
FilterModel(id: '0', name: '收费',selected: false), FilterModel(id: '0', name: '收费',selected: false),
FilterModel(id: '1', name: '免费',selected: false) FilterModel(id: '1', name: '免费',selected: false)
]; ];
// 读过、评分
List<FilterModel> filterDown = [ List<FilterModel> filterDown = [
FilterModel(id: 'read_num', name: '读过'), FilterModel(id: 'read_num', name: '读过'),
FilterModel(id: 'rating', name: '评分') FilterModel(id: 'rating', name: '评分')
]; ];
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
// 动画控制器
late AnimationController _controller; late AnimationController _controller;
// 是否展示
bool _show = false; bool _show = false;
// 更新模型
late UModel _getModel; late UModel _getModel;
// 是否可点击收藏 // 是否可点击收藏
bool canTap = true; bool canTap = true;
bool get show => _show; bool get show => _show;
void setShow(bool value) {
_show = !value;
if (_show) {
/// 开启动画
_controller.forward();
}
else {
/// 收回动画
_controller.reverse();
}
update();
}
AnimationController get controller => _controller; AnimationController get controller => _controller;
...@@ -114,6 +99,20 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -114,6 +99,20 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
super.onClose(); super.onClose();
} }
/// 是否展示
void setShow(bool value) {
_show = !value;
if (_show) {
/// 开启动画
_controller.forward();
}
else {
/// 收回动画
_controller.reverse();
}
update();
}
/// 重置 /// 重置
void resetFilter() { void resetFilter() {
for(FilterModel model in filterCategories){ for(FilterModel model in filterCategories){
...@@ -177,6 +176,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -177,6 +176,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
} }
/// 设置选中标签
void selectLabel(FilterModel model){ void selectLabel(FilterModel model){
for (FilterModel m in filterLabels){ for (FilterModel m in filterLabels){
m.selected = false; m.selected = false;
...@@ -186,6 +186,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -186,6 +186,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
onRefresh(); onRefresh();
} }
/// 设置选中分类
void selectCategory(FilterModel model){ void selectCategory(FilterModel model){
for (FilterModel m in filterCategories){ for (FilterModel m in filterCategories){
m.selected = false; m.selected = false;
...@@ -231,7 +232,6 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -231,7 +232,6 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
} }
update(['label']); update(['label']);
} }
/// 收藏 与 取消收藏 /// 收藏 与 取消收藏
...@@ -303,7 +303,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -303,7 +303,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
} }
// 上传文件 /// 上传文件
Future<String> uploadSource({ Future<String> uploadSource({
required String path required String path
}) async { }) async {
...@@ -315,7 +315,6 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -315,7 +315,6 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
return response.realUri.toString(); return response.realUri.toString();
} }
/// 获取图书列表数据 /// 获取图书列表数据
Future<void> _getBooks([bool isRefresh = false]) async { Future<void> _getBooks([bool isRefresh = false]) async {
_getAds(); _getAds();
...@@ -360,6 +359,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -360,6 +359,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getBooks(true); await _getBooks(true);
...@@ -371,6 +371,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -371,6 +371,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
...@@ -385,6 +386,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -385,6 +386,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
} }
} }
/// 测试数据
void testInsertData() async{ void testInsertData() async{
Map<String, dynamic> data = { Map<String, dynamic> data = {
'types': 1, 'types': 1,
...@@ -402,6 +404,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -402,6 +404,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
await SqlManager.insertData(data); await SqlManager.insertData(data);
} }
/// 检查更新
void _checkUpdates() async { void _checkUpdates() async {
UModel model = await MineAPI.update(); UModel model = await MineAPI.update();
_getModel = model; _getModel = model;
...@@ -412,6 +415,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -412,6 +415,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
} }
} }
/// 判断版本
int verifyVersion(String newVersion, String oldVersion) { int verifyVersion(String newVersion, String oldVersion) {
List<String> newVersionArr = newVersion.split('.'); List<String> newVersionArr = newVersion.split('.');
List<String> oldVersionArr = oldVersion.split('.'); List<String> oldVersionArr = oldVersion.split('.');
...@@ -430,6 +434,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{ ...@@ -430,6 +434,7 @@ class LibraryController extends GetxController with GetTickerProviderStateMixin{
return 0; // 两个版本号相等 return 0; // 两个版本号相等
} }
/// 展示更新dialog
_showUpdateDialog(bool forcedUpgrade) { _showUpdateDialog(bool forcedUpgrade) {
showDialog( showDialog(
context: context, context: context,
......
...@@ -5,47 +5,66 @@ enum LoginType { code, password } ...@@ -5,47 +5,66 @@ enum LoginType { code, password }
class LoginController extends GetxController { class LoginController extends GetxController {
// 0:密码登录 1:验证码登录 // 0:密码登录 1:验证码登录
late int loginType = 0; late int loginType = 0;
// 2、密码登录 // 2、密码登录
// 账号 // 账号
final TextEditingController phoneInput = TextEditingController(); final TextEditingController phoneInput = TextEditingController();
// 密码 // 密码
final TextEditingController passwordInput = TextEditingController(); final TextEditingController passwordInput = TextEditingController();
// 验证码 // 验证码
final TextEditingController codeInput = TextEditingController(); final TextEditingController codeInput = TextEditingController();
// 显示密码 // 显示密码
final ValueNotifier<bool> showPassword = ValueNotifier(false); final ValueNotifier<bool> showPassword = ValueNotifier(false);
// 定时器 // 定时器
late Timer _timer; late Timer _timer;
// 按钮是否可用 // 按钮是否可用
bool _enable = false; bool _enable = false;
bool get enable => _enable; bool get enable => _enable;
// 倒计时60秒 // 倒计时60秒
int _countDown = 60; int _countDown = 60;
int get countDown => _countDown; int get countDown => _countDown;
bool _isCounting = false; bool _isCounting = false;
bool get isCounting => _isCounting; bool get isCounting => _isCounting;
// 同意协议 // 同意协议
bool _agree = false; bool _agree = false;
bool get agree => _agree; bool get agree => _agree;
@override
void onInit() {
_timer = Timer.periodic(const Duration(seconds: 1), (timer) {
// 定时器回调
});
/// 测试账号
if (kDebugMode) {
phoneInput.text = '18810760819';
passwordInput.text = '1234567m';
// phoneInput.text = '17311837355';
// passwordInput.text = '12345678';
}
super.onInit();
}
@override
void onClose() {
phoneInput.dispose();
passwordInput.dispose();
showPassword.dispose();
codeInput.dispose();
_timer.cancel();
_isCounting = false;
super.onClose();
}
void onShowPassword() => showPassword.value = !showPassword.value;
/// 同意与否
void setAgree() { void setAgree() {
_agree = !_agree; _agree = !_agree;
update(); update();
} }
// 开启定时器 /// 开启定时器
void start() { void start() {
_isCounting = true; _isCounting = true;
_timer = Timer.periodic(const Duration(seconds: 1), (timer) { _timer = Timer.periodic(const Duration(seconds: 1), (timer) {
...@@ -58,7 +77,7 @@ class LoginController extends GetxController { ...@@ -58,7 +77,7 @@ class LoginController extends GetxController {
}); });
} }
// 停止计时器 /// 停止计时器
void stop() { void stop() {
if (_timer != null) { if (_timer != null) {
_timer.cancel(); _timer.cancel();
...@@ -67,6 +86,7 @@ class LoginController extends GetxController { ...@@ -67,6 +86,7 @@ class LoginController extends GetxController {
_countDown = 60; _countDown = 60;
} }
/// 是否可点击
void setCanClick() { void setCanClick() {
if (loginType == 0) { if (loginType == 0) {
if (ValidatorTool.isValidPhoneNumber(phoneInput.text) && if (ValidatorTool.isValidPhoneNumber(phoneInput.text) &&
...@@ -87,35 +107,7 @@ class LoginController extends GetxController { ...@@ -87,35 +107,7 @@ class LoginController extends GetxController {
update(); update();
} }
@override /// 跟新登录类型
void onInit() {
_timer = Timer.periodic(const Duration(seconds: 1), (timer) {
// 定时器回调
});
/// 测试账号
if (kDebugMode) {
phoneInput.text = '18810760819';
passwordInput.text = '1234567m';
// phoneInput.text = '17311837355';
// passwordInput.text = '12345678';
}
super.onInit();
}
@override
void onClose() {
phoneInput.dispose();
passwordInput.dispose();
showPassword.dispose();
codeInput.dispose();
_timer.cancel();
_isCounting = false;
super.onClose();
}
void onShowPassword() => showPassword.value = !showPassword.value;
void updateLoginType(int value) { void updateLoginType(int value) {
stop(); stop();
loginType = value; loginType = value;
...@@ -165,6 +157,7 @@ class LoginController extends GetxController { ...@@ -165,6 +157,7 @@ class LoginController extends GetxController {
} }
} }
/// 发送验证码
void sendCode() async { void sendCode() async {
if (!agree) { if (!agree) {
Toast.show('请先阅读并同意《用户协议》和《隐私政策》'); Toast.show('请先阅读并同意《用户协议》和《隐私政策》');
......
...@@ -3,7 +3,7 @@ part of main; ...@@ -3,7 +3,7 @@ part of main;
class MainController extends GetxController { class MainController extends GetxController {
late final PageController pageController; late final PageController pageController;
//默认显示 // 默认显示
int currentPage = 1; int currentPage = 1;
@override @override
...@@ -18,6 +18,7 @@ class MainController extends GetxController { ...@@ -18,6 +18,7 @@ class MainController extends GetxController {
super.onClose(); super.onClose();
} }
/// 页码变化
void onPageChanged(int page) { void onPageChanged(int page) {
currentPage = page; currentPage = page;
update(['navigation']); update(['navigation']);
......
...@@ -3,16 +3,12 @@ part of mine; ...@@ -3,16 +3,12 @@ part of mine;
class MineController extends GetxController { class MineController extends GetxController {
// 广告数据 // 广告数据
List<AdModel> ads = []; List<AdModel> ads = [];
// 个人信息数据 // 个人信息数据
UserInfoModel userInfo = UserInfoModel(); UserInfoModel userInfo = UserInfoModel();
// 笔记 讨论 错题 收藏 // 笔记 讨论 错题 收藏
List<ReadModel> reads = []; List<ReadModel> reads = [];
// 我的账户数据 // 我的账户数据
List<ReadModel> accounts = []; List<ReadModel> accounts = [];
// 消息未读数 // 消息未读数
int num = 0; int num = 0;
......
...@@ -2,6 +2,7 @@ part of pay_coupon; ...@@ -2,6 +2,7 @@ part of pay_coupon;
class PayCouponController extends GetxController with GetSingleTickerProviderStateMixin{ class PayCouponController extends GetxController with GetSingleTickerProviderStateMixin{
// 类型tag
final String tag; final String tag;
final BookPayController payController; final BookPayController payController;
PayCouponController(this.tag,this.payController){ PayCouponController(this.tag,this.payController){
...@@ -18,17 +19,18 @@ class PayCouponController extends GetxController with GetSingleTickerProviderSta ...@@ -18,17 +19,18 @@ class PayCouponController extends GetxController with GetSingleTickerProviderSta
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 优惠券数据
CouponListModel couponListModel = CouponListModel(); CouponListModel couponListModel = CouponListModel();
// 优惠券 // 优惠券
List <CouponModel> coupons = []; List <CouponModel> coupons = [];
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页面
int _page = 1; int _page = 1;
// 是否没有更多
bool _noMore = false; bool _noMore = false;
/// 获取优惠券
Future<void> _getCoupon([bool isRefresh = false]) async { Future<void> _getCoupon([bool isRefresh = false]) async {
if (isRefresh) _page = 1; if (isRefresh) _page = 1;
// 网路请求 // 网路请求
...@@ -42,7 +44,6 @@ class PayCouponController extends GetxController with GetSingleTickerProviderSta ...@@ -42,7 +44,6 @@ class PayCouponController extends GetxController with GetSingleTickerProviderSta
model.type = num.parse(tag); model.type = num.parse(tag);
} }
// 如果是刷新 清理数据 // 如果是刷新 清理数据
if (isRefresh) coupons.clear(); if (isRefresh) coupons.clear();
coupons.addAll(result.list!); coupons.addAll(result.list!);
...@@ -52,6 +53,7 @@ class PayCouponController extends GetxController with GetSingleTickerProviderSta ...@@ -52,6 +53,7 @@ class PayCouponController extends GetxController with GetSingleTickerProviderSta
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getCoupon(true); await _getCoupon(true);
...@@ -62,6 +64,7 @@ class PayCouponController extends GetxController with GetSingleTickerProviderSta ...@@ -62,6 +64,7 @@ class PayCouponController extends GetxController with GetSingleTickerProviderSta
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
...@@ -127,7 +127,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -127,7 +127,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
///------------------------------------------ 页面 生命周期-------------------------------------------------------- ///------------------------------------------ 页面 生命周期--------------------------------------------------------
// 选择了底部工具栏 /// 选择了底部工具栏
void chooseTool(ToolModel selectedModel){ void chooseTool(ToolModel selectedModel){
for (var model in tools) { for (var model in tools) {
// 如果当前遍历到的工具是选中的,并且不是点击的工具,则取消选中 // 如果当前遍历到的工具是选中的,并且不是点击的工具,则取消选中
...@@ -152,12 +152,13 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -152,12 +152,13 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// writeCurrentReadChapterIdToData(chapters); // writeCurrentReadChapterIdToData(chapters);
// update(); // update();
// } // }
/// 是否显示
void setShow(bool value) { void setShow(bool value) {
_show = !value; _show = !value;
update(); update();
} }
// 是否显示搜索组件 /// 是否显示搜索组件
void setShowSearch(bool show){ void setShowSearch(bool show){
if(show == false){ if(show == false){
searchInput.text = ''; searchInput.text = '';
...@@ -166,7 +167,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -166,7 +167,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
update(); update();
} }
// 选择了某个章节 /// 选择了某个章节
void selectChapter(ChapterModel model) { void selectChapter(ChapterModel model) {
chapterName = model.name??''; chapterName = model.name??'';
chapterId = model.id.toString(); chapterId = model.id.toString();
...@@ -174,7 +175,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -174,7 +175,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
update(); update();
} }
// 初始化朗读组件 /// 初始化朗读组件
initTts() { initTts() {
flutterTts = FlutterTts(); flutterTts = FlutterTts();
_setAwaitOptions(); _setAwaitOptions();
...@@ -215,11 +216,13 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -215,11 +216,13 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
}); });
} }
/// 设置参数
Future _setAwaitOptions() async { Future _setAwaitOptions() async {
await flutterTts.awaitSpeakCompletion(true); await flutterTts.awaitSpeakCompletion(true);
} }
// 获取默认引擎 /// 获取默认引擎
Future _getDefaultEngine() async { Future _getDefaultEngine() async {
var engine = await flutterTts.getDefaultEngine; var engine = await flutterTts.getDefaultEngine;
if (engine != null) { if (engine != null) {
...@@ -227,7 +230,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -227,7 +230,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
} }
// 获取默认声音 /// 获取默认声音
Future _getDefaultVoice() async { Future _getDefaultVoice() async {
var voice = await flutterTts.getDefaultVoice; var voice = await flutterTts.getDefaultVoice;
if (voice != null) { if (voice != null) {
...@@ -235,7 +238,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -235,7 +238,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
} }
// 朗读 /// 朗读
Future speak(String text) async { Future speak(String text) async {
await flutterTts.setVolume(0.5); await flutterTts.setVolume(0.5);
await flutterTts.setSpeechRate(0.5); await flutterTts.setSpeechRate(0.5);
...@@ -246,7 +249,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -246,7 +249,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
} }
// 初始化录音组件 /// 初始化录音组件
Future<void> openTheRecorder() async { Future<void> openTheRecorder() async {
var status = await Access.microphone(); var status = await Access.microphone();
...@@ -275,7 +278,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -275,7 +278,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
)); ));
} }
// 开启录音 /// 开启录音
void record() async { void record() async {
await openTheRecorder(); await openTheRecorder();
startRecording = true; startRecording = true;
...@@ -300,7 +303,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -300,7 +303,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
update(); update();
} }
// 停止录音 /// 停止录音
void stopRecorder() async{ void stopRecorder() async{
startRecording = false; startRecording = false;
final path = await _mRecorder.stopRecorder(); final path = await _mRecorder.stopRecorder();
...@@ -317,19 +320,19 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -317,19 +320,19 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
update(); update();
} }
// 语音文件名称 /// 语音文件名称
String generateVoiceFileName(){ String generateVoiceFileName(){
DateTime now = DateTime.now(); DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyyMMddHHmmss').format(now); String formattedDate = DateFormat('yyyyMMddHHmmss').format(now);
return 'voice_$formattedDate.mp4'; return 'voice_$formattedDate.mp4';
} }
// 重置所有信息 /// 重置所有信息
void reset(){ void reset(){
clearAllDiscussInput(); clearAllDiscussInput();
} }
// 播放音频 /// 播放音频
void playAudio(AudioModel audioModel){ void playAudio(AudioModel audioModel){
Console.log('-------------播放开始-------------------'); Console.log('-------------播放开始-------------------');
if(audioPlayer.playerState.playing){ if(audioPlayer.playerState.playing){
...@@ -353,35 +356,35 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -353,35 +356,35 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// currentPlayMediaModel = mediaModel; // currentPlayMediaModel = mediaModel;
} }
// 添加讨论图片 /// 添加讨论图片
void addDiscussInputImages(String path){ void addDiscussInputImages(String path){
discussInputImages.add(path); discussInputImages.add(path);
Console.log('discussInputImages--------------------------------$path'); Console.log('discussInputImages--------------------------------$path');
update(); update();
} }
// 删除讨论图片 /// 删除讨论图片
void delDiscussInputImages(String path){ void delDiscussInputImages(String path){
discussInputImages.remove(path); discussInputImages.remove(path);
Console.log('delDiscussInputImages--------------------------------$path'); Console.log('delDiscussInputImages--------------------------------$path');
update(); update();
} }
// 清空讨论图片 /// 清空讨论图片
void clearDiscussInputImages(){ void clearDiscussInputImages(){
discussInputImages.clear(); discussInputImages.clear();
Console.log('clearDiscussInputImages--------------------------------'); Console.log('clearDiscussInputImages--------------------------------');
update(); update();
} }
// 情况语音 /// 情况语音
void clearDiscussAudios(){ void clearDiscussAudios(){
discussInputAudios.clear(); discussInputAudios.clear();
Console.log('clearDiscussAudios--------------------------------'); Console.log('clearDiscussAudios--------------------------------');
update(); update();
} }
// 清空所有已经填写的数据 /// 清空所有已经填写的数据
void clearAllDiscussInput(){ void clearAllDiscussInput(){
clearDiscussInputImages(); clearDiscussInputImages();
clearDiscussAudios(); clearDiscussAudios();
...@@ -393,13 +396,13 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -393,13 +396,13 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
update(); update();
} }
// 删除音频 /// 删除音频
void delAudio(AudioModel audioModel){ void delAudio(AudioModel audioModel){
discussInputAudios.remove(audioModel); discussInputAudios.remove(audioModel);
update(); update();
} }
// 上传文件 /// 上传文件
Future<String> upload({ Future<String> upload({
required String path required String path
}) async { }) async {
...@@ -411,7 +414,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -411,7 +414,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
return response.realUri.toString(); return response.realUri.toString();
} }
// 提交 /// 提交
Future<bool> submit() async { Future<bool> submit() async {
// 音频链接数组 // 音频链接数组
List<String> audios = []; List<String> audios = [];
...@@ -478,7 +481,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -478,7 +481,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
return false; return false;
} }
// 添加笔记 /// 添加笔记
Future<bool> addNote(Map<String,dynamic> contentMap) async { Future<bool> addNote(Map<String,dynamic> contentMap) async {
final status = await Tools.checkCurrentNetStatus(); final status = await Tools.checkCurrentNetStatus();
bool result ; bool result ;
...@@ -522,7 +525,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -522,7 +525,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
return result; return result;
} }
// 发表评论 /// 发表评论
// {String commentId ='0',String quoteContent ='',String title = ''} // {String commentId ='0',String quoteContent ='',String title = ''}
Future<bool> addDiscuss(Map<String,dynamic> contentMap) async{ Future<bool> addDiscuss(Map<String,dynamic> contentMap) async{
...@@ -548,6 +551,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -548,6 +551,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
/// 焦点变化
void _onCommentFocusChanged() { void _onCommentFocusChanged() {
if (discussTitleFocusNode.hasFocus || discussContentFocusNode.hasFocus) { if (discussTitleFocusNode.hasFocus || discussContentFocusNode.hasFocus) {
setShowChat(true); setShowChat(true);
...@@ -556,7 +560,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -556,7 +560,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
} }
// 展示输入框 /// 展示输入框
void setShowChat(bool value) { void setShowChat(bool value) {
showChat = value; showChat = value;
if(value == false){ if(value == false){
...@@ -565,12 +569,12 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -565,12 +569,12 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
update(); update();
} }
// 显示输入框类型 /// 显示输入框类型
void setChatType(int type){ void setChatType(int type){
chatType = type; chatType = type;
} }
// 设置笔记是否公开 /// 设置笔记是否公开
void setIsPublic(){ void setIsPublic(){
isPublic = !isPublic; isPublic = !isPublic;
update(); update();
...@@ -578,7 +582,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -578,7 +582,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
///------------------------------------------离线逻辑-------------------------------------------------------- ///------------------------------------------离线逻辑--------------------------------------------------------
// 下载文件 /// 下载文件
Future<void> extractZipFileFromCache(String url) async { Future<void> extractZipFileFromCache(String url) async {
// 从缓存中获取 ZIP 文件 // 从缓存中获取 ZIP 文件
var file = await DefaultCacheManager().getSingleFile(url); var file = await DefaultCacheManager().getSingleFile(url);
...@@ -610,7 +614,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -610,7 +614,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
} }
// 判断是否存在离线文件 /// 判断是否存在离线文件
Future<bool> _isExistFile(String bookId) async { Future<bool> _isExistFile(String bookId) async {
String directoryPath = await Tools.getDirectory(); String directoryPath = await Tools.getDirectory();
Directory directory = Directory(directoryPath); Directory directory = Directory(directoryPath);
...@@ -629,7 +633,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -629,7 +633,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
// 获取对应chapterId文件路径 /// 获取对应chapterId文件路径
Future<String> getLocalReadHtml(String chapterId) async{ Future<String> getLocalReadHtml(String chapterId) async{
String docPath = await Tools.getDirectory(); String docPath = await Tools.getDirectory();
String filePath = '$docPath/$bookId'; String filePath = '$docPath/$bookId';
...@@ -647,7 +651,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -647,7 +651,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
return ''; return '';
} }
// 获取离线数据 /// 获取离线数据
void getOffLineInfo({String direction = ''}) async { void getOffLineInfo({String direction = ''}) async {
Console.log('-chapterId----------------------$chapterId-----------------------------------------'); Console.log('-chapterId----------------------$chapterId-----------------------------------------');
Map<String, dynamic> data = {}; Map<String, dynamic> data = {};
...@@ -708,7 +712,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -708,7 +712,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
// 获取上一章节或下一章节 id /// 获取上一章节或下一章节 id
Future<String> getChapterId({required int type}) async{ Future<String> getChapterId({required int type}) async{
String docPath = await Tools.getDirectory(); String docPath = await Tools.getDirectory();
String filePath = '$docPath/$bookId'; String filePath = '$docPath/$bookId';
...@@ -747,7 +751,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -747,7 +751,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
return ''; return '';
} }
// 读取html内容 /// 读取html内容
Future<String?> readHtmlFileContent(String filePath) async { Future<String?> readHtmlFileContent(String filePath) async {
try { try {
File htmlFile = File(filePath); File htmlFile = File(filePath);
...@@ -760,7 +764,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -760,7 +764,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
} }
// 通过 chapter_id 获取 chapter_name /// 通过 chapter_id 获取 chapter_name
String getChapterName(String chapterId){ String getChapterName(String chapterId){
for (ChapterModel model in chapters){ for (ChapterModel model in chapters){
if ('${model.id}' == chapterId){ if ('${model.id}' == chapterId){
...@@ -777,19 +781,20 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -777,19 +781,20 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
return ''; return '';
} }
/// 查询本地笔记
Future<Map<String,dynamic>> queryNewLocalNote() async { Future<Map<String,dynamic>> queryNewLocalNote() async {
final result = await SqlManager.queryLocalNote(bookId: int.parse(bookId), chapterId: int.parse(chapterId)); final result = await SqlManager.queryLocalNote(bookId: int.parse(bookId), chapterId: int.parse(chapterId));
return result; return result;
} }
// 查询本地划线高亮笔记 /// 查询本地划线高亮笔记
void queryLocalNote() async { void queryLocalNote() async {
final result = await SqlManager.queryLocalNote(bookId: int.parse(bookId), chapterId: int.parse(chapterId)); final result = await SqlManager.queryLocalNote(bookId: int.parse(bookId), chapterId: int.parse(chapterId));
Console.log('前端-----------queryLocalNote---------------------$result'); Console.log('前端-----------queryLocalNote---------------------$result');
// webViewController.evaluateJavascript(source: 'querySuccessCallBack($result)'); // webViewController.evaluateJavascript(source: 'querySuccessCallBack($result)');
} }
// 本地添加划线高亮笔记 /// 本地添加划线高亮笔记
void addLocalNote(Map<String, dynamic> data) async { void addLocalNote(Map<String, dynamic> data) async {
data['book_id'] = int.parse(bookId); data['book_id'] = int.parse(bookId);
data['chapter_id'] = int.parse(chapterId); data['chapter_id'] = int.parse(chapterId);
...@@ -799,33 +804,34 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -799,33 +804,34 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
webViewController.evaluateJavascript(source: 'addSuccessCallBack($result)'); webViewController.evaluateJavascript(source: 'addSuccessCallBack($result)');
} }
// 本地删除划线高亮笔记 /// 本地删除划线高亮笔记
void delLocalNote({required int noteId,required int id}) async { void delLocalNote({required int noteId,required int id}) async {
final result = await SqlManager.delLocalNote(noteId: noteId,id: id); final result = await SqlManager.delLocalNote(noteId: noteId,id: id);
Console.log('前端-----------delLocalNote---------------------$result'); Console.log('前端-----------delLocalNote---------------------$result');
// webViewController.evaluateJavascript(source: 'delSuccessCallBack($result)'); // webViewController.evaluateJavascript(source: 'delSuccessCallBack($result)');
} }
// 修改本地划线高亮笔记 /// 修改本地划线高亮笔记
void updateLocalNote({required int notesId,required int id,required Map<String, dynamic> data}) async { void updateLocalNote({required int notesId,required int id,required Map<String, dynamic> data}) async {
final result = await SqlManager.updateLocalNote(notesId: notesId,id: id, data: data); final result = await SqlManager.updateLocalNote(notesId: notesId,id: id, data: data);
Console.log('前端-----------updateLocalNote---------------------$result'); Console.log('前端-----------updateLocalNote---------------------$result');
// webViewController.evaluateJavascript(source: 'updateSuccessCallBack($result)'); // webViewController.evaluateJavascript(source: 'updateSuccessCallBack($result)');
} }
// 刷新token /// 刷新token
Future<String?> refreshToken() async { Future<String?> refreshToken() async {
final result = await CommonAPI.refreshToken(); final result = await CommonAPI.refreshToken();
return result; return result;
} }
// 获取目录信息 /// 获取目录信息
void _getChapters() async { void _getChapters() async {
chapters = await LibraryAPI.chapters(bookId: bookId); chapters = await LibraryAPI.chapters(bookId: bookId);
writeCurrentReadChapterIdToData(chapters); writeCurrentReadChapterIdToData(chapters);
update(); update();
} }
/// 写入当前章节
void writeCurrentReadChapterIdToData(List<ChapterModel> data) { void writeCurrentReadChapterIdToData(List<ChapterModel> data) {
for(ChapterModel cModel in data){ for(ChapterModel cModel in data){
cModel.currentRead = false; cModel.currentRead = false;
...@@ -843,6 +849,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -843,6 +849,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
} }
/// 查找章节
ChapterModel? findChapterById(List<ChapterModel> data,num id){ ChapterModel? findChapterById(List<ChapterModel> data,num id){
for (ChapterModel cModel in data){ for (ChapterModel cModel in data){
if(cModel.id == id){ if(cModel.id == id){
...@@ -856,6 +863,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -856,6 +863,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
return null; return null;
} }
/// 更新状态
void updateParentsStatus(List<ChapterModel> data, ChapterModel model) { void updateParentsStatus(List<ChapterModel> data, ChapterModel model) {
ChapterModel? parentNode = findParentChapter(data, model); ChapterModel? parentNode = findParentChapter(data, model);
while (parentNode != null) { while (parentNode != null) {
...@@ -864,6 +872,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -864,6 +872,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
} }
/// 寻找父节点
ChapterModel? findParentChapter(List<ChapterModel> data, ChapterModel model){ ChapterModel? findParentChapter(List<ChapterModel> data, ChapterModel model){
for (ChapterModel tModel in data){ for (ChapterModel tModel in data){
if(tModel.id == model.pid){ if(tModel.id == model.pid){
...@@ -877,14 +886,14 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -877,14 +886,14 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
return null; return null;
} }
// 添加阅读时长 /// 添加阅读时长
void _addReadTime({required type}) async{ void _addReadTime({required type}) async{
final status = await Tools.checkCurrentNetStatus(); final status = await Tools.checkCurrentNetStatus();
if(status){ if(status){
LibraryAPI.addReadTime(bookId: bookId, readTypes: type); LibraryAPI.addReadTime(bookId: bookId, readTypes: type);
} }
} }
// 获取离线文件路径 /// 获取离线文件路径
void getBookDown() async{ void getBookDown() async{
final exit = await _isExistFile(bookId); final exit = await _isExistFile(bookId);
// 存在离线文件 // 存在离线文件
...@@ -896,7 +905,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -896,7 +905,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
} }
// 搜全文 /// 搜全文
Future<void> searchAll([bool isRefresh = false]) async { Future<void> searchAll([bool isRefresh = false]) async {
if (isRefresh) _searchPage = 1; if (isRefresh) _searchPage = 1;
// 网路请求 // 网路请求
...@@ -916,6 +925,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -916,6 +925,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
/// 刷新搜索数据
void onRefreshSearch() async { void onRefreshSearch() async {
try { try {
await searchAll(true); await searchAll(true);
...@@ -927,6 +937,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -927,6 +937,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
} }
} }
/// 加载更多搜索数据
void onLoadingSearch() async { void onLoadingSearch() async {
if (_searchNoMore) { if (_searchNoMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
...@@ -942,7 +953,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -942,7 +953,7 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
///------------------------------------------ app 生命周期-------------------------------------------------------- ///------------------------------------------ app 生命周期--------------------------------------------------------
// 当应用程序从后台切换到前台并变为活动状态时调用。这通常在用户从其他应用程序返回到你的应用程序时发生 /// 当应用程序从后台切换到前台并变为活动状态时调用。这通常在用户从其他应用程序返回到你的应用程序时发生
void onResumed(){ void onResumed(){
Console.log('onResumed'); Console.log('onResumed');
webViewController.evaluateJavascript(source: 'activeState("1");'); webViewController.evaluateJavascript(source: 'activeState("1");');
...@@ -950,7 +961,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -950,7 +961,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// 上报开始阅读时间 // 上报开始阅读时间
_addReadTime(type: 'open'); _addReadTime(type: 'open');
} }
// 当应用程序失去焦点并进入非活动状态时调用。这可能是因为用户切换到其他应用程序或将应用程序最小化
/// 当应用程序失去焦点并进入非活动状态时调用。这可能是因为用户切换到其他应用程序或将应用程序最小化
void onPaused(){ void onPaused(){
// close // close
Console.log('onPaused'); Console.log('onPaused');
...@@ -958,7 +970,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -958,7 +970,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// 上报阅读结束时间 // 上报阅读结束时间
_addReadTime(type: 'close'); _addReadTime(type: 'close');
} }
// 当应用程序失去焦点但仍然可见时调用。通常,在用户切换到另一个应用程序或显示系统对话框时,应用程序可能会处于非活动状态,但仍然是可见的
/// 当应用程序失去焦点但仍然可见时调用。通常,在用户切换到另一个应用程序或显示系统对话框时,应用程序可能会处于非活动状态,但仍然是可见的
void onInactive(){ void onInactive(){
Console.log('onInactive'); Console.log('onInactive');
webViewController.evaluateJavascript(source: 'activeState("0");'); webViewController.evaluateJavascript(source: 'activeState("0");');
...@@ -966,7 +979,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide ...@@ -966,7 +979,8 @@ class ReadController extends FullLifeCycleController with GetSingleTickerProvide
// 上报阅读结束时间 // 上报阅读结束时间
_addReadTime(type: 'close'); _addReadTime(type: 'close');
} }
// 当应用程序被挂起,可能是由于用户关闭应用程序或系统资源不足时调用。在这个状态下,应用程序的代码将不再运行,并且可能被系统终止
/// 当应用程序被挂起,可能是由于用户关闭应用程序或系统资源不足时调用。在这个状态下,应用程序的代码将不再运行,并且可能被系统终止
void onDetached(){ void onDetached(){
Console.log('onDetached'); Console.log('onDetached');
webViewController.evaluateJavascript(source: 'activeState("0");'); webViewController.evaluateJavascript(source: 'activeState("0");');
......
part of reset_pwd; part of reset_pwd;
class ResetPwdController extends GetxController { class ResetPwdController extends GetxController {
// 手机号
final String phone; final String phone;
// 验证码
final String code; final String code;
ResetPwdController({required this.phone, required this.code}); ResetPwdController({required this.phone, required this.code});
// 新密码 // 新密码
final TextEditingController pwdInput = TextEditingController(); final TextEditingController pwdInput = TextEditingController();
// 确认密码 // 确认密码
...@@ -14,7 +14,6 @@ class ResetPwdController extends GetxController { ...@@ -14,7 +14,6 @@ class ResetPwdController extends GetxController {
final ValueNotifier<bool> showPassword = ValueNotifier(false); final ValueNotifier<bool> showPassword = ValueNotifier(false);
// 显示密码 // 显示密码
final ValueNotifier<bool> showPassword2 = ValueNotifier(false); final ValueNotifier<bool> showPassword2 = ValueNotifier(false);
// 按钮是否可用 // 按钮是否可用
bool _enable = false; bool _enable = false;
bool get enable => _enable; bool get enable => _enable;
...@@ -23,6 +22,14 @@ class ResetPwdController extends GetxController { ...@@ -23,6 +22,14 @@ class ResetPwdController extends GetxController {
void onShowPassword() => showPassword.value = !showPassword.value; void onShowPassword() => showPassword.value = !showPassword.value;
void onShowPassword2() => showPassword2.value = !showPassword2.value; void onShowPassword2() => showPassword2.value = !showPassword2.value;
@override
void onClose() {
pwd2Input.dispose();
pwdInput.dispose();
super.onClose();
}
/// 是否能点击
void setCanClick(){ void setCanClick(){
if (ValidatorTool.isValidPassword(pwdInput.text) && ValidatorTool.isValidPassword(pwd2Input.text) && (pwdInput.text == pwd2Input.text)){ if (ValidatorTool.isValidPassword(pwdInput.text) && ValidatorTool.isValidPassword(pwd2Input.text) && (pwdInput.text == pwd2Input.text)){
Console.log('-------${pwdInput.text}-------------${pwd2Input.text}'); Console.log('-------${pwdInput.text}-------------${pwd2Input.text}');
...@@ -34,15 +41,7 @@ class ResetPwdController extends GetxController { ...@@ -34,15 +41,7 @@ class ResetPwdController extends GetxController {
update(); update();
} }
/// 重置密码
@override
void onClose() {
pwd2Input.dispose();
pwdInput.dispose();
super.onClose();
}
void resetPassword(BuildContext context) async { void resetPassword(BuildContext context) async {
final result = await AccountAPI.resetPassword( final result = await AccountAPI.resetPassword(
phone: phone, phone: phone,
......
...@@ -7,15 +7,15 @@ class SearchController extends GetxController { ...@@ -7,15 +7,15 @@ class SearchController extends GetxController {
); );
late TextEditingController searchController = TextEditingController(); late TextEditingController searchController = TextEditingController();
bool showHistory = true; bool showHistory = true;
// 搜索记录数组 // 搜索记录数组
List<String> records = []; List<String> records = [];
// 书籍数组 // 书籍数组
List<CourseModel> books = []; List<CourseModel> books = [];
// 每页数量
final int _limit = 20; final int _limit = 20;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -79,6 +79,7 @@ class SearchController extends GetxController { ...@@ -79,6 +79,7 @@ class SearchController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getBooks(true); await _getBooks(true);
......
...@@ -5,12 +5,13 @@ class HistoryController extends GetxController { ...@@ -5,12 +5,13 @@ class HistoryController extends GetxController {
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 学习历史数组 // 学习历史数组
List<StudyHistoryModel> histories = []; List<StudyHistoryModel> histories = [];
// 每页数据
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -39,6 +40,7 @@ class HistoryController extends GetxController { ...@@ -39,6 +40,7 @@ class HistoryController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getHistory(true); await _getHistory(true);
...@@ -49,6 +51,7 @@ class HistoryController extends GetxController { ...@@ -49,6 +51,7 @@ class HistoryController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
part of study_report; part of study_report;
class StudyReportController extends GetxController { class StudyReportController extends GetxController {
// 书籍id
final String bookId; final String bookId;
StudyReportController(this.bookId); StudyReportController(this.bookId);
// 报告模型
ReportModel model = ReportModel(); ReportModel model = ReportModel();
@override @override
...@@ -13,6 +13,7 @@ class StudyReportController extends GetxController { ...@@ -13,6 +13,7 @@ class StudyReportController extends GetxController {
super.onReady(); super.onReady();
} }
/// 获取报告数据
void _getReport() async { void _getReport() async {
model = await LibraryAPI.report(bookId: bookId); model = await LibraryAPI.report(bookId: bookId);
update(); update();
......
...@@ -6,10 +6,13 @@ class UserCoinController extends GetxController { ...@@ -6,10 +6,13 @@ class UserCoinController extends GetxController {
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 紫荆币数据
List<RecordModel> coins = []; List<RecordModel> coins = [];
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -37,6 +40,7 @@ class UserCoinController extends GetxController { ...@@ -37,6 +40,7 @@ class UserCoinController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await getCoin(true); await getCoin(true);
...@@ -47,6 +51,7 @@ class UserCoinController extends GetxController { ...@@ -47,6 +51,7 @@ class UserCoinController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
part of recharge; part of recharge;
class CoinRechargeController extends GetxController { class CoinRechargeController extends GetxController {
// 上线文
final BuildContext context; final BuildContext context;
CoinRechargeController({required this.context}); CoinRechargeController({required this.context});
dynamic _purchaseUpdatedSubscription; dynamic _purchaseUpdatedSubscription;
...@@ -10,28 +12,24 @@ class CoinRechargeController extends GetxController { ...@@ -10,28 +12,24 @@ class CoinRechargeController extends GetxController {
List<IAPItem> _items = []; List<IAPItem> _items = [];
List<PurchasedItem> _purchases = []; List<PurchasedItem> _purchases = [];
///未完成的订单 //未完成的订单
List<PurchasedItem> _pendingPurchases = []; List<PurchasedItem> _pendingPurchases = [];
// 支付宝 // 支付宝
Tobias tobias = Tobias(); Tobias tobias = Tobias();
// 微信 // 微信
Fluwx fluwx = Fluwx(); Fluwx fluwx = Fluwx();
// 创建订单模型 // 创建订单模型
late PayOrderModel payOrderModel; late PayOrderModel payOrderModel;
// 支付类型
List<PayModel> pays = Platform.isIOS ?[ List<PayModel> pays = Platform.isIOS ?[
]:[ ]:[
// PayModel(type: 1, name: '微信', icon: 'assets/images/pay_wechat.png', selected: true), // PayModel(type: 1, name: '微信', icon: 'assets/images/pay_wechat.png', selected: true),
PayModel(type: 2, name: '支付宝', icon: 'assets/images/pay_ali.png', selected: true), PayModel(type: 2, name: '支付宝', icon: 'assets/images/pay_ali.png', selected: true),
]; ];
// 紫荆币数据
List<CoinModel> data = []; List<CoinModel> data = [];
// 充值模型
late CoinModel rechargeModel = CoinModel(); late CoinModel rechargeModel = CoinModel();
// 支付方式 // 支付方式
late PayModel _payModel = pays.first; late PayModel _payModel = pays.first;
PayModel get payModel => _payModel; PayModel get payModel => _payModel;
...@@ -67,6 +65,7 @@ class CoinRechargeController extends GetxController { ...@@ -67,6 +65,7 @@ class CoinRechargeController extends GetxController {
super.onClose(); super.onClose();
} }
/// 设置支付方式
void setPayModel(PayModel payModel){ void setPayModel(PayModel payModel){
for (PayModel model in pays) { for (PayModel model in pays) {
if (model.type == payModel.type){ if (model.type == payModel.type){
...@@ -80,6 +79,7 @@ class CoinRechargeController extends GetxController { ...@@ -80,6 +79,7 @@ class CoinRechargeController extends GetxController {
update(); update();
} }
/// 选择充值
void choose(CoinModel coinModel){ void choose(CoinModel coinModel){
for (CoinModel model in data) { for (CoinModel model in data) {
model.selected = (model == coinModel); model.selected = (model == coinModel);
...@@ -88,7 +88,6 @@ class CoinRechargeController extends GetxController { ...@@ -88,7 +88,6 @@ class CoinRechargeController extends GetxController {
update(); update();
} }
/// 获取充值列表 /// 获取充值列表
void _getlist()async{ void _getlist()async{
String type = ''; String type = '';
...@@ -107,6 +106,7 @@ class CoinRechargeController extends GetxController { ...@@ -107,6 +106,7 @@ class CoinRechargeController extends GetxController {
update(); update();
} }
/// 初始化支付
Future<void> initPlatformState() async{ Future<void> initPlatformState() async{
var result = await FlutterInappPurchase.instance.initialize(); var result = await FlutterInappPurchase.instance.initialize();
...@@ -185,6 +185,7 @@ class CoinRechargeController extends GetxController { ...@@ -185,6 +185,7 @@ class CoinRechargeController extends GetxController {
} }
} }
/// 获取后台关于当前单号的结算结果 /// 获取后台关于当前单号的结算结果
void _requestOrderStatus() async { void _requestOrderStatus() async {
final result = await ShopAPI.orderStatus(orderNumber: payOrderModel.ordersnum??'',receipt:_resultItem != null?_resultItem!.transactionReceipt.toString():''); final result = await ShopAPI.orderStatus(orderNumber: payOrderModel.ordersnum??'',receipt:_resultItem != null?_resultItem!.transactionReceipt.toString():'');
...@@ -272,7 +273,6 @@ class CoinRechargeController extends GetxController { ...@@ -272,7 +273,6 @@ class CoinRechargeController extends GetxController {
}); });
} }
///获取未完成的购买 ///获取未完成的购买
Future _getPendingPurchase() async { Future _getPendingPurchase() async {
List<PurchasedItem>? items = await FlutterInappPurchase.instance.getPurchaseHistory(); List<PurchasedItem>? items = await FlutterInappPurchase.instance.getPurchaseHistory();
......
...@@ -8,11 +8,12 @@ class UserCouponController extends GetxController { ...@@ -8,11 +8,12 @@ class UserCouponController extends GetxController {
// 优惠券 // 优惠券
List<CouponModel> coupons = []; List<CouponModel> coupons = [];
// late int type = 0; // late int type = 0;
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -56,6 +57,7 @@ class UserCouponController extends GetxController { ...@@ -56,6 +57,7 @@ class UserCouponController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getCoupon(true); await _getCoupon(true);
...@@ -66,6 +68,7 @@ class UserCouponController extends GetxController { ...@@ -66,6 +68,7 @@ class UserCouponController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
...@@ -5,11 +5,13 @@ class UserDiscussController extends GetxController { ...@@ -5,11 +5,13 @@ class UserDiscussController extends GetxController {
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 讨论数据
List<CourseModel> discuss = []; List<CourseModel> discuss = [];
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -37,6 +39,7 @@ class UserDiscussController extends GetxController { ...@@ -37,6 +39,7 @@ class UserDiscussController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getNotes(true); await _getNotes(true);
...@@ -47,6 +50,7 @@ class UserDiscussController extends GetxController { ...@@ -47,6 +50,7 @@ class UserDiscussController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
...@@ -60,6 +64,7 @@ class UserDiscussController extends GetxController { ...@@ -60,6 +64,7 @@ class UserDiscussController extends GetxController {
} }
} }
/// 测试数据
List<CourseModel> _test() { List<CourseModel> _test() {
return [ return [
CourseModel(), CourseModel(),
......
part of user_discuss_des; part of user_discuss_des;
class UserDiscussDesController extends GetxController { class UserDiscussDesController extends GetxController {
// 标签tag
final String tag; final String tag;
// 课程模型
final CourseModel model; final CourseModel model;
UserDiscussDesController(this.tag, this.model); UserDiscussDesController(this.tag, this.model);
// 讨论数据
List<DiscussModel> discuss = []; List<DiscussModel> discuss = [];
final EasyRefreshController refreshController = EasyRefreshController( final EasyRefreshController refreshController = EasyRefreshController(
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 回复控制器
late TextEditingController replyInput = TextEditingController(); late TextEditingController replyInput = TextEditingController();
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
// 展示回复输入框 // 展示回复输入框
bool showReply = false; bool showReply = false;
// 当前要回复的模型 // 当前要回复的模型
late DiscussModel discussModel; late DiscussModel discussModel;
// 当前要回复父级的模型 // 当前要回复父级的模型
late DiscussModel fatherDiscussModel; late DiscussModel fatherDiscussModel;
// 是否可点击
bool canTap = true; bool canTap = true;
@override @override
...@@ -42,20 +43,23 @@ class UserDiscussDesController extends GetxController { ...@@ -42,20 +43,23 @@ class UserDiscussDesController extends GetxController {
super.onClose(); super.onClose();
} }
/// 是否还在那时
void setShow() { void setShow() {
showReply = !showReply; showReply = !showReply;
update(); update();
} }
/// 设置讨论模型
void setDiscussModel(DiscussModel model) { void setDiscussModel(DiscussModel model) {
discussModel = model; discussModel = model;
} }
/// 设置父级模型
void setFatherDiscussModel(DiscussModel model) { void setFatherDiscussModel(DiscussModel model) {
fatherDiscussModel = model; fatherDiscussModel = model;
} }
// 删除回复 /// 删除回复
Future<void> delComment( Future<void> delComment(
{required List<DiscussModel>? list, {required List<DiscussModel>? list,
required DiscussModel discussModel}) async { required DiscussModel discussModel}) async {
...@@ -68,6 +72,7 @@ class UserDiscussDesController extends GetxController { ...@@ -68,6 +72,7 @@ class UserDiscussDesController extends GetxController {
update(); update();
} }
/// 提交
Future<bool> submit() async { Future<bool> submit() async {
Map<String, dynamic> contentMap = { Map<String, dynamic> contentMap = {
'text': replyInput.text, 'text': replyInput.text,
...@@ -122,6 +127,7 @@ class UserDiscussDesController extends GetxController { ...@@ -122,6 +127,7 @@ class UserDiscussDesController extends GetxController {
return result.isNotEmpty ? true : false; return result.isNotEmpty ? true : false;
} }
/// 点赞提交
Future<void> commentLove({required DiscussModel discussModel}) async { Future<void> commentLove({required DiscussModel discussModel}) async {
num type = 0; num type = 0;
if (discussModel.isPraise == 0) { if (discussModel.isPraise == 0) {
...@@ -159,6 +165,7 @@ class UserDiscussDesController extends GetxController { ...@@ -159,6 +165,7 @@ class UserDiscussDesController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getDiscuss(true); await _getDiscuss(true);
...@@ -170,6 +177,7 @@ class UserDiscussDesController extends GetxController { ...@@ -170,6 +177,7 @@ class UserDiscussDesController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
part of user_edit_note; part of user_edit_note;
class UserEditNoteController extends GetxController { class UserEditNoteController extends GetxController {
// 笔记模型
final NoteModel model; final NoteModel model;
// 书籍id
final String bookId; final String bookId;
// 输入
late TextEditingController contentInput; late TextEditingController contentInput;
UserEditNoteController(this.model, this.bookId) { UserEditNoteController(this.model, this.bookId) {
...@@ -10,21 +13,17 @@ class UserEditNoteController extends GetxController { ...@@ -10,21 +13,17 @@ class UserEditNoteController extends GetxController {
contentInput = contentInput =
TextEditingController(text: model.noteContent?.text?.content); TextEditingController(text: model.noteContent?.text?.content);
} }
// 录音 // 录音
final FlutterSoundRecorder _mRecorder = FlutterSoundRecorder(); final FlutterSoundRecorder _mRecorder = FlutterSoundRecorder();
just_audio.AudioPlayer audioPlayer = just_audio.AudioPlayer(); just_audio.AudioPlayer audioPlayer = just_audio.AudioPlayer();
// 录音开始 // 录音开始
bool startRecording = false; bool startRecording = false;
// 笔记是否公开 // 笔记是否公开
bool isPublic = false; bool isPublic = false;
bool initRecorder = false; bool initRecorder = false;
// 当前进度
String currentDuration = ''; String currentDuration = '';
// 当前媒体类型
late MediaModel currentPlayMediaModel = MediaModel(); late MediaModel currentPlayMediaModel = MediaModel();
@override @override
...@@ -41,13 +40,13 @@ class UserEditNoteController extends GetxController { ...@@ -41,13 +40,13 @@ class UserEditNoteController extends GetxController {
super.onClose(); super.onClose();
} }
// 设置笔记是否公开 /// 设置笔记是否公开
void setIsPublic() { void setIsPublic() {
isPublic = !isPublic; isPublic = !isPublic;
update(); update();
} }
// 配置音频时长 /// 配置音频时长
void _setDuration() async { void _setDuration() async {
for (MediaModel mediaModel in model.noteContent!.audio!) { for (MediaModel mediaModel in model.noteContent!.audio!) {
Duration? duration = Duration? duration =
...@@ -58,13 +57,13 @@ class UserEditNoteController extends GetxController { ...@@ -58,13 +57,13 @@ class UserEditNoteController extends GetxController {
update(); update();
} }
// 删除图片 /// 删除图片
void delImage(MediaModel mediaModel) { void delImage(MediaModel mediaModel) {
model.noteContent!.image!.remove(mediaModel); model.noteContent!.image!.remove(mediaModel);
update(); update();
} }
// 删除音频 /// 删除音频
void delAudio(MediaModel mediaModel) { void delAudio(MediaModel mediaModel) {
model.noteContent!.audio!.remove(mediaModel); model.noteContent!.audio!.remove(mediaModel);
// 新加的录音 如果删除要删除源文件 // 新加的录音 如果删除要删除源文件
...@@ -72,21 +71,21 @@ class UserEditNoteController extends GetxController { ...@@ -72,21 +71,21 @@ class UserEditNoteController extends GetxController {
update(); update();
} }
// 添加音频 /// 添加音频
void addAudio(String path, String duration) { void addAudio(String path, String duration) {
MediaModel mediaModel = MediaModel(path: path, id: 0, duration: duration); MediaModel mediaModel = MediaModel(path: path, id: 0, duration: duration);
model.noteContent!.audio!.add(mediaModel); model.noteContent!.audio!.add(mediaModel);
update(); update();
} }
// 添加图片 /// 添加图片
void addImage(String path) { void addImage(String path) {
MediaModel mediaModel = MediaModel(path: path, id: 0); MediaModel mediaModel = MediaModel(path: path, id: 0);
model.noteContent!.image!.add(mediaModel); model.noteContent!.image!.add(mediaModel);
update(); update();
} }
// 初始化录音组件 /// 初始化录音组件
Future<void> openTheRecorder() async { Future<void> openTheRecorder() async {
if (!initRecorder) { if (!initRecorder) {
// 获取权限 // 获取权限
...@@ -117,7 +116,7 @@ class UserEditNoteController extends GetxController { ...@@ -117,7 +116,7 @@ class UserEditNoteController extends GetxController {
initRecorder = true; initRecorder = true;
} }
// 开启录音 /// 开启录音
void record() async { void record() async {
await openTheRecorder(); await openTheRecorder();
update(); update();
...@@ -132,7 +131,7 @@ class UserEditNoteController extends GetxController { ...@@ -132,7 +131,7 @@ class UserEditNoteController extends GetxController {
); );
} }
// 停止录音 /// 停止录音
void stopRecorder() async { void stopRecorder() async {
startRecording = false; startRecording = false;
final path = await _mRecorder.stopRecorder(); final path = await _mRecorder.stopRecorder();
...@@ -142,7 +141,7 @@ class UserEditNoteController extends GetxController { ...@@ -142,7 +141,7 @@ class UserEditNoteController extends GetxController {
addAudio(path, Tools.formatDuration(duration!)); addAudio(path, Tools.formatDuration(duration!));
} }
// 播放音频 /// 播放音频
void playAudio(MediaModel mediaModel) { void playAudio(MediaModel mediaModel) {
if (audioPlayer.playerState.playing) { if (audioPlayer.playerState.playing) {
audioPlayer.stop(); audioPlayer.stop();
...@@ -175,7 +174,7 @@ class UserEditNoteController extends GetxController { ...@@ -175,7 +174,7 @@ class UserEditNoteController extends GetxController {
// currentPlayMediaModel = mediaModel; // currentPlayMediaModel = mediaModel;
} }
// 上传文件 /// 上传文件
Future<String> upload({required String path}) async { Future<String> upload({required String path}) async {
// String result = await CommonAPI.upload(path:path,fileTypes: 'comment'); // String result = await CommonAPI.upload(path:path,fileTypes: 'comment');
// return result; // return result;
...@@ -184,7 +183,7 @@ class UserEditNoteController extends GetxController { ...@@ -184,7 +183,7 @@ class UserEditNoteController extends GetxController {
return response.realUri.toString(); return response.realUri.toString();
} }
// 提交 /// 提交
Future<bool> submit() async { Future<bool> submit() async {
CustomToast.loading(); CustomToast.loading();
// 循环上传图片获取地址 // 循环上传图片获取地址
......
...@@ -2,11 +2,10 @@ part of user_feedback; ...@@ -2,11 +2,10 @@ part of user_feedback;
/// 提交意见反馈 /// 提交意见反馈
class UserFeedbackController extends GetxController { class UserFeedbackController extends GetxController {
// 输入控制器
late TextEditingController searchController = TextEditingController(); late TextEditingController searchController = TextEditingController();
// 按钮是否可用 // 按钮是否可用
bool _enable = false; bool _enable = false;
bool get enable => _enable; bool get enable => _enable;
/// 提交意见反馈 /// 提交意见反馈
...@@ -19,6 +18,7 @@ class UserFeedbackController extends GetxController { ...@@ -19,6 +18,7 @@ class UserFeedbackController extends GetxController {
return result; return result;
} }
/// 是否可点击
void setCanClick() { void setCanClick() {
if (searchController.text.isNotEmpty) { if (searchController.text.isNotEmpty) {
_enable = true; _enable = true;
......
part of user_gender; part of user_gender;
class UserGenderController extends GetxController { class UserGenderController extends GetxController {
// 用户信息模型
final UserInfoModel userInfo; final UserInfoModel userInfo;
UserGenderController(this.userInfo); UserGenderController(this.userInfo);
......
part of user_info; part of user_info;
class UserInfoController extends GetxController { class UserInfoController extends GetxController {
// 用户信息模型
final UserInfoModel userInfo; final UserInfoModel userInfo;
UserInfoController(this.userInfo); UserInfoController(this.userInfo);
...@@ -16,6 +17,7 @@ class UserInfoController extends GetxController { ...@@ -16,6 +17,7 @@ class UserInfoController extends GetxController {
_changeInfo(response.realUri.toString()); _changeInfo(response.realUri.toString());
} }
/// 是否显示
void show() { void show() {
showDetail = !showDetail; showDetail = !showDetail;
update(); update();
......
...@@ -5,11 +5,12 @@ class UserLoveController extends GetxController { ...@@ -5,11 +5,12 @@ class UserLoveController extends GetxController {
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 每页数量
final int _limit = 20; final int _limit = 20;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
// 收藏数据 // 收藏数据
List<CourseModel> loves = []; List<CourseModel> loves = [];
...@@ -46,6 +47,7 @@ class UserLoveController extends GetxController { ...@@ -46,6 +47,7 @@ class UserLoveController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getLoves(true); await _getLoves(true);
...@@ -56,6 +58,7 @@ class UserLoveController extends GetxController { ...@@ -56,6 +58,7 @@ class UserLoveController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
...@@ -5,10 +5,13 @@ class MsgController extends GetxController { ...@@ -5,10 +5,13 @@ class MsgController extends GetxController {
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 信息数据
List<MsgModel> msgs = []; List<MsgModel> msgs = [];
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -52,6 +55,7 @@ class MsgController extends GetxController { ...@@ -52,6 +55,7 @@ class MsgController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getMsgs(true); await _getMsgs(true);
...@@ -62,6 +66,7 @@ class MsgController extends GetxController { ...@@ -62,6 +66,7 @@ class MsgController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
part of user_nick; part of user_nick;
class UserNickController extends GetxController { class UserNickController extends GetxController {
// 用户信息模型
final UserInfoModel userInfo; final UserInfoModel userInfo;
UserNickController(this.userInfo); UserNickController(this.userInfo);
......
...@@ -6,10 +6,13 @@ class UserNoteController extends GetxController { ...@@ -6,10 +6,13 @@ class UserNoteController extends GetxController {
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 笔记数据
List<CourseModel> notes = []; List<CourseModel> notes = [];
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -38,6 +41,7 @@ class UserNoteController extends GetxController { ...@@ -38,6 +41,7 @@ class UserNoteController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getNotes(true); await _getNotes(true);
...@@ -48,6 +52,7 @@ class UserNoteController extends GetxController { ...@@ -48,6 +52,7 @@ class UserNoteController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
...@@ -61,6 +66,7 @@ class UserNoteController extends GetxController { ...@@ -61,6 +66,7 @@ class UserNoteController extends GetxController {
} }
} }
/// 测试数据
List<CourseModel> _test() { List<CourseModel> _test() {
return [ return [
CourseModel(), CourseModel(),
......
part of user_notes_des; part of user_notes_des;
class UserNotesDesController extends GetxController { class UserNotesDesController extends GetxController {
// 分类 tag
final String tag; final String tag;
// 书籍模型
final CourseModel model; final CourseModel model;
UserNotesDesController(this.tag, this.model); UserNotesDesController(this.tag, this.model);
...@@ -12,11 +14,13 @@ class UserNotesDesController extends GetxController { ...@@ -12,11 +14,13 @@ class UserNotesDesController extends GetxController {
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 音频播放器
just_audio.AudioPlayer audioPlayer = just_audio.AudioPlayer(); just_audio.AudioPlayer audioPlayer = just_audio.AudioPlayer();
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -32,7 +36,7 @@ class UserNotesDesController extends GetxController { ...@@ -32,7 +36,7 @@ class UserNotesDesController extends GetxController {
super.onClose(); super.onClose();
} }
// 播放音频 /// 播放音频
void playAudio(MediaModel mediaModel) { void playAudio(MediaModel mediaModel) {
if (audioPlayer.playerState.playing) { if (audioPlayer.playerState.playing) {
audioPlayer.stop(); audioPlayer.stop();
...@@ -65,6 +69,7 @@ class UserNotesDesController extends GetxController { ...@@ -65,6 +69,7 @@ class UserNotesDesController extends GetxController {
// currentPlayMediaModel = mediaModel; // currentPlayMediaModel = mediaModel;
} }
/// 删除笔记
void delNotes({required NoteModel noteModel, required String bookId}) async { void delNotes({required NoteModel noteModel, required String bookId}) async {
final result = await MineAPI.delNotes( final result = await MineAPI.delNotes(
notesId: noteModel.notesId.toString(), bookId: bookId); notesId: noteModel.notesId.toString(), bookId: bookId);
...@@ -109,6 +114,7 @@ class UserNotesDesController extends GetxController { ...@@ -109,6 +114,7 @@ class UserNotesDesController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getNotes(true); await _getNotes(true);
...@@ -121,6 +127,7 @@ class UserNotesDesController extends GetxController { ...@@ -121,6 +127,7 @@ class UserNotesDesController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
...@@ -3,20 +3,23 @@ part of user_order; ...@@ -3,20 +3,23 @@ part of user_order;
/// 订单详情 /// 订单详情
class UserOrderController extends GetxController class UserOrderController extends GetxController
with GetTickerProviderStateMixin { with GetTickerProviderStateMixin {
// 分类tag
final int tag; final int tag;
UserOrderController(this.tag); UserOrderController(this.tag);
// 订单数据
List<OrderListModel> orderList = []; List<OrderListModel> orderList = [];
final EasyRefreshController refreshController = EasyRefreshController( final EasyRefreshController refreshController = EasyRefreshController(
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 搜素控制器
late TextEditingController searchController = TextEditingController(); late TextEditingController searchController = TextEditingController();
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -47,6 +50,7 @@ class UserOrderController extends GetxController ...@@ -47,6 +50,7 @@ class UserOrderController extends GetxController
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getOrders(isRefresh:true); await _getOrders(isRefresh:true);
...@@ -58,6 +62,7 @@ class UserOrderController extends GetxController ...@@ -58,6 +62,7 @@ class UserOrderController extends GetxController
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
...@@ -71,6 +76,7 @@ class UserOrderController extends GetxController ...@@ -71,6 +76,7 @@ class UserOrderController extends GetxController
} }
} }
/// 测试数据
void addData() { void addData() {
orderList.add(OrderListModel( orderList.add(OrderListModel(
id: 1, id: 1,
......
...@@ -2,28 +2,22 @@ part of user_order_awaiting; ...@@ -2,28 +2,22 @@ part of user_order_awaiting;
/// 等待付款订单 /// 等待付款订单
class UserOrderAwaitingController extends GetxController { class UserOrderAwaitingController extends GetxController {
// 订单编号
late String _orderNum; late String _orderNum;
// 上线文
final BuildContext context; final BuildContext context;
UserOrderAwaitingController(this.context); // 订单编号 UserOrderAwaitingController(this.context); // 订单编号
// 订单模型
late OrderInfoModel model; late OrderInfoModel model;
// 应付款、订单编号等 // 应付款、订单编号等
List<OrderCompletedModel> orderAwaitings = []; List<OrderCompletedModel> orderAwaitings = [];
// 支付宝 // 支付宝
Tobias tobias = Tobias(); Tobias tobias = Tobias();
// 微信 // 微信
Fluwx fluwx = Fluwx(); Fluwx fluwx = Fluwx();
late PayOrderModel payOrderModel; late PayOrderModel payOrderModel;
String get orderNum => _orderNum; // 获取订单编号的方法 String get orderNum => _orderNum; // 获取订单编号的方法
// 更新订单编号的方法
void updateOrderNum(String newOrderNum) {
_orderNum = newOrderNum;
}
@override @override
void onReady() { void onReady() {
...@@ -31,6 +25,11 @@ class UserOrderAwaitingController extends GetxController { ...@@ -31,6 +25,11 @@ class UserOrderAwaitingController extends GetxController {
super.onReady(); super.onReady();
} }
/// 更新订单编号的方法
void updateOrderNum(String newOrderNum) {
_orderNum = newOrderNum;
}
/// 取消订单 /// 取消订单
Future<bool> cancelPay() async { Future<bool> cancelPay() async {
final result = await MineAPI.cancelPay(ordersnum: orderNum); final result = await MineAPI.cancelPay(ordersnum: orderNum);
...@@ -40,9 +39,6 @@ class UserOrderAwaitingController extends GetxController { ...@@ -40,9 +39,6 @@ class UserOrderAwaitingController extends GetxController {
return result; return result;
} }
/// 获取订单信息 /// 获取订单信息
Future<void> getOrderInfo() async { Future<void> getOrderInfo() async {
model = await MineAPI.getOrderInfo(orderNum: orderNum); model = await MineAPI.getOrderInfo(orderNum: orderNum);
...@@ -63,6 +59,7 @@ class UserOrderAwaitingController extends GetxController { ...@@ -63,6 +59,7 @@ class UserOrderAwaitingController extends GetxController {
update(); update();
} }
/// 支付
Future<void> payOrder() async { Future<void> payOrder() async {
payOrderModel = await MineAPI.getPayInfo(ordersNum: orderNum); payOrderModel = await MineAPI.getPayInfo(ordersNum: orderNum);
// 支付宝 // 支付宝
...@@ -97,7 +94,7 @@ class UserOrderAwaitingController extends GetxController { ...@@ -97,7 +94,7 @@ class UserOrderAwaitingController extends GetxController {
// } // }
} }
// 支付宝支付 /// 支付宝支付
void requestAliPay(){ void requestAliPay(){
tobias.pay(payOrderModel.encryptionOrder!).then((payResult){ tobias.pay(payOrderModel.encryptionOrder!).then((payResult){
if (payResult['resultStatus'] == '9000') { if (payResult['resultStatus'] == '9000') {
...@@ -108,7 +105,7 @@ class UserOrderAwaitingController extends GetxController { ...@@ -108,7 +105,7 @@ class UserOrderAwaitingController extends GetxController {
}); });
} }
// 微信支付 /// 微信支付
void requestWechat(){ void requestWechat(){
Payment payment = Payment( Payment payment = Payment(
appId: payOrderModel.appid??'', appId: payOrderModel.appid??'',
...@@ -130,6 +127,7 @@ class UserOrderAwaitingController extends GetxController { ...@@ -130,6 +127,7 @@ class UserOrderAwaitingController extends GetxController {
}); });
} }
/// 获取订单状态
void requestOrderStatus() async { void requestOrderStatus() async {
final result = await ShopAPI.orderStatus(orderNumber: payOrderModel.ordersnum??'',receipt: ''); final result = await ShopAPI.orderStatus(orderNumber: payOrderModel.ordersnum??'',receipt: '');
if (result.paySuccess == 1){ if (result.paySuccess == 1){
...@@ -142,7 +140,4 @@ class UserOrderAwaitingController extends GetxController { ...@@ -142,7 +140,4 @@ class UserOrderAwaitingController extends GetxController {
} }
} }
...@@ -4,23 +4,17 @@ part of user_order_cancel_detail; ...@@ -4,23 +4,17 @@ part of user_order_cancel_detail;
class UserOrderCancelDetailController extends GetxController { class UserOrderCancelDetailController extends GetxController {
final String orderNum;// 订单编号 final String orderNum;// 订单编号
UserOrderCancelDetailController(this.orderNum); UserOrderCancelDetailController(this.orderNum);
// 订单信息模型
OrderInfoModel model = OrderInfoModel(); OrderInfoModel model = OrderInfoModel();
// 应付款、订单编号等 // 应付款、订单编号等
List<OrderCompletedModel> orderCompleteds = []; List<OrderCompletedModel> orderCompleteds = [];
@override @override
void onReady() { void onReady() {
getOrderInfo(); getOrderInfo();
super.onReady(); super.onReady();
} }
/// 获取订单信息 /// 获取订单信息
void getOrderInfo() async { void getOrderInfo() async {
model = await MineAPI.getOrderInfo(orderNum: orderNum); model = await MineAPI.getOrderInfo(orderNum: orderNum);
......
...@@ -2,7 +2,9 @@ part of user_order_coin_awaiting; ...@@ -2,7 +2,9 @@ part of user_order_coin_awaiting;
/// 紫荆币等待付款订单 /// 紫荆币等待付款订单
class UserOrderCoinAwaitingController extends GetxController { class UserOrderCoinAwaitingController extends GetxController {
// 订单编号
late String _orderNum; late String _orderNum;
// 上线文
final BuildContext context; final BuildContext context;
String get orderNum => _orderNum; // 获取订单编号的方法 String get orderNum => _orderNum; // 获取订单编号的方法
UserOrderCoinAwaitingController(this.context); UserOrderCoinAwaitingController(this.context);
...@@ -13,15 +15,11 @@ class UserOrderCoinAwaitingController extends GetxController { ...@@ -13,15 +15,11 @@ class UserOrderCoinAwaitingController extends GetxController {
late OrderInfoModel model; late OrderInfoModel model;
// 应付款、订单编号等 // 应付款、订单编号等
List<OrderCompletedModel> orderAwaitings = []; List<OrderCompletedModel> orderAwaitings = [];
// 支付宝 // 支付宝
Tobias tobias = Tobias(); Tobias tobias = Tobias();
// 微信 // 微信
Fluwx fluwx = Fluwx(); Fluwx fluwx = Fluwx();
late PayOrderModel payOrderModel; late PayOrderModel payOrderModel;
dynamic _purchaseUpdatedSubscription; dynamic _purchaseUpdatedSubscription;
dynamic _purchaseErrorSubscription; dynamic _purchaseErrorSubscription;
dynamic _connectionSubscription; dynamic _connectionSubscription;
...@@ -31,7 +29,7 @@ class UserOrderCoinAwaitingController extends GetxController { ...@@ -31,7 +29,7 @@ class UserOrderCoinAwaitingController extends GetxController {
List<PurchasedItem> _purchases = []; List<PurchasedItem> _purchases = [];
///未完成的订单 ///未完成的订单
List<PurchasedItem> _pendingPurchases = []; List<PurchasedItem> _pendingPurchases = [];
// 紫荆币数据
List<CoinModel> data = []; List<CoinModel> data = [];
...@@ -70,6 +68,7 @@ class UserOrderCoinAwaitingController extends GetxController { ...@@ -70,6 +68,7 @@ class UserOrderCoinAwaitingController extends GetxController {
super.onClose(); super.onClose();
} }
/// 初始化
Future<void> initPlatformState() async{ Future<void> initPlatformState() async{
var result = await FlutterInappPurchase.instance.initialize(); var result = await FlutterInappPurchase.instance.initialize();
...@@ -124,7 +123,6 @@ class UserOrderCoinAwaitingController extends GetxController { ...@@ -124,7 +123,6 @@ class UserOrderCoinAwaitingController extends GetxController {
update(); update();
} }
/// 获取商品列表 /// 获取商品列表
Future _getProduct() async { Future _getProduct() async {
...@@ -144,6 +142,7 @@ class UserOrderCoinAwaitingController extends GetxController { ...@@ -144,6 +142,7 @@ class UserOrderCoinAwaitingController extends GetxController {
// update(); // update();
} }
/// 支付订单
Future<void> payOrder() async { Future<void> payOrder() async {
// 苹果支付 // 苹果支付
if (model.payType ==3){ if (model.payType ==3){
...@@ -180,14 +179,14 @@ class UserOrderCoinAwaitingController extends GetxController { ...@@ -180,14 +179,14 @@ class UserOrderCoinAwaitingController extends GetxController {
} }
// 苹果支付 /// 苹果支付
void _requestPurchase(IAPItem item) { void _requestPurchase(IAPItem item) {
CustomToast.loading(); CustomToast.loading();
FlutterInappPurchase.instance FlutterInappPurchase.instance
.requestPurchase(item.productId!); .requestPurchase(item.productId!);
} }
// 支付宝支付 /// 支付宝支付
void requestAliPay(){ void requestAliPay(){
Console.log('================================================================${payOrderModel.encryptionOrder!}'); Console.log('================================================================${payOrderModel.encryptionOrder!}');
tobias.pay(payOrderModel.encryptionOrder!).then((payResult){ tobias.pay(payOrderModel.encryptionOrder!).then((payResult){
...@@ -199,7 +198,7 @@ class UserOrderCoinAwaitingController extends GetxController { ...@@ -199,7 +198,7 @@ class UserOrderCoinAwaitingController extends GetxController {
}); });
} }
// 微信支付 /// 微信支付
void requestWechat(){ void requestWechat(){
Payment payment = Payment( Payment payment = Payment(
appId: payOrderModel.appid??'', appId: payOrderModel.appid??'',
...@@ -221,6 +220,7 @@ class UserOrderCoinAwaitingController extends GetxController { ...@@ -221,6 +220,7 @@ class UserOrderCoinAwaitingController extends GetxController {
}); });
} }
/// 获取订单状态
void requestOrderStatus() async { void requestOrderStatus() async {
final result = await ShopAPI.orderStatus(orderNumber: model.ordersnum??'',receipt:_resultItem != null?_resultItem!.transactionReceipt.toString():''); final result = await ShopAPI.orderStatus(orderNumber: model.ordersnum??'',receipt:_resultItem != null?_resultItem!.transactionReceipt.toString():'');
if (result.paySuccess == 1){ if (result.paySuccess == 1){
...@@ -280,6 +280,4 @@ class UserOrderCoinAwaitingController extends GetxController { ...@@ -280,6 +280,4 @@ class UserOrderCoinAwaitingController extends GetxController {
} }
} }
...@@ -2,7 +2,9 @@ part of user_order_coin_cancel; ...@@ -2,7 +2,9 @@ part of user_order_coin_cancel;
/// 紫荆币等待付款订单 /// 紫荆币等待付款订单
class UserOrderCoinCancelController extends GetxController { class UserOrderCoinCancelController extends GetxController {
// 订单编号
late String _orderNum; late String _orderNum;
// 上线问
final BuildContext context; final BuildContext context;
String get orderNum => _orderNum; // 获取订单编号的方法 String get orderNum => _orderNum; // 获取订单编号的方法
UserOrderCoinCancelController(this.context); UserOrderCoinCancelController(this.context);
...@@ -13,15 +15,11 @@ class UserOrderCoinCancelController extends GetxController { ...@@ -13,15 +15,11 @@ class UserOrderCoinCancelController extends GetxController {
late OrderInfoModel model; late OrderInfoModel model;
// 应付款、订单编号等 // 应付款、订单编号等
List<OrderCompletedModel> orderAwaitings = []; List<OrderCompletedModel> orderAwaitings = [];
// 支付宝 // 支付宝
Tobias tobias = Tobias(); Tobias tobias = Tobias();
// 微信 // 微信
Fluwx fluwx = Fluwx(); Fluwx fluwx = Fluwx();
late PayOrderModel payOrderModel; late PayOrderModel payOrderModel;
dynamic _purchaseUpdatedSubscription; dynamic _purchaseUpdatedSubscription;
dynamic _purchaseErrorSubscription; dynamic _purchaseErrorSubscription;
dynamic _connectionSubscription; dynamic _connectionSubscription;
...@@ -70,6 +68,7 @@ class UserOrderCoinCancelController extends GetxController { ...@@ -70,6 +68,7 @@ class UserOrderCoinCancelController extends GetxController {
super.onClose(); super.onClose();
} }
/// 初始化
Future<void> initPlatformState() async{ Future<void> initPlatformState() async{
var result = await FlutterInappPurchase.instance.initialize(); var result = await FlutterInappPurchase.instance.initialize();
...@@ -125,7 +124,6 @@ class UserOrderCoinCancelController extends GetxController { ...@@ -125,7 +124,6 @@ class UserOrderCoinCancelController extends GetxController {
update(); update();
} }
/// 获取商品列表 /// 获取商品列表
Future _getProduct() async { Future _getProduct() async {
...@@ -144,6 +142,7 @@ class UserOrderCoinCancelController extends GetxController { ...@@ -144,6 +142,7 @@ class UserOrderCoinCancelController extends GetxController {
// update(); // update();
} }
/// 支付订单
Future<void> payOrder() async { Future<void> payOrder() async {
// 苹果支付 // 苹果支付
if (model.payType ==3){ if (model.payType ==3){
...@@ -180,14 +179,14 @@ class UserOrderCoinCancelController extends GetxController { ...@@ -180,14 +179,14 @@ class UserOrderCoinCancelController extends GetxController {
} }
// 苹果支付 /// 苹果支付
void _requestPurchase(IAPItem item) { void _requestPurchase(IAPItem item) {
CustomToast.loading(); CustomToast.loading();
FlutterInappPurchase.instance FlutterInappPurchase.instance
.requestPurchase(item.productId!); .requestPurchase(item.productId!);
} }
// 支付宝支付 /// 支付宝支付
void requestAliPay(){ void requestAliPay(){
Console.log('================================================================${payOrderModel.encryptionOrder!}'); Console.log('================================================================${payOrderModel.encryptionOrder!}');
tobias.pay(payOrderModel.encryptionOrder!).then((payResult){ tobias.pay(payOrderModel.encryptionOrder!).then((payResult){
...@@ -199,7 +198,7 @@ class UserOrderCoinCancelController extends GetxController { ...@@ -199,7 +198,7 @@ class UserOrderCoinCancelController extends GetxController {
}); });
} }
// 微信支付 /// 微信支付
void requestWechat(){ void requestWechat(){
Payment payment = Payment( Payment payment = Payment(
appId: payOrderModel.appid??'', appId: payOrderModel.appid??'',
...@@ -221,6 +220,7 @@ class UserOrderCoinCancelController extends GetxController { ...@@ -221,6 +220,7 @@ class UserOrderCoinCancelController extends GetxController {
}); });
} }
/// 获取订单状态
void requestOrderStatus() async { void requestOrderStatus() async {
final result = await ShopAPI.orderStatus(orderNumber: model.ordersnum??'',receipt:_resultItem != null?_resultItem!.transactionReceipt.toString():''); final result = await ShopAPI.orderStatus(orderNumber: model.ordersnum??'',receipt:_resultItem != null?_resultItem!.transactionReceipt.toString():'');
if (result.paySuccess == 1){ if (result.paySuccess == 1){
......
...@@ -2,7 +2,9 @@ part of user_order_coin_completed; ...@@ -2,7 +2,9 @@ part of user_order_coin_completed;
/// 紫荆币等待付款订单 /// 紫荆币等待付款订单
class UserOrderCoinCompletedController extends GetxController { class UserOrderCoinCompletedController extends GetxController {
// 订单编号
late String _orderNum; late String _orderNum;
// 上线文
final BuildContext context; final BuildContext context;
String get orderNum => _orderNum; // 获取订单编号的方法 String get orderNum => _orderNum; // 获取订单编号的方法
UserOrderCoinCompletedController(this.context); UserOrderCoinCompletedController(this.context);
...@@ -13,20 +15,15 @@ class UserOrderCoinCompletedController extends GetxController { ...@@ -13,20 +15,15 @@ class UserOrderCoinCompletedController extends GetxController {
late OrderInfoModel model; late OrderInfoModel model;
// 应付款、订单编号等 // 应付款、订单编号等
List<OrderCompletedModel> orderAwaitings = []; List<OrderCompletedModel> orderAwaitings = [];
// 支付宝 // 支付宝
Tobias tobias = Tobias(); Tobias tobias = Tobias();
// 微信 // 微信
Fluwx fluwx = Fluwx(); Fluwx fluwx = Fluwx();
late PayOrderModel payOrderModel; late PayOrderModel payOrderModel;
dynamic _purchaseUpdatedSubscription; dynamic _purchaseUpdatedSubscription;
dynamic _purchaseErrorSubscription; dynamic _purchaseErrorSubscription;
dynamic _connectionSubscription; dynamic _connectionSubscription;
PurchasedItem? _resultItem; PurchasedItem? _resultItem;
List<IAPItem> _items = []; List<IAPItem> _items = [];
List<PurchasedItem> _purchases = []; List<PurchasedItem> _purchases = [];
///未完成的订单 ///未完成的订单
...@@ -70,6 +67,7 @@ class UserOrderCoinCompletedController extends GetxController { ...@@ -70,6 +67,7 @@ class UserOrderCoinCompletedController extends GetxController {
super.onClose(); super.onClose();
} }
/// 初始化
Future<void> initPlatformState() async{ Future<void> initPlatformState() async{
var result = await FlutterInappPurchase.instance.initialize(); var result = await FlutterInappPurchase.instance.initialize();
...@@ -126,7 +124,6 @@ class UserOrderCoinCompletedController extends GetxController { ...@@ -126,7 +124,6 @@ class UserOrderCoinCompletedController extends GetxController {
update(); update();
} }
/// 获取商品列表 /// 获取商品列表
Future _getProduct() async { Future _getProduct() async {
...@@ -145,6 +142,7 @@ class UserOrderCoinCompletedController extends GetxController { ...@@ -145,6 +142,7 @@ class UserOrderCoinCompletedController extends GetxController {
// update(); // update();
} }
/// 支付订单
Future<void> payOrder() async { Future<void> payOrder() async {
// 苹果支付 // 苹果支付
if (model.payType ==3){ if (model.payType ==3){
...@@ -181,14 +179,14 @@ class UserOrderCoinCompletedController extends GetxController { ...@@ -181,14 +179,14 @@ class UserOrderCoinCompletedController extends GetxController {
} }
// 苹果支付 /// 苹果支付
void _requestPurchase(IAPItem item) { void _requestPurchase(IAPItem item) {
CustomToast.loading(); CustomToast.loading();
FlutterInappPurchase.instance FlutterInappPurchase.instance
.requestPurchase(item.productId!); .requestPurchase(item.productId!);
} }
// 支付宝支付 /// 支付宝支付
void requestAliPay(){ void requestAliPay(){
Console.log('================================================================${payOrderModel.encryptionOrder!}'); Console.log('================================================================${payOrderModel.encryptionOrder!}');
tobias.pay(payOrderModel.encryptionOrder!).then((payResult){ tobias.pay(payOrderModel.encryptionOrder!).then((payResult){
...@@ -200,7 +198,7 @@ class UserOrderCoinCompletedController extends GetxController { ...@@ -200,7 +198,7 @@ class UserOrderCoinCompletedController extends GetxController {
}); });
} }
// 微信支付 /// 微信支付
void requestWechat(){ void requestWechat(){
Payment payment = Payment( Payment payment = Payment(
appId: payOrderModel.appid??'', appId: payOrderModel.appid??'',
...@@ -222,6 +220,7 @@ class UserOrderCoinCompletedController extends GetxController { ...@@ -222,6 +220,7 @@ class UserOrderCoinCompletedController extends GetxController {
}); });
} }
/// 获取订单状态
void requestOrderStatus() async { void requestOrderStatus() async {
final result = await ShopAPI.orderStatus(orderNumber: model.ordersnum??'',receipt:_resultItem != null?_resultItem!.transactionReceipt.toString():''); final result = await ShopAPI.orderStatus(orderNumber: model.ordersnum??'',receipt:_resultItem != null?_resultItem!.transactionReceipt.toString():'');
if (result.paySuccess == 1){ if (result.paySuccess == 1){
......
...@@ -2,7 +2,9 @@ part of user_order_evaluate; ...@@ -2,7 +2,9 @@ part of user_order_evaluate;
/// 订单评价 /// 订单评价
class UserOrderEvaluateController extends GetxController { class UserOrderEvaluateController extends GetxController {
// 订单信息模型
late OrderInfoModel orderInfoModel = OrderInfoModel(); late OrderInfoModel orderInfoModel = OrderInfoModel();
// 订单编号
String orderNum; String orderNum;
UserOrderEvaluateController(this.orderNum); // 已完成订单 UserOrderEvaluateController(this.orderNum); // 已完成订单
...@@ -11,10 +13,8 @@ class UserOrderEvaluateController extends GetxController { ...@@ -11,10 +13,8 @@ class UserOrderEvaluateController extends GetxController {
late List<num?> ratings; late List<num?> ratings;
late List<FocusNode?> focusNodes; late List<FocusNode?> focusNodes;
// final FocusNode _focusNode = FocusNode(); // final FocusNode _focusNode = FocusNode();
// 按钮是否可用 // 按钮是否可用
bool _enable = false; bool _enable = false;
bool get enable => _enable; bool get enable => _enable;
@override @override
...@@ -23,6 +23,18 @@ class UserOrderEvaluateController extends GetxController { ...@@ -23,6 +23,18 @@ class UserOrderEvaluateController extends GetxController {
super.onReady(); super.onReady();
} }
@override
void onClose() {
commentsInput.dispose();
for(TextEditingController controller in _commentsControllers){
controller.dispose();
}
for(int i=0;i<focusNodes.length;i++){
focusNodes[i]!.dispose();
}
super.onClose();
}
/// 获取订单信息 /// 获取订单信息
Future<void> getOrderInfo() async { Future<void> getOrderInfo() async {
orderInfoModel = await MineAPI.getOrderInfo(orderNum: orderNum); orderInfoModel = await MineAPI.getOrderInfo(orderNum: orderNum);
...@@ -62,6 +74,7 @@ class UserOrderEvaluateController extends GetxController { ...@@ -62,6 +74,7 @@ class UserOrderEvaluateController extends GetxController {
return false; return false;
} }
/// 是否可点击
void setCanClick({num double = 0}) { void setCanClick({num double = 0}) {
if (double > 0) { if (double > 0) {
_enable = true; _enable = true;
...@@ -71,20 +84,10 @@ class UserOrderEvaluateController extends GetxController { ...@@ -71,20 +84,10 @@ class UserOrderEvaluateController extends GetxController {
update(); update();
} }
/// 更新文本
void updateText(String text) { void updateText(String text) {
commentsInput = TextEditingController(text: text); commentsInput = TextEditingController(text: text);
// update(); // update();
} }
@override
void onClose() {
commentsInput.dispose();
for(TextEditingController controller in _commentsControllers){
controller.dispose();
}
for(int i=0;i<focusNodes.length;i++){
focusNodes[i]!.dispose();
}
super.onClose();
}
} }
...@@ -4,23 +4,16 @@ part of user_order_refunded; ...@@ -4,23 +4,16 @@ part of user_order_refunded;
class UserOrderCRefundedController extends GetxController { class UserOrderCRefundedController extends GetxController {
final String orderNum;// 订单编号 final String orderNum;// 订单编号
UserOrderCRefundedController(this.orderNum); UserOrderCRefundedController(this.orderNum);
OrderInfoModel model = OrderInfoModel(); OrderInfoModel model = OrderInfoModel();
// 应付款、订单编号等 // 应付款、订单编号等
List<OrderCompletedModel> orderCompleteds = []; List<OrderCompletedModel> orderCompleteds = [];
@override @override
void onReady() { void onReady() {
getOrderInfo(); getOrderInfo();
super.onReady(); super.onReady();
} }
/// 获取订单信息 /// 获取订单信息
void getOrderInfo() async { void getOrderInfo() async {
model = await MineAPI.getOrderInfo(orderNum: orderNum); model = await MineAPI.getOrderInfo(orderNum: orderNum);
......
...@@ -5,11 +5,13 @@ class UserPointController extends GetxController { ...@@ -5,11 +5,13 @@ class UserPointController extends GetxController {
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 积分数据
List<RecordModel> points = []; List<RecordModel> points = [];
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -37,6 +39,7 @@ class UserPointController extends GetxController { ...@@ -37,6 +39,7 @@ class UserPointController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getPoint(true); await _getPoint(true);
...@@ -47,6 +50,7 @@ class UserPointController extends GetxController { ...@@ -47,6 +50,7 @@ class UserPointController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
...@@ -5,11 +5,13 @@ class UserWrongController extends GetxController { ...@@ -5,11 +5,13 @@ class UserWrongController extends GetxController {
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 错题书
List<CourseModel> wrongs = []; List<CourseModel> wrongs = [];
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
@override @override
...@@ -37,6 +39,7 @@ class UserWrongController extends GetxController { ...@@ -37,6 +39,7 @@ class UserWrongController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getWrongs(true); await _getWrongs(true);
...@@ -47,6 +50,7 @@ class UserWrongController extends GetxController { ...@@ -47,6 +50,7 @@ class UserWrongController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
...@@ -5,10 +5,13 @@ class VersionController extends GetxController { ...@@ -5,10 +5,13 @@ class VersionController extends GetxController {
controlFinishLoad: true, controlFinishLoad: true,
controlFinishRefresh: true, controlFinishRefresh: true,
); );
// 每页数量
final int _limit = 10; final int _limit = 10;
// 当前页码
int _page = 1; int _page = 1;
// 是否有更多
bool _noMore = false; bool _noMore = false;
// 版本数据
List<VersionModel> versions = []; List<VersionModel> versions = [];
@override @override
...@@ -30,6 +33,7 @@ class VersionController extends GetxController { ...@@ -30,6 +33,7 @@ class VersionController extends GetxController {
update(); update();
} }
/// 刷新数据
void onRefresh() async { void onRefresh() async {
try { try {
await _getVersions(true); await _getVersions(true);
...@@ -40,6 +44,7 @@ class VersionController extends GetxController { ...@@ -40,6 +44,7 @@ class VersionController extends GetxController {
} }
} }
/// 加载数据
void onLoading() async { void onLoading() async {
if (_noMore) { if (_noMore) {
refreshController.finishLoad(IndicatorResult.noMore); refreshController.finishLoad(IndicatorResult.noMore);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论