This commit is contained in:
2026-02-28 16:21:06 +08:00
parent f9692850c1
commit 39e224e0de
16 changed files with 1985 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
<mxfile host="app.diagrams.net" modified="2026-02-28T12:00:00.000Z" agent="OpenCode" version="24.7.17" type="device">
<diagram id="class-diagram" name="图4.4 系统类图">
<mxGraphModel dx="1600" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2600" pageHeight="1600" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="10" value="系统类图(逻辑数据库设计)" style="rounded=0;whiteSpace=wrap;html=1;strokeWidth=2;fontStyle=1;" vertex="1" parent="1"><mxGeometry x="1140" y="20" width="320" height="56" as="geometry" /></mxCell>
<mxCell id="100" value="&lt;b&gt;用户类users&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ username: String&lt;br/&gt;+ password: String&lt;br/&gt;+ role: String&lt;br/&gt;+ nickname: String&lt;br/&gt;+ phone: String&lt;br/&gt;+ address: String&lt;br/&gt;+ token: String&lt;br/&gt;+ enabled: Boolean&lt;br/&gt;+ created_at: DateTime&lt;br/&gt;+ updated_at: DateTime" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1080" y="220" width="320" height="290" as="geometry" /></mxCell>
<mxCell id="101" value="&lt;b&gt;商品类product&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ name: String&lt;br/&gt;+ category: String&lt;br/&gt;+ description: String&lt;br/&gt;+ price: Decimal&lt;br/&gt;+ stock: Integer&lt;br/&gt;+ image_url: String&lt;br/&gt;+ merchant_id: Long&lt;br/&gt;+ approved: Boolean&lt;br/&gt;+ created_at: DateTime&lt;br/&gt;+ updated_at: DateTime" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1640" y="220" width="330" height="290" as="geometry" /></mxCell>
<mxCell id="102" value="&lt;b&gt;购物车项类cart_item&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ customer_id: Long&lt;br/&gt;+ product_id: Long&lt;br/&gt;+ quantity: Integer" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="680" y="230" width="300" height="150" as="geometry" /></mxCell>
<mxCell id="103" value="&lt;b&gt;收藏类favorite&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ customer_id: Long&lt;br/&gt;+ product_id: Long" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="700" y="470" width="280" height="130" as="geometry" /></mxCell>
<mxCell id="104" value="&lt;b&gt;订单类orders&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ order_no: String&lt;br/&gt;+ customer_id: Long&lt;br/&gt;+ merchant_id: Long&lt;br/&gt;+ total_amount: Decimal&lt;br/&gt;+ status: String&lt;br/&gt;+ address: String&lt;br/&gt;+ logistics_info: String&lt;br/&gt;+ refund_reason: String&lt;br/&gt;+ created_at: DateTime&lt;br/&gt;+ updated_at: DateTime" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1120" y="650" width="340" height="290" as="geometry" /></mxCell>
<mxCell id="105" value="&lt;b&gt;订单明细类order_item&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ order_id: Long&lt;br/&gt;+ product_id: Long&lt;br/&gt;+ product_name: String&lt;br/&gt;+ quantity: Integer&lt;br/&gt;+ unit_price: Decimal" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1640" y="660" width="330" height="190" as="geometry" /></mxCell>
<mxCell id="106" value="&lt;b&gt;评价类review&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ order_id: Long&lt;br/&gt;+ product_id: Long&lt;br/&gt;+ customer_id: Long&lt;br/&gt;+ rating: Integer&lt;br/&gt;+ content: String&lt;br/&gt;+ created_at: DateTime" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1650" y="1020" width="320" height="210" as="geometry" /></mxCell>
<mxCell id="107" value="&lt;b&gt;物流记录类logistics_record&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ order_id: Long&lt;br/&gt;+ merchant_id: Long&lt;br/&gt;+ status: String&lt;br/&gt;+ note: String&lt;br/&gt;+ created_at: DateTime" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="2020" y="650" width="330" height="190" as="geometry" /></mxCell>
<mxCell id="108" value="&lt;b&gt;库存记录类inventory_record&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ product_id: Long&lt;br/&gt;+ merchant_id: Long&lt;br/&gt;+ change_qty: Integer&lt;br/&gt;+ note: String&lt;br/&gt;+ created_at: DateTime" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="2020" y="970" width="340" height="190" as="geometry" /></mxCell>
<mxCell id="109" value="&lt;b&gt;商家申请类merchant_application&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ user_id: Long&lt;br/&gt;+ qualification: String&lt;br/&gt;+ status: String&lt;br/&gt;+ remark: String&lt;br/&gt;+ created_at: DateTime&lt;br/&gt;+ updated_at: DateTime" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="1110" y="1020" width="350" height="210" as="geometry" /></mxCell>
<mxCell id="110" value="&lt;b&gt;轮播图类banner&lt;/b&gt;&lt;hr/&gt;+ id: Long&lt;br/&gt;+ image_url: String&lt;br/&gt;+ link_url: String&lt;br/&gt;+ sort_no: Integer&lt;br/&gt;+ enabled: Boolean" style="shape=umlClass;whiteSpace=wrap;html=1;" vertex="1" parent="1"><mxGeometry x="360" y="980" width="290" height="170" as="geometry" /></mxCell>
<mxCell id="200" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="100" target="101"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="201" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="100" target="102"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="202" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="101" target="102"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="203" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="100" target="103"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="204" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="101" target="103"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="205" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="100" target="104"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="206" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="101" target="104"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="207" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="104" target="105"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="208" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="101" target="105"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="209" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="104" target="107"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="210" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="101" target="108"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="211" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="100" target="109"><mxGeometry relative="1" as="geometry" /></mxCell>
<mxCell id="212" value="1:N" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=1;endArrow=none;" edge="1" parent="1" source="104" target="106"><mxGeometry relative="1" as="geometry" /></mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>