springmvc 实现数据验证

来源:互联网 发布:scanner java 编辑:程序博客网 时间:2024/05/16 19:34


需要引入spring-context的maven依赖


定义:

/** * @desc: * @Author: * @date:Create on 2017/11/6 14:34 */@Entitypublic class QrRequestVO extends BaseVO{    @NotBlank(message ="客户id不能为空")    private String custId;//客户id    @NotBlank(message ="设备标识不能为空")    private String deviceID;//设备标识    @NotBlank(message ="设备类型不能为空")    private String deviceType ;//设备类型    private String mobile;//银行预留手机号    @NotBlank(message ="应用提供方账户ID不能为空")    private String accountIdHash;//应用提供方账户 ID    private String sourceIP;//IP    private String deviceLocation;//设备 GPS 位置    private String fullDeviceNumber;//设备 SIM 卡号码   }



调用:

/** *  * @param session * @param transpwd * @param qrRequestVO * @param bindingResult * @return */@RequestMapping(value = "/validateTransPassword", method = RequestMethod.POST)public ApiResponse validateTransPassword(HttpSession session, String transpwd,@Valid QrRequestVO qrRequestVO,BindingResult bindingResult) {    log.info("custId:" + qrRequestVO.getCustId() + " xxx controller execute begin");    //请求参数校验  bindingResult.hasErrors()判断是否有错误信息    if (bindingResult.hasErrors()) {        return RestResponseUtil.err(ServiceErrorCode.REQUEST_ARGS_ERROR.getCode(), bindingResult.getFieldError().getDefaultMessage());    }    //sourceIpdeviceLocationfullDeviceNumber三者之一,必须有一个值    if (StringUtils.isBlank(qrRequestVO.getSourceIP()) && StringUtils.isBlank(qrRequestVO.getDeviceLocation()) && StringUtils.isBlank(qrRequestVO.getFullDeviceNumber())) {        return RestResponseUtil.err(ServiceErrorCode.REQUEST_ARGS_ERROR.getCode(), "IP、设备GPS位置、设备SIM卡号码至少有一个");    }    String custId = qrRequestVO.getCustId();    RedisLock lock = new RedisLock("updateTransPassword_" + custId);    try {        if (!lock.lock()) {            return RestResponseUtil.err(ServiceErrorCode.REQUEST_REPEAT_ERROR.getCode(), "同一时间只能发起一笔xx交易!");        }        LoginUserVO user = (LoginUserVO) session.getAttribute(BConstants.CURRENT_USER_KEY);        if (user == null) {            return RestResponseUtil.err(ServiceErrorCode.LOGIN_EXPIRE.getCode(), "未拿到当前登录用户信息!");        }        // 判断当前用户custId和前端的custId是否一致        if (!user.getCustId().equals(custId)) {            return RestResponseUtil.err(ServiceErrorCode.CUST_INFO_MODIFY_ERROR.getCode(), "客户信息被篡改!");        }        BodyEntity<String> entity = liCardUserService.validateTransPassword(custId, transpwd);        return RestResponseUtil.succ(entity);    } catch (ServiceException e) {        log.error("检查错误:", e);        return RestResponseUtil.err(e.getErrorCode().getCode(), e.getMessageTip());    } catch (Exception e) {        log.error("更新:", e);        return RestResponseUtil.err(ServiceErrorCode.SERVER_ERR.getCode(), "检查xx异常,请稍后重试");    } finally {        lock.unlock();    }}

原创粉丝点击