记录下曾经愚蠢的我

站点属性前端页面

后端接口

public void add(){
        OASite site = new OASite();
        OAOrgSite orgSite = new OAOrgSite();
        String site_id = UUID.randomUUID().toString().replace("-", "");
        
        orgSite.set("site_id",site_id);
        orgSite.set("org_id", getPara("org_id"));
        orgSite.save();
        
        site.set("site_id", site_id);
        site.set("site_name", getPara("site_name"));
        site.set("site_create_datetime",new Date());
        site.save();
        //设置站点属性
        Map<String, Object> params = getParams();
        params.put("site_id", site_id);
        setSiteAttribute(params);
        renderJson(new Result().setMessage("添加成功"));
    }


过去的愚蠢版本,多余的麻烦判断

    /**
     * 设置站点属性
     */
    public void setSiteAttribute(Map<String,Object> params){
        String site_id = params.get("site_id").toString();
        String old_site_language_id = params.get("old_site_language_id").toString();
        String old_site_frame_id = params.get("old_site_frame_id").toString();
        String old_site_container_id = params.get("old_site_container_id").toString();
        String site_language_id = params.get("site_language_id").toString();
        String site_frame_id = params.get("site_frame_id").toString();
        String site_container_id = params.get("site_container_id").toString();
        //在这里用事务把旧的属性删除了,然后添加新的属性
        decideEdit(site_id, old_site_language_id, site_language_id);
        decideEdit(site_id, old_site_frame_id, site_frame_id);
        decideEdit(site_id, old_site_container_id, site_container_id);
    }


    public void decideEdit(String siteId, String oldAttribute, String newAttribute){
        //判断站点属性是否修改了,若修改了则需要重写数据
        if(!oldAttribute.equals(newAttribute)){
            //判断站点属性是否是新添加的(原来没有该条属性,这次编辑新增)
            if(StringUtils.isBlank(oldAttribute) && StringUtils.isNotBlank(newAttribute)){
                addSiteAttribute(siteId,newAttribute);
                //判断站点属性是否有删除的(原来有该条属性,这次编辑删除了)
            }else if(StringUtils.isNotBlank(oldAttribute) && StringUtils.isBlank(newAttribute)){
                OASiteService.service.deleteSiteAttribute(siteId,oldAttribute);
            }else{
                Db.update(Db.getSqlPara(
                        "oa.site.editAttribute", siteId, oldAttribute, newAttribute));
            }
        }
    }
    /**
     * 添加站点属性
     */
    public void addSiteAttribute(String siteId, String attribute){
        OASiteAttribute siteAttribute = new OASiteAttribute();
        siteAttribute.set("group_id", "");
        siteAttribute.set("site_id", siteId);
        siteAttribute.set("attribute_id", attribute);
        siteAttribute.save();
    }

     新版本删除decideEdit()这个方法,添加站点属性时,无论是新添加的还是编辑,都是先将旧的站点属性全部删除,然后添加新的属性就可以了,减少了麻烦的判断。

 

总结:多思考,有时候代码太复杂纯粹是因为自己想太多,想岔了

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值