# elephant-common **Repository Path**: chowyongbo/elephant-common ## Basic Information - **Project Name**: elephant-common - **Description**: 常用公共组件 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-25 - **Last Updated**: 2025-02-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 1.开发规范 ``` > 数据库表主键字段统一为id(Long类型),对不同性质的表id可自增可19位雪花算法生成. > 主键id在其他表中使用的形式: 表名_id. > 数据库状态或类型字段,或其他业务字段,需新增对应枚举.type/way,类型/方式这种从1开始定义实际含义status,状态这种从0开始定义实际含义 > 数据库字段 属性名称,禁止使用is打头. bool类型的字段,用0表示否,1表示是. > remote接口命名必须规范,需见名知义. > 代码关键逻辑需添加对应的注释,接口或私有方法需加上出入参注释以及功能描述. > redis的key命名方式(使用RedisKeys统一对key维护): 业务名:具体功能名称(如string key = "coupon:user:id") > 不允许接口多参数的情况下转为json字符串再传入传出.须定义传输对象封装相关参数. > 不建议使用BeanUtils类似工具来深拷贝对象进行对象转换,统一使用mapstruct框架进行对象转换. > elephant-procurement-supplier-remote 包中按照admin和biz区分是admin还是api包,在admin和biz中按照dto/vo/to 区分不同的包,然后dto/vo/bo中需要按照业务拆分业务包名; > elephant-procurement-supplier-common 中dto/vo包(dto/vo包需要按业务拆分)为后管接口入参/出参对象; > admin/api 项目中的dto/vo/to 若存在相同的对象时,需要进行对象隔离,不能引用同一个对象; > DTO:所有请求的入参对象统一为DTO对象; > VO:与前端交互的对象统一为VO对象; > TO:返回给业务服务的对象统一为TO对象(也就是remote中返回的对象); > BO: 自己业务中需要转换的中间对象统一为BO对象; > 由于dby-supplier-strategy策略包中前期没有按以上定义,故在写策略包时还是按原来的策略包风格编写; > 返回前端VO中若存在Long型长整形字段,使用注解@JsonSerialize(using = ToStringSerializer.class)(与之对应注解 @JsonDeserialize(using = ToStringSerializer.class)),防止前端精度丢失; ```