1

判断用户是否登录

中间件

app/middleware/userauth.js
module.exports = (options, app) => {
    return async function init(ctx, next) {

        //判断前台用户是否登录   如果登录可以进入 ( 去结算  用户中心)    如果没有登录直接跳转到登录

        var userinfo = ctx.service.cookies.get('userinfo');

        if (userinfo && userinfo._id && userinfo.phone) {
            //判断数据库里面有没有当前用户                
            var userResutl = await ctx.model.User.find({ "_id": userinfo._id, "phone": userinfo.phone });

            if (userResutl && userResutl.length > 0) {
                //注意
                await next();

            } else {
                ctx.redirect('/login');
            }
        } else {

            ctx.redirect('/login');
        }


    };
};

router

    var userauthMiddleware = app.middleware.userauth({}, app);
    router.get('/buy/checkout', initMiddleware, userauthMiddleware, controller.default.buy.checkout);
}

效果

点击结算,如果没有登录,就跳转到登录页面

clipboard.png

clipboard.png

购物车到结算页面

controller

app/controller/default/buy.js
    async checkout() {
        var orderList = [];
        var allPrice = 0;
        var cartList = this.service.cookies.get('cartList');

        if (cartList && cartList.length > 0) {
            for (var i = 0; i < cartList.length; i++) {
                if (cartList[i].checked) {
                    orderList.push(cartList[i]);
                    allPrice += cartList[i].price * cartList[i].num;
                }
            }

            await this.ctx.render('/default/checkout.html', {
                orderList: orderList,
                allPrice: allPrice
            })
        } else {
            this.ctx.redirect('/cart')
        }
    }

view

app/view/default/checkout.html
                    <%for(var i=0;i<orderList.length;i++){%>
                        <li class="clearfix">
                            <div class="col col-img">
                                <img src="<%=orderList[i].goods_img%>" width="30" height="30">
                            </div>
                            <div class="col col-name">

                                <a href="#" target="_blank">
                                    <%=orderList[i].title%>
                                </a>
                            </div>

                            <div class="col col-price">
                                <%=orderList[i].price%>元 x
                                    <%=orderList[i].num%>
                            </div>
                            <div class="col col-status">
                                &nbsp;
                            </div>
                            <div class="col col-total">
                                <%=orderList[i].num * orderList[i].price%>元
                            </div>
                        </li>
                    <%}%>
                    <li class="clearfix total-price">
                        <label>应付总额:</label>
                        <span class="val"><em data-id="J_totalPrice"><%=allPrice%></em>元</span>
                    </li>

效果

clipboard.png

clipboard.png


渣渣辉
1.3k 声望147 粉丝

引用和评论

0 条评论