2.项目的阶段心得一

2018-04-25  本文已影响0人  Vincilovfang

写项目感悟:
第一步捋清楚关系,本项目层次结构为
1. common_parent
2. bos_domain 3. crm_domain
4. bos_management 5. bos_fore 6. crm_management
7. bos_sms
第二步创建实体类,bos物流共享一个bos_domain,然后crm_domain主要负责客户的信息(打包方式jar)
2.1 crm_domian 远程调用,所以实体类上面需要@XmlRootElement
Customer
@Entity
@Table(name = "T_CUSTOMER")
@XmlRootElement(name = "customer")
public class Customer {
@Id
@GeneratedValue()
@Column(name = "C_ID")
private Integer id;

    2.2 bos_domian的包分了不同的包
        base包       
        Area SubArea FixedArea Courier Standard TakeTime Vehicle Archive SubArchive
            区域(一)       分区(多)
            定区(一)           分区(多)
            快递员(多)      定区(多)
            Area    @OneToMany(mappedBy = "area")
                    private Set<SubArea> subareas = new HashSet<SubArea>();
                    @JSON(serialize = false)
                    public Set<SubArea> getSubareas() {
                        return subareas;
                    }
            Courier @ManyToMany(mappedBy = "couriers")
                    private Set<FixedArea> fixedAreas = new HashSet<>();
                    @JSON(serialize = false)
                    public Set<FixedArea> getFixedAreas() {
                        return fixedAreas;
                    }
                    @Transient
                    // 防止被生成数据表中的列
                    public String getInfo() {
                        return name + "(" + company + ")";
                    }
        page包
            Hibernate自带的Page由于不能提供XmlRootElement注解,所以需要提供自定义Pagebean
        
        system包
            系统包里面主要是后台管理的相关类,用户、角色、权限、菜单的实体类
                User(多) Role(多)
                使需要缓存对象,实现 Serializable 接口
                public class User implements Serializable
                Role(多) Permission(多)
                Role(多) Menu(多)
                                
        take_delivery包
            take_delivery包里面是货物相关的类,订单,工单,运单。促销活动
            这个包里面的类是功能的重点,业务重点
            Promotion 促销类 
                促销标题图片 titleImg  结束时间 endDate 状态status  活动描述 description
            Order 订单类
             id orderNum telephone customer_id sendAddress sendArea wayBill workBill courier
             自动分单就是将订单关联到快递员
                跨系统去crm系统找。
                1. 根据寄件地址sendAddress找到fixedArea 根据fixedArea找到courier
                2. 根据寄件区域sendArea找到subArea,根据sendAddress中包含subArea的关键字,找到fixedArea,找到courier.
                    这里我的想法是可以对subArea创建全文索引表
            WorkBill 工单类
            WayBill 运单类
                id wayBillNum  order 
                运单由于后台系统需要对其进行查找,所以需要创建索引库 
                @Entity
                @Table(name = "T_WAY_BILL")
                @Document(indexName = "bos", type = "waybill")
                public class WayBill implements Serializable {
                @Id
                @GeneratedValue
                @Column(name = "C_ID")
                @org.springframework.data.annotation.Id
                @Field(index = FieldIndex.not_analyzed, store = true, type = FieldType.String)
                private Integer id;
                @Column(name = "C_WAY_BILL_NUM", unique = true)
                @Field(index = FieldIndex.not_analyzed, store = true, type = FieldType.String)
                private String wayBillNum; // 运单编号
                @OneToOne
                @JoinColumn(name = "C_ORDER_ID")
                private Order order; // 订单信息
                // analyzer = "ik"指索引过程中采用的分词器      searchAnalyzer = "ik"指检索过程中采用的分词器
                @Column(name = "C_SEND_NAME")
                @Field(index = FieldIndex.analyzed, analyzer = "ik", searchAnalyzer = "ik", store = true, type = FieldType.String)
                
                
        transit包
上一篇下一篇

猜你喜欢

热点阅读