flutter 做七天签到,本地记录有没有签到

如果签到过,就用sharepreference记录自己已经签到过了,但是问题是如果切换账号后,这个本地数据还在,导致另外一个账号不能签到了,所以还是不能做本地存储的

  //保存签到弹窗当天日期
  static setSignInCurDate(String date){
    StorageManager.sharedPreferences?.setString('signCurDate', date);
  }
  ///获取签到弹窗当天日期
  static get getSignCurDate => StorageManager.sharedPreferences?.getString('signCurDate');

  //是否已签到
  static setIsSign(bool date){
    StorageManager.sharedPreferences?.setBool('isSign', date);
  }
  ///获取是否已签到
  static get getIsSign => StorageManager.sharedPreferences?.getBool('isSign');

DateTime now = DateTime.now();
      String nowTime = "${now.year}/${now.month}/${now.day}";
      PrintUtil.prints("签到日期${SPHelper.getSignCurDate}");
      if (SPHelper.getSignCurDate == null ||
          SPHelper.getSignCurDate != nowTime) {
        PrintUtil.prints("签到日期${SPHelper.getSignCurDate}");
        SPHelper.setSignInCurDate(nowTime);
        SPHelper.setIsSign(false);
        if (SPHelper.getIsSign == null || SPHelper.getIsSign == false) {
          HttpRequest.intance.postHttpFromBusiness(Api.API_SIGN_GET_REWARD,
              (data) {
            SignInGetReward signInGetReward = SignInGetReward.fromJson(data);
            //对数据进行排序,防止服务端改变数据的位置
            List<RewardData> rewardList = [];
            setState(() {
              if (signInGetReward.rewardList != null) {
                rewardList = signInGetReward.rewardList!;
                rewardList.sort((a, b) => a.id!.compareTo(b.id!));
              }
            });
            //如果服务器返回1即已经签到过了,就不弹了。返回0才弹
            if(signInGetReward.todayIsSign==0){
              showDialog(
                  context: context,
                  builder: (context) =>
                      signInDialog(signInGetReward, rewardList));
            }
            log("获取礼物列表1" + json.encode(data));
          }, (error) {}, onErrorCode: (errorCode) {}, parameters: {
            'activity_id': 1,
          });
        }
      } else {
        if (SPHelper.getIsSign == null || SPHelper.getIsSign == false) {
          HttpRequest.intance.postHttpFromBusiness(Api.API_SIGN_GET_REWARD,
              (data) {
            SignInGetReward signInGetReward = SignInGetReward.fromJson(data);
            //对数据进行排序,防止服务端改变数据的位置
            List<RewardData> rewardList = [];
            setState(() {
              if (signInGetReward.rewardList != null) {
                rewardList = signInGetReward.rewardList!;
                rewardList.sort((a, b) => a.id!.compareTo(b.id!));
              }
            });
            //如果服务器返回1即已经签到过了,就不弹了。返回0才弹
            if(signInGetReward.todayIsSign==0){
              showDialog(
                  context: context,
                  builder: (context) =>
                      signInDialog(signInGetReward, rewardList));
            }
            log("获取礼物列表1" + json.encode(data));
          }, (error) {}, onErrorCode: (errorCode) {}, parameters: {
            'activity_id': 1,
          });
        }
      }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值