diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..3b1c5e8 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/NEOTERICc.ttf b/NEOTERICc.ttf new file mode 100644 index 0000000..9ec1177 Binary files /dev/null and b/NEOTERICc.ttf differ diff --git a/QQ图片20190103221300.jpg b/QQ图片20190103221300.jpg new file mode 100644 index 0000000..18998b0 Binary files /dev/null and b/QQ图片20190103221300.jpg differ diff --git a/Untitled.mdj b/Untitled.mdj new file mode 100644 index 0000000..307cf70 --- /dev/null +++ b/Untitled.mdj @@ -0,0 +1,3712 @@ +{ + "_type": "Project", + "_id": "AAAAAAFF+h6SjaM2Hec=", + "name": "Untitled", + "ownedElements": [ + { + "_type": "UMLModel", + "_id": "AAAAAAFF+qBWK6M3Z8Y=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Model", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFF+qBtyKM79qY=", + "_parent": { + "$ref": "AAAAAAFF+qBWK6M3Z8Y=" + }, + "name": "Main", + "defaultDiagram": true + } + ] + }, + { + "_type": "UMLModel", + "_id": "AAAAAAFoHnp+nU2sNqg=", + "_parent": { + "$ref": "AAAAAAFF+h6SjaM2Hec=" + }, + "name": "Model1", + "ownedElements": [ + { + "_type": "UMLClassDiagram", + "_id": "AAAAAAFoHnp+nk2th+s=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "ClassDiagram1", + "ownedViews": [ + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHnqMXk2zGik=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHnqMXk2x9Ho=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHnqMXk20k44=", + "_parent": { + "$ref": "AAAAAAFoHnqMXk2zGik=" + }, + "model": { + "$ref": "AAAAAAFoHnqMXk2x9Ho=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHnqMXk21QTQ=", + "_parent": { + "$ref": "AAAAAAFoHnqMXk20k44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 720, + "top": 1072, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHnqMXk22Olc=", + "_parent": { + "$ref": "AAAAAAFoHnqMXk20k44=" + }, + "font": "Arial;13;1", + "left": 365, + "top": 543, + "width": 135, + "height": 13, + "text": "Product" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHnqMXk23cIg=", + "_parent": { + "$ref": "AAAAAAFoHnqMXk20k44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 720, + "top": 1072, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHnqMXk24z4s=", + "_parent": { + "$ref": "AAAAAAFoHnqMXk20k44=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 720, + "top": 1072, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 360, + "top": 536, + "width": 145, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHnqMXk21QTQ=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHnqMXk22Olc=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHnqMXk23cIg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHnqMXk24z4s=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHnqMXk25V4E=", + "_parent": { + "$ref": "AAAAAAFoHnqMXk2zGik=" + }, + "model": { + "$ref": "AAAAAAFoHnqMXk2x9Ho=" + }, + "font": "Arial;13;0", + "left": 360, + "top": 561, + "width": 145, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHnqMXk26IMk=", + "_parent": { + "$ref": "AAAAAAFoHnqMXk2zGik=" + }, + "model": { + "$ref": "AAAAAAFoHnqMXk2x9Ho=" + }, + "font": "Arial;13;0", + "left": 360, + "top": 571, + "width": 145, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHnqMXk27CE0=", + "_parent": { + "$ref": "AAAAAAFoHnqMXk2zGik=" + }, + "model": { + "$ref": "AAAAAAFoHnqMXk2x9Ho=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 360, + "top": 536, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHnqMXk28OmE=", + "_parent": { + "$ref": "AAAAAAFoHnqMXk2zGik=" + }, + "model": { + "$ref": "AAAAAAFoHnqMXk2x9Ho=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 360, + "top": 536, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 360, + "top": 536, + "width": 145, + "height": 129, + "nameCompartment": { + "$ref": "AAAAAAFoHnqMXk20k44=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHnqMXk25V4E=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHnqMXk26IMk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHnqMXk27CE0=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHnqMXk28OmE=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHn4fPE3ggJ4=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHn4fNE3eaZI=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHn4fPE3hqm8=", + "_parent": { + "$ref": "AAAAAAFoHn4fPE3ggJ4=" + }, + "model": { + "$ref": "AAAAAAFoHn4fNE3eaZI=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHn4fPE3iER8=", + "_parent": { + "$ref": "AAAAAAFoHn4fPE3hqm8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 416, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHn4fPE3jmh0=", + "_parent": { + "$ref": "AAAAAAFoHn4fPE3hqm8=" + }, + "font": "Arial;13;1", + "left": 597, + "top": 543, + "width": 135, + "height": 13, + "text": "Audit" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHn4fPE3kxOQ=", + "_parent": { + "$ref": "AAAAAAFoHn4fPE3hqm8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 416, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHn4fPE3lY0M=", + "_parent": { + "$ref": "AAAAAAFoHn4fPE3hqm8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 416, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 592, + "top": 536, + "width": 145, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHn4fPE3iER8=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHn4fPE3jmh0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHn4fPE3kxOQ=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHn4fPE3lY0M=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHn4fPE3mCOY=", + "_parent": { + "$ref": "AAAAAAFoHn4fPE3ggJ4=" + }, + "model": { + "$ref": "AAAAAAFoHn4fNE3eaZI=" + }, + "font": "Arial;13;0", + "left": 592, + "top": 561, + "width": 145, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHn4fPE3ndnk=", + "_parent": { + "$ref": "AAAAAAFoHn4fPE3ggJ4=" + }, + "model": { + "$ref": "AAAAAAFoHn4fNE3eaZI=" + }, + "font": "Arial;13;0", + "left": 592, + "top": 571, + "width": 145, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHn4fPE3ofoo=", + "_parent": { + "$ref": "AAAAAAFoHn4fPE3ggJ4=" + }, + "model": { + "$ref": "AAAAAAFoHn4fNE3eaZI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -136, + "top": 208, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHn4fPE3pm8s=", + "_parent": { + "$ref": "AAAAAAFoHn4fPE3ggJ4=" + }, + "model": { + "$ref": "AAAAAAFoHn4fNE3eaZI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -136, + "top": 208, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 592, + "top": 536, + "width": 145, + "height": 129, + "nameCompartment": { + "$ref": "AAAAAAFoHn4fPE3hqm8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHn4fPE3mCOY=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHn4fPE3ndnk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHn4fPE3ofoo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHn4fPE3pm8s=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHn6bek4Nu9I=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHn6bdU4L9r0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHn6bek4Oc1w=", + "_parent": { + "$ref": "AAAAAAFoHn6bek4Nu9I=" + }, + "model": { + "$ref": "AAAAAAFoHn6bdU4L9r0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHn6bek4PPwY=", + "_parent": { + "$ref": "AAAAAAFoHn6bek4Oc1w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 400, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHn6bek4QzB8=", + "_parent": { + "$ref": "AAAAAAFoHn6bek4Oc1w=" + }, + "font": "Arial;13;1", + "left": 125, + "top": 543, + "width": 135, + "height": 13, + "text": "Transaction" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHn6bek4RUIo=", + "_parent": { + "$ref": "AAAAAAFoHn6bek4Oc1w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 400, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHn6bek4SmvQ=", + "_parent": { + "$ref": "AAAAAAFoHn6bek4Oc1w=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -272, + "top": 400, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 120, + "top": 536, + "width": 145, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHn6bek4PPwY=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHn6bek4QzB8=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHn6bek4RUIo=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHn6bek4SmvQ=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHn6bek4Th2M=", + "_parent": { + "$ref": "AAAAAAFoHn6bek4Nu9I=" + }, + "model": { + "$ref": "AAAAAAFoHn6bdU4L9r0=" + }, + "font": "Arial;13;0", + "left": 120, + "top": 561, + "width": 145, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHn6bek4U+SA=", + "_parent": { + "$ref": "AAAAAAFoHn6bek4Nu9I=" + }, + "model": { + "$ref": "AAAAAAFoHn6bdU4L9r0=" + }, + "font": "Arial;13;0", + "left": 120, + "top": 571, + "width": 145, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHn6bek4Vcvk=", + "_parent": { + "$ref": "AAAAAAFoHn6bek4Nu9I=" + }, + "model": { + "$ref": "AAAAAAFoHn6bdU4L9r0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -136, + "top": 200, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHn6bek4W1/M=", + "_parent": { + "$ref": "AAAAAAFoHn6bek4Nu9I=" + }, + "model": { + "$ref": "AAAAAAFoHn6bdU4L9r0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -136, + "top": 200, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 120, + "top": 536, + "width": 145, + "height": 128, + "nameCompartment": { + "$ref": "AAAAAAFoHn6bek4Oc1w=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHn6bek4Th2M=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHn6bek4U+SA=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHn6bek4Vcvk=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHn6bek4W1/M=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHoAdvE459i8=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoAdvE43XFA=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHoAdvE46njI=", + "_parent": { + "$ref": "AAAAAAFoHoAdvE459i8=" + }, + "model": { + "$ref": "AAAAAAFoHoAdvE43XFA=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHoAdvE4783M=", + "_parent": { + "$ref": "AAAAAAFoHoAdvE46njI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -688, + "top": 464, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoAdvE48jD8=", + "_parent": { + "$ref": "AAAAAAFoHoAdvE46njI=" + }, + "font": "Arial;13;1", + "left": 125, + "top": 351, + "width": 135, + "height": 13, + "text": "TransactionDao" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoAdvE493SM=", + "_parent": { + "$ref": "AAAAAAFoHoAdvE46njI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -688, + "top": 464, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoAdvE4+jzY=", + "_parent": { + "$ref": "AAAAAAFoHoAdvE46njI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -688, + "top": 464, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 120, + "top": 344, + "width": 145, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoAdvE4783M=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHoAdvE48jD8=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHoAdvE493SM=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoAdvE4+jzY=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHoAdvE4/vkY=", + "_parent": { + "$ref": "AAAAAAFoHoAdvE459i8=" + }, + "model": { + "$ref": "AAAAAAFoHoAdvE43XFA=" + }, + "font": "Arial;13;0", + "left": 120, + "top": 369, + "width": 145, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHoAdvE5Ajjo=", + "_parent": { + "$ref": "AAAAAAFoHoAdvE459i8=" + }, + "model": { + "$ref": "AAAAAAFoHoAdvE43XFA=" + }, + "font": "Arial;13;0", + "left": 120, + "top": 379, + "width": 145, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHoAdvE5BZTQ=", + "_parent": { + "$ref": "AAAAAAFoHoAdvE459i8=" + }, + "model": { + "$ref": "AAAAAAFoHoAdvE43XFA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -344, + "top": 232, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHoAdvE5ConU=", + "_parent": { + "$ref": "AAAAAAFoHoAdvE459i8=" + }, + "model": { + "$ref": "AAAAAAFoHoAdvE43XFA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -344, + "top": 232, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 120, + "top": 344, + "width": 145, + "height": 128, + "nameCompartment": { + "$ref": "AAAAAAFoHoAdvE46njI=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHoAdvE4/vkY=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHoAdvE5Ajjo=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHoAdvE5BZTQ=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHoAdvE5ConU=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHoDiGE5qIWg=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoDiGE5oqzA=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHoDiGE5r6+U=", + "_parent": { + "$ref": "AAAAAAFoHoDiGE5qIWg=" + }, + "model": { + "$ref": "AAAAAAFoHoDiGE5oqzA=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHoDiGE5s0vM=", + "_parent": { + "$ref": "AAAAAAFoHoDiGE5r6+U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 256, + "top": 480, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoDiJU5tMdE=", + "_parent": { + "$ref": "AAAAAAFoHoDiGE5r6+U=" + }, + "font": "Arial;13;1", + "left": 373, + "top": 351, + "width": 127, + "height": 13, + "text": "ProductDao" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoDiJU5ufao=", + "_parent": { + "$ref": "AAAAAAFoHoDiGE5r6+U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 256, + "top": 480, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoDiJU5vnPE=", + "_parent": { + "$ref": "AAAAAAFoHoDiGE5r6+U=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 256, + "top": 480, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 368, + "top": 344, + "width": 137, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoDiGE5s0vM=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHoDiJU5tMdE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHoDiJU5ufao=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoDiJU5vnPE=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHoDiJU5wKkk=", + "_parent": { + "$ref": "AAAAAAFoHoDiGE5qIWg=" + }, + "model": { + "$ref": "AAAAAAFoHoDiGE5oqzA=" + }, + "font": "Arial;13;0", + "left": 368, + "top": 369, + "width": 137, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHoDiJU5xuUE=", + "_parent": { + "$ref": "AAAAAAFoHoDiGE5qIWg=" + }, + "model": { + "$ref": "AAAAAAFoHoDiGE5oqzA=" + }, + "font": "Arial;13;0", + "left": 368, + "top": 379, + "width": 137, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHoDiJU5yRWE=", + "_parent": { + "$ref": "AAAAAAFoHoDiGE5qIWg=" + }, + "model": { + "$ref": "AAAAAAFoHoDiGE5oqzA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 128, + "top": 240, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHoDiJU5zMww=", + "_parent": { + "$ref": "AAAAAAFoHoDiGE5qIWg=" + }, + "model": { + "$ref": "AAAAAAFoHoDiGE5oqzA=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 128, + "top": 240, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 368, + "top": 344, + "width": 137, + "height": 128, + "nameCompartment": { + "$ref": "AAAAAAFoHoDiGE5r6+U=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHoDiJU5wKkk=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHoDiJU5xuUE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHoDiJU5yRWE=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHoDiJU5zMww=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHoFdV06ajNw=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoFdV06Y4e4=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHoFdV06bsZ4=", + "_parent": { + "$ref": "AAAAAAFoHoFdV06ajNw=" + }, + "model": { + "$ref": "AAAAAAFoHoFdV06Y4e4=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHoFdV06cEmI=", + "_parent": { + "$ref": "AAAAAAFoHoFdV06bsZ4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": 400, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoFdV06dKno=", + "_parent": { + "$ref": "AAAAAAFoHoFdV06bsZ4=" + }, + "font": "Arial;13;1", + "left": 597, + "top": 351, + "width": 135, + "height": 13, + "text": "AuditDao" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoFdV06e5Jg=", + "_parent": { + "$ref": "AAAAAAFoHoFdV06bsZ4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": 400, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoFdWE6fhI4=", + "_parent": { + "$ref": "AAAAAAFoHoFdV06bsZ4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": 400, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 592, + "top": 344, + "width": 145, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoFdV06cEmI=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHoFdV06dKno=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHoFdV06e5Jg=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoFdWE6fhI4=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHoFdWE6gz1E=", + "_parent": { + "$ref": "AAAAAAFoHoFdV06ajNw=" + }, + "model": { + "$ref": "AAAAAAFoHoFdV06Y4e4=" + }, + "font": "Arial;13;0", + "left": 592, + "top": 369, + "width": 145, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHoFdWE6h9zk=", + "_parent": { + "$ref": "AAAAAAFoHoFdV06ajNw=" + }, + "model": { + "$ref": "AAAAAAFoHoFdV06Y4e4=" + }, + "font": "Arial;13;0", + "left": 592, + "top": 379, + "width": 145, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHoFdWE6ixU8=", + "_parent": { + "$ref": "AAAAAAFoHoFdV06ajNw=" + }, + "model": { + "$ref": "AAAAAAFoHoFdV06Y4e4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -112, + "top": 200, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHoFdWE6j7C0=", + "_parent": { + "$ref": "AAAAAAFoHoFdV06ajNw=" + }, + "model": { + "$ref": "AAAAAAFoHoFdV06Y4e4=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -112, + "top": 200, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 592, + "top": 344, + "width": 145, + "height": 128, + "nameCompartment": { + "$ref": "AAAAAAFoHoFdV06bsZ4=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHoFdWE6gz1E=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHoFdWE6h9zk=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHoFdWE6ixU8=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHoFdWE6j7C0=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFoHoKuJ1CKoR8=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoKuJ1CIwqI=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoKuJ1CLyjo=", + "_parent": { + "$ref": "AAAAAAFoHoKuJ1CKoR8=" + }, + "model": { + "$ref": "AAAAAAFoHoKuJ1CIwqI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 206, + "top": 496, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHoKuJ1CKoR8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoKuJ1CMVL8=", + "_parent": { + "$ref": "AAAAAAFoHoKuJ1CKoR8=" + }, + "model": { + "$ref": "AAAAAAFoHoKuJ1CIwqI=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 221, + "top": 496, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHoKuJ1CKoR8=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoKuJ1CN4H0=", + "_parent": { + "$ref": "AAAAAAFoHoKuJ1CKoR8=" + }, + "model": { + "$ref": "AAAAAAFoHoKuJ1CIwqI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 177, + "top": 497, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHoKuJ1CKoR8=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFoHn6bek4Nu9I=" + }, + "tail": { + "$ref": "AAAAAAFoHoAdvE459i8=" + }, + "lineStyle": 1, + "points": "192:472;192:535", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFoHoKuJ1CLyjo=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoKuJ1CMVL8=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoKuJ1CN4H0=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFoHoKz7FCbstQ=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoKz7FCZmGs=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoKz7FCceUE=", + "_parent": { + "$ref": "AAAAAAFoHoKz7FCbstQ=" + }, + "model": { + "$ref": "AAAAAAFoHoKz7FCZmGs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 448, + "top": 497, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHoKz7FCbstQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoKz7FCd6JA=", + "_parent": { + "$ref": "AAAAAAFoHoKz7FCbstQ=" + }, + "model": { + "$ref": "AAAAAAFoHoKz7FCZmGs=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 463, + "top": 497, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHoKz7FCbstQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoKz7FCeBd8=", + "_parent": { + "$ref": "AAAAAAFoHoKz7FCbstQ=" + }, + "model": { + "$ref": "AAAAAAFoHoKz7FCZmGs=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 419, + "top": 496, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHoKz7FCbstQ=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFoHnqMXk2zGik=" + }, + "tail": { + "$ref": "AAAAAAFoHoDiGE5qIWg=" + }, + "lineStyle": 1, + "points": "435:472;433:535", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFoHoKz7FCceUE=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoKz7FCd6JA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoKz7FCeBd8=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFoHoK4MVCsIWk=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoK4MVCqIdc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoK4MVCtvrg=", + "_parent": { + "$ref": "AAAAAAFoHoK4MVCsIWk=" + }, + "model": { + "$ref": "AAAAAAFoHoK4MVCqIdc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 678, + "top": 496, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHoK4MVCsIWk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoK4MVCuprA=", + "_parent": { + "$ref": "AAAAAAFoHoK4MVCsIWk=" + }, + "model": { + "$ref": "AAAAAAFoHoK4MVCqIdc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 693, + "top": 496, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHoK4MVCsIWk=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoK4MVCv6YM=", + "_parent": { + "$ref": "AAAAAAFoHoK4MVCsIWk=" + }, + "model": { + "$ref": "AAAAAAFoHoK4MVCqIdc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 649, + "top": 497, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHoK4MVCsIWk=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFoHn4fPE3ggJ4=" + }, + "tail": { + "$ref": "AAAAAAFoHoFdV06ajNw=" + }, + "lineStyle": 1, + "points": "664:472;664:535", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFoHoK4MVCtvrg=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoK4MVCuprA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoK4MVCv6YM=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHoM63VDYIxM=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoM63VDWKwE=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHoM63VDZfqc=", + "_parent": { + "$ref": "AAAAAAFoHoM63VDYIxM=" + }, + "model": { + "$ref": "AAAAAAFoHoM63VDWKwE=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHoM63lDad6k=", + "_parent": { + "$ref": "AAAAAAFoHoM63VDZfqc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -448, + "top": -96, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoM63lDbiOE=", + "_parent": { + "$ref": "AAAAAAFoHoM63VDZfqc=" + }, + "font": "Arial;13;1", + "left": 117, + "top": 87, + "width": 150, + "height": 13, + "text": "SumCirculator" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoM63lDckcs=", + "_parent": { + "$ref": "AAAAAAFoHoM63VDZfqc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -448, + "top": -96, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoM63lDdFZQ=", + "_parent": { + "$ref": "AAAAAAFoHoM63VDZfqc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -448, + "top": -96, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 112, + "top": 80, + "width": 160, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoM63lDad6k=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHoM63lDbiOE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHoM63lDckcs=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoM63lDdFZQ=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHoM63lDeIMI=", + "_parent": { + "$ref": "AAAAAAFoHoM63VDYIxM=" + }, + "model": { + "$ref": "AAAAAAFoHoM63VDWKwE=" + }, + "font": "Arial;13;0", + "left": 112, + "top": 105, + "width": 160, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHoM63lDfuhI=", + "_parent": { + "$ref": "AAAAAAFoHoM63VDYIxM=" + }, + "model": { + "$ref": "AAAAAAFoHoM63VDWKwE=" + }, + "font": "Arial;13;0", + "left": 112, + "top": 115, + "width": 160, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHoM63lDggH4=", + "_parent": { + "$ref": "AAAAAAFoHoM63VDYIxM=" + }, + "model": { + "$ref": "AAAAAAFoHoM63VDWKwE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": -48, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHoM63lDhi5E=", + "_parent": { + "$ref": "AAAAAAFoHoM63VDYIxM=" + }, + "model": { + "$ref": "AAAAAAFoHoM63VDWKwE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -224, + "top": -48, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 112, + "top": 80, + "width": 160, + "height": 136, + "nameCompartment": { + "$ref": "AAAAAAFoHoM63VDZfqc=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHoM63lDeIMI=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHoM63lDfuhI=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHoM63lDggH4=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHoM63lDhi5E=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHoSFCFEEbt0=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoSFCFECdgg=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHoSFDVEFRE8=", + "_parent": { + "$ref": "AAAAAAFoHoSFCFEEbt0=" + }, + "model": { + "$ref": "AAAAAAFoHoSFCFECdgg=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHoSFDVEGXZM=", + "_parent": { + "$ref": "AAAAAAFoHoSFDVEFRE8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -416, + "top": -96, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoSFDVEHPnE=", + "_parent": { + "$ref": "AAAAAAFoHoSFDVEFRE8=" + }, + "font": "Arial;13;1", + "left": 357, + "top": 87, + "width": 150, + "height": 13, + "text": "NextCirculator" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoSFDVEIXkI=", + "_parent": { + "$ref": "AAAAAAFoHoSFDVEFRE8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -416, + "top": -96, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoSFDVEJOIw=", + "_parent": { + "$ref": "AAAAAAFoHoSFDVEFRE8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -416, + "top": -96, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 352, + "top": 80, + "width": 160, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoSFDVEGXZM=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHoSFDVEHPnE=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHoSFDVEIXkI=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoSFDVEJOIw=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHoSFDVEKtl4=", + "_parent": { + "$ref": "AAAAAAFoHoSFCFEEbt0=" + }, + "model": { + "$ref": "AAAAAAFoHoSFCFECdgg=" + }, + "font": "Arial;13;0", + "left": 352, + "top": 105, + "width": 160, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHoSFDVELKTU=", + "_parent": { + "$ref": "AAAAAAFoHoSFCFEEbt0=" + }, + "model": { + "$ref": "AAAAAAFoHoSFCFECdgg=" + }, + "font": "Arial;13;0", + "left": 352, + "top": 115, + "width": 160, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHoSFDVEMoho=", + "_parent": { + "$ref": "AAAAAAFoHoSFCFEEbt0=" + }, + "model": { + "$ref": "AAAAAAFoHoSFCFECdgg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -208, + "top": -48, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHoSFDVENYk0=", + "_parent": { + "$ref": "AAAAAAFoHoSFCFEEbt0=" + }, + "model": { + "$ref": "AAAAAAFoHoSFCFECdgg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -208, + "top": -48, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 352, + "top": 80, + "width": 160, + "height": 136, + "nameCompartment": { + "$ref": "AAAAAAFoHoSFDVEFRE8=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHoSFDVEKtl4=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHoSFDVELKTU=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHoSFDVEMoho=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHoSFDVENYk0=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHoTUo1Eu3L4=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoTUo1Es4Zk=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHoTUo1EvZ7M=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1Eu3L4=" + }, + "model": { + "$ref": "AAAAAAFoHoTUo1Es4Zk=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHoTUpVEwVQA=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1EvZ7M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -208, + "top": -112, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoTUpVExKh4=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1EvZ7M=" + }, + "font": "Arial;13;1", + "left": 677, + "top": 79, + "width": 158, + "height": 13, + "text": "DeductCirculator" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoTUpVEyXy8=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1EvZ7M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -208, + "top": -112, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoTUpVEzqS8=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1EvZ7M=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -208, + "top": -112, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 672, + "top": 72, + "width": 168, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoTUpVEwVQA=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHoTUpVExKh4=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHoTUpVEyXy8=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoTUpVEzqS8=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHoTUpVE0VWQ=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1Eu3L4=" + }, + "model": { + "$ref": "AAAAAAFoHoTUo1Es4Zk=" + }, + "font": "Arial;13;0", + "left": 672, + "top": 97, + "width": 168, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHoTUpVE1DDY=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1Eu3L4=" + }, + "model": { + "$ref": "AAAAAAFoHoTUo1Es4Zk=" + }, + "font": "Arial;13;0", + "left": 672, + "top": 107, + "width": 168, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHoTUpVE2IqY=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1Eu3L4=" + }, + "model": { + "$ref": "AAAAAAFoHoTUo1Es4Zk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -104, + "top": -56, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHoTUpVE3VKQ=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1Eu3L4=" + }, + "model": { + "$ref": "AAAAAAFoHoTUo1Es4Zk=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -104, + "top": -56, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 672, + "top": 72, + "width": 168, + "height": 136, + "nameCompartment": { + "$ref": "AAAAAAFoHoTUo1EvZ7M=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHoTUpVE0VWQ=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHoTUpVE1DDY=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHoTUpVE2IqY=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHoTUpVE3VKQ=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFoHoYm/FFeT7o=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1FaehU=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoYm/FFflrA=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1FaehU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 474, + "top": 282, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoYm/FFgAQY=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1FaehU=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 480, + "top": 296, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoYm/FFhEWQ=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1FaehU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 461, + "top": 255, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoYm/FFiAao=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1FbJvU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 653, + "top": 197, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoYm/FFjEvM=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1FbJvU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 657, + "top": 210, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoYm/FFkNpE=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1FbJvU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 646, + "top": 171, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoYm/FFlFYo=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1Fc4OM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 294, + "top": 368, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoYm/FFm70s=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1Fc4OM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 302, + "top": 379, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoYm/FFnDck=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1Fc4OM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 279, + "top": 345, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFoHoYm/FFoBcM=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1FbJvU=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": -16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFoHoYm/FFpJkc=", + "_parent": { + "$ref": "AAAAAAFoHoYm/FFeT7o=" + }, + "model": { + "$ref": "AAAAAAFoHoYm+1Fc4OM=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": -16, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFoHoAdvE459i8=" + }, + "tail": { + "$ref": "AAAAAAFoHoTUo1Eu3L4=" + }, + "lineStyle": 1, + "points": "671:179;265:372", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFoHoYm/FFflrA=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoYm/FFgAQY=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoYm/FFhEWQ=" + }, + "tailRoleNameLabel": { + "$ref": "AAAAAAFoHoYm/FFiAao=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFoHoYm/FFjEvM=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFoHoYm/FFkNpE=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFoHoYm/FFlFYo=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFoHoYm/FFm70s=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFoHoYm/FFnDck=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFoHoYm/FFoBcM=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFoHoYm/FFpJkc=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFoHogollJUdY4=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHogollJQBnc=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHogollJVvHI=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJQBnc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 326, + "top": 262, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHogollJWJtM=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJQBnc=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 337, + "top": 252, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHogollJXpr0=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJQBnc=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 305, + "top": 283, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHogollJYlSc=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJRCcQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 284, + "top": 218, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHogollJZCDI=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJRCcQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 295, + "top": 211, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHogollJaoGM=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJRCcQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 261, + "top": 234, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHogollJbRsw=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJS/fE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 369, + "top": 307, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHogollJUdY4=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHogollJc+eE=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJS/fE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 377, + "top": 297, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFoHogollJUdY4=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHogollJdVxk=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJS/fE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 352, + "top": 329, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFoHogollJUdY4=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFoHogollJe18I=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJRCcQ=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": -16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFoHogollJfiWg=", + "_parent": { + "$ref": "AAAAAAFoHogollJUdY4=" + }, + "model": { + "$ref": "AAAAAAFoHogollJS/fE=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": -16, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFoHoDiGE5qIWg=" + }, + "tail": { + "$ref": "AAAAAAFoHoM63VDYIxM=" + }, + "lineStyle": 1, + "points": "256:216;376:343", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFoHogollJVvHI=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFoHogollJWJtM=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHogollJXpr0=" + }, + "tailRoleNameLabel": { + "$ref": "AAAAAAFoHogollJYlSc=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFoHogollJZCDI=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFoHogollJaoGM=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFoHogollJbRsw=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFoHogollJc+eE=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFoHogollJdVxk=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFoHogollJe18I=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFoHogollJfiWg=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHoh7m1PcuYk=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoh7m1PatHw=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHoh7m1Pdrik=", + "_parent": { + "$ref": "AAAAAAFoHoh7m1PcuYk=" + }, + "model": { + "$ref": "AAAAAAFoHoh7m1PatHw=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHoh7pFPeUAc=", + "_parent": { + "$ref": "AAAAAAFoHoh7m1Pdrik=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": -16, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoh7pFPfQ3E=", + "_parent": { + "$ref": "AAAAAAFoHoh7m1Pdrik=" + }, + "font": "Arial;13;1", + "left": 813, + "top": 351, + "width": 134, + "height": 13, + "text": "UsageDateDao" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoh7pFPgugE=", + "_parent": { + "$ref": "AAAAAAFoHoh7m1Pdrik=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": -16, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHoh7pFPhx8s=", + "_parent": { + "$ref": "AAAAAAFoHoh7m1Pdrik=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -240, + "top": -16, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 808, + "top": 344, + "width": 144, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoh7pFPeUAc=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHoh7pFPfQ3E=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHoh7pFPgugE=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoh7pFPhx8s=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHoh7pFPi+Lw=", + "_parent": { + "$ref": "AAAAAAFoHoh7m1PcuYk=" + }, + "model": { + "$ref": "AAAAAAFoHoh7m1PatHw=" + }, + "font": "Arial;13;0", + "left": 808, + "top": 369, + "width": 144, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHoh7pFPjNEE=", + "_parent": { + "$ref": "AAAAAAFoHoh7m1PcuYk=" + }, + "model": { + "$ref": "AAAAAAFoHoh7m1PatHw=" + }, + "font": "Arial;13;0", + "left": 808, + "top": 379, + "width": 144, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHoh7pFPkw/E=", + "_parent": { + "$ref": "AAAAAAFoHoh7m1PcuYk=" + }, + "model": { + "$ref": "AAAAAAFoHoh7m1PatHw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": -8, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHoh7pFPliYM=", + "_parent": { + "$ref": "AAAAAAFoHoh7m1PcuYk=" + }, + "model": { + "$ref": "AAAAAAFoHoh7m1PatHw=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -120, + "top": -8, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 808, + "top": 344, + "width": 144, + "height": 128, + "nameCompartment": { + "$ref": "AAAAAAFoHoh7m1Pdrik=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHoh7pFPi+Lw=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHoh7pFPjNEE=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHoh7pFPkw/E=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHoh7pFPliYM=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFoHoj0HlSyqqI=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSuGHY=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoj0HlSz9sY=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSuGHY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 666, + "top": 260, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoj0HlS0njc=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSuGHY=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 674, + "top": 247, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoj0HlS1UiM=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSuGHY=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 651, + "top": 285, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoj0HlS2CgU=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSvy7o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 541, + "top": 188, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoj0H1S3Hbk=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSvy7o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 550, + "top": 177, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoj0H1S4w5U=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSvy7o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 524, + "top": 209, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoj0H1S5Qoc=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSwn/8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 792, + "top": 332, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoj0H1S660I=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSwn/8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 796, + "top": 320, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHoj0H1S7THk=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSwn/8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 782, + "top": 358, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFoHoj0H1S8LwA=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSvy7o=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": -16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFoHoj0H1S9dhw=", + "_parent": { + "$ref": "AAAAAAFoHoj0HlSyqqI=" + }, + "model": { + "$ref": "AAAAAAFoHoj0EVSwn/8=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": -16, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFoHoh7m1PcuYk=" + }, + "tail": { + "$ref": "AAAAAAFoHoSFCFEEbt0=" + }, + "lineStyle": 1, + "points": "512:194;807:365", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFoHoj0HlSz9sY=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFoHoj0HlS0njc=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHoj0HlS1UiM=" + }, + "tailRoleNameLabel": { + "$ref": "AAAAAAFoHoj0HlS2CgU=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFoHoj0H1S3Hbk=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFoHoj0H1S4w5U=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFoHoj0H1S5Qoc=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFoHoj0H1S660I=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFoHoj0H1S7THk=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFoHoj0H1S8LwA=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFoHoj0H1S9dhw=" + } + }, + { + "_type": "UMLAssociationView", + "_id": "AAAAAAFoHokAwVVP0NQ=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVLDSg=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHokAwVVQrSI=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVLDSg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 831, + "top": 262, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHokAwVVRwLA=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVLDSg=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 845, + "top": 256, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHokAwVVSi8Q=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVLDSg=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 804, + "top": 275, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHokAwVVT4Kk=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVM2dI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 811, + "top": 219, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHokAwVVU/HI=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVM2dI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 824, + "top": 215, + "height": 13, + "alpha": 0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHokAwVVVAKc=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVM2dI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 784, + "top": 226, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "edgePosition": 2 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHokAwVVWy7s=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVN9wI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 851, + "top": 307, + "height": 13, + "alpha": -0.5235987755982988, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHokAwVVXBDU=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVN9wI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 862, + "top": 299, + "height": 13, + "alpha": -0.7853981633974483, + "distance": 40, + "hostEdge": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + } + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHokAwVVYfZo=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVN9wI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 828, + "top": 322, + "height": 13, + "alpha": 0.5235987755982988, + "distance": 25, + "hostEdge": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + } + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFoHokAwVVZ+5Y=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVM2dI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": -16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLQualifierCompartmentView", + "_id": "AAAAAAFoHokAwVVani4=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVP0NQ=" + }, + "model": { + "$ref": "AAAAAAFoHokAwVVN9wI=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": -16, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFoHoh7m1PcuYk=" + }, + "tail": { + "$ref": "AAAAAAFoHoTUo1Eu3L4=" + }, + "lineStyle": 1, + "points": "787:208;849:343", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFoHokAwVVQrSI=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFoHokAwVVRwLA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHokAwVVSi8Q=" + }, + "tailRoleNameLabel": { + "$ref": "AAAAAAFoHokAwVVT4Kk=" + }, + "tailPropertyLabel": { + "$ref": "AAAAAAFoHokAwVVU/HI=" + }, + "tailMultiplicityLabel": { + "$ref": "AAAAAAFoHokAwVVVAKc=" + }, + "headRoleNameLabel": { + "$ref": "AAAAAAFoHokAwVVWy7s=" + }, + "headPropertyLabel": { + "$ref": "AAAAAAFoHokAwVVXBDU=" + }, + "headMultiplicityLabel": { + "$ref": "AAAAAAFoHokAwVVYfZo=" + }, + "tailQualifiersCompartment": { + "$ref": "AAAAAAFoHokAwVVZ+5Y=" + }, + "headQualifiersCompartment": { + "$ref": "AAAAAAFoHokAwVVani4=" + } + }, + { + "_type": "UMLClassView", + "_id": "AAAAAAFoHomfVljTbpU=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHomfVljRtq0=" + }, + "subViews": [ + { + "_type": "UMLNameCompartmentView", + "_id": "AAAAAAFoHomfVljUa8A=", + "_parent": { + "$ref": "AAAAAAFoHomfVljTbpU=" + }, + "model": { + "$ref": "AAAAAAFoHomfVljRtq0=" + }, + "subViews": [ + { + "_type": "LabelView", + "_id": "AAAAAAFoHomfV1jV9LM=", + "_parent": { + "$ref": "AAAAAAFoHomfVljUa8A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -256, + "top": -32, + "height": 13 + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHomfV1jWJg0=", + "_parent": { + "$ref": "AAAAAAFoHomfVljUa8A=" + }, + "font": "Arial;13;1", + "left": 805, + "top": 543, + "width": 134, + "height": 13, + "text": "Usageate" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHomfV1jXb2M=", + "_parent": { + "$ref": "AAAAAAFoHomfVljUa8A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -256, + "top": -32, + "width": 80.9072265625, + "height": 13, + "text": "(from Model1)" + }, + { + "_type": "LabelView", + "_id": "AAAAAAFoHomfV1jYLfg=", + "_parent": { + "$ref": "AAAAAAFoHomfVljUa8A=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -256, + "top": -32, + "height": 13, + "horizontalAlignment": 1 + } + ], + "font": "Arial;13;0", + "left": 800, + "top": 536, + "width": 144, + "height": 25, + "stereotypeLabel": { + "$ref": "AAAAAAFoHomfV1jV9LM=" + }, + "nameLabel": { + "$ref": "AAAAAAFoHomfV1jWJg0=" + }, + "namespaceLabel": { + "$ref": "AAAAAAFoHomfV1jXb2M=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHomfV1jYLfg=" + } + }, + { + "_type": "UMLAttributeCompartmentView", + "_id": "AAAAAAFoHomfV1jZWQ4=", + "_parent": { + "$ref": "AAAAAAFoHomfVljTbpU=" + }, + "model": { + "$ref": "AAAAAAFoHomfVljRtq0=" + }, + "font": "Arial;13;0", + "left": 800, + "top": 561, + "width": 144, + "height": 10 + }, + { + "_type": "UMLOperationCompartmentView", + "_id": "AAAAAAFoHomfV1jazEM=", + "_parent": { + "$ref": "AAAAAAFoHomfVljTbpU=" + }, + "model": { + "$ref": "AAAAAAFoHomfVljRtq0=" + }, + "font": "Arial;13;0", + "left": 800, + "top": 571, + "width": 144, + "height": 10 + }, + { + "_type": "UMLReceptionCompartmentView", + "_id": "AAAAAAFoHomfV1jbXUo=", + "_parent": { + "$ref": "AAAAAAFoHomfVljTbpU=" + }, + "model": { + "$ref": "AAAAAAFoHomfVljRtq0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": -16, + "width": 10, + "height": 10 + }, + { + "_type": "UMLTemplateParameterCompartmentView", + "_id": "AAAAAAFoHomfV1jcc48=", + "_parent": { + "$ref": "AAAAAAFoHomfVljTbpU=" + }, + "model": { + "$ref": "AAAAAAFoHomfVljRtq0=" + }, + "visible": false, + "font": "Arial;13;0", + "left": -128, + "top": -16, + "width": 10, + "height": 10 + } + ], + "font": "Arial;13;0", + "containerChangeable": true, + "left": 800, + "top": 536, + "width": 144, + "height": 128, + "nameCompartment": { + "$ref": "AAAAAAFoHomfVljUa8A=" + }, + "attributeCompartment": { + "$ref": "AAAAAAFoHomfV1jZWQ4=" + }, + "operationCompartment": { + "$ref": "AAAAAAFoHomfV1jazEM=" + }, + "receptionCompartment": { + "$ref": "AAAAAAFoHomfV1jbXUo=" + }, + "templateParameterCompartment": { + "$ref": "AAAAAAFoHomfV1jcc48=" + } + }, + { + "_type": "UMLDependencyView", + "_id": "AAAAAAFoHonQP1lmDVg=", + "_parent": { + "$ref": "AAAAAAFoHnp+nk2th+s=" + }, + "model": { + "$ref": "AAAAAAFoHonQP1lkl4c=" + }, + "subViews": [ + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHonQP1lnn6s=", + "_parent": { + "$ref": "AAAAAAFoHonQP1lmDVg=" + }, + "model": { + "$ref": "AAAAAAFoHonQP1lkl4c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 889, + "top": 497, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHonQP1lmDVg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHonQP1lorzA=", + "_parent": { + "$ref": "AAAAAAFoHonQP1lmDVg=" + }, + "model": { + "$ref": "AAAAAAFoHonQP1lkl4c=" + }, + "visible": null, + "font": "Arial;13;0", + "left": 904, + "top": 497, + "height": 13, + "alpha": 1.5707963267948966, + "distance": 30, + "hostEdge": { + "$ref": "AAAAAAFoHonQP1lmDVg=" + }, + "edgePosition": 1 + }, + { + "_type": "EdgeLabelView", + "_id": "AAAAAAFoHonQP1lp/0Q=", + "_parent": { + "$ref": "AAAAAAFoHonQP1lmDVg=" + }, + "model": { + "$ref": "AAAAAAFoHonQP1lkl4c=" + }, + "visible": false, + "font": "Arial;13;0", + "left": 860, + "top": 496, + "height": 13, + "alpha": -1.5707963267948966, + "distance": 15, + "hostEdge": { + "$ref": "AAAAAAFoHonQP1lmDVg=" + }, + "edgePosition": 1 + } + ], + "font": "Arial;13;0", + "head": { + "$ref": "AAAAAAFoHomfVljTbpU=" + }, + "tail": { + "$ref": "AAAAAAFoHoh7m1PcuYk=" + }, + "lineStyle": 1, + "points": "876:472;874:535", + "showVisibility": true, + "nameLabel": { + "$ref": "AAAAAAFoHonQP1lnn6s=" + }, + "stereotypeLabel": { + "$ref": "AAAAAAFoHonQP1lorzA=" + }, + "propertyLabel": { + "$ref": "AAAAAAFoHonQP1lp/0Q=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHnqMXk2x9Ho=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "Product" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHn4fNE3eaZI=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "Audit" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHn6bdU4L9r0=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "Transaction" + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHoAdvE43XFA=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "TransactionDao", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFoHoKuJ1CIwqI=", + "_parent": { + "$ref": "AAAAAAFoHoAdvE43XFA=" + }, + "source": { + "$ref": "AAAAAAFoHoAdvE43XFA=" + }, + "target": { + "$ref": "AAAAAAFoHn6bdU4L9r0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHoDiGE5oqzA=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "ProductDao", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFoHoKz7FCZmGs=", + "_parent": { + "$ref": "AAAAAAFoHoDiGE5oqzA=" + }, + "source": { + "$ref": "AAAAAAFoHoDiGE5oqzA=" + }, + "target": { + "$ref": "AAAAAAFoHnqMXk2x9Ho=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHoFdV06Y4e4=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "AuditDao", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFoHoK4MVCqIdc=", + "_parent": { + "$ref": "AAAAAAFoHoFdV06Y4e4=" + }, + "source": { + "$ref": "AAAAAAFoHoFdV06Y4e4=" + }, + "target": { + "$ref": "AAAAAAFoHn4fNE3eaZI=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHoM63VDWKwE=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "SumCirculator", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAFoHogollJQBnc=", + "_parent": { + "$ref": "AAAAAAFoHoM63VDWKwE=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFoHogollJRCcQ=", + "_parent": { + "$ref": "AAAAAAFoHogollJQBnc=" + }, + "reference": { + "$ref": "AAAAAAFoHoM63VDWKwE=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFoHogollJS/fE=", + "_parent": { + "$ref": "AAAAAAFoHogollJQBnc=" + }, + "reference": { + "$ref": "AAAAAAFoHoDiGE5oqzA=" + } + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHoSFCFECdgg=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "NextCirculator", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAFoHoj0EVSuGHY=", + "_parent": { + "$ref": "AAAAAAFoHoSFCFECdgg=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFoHoj0EVSvy7o=", + "_parent": { + "$ref": "AAAAAAFoHoj0EVSuGHY=" + }, + "reference": { + "$ref": "AAAAAAFoHoSFCFECdgg=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFoHoj0EVSwn/8=", + "_parent": { + "$ref": "AAAAAAFoHoj0EVSuGHY=" + }, + "reference": { + "$ref": "AAAAAAFoHoh7m1PatHw=" + } + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHoTUo1Es4Zk=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "DeductCirculator", + "ownedElements": [ + { + "_type": "UMLAssociation", + "_id": "AAAAAAFoHoYm+1FaehU=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1Es4Zk=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFoHoYm+1FbJvU=", + "_parent": { + "$ref": "AAAAAAFoHoYm+1FaehU=" + }, + "reference": { + "$ref": "AAAAAAFoHoTUo1Es4Zk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFoHoYm+1Fc4OM=", + "_parent": { + "$ref": "AAAAAAFoHoYm+1FaehU=" + }, + "reference": { + "$ref": "AAAAAAFoHoAdvE43XFA=" + } + } + }, + { + "_type": "UMLAssociation", + "_id": "AAAAAAFoHokAwVVLDSg=", + "_parent": { + "$ref": "AAAAAAFoHoTUo1Es4Zk=" + }, + "end1": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFoHokAwVVM2dI=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVLDSg=" + }, + "reference": { + "$ref": "AAAAAAFoHoTUo1Es4Zk=" + } + }, + "end2": { + "_type": "UMLAssociationEnd", + "_id": "AAAAAAFoHokAwVVN9wI=", + "_parent": { + "$ref": "AAAAAAFoHokAwVVLDSg=" + }, + "reference": { + "$ref": "AAAAAAFoHoh7m1PatHw=" + } + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHoh7m1PatHw=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "UsageDateDao", + "ownedElements": [ + { + "_type": "UMLDependency", + "_id": "AAAAAAFoHonQP1lkl4c=", + "_parent": { + "$ref": "AAAAAAFoHoh7m1PatHw=" + }, + "source": { + "$ref": "AAAAAAFoHoh7m1PatHw=" + }, + "target": { + "$ref": "AAAAAAFoHomfVljRtq0=" + } + } + ] + }, + { + "_type": "UMLClass", + "_id": "AAAAAAFoHomfVljRtq0=", + "_parent": { + "$ref": "AAAAAAFoHnp+nU2sNqg=" + }, + "name": "Usageate" + } + ] + } + ] +} \ No newline at end of file diff --git a/demo.html b/demo.html new file mode 100644 index 0000000..d7094a2 --- /dev/null +++ b/demo.html @@ -0,0 +1,443 @@ + + + + + + + + + 账号登录 + + + + + +
+
+

登录失败

+
+
+
+
+ Log + Sign + in +
+ +
+

+

+

+ + +
+ Forget your password? +
+
+ +
+ + + + + + + + + + + + + + + + + + +

CLOUD

+
+
+
+ + + + diff --git a/demo/Dao/auditMapper.java b/demo/Dao/auditMapper.java new file mode 100644 index 0000000..fa4f8eb --- /dev/null +++ b/demo/Dao/auditMapper.java @@ -0,0 +1,31 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Audit; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface auditMapper { + @Select("select * from audit where checkNum = #{checkNum}") + public Audit selectAudioByCheckNum(long checkNum); + + @Select("select * from audit") + public List select(); + + @Insert("insert into audit(checkNum, userNum, productNum, " + + "bankAccount, checkState, contractNum, " + + "isSignContract, year, amount, applyTime)" + + " values (#{checkNum},#{userNum},#{productNum},#{bankAccount},#{checkState}," + + "#{contractNum},#{isSignContract},#{year},#{amount},#{applyTime})") + public void addAudit(Audit audits); + + @Update("update audit set checkNum=#{checkNum},userNum=#{userNum}" + + ",productNum=#{productNum},checkState=#{checkState},contractNum=#{contractNum}," + + "isSignContract=#{isSignContract},year=#{year},amount=#{amount}," + + "applyTime=#{applyTime}where checkNum=#{checkNum}") + public void updateAudit(Audit audits); + + @Delete("delete from audit where checkNum=#{checkNum}") + public void deleteAudit(long checkNum); +} diff --git a/demo/Dao/bankMapper.java b/demo/Dao/bankMapper.java new file mode 100644 index 0000000..07efb76 --- /dev/null +++ b/demo/Dao/bankMapper.java @@ -0,0 +1,36 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Bank; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.List; + +@Mapper +public interface bankMapper { + + @Select("select * from bank where bankNum = #{bankNum}") + public Bank selectBankByBankNum(int bankNum); + + @Select("select * from bank where bankName = #{bankName}") + public Bank selectBankByBankName(String bankName); + + @Select("select * from bank") + public List select(); + + @Insert("insert into bank(bankNum, bankName, contact, " + + " values (#{bankNum},#{bankName},#{contact},)") + public void addBank(Bank banks); + + @Update("update bank set bankNum=#{bankNum},bankName=#{bankName}" + + ",contact=#{contact} where bankNum=#{bankNum}") + public void updateBank(Bank banks); + +// @Delete("delete from bank where bankNum=#{bankNum}") +// public void deleteBank(String bankNum); +// +// @Delete("delete from bank where bankName=#{bankName}") +// public void deleteBanks(String bankName); +} diff --git a/demo/Dao/managerMapper.java b/demo/Dao/managerMapper.java new file mode 100644 index 0000000..aa92471 --- /dev/null +++ b/demo/Dao/managerMapper.java @@ -0,0 +1,26 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Manager; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +@Mapper +public interface managerMapper { + @Select("select * from manager where managerNum = #{managerName}") + public Manager selectManagerByManagerName(String managerName); + + @Insert("insert into manager(managerNum, managerName, managerPwd, " + + "managerRight, telephoneNum) values (#{managerNum},#{managerName}," + + "#{managerPwd},#{managerRight},#{telephoneNum})") + public void addManager(Manager managers); + + @Update("update manager set managerNum=#{managerNum},managerName=#{managerName}" + + ",managerPwd=#{managerPwd},managerRight=#{managerRight},telephoneNum=#{telephoneNum},") + public void updateManager(Manager managers); + +// @Delete("delete from manager where managerNum=#{managerNum}") +// public void deleteManager(String managerNum); + +} diff --git a/demo/Dao/paymentMapper.java b/demo/Dao/paymentMapper.java new file mode 100644 index 0000000..205c52c --- /dev/null +++ b/demo/Dao/paymentMapper.java @@ -0,0 +1,16 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Repayment; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +@Mapper +public interface paymentMapper { + @Select("select * from repayment where checkNum =#{checkNum}") + public Repayment selectPepaymentBycheckNum(long checkNum); + + @Update("update repayment set repAmount = {#repAmount} ,repSum = {#repSum} where checkNum = #{checkNum}") + public void updateRepayment(Repayment repayment); + +} diff --git a/demo/Dao/productHistroyMapper.java b/demo/Dao/productHistroyMapper.java new file mode 100644 index 0000000..18f6b7c --- /dev/null +++ b/demo/Dao/productHistroyMapper.java @@ -0,0 +1,33 @@ +package com.example.demo.Dao; + + +import com.example.demo.bean.ProductHistroy; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface productHistroyMapper { + @Select("select * from producthistroy where productNum = #{productNum}") + public ProductHistroy selectAudioByCheckNum(long productNum); + + @Select("select * from producthistroy") + public List select(); + + @Insert("insert into productHistroy(productNum, productName, category, " + + "intrate, bankNum, productDescription, uploadTime, deleteTime, alterTime)" + + " values (#{productNum},#{productName},#{category},#{intrate},#{bankNum}," + + "#{productDescription},#{uploadTime},#{deleteTime},#{alterTime})") + public void addProductHistroy(ProductHistroy productHistroys); + +// @Update("update producthistroy set productNum=#{productNum},productName=#{productName}" + +// ",category=#{category},intrate=#{intrate},bankNum=#{bankNum}," + +// "productDescription=#{productDescription},uploadTime=#{uploadTime},deleteTime=#{deleteTime}," + +// "alterTime=#{alterTime}where productNum=#{productNum}") +// public void updateProductHistroy(ProductHistroy productHistroys); + +// @Delete("delete from producthistroy where productNum=#{productNum}") +// public void deleteProductHistroy(int productNum); +} diff --git a/demo/Dao/productMapper.java b/demo/Dao/productMapper.java new file mode 100644 index 0000000..b0708e3 --- /dev/null +++ b/demo/Dao/productMapper.java @@ -0,0 +1,33 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Product; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface productMapper { + @Select("select * from product where productNum = #{productNum}") + public Product selectProductByProductNum(long productNum); + + @Select("select * from product where productName = #{productName}") + public Product selectProductByProductName(long productName); + + @Select("select * from product") + public List select(); + + @Insert("insert into product(productNum, productName, category, intrate, " + + "bankNum, productDescription, pictureAddress)" + + " values (#{productNum},#{productName},#{category},#{intrate},#{bankNum}," + + "#{productDescription},#{pictureAddress})") + public void addProduct(Product products); + + @Update("update product set productNum=#{productNum},productName=#{productName}" + + ",category=#{category},intrate=#{intrate},bankNum=#{bankNum}," + + "productDescription=#{productDescription},pictureAddress=#{pictureAddress}") + public void updateProduct(Product products); + + + @Delete("delete from product where productNum=#{productNum}") + public void deleteProduct(int productNum); +} diff --git a/demo/Dao/transMapper.java b/demo/Dao/transMapper.java new file mode 100644 index 0000000..7c414ca --- /dev/null +++ b/demo/Dao/transMapper.java @@ -0,0 +1,30 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Transaction; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface transMapper { + @Select("select * from transaction where transactionNum = #{transactionNum}") + public Transaction selectAudioByCheckNum(long transactionNum); + + @Select("select * from transaction") + public List select(); + + @Insert("insert into transaction(transactionNum, payer, payee," + + " transactionTime, transactionAmount, note,checkNum)" + + " values (#{transactionNum},#{payer},#{payee},#{transactionTime},#{transactionAmount}," + + "#{note},#{checkNum})") + public void addTransaction(Transaction transactions); + + @Update("update audit set transactionNum=#{transactionNum},payer=#{payer}" + + ",payee=#{payee},transactionTime=#{transactionTime},transactionAmount=#{transactionAmount}," + + "note=#{note}") + public void updateTransaction(Transaction transactions); + + @Delete("delete from audit where transactionNum=#{transactionNum}") + public void deleteTransaction(long transactionNum); + +} diff --git a/demo/Dao/usageDateMapper.java b/demo/Dao/usageDateMapper.java new file mode 100644 index 0000000..ae239f8 --- /dev/null +++ b/demo/Dao/usageDateMapper.java @@ -0,0 +1,31 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.UsageDate; +import org.apache.ibatis.annotations.*; + +import java.util.List; + + +@Mapper +public interface usageDateMapper { + @Select("select * from usagedate where transactionNum = #{transactionNum}") + public UsageDate selectUsageDateByCheckNum(long checkNum); + + @Select("select * from usagedate") + public List select(); + + @Insert("insert into usagedate(checkNum, productNum, userNum," + + " bankAccount, bankNum, year, amount, startTime)" + + " values (#{checkNum},#{productNum},#{userNum},#{bankAccount},#{bankNum}," + + "#{year},#{amount},#{startTime})") + public void addUsageDate(UsageDate usageDate); + + @Update("update usagedate set checkNum=#{checkNum},productNum=#{productNum}" + + ",userNum=#{userNum},bankAccount=#{bankAccount},bankNum=#{bankNum}," + + "year=#{year},amount=#{amount},startTime=#{startTime}") + public void updateUsageDate(UsageDate usageDate); + + @Delete("delete from usagedate where checkNum=#{checkNum}") + public void deleteUsageDate(long checkNum); + +} diff --git a/demo/Dao/userBankIdentify.java b/demo/Dao/userBankIdentify.java new file mode 100644 index 0000000..fabaf77 --- /dev/null +++ b/demo/Dao/userBankIdentify.java @@ -0,0 +1,26 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.UserBankIdentify; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface userBankIdentify { + @Select("select * from userbankidentify where userName = #{userName}") + public UserBankIdentify selectUsageDateByCheckNum(String userName); + + @Select("select * from userBankIdentify") + public List select(); + + @Insert("insert into usagedate(userName, bankAccount, bankAccountIdentify)" + + " values (#{userName},#{bankAccount},#{bankAccountIdentify})") + public void addUserBankIdentify(UserBankIdentify userBankIdentifys); + + @Update("update usagedate set userName=#{userName},bankAccount=#{bankAccount}" + + ",bankAccountIdentify=#{bankAccountIdentify}") + public void updateUserBankIdentify(UserBankIdentify userBankIdentifys); + + @Delete("delete from usagedate where userName=#{userName}") + public void deleteUserBankIdentify(String userName); +} diff --git a/demo/Dao/userMapper.java b/demo/Dao/userMapper.java new file mode 100644 index 0000000..1b96851 --- /dev/null +++ b/demo/Dao/userMapper.java @@ -0,0 +1,30 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.User; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface userMapper { + @Select("select * from user where userNum = #{userNum}") + public User selectUserByuserNum(long userNum); + + @Select("select * from user") + public List select(); + + @Insert("insert into user(userNum, userName, userPwd, userRight," + + " tureName, idNum, telephoneNum, address, isIdentify, registerTime)" + + " values (#{userNum},#{userName},#{userPwd},#{userRight},#{tureName}," + + "#{idNum},#{telephoneNum},#{address},#{isIdentify},#{registerTime})") + public void addUser(User users); + + @Update("update user set userNum=#{userNum},userName=#{userName}" + + ",userPwd=#{userPwd},userRight=#{userRight},tureName=#{tureName}," + + "idNum=#{idNum},telephoneNum=#{telephoneNum},address=#{address}," + + "isIdentify=#{isIdentify},registerTime=#{registerTime}where userNum=#{userNum}") + public void updateUser(User users); + + @Delete("delete from user where userNum=#{userNum}") + public void deleteUser(long userNum); +} diff --git a/demo/DemoApplication.java b/demo/DemoApplication.java new file mode 100644 index 0000000..99fe3b0 --- /dev/null +++ b/demo/DemoApplication.java @@ -0,0 +1,15 @@ +package com.example.demo; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +//@MapperScan("com.example.demo.Dao") +public class DemoApplication { + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } + +} + diff --git a/demo/bean/Audit.java b/demo/bean/Audit.java new file mode 100644 index 0000000..7569c10 --- /dev/null +++ b/demo/bean/Audit.java @@ -0,0 +1,32 @@ +package com.example.demo.bean; + + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Audit { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long checkNum; + private long userNum; + private double amount; + private String applyTime; + private String bankAccount; + private long checkState; + private long contractNum; + private short isSignContract; + private long productNum; + private int year; + private int equation; + + + public Audit(){}; +} diff --git a/demo/bean/Bank.java b/demo/bean/Bank.java new file mode 100644 index 0000000..be9f33d --- /dev/null +++ b/demo/bean/Bank.java @@ -0,0 +1,21 @@ +package com.example.demo.bean; + + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Bank { + @Id + private int bankNum; + private String bankName; + private String contact;//联系方式 + + + public Bank(){}; +} diff --git a/demo/bean/Manager.java b/demo/bean/Manager.java new file mode 100644 index 0000000..67eb681 --- /dev/null +++ b/demo/bean/Manager.java @@ -0,0 +1,33 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Manager { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long managerNum; + private String managerName; + private String managerPwd; + private String managerRight; + private String telephoneNum; + + + public Manager(){}; + + public long getManagerNum() { + return managerNum; + } + + public void setManagerNum(int managerNum) { + this.managerNum = managerNum; + } +} diff --git a/demo/bean/Product.java b/demo/bean/Product.java new file mode 100644 index 0000000..7f6722b --- /dev/null +++ b/demo/bean/Product.java @@ -0,0 +1,83 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Product { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long productNum; + private String productName; + private String category; + private float intrate; + private int bankNum; + private String productDescription; + private String pictureAddress; + + public Product(){}; + + public String getProductName() { + return productName; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getPictureAddress() { + return pictureAddress; + } + + public void setPictureAddress(String pictureAddress) { + this.pictureAddress = pictureAddress; + } + + public String getProductDescription() { + return productDescription; + } + + public void setProductDescription(String productDescription) { + this.productDescription = productDescription; + } + + public int getBankNum() { + return bankNum; + } + + public void setBankNum(int bankNum) { + this.bankNum = bankNum; + } + + public float getIntrate() { + return intrate; + } + + public void setIntrate(float intrate) { + this.intrate = intrate; + } + + public long getProductNum() { + return productNum; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public void setProductNum(long productNum) { + this.productNum = productNum; + } +} + diff --git a/demo/bean/ProductHistroy.java b/demo/bean/ProductHistroy.java new file mode 100644 index 0000000..3b0e8c4 --- /dev/null +++ b/demo/bean/ProductHistroy.java @@ -0,0 +1,111 @@ +package com.example.demo.bean; + + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Getter +@Setter +public class ProductHistroy { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long productNum; + private int bankNum; + private long managerNum; + private String productName; + private String category; + private float intrate; + private String productDescription; + private String upLoadTime; + private String deleteTime; + private String alterTime; + + public ProductHistroy(){}; + + public long getManagerNum() { + return managerNum; + } + + public void setManagerNum(long managerNum) { + this.managerNum = managerNum; + } + + public long getProductNum() { + return productNum; + } + + public void setProductNum(long productNum) { + this.productNum = productNum; + } + + public String getAlterTime() { + return alterTime; + } + + public void setAlterTime(String alterTime) { + this.alterTime = alterTime; + } + + + public String getDeleteTime() { + return deleteTime; + } + + public void setDeleteTime(String deleteTime) { + this.deleteTime = deleteTime; + } + + public String getUpLoadTime() { + return upLoadTime; + } + + public void setUpLoadTime(String upLoadTime) { + this.upLoadTime = upLoadTime; + } + + public String getProductDescription() { + return productDescription; + } + + public void setProductDescription(String productDescription) { + this.productDescription = productDescription; + } + + public float getIntrate() { + return intrate; + } + + public void setIntrate(float intrate) { + this.intrate = intrate; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public int getBankNum() { + return bankNum; + } + + public void setBankNum(int bankNum) { + this.bankNum = bankNum; + } +} diff --git a/demo/bean/Repayment.java b/demo/bean/Repayment.java new file mode 100644 index 0000000..5744436 --- /dev/null +++ b/demo/bean/Repayment.java @@ -0,0 +1,21 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Repayment { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long checkNum; + private double repAmount; + private double repSum; + +} diff --git a/demo/bean/Transaction.java b/demo/bean/Transaction.java new file mode 100644 index 0000000..6126220 --- /dev/null +++ b/demo/bean/Transaction.java @@ -0,0 +1,33 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Transaction { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long transactionNum; + private long payer; + private long payee; + private float transactionTime; + private float transactionAmount; + private String note; + private long checkNum; + + public Transaction(){}; + public Transaction(long checkNum,long payer,long payee,double transationAmount){ + this.checkNum=checkNum; + this.payer = payer; + this.payee = payee; + this.transactionAmount=transactionNum; + + } +} diff --git a/demo/bean/UsageDate.java b/demo/bean/UsageDate.java new file mode 100644 index 0000000..0a10f6b --- /dev/null +++ b/demo/bean/UsageDate.java @@ -0,0 +1,29 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class UsageDate { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long checkNum; + private long productNum; + private long userNum; + private String bankAccount; + private int bankNum; + private int year; + private float amount; + private String startTime; + + public UsageDate(){}; + private int equation; + +} diff --git a/demo/bean/User.java b/demo/bean/User.java new file mode 100644 index 0000000..4b22407 --- /dev/null +++ b/demo/bean/User.java @@ -0,0 +1,30 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class User { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long userNum; + private String userName; + private String userPwd; + private String userRight; + private String trueName; + private String idNum; + private String telephoneNum; + private String address; + private String isIdentify; + private String registerTime; + + + public User(){}; +} diff --git a/demo/bean/UserBankIdentify.java b/demo/bean/UserBankIdentify.java new file mode 100644 index 0000000..d0d41cb --- /dev/null +++ b/demo/bean/UserBankIdentify.java @@ -0,0 +1,19 @@ +package com.example.demo.bean; + +import lombok.Getter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Entity +public class UserBankIdentify { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private String userName; + private String bankAccount; + private short bankAccountIdentify; + +} diff --git a/demo/circulator/controller/NextCirController.java b/demo/circulator/controller/NextCirController.java new file mode 100644 index 0000000..71d0b63 --- /dev/null +++ b/demo/circulator/controller/NextCirController.java @@ -0,0 +1,45 @@ +package com.example.demo.circulator.controller; + + +import com.example.demo.circulator.service.CirService; +import com.example.demo.circulator.service.EPAIR_CirService; +import com.example.demo.circulator.service.EPR_CirService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Controller +public class NextCirController { + //@Autowired + private CirService cirService; + + @GetMapping("/cir/next") + public String nextCirculator(HttpServletRequest request,HttpServletResponse response){ + long checkNum = (Long)request.getAttribute("checkNum"); + int equation = (Integer)request.getAttribute("equation"); + switch (equation){ + case 1: + cirService = new EPAIR_CirService(); + break; + case 2: + cirService = new EPR_CirService(); + break; + default: + System.out.println("not exit!!"); + break; + } + double next_principal_and_intrate = cirService.NextCirculator(checkNum); + if(next_principal_and_intrate>=0){ + request.setAttribute("next",next_principal_and_intrate); + }else if(next_principal_and_intrate==-1){ + return "/计算失败"; + }else if(next_principal_and_intrate==-2){ + return "/未贷款此类业务"; + }else if(next_principal_and_intrate==-3){ + return "/无此类业务"; + } + return "/next"; + } +} diff --git a/demo/circulator/controller/PayCirController.java b/demo/circulator/controller/PayCirController.java new file mode 100644 index 0000000..b2c2487 --- /dev/null +++ b/demo/circulator/controller/PayCirController.java @@ -0,0 +1,24 @@ +package com.example.demo.circulator.controller; + +import com.example.demo.circulator.service.PayCirService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; + +@Controller +public class PayCirController { + //@Autowired + PayCirService payCirService; + + @PostMapping("/pay") + public String payAmountCir(long checkNum,double pay){ + int result = payCirService.payAmountCirculator(checkNum,pay); + if(result==1){ + return "/还款成功"; + }else if(result==-2){ + return"/未贷款该业务"; + }else + + return "还款失败"; + } +} diff --git a/demo/circulator/controller/SumCirController.java b/demo/circulator/controller/SumCirController.java new file mode 100644 index 0000000..52f2802 --- /dev/null +++ b/demo/circulator/controller/SumCirController.java @@ -0,0 +1,47 @@ +package com.example.demo.circulator.controller; + +import com.example.demo.circulator.service.CirService; +import com.example.demo.circulator.service.EPAIR_CirService; +import com.example.demo.circulator.service.EPR_CirService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Controller +public class SumCirController { + //@Autowired + private CirService cirService; + + @GetMapping("/cir/sum") + public String SumCirculator(HttpServletRequest request, HttpServletResponse response){ + long productNum = Long.parseLong(request.getParameter("productNum")); + double amount = Double.parseDouble(request.getParameter("amount")); + int year = Integer.parseInt(request.getParameter("year")); + int equation = Integer.parseInt(request.getParameter("equation")); + + switch (equation){ + case 1: + cirService = new EPAIR_CirService(); + break; + case 2: + cirService = new EPR_CirService(); + break; + default: + System.out.println("not exit!!"); + break; + } + double sum_principal_and_intrate = cirService.SumCirculator(productNum,amount,year); + if(sum_principal_and_intrate>=0){ + request.setAttribute("sum",sum_principal_and_intrate); + }else if(sum_principal_and_intrate==-3){ + return "/无此类产品"; + }else{ + return "/计算失败"; + } + + + return "/circulator"; + } +} diff --git a/demo/circulator/service/CirService.java b/demo/circulator/service/CirService.java new file mode 100644 index 0000000..09b230d --- /dev/null +++ b/demo/circulator/service/CirService.java @@ -0,0 +1,17 @@ +package com.example.demo.circulator.service; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.PostConstruct; + +@Service +public abstract class CirService { + @PostConstruct + public void init(){} + + @Transactional //数据库与事物的一致性 + public double NextCirculator(long checkNum){return 0;} + public double SumCirculator(long productNum,double amount,int year){return 0;} + +} diff --git a/demo/circulator/service/EPAIR_CirService.java b/demo/circulator/service/EPAIR_CirService.java new file mode 100644 index 0000000..43635d2 --- /dev/null +++ b/demo/circulator/service/EPAIR_CirService.java @@ -0,0 +1,63 @@ +package com.example.demo.circulator.service; + +import com.example.demo.Dao.productMapper; +import com.example.demo.Dao.usageDateMapper; +import com.example.demo.bean.Product; +import com.example.demo.bean.UsageDate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + + +@Service +public class EPAIR_CirService extends CirService{ + @Autowired + private usageDateMapper usageDateMapper; + @Autowired + private productMapper productMapper; + + @Transactional //数据库与事物的一致性 + public double NextCirculator(long checkNum){ + try{ + UsageDate usageDate = usageDateMapper.selectUsageDateByCheckNum(checkNum); + if(usageDate==null)return -2; + int year = usageDate.getYear(); + double amount = usageDate.getAmount(); + long productNum = usageDate.getProductNum(); + + Product product = productMapper.selectProductByProductNum(productNum); + if(product==null)return -3; + float intrate = product.getIntrate(); + double rep_amount = 0; + + //double not_rep_amount = amount - rep_amount; + intrate /= 12; + int month = year*12; + double rep = Math.pow((1+intrate),month)/(Math.pow((1+intrate),month)-1); + double next_principal_and_interest = rep * intrate * amount; + return next_principal_and_interest; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + + } + return -1; + } + + public double SumCirculator(long productNum,double amount,int year){ + try{ + Product product = productMapper.selectProductByProductNum(productNum); + if(product==null)return -3; + float intrate = product.getIntrate(); + double rep = Math.pow((1+intrate),year)/(Math.pow((1+intrate),year)-1); + double principal_and_interest = rep * intrate * amount * year; + return principal_and_interest; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + } + return -1; + } +} diff --git a/demo/circulator/service/EPR_CirService.java b/demo/circulator/service/EPR_CirService.java new file mode 100644 index 0000000..40580a7 --- /dev/null +++ b/demo/circulator/service/EPR_CirService.java @@ -0,0 +1,69 @@ +package com.example.demo.circulator.service; + +import com.example.demo.Dao.paymentMapper; +import com.example.demo.Dao.productMapper; +import com.example.demo.Dao.usageDateMapper; +import com.example.demo.bean.Product; +import com.example.demo.bean.Repayment; +import com.example.demo.bean.UsageDate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class EPR_CirService extends CirService{ + @Autowired + private usageDateMapper usageDateMapper; + @Autowired + private paymentMapper paymentMapper; + @Autowired + private productMapper productMapper; + + @Transactional //数据库与事物的一致性 + public double NextCirculator(long checkNum){ + try{ + UsageDate usageDate = usageDateMapper.selectUsageDateByCheckNum(checkNum); + Repayment repayment = paymentMapper.selectPepaymentBycheckNum(checkNum); + if(usageDate!=null){return -2;} + int year = usageDate.getYear(); + double amount = usageDate.getAmount(); + long productNum = usageDate.getProductNum(); + + Product product = productMapper.selectProductByProductNum(productNum); + if(product==null)return -3; + float intrate = product.getIntrate(); + double rep_amount = 0; + if(repayment!=null) + repayment.getRepAmount(); + intrate /= 12; + int month = year*12; + double next_principal_and_interest = amount/month + (amount - rep_amount) * intrate; + return next_principal_and_interest; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + + } + return -1; + } + + public double SumCirculator(long productNum,double amount,int year){ + try{ + Product product = productMapper.selectProductByProductNum(productNum); + if(product==null)return -3; + float intrate = product.getIntrate(); + intrate /= 12; + int month = year * 12; + double first_principal_and_interest = amount/month + amount*intrate; + double last_principal_and_interest = amount/month + amount*(1-(month-1)/month)*intrate; + double principal_and_interest = (first_principal_and_interest + last_principal_and_interest)*month/2; + return principal_and_interest; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + } + return -1; + } +} diff --git a/demo/circulator/service/PayCirService.java b/demo/circulator/service/PayCirService.java new file mode 100644 index 0000000..de019c0 --- /dev/null +++ b/demo/circulator/service/PayCirService.java @@ -0,0 +1,50 @@ +package com.example.demo.circulator.service; + +import com.example.demo.Dao.paymentMapper; +import com.example.demo.Dao.transMapper; +import com.example.demo.Dao.usageDateMapper; +import com.example.demo.bean.Repayment; +import com.example.demo.bean.Transaction; +import com.example.demo.bean.UsageDate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class PayCirService { + @Autowired + private usageDateMapper usageDateMapper; + @Autowired + private paymentMapper paymentMapper; + @Autowired + private transMapper transMapper; + + public int payAmountCirculator(long checkNum,double pay){ + try{ + Repayment repayment = paymentMapper.selectPepaymentBycheckNum(checkNum); + UsageDate usageDate= usageDateMapper.selectUsageDateByCheckNum(checkNum); + if(usageDate!=null)return -2; + double rep_amount = 0; + if(repayment!=null) + repayment.getRepAmount(); + long userNum = usageDate.getUserNum(); + int bankNum = usageDate.getBankNum(); + double amount = usageDate.getAmount(); + int year = usageDate.getYear(); + + Transaction transaction = new Transaction(checkNum,userNum,bankNum,pay); + transMapper.addTransaction(transaction); + + rep_amount = pay - amount/(year*12); + repayment.setRepAmount(rep_amount); + repayment.setRepSum(pay); + paymentMapper.updateRepayment(repayment); + return 1; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + + } + return 0; + } +} diff --git a/demo/productService/controller/addController.java b/demo/productService/controller/addController.java new file mode 100644 index 0000000..f36dc97 --- /dev/null +++ b/demo/productService/controller/addController.java @@ -0,0 +1,47 @@ +package com.example.demo.productService.controller; + +import com.example.demo.bean.Product; +import com.example.demo.productService.tools.addPro; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; + +@Controller +public class addController extends HttpServlet { + Product product; + addPro addPro; + @RequestMapping("/addproduct") + public String doPost(HttpServletResponse response,HttpServletRequest request){ + PrintWriter writer=null; + try{ + product.setProductNum(Integer.parseInt(request.getParameter("productNum"))); + product.setProductName(request.getParameter("productName")); + product.setBankNum(Integer.parseInt(request.getParameter("bankNum"))); + product.setCategory(request.getParameter("productName")); + product.setIntrate(Integer.parseInt(request.getParameter("intrate"))); + product.setProductDescription(request.getParameter("description")); + product.setPictureAddress(request.getParameter("address")); + int result= addPro.add(product); + response.setContentType("text/hmtl;charset=utf-8"); + writer=response.getWriter(); + if(result==1){ + writer.write("增加成功"); + return "/";//返回增加删除修改的总页面 + } + writer.write("增加失败"); + return "/";//返回增加的页面 + }catch(Exception e){ + e.printStackTrace(); + }finally { + if(writer!=null){ + writer.close(); + } + } + return "页面出错"; + } + +} diff --git a/demo/productService/controller/deleteController.java b/demo/productService/controller/deleteController.java new file mode 100644 index 0000000..cdd6510 --- /dev/null +++ b/demo/productService/controller/deleteController.java @@ -0,0 +1,40 @@ +package com.example.demo.productService.controller; + + +import com.example.demo.bean.Product; +import com.example.demo.productService.tools.deletePro; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; + +@Controller +public class deleteController { + Product product; + deletePro deletes; + @RequestMapping("/deleteproduct") + public String doPost(HttpServletResponse response, HttpServletRequest request){ + PrintWriter writer=null; + try{ + int productNum=Integer.parseInt(request.getParameter("productNum")); + int result= deletes.delete(productNum); + response.setContentType("text/hmtl;charset=utf-8"); + writer=response.getWriter(); + if(result==1){ + writer.write("删除成功"); + return "/";//返回增加删除修改的总页面 + } + writer.write("删除失败"); + return "/";//返回删除的页面 + }catch(Exception e){ + e.printStackTrace(); + }finally { + if(writer!=null){ + writer.close(); + } + } + return "页面出错"; + } +} diff --git a/demo/productService/controller/updateController.java b/demo/productService/controller/updateController.java new file mode 100644 index 0000000..56ca6f8 --- /dev/null +++ b/demo/productService/controller/updateController.java @@ -0,0 +1,46 @@ +package com.example.demo.productService.controller; + +import com.example.demo.bean.Product; +import com.example.demo.productService.tools.updatePro; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; + +@Controller +public class updateController { + Product product; + updatePro updatePro; + @RequestMapping("/updateproduct") + public String doPost(HttpServletResponse response, HttpServletRequest request){ + PrintWriter writer=null; + try{ + product.setProductNum(Integer.parseInt(request.getParameter("productNum"))); + product.setProductName(request.getParameter("productName")); + product.setBankNum(Integer.parseInt(request.getParameter("bankNum"))); + product.setCategory(request.getParameter("productName")); + product.setIntrate(Integer.parseInt(request.getParameter("intrate"))); + product.setProductDescription(request.getParameter("description")); + product.setPictureAddress(request.getParameter("address")); + int result= updatePro.update(product); + response.setContentType("text/hmtl;charset=utf-8"); + writer=response.getWriter(); + if(result==1){ + writer.write("修改成功"); + return "/";//返回增加删除修改的总页面 + } + writer.write("修改失败"); + return "/";//返回修改的页面 + }catch(Exception e){ + e.printStackTrace(); + }finally { + if(writer!=null){ + writer.close(); + } + } + return "页面出错"; + } + +} diff --git a/demo/productService/tools/addPro.java b/demo/productService/tools/addPro.java new file mode 100644 index 0000000..3d60f75 --- /dev/null +++ b/demo/productService/tools/addPro.java @@ -0,0 +1,27 @@ +package com.example.demo.productService.tools; + +import com.example.demo.Dao.productHistroyMapper; +import com.example.demo.Dao.productMapper; +import com.example.demo.bean.Product; +import com.example.demo.bean.ProductHistroy; + +public class addPro { + private com.example.demo.productService.tools.nowTime nowTime; + private productMapper productMapper; + private productHistroyMapper proHisMapper; + private ProductHistroy productHistroy; + + public int add(Product product1){ + productMapper.addProduct(product1); + productHistroy.setProductNum(product1.getProductNum()); + productHistroy.setProductName(product1.getProductName()); + productHistroy.setBankNum(product1.getBankNum()); + productHistroy.setCategory(product1.getCategory()); + productHistroy.setIntrate(product1.getIntrate()); + //productHistroy.setManagerNum(); manager.setManagerNum();调用登陆里面的一个接口得到managerNum + productHistroy.setProductDescription(product1.getProductDescription()); + productHistroy.setUpLoadTime(nowTime.nowTime()); + proHisMapper.addProductHistroy(productHistroy); + return 1; + } +} diff --git a/demo/productService/tools/deletePro.java b/demo/productService/tools/deletePro.java new file mode 100644 index 0000000..5489d67 --- /dev/null +++ b/demo/productService/tools/deletePro.java @@ -0,0 +1,20 @@ +package com.example.demo.productService.tools; + +import com.example.demo.Dao.productHistroyMapper; +import com.example.demo.bean.ProductHistroy; + +public class deletePro { + private com.example.demo.productService.tools.nowTime nowTime; + private com.example.demo.Dao.productMapper productMapper; + private productHistroyMapper proHisMapper; + private ProductHistroy productHistroy; + + public int delete(int productNum){ + productMapper.deleteProduct(productNum); + productHistroy.setProductNum(productNum); + //productHistroy.setManagerNum(); manager.setManagerNum();调用登陆里面的一个接口得到managerNum + productHistroy.setUpLoadTime(nowTime.nowTime()); + proHisMapper.addProductHistroy(productHistroy); + return 1; + } +} diff --git a/demo/productService/tools/nowTime.java b/demo/productService/tools/nowTime.java new file mode 100644 index 0000000..8629762 --- /dev/null +++ b/demo/productService/tools/nowTime.java @@ -0,0 +1,14 @@ +package com.example.demo.productService.tools; + + +import java.text.SimpleDateFormat; +import java.util.Date; + + +public class nowTime{ + public String nowTime(){ + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 + String time=(String)df.format(new Date()); + return time; + } +} diff --git a/demo/productService/tools/updatePro.java b/demo/productService/tools/updatePro.java new file mode 100644 index 0000000..fe43ceb --- /dev/null +++ b/demo/productService/tools/updatePro.java @@ -0,0 +1,27 @@ +package com.example.demo.productService.tools; + +import com.example.demo.Dao.productHistroyMapper; +import com.example.demo.Dao.productMapper; +import com.example.demo.bean.Product; +import com.example.demo.bean.ProductHistroy; + +public class updatePro { + private com.example.demo.productService.tools.nowTime nowTime; + private productMapper productMapper; + private productHistroyMapper proHisMapper; + private ProductHistroy productHistroy; + + public int update(Product product1){ + productMapper.updateProduct(product1); + productHistroy.setProductNum(product1.getProductNum()); + productHistroy.setProductName(product1.getProductName()); + productHistroy.setBankNum(product1.getBankNum()); + productHistroy.setCategory(product1.getCategory()); + productHistroy.setIntrate(product1.getIntrate()); + //productHistroy.setManagerNum(); manager.setManagerNum();调用登陆里面的一个接口得到managerNum + productHistroy.setProductDescription(product1.getProductDescription()); + productHistroy.setAlterTime(nowTime.nowTime()); + proHisMapper.addProductHistroy(productHistroy); + return 1; + } +} diff --git a/demo/src/main/java/com/example/demo/Dao/auditMapper.java b/demo/src/main/java/com/example/demo/Dao/auditMapper.java new file mode 100644 index 0000000..fa4f8eb --- /dev/null +++ b/demo/src/main/java/com/example/demo/Dao/auditMapper.java @@ -0,0 +1,31 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Audit; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface auditMapper { + @Select("select * from audit where checkNum = #{checkNum}") + public Audit selectAudioByCheckNum(long checkNum); + + @Select("select * from audit") + public List select(); + + @Insert("insert into audit(checkNum, userNum, productNum, " + + "bankAccount, checkState, contractNum, " + + "isSignContract, year, amount, applyTime)" + + " values (#{checkNum},#{userNum},#{productNum},#{bankAccount},#{checkState}," + + "#{contractNum},#{isSignContract},#{year},#{amount},#{applyTime})") + public void addAudit(Audit audits); + + @Update("update audit set checkNum=#{checkNum},userNum=#{userNum}" + + ",productNum=#{productNum},checkState=#{checkState},contractNum=#{contractNum}," + + "isSignContract=#{isSignContract},year=#{year},amount=#{amount}," + + "applyTime=#{applyTime}where checkNum=#{checkNum}") + public void updateAudit(Audit audits); + + @Delete("delete from audit where checkNum=#{checkNum}") + public void deleteAudit(long checkNum); +} diff --git a/demo/src/main/java/com/example/demo/Dao/bankMapper.java b/demo/src/main/java/com/example/demo/Dao/bankMapper.java new file mode 100644 index 0000000..07efb76 --- /dev/null +++ b/demo/src/main/java/com/example/demo/Dao/bankMapper.java @@ -0,0 +1,36 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Bank; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +import java.util.List; + +@Mapper +public interface bankMapper { + + @Select("select * from bank where bankNum = #{bankNum}") + public Bank selectBankByBankNum(int bankNum); + + @Select("select * from bank where bankName = #{bankName}") + public Bank selectBankByBankName(String bankName); + + @Select("select * from bank") + public List select(); + + @Insert("insert into bank(bankNum, bankName, contact, " + + " values (#{bankNum},#{bankName},#{contact},)") + public void addBank(Bank banks); + + @Update("update bank set bankNum=#{bankNum},bankName=#{bankName}" + + ",contact=#{contact} where bankNum=#{bankNum}") + public void updateBank(Bank banks); + +// @Delete("delete from bank where bankNum=#{bankNum}") +// public void deleteBank(String bankNum); +// +// @Delete("delete from bank where bankName=#{bankName}") +// public void deleteBanks(String bankName); +} diff --git a/demo/src/main/java/com/example/demo/Dao/managerMapper.java b/demo/src/main/java/com/example/demo/Dao/managerMapper.java new file mode 100644 index 0000000..aa92471 --- /dev/null +++ b/demo/src/main/java/com/example/demo/Dao/managerMapper.java @@ -0,0 +1,26 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Manager; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +@Mapper +public interface managerMapper { + @Select("select * from manager where managerNum = #{managerName}") + public Manager selectManagerByManagerName(String managerName); + + @Insert("insert into manager(managerNum, managerName, managerPwd, " + + "managerRight, telephoneNum) values (#{managerNum},#{managerName}," + + "#{managerPwd},#{managerRight},#{telephoneNum})") + public void addManager(Manager managers); + + @Update("update manager set managerNum=#{managerNum},managerName=#{managerName}" + + ",managerPwd=#{managerPwd},managerRight=#{managerRight},telephoneNum=#{telephoneNum},") + public void updateManager(Manager managers); + +// @Delete("delete from manager where managerNum=#{managerNum}") +// public void deleteManager(String managerNum); + +} diff --git a/demo/src/main/java/com/example/demo/Dao/paymentMapper.java b/demo/src/main/java/com/example/demo/Dao/paymentMapper.java new file mode 100644 index 0000000..205c52c --- /dev/null +++ b/demo/src/main/java/com/example/demo/Dao/paymentMapper.java @@ -0,0 +1,16 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Repayment; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; + +@Mapper +public interface paymentMapper { + @Select("select * from repayment where checkNum =#{checkNum}") + public Repayment selectPepaymentBycheckNum(long checkNum); + + @Update("update repayment set repAmount = {#repAmount} ,repSum = {#repSum} where checkNum = #{checkNum}") + public void updateRepayment(Repayment repayment); + +} diff --git a/demo/src/main/java/com/example/demo/Dao/productHistroyMapper.java b/demo/src/main/java/com/example/demo/Dao/productHistroyMapper.java new file mode 100644 index 0000000..18f6b7c --- /dev/null +++ b/demo/src/main/java/com/example/demo/Dao/productHistroyMapper.java @@ -0,0 +1,33 @@ +package com.example.demo.Dao; + + +import com.example.demo.bean.ProductHistroy; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +@Mapper +public interface productHistroyMapper { + @Select("select * from producthistroy where productNum = #{productNum}") + public ProductHistroy selectAudioByCheckNum(long productNum); + + @Select("select * from producthistroy") + public List select(); + + @Insert("insert into productHistroy(productNum, productName, category, " + + "intrate, bankNum, productDescription, uploadTime, deleteTime, alterTime)" + + " values (#{productNum},#{productName},#{category},#{intrate},#{bankNum}," + + "#{productDescription},#{uploadTime},#{deleteTime},#{alterTime})") + public void addProductHistroy(ProductHistroy productHistroys); + +// @Update("update producthistroy set productNum=#{productNum},productName=#{productName}" + +// ",category=#{category},intrate=#{intrate},bankNum=#{bankNum}," + +// "productDescription=#{productDescription},uploadTime=#{uploadTime},deleteTime=#{deleteTime}," + +// "alterTime=#{alterTime}where productNum=#{productNum}") +// public void updateProductHistroy(ProductHistroy productHistroys); + +// @Delete("delete from producthistroy where productNum=#{productNum}") +// public void deleteProductHistroy(int productNum); +} diff --git a/demo/src/main/java/com/example/demo/Dao/productMapper.java b/demo/src/main/java/com/example/demo/Dao/productMapper.java new file mode 100644 index 0000000..b0708e3 --- /dev/null +++ b/demo/src/main/java/com/example/demo/Dao/productMapper.java @@ -0,0 +1,33 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Product; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface productMapper { + @Select("select * from product where productNum = #{productNum}") + public Product selectProductByProductNum(long productNum); + + @Select("select * from product where productName = #{productName}") + public Product selectProductByProductName(long productName); + + @Select("select * from product") + public List select(); + + @Insert("insert into product(productNum, productName, category, intrate, " + + "bankNum, productDescription, pictureAddress)" + + " values (#{productNum},#{productName},#{category},#{intrate},#{bankNum}," + + "#{productDescription},#{pictureAddress})") + public void addProduct(Product products); + + @Update("update product set productNum=#{productNum},productName=#{productName}" + + ",category=#{category},intrate=#{intrate},bankNum=#{bankNum}," + + "productDescription=#{productDescription},pictureAddress=#{pictureAddress}") + public void updateProduct(Product products); + + + @Delete("delete from product where productNum=#{productNum}") + public void deleteProduct(int productNum); +} diff --git a/demo/src/main/java/com/example/demo/Dao/transMapper.java b/demo/src/main/java/com/example/demo/Dao/transMapper.java new file mode 100644 index 0000000..7c414ca --- /dev/null +++ b/demo/src/main/java/com/example/demo/Dao/transMapper.java @@ -0,0 +1,30 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.Transaction; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface transMapper { + @Select("select * from transaction where transactionNum = #{transactionNum}") + public Transaction selectAudioByCheckNum(long transactionNum); + + @Select("select * from transaction") + public List select(); + + @Insert("insert into transaction(transactionNum, payer, payee," + + " transactionTime, transactionAmount, note,checkNum)" + + " values (#{transactionNum},#{payer},#{payee},#{transactionTime},#{transactionAmount}," + + "#{note},#{checkNum})") + public void addTransaction(Transaction transactions); + + @Update("update audit set transactionNum=#{transactionNum},payer=#{payer}" + + ",payee=#{payee},transactionTime=#{transactionTime},transactionAmount=#{transactionAmount}," + + "note=#{note}") + public void updateTransaction(Transaction transactions); + + @Delete("delete from audit where transactionNum=#{transactionNum}") + public void deleteTransaction(long transactionNum); + +} diff --git a/demo/src/main/java/com/example/demo/Dao/usageDateMapper.java b/demo/src/main/java/com/example/demo/Dao/usageDateMapper.java new file mode 100644 index 0000000..ae239f8 --- /dev/null +++ b/demo/src/main/java/com/example/demo/Dao/usageDateMapper.java @@ -0,0 +1,31 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.UsageDate; +import org.apache.ibatis.annotations.*; + +import java.util.List; + + +@Mapper +public interface usageDateMapper { + @Select("select * from usagedate where transactionNum = #{transactionNum}") + public UsageDate selectUsageDateByCheckNum(long checkNum); + + @Select("select * from usagedate") + public List select(); + + @Insert("insert into usagedate(checkNum, productNum, userNum," + + " bankAccount, bankNum, year, amount, startTime)" + + " values (#{checkNum},#{productNum},#{userNum},#{bankAccount},#{bankNum}," + + "#{year},#{amount},#{startTime})") + public void addUsageDate(UsageDate usageDate); + + @Update("update usagedate set checkNum=#{checkNum},productNum=#{productNum}" + + ",userNum=#{userNum},bankAccount=#{bankAccount},bankNum=#{bankNum}," + + "year=#{year},amount=#{amount},startTime=#{startTime}") + public void updateUsageDate(UsageDate usageDate); + + @Delete("delete from usagedate where checkNum=#{checkNum}") + public void deleteUsageDate(long checkNum); + +} diff --git a/demo/src/main/java/com/example/demo/Dao/userBankIdentify.java b/demo/src/main/java/com/example/demo/Dao/userBankIdentify.java new file mode 100644 index 0000000..fabaf77 --- /dev/null +++ b/demo/src/main/java/com/example/demo/Dao/userBankIdentify.java @@ -0,0 +1,26 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.UserBankIdentify; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface userBankIdentify { + @Select("select * from userbankidentify where userName = #{userName}") + public UserBankIdentify selectUsageDateByCheckNum(String userName); + + @Select("select * from userBankIdentify") + public List select(); + + @Insert("insert into usagedate(userName, bankAccount, bankAccountIdentify)" + + " values (#{userName},#{bankAccount},#{bankAccountIdentify})") + public void addUserBankIdentify(UserBankIdentify userBankIdentifys); + + @Update("update usagedate set userName=#{userName},bankAccount=#{bankAccount}" + + ",bankAccountIdentify=#{bankAccountIdentify}") + public void updateUserBankIdentify(UserBankIdentify userBankIdentifys); + + @Delete("delete from usagedate where userName=#{userName}") + public void deleteUserBankIdentify(String userName); +} diff --git a/demo/src/main/java/com/example/demo/Dao/userMapper.java b/demo/src/main/java/com/example/demo/Dao/userMapper.java new file mode 100644 index 0000000..1b96851 --- /dev/null +++ b/demo/src/main/java/com/example/demo/Dao/userMapper.java @@ -0,0 +1,30 @@ +package com.example.demo.Dao; + +import com.example.demo.bean.User; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface userMapper { + @Select("select * from user where userNum = #{userNum}") + public User selectUserByuserNum(long userNum); + + @Select("select * from user") + public List select(); + + @Insert("insert into user(userNum, userName, userPwd, userRight," + + " tureName, idNum, telephoneNum, address, isIdentify, registerTime)" + + " values (#{userNum},#{userName},#{userPwd},#{userRight},#{tureName}," + + "#{idNum},#{telephoneNum},#{address},#{isIdentify},#{registerTime})") + public void addUser(User users); + + @Update("update user set userNum=#{userNum},userName=#{userName}" + + ",userPwd=#{userPwd},userRight=#{userRight},tureName=#{tureName}," + + "idNum=#{idNum},telephoneNum=#{telephoneNum},address=#{address}," + + "isIdentify=#{isIdentify},registerTime=#{registerTime}where userNum=#{userNum}") + public void updateUser(User users); + + @Delete("delete from user where userNum=#{userNum}") + public void deleteUser(long userNum); +} diff --git a/demo/src/main/java/com/example/demo/DemoApplication.java b/demo/src/main/java/com/example/demo/DemoApplication.java index a4824b9..99fe3b0 100644 --- a/demo/src/main/java/com/example/demo/DemoApplication.java +++ b/demo/src/main/java/com/example/demo/DemoApplication.java @@ -1,11 +1,12 @@ package com.example.demo; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication +//@MapperScan("com.example.demo.Dao") public class DemoApplication { - public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } diff --git a/demo/src/main/java/com/example/demo/bean/Audit.java b/demo/src/main/java/com/example/demo/bean/Audit.java new file mode 100644 index 0000000..7569c10 --- /dev/null +++ b/demo/src/main/java/com/example/demo/bean/Audit.java @@ -0,0 +1,32 @@ +package com.example.demo.bean; + + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Audit { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long checkNum; + private long userNum; + private double amount; + private String applyTime; + private String bankAccount; + private long checkState; + private long contractNum; + private short isSignContract; + private long productNum; + private int year; + private int equation; + + + public Audit(){}; +} diff --git a/demo/src/main/java/com/example/demo/bean/Bank.java b/demo/src/main/java/com/example/demo/bean/Bank.java new file mode 100644 index 0000000..be9f33d --- /dev/null +++ b/demo/src/main/java/com/example/demo/bean/Bank.java @@ -0,0 +1,21 @@ +package com.example.demo.bean; + + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Bank { + @Id + private int bankNum; + private String bankName; + private String contact;//联系方式 + + + public Bank(){}; +} diff --git a/demo/src/main/java/com/example/demo/bean/Manager.java b/demo/src/main/java/com/example/demo/bean/Manager.java new file mode 100644 index 0000000..67eb681 --- /dev/null +++ b/demo/src/main/java/com/example/demo/bean/Manager.java @@ -0,0 +1,33 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Manager { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long managerNum; + private String managerName; + private String managerPwd; + private String managerRight; + private String telephoneNum; + + + public Manager(){}; + + public long getManagerNum() { + return managerNum; + } + + public void setManagerNum(int managerNum) { + this.managerNum = managerNum; + } +} diff --git a/demo/src/main/java/com/example/demo/bean/Product.java b/demo/src/main/java/com/example/demo/bean/Product.java new file mode 100644 index 0000000..7f6722b --- /dev/null +++ b/demo/src/main/java/com/example/demo/bean/Product.java @@ -0,0 +1,83 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Product { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long productNum; + private String productName; + private String category; + private float intrate; + private int bankNum; + private String productDescription; + private String pictureAddress; + + public Product(){}; + + public String getProductName() { + return productName; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getPictureAddress() { + return pictureAddress; + } + + public void setPictureAddress(String pictureAddress) { + this.pictureAddress = pictureAddress; + } + + public String getProductDescription() { + return productDescription; + } + + public void setProductDescription(String productDescription) { + this.productDescription = productDescription; + } + + public int getBankNum() { + return bankNum; + } + + public void setBankNum(int bankNum) { + this.bankNum = bankNum; + } + + public float getIntrate() { + return intrate; + } + + public void setIntrate(float intrate) { + this.intrate = intrate; + } + + public long getProductNum() { + return productNum; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public void setProductNum(long productNum) { + this.productNum = productNum; + } +} + diff --git a/demo/src/main/java/com/example/demo/bean/ProductHistroy.java b/demo/src/main/java/com/example/demo/bean/ProductHistroy.java new file mode 100644 index 0000000..3b0e8c4 --- /dev/null +++ b/demo/src/main/java/com/example/demo/bean/ProductHistroy.java @@ -0,0 +1,111 @@ +package com.example.demo.bean; + + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Getter +@Setter +public class ProductHistroy { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long productNum; + private int bankNum; + private long managerNum; + private String productName; + private String category; + private float intrate; + private String productDescription; + private String upLoadTime; + private String deleteTime; + private String alterTime; + + public ProductHistroy(){}; + + public long getManagerNum() { + return managerNum; + } + + public void setManagerNum(long managerNum) { + this.managerNum = managerNum; + } + + public long getProductNum() { + return productNum; + } + + public void setProductNum(long productNum) { + this.productNum = productNum; + } + + public String getAlterTime() { + return alterTime; + } + + public void setAlterTime(String alterTime) { + this.alterTime = alterTime; + } + + + public String getDeleteTime() { + return deleteTime; + } + + public void setDeleteTime(String deleteTime) { + this.deleteTime = deleteTime; + } + + public String getUpLoadTime() { + return upLoadTime; + } + + public void setUpLoadTime(String upLoadTime) { + this.upLoadTime = upLoadTime; + } + + public String getProductDescription() { + return productDescription; + } + + public void setProductDescription(String productDescription) { + this.productDescription = productDescription; + } + + public float getIntrate() { + return intrate; + } + + public void setIntrate(float intrate) { + this.intrate = intrate; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public int getBankNum() { + return bankNum; + } + + public void setBankNum(int bankNum) { + this.bankNum = bankNum; + } +} diff --git a/demo/src/main/java/com/example/demo/bean/Repayment.java b/demo/src/main/java/com/example/demo/bean/Repayment.java new file mode 100644 index 0000000..5744436 --- /dev/null +++ b/demo/src/main/java/com/example/demo/bean/Repayment.java @@ -0,0 +1,21 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Repayment { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long checkNum; + private double repAmount; + private double repSum; + +} diff --git a/demo/src/main/java/com/example/demo/bean/Transaction.java b/demo/src/main/java/com/example/demo/bean/Transaction.java new file mode 100644 index 0000000..6126220 --- /dev/null +++ b/demo/src/main/java/com/example/demo/bean/Transaction.java @@ -0,0 +1,33 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class Transaction { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long transactionNum; + private long payer; + private long payee; + private float transactionTime; + private float transactionAmount; + private String note; + private long checkNum; + + public Transaction(){}; + public Transaction(long checkNum,long payer,long payee,double transationAmount){ + this.checkNum=checkNum; + this.payer = payer; + this.payee = payee; + this.transactionAmount=transactionNum; + + } +} diff --git a/demo/src/main/java/com/example/demo/bean/UsageDate.java b/demo/src/main/java/com/example/demo/bean/UsageDate.java new file mode 100644 index 0000000..0a10f6b --- /dev/null +++ b/demo/src/main/java/com/example/demo/bean/UsageDate.java @@ -0,0 +1,29 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class UsageDate { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long checkNum; + private long productNum; + private long userNum; + private String bankAccount; + private int bankNum; + private int year; + private float amount; + private String startTime; + + public UsageDate(){}; + private int equation; + +} diff --git a/demo/src/main/java/com/example/demo/bean/User.java b/demo/src/main/java/com/example/demo/bean/User.java new file mode 100644 index 0000000..4b22407 --- /dev/null +++ b/demo/src/main/java/com/example/demo/bean/User.java @@ -0,0 +1,30 @@ +package com.example.demo.bean; + +import lombok.Getter; +import lombok.Setter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Setter +@Entity +public class User { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private long userNum; + private String userName; + private String userPwd; + private String userRight; + private String trueName; + private String idNum; + private String telephoneNum; + private String address; + private String isIdentify; + private String registerTime; + + + public User(){}; +} diff --git a/demo/src/main/java/com/example/demo/bean/UserBankIdentify.java b/demo/src/main/java/com/example/demo/bean/UserBankIdentify.java new file mode 100644 index 0000000..d0d41cb --- /dev/null +++ b/demo/src/main/java/com/example/demo/bean/UserBankIdentify.java @@ -0,0 +1,19 @@ +package com.example.demo.bean; + +import lombok.Getter; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Getter +@Entity +public class UserBankIdentify { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private String userName; + private String bankAccount; + private short bankAccountIdentify; + +} diff --git a/demo/src/main/java/com/example/demo/circulator/controller/NextCirController.java b/demo/src/main/java/com/example/demo/circulator/controller/NextCirController.java new file mode 100644 index 0000000..71d0b63 --- /dev/null +++ b/demo/src/main/java/com/example/demo/circulator/controller/NextCirController.java @@ -0,0 +1,45 @@ +package com.example.demo.circulator.controller; + + +import com.example.demo.circulator.service.CirService; +import com.example.demo.circulator.service.EPAIR_CirService; +import com.example.demo.circulator.service.EPR_CirService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Controller +public class NextCirController { + //@Autowired + private CirService cirService; + + @GetMapping("/cir/next") + public String nextCirculator(HttpServletRequest request,HttpServletResponse response){ + long checkNum = (Long)request.getAttribute("checkNum"); + int equation = (Integer)request.getAttribute("equation"); + switch (equation){ + case 1: + cirService = new EPAIR_CirService(); + break; + case 2: + cirService = new EPR_CirService(); + break; + default: + System.out.println("not exit!!"); + break; + } + double next_principal_and_intrate = cirService.NextCirculator(checkNum); + if(next_principal_and_intrate>=0){ + request.setAttribute("next",next_principal_and_intrate); + }else if(next_principal_and_intrate==-1){ + return "/计算失败"; + }else if(next_principal_and_intrate==-2){ + return "/未贷款此类业务"; + }else if(next_principal_and_intrate==-3){ + return "/无此类业务"; + } + return "/next"; + } +} diff --git a/demo/src/main/java/com/example/demo/circulator/controller/PayCirController.java b/demo/src/main/java/com/example/demo/circulator/controller/PayCirController.java new file mode 100644 index 0000000..b2c2487 --- /dev/null +++ b/demo/src/main/java/com/example/demo/circulator/controller/PayCirController.java @@ -0,0 +1,24 @@ +package com.example.demo.circulator.controller; + +import com.example.demo.circulator.service.PayCirService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; + +@Controller +public class PayCirController { + //@Autowired + PayCirService payCirService; + + @PostMapping("/pay") + public String payAmountCir(long checkNum,double pay){ + int result = payCirService.payAmountCirculator(checkNum,pay); + if(result==1){ + return "/还款成功"; + }else if(result==-2){ + return"/未贷款该业务"; + }else + + return "还款失败"; + } +} diff --git a/demo/src/main/java/com/example/demo/circulator/controller/SumCirController.java b/demo/src/main/java/com/example/demo/circulator/controller/SumCirController.java new file mode 100644 index 0000000..52f2802 --- /dev/null +++ b/demo/src/main/java/com/example/demo/circulator/controller/SumCirController.java @@ -0,0 +1,47 @@ +package com.example.demo.circulator.controller; + +import com.example.demo.circulator.service.CirService; +import com.example.demo.circulator.service.EPAIR_CirService; +import com.example.demo.circulator.service.EPR_CirService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@Controller +public class SumCirController { + //@Autowired + private CirService cirService; + + @GetMapping("/cir/sum") + public String SumCirculator(HttpServletRequest request, HttpServletResponse response){ + long productNum = Long.parseLong(request.getParameter("productNum")); + double amount = Double.parseDouble(request.getParameter("amount")); + int year = Integer.parseInt(request.getParameter("year")); + int equation = Integer.parseInt(request.getParameter("equation")); + + switch (equation){ + case 1: + cirService = new EPAIR_CirService(); + break; + case 2: + cirService = new EPR_CirService(); + break; + default: + System.out.println("not exit!!"); + break; + } + double sum_principal_and_intrate = cirService.SumCirculator(productNum,amount,year); + if(sum_principal_and_intrate>=0){ + request.setAttribute("sum",sum_principal_and_intrate); + }else if(sum_principal_and_intrate==-3){ + return "/无此类产品"; + }else{ + return "/计算失败"; + } + + + return "/circulator"; + } +} diff --git a/demo/src/main/java/com/example/demo/circulator/service/CirService.java b/demo/src/main/java/com/example/demo/circulator/service/CirService.java new file mode 100644 index 0000000..09b230d --- /dev/null +++ b/demo/src/main/java/com/example/demo/circulator/service/CirService.java @@ -0,0 +1,17 @@ +package com.example.demo.circulator.service; + +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.PostConstruct; + +@Service +public abstract class CirService { + @PostConstruct + public void init(){} + + @Transactional //数据库与事物的一致性 + public double NextCirculator(long checkNum){return 0;} + public double SumCirculator(long productNum,double amount,int year){return 0;} + +} diff --git a/demo/src/main/java/com/example/demo/circulator/service/EPAIR_CirService.java b/demo/src/main/java/com/example/demo/circulator/service/EPAIR_CirService.java new file mode 100644 index 0000000..43635d2 --- /dev/null +++ b/demo/src/main/java/com/example/demo/circulator/service/EPAIR_CirService.java @@ -0,0 +1,63 @@ +package com.example.demo.circulator.service; + +import com.example.demo.Dao.productMapper; +import com.example.demo.Dao.usageDateMapper; +import com.example.demo.bean.Product; +import com.example.demo.bean.UsageDate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + + +@Service +public class EPAIR_CirService extends CirService{ + @Autowired + private usageDateMapper usageDateMapper; + @Autowired + private productMapper productMapper; + + @Transactional //数据库与事物的一致性 + public double NextCirculator(long checkNum){ + try{ + UsageDate usageDate = usageDateMapper.selectUsageDateByCheckNum(checkNum); + if(usageDate==null)return -2; + int year = usageDate.getYear(); + double amount = usageDate.getAmount(); + long productNum = usageDate.getProductNum(); + + Product product = productMapper.selectProductByProductNum(productNum); + if(product==null)return -3; + float intrate = product.getIntrate(); + double rep_amount = 0; + + //double not_rep_amount = amount - rep_amount; + intrate /= 12; + int month = year*12; + double rep = Math.pow((1+intrate),month)/(Math.pow((1+intrate),month)-1); + double next_principal_and_interest = rep * intrate * amount; + return next_principal_and_interest; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + + } + return -1; + } + + public double SumCirculator(long productNum,double amount,int year){ + try{ + Product product = productMapper.selectProductByProductNum(productNum); + if(product==null)return -3; + float intrate = product.getIntrate(); + double rep = Math.pow((1+intrate),year)/(Math.pow((1+intrate),year)-1); + double principal_and_interest = rep * intrate * amount * year; + return principal_and_interest; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + } + return -1; + } +} diff --git a/demo/src/main/java/com/example/demo/circulator/service/EPR_CirService.java b/demo/src/main/java/com/example/demo/circulator/service/EPR_CirService.java new file mode 100644 index 0000000..40580a7 --- /dev/null +++ b/demo/src/main/java/com/example/demo/circulator/service/EPR_CirService.java @@ -0,0 +1,69 @@ +package com.example.demo.circulator.service; + +import com.example.demo.Dao.paymentMapper; +import com.example.demo.Dao.productMapper; +import com.example.demo.Dao.usageDateMapper; +import com.example.demo.bean.Product; +import com.example.demo.bean.Repayment; +import com.example.demo.bean.UsageDate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +public class EPR_CirService extends CirService{ + @Autowired + private usageDateMapper usageDateMapper; + @Autowired + private paymentMapper paymentMapper; + @Autowired + private productMapper productMapper; + + @Transactional //数据库与事物的一致性 + public double NextCirculator(long checkNum){ + try{ + UsageDate usageDate = usageDateMapper.selectUsageDateByCheckNum(checkNum); + Repayment repayment = paymentMapper.selectPepaymentBycheckNum(checkNum); + if(usageDate!=null){return -2;} + int year = usageDate.getYear(); + double amount = usageDate.getAmount(); + long productNum = usageDate.getProductNum(); + + Product product = productMapper.selectProductByProductNum(productNum); + if(product==null)return -3; + float intrate = product.getIntrate(); + double rep_amount = 0; + if(repayment!=null) + repayment.getRepAmount(); + intrate /= 12; + int month = year*12; + double next_principal_and_interest = amount/month + (amount - rep_amount) * intrate; + return next_principal_and_interest; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + + } + return -1; + } + + public double SumCirculator(long productNum,double amount,int year){ + try{ + Product product = productMapper.selectProductByProductNum(productNum); + if(product==null)return -3; + float intrate = product.getIntrate(); + intrate /= 12; + int month = year * 12; + double first_principal_and_interest = amount/month + amount*intrate; + double last_principal_and_interest = amount/month + amount*(1-(month-1)/month)*intrate; + double principal_and_interest = (first_principal_and_interest + last_principal_and_interest)*month/2; + return principal_and_interest; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + } + return -1; + } +} diff --git a/demo/src/main/java/com/example/demo/circulator/service/PayCirService.java b/demo/src/main/java/com/example/demo/circulator/service/PayCirService.java new file mode 100644 index 0000000..de019c0 --- /dev/null +++ b/demo/src/main/java/com/example/demo/circulator/service/PayCirService.java @@ -0,0 +1,50 @@ +package com.example.demo.circulator.service; + +import com.example.demo.Dao.paymentMapper; +import com.example.demo.Dao.transMapper; +import com.example.demo.Dao.usageDateMapper; +import com.example.demo.bean.Repayment; +import com.example.demo.bean.Transaction; +import com.example.demo.bean.UsageDate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class PayCirService { + @Autowired + private usageDateMapper usageDateMapper; + @Autowired + private paymentMapper paymentMapper; + @Autowired + private transMapper transMapper; + + public int payAmountCirculator(long checkNum,double pay){ + try{ + Repayment repayment = paymentMapper.selectPepaymentBycheckNum(checkNum); + UsageDate usageDate= usageDateMapper.selectUsageDateByCheckNum(checkNum); + if(usageDate!=null)return -2; + double rep_amount = 0; + if(repayment!=null) + repayment.getRepAmount(); + long userNum = usageDate.getUserNum(); + int bankNum = usageDate.getBankNum(); + double amount = usageDate.getAmount(); + int year = usageDate.getYear(); + + Transaction transaction = new Transaction(checkNum,userNum,bankNum,pay); + transMapper.addTransaction(transaction); + + rep_amount = pay - amount/(year*12); + repayment.setRepAmount(rep_amount); + repayment.setRepSum(pay); + paymentMapper.updateRepayment(repayment); + return 1; + }catch(Exception e){ + e.printStackTrace(); + }finally { + + + } + return 0; + } +} diff --git a/demo/src/main/java/com/example/demo/productService/controller/addController.java b/demo/src/main/java/com/example/demo/productService/controller/addController.java new file mode 100644 index 0000000..f36dc97 --- /dev/null +++ b/demo/src/main/java/com/example/demo/productService/controller/addController.java @@ -0,0 +1,47 @@ +package com.example.demo.productService.controller; + +import com.example.demo.bean.Product; +import com.example.demo.productService.tools.addPro; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; + +@Controller +public class addController extends HttpServlet { + Product product; + addPro addPro; + @RequestMapping("/addproduct") + public String doPost(HttpServletResponse response,HttpServletRequest request){ + PrintWriter writer=null; + try{ + product.setProductNum(Integer.parseInt(request.getParameter("productNum"))); + product.setProductName(request.getParameter("productName")); + product.setBankNum(Integer.parseInt(request.getParameter("bankNum"))); + product.setCategory(request.getParameter("productName")); + product.setIntrate(Integer.parseInt(request.getParameter("intrate"))); + product.setProductDescription(request.getParameter("description")); + product.setPictureAddress(request.getParameter("address")); + int result= addPro.add(product); + response.setContentType("text/hmtl;charset=utf-8"); + writer=response.getWriter(); + if(result==1){ + writer.write("增加成功"); + return "/";//返回增加删除修改的总页面 + } + writer.write("增加失败"); + return "/";//返回增加的页面 + }catch(Exception e){ + e.printStackTrace(); + }finally { + if(writer!=null){ + writer.close(); + } + } + return "页面出错"; + } + +} diff --git a/demo/src/main/java/com/example/demo/productService/controller/deleteController.java b/demo/src/main/java/com/example/demo/productService/controller/deleteController.java new file mode 100644 index 0000000..cdd6510 --- /dev/null +++ b/demo/src/main/java/com/example/demo/productService/controller/deleteController.java @@ -0,0 +1,40 @@ +package com.example.demo.productService.controller; + + +import com.example.demo.bean.Product; +import com.example.demo.productService.tools.deletePro; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; + +@Controller +public class deleteController { + Product product; + deletePro deletes; + @RequestMapping("/deleteproduct") + public String doPost(HttpServletResponse response, HttpServletRequest request){ + PrintWriter writer=null; + try{ + int productNum=Integer.parseInt(request.getParameter("productNum")); + int result= deletes.delete(productNum); + response.setContentType("text/hmtl;charset=utf-8"); + writer=response.getWriter(); + if(result==1){ + writer.write("删除成功"); + return "/";//返回增加删除修改的总页面 + } + writer.write("删除失败"); + return "/";//返回删除的页面 + }catch(Exception e){ + e.printStackTrace(); + }finally { + if(writer!=null){ + writer.close(); + } + } + return "页面出错"; + } +} diff --git a/demo/src/main/java/com/example/demo/productService/controller/updateController.java b/demo/src/main/java/com/example/demo/productService/controller/updateController.java new file mode 100644 index 0000000..56ca6f8 --- /dev/null +++ b/demo/src/main/java/com/example/demo/productService/controller/updateController.java @@ -0,0 +1,46 @@ +package com.example.demo.productService.controller; + +import com.example.demo.bean.Product; +import com.example.demo.productService.tools.updatePro; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; + +@Controller +public class updateController { + Product product; + updatePro updatePro; + @RequestMapping("/updateproduct") + public String doPost(HttpServletResponse response, HttpServletRequest request){ + PrintWriter writer=null; + try{ + product.setProductNum(Integer.parseInt(request.getParameter("productNum"))); + product.setProductName(request.getParameter("productName")); + product.setBankNum(Integer.parseInt(request.getParameter("bankNum"))); + product.setCategory(request.getParameter("productName")); + product.setIntrate(Integer.parseInt(request.getParameter("intrate"))); + product.setProductDescription(request.getParameter("description")); + product.setPictureAddress(request.getParameter("address")); + int result= updatePro.update(product); + response.setContentType("text/hmtl;charset=utf-8"); + writer=response.getWriter(); + if(result==1){ + writer.write("修改成功"); + return "/";//返回增加删除修改的总页面 + } + writer.write("修改失败"); + return "/";//返回修改的页面 + }catch(Exception e){ + e.printStackTrace(); + }finally { + if(writer!=null){ + writer.close(); + } + } + return "页面出错"; + } + +} diff --git a/demo/src/main/java/com/example/demo/productService/tools/addPro.java b/demo/src/main/java/com/example/demo/productService/tools/addPro.java new file mode 100644 index 0000000..3d60f75 --- /dev/null +++ b/demo/src/main/java/com/example/demo/productService/tools/addPro.java @@ -0,0 +1,27 @@ +package com.example.demo.productService.tools; + +import com.example.demo.Dao.productHistroyMapper; +import com.example.demo.Dao.productMapper; +import com.example.demo.bean.Product; +import com.example.demo.bean.ProductHistroy; + +public class addPro { + private com.example.demo.productService.tools.nowTime nowTime; + private productMapper productMapper; + private productHistroyMapper proHisMapper; + private ProductHistroy productHistroy; + + public int add(Product product1){ + productMapper.addProduct(product1); + productHistroy.setProductNum(product1.getProductNum()); + productHistroy.setProductName(product1.getProductName()); + productHistroy.setBankNum(product1.getBankNum()); + productHistroy.setCategory(product1.getCategory()); + productHistroy.setIntrate(product1.getIntrate()); + //productHistroy.setManagerNum(); manager.setManagerNum();调用登陆里面的一个接口得到managerNum + productHistroy.setProductDescription(product1.getProductDescription()); + productHistroy.setUpLoadTime(nowTime.nowTime()); + proHisMapper.addProductHistroy(productHistroy); + return 1; + } +} diff --git a/demo/src/main/java/com/example/demo/productService/tools/deletePro.java b/demo/src/main/java/com/example/demo/productService/tools/deletePro.java new file mode 100644 index 0000000..5489d67 --- /dev/null +++ b/demo/src/main/java/com/example/demo/productService/tools/deletePro.java @@ -0,0 +1,20 @@ +package com.example.demo.productService.tools; + +import com.example.demo.Dao.productHistroyMapper; +import com.example.demo.bean.ProductHistroy; + +public class deletePro { + private com.example.demo.productService.tools.nowTime nowTime; + private com.example.demo.Dao.productMapper productMapper; + private productHistroyMapper proHisMapper; + private ProductHistroy productHistroy; + + public int delete(int productNum){ + productMapper.deleteProduct(productNum); + productHistroy.setProductNum(productNum); + //productHistroy.setManagerNum(); manager.setManagerNum();调用登陆里面的一个接口得到managerNum + productHistroy.setUpLoadTime(nowTime.nowTime()); + proHisMapper.addProductHistroy(productHistroy); + return 1; + } +} diff --git a/demo/src/main/java/com/example/demo/productService/tools/nowTime.java b/demo/src/main/java/com/example/demo/productService/tools/nowTime.java new file mode 100644 index 0000000..8629762 --- /dev/null +++ b/demo/src/main/java/com/example/demo/productService/tools/nowTime.java @@ -0,0 +1,14 @@ +package com.example.demo.productService.tools; + + +import java.text.SimpleDateFormat; +import java.util.Date; + + +public class nowTime{ + public String nowTime(){ + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 + String time=(String)df.format(new Date()); + return time; + } +} diff --git a/demo/src/main/java/com/example/demo/productService/tools/updatePro.java b/demo/src/main/java/com/example/demo/productService/tools/updatePro.java new file mode 100644 index 0000000..fe43ceb --- /dev/null +++ b/demo/src/main/java/com/example/demo/productService/tools/updatePro.java @@ -0,0 +1,27 @@ +package com.example.demo.productService.tools; + +import com.example.demo.Dao.productHistroyMapper; +import com.example.demo.Dao.productMapper; +import com.example.demo.bean.Product; +import com.example.demo.bean.ProductHistroy; + +public class updatePro { + private com.example.demo.productService.tools.nowTime nowTime; + private productMapper productMapper; + private productHistroyMapper proHisMapper; + private ProductHistroy productHistroy; + + public int update(Product product1){ + productMapper.updateProduct(product1); + productHistroy.setProductNum(product1.getProductNum()); + productHistroy.setProductName(product1.getProductName()); + productHistroy.setBankNum(product1.getBankNum()); + productHistroy.setCategory(product1.getCategory()); + productHistroy.setIntrate(product1.getIntrate()); + //productHistroy.setManagerNum(); manager.setManagerNum();调用登陆里面的一个接口得到managerNum + productHistroy.setProductDescription(product1.getProductDescription()); + productHistroy.setAlterTime(nowTime.nowTime()); + proHisMapper.addProductHistroy(productHistroy); + return 1; + } +} diff --git a/demo/src/main/resources/application.yml b/demo/src/main/resources/application.yml new file mode 100644 index 0000000..2f7a0fa --- /dev/null +++ b/demo/src/main/resources/application.yml @@ -0,0 +1,12 @@ +spring: + mvc: + view: + prefix: /WEB-INF/views/ + suffix: .jsp + datasource: + url: jdbc:mysql://localhost:3306/loan?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 + username: root + password: 12345678 + driver-class-name: com.mysql.cj.jdbc.Driver +mybatis: + type-aliases-package: com.example.demo.Dao diff --git a/demo/src/test/java/com/example/demo/Dao/paymentMapper.java b/demo/src/test/java/com/example/demo/Dao/paymentMapper.java index 940f988..9fbd114 100644 --- a/demo/src/test/java/com/example/demo/Dao/paymentMapper.java +++ b/demo/src/test/java/com/example/demo/Dao/paymentMapper.java @@ -8,10 +8,10 @@ import org.apache.ibatis.annotations.Update; @Mapper public interface paymentMapper { - @Select("select * from repayment where checkNum ={#checkNum}") + @Select("select * from repayment where checkNum =#{checkNum}") public Repayment selectPepaymentBycheckNum(long checkNum); - @Update("update repayment set repAmount = {#repAmount} ,repSum = {#repSum} where checkNum = {#checkNum}") + @Update("update repayment set repAmount = {#repAmount} ,repSum = #{repSum} where checkNum = #{checkNum}") public void updateRepayment(Repayment repayment); } diff --git a/demo/src/test/java/com/example/demo/circulator/service/controller/NextCirController.java b/demo/src/test/java/com/example/demo/circulator/controller/NextCirController.java similarity index 91% rename from demo/src/test/java/com/example/demo/circulator/service/controller/NextCirController.java rename to demo/src/test/java/com/example/demo/circulator/controller/NextCirController.java index 4f77233..b8237d5 100644 --- a/demo/src/test/java/com/example/demo/circulator/service/controller/NextCirController.java +++ b/demo/src/test/java/com/example/demo/circulator/controller/NextCirController.java @@ -1,8 +1,10 @@ -package com.example.demo.circulator.service.controller; +package com.example.demo.circulator.controller; + import com.example.demo.circulator.service.CirService; import com.example.demo.circulator.service.EPAIR_CirService; import com.example.demo.circulator.service.EPR_CirService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @@ -11,7 +13,7 @@ import javax.servlet.http.HttpServletResponse; @Controller public class NextCirController { - //@Autowired + @Autowired private CirService cirService; @GetMapping("/cir/next") diff --git a/demo/src/test/java/com/example/demo/circulator/service/controller/PayCirController.java b/demo/src/test/java/com/example/demo/circulator/controller/PayCirController.java similarity index 80% rename from demo/src/test/java/com/example/demo/circulator/service/controller/PayCirController.java rename to demo/src/test/java/com/example/demo/circulator/controller/PayCirController.java index 762bc32..d645aae 100644 --- a/demo/src/test/java/com/example/demo/circulator/service/controller/PayCirController.java +++ b/demo/src/test/java/com/example/demo/circulator/controller/PayCirController.java @@ -1,11 +1,13 @@ -package com.example.demo.circulator.service.controller; +package com.example.demo.circulator.controller; import com.example.demo.circulator.service.PayCirService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PostMapping; @Controller public class PayCirController { + @Autowired PayCirService payCirService; @PostMapping("/pay") diff --git a/demo/src/test/java/com/example/demo/circulator/service/controller/SumCirController.java b/demo/src/test/java/com/example/demo/circulator/controller/SumCirController.java similarity index 92% rename from demo/src/test/java/com/example/demo/circulator/service/controller/SumCirController.java rename to demo/src/test/java/com/example/demo/circulator/controller/SumCirController.java index 26aafe0..7ba45ad 100644 --- a/demo/src/test/java/com/example/demo/circulator/service/controller/SumCirController.java +++ b/demo/src/test/java/com/example/demo/circulator/controller/SumCirController.java @@ -1,8 +1,10 @@ -package com.example.demo.circulator.service.controller; +package com.example.demo.circulator.controller; + import com.example.demo.circulator.service.CirService; import com.example.demo.circulator.service.EPAIR_CirService; import com.example.demo.circulator.service.EPR_CirService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @@ -11,7 +13,7 @@ import javax.servlet.http.HttpServletResponse; @Controller public class SumCirController { - //@Autowired + @Autowired private CirService cirService; @GetMapping("/cir/sum") diff --git a/demo/src/test/java/com/example/demo/circulator/service/CirService.java b/demo/src/test/java/com/example/demo/circulator/service/CirService.java index c3be9ef..09b230d 100644 --- a/demo/src/test/java/com/example/demo/circulator/service/CirService.java +++ b/demo/src/test/java/com/example/demo/circulator/service/CirService.java @@ -1,10 +1,11 @@ package com.example.demo.circulator.service; -import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; +@Service public abstract class CirService { @PostConstruct public void init(){} diff --git a/demo/src/test/java/com/example/demo/circulator/service/EPAIR_CirService.java b/demo/src/test/java/com/example/demo/circulator/service/EPAIR_CirService.java index 3efb4d4..bcc1cb6 100644 --- a/demo/src/test/java/com/example/demo/circulator/service/EPAIR_CirService.java +++ b/demo/src/test/java/com/example/demo/circulator/service/EPAIR_CirService.java @@ -5,13 +5,14 @@ import com.example.demo.Dao.usageDateMapper; import com.example.demo.bean.Product; import com.example.demo.bean.UsageDate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.PostConstruct; - -public class EPAIR_CirService extends CirService{ +@Service +public class EPAIR_CirService extends CirService { @Autowired private usageDateMapper usageDateMapper; + @Autowired private productMapper productMapper; @Transactional //数据库与事物的一致性 @@ -26,7 +27,7 @@ public class EPAIR_CirService extends CirService{ float intrate = product.getIntrate(); double rep_amount = 0; - double not_rep_amount = amount - rep_amount; + //double not_rep_amount = amount - rep_amount; intrate /= 12; int month = year*12; double rep = Math.pow((1+intrate),month)/(Math.pow((1+intrate),month)-1); diff --git a/demo/src/test/java/com/example/demo/circulator/service/EPR_CirService.java b/demo/src/test/java/com/example/demo/circulator/service/EPR_CirService.java index a44fce8..9cd4bce 100644 --- a/demo/src/test/java/com/example/demo/circulator/service/EPR_CirService.java +++ b/demo/src/test/java/com/example/demo/circulator/service/EPR_CirService.java @@ -7,14 +7,16 @@ import com.example.demo.bean.Product; import com.example.demo.bean.Repayment; import com.example.demo.bean.UsageDate; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.annotation.PostConstruct; - -public class EPR_CirService extends CirService{ +@Service +public class EPR_CirService extends CirService { @Autowired private usageDateMapper usageDateMapper; + @Autowired private paymentMapper paymentMapper; + @Autowired private productMapper productMapper; @Transactional //数据库与事物的一致性 diff --git a/demo/src/test/java/com/example/demo/circulator/service/PayCirService.java b/demo/src/test/java/com/example/demo/circulator/service/PayCirService.java index f656029..320e1d2 100644 --- a/demo/src/test/java/com/example/demo/circulator/service/PayCirService.java +++ b/demo/src/test/java/com/example/demo/circulator/service/PayCirService.java @@ -6,10 +6,16 @@ import com.example.demo.Dao.usageDateMapper; import com.example.demo.bean.Repayment; import com.example.demo.bean.Transaction; import com.example.demo.bean.UsageDate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +@Service public class PayCirService { + @Autowired private usageDateMapper usageDateMapper; + @Autowired private paymentMapper paymentMapper; + @Autowired private transMapper transMapper; public int payAmountCirculator(long checkNum,double pay){ diff --git a/finance (1).sql b/finance (1).sql new file mode 100644 index 0000000..e4ed745 --- /dev/null +++ b/finance (1).sql @@ -0,0 +1,155 @@ +/* + Navicat Premium Data Transfer + + Source Server : mysql + Source Server Type : MySQL + Source Server Version : 80013 + Source Host : localhost:3306 + Source Schema : finance + + Target Server Type : MySQL + Target Server Version : 80013 + File Encoding : 65001 + + Date: 07/01/2019 12:14:02 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for audit +-- ---------------------------- +DROP TABLE IF EXISTS `audit`; +CREATE TABLE `audit` ( + `checkNum` int(10) NOT NULL, + `userNum` int(10) NOT NULL, + `productNum` int(10) NOT NULL, + `bankAccount` varchar(20) NOT NULL, + `checkState` int(2) NOT NULL, + `contractNum` int(10) DEFAULT NULL, + `isSignContract` tinyint(1) DEFAULT NULL, + `year` int(2) NOT NULL, + `amount` double(20,0) NOT NULL, + `applyTime` varchar(20) NOT NULL, + `equation` int(2) NOT NULL, + PRIMARY KEY (`checkNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for bank +-- ---------------------------- +DROP TABLE IF EXISTS `bank`; +CREATE TABLE `bank` ( + `bankNum` int(10) NOT NULL, + `bankName` varchar(20) NOT NULL, + `contact` varchar(20) NOT NULL, + PRIMARY KEY (`bankNum`), + KEY `bankNum` (`bankNum`,`bankName`,`contact`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for manager +-- ---------------------------- +DROP TABLE IF EXISTS `manager`; +CREATE TABLE `manager` ( + `managerNum` int(10) NOT NULL, + `managerName` varchar(20) NOT NULL, + `managerPwd` varchar(20) NOT NULL, + `managerRight` varchar(2) NOT NULL, + `telephoneNum` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, + PRIMARY KEY (`managerNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for product +-- ---------------------------- +DROP TABLE IF EXISTS `product`; +CREATE TABLE `product` ( + `productNum` int(10) NOT NULL, + `productName` varchar(20) NOT NULL, + `category` varchar(20) NOT NULL, + `intrate` float(10,0) NOT NULL, + `bankNum` int(10) NOT NULL, + `productDescription` text, + `pictureAddress` varchar(255) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for productHistory +-- ---------------------------- +DROP TABLE IF EXISTS `productHistory`; +CREATE TABLE `productHistory` ( + `productNum` int(10) NOT NULL, + `productName` varchar(20) NOT NULL, + `category` varchar(20) NOT NULL, + `intrate` float(10,0) NOT NULL, + `bankNum` int(10) NOT NULL, + `productDescription` text NOT NULL, + `uploadTime` varchar(20) NOT NULL, + `deleteTime` varchar(20) NOT NULL, + `alterTime` varchar(20) NOT NULL, + PRIMARY KEY (`productNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for transaction +-- ---------------------------- +DROP TABLE IF EXISTS `transaction`; +CREATE TABLE `transaction` ( + `transactionNum` int(10) NOT NULL, + `payer` int(10) NOT NULL, + `payee` int(10) NOT NULL, + `transactionTime` float(20,0) NOT NULL, + `transactionAmount` double(20,0) NOT NULL, + `note` text, + PRIMARY KEY (`transactionNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for usageData +-- ---------------------------- +DROP TABLE IF EXISTS `usageData`; +CREATE TABLE `usageData` ( + `checkNum` int(10) NOT NULL, + `productNum` int(10) NOT NULL, + `userNum` int(10) NOT NULL, + `bankAccount` varchar(20) NOT NULL, + `bankNum` int(10) NOT NULL, + `year` int(2) NOT NULL, + `amount` double(20,0) NOT NULL, + `startTime` varchar(20) NOT NULL, + `equation` int(2) NOT NULL, + PRIMARY KEY (`checkNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for user +-- ---------------------------- +DROP TABLE IF EXISTS `user`; +CREATE TABLE `user` ( + `userNum` int(10) NOT NULL, + `userName` varchar(20) NOT NULL, + `userPwd` varchar(20) NOT NULL, + `userRight` varchar(2) NOT NULL, + `tureName` varchar(20) DEFAULT NULL, + `idNum` varchar(18) DEFAULT NULL, + `telephoneNum` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, + `address` varchar(50) DEFAULT NULL, + `isIdentify` tinyint(1) DEFAULT NULL, + `registerTime` varchar(20) DEFAULT NULL, + PRIMARY KEY (`userNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for userBankIdentify +-- ---------------------------- +DROP TABLE IF EXISTS `userBankIdentify`; +CREATE TABLE `userBankIdentify` ( + `userNum` int(10) NOT NULL, + `bankAccount` varchar(20) NOT NULL, + `bankAccountIdentify` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`userNum`,`bankAccount`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/finance.sql b/finance.sql new file mode 100644 index 0000000..a2213b5 --- /dev/null +++ b/finance.sql @@ -0,0 +1,136 @@ +/* + Navicat Premium Data Transfer + + Source Server : localhost_3306 + Source Server Type : MySQL + Source Server Version : 80013 + Source Host : localhost:3306 + Source Schema : finance + + Target Server Type : MySQL + Target Server Version : 80013 + File Encoding : 65001 + + Date: 03/01/2019 20:20:18 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for audit +-- ---------------------------- +DROP TABLE IF EXISTS `audit`; +CREATE TABLE `audit` ( + `checkNum` varchar(20) NOT NULL, + `userNum` varchar(20) NOT NULL, + `productNum` varchar(20) NOT NULL, + `bankAccount` varchar(20) NOT NULL, + `checkState` int(2) NOT NULL, + `contractNum` varchar(20) DEFAULT NULL, + `isSignContract` tinyint(1) DEFAULT NULL, + `year` int(2) NOT NULL, + `amount` float(20,0) NOT NULL, + `applyTime` varchar(20) NOT NULL, + PRIMARY KEY (`checkNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for bank +-- ---------------------------- +DROP TABLE IF EXISTS `bank`; +CREATE TABLE `bank` ( + `bankNum` varchar(10) NOT NULL, + `bankName` varchar(20) NOT NULL, + `contact` varchar(20) NOT NULL, + PRIMARY KEY (`bankNum`), + KEY `bankNum` (`bankNum`,`bankName`,`contact`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for manager +-- ---------------------------- +DROP TABLE IF EXISTS `manager`; +CREATE TABLE `manager` ( + `managerNum` varchar(10) NOT NULL, + `managerName` varchar(20) NOT NULL, + `managerPwd` varchar(20) NOT NULL, + `managerRight` varchar(2) NOT NULL, + `telephoneNum` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, + PRIMARY KEY (`managerNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for product +-- ---------------------------- +DROP TABLE IF EXISTS `product`; +CREATE TABLE `product` ( + `productNum` varchar(20) NOT NULL, + `productName` varchar(20) NOT NULL, + `category` varchar(20) NOT NULL, + `intrate` float(10,0) NOT NULL, + `bankNum` varchar(20) NOT NULL, + `productDescription` text, + `pictureAddress` varchar(255) DEFAULT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for transaction +-- ---------------------------- +DROP TABLE IF EXISTS `transaction`; +CREATE TABLE `transaction` ( + `transactionNum` varchar(20) NOT NULL, + `payer` varchar(20) NOT NULL, + `payee` varchar(20) NOT NULL, + `transactionTime` float(20,0) NOT NULL, + `transactionAmount` float(20,0) NOT NULL, + `note` text, + PRIMARY KEY (`transactionNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for usageData +-- ---------------------------- +DROP TABLE IF EXISTS `usageData`; +CREATE TABLE `usageData` ( + `checkNum` varchar(20) NOT NULL, + `productNum` varchar(20) NOT NULL, + `userNum` varchar(20) NOT NULL, + `bankAccount` varchar(20) NOT NULL, + `bankNum` varchar(20) NOT NULL, + `year` int(2) NOT NULL, + `amount` float(20,0) NOT NULL, + `startTime` varchar(20) NOT NULL, + PRIMARY KEY (`checkNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for user +-- ---------------------------- +DROP TABLE IF EXISTS `user`; +CREATE TABLE `user` ( + `userNum` varchar(10) NOT NULL, + `userName` varchar(20) NOT NULL, + `userPwd` varchar(20) NOT NULL, + `userRight` varchar(2) NOT NULL, + `tureName` varchar(20) DEFAULT NULL, + `idNum` varchar(18) DEFAULT NULL, + `telephoneNum` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL, + `address` varchar(50) DEFAULT NULL, + `isIdentify` tinyint(1) DEFAULT NULL, + `registerTime` varchar(20) DEFAULT NULL, + PRIMARY KEY (`userNum`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- ---------------------------- +-- Table structure for userBankIdentify +-- ---------------------------- +DROP TABLE IF EXISTS `userBankIdentify`; +CREATE TABLE `userBankIdentify` ( + `userName` varchar(20) NOT NULL, + `bankAccount` varchar(20) NOT NULL, + `bankAccountIdentify` tinyint(1) DEFAULT NULL, + PRIMARY KEY (`userName`,`bankAccount`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/main.css b/main.css new file mode 100644 index 0000000..81f985b --- /dev/null +++ b/main.css @@ -0,0 +1,274 @@ +*{ + margin: 0; + padding: 0; +} + +html, +body { + height: 100%; +} + +@font-face { + font-family: 'neo'; + src: url("NEOTERICc-1.ttf")/*tpa=http://www.17sucai.com/preview/384665/2018-12-28/login/css/font/NEOTERICc.ttf*/; +} +input:focus{ + outline: none; +} +.form input{ + width: 300px; + height: 30px; + font-size: 18px; + background: none; + border: none; + border-bottom: 1px solid #fff; + color: #fff; + margin-bottom: 20px; +} +.form input::placeholder{ + color: rgba(255,255,255,0.8); + font-size: 18px; + font-family: "neo"; +} +.confirm{ + height: 0; + overflow: hidden; + transition: .25s; +} +.btn{ + width:140px; + height: 40px; + border: 1px solid #fff; + background: none; + font-size:20px; + color: #fff; + cursor: pointer; + margin-top: 25px; + font-family: "neo"; + transition: .25s; +} +.btn:hover{ + background: rgba(255,255,255,.25); +} +#login_wrap{ + width: 980px; + min-height: 500px; + border-radius: 10px; + font-family: "neo"; + overflow: hidden; + box-shadow: 0px 0px 120px rgba(0, 0, 0, 0.25); + position: fixed; + top: 50%; + right: 50%; + margin-top: -250px; + margin-right: -490px; +} +#login{ + width: 50%; + height: 100%; + min-height: 500px; + background: linear-gradient(45deg, #9a444e, #e06267); + position: relative; + float: right; +} +#login #status{ + width: 90px; + height: 35px; + margin: 40px auto; + color: #fff; + font-size: 30px; + font-weight: 600; + position: relative; + overflow: hidden; +} +#login #status i{ + font-style: normal; + position: absolute; + transition: .5s +} +#login span{ + text-align: center; + position: absolute; + left: 50%; + margin-left: -150px; + top: 52%; + margin-top: -140px; +} +#login span a{ + text-decoration: none; + color: #fff; + display: block; + margin-top: 80px; + font-size: 18px; +} +#bg{ + background: linear-gradient(45deg, #211136, #bf5853); + height: 100%; +} +/*绘图*/ +#login_img{ + width: 50%; + min-height: 500px; + background: linear-gradient(45deg, #221334, #6c3049); + float: left; + position: relative; +} +#login_img span{ + position: absolute; + display: block; +} +#login_img .circle{ + width: 200px; + height: 200px; + border-radius: 50%; + background: linear-gradient(45deg, #df5555, #ef907a); + top: 70px; + left: 50%; + margin-left: -100px; + overflow: hidden; +} +#login_img .circle span{ + width: 150px; + height: 40px; + border-radius: 50px; + position: absolute; +} +#login_img .circle span:nth-child(1){ + top: 30px; + left: -38px; + background: #c55c59; +} +#login_img .circle span:nth-child(2){ + bottom: 20px; + right: -35px; + background: #934555; +} +#login_img .star span{ + background: radial-gradient(#fff 10%,#fff 20%,rgba(72, 34, 64, 0)); + border-radius: 50%; + box-shadow: 0 0 7px #fff; +} +#login_img .star span:nth-child(1){ + width: 15px; + height: 15px; + top: 50px; + left: 30px; +} +#login_img .star span:nth-child(2){ + width: 10px; + height: 10px; + left: 360px; + top: 80px; +} +#login_img .star span:nth-child(3){ + width: 5px; + height: 5px; + top: 400px; + left: 80px; +} +#login_img .star span:nth-child(4){ + width: 8px; + height: 8px; + top: 240px; + left: 60px; +} +#login_img .star span:nth-child(5){ + width: 4px; + height: 4px; + top: 20px; + left: 200px; +} +#login_img .star span:nth-child(6){ + width: 4px; + height: 4px; + top: 460px; + left: 410px; +} +#login_img .star span:nth-child(7){ + width: 6px; + height: 6px; + top: 250px; + left: 350px; +} +#login_img .fly_star span{ + width: 90px; + height: 3px; + background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0.67), rgba(255,255,255,0)); + background: -o-linear-gradient(left, rgba(255, 255, 255, 0.67), rgba(255,255,255,0)); + background: linear-gradient(to right, rgba(255, 255, 255, 0.67), rgba(255,255,255,0)); + transform: rotate(-45deg); +} +#login_img .fly_star span:nth-child(1){ + top:60px; + left: 80px; +} +#login_img .fly_star span:nth-child(2){ + top: 210px; + left: 332px; + opacity: 0.6; +} +#login_img p{ + text-align: center; + color: #af4b55; + font-weight: 600; + margin-top: 365px; + font-size: 25px; +} +#login_img p i{ + font-style: normal; + margin-right: 45px; +} +#login_img p i:nth-last-child(1){ + margin-right: 0; +} +/*提示*/ +#hint{ + width: 100%; + line-height: 70px; + background: linear-gradient(-90deg, #9b494d, #bf5853); + text-align: center; + font-size: 25px; + color: #fff; + box-shadow: 0 0 20px #733544; + display: none; + opacity: 0; + transition: .5s; + position: absolute; + top: 0; + z-index: 999; +} +/* 响应式 */ +@media screen and (max-width:1000px ) { + #login_img{ + display: none; + } + #login_wrap{ + width: 490px; + margin-right: -245px; + } + #login{ + width: 100%; + + } +} +@media screen and (max-width:560px ) { + #login_wrap{ + width: 330px; + margin-right: -165px; + } + #login span{ + margin-left: -125px; + } + .form input{ + width: 250px; + } + .btn{ + width: 113px; + } +} +@media screen and (max-width:345px ) { + #login_wrap { + width: 290px; + margin-right: -145px; + } +} \ No newline at end of file diff --git a/借贷平台数据结构设计第三版.docx b/借贷平台数据结构设计第三版.docx new file mode 100644 index 0000000..6ad5c35 Binary files /dev/null and b/借贷平台数据结构设计第三版.docx differ diff --git a/借贷平台数据结构设计第二版.docx b/借贷平台数据结构设计第二版.docx new file mode 100644 index 0000000..abff79f Binary files /dev/null and b/借贷平台数据结构设计第二版.docx differ diff --git a/公众号图标.png b/公众号图标.png new file mode 100644 index 0000000..32b843a Binary files /dev/null and b/公众号图标.png differ diff --git a/初步原型.docx b/初步原型.docx new file mode 100644 index 0000000..d2b0b46 Binary files /dev/null and b/初步原型.docx differ diff --git a/数据库er图.png b/数据库er图.png new file mode 100644 index 0000000..916e653 Binary files /dev/null and b/数据库er图.png differ diff --git a/详细原型.docx b/详细原型.docx new file mode 100644 index 0000000..fd95121 Binary files /dev/null and b/详细原型.docx differ