(function (app) {
    app.controller('myCtrl', ["$scope","$ionicTabsDelegate", "$state", "$http", "storage", "myService", "common", "config", "msg"
        , function ($scope,$ionicTabsDelegate, $state, $http, storage, myService, common, config, msg) {
        $scope.$on('$ionicView.beforeEnter', function (viewResult) {
            $ionicTabsDelegate.showBar(true);
            myService.myInfo().then(function(result){ 
              $scope.user = result.data.data
            });
        });
        $scope.setAvator = function () {
            common.setAvator().then(function (result) {
                var response = JSON.parse(result.response);
                console.log(response.data.file);
                $scope.user.avatar = config.imgServer + response.data.file;
            });
        };
    }]);
    app.controller('profileCtrl', ["$scope","$ionicTabsDelegate","$state","$filter", "storage", "myService", "msg", "config", "common"
      , function ($scope, $ionicTabsDelegate, $state, $filter, storage, myService, msg, config, common) {
            $scope.$on('$ionicView.beforeEnter', function () {
                $ionicTabsDelegate.showBar(false);
                msg.loading();
                myService.myInfo().then(function(result){
                  // alert(JSON.stringify(result.data.data));
                  $scope.vm = result.data.data;
                    console.log($scope.vm.avatar);
                  $scope.vm.sex = $scope.vm.sex+'';
                  $scope.vm.emotion = $scope.vm.emotion+'';
                  if($scope.vm.birthday){
                      var arr1 = $scope.vm.birthday.split("-");
                      $scope.vm.birthday1 = new Date(arr1[0],parseInt(arr1[1])-1,arr1[2]); 
                  }
                  msg.hide();
                },function(error){
                  msg.hide();
                  // msg.error(error.data.message);
                })
            });
            $scope.setAvator = function () {
                common.setAvator().then(function (result) {
                    var response = JSON.parse(result.response);
                    $scope.vm.avatar = config.imgServer + response.data.file;
                });
            };
          
          //保存个人信息
            $scope.vm={
                pic:"",
                sex:"",
                signture:"",
                emotion:"",
                job:"",
                tall:"",
                nickname:"",
                birthday1:""
            }; 
 
            $scope.saveMaterial = function(){
                var data = {
                    sex:$scope.vm.sex,
                    signture:$scope.vm.signture,
                    emotion:$scope.vm.emotion,
                    work:$scope.vm.work, 
                    height:$scope.vm.height, 
                    city:$scope.vm.city,
                    nickname:$scope.vm.nickname,
                    birthday:$scope.vm.birthday1
                }; 
                if($scope.vm.birthday1){
                    data.birthday = $filter('date')($scope.vm.birthday1, "yyyy-MM-dd");
                }
                if($scope.vm.avatar){
                  data.pic = $scope.vm.avatar;
                }
                //msg.loading('提交中...');
                msg.loading();
 
                myService.saveMaterial(data).then(function(result){
                  msg.hide();
                  msg.success("保存成功!");
                  $state.go('app.my');
                    myService.myInfo();
                },function(error){
                  msg.hide();
                  msg.error(error.data.message);
                })
            }
        }]);
    app.controller('settingCtrl', ["$scope","$ionicTabsDelegate", "$state", "myService", "msg","storage"
     , function ($scope,$ionicTabsDelegate, $state,myService, msg, storage) {
            $scope.$on('$ionicView.beforeEnter', function () {
                $ionicTabsDelegate.showBar(false);
            });
            //退出登陆
            $scope.logout = function(){
                    storage.remove("token");
                    storage.remove("user");
                    $state.go("login");
            }

     }]);
    app.controller('aboutMiaoCtrl', ["$scope","$ionicTabsDelegate","$timeout", "$state", "myService", "msg","storage"
        , function ($scope,$ionicTabsDelegate,$timeout, $state,myService, msg, storage) {
            $scope.$on('$ionicView.beforeEnter', function () {
                $scope.aboutMiao();
            });
            $scope.aboutMiao = function(){
                myService.aboutMiao().then(function(result){
                    $scope.items = result.data.data;
                },function(error){
                    msg.error(error.data.message)
                })
            };
        }]);
    app.controller('withdrawCtrl', ["$scope","$ionicTabsDelegate","$ionicHistory","$timeout", "$state", "myService", "msg","storage"
        , function ($scope,$ionicTabsDelegate, $ionicHistory,$timeout,$state,myService, msg, storage) {
            $scope.vm={
                pay:"",
                cash:""
            };
            $scope.$on("$ionicView.enter",function(){
                myService.showAccount().then(function(result){
                    $scope.accountId = result.data.data;
                    var items = result.data.data;
                    if(items.length==0){
                        msg.text("请先添加账户");
                        $state.go("app.my_account_add");
                        return 
                    }
                    $scope.pays=[];
                    angular.forEach(items,function(item){
                        if(item.bank_name!=null) {
                            var value=item.bank_name+"(";
                            var len=item.bank_number.length;
                            var txt1=item.bank_number.substr(0,len-4).replace(/\d+/g,'**');
                            var txt2=item.bank_number.substr(len-4,4);
                            value=value+txt1+txt2+")";
                        }
                        else {
                            value=item.type;
                        }
                        $scope.pays.push({id:item.id,value:value});
                    });
                    $scope.vm.pay = $scope.pays[0]
                },function(error){
                    msg.error(error.data.message)
                })
            });

            $scope.withdraw = function(){
                var data = {
                    data:{
                        bank_id:$scope.vm.pay.id,
                        cash:$scope.vm.cash
                    }
                };
                myService.withdraw(data).then(function(result){
                    msg.text("提现申请已提交");
                    $timeout(function () {
                        $ionicHistory.goBack();
                    },1000);
                },function(error){

                })
            }
        }]);
    app.controller('payoutCtrl', ["$scope","$ionicTabsDelegate","$timeout","$ionicHistory", "$state", "myService", "msg","storage"
        , function ($scope,$ionicTabsDelegate, $timeout, $ionicHistory,$state,myService, msg, storage) {
            $scope.vm={
                pay:"",
                cash:""
            };
            $scope.$on("$ionicView.enter",function(){
                myService.showAccount().then(function(result){
                    $scope.accountId = result.data.data;
                    var items = result.data.data;
                    $scope.pays=[];
                    angular.forEach(items,function(item){
                        if(item.bank_name!=null) {
                            var value=item.bank_name+"(";
                            var len=item.bank_number.length;
                            var txt1=item.bank_number.substr(0,len-4).replace(/\d+/g,'**');
                            var txt2=item.bank_number.substr(len-4,4);
                            value=value+txt1+txt2+")";
                        }
                        else {
                            value=item.type;
                        }
                        $scope.pays.push({id:item.id,value:value});
                    })
                },function(error){
                    msg.error(error.data.message)
                })
            });

            $scope.withdraw = function(){
                var data = {
                    data:{
                        bank_id:$scope.vm.pay.id,
                        cash:$scope.vm.cash
                    }
                };
                myService.withdraw(data).then(function(result){
                    msg.text("提现申请已提交");
                    $timeout(function () {
                        $ionicHistory.goBack();
                    },1000);
                },function(error){

                })
            }
        }]);
    app.controller('payExplainCtrl', ["$scope","$ionicTabsDelegate", "$state", "myService", "msg","storage"
        , function ($scope,$ionicTabsDelegate, $state,myService, msg, storage) {
            $scope.$on('$ionicView.beforeEnter', function () {
                $scope.payExplain();
            });
            $scope.payExplain = function(){
                myService.payExplain().then(function(result){
                    $scope.items = result.data.data;
                },function(error){
                    msg.error(error.data.message)
                })
            };
        }]);
    app.controller('explainCtrl', ["$scope","$ionicTabsDelegate", "$state", "myService", "msg","storage"
        , function ($scope,$ionicTabsDelegate, $state,myService, msg, storage) {

        }]);
    app.controller('contactCtrl', ["$scope","$ionicTabsDelegate", "$timeout","$state", "myService", "msg","storage"
        , function ($scope,$ionicTabsDelegate, $timeout,$state,myService, msg, storage) {
            $scope.vm={
                content:"",
                email:""
            };
            $scope.contact = function(){
                var data={
                    data:{
                        content:$scope.vm.content,
                        email:$scope.vm.email
                    }
                };
                myService.contact(data).then(function(result){
                    msg.text("发送成功");
                    $timeout(function(){
                        $state.go("app.my");
                    },1000);
                },function(error){
                    msg.error(error.data.message);
                })
            }
        }]);
    app.controller('attentionCtrl', ["$scope","$ionicTabsDelegate", "$state", "myService", "msg","storage"
        , function ($scope,$ionicTabsDelegate, $state,myService, msg, storage) {
            $scope.$on('$ionicView.beforeEnter', function () {
                myService.attention().then(function(result){
                    $scope.users = result.data.data;
                },function(error){

                })
            });
            $scope.toMyUserDetail = function (id) {
                myService.toMyUserDetail(id).then(function(result){
                    $scope.items = result.data.data;
                    $state.go('app.attention_Detail',{id:id,items:$scope.items});
                },function(error){
                    //msg.error(msg.data.error)
                })
            };

        }]);

    app.controller('mySupportDreamCtrl', ["$scope","homeService", "$stateParams","$state", "msg"
        , function ($scope,homeService,$stateParams, $state, msg) {
            var user_id = $stateParams.user_id;
            $scope.$on('$ionicView.beforeEnter',function(){
                $scope.toUserDetail(user_id);
            });
            $scope.toUserDetail = function(user_id){
                homeService.toUserDetail(user_id).then(function(result){
                    $scope.items = result.data.data;
                    $scope.user = result.data.data.user;
                    $scope.dreams = $scope.user.sup_dream;
                },function(error){

                })
            };
            $scope.toDetail = function(){
                $state.go("app.attention_Detail",{user_id:user_id,items:$scope.items})
            }
        }]);
    app.controller('myOldDreamCtrl', ["$scope","homeService", "$stateParams","$state", "msg"
        , function ($scope,homeService,$stateParams, $state, msg) {
            var user_id = $stateParams.user_id;
            $scope.$on('$ionicView.beforeEnter',function(){
                $scope.toUserDetail(user_id);
            });
            $scope.toUserDetail = function(user_id){
                homeService.toUserDetail(user_id).then(function(result){
                    $scope.items = result.data.data;
                    $scope.user = result.data.data.user;
                    $scope.dreams = $scope.user.dreams;
                },function(error){

                })
            };
            $scope.toDetail = function(){
                $state.go("app.attention_Detail",{user_id:user_id,items:$scope.items})
            };
        }]);
    app.controller('messageReplyCtrl', ["$scope","$ionicTabsDelegate", "$state", "myService", "msg","storage"
        , function ($scope,$ionicTabsDelegate, $state,myService, msg, storage) {

        }]);
    app.controller('personalLetterCtrl', ["$scope","$ionicTabsDelegate", "$state", "myService", "msg","storage"
        , function ($scope,$ionicTabsDelegate, $state,myService, msg, storage) {
            $scope.$on('$ionicView.beforeEnter', function () {
                myService.letter().then(function(result){
                    $scope.comments = result.data.data;
                },function(error){
                });
            });
        }]);
    app.controller('rechargeCtrl', ["$scope","$timeout","$ionicHistory","$ionicTabsDelegate", "$state", "myService", "msg"
  , function ($scope,$timeout, $ionicHistory,$ionicTabsDelegate,$state, myService, msg) {
        $scope.$on('$ionicView.beforeEnter', function () {
            $ionicTabsDelegate.showBar(false);
            myService.myInfo().then(function(result){
                $scope.vm = result.data.data;
                $scope.vm.number = '';
                $scope.vm.payType = 2;
            })
        });
        $scope.payExplain = function(){
            $state.go("app.payExplain")
        };
        $scope.withdraw = function(){
            $state.go("app.withdraw")
        };

      $scope.testcharge = function(number){
        if (!number) {
              msg.text('请输入充值金额');
              return;
        }
        myService.testcharge(number,2).then(function (result) {
             msg.text("充值成功");
             $scope.vm.coin = parseInt($scope.vm.coin) + parseInt(number);
            // $timeout(function(){
            //     $ionicHistory.goBack();
            // },500)
        });
      };
      //充值
      $scope.charge = function(number){
          if (!number) {
              msg.text('请输入充值金额');
              return;
          }
          myService.charge(number,2).then(function (result) {
              //todo:result需要返回支付宝或者微信的签名信息
              console.log("result: " + JSON.stringify(result));
              var payInfo = result.data.data;
              if ($scope.vm.payType == 1) { //支付宝
                  cordova.plugins.AliPay.pay(payInfo, function success(e) {
                      //e.resultStatus  状态代码  e.result  本次操作返回的结果数据 e.memo 提示信息
                      //e.resultStatus  9000  订单支付成功 ;8000 正在处理中  调用function success
                      //e.resultStatus  4000  订单支付失败 ;6001  用户中途取消 ;6002 网络连接出错  调用function error
                      //当e.resultStatus为9000时，请去服务端验证支付结果
                      $scope.clicksub = false;
                      if (e.resultStatus == '9000') {
                          alert(orderID);
                          //支付成功
                         // $state.go('app.my');
                      } else {
                          msg.error("支付失败");
                          // msg.error("支付失败:" + JSON.stringify(e));
                      }
                  }, function error(e) {
                      $scope.clicksub = false;
                      // msg.error("支付失败:" + JSON.stringify(e));
                      msg.error("支付失败");
                  });
              }
              if ($scope.vm.payType == 2) { //微信
                  // var obj = JSON.parse(payInfo);
                  var obj = payInfo.orderString;
              // console.log("obj: " + JSON.stringify(obj));
                  var params = {
                      partnerid: obj.partnerid, // merchant id
                      prepayid: obj.prepayid, // prepay id
                      noncestr: obj.noncestr, // nonce
                      timestamp: obj.timestamp, // timestamp
                      sign: obj.sign, // signed string
                  };
              // console.log("result: " + JSON.stringify(params));
                  Wechat.sendPaymentRequest(params, function (r) {
                      $scope.clicksub = false;
                      courseService.orderStatus(orderID, $scope.paytype).then(function (result) {
                          //  alert(result);
                          //支付成功
                        //  $state.go('app.my');
                      }, function (erro) {
                          // msg.alert("支付反馈失败:" + JSON.stringify(erro));
                      });
                  }, function (reason) {
                      $scope.clicksub = false;
                      // msg.alert("支付失败:" + JSON.stringify(reason));
                  });
              }
             // msg.text("充值成功");
            //   $state.go('app.my');
          });
      }

  }]);
    app.controller('payCtrl', ["$scope","$timeout","$ionicHistory","$ionicTabsDelegate", "$timeout","$ionicHistory","$state", "myService", "msg"
        , function ($scope,$timeout,$ionicHistory,$ionicTabsDelegate, $timeout,$ionicHistory,$state, myService, msg) {
            $scope.$on('$ionicView.beforeEnter', function () {
                myService.myInfo().then(function(result){
                    $scope.vm = result.data.data;
                    $scope.vm.money = '';
                    $scope.vm.payType = 2;
                })
            });
            $scope.payExplain = function(){
                $state.go("app.explain")
            };
            $scope.withdraw = function(){
                $state.go("app.payout")
            };
            //充值
            $scope.testcharge = function(number){
                if (!number) {
                    msg.text('请输入充值金额');
                    return;
                }
                myService.testcharge(number,2).then(function (result) {
                    msg.text("充值成功");
                    $scope.vm.coin = parseInt($scope.vm.coin) + parseInt(number);
                    $timeout(function(){
                        $ionicHistory.goBack();
                    },500)
                });
            }
            //充值
            $scope.charge = function(number){
                if (!number) {
                    msg.text('请输入充值金额');
                    return;
                }
                myService.charge(number,2).then(function (result) {
                    //todo:result需要返回支付宝或者微信的签名信息
                    console.log("result: " + JSON.stringify(result));
                    var payInfo = result.data;
                    if ($scope.vm.payType == 1) { //支付宝
                        cordova.plugins.AliPay.pay(payInfo, function success(e) {
                            //e.resultStatus  状态代码  e.result  本次操作返回的结果数据 e.memo 提示信息
                            //e.resultStatus  9000  订单支付成功 ;8000 正在处理中  调用function success
                            //e.resultStatus  4000  订单支付失败 ;6001  用户中途取消 ;6002 网络连接出错  调用function error
                            //当e.resultStatus为9000时，请去服务端验证支付结果
                            $scope.clicksub = false;
                            if (e.resultStatus == '9000') {
                                alert(orderID);
                                //支付成功
                                // $state.go('app.my');
                            } else {
                                msg.error("支付失败");
                                // msg.error("支付失败:" + JSON.stringify(e));
                            }
                        }, function error(e) {
                            $scope.clicksub = false;
                            // msg.error("支付失败:" + JSON.stringify(e));
                            msg.error("支付失败");
                        });
                    }
                    if ($scope.vm.payType == 2) { //微信
                        var obj = JSON.parse(payInfo);
                        var params = {
                            partnerid: obj.partnerid, // merchant id
                            prepayid: obj.prepayid, // prepay id
                            noncestr: obj.noncestr, // nonce
                            timestamp: obj.timestamp, // timestamp
                            sign: obj.sign, // signed string
                        };
                        Wechat.sendPaymentRequest(params, function (r) {
                            $scope.clicksub = false;
                            courseService.orderStatus(orderID, $scope.paytype).then(function (result) {
                                //  alert(result);
                                //支付成功
                                //  $state.go('app.my');
                            }, function (erro) {
                                msg.alert("支付反馈失败:" + JSON.stringify(erro));
                            });
                        }, function (reason) {
                            $scope.clicksub = false;
                            msg.alert("支付失败:" + JSON.stringify(reason));
                        });
                    }
                    // msg.text("充值成功");
                    //   $state.go('app.my');
                });
            }

        }]);
    app.controller('accountCtrl', ["$scope","$ionicTabsDelegate", "$state", "myService", "msg"
        , function ($scope,$ionicTabsDelegate, $state, myService, msg) {
            $scope.$on('$ionicView.beforeEnter', function () {
                $ionicTabsDelegate.showBar(false);
                $scope.showAccount();
            });
            $scope.showAccount = function(){
                myService.showAccount().then(function(result){
                    $scope.items = result.data.data;
                },function(error){
                    msg.error(error.data.message);
                })
            };
            $scope.destroyAccount = function(id){
                myService.destroyAccount(id).then(function(result){
                    msg.text("删除成功");
                    $scope.showAccount();
                },function(error){
                    msg.error(error.data.message);
                })
            }
        }]);
    app.controller('my_account_addCtrl', ["$scope","config","common","$timeout","$ionicTabsDelegate", "$state", "myService", "msg"
        , function ($scope,config,common,$timeout,$ionicTabsDelegate, $state, myService, msg) {
            $scope.addpict = function () {
                common.chooseImage().then(function (qrcode) {
                    common.uploadFiles(qrcode,1).then(function (result) {
                        var response = JSON.parse(result.response);
                        var file = config.imgServer+response.data.file;
                        $scope.vm.file = file;
                        $scope.qrcode.push(file);
                    }, function (error) {
                        msg.error('图片上传失败');
                    });
                }, function (error) {
                    console.log('图片选择失败');
                });
            };
            $scope.qrcode=[];
            $scope.deletefile = function (file) {
                var index = $scope.qrcode.indexOf(file);
                $scope.qrcode.splice(index, 1);
                common.deletefile(file).then(function () {
                })
            };
            $scope.vm={
                bank_name:'',
                bank_number:'',
                bank_phone:'',
                bank_user:'',
                type:""
            };
            $scope.addAccount = function () {
                var data = {
                    data:{
                        bank_name:$scope.vm.bank_name,
                        bank_number:$scope.vm.bank_number,
                        bank_phone:$scope.vm.bank_phone,
                        bank_user:$scope.vm.bank_user
                    }
                };
                //msg.loading('保存中...');
                msg.loading();
                myService.addAccount(data).then(function (result) {
                    msg.hide();
                    $state.go('app.my_account');
                }, function (error) {
                    msg.hide();
                    msg.error(error.data.message);
                });
            };
            $scope.addQrcode = function(){
                var data = {
                    data:{
                        type:$scope.vm.type,
                        qrcode:$scope.vm.file
                        //qrcode:"https://www.baidu.com/img/bd_logo1.png"
                    }
                };
                myService.addQrcode(data).then(function(result){
                    msg.text("添加成功",true);
                    $state.go("app.my_account");
                },function(error){
                    msg.error(error.data.message);
                })
            }

        }]);
    app.controller('messageCtrl', ["$scope", "$ionicTabsDelegate","$state", "myService", "msg"
        , function ($scope,$ionicTabsDelegate, $state, myService, msg) {
            $scope.$on('$ionicView.beforeEnter', function () {
                $ionicTabsDelegate.showBar(false);
                myService.messageInfo().then(function(result){
                    $scope.infos = result.data.data;
                },function(error){

                });
            });
            //系统消息
            $scope.systemInfo = function(){
                $state.go("app.my_message_sys");
            };

            $scope.notRead = function(){
                myService.notRead().then(function(result){
                    myService.messageInfo().then(function(result){
                        $scope.infos = result.data.data;
                    },function(error){

                    });
                },function(error){

                })
            };
            //回复我的
            $scope.replyMy = function(){
                $state.go("app.my_message_reply");
            };
            $scope.personalLetter = function(){
                $state.go("app.personalLetter");
            }

        }]);
    app.controller('dreamCtrl', ["$scope", "$ionicTabsDelegate","$state", "myService", "msg"
  , function ($scope, $ionicTabsDelegate,$state, myService, msg) {
      $scope.$on('$ionicView.beforeEnter', function () {
          $ionicTabsDelegate.showBar(false);
          $scope.load(true);
          myService.myInfo().then(function(result){
              $scope.user = result.data.data
          });
      });
            $scope.filter = {
                hasMore: false,
                pageIndex: 1,
                pageSize: 25
            };
            $scope.load = function (init) {
                if (init) {
                    $scope.filter.pageIndex = 1;
                    $scope.dreams = [];
                }
                msg.loading();
                myService.myDream($scope.filter.pageIndex).then(function(result){
                    msg.hide();
                    $scope.filter.pageIndex++;
                    var more = (result.data.data.data.length >= $scope.filter.pageSize);
                    $scope.filter.hasMore = more;
                    $scope.dreams = $scope.dreams.concat(result.data.data.data);
                    if (init) {
                        $scope.$broadcast('scroll.refreshComplete');
                    } else {
                        $scope.$broadcast('scroll.infiniteScrollComplete');
                    }
                },function(error){
                    msg.hide();
                });
            };
            $scope.toDetail = function (id) {
                $state.go('app.my_dreamdetail',{id:id});
            };

  }]);
    app.controller('collectCtrl', ["$scope","$ionicTabsDelegate", "$state", "myService", "msg"
       , function ($scope, $ionicTabsDelegate,$state, myService, msg) {
            $scope.$on('$ionicView.beforeEnter', function () {
                $ionicTabsDelegate.showBar(false);
                myService.collect().then(function(result){
                    $scope.dreams = result.data.data.dreams;
                });
            });
      $scope.toDetail = function (id) {
          $state.go('app.my_dreamdetail',{id:id});
      };
    }]);
    app.controller('messageSysCtrl', ["$scope", "$ionicTabsDelegate","$state", "myService", "msg"
       , function ($scope,$ionicTabsDelegate, $state, myService, msg) {
            $scope.$on('$ionicView.beforeEnter', function () {
                myService.systemInfo().then(function(result){
                    $scope.sysInfos = result.data.data;
                },function(error){
                });
            });
       }]);

    app.controller('messageReplyCtrl', ["$scope","$ionicTabsDelegate", "$state", "myService", "msg", "$ionicModal"
       , function ($scope,$ionicTabsDelegate, $state, myService, msg, $ionicModal) {
            $scope.$on('$ionicView.beforeEnter', function () {
                myService.replyMy().then(function(result){
                    $scope.comments = result.data.data;
                },function(error){
                });
            });
            $ionicModal.fromTemplateUrl('my-modal.html', {
                scope: $scope,
                animation: 'slide-in-up'
            }).then(function (modal) {
                $scope.modal = modal;
            });
            $scope.openModal = function () {
                $scope.modal.show();
            };
            $scope.closeModal = function () {
                $scope.modal.hide();

            };


            //我的回复
            $scope.vm={
                content:"",
                comment_id:""
            };
            $scope.myReplay = function(){
                var data = {
                    content:$scope.vm.content,
                    comment_id:$scope.vm.id
                };
                myService.myReplay(data).then(function(result){

                },function(error){

                });
                $scope.modal.hide();
            }
       }]);
   
})(angular.module('app.controllers'));