首页 新闻 会员 周边 捐助

可不可以利用每次打开网站都启动_AppStar.cshtmlt这个来执行异步AutoReceipt.chtml这个页面

0
[已解决问题] 解决于 2017-05-24 15:03

比如说订单15天自动签收。
我做了一个签收页面AutoReceipt.chtml,代码如下

@{
//发货后15天自动签收
var db = Database.Open("rcdb");
var sql = "SELECT * FROM Orders WHERE Status = 2 and datediff(day,UpdateTime,"+ DateTime.Now +") > 15";
var data = db.Query(sql);
if(data != null){
foreach (var item in data)
{
var updateCommand = "UPDATE Orders SET UpdateTime=@0, Status=@1 WHERE Id=@2";
db.Execute(updateCommand, DateTime.Now, 3, item.Id);
}
}
}

可不可以利用每次打开网站都启动_AppStar.cshtmlt这个来执行AutoReceipt.chtml这个页面

缘分0919的主页 缘分0919 | 初学一级 | 园豆:96
提问于:2017-05-24 12:17
< >
分享
最佳答案
0
//发货后15天自动签收
@functions{
    public static string AutoReceipt()
    {
        var db = Database.Open("rcdb");
        var sql = "SELECT * FROM Orders WHERE Status = 2 and datediff(day,UpdateTime,getdate()) > 15";
        var data = db.Query(sql);
        if (data != null)
        {
            foreach (var item in data)
            {
                var updateCommand = "UPDATE Orders SET UpdateTime=@0, Status=@1 WHERE Id=@2";
                db.Execute(updateCommand, DateTime.Now, 3, item.Id);
            }
        }
        return "";
    }
}
@{ 
    //定时一天执行一次
    var dbbackup = Database.Open("backup");
    var sqlAuto = "SELECT * FROM Auto WHERE Id=1 and datediff(day,UpdateTime,getdate()) > 1";
    var Auto = dbbackup.QuerySingle(sqlAuto);

    if (data != null)
    {
        //大于1天执行函数
        razor.AutoReceipt();
    }
}

利用_AppStart.cshtml 访问网站执行一次 和 定时大于一天来检查一次 这样可以减少反复查询数据库

缘分0919 | 初学一级 |园豆:96 | 2017-05-24 15:01
其他回答(2)
-1

你们公司一定是接了一个假的电商网站,500元,再多没有了!

 

如果你是学生,在练手的话,一般没有必要实现自动签收吧?

爱编程的大叔 | 园豆:30844 (高人七级) | 2017-05-24 12:26

我初学者

支持(0) 反对(0) 缘分0919 | 园豆:96 (初学一级) | 2017-05-24 13:17
0

你是怎么想到在cshtml里写业务代码的?

吴瑞祥 | 园豆:29449 (高人七级) | 2017-05-24 13:15

我初学者 不太懂

支持(0) 反对(0) 缘分0919 | 园豆:96 (初学一级) | 2017-05-24 13:17

@缘分0919: 放到实体类里吧.每次访问都启动就用请求开始事件.

百度:.net管道周期模型

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-05-24 13:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册