2

引言

各个项目接近尾声,收尾工作其实并不是一件简单的事情,在此对本周的一些小问题进行一下总结。

器具别名显示问题

后台加入软删除,在前台器具类别管理中删除器具别名时,因加入软删除删除时deleted字段改为true,但是查询时没有对其加入限制,所以全部显示

  1. 想法
    感觉没什么难度,后台使用我们强大的综合查询直接吧deleted字段set false就行了。
  2. 实现

      public Page<InstrumentCategory> getAll(String name, Long subjectCategoryId, Pageable pageable) {
    
            logger.debug("设置查询条件");
            InstrumentAlias instrumentAlias = new InstrumentAlias();
            InstrumentCategory instrumentCategory = new InstrumentCategory();
            CommonService.setAllFieldsToNull(instrumentCategory);
            CommonService.setAllFieldsToNull(instrumentAlias);
            instrumentCategory.setName(name);
            instrumentAlias.setDeleted(false);
            instrumentCategory.setInstrumentAliasList(Collections.singletonList(instrumentAlias));
            SubjectCategory subjectCategory = subjectCategoryRepository.findById(subjectCategoryId).orElse(null);
            instrumentCategory.setSubjectCategory(subjectCategory);
    
            return (Page<InstrumentCategory>) yunzhiService.page(instrumentCategoryRepository, instrumentCategory, pageable);
        }

    然而处于我综合查询知道的少之又少,只知道它查询快为好用,却不知道不支持一对多和多对多查询

    clipboard.png

  3. 只能在前台或者后台自己手动的去处理,实现如下:
 // 过滤InstrumentAlias,显示deleted字段为false的
    public filterInstrumentAlias() {
        this.instrumentCategoryList.content.forEach((instrumentCategory: InstrumentCategory) => {
            this.instrumentAliasList = instrumentCategory.instrumentAliasList.filter((instrumentAlias: InstrumentAlias) => {
                return instrumentAlias.deleted === false;
            });
            instrumentCategory.instrumentAliasList = this.instrumentAliasList;
        });
    }

    // 过滤InstrumentSpecification,显示deleted字段为false的
    public filterInstrumentSpecification() {
        this.instrumentCategoryList.content.forEach((instrumentCategory: InstrumentCategory) => {
            this.instrumentSpecificationList = instrumentCategory.instrumentSpecificationsList.filter((instrumentSpecification: InstrumentSpecification) => {
                return instrumentSpecification.deleted === false;
            });
            instrumentCategory.instrumentSpecificationsList = this.instrumentSpecificationList;
        });
    }

总结

虽然没什么问题,我觉得在对一件事,一个项目或者一个需求,你了解多少,你就可以少走多少弯路,甚至可以体现出你在其中的价值、地位。

实现只有正常状态才能发送申请

最初的实现:

    // 判断器具状态显示正常时才能发起申请
    public showVerificationApplication() {
        this.instrumentPage.content.forEach((instrument) => {
            if (instrument.state === this.defaultStatus) {
                this.show = true;
            } else {
                this.show = false;
            }
        });
    }

这样是有问题的,当没有器具的时候就不执行了,会存在问题
改进:

    // 判断器具状态显示正常时才能发起申请
    public showVerificationApplication() {
        if (this.params.state === this.defaultStatus) {
            this.show = true;
        } else {
            this.show = false;
        }
    }

在偶然间张喜硕组长的一句提示,让我觉的自身的不足(考虑为什么我当时没有想到);

总结

自己的想法考虑的太不全面,有时候看问题只看到表面,一个小小的问题就可能困惑我,不能换个角度去思考,在想法和思想上还有待提高

潘佳琦
894 声望34 粉丝

为 API 生,为框架死,为 debug 奋斗一辈子;


引用和评论

0 条评论