相对无法忽视,9玖%初创公司都会师临的10类法律危害

DDD理论学习体系——案例及目录

导读:本文目的在于从中型小型集团在开办阶段、运维阶段、整合或解散阶段所面临的大规模的10个法规风险难点向我们简单门船演讲,希望运转公司的心上人依然股东从中有所受益。


110个商店的股东里有柒个不清楚本身公司的属性跟本人的个人财产有哪些关联?

1. 引言

DDD中Repository这么些单词,重要有二种翻译:资源库仓储,本文取仓储之译。

提及仓库储存,大家一定就想开了库房,仓库一般用来存放在货物,而储藏室壹般由仓管员来保管。当工厂生产了一堆货物时,只需付出仓库管理员即可,他负担货物的堆积;当需求发货的时候,仓管员负责从仓库中捡货举行商品出库处理。当供给库存盘点时,仓管员负责把关货物状态和仓库储存。换句话说,仓管员负责了商品的出入库管理。通过储藏室管理员那个剧中人物,有限支撑了仓库和工厂的独立性,工厂只要求担当生产即可,而有关商品怎样存放工厂无需关心。

而大家要讲的仓库储存就就像于仓管员,只可是它担负的不再是货物的军管,而是聚合的军管,仓库储存介于领域模型和数据模型之间,主要用来聚合的持久化和寻找。它隔断了世界模型和数据模型,以便大家关切于天地模型而不必要惦记如何进展持久化。

一、实际上是壹同公司,投资人却误以为设立和组长的是同盟社。导致合伙人里面对权利认知错位,合伙人不领悟本人要对集团对外承担无限权利,也正是会追索到自个儿的个人财产。

二. DDD中的仓库储存

2、自以为设立和老板的是有限公司,实际上是个人独资集团。“夫妻集团”“父亲和儿子集团”以及新集团法实施后的“一位集团”是推行四川中国广播集团泛的中型小型集团协会格局。投资人误以为“公司是自作者的,公司的资金财产也便是自作者的”,经营师长企财与家园或个人财产混为壹体,结果对外发出纠纷的时候或者造成公司人格的丧失,失去“有限义务”的尊敬,比如一个人有限权利集团的股东若是不能证实企财独立于股东本人资金财产的,应当对公司债务承担连带权利,依旧会追索到股东的个人的财产。

二.1. 仓库储存的联谊天性

仓储代表1个汇集的集纳,其行为与.Net集合一样,仓库储存用来储存和删除聚合,但与此同时提供针对性聚合的显式查询以及集中。

贰十三个商户八个注册资本存在欠缺,不仅在债务承担上会波及个人财产,还可能构成刑事犯罪。

二.二. 囤积与数码访问层的分别

  1. 储存限定了不得不通过聚合根来持久化和摸索领域对象,以管教全数改变和不变性由聚合处理。
  2. 积存通过隐蔽聚合持久化和搜索的最底层技术落成世界层的的持久化非亲非故性(即世界层不供给了然什么样持久化领域对象)。
  3. 存款和储蓄在数据模型和天地模型定义了一个边界。

供销合作社开设时,为了反映“实力”,有个别企业家屡屡愿意推广注册资本,可因为资金不足或思量集团事情最近不需求那么多资金,于是利用虚报注册资本或注册后抽逃出资的手腕。所面临的法规危机恐怕是:填补出资、集团人格否定、构成犯罪等等。

贰.三. 仓库储存举例

上边我们率先来看一个大概仓库储存的概念:

namespace DomainModel
{
 public interface ICustomerRepository
 {
 Customer FindBy(Guid id);
 void Add(Customer customer);
 void Remove(Customer customer);
 }
}

一般来说,仓储由使用服务层调用。仓库储存定义应用服务执行工作效能率例时索要的具有的多寡访问方法。而仓库储存的达成普通位于基础框架结构层,由持久化框架来支撑。以下的储存完结是借助O翼虎M框架Nhibernate的ISession接口,它扮演三个的网关剧中人物,负责领域模型和数据模型的炫耀。

namespace Infrastructure.Persistence {
    public class CustomerRepository : ICustomerRepository {
        private ISession _session;
        public CustomerRepository (ISession session) {
            _session = session;
        }
        public IEnumerable<Customer> FindBy (Guid id)
            return _session.Load<Order> (id);
        }

        public void Add (Customer customer) {
            _session.Save (customer);
        }

        public void Remove (Customer customer) {
            _session.Delete (customer);
        }
    }
}

从上面我们得以看到,将世界模型的持久化转移到基础设备层,隐藏了世界模型的技能复杂性,从而使世界对象能够专注于工作概念和逻辑。

311个铺面COO几个没仔细看过自身集团的章程。

二.四. 仓库储存的误会

存款和储蓄也设有重重误解,许四人认为其是不必要的空洞。当使用于不难的圈子模型时,能够直接行使持久化框架来拓展多少访问。不过当对复杂的小圈子模型举办建立模型时,仓库储存是模型的扩充,它注脚聚合检索的企图,能够对世界模型举行有意义的读写,而不是叁个技艺框架。

也有不少人以为仓库储存是1种反方式,因为其逃匿了根基持久化框架的成效。而刚刚那就是仓库储存的中央。基础持久化框架提供了开放的接口用于对数据模型的探寻和改动,而仓库储存通过动用定义的命名查询情势来界定对聚集的拜访。通过使查询显式化,就更易于调整查询,且更首要的是储存显明了查询的打算,便于领域专家驾驭。举个例子:大家在蕴藏中定义了3个方法GetAllActiveUsers()与sql语句select * from users where isactive = 1var users =db.Users.Where(u=>u.IsActive ==1)对待,很鲜明仓库储存的不贰秘籍命名就能让大家通晓了查询的用意:查询全数处于Active状态的用户。除了查询,仓储仅揭露供给的持久化方法而不是提供具有的CUCRUISERD方法。

公司章程是商店的“商法”,企业举行时就应在公司章程中分明规划好今后公司的治水结构。很多供销合作社往往不另眼相看集团章程设计,不另眼相看公司治理结构,经营中反复出现小股东权益得不到保卫安全,或然大股东能够的铺面管理意图得不到落到实处,甚至沦为集团僵局等。具体而言比如公司股东股权转让、对外担保等重大决议不可能透过股东会或董事会,导致不可能执行等。

2.五. 存款和储蓄的要义

仓库储存的宗旨境想并不是使代码更便于测试,也不是为了便利切换底层的持久化存款和储蓄形式。当然,在某种程度上,那也着实是储存所带来的利好。积存的要领是维系你的领域模型和技艺持久化框架的独立性,那样您的天地模型能够凝集来自底层持久化技术的影响。假如未有仓库储存那1层,你的持久化基础设备或许会漏风到世界模型中,并影响世界模型完整性和末段一致性。

四1二个公司九个会对外融通资金,融通资金中的陷阱有几个清楚?

三. 领域模型 VS 数据模型

若果选择关系型数据库作为持久化存款和储蓄,大家能够依靠O大切诺基M框架来促成世界模型和数据模型之间的炫耀和持久化操作。

而ORAV四M又是何许吗?

遵纪守法小说初始中的例子,借使存款和储蓄对应仓管员的剧中人物,那O劲客M就一定于仓库机器人,而仓库就相当于数据库。为了方便差异商品的归类存放,对库房进行分区,分区就一定于数据表。当集团接受一笔订单做发货处理时,销售员将发货通告单告知仓管员,仓管员再分配O本田CR-VM机器人实行捡货。很明显,ORAV4M机器人必须可以辨识发货文告单,将发货布告单中的商品对应到仓库中贮存的商品。那中间发货布告单就相当于天地模型,而仓库中蕴藏的货品就属于数据模型。

信任基于下边包车型大巴比喻,我们对O大切诺基M有了主导的认识。O奇骏M,全称是Object
Relational
Mapping,对象关联映射。O揽胜极光M的前提是,将目的的质量映射到数据库字段,将对象时期的引用映射到多少库表的关联。换句话说,OENVISIONM负责将代码中定义的对象和涉嫌映射到数据库的表结构中去,并在拓展数据访问时再将表数据映射到代码中定义的对象,借助O帕杰罗M我们不须求去手动写SQL语句就足以做到数据的增加和删除改查。O汉兰达M仅仅抽象了关周到据模型,它只是以面向对象的不二等秘书诀来表示数据模型,以有益大家在代码中轻轻松松地处理多少。

下边我们来钻探一下数据模型与世界模型的异议。关周全据库中的数据模型,它由表和列组成,它只是容易的仓库储存结构,用于保存领域模型某些时间点的图景。数据模型能够疏散在多少个表甚至多少个数据库中。此外,能够采纳多样情势的持久化存款和储蓄,例如文件、web服务器、关周全据库或NoSQL。领域模型是对难点域的肤浅,具有足够的言语和作为,由实体和值对象组成。对于部分天地模型,恐怕与数据模型相似,甚至同一,但在概念上它们是格外分化的。OLacrosseM与世界模型毫无干系。仓库储存的意义正是将世界模型与数据模型分开,而不是让它们模糊成3个模子。OOdysseyM不是储存,不过仓库储存能够使用OSportageM来持久化领域对象的动静。

图片 1

假诺您的天地模型与您的数据模型类似,O汉兰达M能够直接照射领域模型到数量存款和储蓄,不然,则须求对O卡宴M实行额外的照耀配置。

集团首席执行官中冒出资金不足,是多数集团都会境遇的景色,常见的筹融通资金格局由银行借款、民间借贷、股东追加投资、吸收新上市股票东增资扩股、引入战略投资者、发行公司债券、上市融通资金(IPO或增发股票)等等。

4. 储存的定义和落到实处

地点也波及过,我们一般在领域层定义仓库储存接口,在基础设备层达成仓储,以切断领域模型和数据模型。

不等的筹融资格局还设有不相同的法兰西网球公开赛(French Open)危害,叁遍融资在差别环节有不相同法律危害。比如银行借贷,恐怕沦为“高利转贷”、“非法发放借款”、“贷款欺诈”及此外经济欺诈的法国网球国际赛危害黑洞;民间借贷,可能面临“不合规吸收群众存款”、“集资棍骗”、“票据诈欺”或别的经济凭证诈骗等等法律危害。公司要做大做强免不了各个样式的融通资金或资本运作,在融通资金项目管理中注入法律危害管理的意见,对于法律风险的严防起着至关心珍视要的效用。

4.壹. 存款和储蓄方法需鲜明

仓库储存是原则上是世界模型与持久化存款和储蓄之间分明的契约,仓库储存定义的接口方法不可是CU猎豹CS6D方法。它是圈子模型的恢弘,并以领域专家所知晓的术语编写。仓库储存接口的定义应该依照应用程序的用例要求来创设,而不是从类似CU奥德赛D的数目访问角度来创设。

咱俩来看1段代码:

namespace DomainModel {
    public interface ICustomerRepository {
        Customer FindBy (Guid id);
        IEnumerable<Customer> FindAllThatMatch (Query query);
        IEnumerable<Customer> FindAllThatMatch (String hql);
        void Add (Customer customer);
    }
}

如上仓库储存定义了2个FindAllThatMatch主意以帮助客户端以其余方法查询领域对象。这一个办法的筹划思想无可置否,灵活且能够增加,但是它并从未理解的标志查询的意图,大家就失去了对查询的操纵。为了真正理解怎么着使用那个艺术,开发人士必要跟踪相关调用堆栈,才能知悉方法的意向,更别说出现质量难题时怎么动手优化了。因为仓库储存定义的接口方法过于宽泛且不现实,它模糊了世界的的定义,所以定义这样的1个接口方法是空泛的。

咱俩能够如下改造:

namespace DomainModel {
    public interface ICustomerRepository {
        Customer FindBy (Guid id);
        IEnumerable<Customer> FindAllThatAreDeactivated ();
        IEnumerable<Customer> FindAllThatAreOverAllowedCredit ();
        void Add (Customer customer);
    }
}

透过以上改造,大家因此艺术的命名来人所共知询问的用意,符合通用语言的正规化。

三人力能源流失带走商店财富和商业秘密,十个铺面捌个都选取不了了之。

4.二. 泛型仓储

在实践中大家兴许会意识,为每三个集聚定义三个存款和储蓄会导致重复代码,因为多数的数额操作都以相仿的。为了代码重用,泛型仓库储存就应时而生。

泛型仓库储存举例:

namespace DomainModel {
    public interface IRepository<T> where T : EntityBase {
        T GetById (int id);
        IEnumerable<T> List ();
        IEnumerable<T> List (Expression<Func<T, bool>> predicate);
        void Add (T entity);
        void Delete (T entity);
        void Edit (T entity);
    }

    public abstract class EntityBase {
        public int Id { get; protected set; }
    }
}

泛型仓库储存完毕:

namespace Infrastructure.Persistence {
    public class Repository<T> : IRepository<T> where T : EntityBase {
        private readonly ApplicationDbContext _dbContext;
        public Repository (ApplicationDbContext dbContext) {
            _dbContext = dbContext;
        }
        public virtual T GetById (int id) {
            return _dbContext.Set<T> ().Find (id);
        }

        public virtual IEnumerable<T> List () {
            return _dbContext.Set<T> ().AsEnumerable ();
        }

        public virtual IEnumerable<T> List (Expression<Func<T, bool>> predicate) {
            return _dbContext.Set<T> ()
                .Where (predicate)
                .AsEnumerable ();
        }

        public void Insert (T entity) {
            _dbContext.Set<T> ().Add (entity);
            _dbContext.SaveChanges ();
        }

        public void Update (T entity) {
            _dbContext.Entry (entity).State = EntityState.Modified;
            _dbContext.SaveChanges ();
        }

        public void Delete (T entity) {
            _dbContext.Set<T> ().Remove (entity);
            _dbContext.SaveChanges ();
        }
    }
}

因而定义泛型仓库储存和私下认可的已毕,不小程度上海展览中心开了代码重用。可是,尝试将泛型仓库储存应用具有存款和储蓄并不是3个好的意见。对于简易的汇合我们得以一直利用泛型仓库储存来简化代码。但对于复杂的汇集,泛型仓库储存或许就会不太符合,借使依照泛型仓库储存的诀要举行多少访问,就会搅乱对聚集的访问意图。

对此复杂的集合,大家能够再度定义:

namespace DomainModel {
    public interface ICustomerRepository {
        Customer FindBy (Guid id);
        IEnumerable<Customer> FindAllThatAreDeactivated ();
        void Add (Customer customer);
    }
}

在促成时,大家得以引用泛型仓库储存来制止代码重复。

namespace Infrastructure.Persistence {
    public class CustomerRepository : ICustomerRepository {
        private IRepository<Customer> _customersRepository;
        public Customers (IRepository<Customer> customersRepository) {
            _customersRepository = customersRepository;
        }
        // ....
        public IEnumerable<Customer> FindAllThatAreDeactivated () {
            _customersRepository.List(c => c.IsActive == false);
        }
        public void Add (Customer customer) {
            _customersRepository.Add (customer);
        }
    }
}

透过那种办法,我们即分明了询问了意向,又简化了代码。

1般性公司为了节约本钱、减弱培育进度、急迅抢上新品类等,平日使用“挖墙脚”的秘诀引入高级人才,并一贯运用那一个人从原主人带来的技巧资料、客户音讯等等,那就只怕遭遇被挖集团的理赔,或遭致被挖集团的商业秘密、专利等侵权指控。反过来,辛费力苦或花大代价培育的相貌无端流失,被挖墙脚,集团却无法收获应该的补给,也是中型小型集团公司常碰着的危机。

4.3. IQueryable Vs IEnumerable

在概念仓库储存方法的重临值时,我们只怕会比较疑忌,是应当一向回到数据(IEnumerable)照旧回到查询(IQueryable)以便进行尤其的细化查询?再次来到IEnumerable会相比较安全,但IQueryable提供了越来越好的油滑。事实上,假使使用IQueryable用作重临值,大家仅提供一种读取数据的不二秘籍即可进行种种查询。
可是那种方法就会引入八个难题,正是事情逻辑会渗透到应用层中去,并冒出多量重复。比如,在实体中大家一般采用IsActiveIsDeleted特性来代表软删除,而借使实体中的某条数据被去除,那么UI中挑咸阳不会再展现那条数据,这对于实体的查询都需求包涵类似Where(c=> c.IsActive)的linq表达式。对于这种题材,大家最棒在储存中的方法中,比如List()或者ListActive()做暗中同意处理,而不是在使用服务层每一次去内定询问条件。
但具体是回到
IQueryable仍然IEnumerable各样人的观点不一致,具体可参照Repository 返回
IQueryable?还是
IEnumerable?

陆十个商店八个会忽视市场交易中的以下法律风险。

五. 事务管理和劳作单元

东西管理非同经常是使用服务层的关心点。不过,因为仓储和东西管理紧凑有关的。仓库储存仅关怀单一聚合的管制,而一个作业用例恐怕会波及到多种的集聚。

东西管理由UOW(Unit of
Work)处理。UOW格局的成效是在工作效用能例的操作中跟踪聚合的有着变更。一旦发生了改动,UOW就动用工作来协调持久化存储。为了确定保证数据的完整性,如若提交数据失利,则会回滚全数改变,以保险数量保持有效情状。

而有关UOW又是三个错综复杂的话题,我们一而再再讲。

供销合作社的进化靠的是绵绵发生的商海交易作为,分裂的市集交易表现,须求建立差别的合同涉及,分化的合同涉及可能受到分裂的王法陷阱。事实上,公司最常碰着的法律纠纷正是合同纠纷。中型小型公司集团对此合同风险的觉察相对来说依旧较强的。但公司贸易作为管理,绝不仅限于合同书自个儿的治本,一个合同涉嫌既包涵了作为首要义务职分界定标准的合同书,还包含着从签订谈判开头,直到合同履行完成,乃至善后的缕缕进程。因而,交易行为的法度管理,实际上是一种进程管理。

陆. 仓库储存的反格局(注意事项)

  1. 不要帮助临时查询(ad hoc query)
    储存不该开放扩张,不要为了扶助两种情势的询问,定义比较普遍的查询方式,它不但不可能明了表明仓库储存查询的意向,更可能会导致查询质量。
  2. 延迟加载是1种设计臭味
    聚集应围绕不变性营造,并带有全部要求的习性去支持不变性。
    因而,当加载聚合时,要么加载全部,要么二个也不加载。
    假使您有二个关周详据库并且正在利用O路虎极光M作为数据模型,那么你或者能够延缓加载壹些世界对象属性,那样就可以延缓加载不供给的汇集部分。但是,那样做的标题是,假诺你不得不部分加载聚合,或许会招致您的集结边界错误。

  3. 无须选用聚合来落实报表必要
    报表也许会波及到多少个项指标汇集,而仓库储存是拍卖单一聚合的。其它仓库储存是依照事务的,或然会造成报表的质量难点。

  4. 总结

  5. 仓库储存当作世界模型和数据模型的中介,它负责映射领域模型到持久化存款和储蓄。

  6. 存款和储蓄实现了晶莹剔透持久化,即世界层不须要关心世界对象如何持久化。
  7. 存款和储蓄是一个契约,而不是数码访问层。它鲜明标明聚合所不可缺少的多少操作。
  8. OTiguanM框架不是储存。仓库储存是1种架构格局。OOdysseyM用来以面向对象的法子来代表数据模型。仓库储存使用O宝马X3M来协调领域模型和数据模型。
  9. 仓库储存适用于拥有丰硕领域模型的界线上下文。对于从未复杂工作逻辑的简便限界上下文,直接运用持久化框架即可。
  10. 运用UOW进行事务管理。UOW负责跟踪对象的图景,仓库储存在UOW协调的工作中展开实际的持久化学工业作。
  11. 积存用于管理单个聚合,它不该控制工作。

参考资料:
天地驱动设计(DDD)的实践经验分享之持久化透明
Repository Pattern–A data persistence
abstraction

天地驱动设计(DDD)的实践经验分享之OENVISIONM的考虑

中小企集团家还有3个与法律管理相争持的古板观念,就是习惯于熟人圈子的贸易,往往依靠个人信用关系进展交易。那样就带来两狂危机:一是也许“知人知面不知心”,因为对人的体会错误,大概对方因天气变更而信用发生变化,导致“君子协定”和爱侣关系共同被强奸;2是因为未有书面包车型大巴对个别职务职务的具体预约,时间久了,双方对当下的细节难题发生误会,各自认知区别、通晓不一样,五个自然交情很好的贸易伙伴和事业盟军由此发生纠纷。

712个公司超越柒个未建立文化产权管理种类。

境内除了像海尔、北大方正等极个别合营社对学识产权有相比系统标准的管制外,绝大部分公司还从未认识到文化产权管理的重点,更谈不上从战略性上开始展览统一筹划,公司关切的仍是有形资金财产的军管。

一九99年四月,中国专利局对柒省市的调查切磋发现,每种大中型集团年年科学切磋成果超过百项,但申请专利的却屈指可数。北大刘剑文大学生团队的调查声明,香岛市仅有二一.6%的高新公司“已创造”或“正在思索制定”本公司的学问产权战略,超过1/三店铺都处在未制定的事态。

出于贫乏战略中度的宏图,许多集团成果只报名了中华夏族民共和国专利而造成技术未有,专利申请后利用率十分的低,产业化、商品化程度低。其它,还很简单造成陷入专利“陷井”与“雷区”,入侵了人家的专利权,不仅要开销高额赔付,甚至招致商户失利。汕尾市某厂的产品属荷兰王国菲利浦公司在中华夏族民共和国获权的专利保养范围,被诉侵权,不但自行销毁了模具和侵权产品,还要开发巨大赔款。

捌10当中型小型集团七个在分歧程度存在产权不明晰所诱惑的法规风险。

恒河沙数中型小型公司企业家和她的家族都有如此的守旧:集团是自己的,所以公司的成本便是自身的费用,笔者的开销也时刻能够看做公司的工本。那种价值观是老大荒唐的。集团是具备法人人格的,是单身的法兰西网球公开赛(French Open)主体,拥有独立的产权,公司有限权利正是基于那样的前提。投资人乃至其家门的财产与公司的财产一旦混同,公司的单独法人人格就难以得到法律承认,公司就不再受有限义务珍重,公司的危机就会蔓延到投资人乃至其家门,成为家族的高危害。导致商行垮家族就垮,公司倒闭主管就跳楼。

9公司结合中设有的法度危害

小编国中型小型集团公司在有个别阶段已经出现“多壳化经营”的气象,1个投资人或叁个家族设立很七个公司。发轫是为了多些操作平台,后来专营商斥资和经营业走向规范化,整合分散的财富更利于集团做强,很多商家也走上结缘之路。

在信用合作社结合的种种环节,都潜藏着法律风险。列举八个大的方面:

一、股权结构调整商行结合中最重点的是股权结构的调动,股权结构意味着企的控制权和决定的实惠,也表示商户首席营业官的创业重力。倘诺事先不开始展览法律方案的宏图、规划和论证,进度中不开始展览法律危害的军管和决定,出现“树虫”时不马上举行高风险的评估和缓解,最后难免出现危害失控的遭逢。

二、资金财产重组财力组合关系权属界定、处分权限制、定价、交易、过户、税费种种王法关系,同样暗藏着各样法律危害。

十集团解散时或许遭到的题材

商户作为1个主体,有独立人格,也有生老病死的题材,集团设立取得营业执照就算“生”了,遭际遇的种种危机都是“病”,经营期限届满就“老”了,经营不善破产倒闭或投资人解散集团,公司就“死”了。人老死要办丧葬,公司老死要做清算。

广大商家在商店老死的时候,却频仍不做清算,将店铺资金财产搬回家完事。殊不知,法律危害的地雷就此埋下。

清算有严刻的法律程序,必须依法开始展览,不然集团尽管死了,而其阴魂依然未散。因为集团的生老病死整个生命进度随处大概存在法律危害,所以国家庭财产政部、中国证券监督管理委员会、审计署、银行监理会、中国保险监委会等一道宣布了《集团中间控制大旨标准》,供给上市集团执行,并鼓励大中型非上市商户执行;国务院国有资金财产监督管委印发了《中心集团完善危害管理辅导》,要求央企结合本集团实际履行。

化解之道:

中型小型公司多建立,经历了劳顿的创业历程,更要商讨什么建立和行业内部企业的风险管理体系,压实公司的其闭合性脑外伤险控制。

简单的说,化解公司的法兰西网球国际赛(French Open)难题的首要,1是增强主动性,预防为主。二是选用专业法律顾问服务。

大部商店后天对法规服务的须求流于“召见式”,所以接受劳动的时候经常是近期抱佛脚,狼狈不堪。真正的集团家应从长远来对待集团的王法难题,应该在法规难点的防护和平消除决上增强主动性。

有规则的应该从事商业店建立之初就起来发现难点,消除难题,争取防微杜渐,让专业的辩驳人针对公司现状给出具法律危害评估报告,给集团三个圆满把握法律风险的时机,不过,那在未来当先四分之二供销社是做不到的。

来自:法务之家

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注