baseController中的一些封装

protected static final Logger logger = Logger.getLogger(Constants.LOG_INFO);

    protected HttpServletRequest request;
    protected HttpServletResponse response;
    protected HttpSession session;
    public int defEnd = 0;
    public int defSTART = 29;

    @ModelAttribute
    public void setReqAndResp(HttpServletRequest request, HttpServletResponse response){
        this.request = request;
        this.response = response;
        this.session = request.getSession();
    }

    @InitBinder
    protected void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(Date.class, new CustomDateEditor(
                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"), true));
        binder.registerCustomEditor(Date.class, new CustomDateEditor(
                new SimpleDateFormat("yyyy-MM-dd"), true));
    }

    /**
     * 输出信息到页面
     * @param msg:要输出的信息(可以是js脚本等)
     */
    public void printOutMsg(String msg){
        try {
            this.response.setCharacterEncoding("UTF-8");
            this.response.setContentType("text/html;charset=utf-8");
            PrintWriter out = null;
            out = this.response.getWriter();
            out.print(msg);
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 输出信息到页面
     * @param response
     * @param msg
     */
    public void printOutMsg(HttpServletResponse response, String msg){
        try {
            response.setCharacterEncoding("UTF-8");
            response.setContentType("text/html;charset=utf-8");
            PrintWriter out = null;
            out = response.getWriter();
            out.print(msg);
            out.flush();
            out.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取请求完整路径
     * @param request
     * @return
     */
    public String getUrl(HttpServletRequest request){
        String url = request.getRequestURI();
        String params = "";
        if(request.getQueryString()!=null){
            params = request.getQueryString().toString();
        }
        if(!"".equals(params)){
            url = url+"?"+params;
        }
        return url;
    }

    /**
     * 获取日期
     * @param day   天
     */
    public String getDate(int day){
        StringBuffer s = new StringBuffer();
        Calendar c = Calendar.getInstance();
        int currentDay = c.get(Calendar.DATE);
        if(day < 0){
            c.add(Calendar.YEAR, -1);
            c.set(Calendar.DATE, currentDay);
        }else if(day == 29){
            c.add(Calendar.MONTH, -1);
            c.set(Calendar.DATE, currentDay);
        }else{
            c.add(Calendar.DATE, -day);
        }

        s.append(c.get(Calendar.YEAR)+"-");
        s.append((c.get(Calendar.MONTH)+1) < 10 ? ("0"+(c.get(Calendar.MONTH)+1)) : (c.get(Calendar.MONTH)+1));
        s.append("-");
        s.append(c.get(Calendar.DATE) < 10 ? ("0"+c.get(Calendar.DATE)) : c.get(Calendar.DATE));
        return s.toString();
    }

    /**
     * 转换统计的map
     * @param statMap       统计的map
     * @param constMap      常量的map
     * @return
     */
    public Map<String, Long> getFmtMap(Map<String, Long> statMap, Map<Integer, String> constMap){
        Map<String, Long> dataMap = null;
        if(statMap != null){
            dataMap = new LinkedHashMap<String, Long>();
            for(Entry<String, Long> entry : statMap.entrySet()){
                dataMap.put(constMap.get(Integer.valueOf(entry.getKey()))+"&"+Integer.valueOf(entry.getKey()), entry.getValue());
            }
        }
        return dataMap;
    }
    /**
     * 获取登录用户信息
     * @return
     */
    public SessionUser getSessionUser(){
        Object session = request.getSession().getAttribute(Constants.KEY_SESSION_USER);
        return session == null ? null : (SessionUser) session;
    }

    /**
     * 获取token
     * @param type(1:登录;2:注册;3:找回密码)
     * @return
     */
    protected RSAToken getRSAToken(int type){
        // 生成一个token
        String token = UUID.randomUUID().toString();
        if(type == 1){
            session.setAttribute(Constants.KEY_SESSION_TOKEN_LOGIN, token);
        }else if(type == 2){
            session.setAttribute(Constants.KEY_SESSION_TOKEN_REGISTER, token);
        }else if(type == 3){
            session.setAttribute(Constants.KEY_SESSION_TOKEN_FIND_PWD, token);
        }

        // 生成公钥信息
        RSAPublicKey publicKey = RSAUtils.getDefaultPublicKey();
        String modulus = new String(Hex.encodeHex(publicKey.getModulus().toByteArray()));
        String exponent = new String(Hex.encodeHex(publicKey.getPublicExponent().toByteArray()));

        RSAToken rsaToken = new RSAToken();
        rsaToken.setToken(token);
        rsaToken.setModulus(modulus);
        rsaToken.setExponent(exponent);

        return rsaToken;
    }

    /**
     *获取后台登陆用户信息 
     * 
     */
    public SessionUser getSessionAdminUser(){
        AiUserInfo session = (AiUserInfo) request.getSession().getAttribute(Constants.KEY_SESSION_ADMIN_USER);
        SessionUser adminUser = new SessionUser();
        adminUser.setUserId(session.getId());
        adminUser.setUsername(session.getUserName());
        return adminUser == null ? null : adminUser;
    }

    /**
     * 获取用户加密信息
     * @return
     */
    public String getDesUserInfo(){
        SessionUser sessionUser = getSessionUser();
        String encryptText = "";
        if(sessionUser != null){
            String plainText = sessionUser.getUsername()+"&"+sessionUser.getUserId();
            String secretKey = "3dbfac1abd334784860723ef2022a92f";
            try {
                encryptText = URLEncoder.encode(Des3.DESEncode(plainText, secretKey), "UTF-8");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return encryptText;
    }

    /**
     * 设置用户session
     * @param user
     */
    public void setSessionUser(AiUserInfo user){
        if(user != null){
            SessionUser sessionUser = new SessionUser();
            sessionUser.setUserId(user.getId());
            if(user.getUserName() != null && !"".equals(user.getUserName())){
                sessionUser.setUsername(user.getUserName());
            } else {
                if(user.getPhone() != null &&  !"".equals(user.getPhone())){
                    sessionUser.setUsername(user.getPhone());
                }else {
                    sessionUser.setUsername(user.getNickName());
                } 
            }
            sessionUser.setPhone(user.getPhone());
            sessionUser.setUserType(user.getUserType()==null?0:user.getUserType());
            sessionUser.setVipStatus(user.getVipLevel()==null?0:user.getVipLevel());
            sessionUser.setLogoPath(user.getLogoPath());
            session.setAttribute(Constants.KEY_SESSION_USER, sessionUser);
        }
    }

    public static void main(String[] args) throws Exception, Exception {
        String plainText = "zhouqi"+"&"+"8";
        String secretKey = "3dbfac1abd334784860723ef2022a92f";
        String dd = Des3.DESEncode(plainText, secretKey);
        System.out.println(dd);
        String encryptText = URLEncoder.encode(Des3.DESEncode(plainText, secretKey), "UTF-8");
        System.out.println(encryptText);
    }
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在代码,需要先建立数据库连接并获取数据库连接对象,然后再通过该连接对象创建一个Statement对象或PreparedStatement对象,最后将SQL查询语句传入该对象执行。以Java语言为例,可以使用JDBC API来实现数据库连接和查询操作,示例代码如下: ``` @RestController @RequestMapping("/ChainStatistics") public class ChainStatisticsController extends BaseController { @Resource private ChainStatisticsService chainStatisticsService; @ApiOperation("查询数据") @PostMapping("/queryData") public ResultVO<List<ChainStatistics>> queryData(@RequestBody QueryDataRequest request) { try { // 建立数据库连接 Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/aaa", "root", "password"); // 创建PreparedStatement对象 PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM bbb WHERE column1 = ?"); // 设置参数 pstmt.setString(1, request.getColumn1()); // 执行查询 ResultSet rs = pstmt.executeQuery(); // 处理查询结果 List<ChainStatistics> result = new ArrayList<>(); while (rs.next()) { ChainStatistics chainStatistics = new ChainStatistics(); chainStatistics.setId(rs.getLong("id")); chainStatistics.setColumn1(rs.getString("column1")); chainStatistics.setColumn2(rs.getString("column2")); // 将查询结果添加到列表 result.add(chainStatistics); } // 关闭资源 rs.close(); pstmt.close(); conn.close(); // 返回查询结果 return ResultVO.success(result); } catch (SQLException e) { e.printStackTrace(); return ResultVO.fail("查询数据失败"); } } } ``` 在上述代码,我们通过JDBC API建立了一个名为"aaa"的数据库连接,并执行了一个查询语句"SELECT * FROM bbb WHERE column1 = ?",其"bbb"为指定的数据库表名,"column1"为表的列名。通过设置PreparedStatement对象的参数,可以实现动态查询。最后将查询结果封装为一个列表返回给调用端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值