构造返回结果的在哪儿构造比较好呢?

这是我service层的代码

 @Override
    public Response checkUserToken(long uid, String accessToken, String deviceToken){
        Response response = new Response();
        //TODO 先到session中找
        try {
            UserLogin userLogin = userLoginDao.getUserLoginByUid(uid);
            if(userLogin != null) {
                if(userLogin.getStatus() == -1){
                    response.setRc(Rc.RC_USER_STATUS);
                    response.setErrMsg("账号存在风险,已暂时锁定");
                }else if(accessToken == userLogin.getAccessToken() && deviceToken == userLogin.getDeviceToken()){
                    //验证正确, 返回新的accessToken
                    String newAccessToken = regenerateAccessToken(uid);

                    String sql = "UPDATE " + DEFAULT_TABLE_NAME + " SET " +
                            "accessToken='" + newAccessToken + "',"
                            + "online='1'";
                    userLoginDao.executeUpdate(sql);

                    response.setRc(Rc.RC_SUCCESS);
                    response.setData(newAccessToken);
                }else{
                    response.setRc(Rc.RC_USER_ACCESS_ERROR);
                    response.setErrMsg("验证失败,请重新登陆");
                }
            }else{
                response.setRc(Rc.RC_USER_INVALID);
                response.setErrMsg("不合法用户请求");
            }
        }catch (Exception e){
            Yin.logError(e, getClass());
            response.setRc(Rc.RC_DB_ERROR);
            response.setErrMsg("数据库异常");
        }
        return response;
    }

我想请问下,

  1. 这是service层,这里的Response 对象,应该在这里构造吗? 还是应该放到action层去?
    我觉得放在这里不妥的原因是, 一个action方法里可能调用多个service层的业务逻辑方法,肯定不能每个service的方法里都构造一个Response, 这样action方法里都没办法处理了.但是如果放到action层去, 就如这里的service方法, 这里的众多返回情况,我应该怎么反馈到action层去, 再构造一个对象吗?

查看回复