// nova-werun/pages/home/signin/index.js
const Parse = getApp().Parse;
const company = getApp().globalData.company;
Page({

    /**
     * 页面的初始数据
     */
    data: {
        //屏幕高度
        statusBarHeight: 0, // 状态栏高度
        screenHeight: 0, // 屏幕高度
        customHeight: 0, // 自定义导航栏高度（如小程序右上角胶囊按钮）
        bottomNavHeight: 0, // 底部导航栏高度
        contentHeight: 0, // 可用内容高度
        contentHeight2: 0,
        contentpadding: 0, //顶部padding高度
        //是否打卡
        issigin: false,
        images: [
            // 'https://file-cloud.fmode.cn/qpFbRRSZrO/20250113/1p97lf053250915.png',
            // 'https://file-cloud.fmode.cn/qpFbRRSZrO/20250113/bt19fm050427168.png',
            'https://file-cloud.fmode.cn/qpFbRRSZrO/20250113/191d1m053251615.png'
        ],
        randomImage: '',
        accumulateChink:0,
        continuousChink:0
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad: function (options) {
        // 计算
        const systemInfo = wx.getSystemInfoSync();
        const statusBarHeight = systemInfo.statusBarHeight || 0;
        const screenHeight = systemInfo.screenHeight || 0;
        const custom = wx.getMenuButtonBoundingClientRect();
        const customHeight = custom.height + 10 + 2 || 0;
        const bottomNavHeight = systemInfo.screenHeight - systemInfo.safeArea.bottom || 0;

        const contentpadding = (statusBarHeight + customHeight) * 750 / systemInfo.windowWidth;
        const contentHeight = (screenHeight - bottomNavHeight - statusBarHeight - customHeight) * 750 / systemInfo.windowWidth;
        this.setData({
            statusBarHeight,
            screenHeight,
            customHeight,
            bottomNavHeight,
            contentpadding,
            contentHeight
        });
        this.showRandomImage()
        this.order()
        this.accumulateChink()
        this.continuousChink()
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady: function () {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow: function () {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide: function () {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload: function () {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh: function () {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom: function () {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage: function () {

    },
    //检查当天是否签到
    async order() {
        const currentUser = Parse.User.current();
        let EventLogquery = new Parse.Query('EventLog');
        EventLogquery.equalTo('user', currentUser.id);
        EventLogquery.equalTo('company', company);
        EventLogquery.notEqualTo('isDeleted', true)
        // 获取今天的日期
        const today = new Date();
        const todayStart = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // 今天的开始时间
        const todayEnd = new Date(todayStart);
        todayEnd.setHours(23, 59, 59, 999); // 今天的结束时间

        // 在查询条件中添加对 createdAt 的限制
        EventLogquery.greaterThanOrEqualTo('createdAt', todayStart);
        EventLogquery.lessThanOrEqualTo('createdAt', todayEnd);
        let P = await EventLogquery.first();

        if (P) {
            this.setData({
                issigin: true
            })
            return;
        }
    },
    async submit() {
        const currentUser = Parse.User.current();
        let EventLogquery = new Parse.Query('EventLog');
        EventLogquery.equalTo('user', currentUser.id);
        EventLogquery.equalTo('company', company);
        EventLogquery.notEqualTo('isDeleted', true)
        // 获取今天的日期
        const today = new Date();
        const todayStart = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // 今天的开始时间
        const todayEnd = new Date(todayStart);
        todayEnd.setHours(23, 59, 59, 999); // 今天的结束时间

        // 在查询条件中添加对 createdAt 的限制
        EventLogquery.greaterThanOrEqualTo('createdAt', todayStart);
        EventLogquery.lessThanOrEqualTo('createdAt', todayEnd);
        let P = await EventLogquery.first();

        if (P) {
            this.setData({
                issigin: true
            })
            console.log('今日已打卡');
            return;
        } else {
            const currentUser = Parse.User.current();
            let userquery = new Parse.Query('_User');
            userquery.equalTo('company', company);
            userquery.equalTo('objectId', currentUser.id);
            userquery.notEqualTo('isDeleted', true)
            let user = await userquery.first();

            let companyPointer = Parse.Object.extend('Company').createWithoutData(company);
            let EventLog = new Parse.Object('EventLog');
            EventLog.set('points', 10)
            EventLog.set('company', companyPointer);
            EventLog.set('user', user.toPointer());

            try {
                let saveDate = await EventLog.save();
                console.log(saveDate);
                this.accumulateChink()
                this.setData({
                    issigin: true
                })
                console.log("打卡成功");
            } catch (error) {
                console.error("保存数据时出现错误:", error);
            }
        }

    },
    //随机展示图片
    showRandomImage: function () {
        const randomIndex = Math.floor(Math.random() * this.data.images.length);
        this.setData({
            randomImage: this.data.images[randomIndex]
        });
    },
    //积累打卡
    async accumulateChink(){
        const currentUser = Parse.User.current();
        let EventLogquery = new Parse.Query('EventLog');
        EventLogquery.equalTo('user', currentUser.id);
        EventLogquery.equalTo('company', company);
        EventLogquery.notEqualTo('isDeleted', true)
        let P = await EventLogquery.find();
        let chickList = P.map(item => item.toJSON());
        this.setData({
            accumulateChink:chickList.length
        })
    },
    //连续打卡
    async continuousChink() {

    }
})