Dorado 7 : 10.3.2 准备后台服务

步骤1:在com.bstek.dorado.sample.standardlesson.junior.LoginService.java类中新建doLogout方法,最终代码如下:

package com.bstek.dorado.sample.standardlesson.junior;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Component;
import com.bstek.dorado.annotation.Expose;
import com.bstek.dorado.sample.standardlesson.dao.SlEmployeeDao;
import com.bstek.dorado.sample.standardlesson.entity.SlEmployee;
import com.bstek.dorado.web.DoradoContext;

@Component
public class LoginService {
    @Resource
    private SlEmployeeDao slEmployeeDao;

    @Expose
    public Map doLogin(Map param) {
        String username = (String) param.get("username");
        String password = (String) param.get("password");
        Map result = new HashMap();
        if (isValid(username, password)) {
            // 设置验证成功需要跳转的页面
            result.put("url",
                    "com.bstek.dorado.sample.standardlesson.junior.main.Main.d");
            result.put("result", true);
            return result;
        } else {
            String errormsg = "用户名或者密码不正确";
            result.put("errormsg", errormsg);
            result.put("result", false);
            return result;
        }
    }

    // 以下方法需要替换为自己的验证用户名密码的业务逻辑
    public boolean isValid(String username, String password) {
        DetachedCriteria dc = DetachedCriteria.forClass(SlEmployee.class);
        if (username != null && !"".equals(username)) {
            dc.add(Restrictions.eq("userName", username.toUpperCase()));
        }
        List<SlEmployee> employees = slEmployeeDao.find(dc);
        if (employees.size() > 0) {
            SlEmployee employee = employees.get(0);
            if (password.equals(employee.getPassword())) {
                // 验证成功后将用户信息放入session中
                DoradoContext ctx = DoradoContext.getCurrent();
                HttpServletRequest request = request = ctx.getRequest();
                request.getSession().setAttribute("user", employee);
                return true;
            } else {
                return false;
            }
        } else {
            return false;
        }
    }

    @Expose
    public Map doLogout() {
        DoradoContext ctx = DoradoContext.getCurrent();
        HttpServletRequest request = request = ctx.getRequest();
        request.getSession().setAttribute("user", null);
        Map result = new HashMap();
        result.put("url",
                "com.bstek.dorado.sample.standardlesson.junior.Login.d");
        result.put("result", true);
        return result;
    }
}