开发中的注意事项

该篇博客探讨了Java编程中如何判断String、Integer和Long类型的数据是否为空,包括Optional的使用以及空值处理。此外,还展示了针对分页查询、数据修改前的检查以及批量操作的实现。在业务逻辑中,对查询结果为0条的情况进行了处理,并强调了在更新数据时确保数据存在的必要性。
摘要由CSDN通过智能技术生成

判断String类型是否为空

String recommenderName = Optional.ofNullable(backendFlowDetailDTO).map(BackendFlowDetailDTO::getRecommenderName).orElse("");
String recommenderName = Optional.ofNullable(recommenderConditionDTO.getRecommenderName()).filter(n -> !"".equals(n)).orElse(null);
String recommenderAccount = Optional.ofNullable(backendFlowDetailDTO).map(BackendFlowDetailDTO::getRecommenderAccount).orElse("");
String recommenderAccount = Optional.ofNullable(recommenderConditionDTO.getRecommenderAccount()).filter(acc -> !"".equals(acc)).orElse(null);

判断Integer类型是否为空

Integer detailType = Optional.ofNullable(backendFlowDetailDTO).map(BackendFlowDetailDTO::getDetailType).orElse(null);

判断Long类型是否为空 

Long recommenderId=Optional.ofNullable(recommenderConditionDTO.getRecommenderId()).filter(id -> id > 0L).orElse(null);

pagehelper分页查询查询出的符合条件的数据为0条的返回(emtpyList())

//如果存在推广员相关查询条件,但未查询到推广员,则一定不会查到流水记录
if (CollectionUtils.isEmpty(recommenders)) {
       return new PageModelVO<>(Collections.emptyList(), 0L);
   }

limit分页查询的pageNum和pageSize

long rows = pageModelDTO.getPageSize();
long limit = (pageModelDTO.getCurrentPage() - 1) * rows;

使用updateByPrimaryKeySelective动态sql,根据主键id修改数据,修改前要判断数据是否存在,因为updateByPrimarkSelective修改时主键不存在也会显示修改成功

 /**
     * 修改推广员状态
     *
     * @param recommenderStatusUpdateDTO
     */
    @Override
    public void updateRecommenderStatus(Long operaterId, RecommenderStatusUpdateDTO recommenderStatusUpdateDTO) {

        LOGGER.info("operaterId = {},recommenderStatusUpdateDTO = {}", operaterId, recommenderStatusUpdateDTO);

        if (null == operaterId || operaterId < 1L) {
            throw new BusinessException(AuthBusinessError.SYS_REQUEST_PARAMETER_INVALIDATE, "operaterId不能为空或小于1");
        }

        int tarStatus = recommenderStatusUpdateDTO.getStatus();
        if (!STATUS_MAPPING.containsKey(tarStatus)) {
            throw new BusinessException(AuthBusinessError.SYS_REQUEST_PARAMETER_INVALIDATE, "不合法的状态类型");
        }

        RecommenderDO recommender = getRecommenderByPrimaryKey(recommenderStatusUpdateDTO.getId());

        int oldStatus = recommender.getStatus();
        if (tarStatus == oldStatus) {
            throw new BusinessException(AuthBusinessError.SYS_REQUEST_PARAMETER_INVALIDATE, "推广员已经为" +
                    STATUS_MAPPING.get(tarStatus).getDisc() + "状态");
        }

        //更新数据
        recommender.setStatus(tarStatus);
        recommender.setGmtModified(Instant.now().getEpochSecond());
        recommender.setUpdater(operaterId);

        LOGGER.info("recommender = {}", recommender);

        recommenderMapper.updateByPrimaryKeySelective(recommender);
    }

    /**
     * 根据推广员主键集合查询推广员列表
     *
     * @param ids
     * @return
     */
    @Override
    public List<RecommenderDO> selectRecommenderByIds(List<Long> ids) {
        LOGGER.info("ids = {}", ids);

        if (CollectionUtils.isEmpty(ids)) {
            throw new BusinessException(AuthBusinessError.SYS_REQUEST_PARAMETER_INVALIDATE, "ids不能为空");
        }

        if (ids.size() < ParticularMark.WRITE_THRESHOLD.getIdentity()) {
            return recommenderMapper.selectByIds(ids);
        }
        return ArrayAlloter.allotByMax(ids, ParticularMark.WRITE_THRESHOLD.getIdentity(), false)
                .stream().map(recommenderMapper::selectByIds).flatMap(List::stream).collect(Collectors.toList());
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值