From 276d80d1d5e3c065e83c78c3ecd6f9bfa52af6b7 Mon Sep 17 00:00:00 2001
From: GYJ <1157756119@qq.com>
Date: Sat, 15 Feb 2025 09:35:13 +0800
Subject: [PATCH] first commit
---
.gitattributes | 2 +
.gitignore | 33 ++
.mvn/wrapper/maven-wrapper.properties | 19 +
.old/TbPlussShopStaffMapper.xml | 7 +
logs/history/2025-02-14/logback.0.log.gz | Bin 0 -> 2460 bytes
logs/logback.log | 199 ++++++++++
mvnw | 259 +++++++++++++
mvnw.cmd | 149 ++++++++
pom.xml | 112 ++++++
src/main/.DS_Store | Bin 0 -> 6148 bytes
.../czg/mergedata/MergeDataApplication.java | 16 +
.../common/config/CurDataSourceConfig.java | 38 ++
.../common/config/OldDataSourceConfig.java | 38 ++
.../czg/mergedata/common/utils/CodeGen.java | 126 +++++++
.../mergedata/controller/UserController.java | 12 +
.../czg/mergedata/cur/entity/CurShopInfo.java | 281 ++++++++++++++
.../mergedata/cur/entity/CurShopStaff.java | 91 +++++
.../czg/mergedata/cur/entity/CurSysUser.java | 111 ++++++
.../cur/mapper/CurShopInfoMapper.java | 14 +
.../cur/mapper/CurShopStaffMapper.java | 14 +
.../cur/mapper/CurSysUserMapper.java | 14 +
.../cur/service/CurShopInfoService.java | 14 +
.../cur/service/CurShopStaffService.java | 14 +
.../cur/service/CurSysUserService.java | 14 +
.../cur/service/impl/CurShopInfoImpl.java | 18 +
.../cur/service/impl/CurShopStaffImpl.java | 18 +
.../cur/service/impl/CurSysUserImpl.java | 18 +
.../old/entity/OldPlussShopStaff.java | 102 +++++
.../czg/mergedata/old/entity/OldShopInfo.java | 355 ++++++++++++++++++
.../czg/mergedata/old/entity/OldSysUser.java | 121 ++++++
.../old/mapper/OldPlussShopStaffMapper.java | 14 +
.../old/mapper/OldShopInfoMapper.java | 14 +
.../old/mapper/OldSysUserMapper.java | 14 +
.../old/service/OldPlussShopStaffService.java | 14 +
.../old/service/OldShopInfoService.java | 14 +
.../old/service/OldSysUserService.java | 14 +
.../service/impl/OldPlussShopStaffImpl.java | 18 +
.../old/service/impl/OldShopInfoImpl.java | 18 +
.../old/service/impl/OldSysUserImpl.java | 18 +
src/main/resources/application-dev.yml | 14 +
src/main/resources/application-prod.yml | 36 ++
src/main/resources/application.yml | 15 +
src/main/resources/logback.xml | 37 ++
.../resources/mapper/cur/ShopInfoMapper.xml | 7 +
.../resources/mapper/cur/ShopStaffMapper.xml | 7 +
.../resources/mapper/cur/SysUserMapper.xml | 7 +
.../mapper/old/PlussShopStaffMapper.xml | 7 +
.../resources/mapper/old/ShopInfoMapper.xml | 7 +
.../resources/mapper/old/SysUserMapper.xml | 7 +
.../mergedata/MergeDataApplicationTests.java | 13 +
50 files changed, 2504 insertions(+)
create mode 100644 .gitattributes
create mode 100644 .gitignore
create mode 100644 .mvn/wrapper/maven-wrapper.properties
create mode 100644 .old/TbPlussShopStaffMapper.xml
create mode 100644 logs/history/2025-02-14/logback.0.log.gz
create mode 100644 logs/logback.log
create mode 100755 mvnw
create mode 100644 mvnw.cmd
create mode 100644 pom.xml
create mode 100644 src/main/.DS_Store
create mode 100644 src/main/java/com/czg/mergedata/MergeDataApplication.java
create mode 100644 src/main/java/com/czg/mergedata/common/config/CurDataSourceConfig.java
create mode 100644 src/main/java/com/czg/mergedata/common/config/OldDataSourceConfig.java
create mode 100644 src/main/java/com/czg/mergedata/common/utils/CodeGen.java
create mode 100644 src/main/java/com/czg/mergedata/controller/UserController.java
create mode 100644 src/main/java/com/czg/mergedata/cur/entity/CurShopInfo.java
create mode 100644 src/main/java/com/czg/mergedata/cur/entity/CurShopStaff.java
create mode 100644 src/main/java/com/czg/mergedata/cur/entity/CurSysUser.java
create mode 100644 src/main/java/com/czg/mergedata/cur/mapper/CurShopInfoMapper.java
create mode 100644 src/main/java/com/czg/mergedata/cur/mapper/CurShopStaffMapper.java
create mode 100644 src/main/java/com/czg/mergedata/cur/mapper/CurSysUserMapper.java
create mode 100644 src/main/java/com/czg/mergedata/cur/service/CurShopInfoService.java
create mode 100644 src/main/java/com/czg/mergedata/cur/service/CurShopStaffService.java
create mode 100644 src/main/java/com/czg/mergedata/cur/service/CurSysUserService.java
create mode 100644 src/main/java/com/czg/mergedata/cur/service/impl/CurShopInfoImpl.java
create mode 100644 src/main/java/com/czg/mergedata/cur/service/impl/CurShopStaffImpl.java
create mode 100644 src/main/java/com/czg/mergedata/cur/service/impl/CurSysUserImpl.java
create mode 100644 src/main/java/com/czg/mergedata/old/entity/OldPlussShopStaff.java
create mode 100644 src/main/java/com/czg/mergedata/old/entity/OldShopInfo.java
create mode 100644 src/main/java/com/czg/mergedata/old/entity/OldSysUser.java
create mode 100644 src/main/java/com/czg/mergedata/old/mapper/OldPlussShopStaffMapper.java
create mode 100644 src/main/java/com/czg/mergedata/old/mapper/OldShopInfoMapper.java
create mode 100644 src/main/java/com/czg/mergedata/old/mapper/OldSysUserMapper.java
create mode 100644 src/main/java/com/czg/mergedata/old/service/OldPlussShopStaffService.java
create mode 100644 src/main/java/com/czg/mergedata/old/service/OldShopInfoService.java
create mode 100644 src/main/java/com/czg/mergedata/old/service/OldSysUserService.java
create mode 100644 src/main/java/com/czg/mergedata/old/service/impl/OldPlussShopStaffImpl.java
create mode 100644 src/main/java/com/czg/mergedata/old/service/impl/OldShopInfoImpl.java
create mode 100644 src/main/java/com/czg/mergedata/old/service/impl/OldSysUserImpl.java
create mode 100644 src/main/resources/application-dev.yml
create mode 100644 src/main/resources/application-prod.yml
create mode 100644 src/main/resources/application.yml
create mode 100644 src/main/resources/logback.xml
create mode 100644 src/main/resources/mapper/cur/ShopInfoMapper.xml
create mode 100644 src/main/resources/mapper/cur/ShopStaffMapper.xml
create mode 100644 src/main/resources/mapper/cur/SysUserMapper.xml
create mode 100644 src/main/resources/mapper/old/PlussShopStaffMapper.xml
create mode 100644 src/main/resources/mapper/old/ShopInfoMapper.xml
create mode 100644 src/main/resources/mapper/old/SysUserMapper.xml
create mode 100644 src/test/java/com/czg/mergedata/MergeDataApplicationTests.java
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..3b41682
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+/mvnw text eol=lf
+*.cmd text eol=crlf
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..d58dfb7
--- /dev/null
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+wrapperVersion=3.3.2
+distributionType=only-script
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.9/apache-maven-3.9.9-bin.zip
diff --git a/.old/TbPlussShopStaffMapper.xml b/.old/TbPlussShopStaffMapper.xml
new file mode 100644
index 0000000..01e50d9
--- /dev/null
+++ b/.old/TbPlussShopStaffMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/logs/history/2025-02-14/logback.0.log.gz b/logs/history/2025-02-14/logback.0.log.gz
new file mode 100644
index 0000000000000000000000000000000000000000..5e7969a006e7328269e72719bfa365f496246bbc
GIT binary patch
literal 2460
zcmV;N31jvjiwFP!00000|J7StZ`-&Mem?ybL|^I!6h_ot#^PYxG-lGCbU6{@5_mZHH7!AmGB(4!E)p%;$PcBiZDfgefZKix7kS`h=GPMZ~sI?^cLO+bc>d-)=>O
z)QV1Ma?5bSXIwBW-zNmWS085?zbLuj3C}@?P=&?mT)1@1eDpmn(p)O~QoessWc)y?
z^YUh$Cav{pY65GLX9We7N`@f}it
z3qeRVqFutXZ(^OE(UW4h(oO-z6)3Kqv><%Np9bVN6x
zuWqLz<@d#V&hI+;_+3d8Hk{^jAh5@i_8jr?m=%fCZB$P|RXqoz&omQrwe^mGO7_o`
zRiZ+IFXD8KEs-s4(Fz>QLARuRsB-Gvs>H
zc9@OoD%F4e*mRIOHapUAhVc}^oN@GV_C~&j^n7$rB~we<0S~=ull09is6UcB
zI${`IDB}oA3QUsh{%f*w9Z&^&{A4er`WiYw;`eQ(9H0ecH0!e#*v?^Z0h`g(miL
zJS*0&{KfkzX^U^!x_A9I^iyHqCVeNc;s<^N8!dB2p)Jzyd!7}##`A*h8wk>T%O%~Ubu%#P
zyMbjBV*+pAKqW0SAJ^~3Kw`@siNwaHZ0iPUX;DXab~Vs**EMLnFir
zqPFUEs%l30-b(caYDoO?tokR%$rt=39VD2|U#zg)F{eenFINl1K6*HSpuoLDLz?B&
zlD&8#J4NW=glf8=s;*c8f2N774qyYzXL3IkFsaftkZj*#w#Ifo)(=wA&
zZmB*lD_O$eL8{KnG(5C^B_B8N@QeRYwXo~$y87$Gaar;bCnckTtueE=nDzyl`aTK0
z-!_9@+{yk`uD2*@QRN`%A$Dt?k`t^I12uHP68Xj{L~X778M{9{@2w0eposVzBK^mez&p4=8B#M`a50hjn
zvK;HV%e<5-E;Z}5hBau@U_<7~1XJBx!R{Mii^mGYZ7$*?AoBXS5anzI!?A-OVl4B$
zj)WypV@NMzxH*(O7&(DdK7kBw0r>&h6sV4=RRq!u${*9{%5t@aYdohJRq8ltn6qyX
zJ}Dcq0>5L>Zc_nS3~-<5AZJx?`AjE@y*Y%sVygBW4~pSny;FL@VP_@@dN8O)Lq%
zH^0#V0{};KTB*an{=*b$67rwFFeOVv@c`oc@Jo7!GiYSXg66nn;Os=;w;4dm1+PRo
zO~AFfHGi#?1V=-vEcoTIxtd7p$Y{uwS2+cyoeOP1GzENyUi*mVIV*e38G5bl?zn9<
zFA5B-*jVz#5}#1{)~rtUH2nw>MMtc+GE}F%^JF}I@N+~bbdcpxi~$`Pq22IF&;vH)C6j4T-O@X=
zx}Nhi^A|g?0gHH!DRA}FEAW{tFCPNTpVr%~yJ?xDZ_f+%shph``OH{d#O|iW&ZA|M
zEsw@f3h{9!pjT)zwMzYr)&DQQxb}5Ar~}XP8n~rq6(0iyD|B>e;B?mMKG(Vk)}g
zHPN-w84~qlsP+%~cGHJ~H0VQvZf$+HMwASu~%-^AJ-9RmEuOUiYdA=6=-45}e
zY#>PUEH7~PXrQlnE!@X}^ITd;_8Fo+^pKX@{w{h~27k`{-1
z+y_YjnQ!@ax2$-wfgsJbNJnX14Rpx5e+$`#feyIS+1qy_N~B9HC)yLqC~2Yj=XX0Z
a(DN)i-rEX-w7}nKi2ff55t+5RGynhxIn8na
literal 0
HcmV?d00001
diff --git a/logs/logback.log b/logs/logback.log
new file mode 100644
index 0000000..33ef6af
--- /dev/null
+++ b/logs/logback.log
@@ -0,0 +1,199 @@
+2025-02-15 09:04:36,588 | [main] INFO com.czg.mergedata.MergeDataApplication [53] - Starting MergeDataApplication using Java 21.0.6 with PID 82279 (/Users/mac/company/czg/merge-data/target/classes started by mac in /Users/mac/company/czg/merge-data)
+2025-02-15 09:04:36,591 | [main] INFO com.czg.mergedata.MergeDataApplication [658] - The following 1 profile is active: "dev"
+2025-02-15 09:04:36,662 | [main] WARN org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext [635] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.czg.mergedata.MergeDataApplication]
+2025-02-15 09:04:36,690 | [main] ERROR org.springframework.boot.SpringApplication [857] - Application run failed
+org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.czg.mergedata.MergeDataApplication]
+ at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:185)
+ at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:418)
+ at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:290)
+ at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
+ at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
+ at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:791)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:609)
+ at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
+ at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
+ at com.czg.mergedata.MergeDataApplication.main(MergeDataApplication.java:13)
+Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'sysUserServiceImpl' for bean class [com.czg.mergedata.old.service.impl.SysUserServiceImpl] conflicts with existing, non-compatible bean definition of same name and class [com.czg.mergedata.cur.service.impl.SysUserServiceImpl]
+ at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.checkCandidate(ClassPathBeanDefinitionScanner.java:361)
+ at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:288)
+ at org.springframework.context.annotation.ComponentScanAnnotationParser.parse(ComponentScanAnnotationParser.java:128)
+ at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:332)
+ at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:267)
+ at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:193)
+ at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:171)
+ ... 13 common frames omitted
+2025-02-15 09:26:24,231 | [main] INFO com.czg.mergedata.MergeDataApplication [53] - Starting MergeDataApplication using Java 21.0.6 with PID 82723 (/Users/mac/company/czg/merge-data/target/classes started by mac in /Users/mac/company/czg/merge-data)
+2025-02-15 09:26:24,232 | [main] INFO com.czg.mergedata.MergeDataApplication [658] - The following 1 profile is active: "dev"
+2025-02-15 09:26:24,518 | [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner [44] - No MyBatis mapper was found in '[com.czg.mergedata.cur.mapper]' package. Please check your configuration.
+2025-02-15 09:26:24,519 | [main] WARN org.mybatis.spring.mapper.ClassPathMapperScanner [44] - No MyBatis mapper was found in '[com.czg.mergedata.old.mapper]' package. Please check your configuration.
+2025-02-15 09:26:24,695 | [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer [111] - Tomcat initialized with port 8100 (http)
+2025-02-15 09:26:24,703 | [main] INFO org.apache.coyote.http11.Http11NioProtocol [173] - Initializing ProtocolHandler ["http-nio-8100"]
+2025-02-15 09:26:24,704 | [main] INFO org.apache.catalina.core.StandardService [173] - Starting service [Tomcat]
+2025-02-15 09:26:24,704 | [main] INFO org.apache.catalina.core.StandardEngine [173] - Starting Servlet engine: [Apache Tomcat/10.1.34]
+2025-02-15 09:26:24,727 | [main] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/merge] [173] - Initializing Spring embedded WebApplicationContext
+2025-02-15 09:26:24,727 | [main] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext [296] - Root WebApplicationContext: initialization completed in 475 ms
+2025-02-15 09:26:24,786 | [main] WARN org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext [635] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'curEntityManagerFactory' defined in class path resource [com/czg/mergedata/common/config/CurDataSourceConfig.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'curSqlSessionFactory' threw exception with message: class path resource [mapper/primary/] cannot be resolved to URL because it does not exist
+2025-02-15 09:26:24,787 | [main] INFO org.apache.catalina.core.StandardService [173] - Stopping service [Tomcat]
+2025-02-15 09:26:24,795 | [main] INFO org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger [82] -
+
+Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
+2025-02-15 09:26:24,804 | [main] ERROR org.springframework.boot.SpringApplication [857] - Application run failed
+org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'curEntityManagerFactory' defined in class path resource [com/czg/mergedata/common/config/CurDataSourceConfig.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'curSqlSessionFactory' threw exception with message: class path resource [mapper/primary/] cannot be resolved to URL because it does not exist
+ at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657)
+ at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:645)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1361)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1191)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:336)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:307)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
+ at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1122)
+ at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1093)
+ at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1030)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627)
+ at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
+ at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
+ at com.czg.mergedata.MergeDataApplication.main(MergeDataApplication.java:13)
+Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'curSqlSessionFactory' threw exception with message: class path resource [mapper/primary/] cannot be resolved to URL because it does not exist
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:199)
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:88)
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:168)
+ at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
+ ... 21 common frames omitted
+Caused by: java.io.FileNotFoundException: class path resource [mapper/primary/] cannot be resolved to URL because it does not exist
+ at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:230)
+ at org.springframework.core.io.support.PathMatchingResourcePatternResolver.findPathMatchingResources(PathMatchingResourcePatternResolver.java:701)
+ at org.springframework.core.io.support.PathMatchingResourcePatternResolver.getResources(PathMatchingResourcePatternResolver.java:366)
+ at com.czg.mergedata.common.config.CurDataSourceConfig.curSqlSessionFactory(CurDataSourceConfig.java:35)
+ at com.czg.mergedata.common.config.CurDataSourceConfig$$SpringCGLIB$$0.CGLIB$curSqlSessionFactory$1()
+ at com.czg.mergedata.common.config.CurDataSourceConfig$$SpringCGLIB$$FastClass$$1.invoke()
+ at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258)
+ at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:348)
+ at com.czg.mergedata.common.config.CurDataSourceConfig$$SpringCGLIB$$0.curSqlSessionFactory()
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:171)
+ ... 24 common frames omitted
+2025-02-15 09:26:33,033 | [main] INFO com.zaxxer.hikari.HikariDataSource [110] - HikariPool-1 - Starting...
+2025-02-15 09:26:33,683 | [main] INFO com.zaxxer.hikari.HikariDataSource [123] - HikariPool-1 - Start completed.
+2025-02-15 09:26:57,571 | [main] INFO com.zaxxer.hikari.HikariDataSource [110] - HikariPool-1 - Starting...
+2025-02-15 09:26:58,152 | [main] INFO com.zaxxer.hikari.HikariDataSource [123] - HikariPool-1 - Start completed.
+2025-02-15 09:27:14,741 | [main] INFO com.czg.mergedata.MergeDataApplication [53] - Starting MergeDataApplication using Java 21.0.6 with PID 82753 (/Users/mac/company/czg/merge-data/target/classes started by mac in /Users/mac/company/czg/merge-data)
+2025-02-15 09:27:14,742 | [main] INFO com.czg.mergedata.MergeDataApplication [658] - The following 1 profile is active: "dev"
+2025-02-15 09:27:15,190 | [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer [111] - Tomcat initialized with port 8100 (http)
+2025-02-15 09:27:15,197 | [main] INFO org.apache.coyote.http11.Http11NioProtocol [173] - Initializing ProtocolHandler ["http-nio-8100"]
+2025-02-15 09:27:15,198 | [main] INFO org.apache.catalina.core.StandardService [173] - Starting service [Tomcat]
+2025-02-15 09:27:15,198 | [main] INFO org.apache.catalina.core.StandardEngine [173] - Starting Servlet engine: [Apache Tomcat/10.1.34]
+2025-02-15 09:27:15,219 | [main] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/merge] [173] - Initializing Spring embedded WebApplicationContext
+2025-02-15 09:27:15,219 | [main] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext [296] - Root WebApplicationContext: initialization completed in 460 ms
+2025-02-15 09:27:15,257 | [main] WARN org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext [635] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'curSysUserImpl': Unsatisfied dependency expressed through field 'mapper': Error creating bean with name 'curSysUserMapper' defined in file [/Users/mac/company/czg/merge-data/target/classes/com/czg/mergedata/cur/mapper/CurSysUserMapper.class]: Cannot resolve reference to bean 'curEntityManagerFactory' while setting bean property 'sqlSessionFactory'
+2025-02-15 09:27:15,258 | [main] INFO org.apache.catalina.core.StandardService [173] - Stopping service [Tomcat]
+2025-02-15 09:27:15,264 | [main] INFO org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLogger [82] -
+
+Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
+2025-02-15 09:27:15,271 | [main] ERROR org.springframework.boot.SpringApplication [857] - Application run failed
+org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'curSysUserImpl': Unsatisfied dependency expressed through field 'mapper': Error creating bean with name 'curSysUserMapper' defined in file [/Users/mac/company/czg/merge-data/target/classes/com/czg/mergedata/cur/mapper/CurSysUserMapper.class]: Cannot resolve reference to bean 'curEntityManagerFactory' while setting bean property 'sqlSessionFactory'
+ at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:788)
+ at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:768)
+ at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:146)
+ at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:509)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1445)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:336)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:307)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
+ at org.springframework.beans.factory.support.DefaultListableBeanFactory.instantiateSingleton(DefaultListableBeanFactory.java:1122)
+ at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingleton(DefaultListableBeanFactory.java:1093)
+ at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:1030)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:987)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627)
+ at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
+ at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
+ at com.czg.mergedata.MergeDataApplication.main(MergeDataApplication.java:13)
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'curSysUserMapper' defined in file [/Users/mac/company/czg/merge-data/target/classes/com/czg/mergedata/cur/mapper/CurSysUserMapper.class]: Cannot resolve reference to bean 'curEntityManagerFactory' while setting bean property 'sqlSessionFactory'
+ at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:377)
+ at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:135)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1711)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1460)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:336)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:307)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
+ at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
+ at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1631)
+ at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1519)
+ at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:785)
+ ... 22 common frames omitted
+Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'curEntityManagerFactory' defined in class path resource [com/czg/mergedata/common/config/CurDataSourceConfig.class]: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'curSqlSessionFactory' threw exception with message: class path resource [mapper/primary/] cannot be resolved to URL because it does not exist
+ at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:657)
+ at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:645)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1361)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1191)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:563)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:336)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:307)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
+ at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:365)
+ ... 35 common frames omitted
+Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'curSqlSessionFactory' threw exception with message: class path resource [mapper/primary/] cannot be resolved to URL because it does not exist
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:199)
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiateWithFactoryMethod(SimpleInstantiationStrategy.java:88)
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:168)
+ at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)
+ ... 45 common frames omitted
+Caused by: java.io.FileNotFoundException: class path resource [mapper/primary/] cannot be resolved to URL because it does not exist
+ at org.springframework.core.io.ClassPathResource.getURL(ClassPathResource.java:230)
+ at org.springframework.core.io.support.PathMatchingResourcePatternResolver.findPathMatchingResources(PathMatchingResourcePatternResolver.java:701)
+ at org.springframework.core.io.support.PathMatchingResourcePatternResolver.getResources(PathMatchingResourcePatternResolver.java:366)
+ at com.czg.mergedata.common.config.CurDataSourceConfig.curSqlSessionFactory(CurDataSourceConfig.java:35)
+ at com.czg.mergedata.common.config.CurDataSourceConfig$$SpringCGLIB$$0.CGLIB$curSqlSessionFactory$1()
+ at com.czg.mergedata.common.config.CurDataSourceConfig$$SpringCGLIB$$FastClass$$1.invoke()
+ at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:258)
+ at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:348)
+ at com.czg.mergedata.common.config.CurDataSourceConfig$$SpringCGLIB$$0.curSqlSessionFactory()
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at org.springframework.beans.factory.support.SimpleInstantiationStrategy.lambda$instantiate$0(SimpleInstantiationStrategy.java:171)
+ ... 48 common frames omitted
+2025-02-15 09:28:23,012 | [main] INFO com.czg.mergedata.MergeDataApplication [53] - Starting MergeDataApplication using Java 21.0.6 with PID 82765 (/Users/mac/company/czg/merge-data/target/classes started by mac in /Users/mac/company/czg/merge-data)
+2025-02-15 09:28:23,014 | [main] INFO com.czg.mergedata.MergeDataApplication [658] - The following 1 profile is active: "dev"
+2025-02-15 09:28:23,469 | [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer [111] - Tomcat initialized with port 8100 (http)
+2025-02-15 09:28:23,477 | [main] INFO org.apache.coyote.http11.Http11NioProtocol [173] - Initializing ProtocolHandler ["http-nio-8100"]
+2025-02-15 09:28:23,478 | [main] INFO org.apache.catalina.core.StandardService [173] - Starting service [Tomcat]
+2025-02-15 09:28:23,478 | [main] INFO org.apache.catalina.core.StandardEngine [173] - Starting Servlet engine: [Apache Tomcat/10.1.34]
+2025-02-15 09:28:23,500 | [main] INFO org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/merge] [173] - Initializing Spring embedded WebApplicationContext
+2025-02-15 09:28:23,500 | [main] INFO org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext [296] - Root WebApplicationContext: initialization completed in 469 ms
+2025-02-15 09:28:23,803 | [main] INFO org.apache.coyote.http11.Http11NioProtocol [173] - Starting ProtocolHandler ["http-nio-8100"]
+2025-02-15 09:28:23,813 | [main] INFO org.springframework.boot.web.embedded.tomcat.TomcatWebServer [243] - Tomcat started on port 8100 (http) with context path '/merge'
+2025-02-15 09:28:23,818 | [main] INFO com.czg.mergedata.MergeDataApplication [59] - Started MergeDataApplication in 0.982 seconds (process running for 1.374)
+2025-02-15 09:28:32,587 | [SpringApplicationShutdownHook] INFO org.springframework.boot.web.embedded.tomcat.GracefulShutdown [54] - Commencing graceful shutdown. Waiting for active requests to complete
+2025-02-15 09:28:32,594 | [tomcat-shutdown] INFO org.springframework.boot.web.embedded.tomcat.GracefulShutdown [76] - Graceful shutdown complete
+2025-02-15 09:29:02,514 | [main] INFO com.zaxxer.hikari.HikariDataSource [110] - HikariPool-1 - Starting...
+2025-02-15 09:29:03,080 | [main] INFO com.zaxxer.hikari.HikariDataSource [123] - HikariPool-1 - Start completed.
+2025-02-15 09:29:11,964 | [main] INFO com.zaxxer.hikari.HikariDataSource [110] - HikariPool-1 - Starting...
+2025-02-15 09:29:12,477 | [main] INFO com.zaxxer.hikari.HikariDataSource [123] - HikariPool-1 - Start completed.
+2025-02-15 09:30:05,595 | [main] INFO com.zaxxer.hikari.HikariDataSource [110] - HikariPool-1 - Starting...
+2025-02-15 09:30:06,160 | [main] INFO com.zaxxer.hikari.HikariDataSource [123] - HikariPool-1 - Start completed.
+2025-02-15 09:30:31,952 | [main] INFO com.zaxxer.hikari.HikariDataSource [110] - HikariPool-1 - Starting...
+2025-02-15 09:30:32,520 | [main] INFO com.zaxxer.hikari.HikariDataSource [123] - HikariPool-1 - Start completed.
diff --git a/mvnw b/mvnw
new file mode 100755
index 0000000..19529dd
--- /dev/null
+++ b/mvnw
@@ -0,0 +1,259 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Apache Maven Wrapper startup batch script, version 3.3.2
+#
+# Optional ENV vars
+# -----------------
+# JAVA_HOME - location of a JDK home dir, required when download maven via java source
+# MVNW_REPOURL - repo url base for downloading maven distribution
+# MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
+# MVNW_VERBOSE - true: enable verbose log; debug: trace the mvnw script; others: silence the output
+# ----------------------------------------------------------------------------
+
+set -euf
+[ "${MVNW_VERBOSE-}" != debug ] || set -x
+
+# OS specific support.
+native_path() { printf %s\\n "$1"; }
+case "$(uname)" in
+CYGWIN* | MINGW*)
+ [ -z "${JAVA_HOME-}" ] || JAVA_HOME="$(cygpath --unix "$JAVA_HOME")"
+ native_path() { cygpath --path --windows "$1"; }
+ ;;
+esac
+
+# set JAVACMD and JAVACCMD
+set_java_home() {
+ # For Cygwin and MinGW, ensure paths are in Unix format before anything is touched
+ if [ -n "${JAVA_HOME-}" ]; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ]; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ JAVACCMD="$JAVA_HOME/jre/sh/javac"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ JAVACCMD="$JAVA_HOME/bin/javac"
+
+ if [ ! -x "$JAVACMD" ] || [ ! -x "$JAVACCMD" ]; then
+ echo "The JAVA_HOME environment variable is not defined correctly, so mvnw cannot run." >&2
+ echo "JAVA_HOME is set to \"$JAVA_HOME\", but \"\$JAVA_HOME/bin/java\" or \"\$JAVA_HOME/bin/javac\" does not exist." >&2
+ return 1
+ fi
+ fi
+ else
+ JAVACMD="$(
+ 'set' +e
+ 'unset' -f command 2>/dev/null
+ 'command' -v java
+ )" || :
+ JAVACCMD="$(
+ 'set' +e
+ 'unset' -f command 2>/dev/null
+ 'command' -v javac
+ )" || :
+
+ if [ ! -x "${JAVACMD-}" ] || [ ! -x "${JAVACCMD-}" ]; then
+ echo "The java/javac command does not exist in PATH nor is JAVA_HOME set, so mvnw cannot run." >&2
+ return 1
+ fi
+ fi
+}
+
+# hash string like Java String::hashCode
+hash_string() {
+ str="${1:-}" h=0
+ while [ -n "$str" ]; do
+ char="${str%"${str#?}"}"
+ h=$(((h * 31 + $(LC_CTYPE=C printf %d "'$char")) % 4294967296))
+ str="${str#?}"
+ done
+ printf %x\\n $h
+}
+
+verbose() { :; }
+[ "${MVNW_VERBOSE-}" != true ] || verbose() { printf %s\\n "${1-}"; }
+
+die() {
+ printf %s\\n "$1" >&2
+ exit 1
+}
+
+trim() {
+ # MWRAPPER-139:
+ # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
+ # Needed for removing poorly interpreted newline sequences when running in more
+ # exotic environments such as mingw bash on Windows.
+ printf "%s" "${1}" | tr -d '[:space:]'
+}
+
+# parse distributionUrl and optional distributionSha256Sum, requires .mvn/wrapper/maven-wrapper.properties
+while IFS="=" read -r key value; do
+ case "${key-}" in
+ distributionUrl) distributionUrl=$(trim "${value-}") ;;
+ distributionSha256Sum) distributionSha256Sum=$(trim "${value-}") ;;
+ esac
+done <"${0%/*}/.mvn/wrapper/maven-wrapper.properties"
+[ -n "${distributionUrl-}" ] || die "cannot read distributionUrl property in ${0%/*}/.mvn/wrapper/maven-wrapper.properties"
+
+case "${distributionUrl##*/}" in
+maven-mvnd-*bin.*)
+ MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/
+ case "${PROCESSOR_ARCHITECTURE-}${PROCESSOR_ARCHITEW6432-}:$(uname -a)" in
+ *AMD64:CYGWIN* | *AMD64:MINGW*) distributionPlatform=windows-amd64 ;;
+ :Darwin*x86_64) distributionPlatform=darwin-amd64 ;;
+ :Darwin*arm64) distributionPlatform=darwin-aarch64 ;;
+ :Linux*x86_64*) distributionPlatform=linux-amd64 ;;
+ *)
+ echo "Cannot detect native platform for mvnd on $(uname)-$(uname -m), use pure java version" >&2
+ distributionPlatform=linux-amd64
+ ;;
+ esac
+ distributionUrl="${distributionUrl%-bin.*}-$distributionPlatform.zip"
+ ;;
+maven-mvnd-*) MVN_CMD=mvnd.sh _MVNW_REPO_PATTERN=/maven/mvnd/ ;;
+*) MVN_CMD="mvn${0##*/mvnw}" _MVNW_REPO_PATTERN=/org/apache/maven/ ;;
+esac
+
+# apply MVNW_REPOURL and calculate MAVEN_HOME
+# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/
+[ -z "${MVNW_REPOURL-}" ] || distributionUrl="$MVNW_REPOURL$_MVNW_REPO_PATTERN${distributionUrl#*"$_MVNW_REPO_PATTERN"}"
+distributionUrlName="${distributionUrl##*/}"
+distributionUrlNameMain="${distributionUrlName%.*}"
+distributionUrlNameMain="${distributionUrlNameMain%-bin}"
+MAVEN_USER_HOME="${MAVEN_USER_HOME:-${HOME}/.m2}"
+MAVEN_HOME="${MAVEN_USER_HOME}/wrapper/dists/${distributionUrlNameMain-}/$(hash_string "$distributionUrl")"
+
+exec_maven() {
+ unset MVNW_VERBOSE MVNW_USERNAME MVNW_PASSWORD MVNW_REPOURL || :
+ exec "$MAVEN_HOME/bin/$MVN_CMD" "$@" || die "cannot exec $MAVEN_HOME/bin/$MVN_CMD"
+}
+
+if [ -d "$MAVEN_HOME" ]; then
+ verbose "found existing MAVEN_HOME at $MAVEN_HOME"
+ exec_maven "$@"
+fi
+
+case "${distributionUrl-}" in
+*?-bin.zip | *?maven-mvnd-?*-?*.zip) ;;
+*) die "distributionUrl is not valid, must match *-bin.zip or maven-mvnd-*.zip, but found '${distributionUrl-}'" ;;
+esac
+
+# prepare tmp dir
+if TMP_DOWNLOAD_DIR="$(mktemp -d)" && [ -d "$TMP_DOWNLOAD_DIR" ]; then
+ clean() { rm -rf -- "$TMP_DOWNLOAD_DIR"; }
+ trap clean HUP INT TERM EXIT
+else
+ die "cannot create temp dir"
+fi
+
+mkdir -p -- "${MAVEN_HOME%/*}"
+
+# Download and Install Apache Maven
+verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
+verbose "Downloading from: $distributionUrl"
+verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
+
+# select .zip or .tar.gz
+if ! command -v unzip >/dev/null; then
+ distributionUrl="${distributionUrl%.zip}.tar.gz"
+ distributionUrlName="${distributionUrl##*/}"
+fi
+
+# verbose opt
+__MVNW_QUIET_WGET=--quiet __MVNW_QUIET_CURL=--silent __MVNW_QUIET_UNZIP=-q __MVNW_QUIET_TAR=''
+[ "${MVNW_VERBOSE-}" != true ] || __MVNW_QUIET_WGET='' __MVNW_QUIET_CURL='' __MVNW_QUIET_UNZIP='' __MVNW_QUIET_TAR=v
+
+# normalize http auth
+case "${MVNW_PASSWORD:+has-password}" in
+'') MVNW_USERNAME='' MVNW_PASSWORD='' ;;
+has-password) [ -n "${MVNW_USERNAME-}" ] || MVNW_USERNAME='' MVNW_PASSWORD='' ;;
+esac
+
+if [ -z "${MVNW_USERNAME-}" ] && command -v wget >/dev/null; then
+ verbose "Found wget ... using wget"
+ wget ${__MVNW_QUIET_WGET:+"$__MVNW_QUIET_WGET"} "$distributionUrl" -O "$TMP_DOWNLOAD_DIR/$distributionUrlName" || die "wget: Failed to fetch $distributionUrl"
+elif [ -z "${MVNW_USERNAME-}" ] && command -v curl >/dev/null; then
+ verbose "Found curl ... using curl"
+ curl ${__MVNW_QUIET_CURL:+"$__MVNW_QUIET_CURL"} -f -L -o "$TMP_DOWNLOAD_DIR/$distributionUrlName" "$distributionUrl" || die "curl: Failed to fetch $distributionUrl"
+elif set_java_home; then
+ verbose "Falling back to use Java to download"
+ javaSource="$TMP_DOWNLOAD_DIR/Downloader.java"
+ targetZip="$TMP_DOWNLOAD_DIR/$distributionUrlName"
+ cat >"$javaSource" <<-END
+ public class Downloader extends java.net.Authenticator
+ {
+ protected java.net.PasswordAuthentication getPasswordAuthentication()
+ {
+ return new java.net.PasswordAuthentication( System.getenv( "MVNW_USERNAME" ), System.getenv( "MVNW_PASSWORD" ).toCharArray() );
+ }
+ public static void main( String[] args ) throws Exception
+ {
+ setDefault( new Downloader() );
+ java.nio.file.Files.copy( java.net.URI.create( args[0] ).toURL().openStream(), java.nio.file.Paths.get( args[1] ).toAbsolutePath().normalize() );
+ }
+ }
+ END
+ # For Cygwin/MinGW, switch paths to Windows format before running javac and java
+ verbose " - Compiling Downloader.java ..."
+ "$(native_path "$JAVACCMD")" "$(native_path "$javaSource")" || die "Failed to compile Downloader.java"
+ verbose " - Running Downloader.java ..."
+ "$(native_path "$JAVACMD")" -cp "$(native_path "$TMP_DOWNLOAD_DIR")" Downloader "$distributionUrl" "$(native_path "$targetZip")"
+fi
+
+# If specified, validate the SHA-256 sum of the Maven distribution zip file
+if [ -n "${distributionSha256Sum-}" ]; then
+ distributionSha256Result=false
+ if [ "$MVN_CMD" = mvnd.sh ]; then
+ echo "Checksum validation is not supported for maven-mvnd." >&2
+ echo "Please disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
+ exit 1
+ elif command -v sha256sum >/dev/null; then
+ if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | sha256sum -c >/dev/null 2>&1; then
+ distributionSha256Result=true
+ fi
+ elif command -v shasum >/dev/null; then
+ if echo "$distributionSha256Sum $TMP_DOWNLOAD_DIR/$distributionUrlName" | shasum -a 256 -c >/dev/null 2>&1; then
+ distributionSha256Result=true
+ fi
+ else
+ echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available." >&2
+ echo "Please install either command, or disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties." >&2
+ exit 1
+ fi
+ if [ $distributionSha256Result = false ]; then
+ echo "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised." >&2
+ echo "If you updated your Maven version, you need to update the specified distributionSha256Sum property." >&2
+ exit 1
+ fi
+fi
+
+# unzip and move
+if command -v unzip >/dev/null; then
+ unzip ${__MVNW_QUIET_UNZIP:+"$__MVNW_QUIET_UNZIP"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -d "$TMP_DOWNLOAD_DIR" || die "failed to unzip"
+else
+ tar xzf${__MVNW_QUIET_TAR:+"$__MVNW_QUIET_TAR"} "$TMP_DOWNLOAD_DIR/$distributionUrlName" -C "$TMP_DOWNLOAD_DIR" || die "failed to untar"
+fi
+printf %s\\n "$distributionUrl" >"$TMP_DOWNLOAD_DIR/$distributionUrlNameMain/mvnw.url"
+mv -- "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" "$MAVEN_HOME" || [ -d "$MAVEN_HOME" ] || die "fail to move MAVEN_HOME"
+
+clean || :
+exec_maven "$@"
diff --git a/mvnw.cmd b/mvnw.cmd
new file mode 100644
index 0000000..249bdf3
--- /dev/null
+++ b/mvnw.cmd
@@ -0,0 +1,149 @@
+<# : batch portion
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements. See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership. The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License. You may obtain a copy of the License at
+@REM
+@REM http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied. See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Apache Maven Wrapper startup batch script, version 3.3.2
+@REM
+@REM Optional ENV vars
+@REM MVNW_REPOURL - repo url base for downloading maven distribution
+@REM MVNW_USERNAME/MVNW_PASSWORD - user and password for downloading maven
+@REM MVNW_VERBOSE - true: enable verbose log; others: silence the output
+@REM ----------------------------------------------------------------------------
+
+@IF "%__MVNW_ARG0_NAME__%"=="" (SET __MVNW_ARG0_NAME__=%~nx0)
+@SET __MVNW_CMD__=
+@SET __MVNW_ERROR__=
+@SET __MVNW_PSMODULEP_SAVE=%PSModulePath%
+@SET PSModulePath=
+@FOR /F "usebackq tokens=1* delims==" %%A IN (`powershell -noprofile "& {$scriptDir='%~dp0'; $script='%__MVNW_ARG0_NAME__%'; icm -ScriptBlock ([Scriptblock]::Create((Get-Content -Raw '%~f0'))) -NoNewScope}"`) DO @(
+ IF "%%A"=="MVN_CMD" (set __MVNW_CMD__=%%B) ELSE IF "%%B"=="" (echo %%A) ELSE (echo %%A=%%B)
+)
+@SET PSModulePath=%__MVNW_PSMODULEP_SAVE%
+@SET __MVNW_PSMODULEP_SAVE=
+@SET __MVNW_ARG0_NAME__=
+@SET MVNW_USERNAME=
+@SET MVNW_PASSWORD=
+@IF NOT "%__MVNW_CMD__%"=="" (%__MVNW_CMD__% %*)
+@echo Cannot start maven from wrapper >&2 && exit /b 1
+@GOTO :EOF
+: end batch / begin powershell #>
+
+$ErrorActionPreference = "Stop"
+if ($env:MVNW_VERBOSE -eq "true") {
+ $VerbosePreference = "Continue"
+}
+
+# calculate distributionUrl, requires .mvn/wrapper/maven-wrapper.properties
+$distributionUrl = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionUrl
+if (!$distributionUrl) {
+ Write-Error "cannot read distributionUrl property in $scriptDir/.mvn/wrapper/maven-wrapper.properties"
+}
+
+switch -wildcard -casesensitive ( $($distributionUrl -replace '^.*/','') ) {
+ "maven-mvnd-*" {
+ $USE_MVND = $true
+ $distributionUrl = $distributionUrl -replace '-bin\.[^.]*$',"-windows-amd64.zip"
+ $MVN_CMD = "mvnd.cmd"
+ break
+ }
+ default {
+ $USE_MVND = $false
+ $MVN_CMD = $script -replace '^mvnw','mvn'
+ break
+ }
+}
+
+# apply MVNW_REPOURL and calculate MAVEN_HOME
+# maven home pattern: ~/.m2/wrapper/dists/{apache-maven-,maven-mvnd--}/
+if ($env:MVNW_REPOURL) {
+ $MVNW_REPO_PATTERN = if ($USE_MVND) { "/org/apache/maven/" } else { "/maven/mvnd/" }
+ $distributionUrl = "$env:MVNW_REPOURL$MVNW_REPO_PATTERN$($distributionUrl -replace '^.*'+$MVNW_REPO_PATTERN,'')"
+}
+$distributionUrlName = $distributionUrl -replace '^.*/',''
+$distributionUrlNameMain = $distributionUrlName -replace '\.[^.]*$','' -replace '-bin$',''
+$MAVEN_HOME_PARENT = "$HOME/.m2/wrapper/dists/$distributionUrlNameMain"
+if ($env:MAVEN_USER_HOME) {
+ $MAVEN_HOME_PARENT = "$env:MAVEN_USER_HOME/wrapper/dists/$distributionUrlNameMain"
+}
+$MAVEN_HOME_NAME = ([System.Security.Cryptography.MD5]::Create().ComputeHash([byte[]][char[]]$distributionUrl) | ForEach-Object {$_.ToString("x2")}) -join ''
+$MAVEN_HOME = "$MAVEN_HOME_PARENT/$MAVEN_HOME_NAME"
+
+if (Test-Path -Path "$MAVEN_HOME" -PathType Container) {
+ Write-Verbose "found existing MAVEN_HOME at $MAVEN_HOME"
+ Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
+ exit $?
+}
+
+if (! $distributionUrlNameMain -or ($distributionUrlName -eq $distributionUrlNameMain)) {
+ Write-Error "distributionUrl is not valid, must end with *-bin.zip, but found $distributionUrl"
+}
+
+# prepare tmp dir
+$TMP_DOWNLOAD_DIR_HOLDER = New-TemporaryFile
+$TMP_DOWNLOAD_DIR = New-Item -Itemtype Directory -Path "$TMP_DOWNLOAD_DIR_HOLDER.dir"
+$TMP_DOWNLOAD_DIR_HOLDER.Delete() | Out-Null
+trap {
+ if ($TMP_DOWNLOAD_DIR.Exists) {
+ try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
+ catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
+ }
+}
+
+New-Item -Itemtype Directory -Path "$MAVEN_HOME_PARENT" -Force | Out-Null
+
+# Download and Install Apache Maven
+Write-Verbose "Couldn't find MAVEN_HOME, downloading and installing it ..."
+Write-Verbose "Downloading from: $distributionUrl"
+Write-Verbose "Downloading to: $TMP_DOWNLOAD_DIR/$distributionUrlName"
+
+$webclient = New-Object System.Net.WebClient
+if ($env:MVNW_USERNAME -and $env:MVNW_PASSWORD) {
+ $webclient.Credentials = New-Object System.Net.NetworkCredential($env:MVNW_USERNAME, $env:MVNW_PASSWORD)
+}
+[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+$webclient.DownloadFile($distributionUrl, "$TMP_DOWNLOAD_DIR/$distributionUrlName") | Out-Null
+
+# If specified, validate the SHA-256 sum of the Maven distribution zip file
+$distributionSha256Sum = (Get-Content -Raw "$scriptDir/.mvn/wrapper/maven-wrapper.properties" | ConvertFrom-StringData).distributionSha256Sum
+if ($distributionSha256Sum) {
+ if ($USE_MVND) {
+ Write-Error "Checksum validation is not supported for maven-mvnd. `nPlease disable validation by removing 'distributionSha256Sum' from your maven-wrapper.properties."
+ }
+ Import-Module $PSHOME\Modules\Microsoft.PowerShell.Utility -Function Get-FileHash
+ if ((Get-FileHash "$TMP_DOWNLOAD_DIR/$distributionUrlName" -Algorithm SHA256).Hash.ToLower() -ne $distributionSha256Sum) {
+ Write-Error "Error: Failed to validate Maven distribution SHA-256, your Maven distribution might be compromised. If you updated your Maven version, you need to update the specified distributionSha256Sum property."
+ }
+}
+
+# unzip and move
+Expand-Archive "$TMP_DOWNLOAD_DIR/$distributionUrlName" -DestinationPath "$TMP_DOWNLOAD_DIR" | Out-Null
+Rename-Item -Path "$TMP_DOWNLOAD_DIR/$distributionUrlNameMain" -NewName $MAVEN_HOME_NAME | Out-Null
+try {
+ Move-Item -Path "$TMP_DOWNLOAD_DIR/$MAVEN_HOME_NAME" -Destination $MAVEN_HOME_PARENT | Out-Null
+} catch {
+ if (! (Test-Path -Path "$MAVEN_HOME" -PathType Container)) {
+ Write-Error "fail to move MAVEN_HOME"
+ }
+} finally {
+ try { Remove-Item $TMP_DOWNLOAD_DIR -Recurse -Force | Out-Null }
+ catch { Write-Warning "Cannot remove $TMP_DOWNLOAD_DIR" }
+}
+
+Write-Output "MVN_CMD=$MAVEN_HOME/bin/$MVN_CMD"
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..d219267
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,112 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.4.2
+
+
+ com.czg
+ merge-data
+ 0.0.1-SNAPSHOT
+ merge-data
+ merge-data
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 21
+
+
+
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+ com.mysql
+ mysql-connector-j
+ 8.2.0
+
+
+
+ com.mybatis-flex
+ mybatis-flex-spring-boot3-starter
+ 1.10.7
+
+
+ com.mybatis-flex
+ mybatis-flex-processor
+ 1.10.7
+ provided
+
+
+
+ com.mybatis-flex
+ mybatis-flex-codegen
+ 1.10.7
+
+
+ com.zaxxer
+ HikariCP
+ 4.0.3
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
+
diff --git a/src/main/.DS_Store b/src/main/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..0e98056ead8b2b4ddd22a5b0719be234dbd12c0a
GIT binary patch
literal 6148
zcmeHKI|>3p3{BKRv9YwAD|mxJ^aNf&P_YpOMeD6Rmq+vEgD9(wU?VS(yqQeiEc=Sh
zMnrUaUQa|uBGQK&%GE;K?A*L%oy;f@jyukBl$C7cbXl~j-zSVa01F&BJoAtH-C@6t
zo8MEJr2a0lP&G#k4Lb5A>uO>X7ausK8$-puO2*HpMGtZ*9Gt_1Xeo!mZ{8H^bT~2;Po?-j1=cc0Bf?
bs4KR{c};8rosPWIf&3XTU1(I`*9zPLYRVP2
literal 0
HcmV?d00001
diff --git a/src/main/java/com/czg/mergedata/MergeDataApplication.java b/src/main/java/com/czg/mergedata/MergeDataApplication.java
new file mode 100644
index 0000000..5a5467b
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/MergeDataApplication.java
@@ -0,0 +1,16 @@
+package com.czg.mergedata;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @author GY_Joker
+ */
+@SpringBootApplication
+public class MergeDataApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(MergeDataApplication.class, args);
+ }
+
+}
diff --git a/src/main/java/com/czg/mergedata/common/config/CurDataSourceConfig.java b/src/main/java/com/czg/mergedata/common/config/CurDataSourceConfig.java
new file mode 100644
index 0000000..e26559f
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/common/config/CurDataSourceConfig.java
@@ -0,0 +1,38 @@
+package com.czg.mergedata.common.config;
+
+import com.zaxxer.hikari.HikariDataSource;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+
+import javax.sql.DataSource;
+
+/**
+ * @author GYJoker
+ */
+@Configuration
+@MapperScan(basePackages = "com.czg.mergedata.cur.mapper", sqlSessionFactoryRef = "curEntityManagerFactory")
+public class CurDataSourceConfig {
+ @Primary
+ @Bean(name = "curDataSource")
+ @ConfigurationProperties(prefix = "spring.datasource.cur")
+ public DataSource primaryDataSource() {
+ return DataSourceBuilder.create().type(HikariDataSource.class).build();
+ }
+
+ @Primary
+ @Bean(name = "curEntityManagerFactory")
+ public SqlSessionFactory curSqlSessionFactory(@Qualifier("curDataSource") DataSource dataSource) throws Exception {
+ SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
+ sessionFactory.setDataSource(dataSource);
+ sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/cur/*.xml"));
+ return sessionFactory.getObject();
+ }
+}
diff --git a/src/main/java/com/czg/mergedata/common/config/OldDataSourceConfig.java b/src/main/java/com/czg/mergedata/common/config/OldDataSourceConfig.java
new file mode 100644
index 0000000..0504a47
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/common/config/OldDataSourceConfig.java
@@ -0,0 +1,38 @@
+package com.czg.mergedata.common.config;
+
+import com.zaxxer.hikari.HikariDataSource;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
+
+import javax.sql.DataSource;
+
+/**
+ * @author GYJoker
+ */
+@Configuration
+@MapperScan(basePackages = "com.czg.mergedata.old.mapper", sqlSessionFactoryRef = "oldEntityManagerFactory")
+public class OldDataSourceConfig {
+ @Primary
+ @Bean(name = "oldDataSource")
+ @ConfigurationProperties(prefix = "spring.datasource.old")
+ public DataSource oldDataSource() {
+ return DataSourceBuilder.create().type(HikariDataSource.class).build();
+ }
+
+ @Primary
+ @Bean(name = "oldEntityManagerFactory")
+ public SqlSessionFactory oldSqlSessionFactory(@Qualifier("oldDataSource") DataSource dataSource) throws Exception {
+ SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
+ sessionFactory.setDataSource(dataSource);
+ sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/old/*.xml"));
+ return sessionFactory.getObject();
+ }
+}
diff --git a/src/main/java/com/czg/mergedata/common/utils/CodeGen.java b/src/main/java/com/czg/mergedata/common/utils/CodeGen.java
new file mode 100644
index 0000000..1d59413
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/common/utils/CodeGen.java
@@ -0,0 +1,126 @@
+package com.czg.mergedata.common.utils;
+
+import com.mybatisflex.codegen.Generator;
+import com.mybatisflex.codegen.config.*;
+import com.mybatisflex.core.service.IService;
+import com.mybatisflex.spring.service.impl.ServiceImpl;
+import com.zaxxer.hikari.HikariDataSource;
+
+/**
+ * 代码生成器
+ * @author GYJoker
+ */
+public class CodeGen {
+ private final static String BASE_URL = "rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com";
+ private final static String PORT = "3306";
+ private final static String USERNAME = "cashier";
+ private final static String PASSWORD = "Cashier@1@";
+ private final static String DATABASE = "czg_cashier";
+ private final static String OLD_DATABASE = "fycashier_test";
+
+ private final static boolean isOldVersion = false;
+// private final static boolean isOldVersion = true;
+
+ public static void main(String[] args) {
+ //配置数据源
+ HikariDataSource dataSource = new HikariDataSource();
+ dataSource.setJdbcUrl("jdbc:mysql://" + BASE_URL + ":" + PORT + "/" + (isOldVersion ? OLD_DATABASE : DATABASE));
+ dataSource.setUsername(USERNAME);
+ dataSource.setPassword(PASSWORD);
+
+ GlobalConfig globalConfig = createGlobalConfigUseStyle();
+
+ //通过 datasource 和 globalConfig 创建代码生成器
+ Generator generator = new Generator(dataSource, globalConfig);
+
+ //生成代码
+ generator.generate();
+ }
+
+ public static GlobalConfig createGlobalConfigUseStyle() {
+ //创建配置内容
+ GlobalConfig globalConfig = new GlobalConfig();
+
+ //设置根包
+ globalConfig.getPackageConfig()
+ .setBasePackage("com.czg.mergedata" + (isOldVersion ? ".old" : ".cur"));
+
+ ServiceConfig serviceConfig = globalConfig.getServiceConfig();
+ serviceConfig.setSuperClass(IService.class);
+ serviceConfig.setClassSuffix("Service");
+ if (isOldVersion) {
+ serviceConfig.setClassPrefix("Old");
+ } else {
+ serviceConfig.setClassPrefix("Cur");
+ }
+ globalConfig.enableService();
+
+ ServiceImplConfig implConfig = globalConfig.getServiceImplConfig();
+ implConfig.setSuperClass(ServiceImpl.class);
+ implConfig.setClassSuffix("Impl");
+ if (isOldVersion) {
+ implConfig.setClassPrefix("Old");
+ } else {
+ implConfig.setClassPrefix("Cur");
+ }
+ globalConfig.enableServiceImpl();
+
+ MapperConfig mapperConfig = globalConfig.getMapperConfig();
+ mapperConfig.setClassSuffix("Mapper");
+ if (isOldVersion) {
+ mapperConfig.setClassPrefix("Old");
+ } else {
+ mapperConfig.setClassPrefix("Cur");
+ }
+ //设置生成 mapper
+ globalConfig.enableMapper();
+
+ globalConfig.setMapperXmlPath((isOldVersion ? "src/main/resources/mapper/old" : "src/main/resources/mapper/cur"));
+ globalConfig.enableMapperXml();
+
+ //设置表前缀和只生成哪些表,setGenerateTable 未配置时,生成所有表
+ globalConfig.getStrategyConfig()
+ .setTablePrefix("tb_")
+ .setGenerateTable("tb_shop_staff");
+
+ EntityConfig entityConfig = globalConfig.getEntityConfig();
+ if (isOldVersion) {
+ entityConfig.setClassPrefix("Old");
+ } else {
+ entityConfig.setClassPrefix("Cur");
+ }
+
+ //设置生成 entity 并启用 Lombok
+ globalConfig.enableEntity()
+ .setWithLombok(true)
+ .setJdkVersion(23);
+
+ //可以单独配置某个列
+ ColumnConfig createTime = new ColumnConfig();
+ createTime.setColumnName("create_time");
+ createTime.setOnInsertValue("now()");
+ globalConfig.getStrategyConfig()
+ .setColumnConfig(createTime);
+
+ ColumnConfig updateTime = new ColumnConfig();
+ updateTime.setColumnName("update_time");
+ updateTime.setOnUpdateValue("now()");
+ updateTime.setOnInsertValue("now()");
+ globalConfig.getStrategyConfig()
+ .setColumnConfig(updateTime);
+
+// ColumnConfig deleted = new ColumnConfig();
+// deleted.setColumnName("deleted");
+// deleted.setLogicDelete(true);
+// globalConfig.getStrategyConfig()
+// .setColumnConfig(deleted);
+//
+// ColumnConfig version = new ColumnConfig();
+// version.setColumnName("version");
+// version.setVersion(true);
+// globalConfig.getStrategyConfig()
+// .setColumnConfig(version);
+
+ return globalConfig;
+ }
+}
diff --git a/src/main/java/com/czg/mergedata/controller/UserController.java b/src/main/java/com/czg/mergedata/controller/UserController.java
new file mode 100644
index 0000000..a6ce82e
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/controller/UserController.java
@@ -0,0 +1,12 @@
+package com.czg.mergedata.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @author GYJoker
+ */
+@RestController
+@RequestMapping("/user")
+public class UserController {
+}
diff --git a/src/main/java/com/czg/mergedata/cur/entity/CurShopInfo.java b/src/main/java/com/czg/mergedata/cur/entity/CurShopInfo.java
new file mode 100644
index 0000000..42dba7b
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/entity/CurShopInfo.java
@@ -0,0 +1,281 @@
+package com.czg.mergedata.cur.entity;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.KeyType;
+import com.mybatisflex.annotation.Table;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import java.io.Serial;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 店铺信息 实体类。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table("tb_shop_info")
+public class CurShopInfo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 使用系统用户 sys_user id
+ */
+ @Id(keyType = KeyType.Auto)
+ private Long id;
+
+ /**
+ * 主店id
+ */
+ private Integer mainId;
+
+ /**
+ * 店铺口号
+ */
+ private String subTitle;
+
+ /**
+ * 店铺名称
+ */
+ private String shopName;
+
+ /**
+ * 连锁店扩展店名
+ */
+ private String chainName;
+
+ /**
+ * 背景图
+ */
+ private String backImg;
+
+ /**
+ * 门头照
+ */
+ private String frontImg;
+
+ /**
+ * 联系人姓名
+ */
+ private String contactName;
+
+ /**
+ * 联系电话
+ */
+ private String phone;
+
+ /**
+ * 店铺logo
+ */
+ private String logo;
+
+ /**
+ * 封面图
+ */
+ private String coverImg;
+
+ /**
+ * 店铺简介
+ */
+ private String detail;
+
+ /**
+ * 注册类型
+ */
+ private String registerType;
+
+ /**
+ * 店铺类型 单店--only 连锁店--chain--加盟店join (对应原来 type)
+ */
+ private String shopType;
+
+ /**
+ * 管理 0否 1是, 1 为直接管理 可切换店铺 0 不可以切换
+ */
+ private Integer tubeType;
+
+ /**
+ * 营业时间(周开始)
+ */
+ private String businessStartDay;
+
+ /**
+ * 营业时间(周结束)
+ */
+ private String businessEndDay;
+
+ /**
+ * 营业时间
+ */
+ private String businessTime;
+
+ /**
+ * trial试用版,release正式
+ */
+ private String profiles;
+
+ /**
+ * 0停业 1,正常营业 2,网上售卖
+ */
+ private Integer onSale;
+
+ /**
+ * -1 平台禁用 0-过期,1正式营业,
+ */
+ private Integer status;
+
+ /**
+ * 到期时间
+ */
+ private LocalDateTime expireTime;
+
+ @Column(onInsertValue = "now()")
+ private LocalDateTime createTime;
+
+ @Column(onInsertValue = "now()", onUpdateValue = "now()")
+ private LocalDateTime updateTime;
+
+ /**
+ * 商家二维码
+ */
+ private String shopQrcode;
+
+ /**
+ * 商家标签
+ */
+ private String tag;
+
+ /**
+ * 经纬度
+ */
+ private String lat;
+
+ /**
+ * 经纬度
+ */
+ private String lng;
+
+ /**
+ * 省
+ */
+ private String provinces;
+
+ /**
+ * 市
+ */
+ private String cities;
+
+ /**
+ * 区/县
+ */
+ private String districts;
+
+ /**
+ * 详细地址
+ */
+ private String address;
+
+ /**
+ * 是否允许会员自定义金额 1 允许 0 不允许
+ */
+ private Integer isCustomAmount;
+
+ /**
+ * 是否开启退款密码 1 启用 0 禁用
+ */
+ private Integer isReturnPwd;
+
+ /**
+ * 是否开启会员充值密码 1 启用 0 禁用
+ */
+ private Integer isMemberInPwd;
+
+ /**
+ * 是否开启会员退款密码 1 启用 0 禁用
+ */
+ private Integer isMemberReturnPwd;
+
+ /**
+ * 是否免除桌位费 0否1是
+ */
+ private Integer isTableFee;
+
+ /**
+ * 桌位费
+ */
+ private BigDecimal tableFee;
+
+ /**
+ * 是否启用会员价 0否1是
+ */
+ private Integer isMemberPrice;
+
+ /**
+ * 是否允许会员余额支付
+ */
+ private Integer isAccountPay;
+
+ /**
+ * 积分群体 all-所有 vip-仅针对会员
+ */
+ private String consumeColony;
+
+ /**
+ * 就餐模式 堂食 dine-in 外带 take-out
+ */
+ private String eatModel;
+
+ /**
+ * 小程序码(零点八零首页)
+ */
+ private String smallQrcode;
+
+ /**
+ * 店铺收款码
+ */
+ private String paymentQrcode;
+
+ /**
+ * 台桌预订短信
+ */
+ private String bookingSms;
+
+ /**
+ * 操作密码
+ */
+ private String operationPwd;
+
+ /**
+ * 开票系统账号
+ */
+ private String bindAccount;
+
+ /**
+ * 项目分类
+ */
+ private String article;
+
+ /**
+ * 数电发票类型
+ */
+ private String sdType;
+
+ /**
+ * 税率
+ */
+ private String taxAmount;
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/entity/CurShopStaff.java b/src/main/java/com/czg/mergedata/cur/entity/CurShopStaff.java
new file mode 100644
index 0000000..bfe0ce6
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/entity/CurShopStaff.java
@@ -0,0 +1,91 @@
+package com.czg.mergedata.cur.entity;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.KeyType;
+import com.mybatisflex.annotation.Table;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import java.io.Serial;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 店铺员工 实体类。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table("tb_shop_staff")
+public class CurShopStaff implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 使用系统用户 sys_user id
+ */
+ @Id(keyType = KeyType.Auto)
+ private Long id;
+
+ /**
+ * 员工编号
+ */
+ private String code;
+
+ /**
+ * 员工名称
+ */
+ private String name;
+
+ /**
+ * 最大优惠金额
+ */
+ private BigDecimal maxDiscountAmount;
+
+ /**
+ * 优惠类型 1 折扣 0 金额
+ */
+ private String discountType;
+
+ /**
+ * 1启用0不启用
+ */
+ private Boolean status;
+
+ /**
+ * shopId
+ */
+ private Long shopId;
+
+ @Column(onInsertValue = "now()")
+ private LocalDateTime createTime;
+
+ @Column(onInsertValue = "now()", onUpdateValue = "now()")
+ private LocalDateTime updateTime;
+
+ /**
+ * master商户账号staff员工
+ */
+ private String type;
+
+ /**
+ * 是否允许管理端登录 0:不允许;1:允许
+ */
+ private Integer isManage;
+
+ /**
+ * 是否允许pc端登录 0:不允许;1:允许
+ */
+ private Integer isPc;
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/entity/CurSysUser.java b/src/main/java/com/czg/mergedata/cur/entity/CurSysUser.java
new file mode 100644
index 0000000..405dc45
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/entity/CurSysUser.java
@@ -0,0 +1,111 @@
+package com.czg.mergedata.cur.entity;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.KeyType;
+import com.mybatisflex.annotation.Table;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import java.io.Serial;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 系统用户 实体类。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table("sys_user")
+public class CurSysUser implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @Id(keyType = KeyType.Auto)
+ private Long id;
+
+ /**
+ * 账号
+ */
+ private String account;
+
+ /**
+ * 昵称
+ */
+ private String nickName;
+
+ /**
+ * 性别
+ */
+ private String gender;
+
+ /**
+ * 手机号码
+ */
+ private String phone;
+
+ /**
+ * 邮箱
+ */
+ private String email;
+
+ /**
+ * 头像
+ */
+ private String avatar;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * 是否为admin账号
+ */
+ private Boolean isAdmin;
+
+ /**
+ * 状态:1启用、0禁用
+ */
+ private Integer stauts;
+
+ /**
+ * 创建者
+ */
+ private Long createUserId;
+
+ /**
+ * 更新者
+ */
+ private Long updateUserId;
+
+ /**
+ * 修改密码的时间
+ */
+ private LocalDateTime pwdResetTime;
+
+ /**
+ * 创建日期
+ */
+ @Column(onInsertValue = "now()")
+ private LocalDateTime createTime;
+
+ /**
+ * 更新时间
+ */
+ @Column(onInsertValue = "now()", onUpdateValue = "now()")
+ private LocalDateTime updateTime;
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/mapper/CurShopInfoMapper.java b/src/main/java/com/czg/mergedata/cur/mapper/CurShopInfoMapper.java
new file mode 100644
index 0000000..aac3ddb
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/mapper/CurShopInfoMapper.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.cur.mapper;
+
+import com.mybatisflex.core.BaseMapper;
+import com.czg.mergedata.cur.entity.CurShopInfo;
+
+/**
+ * 店铺信息 映射层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface CurShopInfoMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/mapper/CurShopStaffMapper.java b/src/main/java/com/czg/mergedata/cur/mapper/CurShopStaffMapper.java
new file mode 100644
index 0000000..e8ee5f8
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/mapper/CurShopStaffMapper.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.cur.mapper;
+
+import com.mybatisflex.core.BaseMapper;
+import com.czg.mergedata.cur.entity.CurShopStaff;
+
+/**
+ * 店铺员工 映射层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface CurShopStaffMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/mapper/CurSysUserMapper.java b/src/main/java/com/czg/mergedata/cur/mapper/CurSysUserMapper.java
new file mode 100644
index 0000000..9a66931
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/mapper/CurSysUserMapper.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.cur.mapper;
+
+import com.mybatisflex.core.BaseMapper;
+import com.czg.mergedata.cur.entity.CurSysUser;
+
+/**
+ * 系统用户 映射层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface CurSysUserMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/service/CurShopInfoService.java b/src/main/java/com/czg/mergedata/cur/service/CurShopInfoService.java
new file mode 100644
index 0000000..65b2d74
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/service/CurShopInfoService.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.cur.service;
+
+import com.mybatisflex.core.service.IService;
+import com.czg.mergedata.cur.entity.CurShopInfo;
+
+/**
+ * 店铺信息 服务层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface CurShopInfoService extends IService {
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/service/CurShopStaffService.java b/src/main/java/com/czg/mergedata/cur/service/CurShopStaffService.java
new file mode 100644
index 0000000..3c23c96
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/service/CurShopStaffService.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.cur.service;
+
+import com.mybatisflex.core.service.IService;
+import com.czg.mergedata.cur.entity.CurShopStaff;
+
+/**
+ * 店铺员工 服务层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface CurShopStaffService extends IService {
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/service/CurSysUserService.java b/src/main/java/com/czg/mergedata/cur/service/CurSysUserService.java
new file mode 100644
index 0000000..a08b417
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/service/CurSysUserService.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.cur.service;
+
+import com.mybatisflex.core.service.IService;
+import com.czg.mergedata.cur.entity.CurSysUser;
+
+/**
+ * 系统用户 服务层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface CurSysUserService extends IService {
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/service/impl/CurShopInfoImpl.java b/src/main/java/com/czg/mergedata/cur/service/impl/CurShopInfoImpl.java
new file mode 100644
index 0000000..e4505c8
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/service/impl/CurShopInfoImpl.java
@@ -0,0 +1,18 @@
+package com.czg.mergedata.cur.service.impl;
+
+import com.mybatisflex.spring.service.impl.ServiceImpl;
+import com.czg.mergedata.cur.entity.CurShopInfo;
+import com.czg.mergedata.cur.mapper.CurShopInfoMapper;
+import com.czg.mergedata.cur.service.CurShopInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 店铺信息 服务层实现。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Service
+public class CurShopInfoImpl extends ServiceImpl implements CurShopInfoService{
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/service/impl/CurShopStaffImpl.java b/src/main/java/com/czg/mergedata/cur/service/impl/CurShopStaffImpl.java
new file mode 100644
index 0000000..cf36824
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/service/impl/CurShopStaffImpl.java
@@ -0,0 +1,18 @@
+package com.czg.mergedata.cur.service.impl;
+
+import com.mybatisflex.spring.service.impl.ServiceImpl;
+import com.czg.mergedata.cur.entity.CurShopStaff;
+import com.czg.mergedata.cur.mapper.CurShopStaffMapper;
+import com.czg.mergedata.cur.service.CurShopStaffService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 店铺员工 服务层实现。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Service
+public class CurShopStaffImpl extends ServiceImpl implements CurShopStaffService{
+
+}
diff --git a/src/main/java/com/czg/mergedata/cur/service/impl/CurSysUserImpl.java b/src/main/java/com/czg/mergedata/cur/service/impl/CurSysUserImpl.java
new file mode 100644
index 0000000..8a4689e
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/cur/service/impl/CurSysUserImpl.java
@@ -0,0 +1,18 @@
+package com.czg.mergedata.cur.service.impl;
+
+import com.mybatisflex.spring.service.impl.ServiceImpl;
+import com.czg.mergedata.cur.entity.CurSysUser;
+import com.czg.mergedata.cur.mapper.CurSysUserMapper;
+import com.czg.mergedata.cur.service.CurSysUserService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 系统用户 服务层实现。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Service
+public class CurSysUserImpl extends ServiceImpl implements CurSysUserService{
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/entity/OldPlussShopStaff.java b/src/main/java/com/czg/mergedata/old/entity/OldPlussShopStaff.java
new file mode 100644
index 0000000..cf959a6
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/entity/OldPlussShopStaff.java
@@ -0,0 +1,102 @@
+package com.czg.mergedata.old.entity;
+
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.KeyType;
+import com.mybatisflex.annotation.Table;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+import java.io.Serial;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 实体类。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table("tb_pluss_shop_staff")
+public class OldPlussShopStaff implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 自增
+ */
+ @Id(keyType = KeyType.Auto)
+ private Integer id;
+
+ /**
+ * 员工编号
+ */
+ private String code;
+
+ /**
+ * 员工名称
+ */
+ private String name;
+
+ /**
+ * 登录账号
+ */
+ private String account;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * 最大优惠金额
+ */
+ private BigDecimal maxDiscountAmount;
+
+ /**
+ * 优惠类型 1 折扣 0 金额
+ */
+ private String discountType;
+
+ /**
+ * 1启用0不启用
+ */
+ private Boolean status;
+
+ /**
+ * 登录端
+ */
+ private String employee;
+
+ /**
+ * shopId
+ */
+ private String shopId;
+
+ private Long createdAt;
+
+ private Long updatedAt;
+
+ /**
+ * master商户账号staff员工
+ */
+ private String type;
+
+ /**
+ * 是否允许管理端登录 0:不允许;1:允许
+ */
+ private Integer isManage;
+
+ /**
+ * 是否允许pc端登录 0:不允许;1:允许
+ */
+ private Integer isPc;
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/entity/OldShopInfo.java b/src/main/java/com/czg/mergedata/old/entity/OldShopInfo.java
new file mode 100644
index 0000000..b6f0a9f
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/entity/OldShopInfo.java
@@ -0,0 +1,355 @@
+package com.czg.mergedata.old.entity;
+
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.KeyType;
+import com.mybatisflex.annotation.Table;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+import java.io.Serial;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 实体类。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table("tb_shop_info")
+public class OldShopInfo implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 自增id
+ */
+ @Id(keyType = KeyType.Auto)
+ private Long id;
+
+ /**
+ * 主店id
+ */
+ private Integer mainId;
+
+ /**
+ * 店铺帐号
+ */
+ private String account;
+
+ /**
+ * 店铺代号,策略方式为city +店铺号(8位)
+ */
+ private String shopCode;
+
+ /**
+ * 店铺口号
+ */
+ private String subTitle;
+
+ /**
+ * 商户Id
+ */
+ private String merchantId;
+
+ /**
+ * 店铺名称
+ */
+ private String shopName;
+
+ /**
+ * 连锁店扩展店名
+ */
+ private String chainName;
+
+ /**
+ * 背景图
+ */
+ private String backImg;
+
+ /**
+ * 门头照
+ */
+ private String frontImg;
+
+ /**
+ * 联系人姓名
+ */
+ private String contactName;
+
+ /**
+ * 联系电话
+ */
+ private String phone;
+
+ /**
+ * 店铺log0
+ */
+ private String logo;
+
+ /**
+ * 是否参与代收 0--不参与 1参与
+ */
+ private Integer isDeposit;
+
+ /**
+ * 是否为供应商
+ */
+ private Integer isSupply;
+
+ /**
+ * 封面图
+ */
+ private String coverImg;
+
+ /**
+ * 店铺分享图
+ */
+ private String shareImg;
+
+ /**
+ * 轮播图
+ */
+ private String view;
+
+ /**
+ * 店铺简介
+ */
+ private String detail;
+
+ /**
+ * 经纬度
+ */
+ private String lat;
+
+ /**
+ * 经纬度
+ */
+ private String lng;
+
+ /**
+ * 未用
+ */
+ private String mchId;
+
+ private String registerType;
+
+ /**
+ * 是否独立的微信小程序
+ */
+ private Integer isWxMaIndependent;
+
+ /**
+ * 详细地址
+ */
+ private String address;
+
+ /**
+ * 类似于这种规则51.51.570
+ */
+ private String city;
+
+ /**
+ * 店铺类型 单店--only 连锁店--chain--加盟店join
+ */
+ private String type;
+
+ /**
+ * 管理 0否 1是
+ */
+ private Integer tubeType;
+
+ /**
+ * 行业
+ */
+ private String industry;
+
+ /**
+ * 行业名称
+ */
+ private String industryName;
+
+ /**
+ * 营业时间(周开始)
+ */
+ private String businessStartDay;
+
+ /**
+ * 营业时间(周结束)
+ */
+ private String businessEndDay;
+
+ /**
+ * 营业时间
+ */
+ private String businessTime;
+
+ /**
+ * 配送时间
+ */
+ private String postTime;
+
+ private BigDecimal postAmountLine;
+
+ /**
+ * 0停业1,正常营业,网上售卖
+ */
+ private Integer onSale;
+
+ /**
+ * 0今日,1次日
+ */
+ private Integer settleType;
+
+ /**
+ * 时间
+ */
+ private String settleTime;
+
+ /**
+ * 入驻时间
+ */
+ private Integer enterAt;
+
+ /**
+ * 到期时间
+ */
+ private Long expireAt;
+
+ /**
+ * -1 平台禁用 0-过期,1正式营业,
+ */
+ private Integer status;
+
+ /**
+ * 人均消费
+ */
+ private Float average;
+
+ /**
+ * 订单等待时间
+ */
+ private Integer orderWaitPayMinute;
+
+ /**
+ * 支持登陆设备个数
+ */
+ private Integer supportDeviceNumber;
+
+ /**
+ * 分销层级(1-下级分销 2-两下级分销)
+ */
+ private Integer distributeLevel;
+
+ private Long createdAt;
+
+ private Long updatedAt;
+
+ private String proxyId;
+
+ /**
+ * trial试用版,release正式
+ */
+ private String profiles;
+
+ /**
+ * 商家二维码
+ */
+ private String shopQrcode;
+
+ /**
+ * 商家标签
+ */
+ private String tag;
+
+ private String isOpenYhq;
+
+ /**
+ * 0否1是
+ */
+ private Integer isUseVip;
+
+ /**
+ * 省
+ */
+ private String provinces;
+
+ /**
+ * 市
+ */
+ private String cities;
+
+ /**
+ * 区/县
+ */
+ private String districts;
+
+ /**
+ * 是否允许会员自定义金额 1 允许 0 不允许
+ */
+ private String isCustom;
+
+ /**
+ * 是否开启退款密码 1 启用 0 禁用
+ */
+ private String isReturn;
+
+ /**
+ * 是否开启会员充值密码 1 启用 0 禁用
+ */
+ private String isMemberIn;
+
+ /**
+ * 是否开启会员退款密码 1 启用 0 禁用
+ */
+ private String isMemberReturn;
+
+ /**
+ * 是否免除桌位费 0否1是
+ */
+ private Integer isTableFee;
+
+ /**
+ * 是否启用会员价 0否1是
+ */
+ private Integer isMemberPrice;
+
+ /**
+ * 积分群体 all-所有 vip-仅针对会员
+ */
+ private String consumeColony;
+
+ /**
+ * 桌位费
+ */
+ private BigDecimal tableFee;
+
+ /**
+ * 就餐模式 堂食 dine-in 外带 take-out
+ */
+ private String eatModel;
+
+ /**
+ * 小程序码(零点八零首页)
+ */
+ private String smallQrcode;
+
+ /**
+ * 店铺收款码
+ */
+ private String paymentQrcode;
+
+ /**
+ * 台桌预订短信
+ */
+ private String bookingSms;
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/entity/OldSysUser.java b/src/main/java/com/czg/mergedata/old/entity/OldSysUser.java
new file mode 100644
index 0000000..5de515d
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/entity/OldSysUser.java
@@ -0,0 +1,121 @@
+package com.czg.mergedata.old.entity;
+
+import com.mybatisflex.annotation.Column;
+import com.mybatisflex.annotation.Id;
+import com.mybatisflex.annotation.KeyType;
+import com.mybatisflex.annotation.Table;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+import java.io.Serial;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 系统用户 实体类。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Table("sys_user")
+public class OldSysUser implements Serializable {
+
+ @Serial
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * ID
+ */
+ @Id(keyType = KeyType.Auto)
+ private Long userId;
+
+ /**
+ * 部门名称
+ */
+ private Long deptId;
+
+ /**
+ * 用户名
+ */
+ private String username;
+
+ /**
+ * 昵称
+ */
+ private String nickName;
+
+ /**
+ * 性别
+ */
+ private String gender;
+
+ /**
+ * 手机号码
+ */
+ private String phone;
+
+ /**
+ * 邮箱
+ */
+ private String email;
+
+ /**
+ * 头像地址
+ */
+ private String avatarName;
+
+ /**
+ * 头像真实路径
+ */
+ private String avatarPath;
+
+ /**
+ * 密码
+ */
+ private String password;
+
+ /**
+ * 是否为admin账号
+ */
+ private Boolean isAdmin;
+
+ /**
+ * 状态:1启用、0禁用
+ */
+ private Long enabled;
+
+ /**
+ * 创建者
+ */
+ private String createBy;
+
+ /**
+ * 更新者
+ */
+ private String updateBy;
+
+ /**
+ * 修改密码的时间
+ */
+ private LocalDateTime pwdResetTime;
+
+ /**
+ * 创建日期
+ */
+ @Column(onInsertValue = "now()")
+ private LocalDateTime createTime;
+
+ /**
+ * 更新时间
+ */
+ @Column(onInsertValue = "now()", onUpdateValue = "now()")
+ private LocalDateTime updateTime;
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/mapper/OldPlussShopStaffMapper.java b/src/main/java/com/czg/mergedata/old/mapper/OldPlussShopStaffMapper.java
new file mode 100644
index 0000000..d5680da
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/mapper/OldPlussShopStaffMapper.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.old.mapper;
+
+import com.mybatisflex.core.BaseMapper;
+import com.czg.mergedata.old.entity.OldPlussShopStaff;
+
+/**
+ * 映射层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface OldPlussShopStaffMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/mapper/OldShopInfoMapper.java b/src/main/java/com/czg/mergedata/old/mapper/OldShopInfoMapper.java
new file mode 100644
index 0000000..df0f42f
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/mapper/OldShopInfoMapper.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.old.mapper;
+
+import com.mybatisflex.core.BaseMapper;
+import com.czg.mergedata.old.entity.OldShopInfo;
+
+/**
+ * 映射层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface OldShopInfoMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/mapper/OldSysUserMapper.java b/src/main/java/com/czg/mergedata/old/mapper/OldSysUserMapper.java
new file mode 100644
index 0000000..6dce450
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/mapper/OldSysUserMapper.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.old.mapper;
+
+import com.mybatisflex.core.BaseMapper;
+import com.czg.mergedata.old.entity.OldSysUser;
+
+/**
+ * 系统用户 映射层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface OldSysUserMapper extends BaseMapper {
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/service/OldPlussShopStaffService.java b/src/main/java/com/czg/mergedata/old/service/OldPlussShopStaffService.java
new file mode 100644
index 0000000..e392356
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/service/OldPlussShopStaffService.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.old.service;
+
+import com.mybatisflex.core.service.IService;
+import com.czg.mergedata.old.entity.OldPlussShopStaff;
+
+/**
+ * 服务层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface OldPlussShopStaffService extends IService {
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/service/OldShopInfoService.java b/src/main/java/com/czg/mergedata/old/service/OldShopInfoService.java
new file mode 100644
index 0000000..61587a3
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/service/OldShopInfoService.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.old.service;
+
+import com.mybatisflex.core.service.IService;
+import com.czg.mergedata.old.entity.OldShopInfo;
+
+/**
+ * 服务层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface OldShopInfoService extends IService {
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/service/OldSysUserService.java b/src/main/java/com/czg/mergedata/old/service/OldSysUserService.java
new file mode 100644
index 0000000..6623673
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/service/OldSysUserService.java
@@ -0,0 +1,14 @@
+package com.czg.mergedata.old.service;
+
+import com.mybatisflex.core.service.IService;
+import com.czg.mergedata.old.entity.OldSysUser;
+
+/**
+ * 系统用户 服务层。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+public interface OldSysUserService extends IService {
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/service/impl/OldPlussShopStaffImpl.java b/src/main/java/com/czg/mergedata/old/service/impl/OldPlussShopStaffImpl.java
new file mode 100644
index 0000000..09b15b1
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/service/impl/OldPlussShopStaffImpl.java
@@ -0,0 +1,18 @@
+package com.czg.mergedata.old.service.impl;
+
+import com.mybatisflex.spring.service.impl.ServiceImpl;
+import com.czg.mergedata.old.entity.OldPlussShopStaff;
+import com.czg.mergedata.old.mapper.OldPlussShopStaffMapper;
+import com.czg.mergedata.old.service.OldPlussShopStaffService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务层实现。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Service
+public class OldPlussShopStaffImpl extends ServiceImpl implements OldPlussShopStaffService{
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/service/impl/OldShopInfoImpl.java b/src/main/java/com/czg/mergedata/old/service/impl/OldShopInfoImpl.java
new file mode 100644
index 0000000..11f03d6
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/service/impl/OldShopInfoImpl.java
@@ -0,0 +1,18 @@
+package com.czg.mergedata.old.service.impl;
+
+import com.mybatisflex.spring.service.impl.ServiceImpl;
+import com.czg.mergedata.old.entity.OldShopInfo;
+import com.czg.mergedata.old.mapper.OldShopInfoMapper;
+import com.czg.mergedata.old.service.OldShopInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 服务层实现。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Service
+public class OldShopInfoImpl extends ServiceImpl implements OldShopInfoService{
+
+}
diff --git a/src/main/java/com/czg/mergedata/old/service/impl/OldSysUserImpl.java b/src/main/java/com/czg/mergedata/old/service/impl/OldSysUserImpl.java
new file mode 100644
index 0000000..f40d5a6
--- /dev/null
+++ b/src/main/java/com/czg/mergedata/old/service/impl/OldSysUserImpl.java
@@ -0,0 +1,18 @@
+package com.czg.mergedata.old.service.impl;
+
+import com.mybatisflex.spring.service.impl.ServiceImpl;
+import com.czg.mergedata.old.entity.OldSysUser;
+import com.czg.mergedata.old.mapper.OldSysUserMapper;
+import com.czg.mergedata.old.service.OldSysUserService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 系统用户 服务层实现。
+ *
+ * @author mac
+ * @since 2025-02-15
+ */
+@Service
+public class OldSysUserImpl extends ServiceImpl implements OldSysUserService{
+
+}
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..9923ef3
--- /dev/null
+++ b/src/main/resources/application-dev.yml
@@ -0,0 +1,14 @@
+spring:
+ datasource:
+ cur:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/czg_cashier?useUnicode=true&characterEncoding=utf-8
+ username: cashier
+ password: Cashier@1@
+ old:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/fycashier_test?useUnicode=true&characterEncoding=utf-8
+ username: cashier
+ password: Cashier@1@
+
+
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
new file mode 100644
index 0000000..dc5703c
--- /dev/null
+++ b/src/main/resources/application-prod.yml
@@ -0,0 +1,36 @@
+
+spring:
+ datasource:
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ url: jdbc:mysql://rm-bp1kn7h89nz62cno1ro.mysql.rds.aliyuncs.com:3306/czg_cashier?useUnicode=true&characterEncoding=utf-8
+ username: cashier
+ password: Cashier@1@
+
+ data:
+ redis:
+ host: 121.40.109.122
+ port: 6379
+ password: chaozg123
+ timeout: 1000
+ database: 2
+
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 121.40.109.122:8848
+ namespace: 237e1905-0a66-4375-9bb6-a51c3c034aca
+
+dubbo:
+ application:
+ name: account-server
+ qos-port: 22221
+ qos-enable: true
+ registry:
+ address: nacos://121.40.109.122:8848 # Nacos 服务地址
+ group: server-test
+ namespace: 237e1905-0a66-4375-9bb6-a51c3c034aca
+ protocol:
+ port: 9101
+ threads: 20
+ threadpool: fixed
+
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..42a83d9
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,15 @@
+server:
+ port: 8100
+ servlet:
+ context-path: /merge
+
+spring:
+ application:
+ name: merge-data-server
+ profiles:
+ active: dev
+
+logging:
+ config: classpath:logback.xml
+
+
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
new file mode 100644
index 0000000..5d27f70
--- /dev/null
+++ b/src/main/resources/logback.xml
@@ -0,0 +1,37 @@
+
+
+ account-server
+
+
+
+
+
+
+
+ ${log.pattern}
+ ${log.charset}
+
+
+
+
+ logs/logback.log
+
+
+ logs/history/%d{yyyy-MM-dd}/logback.%i.log.gz
+
+ 30
+ 20MB
+
+
+
+ ${p_file}
+ UTF-8
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/mapper/cur/ShopInfoMapper.xml b/src/main/resources/mapper/cur/ShopInfoMapper.xml
new file mode 100644
index 0000000..61560a6
--- /dev/null
+++ b/src/main/resources/mapper/cur/ShopInfoMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/src/main/resources/mapper/cur/ShopStaffMapper.xml b/src/main/resources/mapper/cur/ShopStaffMapper.xml
new file mode 100644
index 0000000..1bc1a12
--- /dev/null
+++ b/src/main/resources/mapper/cur/ShopStaffMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/src/main/resources/mapper/cur/SysUserMapper.xml b/src/main/resources/mapper/cur/SysUserMapper.xml
new file mode 100644
index 0000000..80a3a43
--- /dev/null
+++ b/src/main/resources/mapper/cur/SysUserMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/src/main/resources/mapper/old/PlussShopStaffMapper.xml b/src/main/resources/mapper/old/PlussShopStaffMapper.xml
new file mode 100644
index 0000000..809e4bd
--- /dev/null
+++ b/src/main/resources/mapper/old/PlussShopStaffMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/src/main/resources/mapper/old/ShopInfoMapper.xml b/src/main/resources/mapper/old/ShopInfoMapper.xml
new file mode 100644
index 0000000..fe927d6
--- /dev/null
+++ b/src/main/resources/mapper/old/ShopInfoMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/src/main/resources/mapper/old/SysUserMapper.xml b/src/main/resources/mapper/old/SysUserMapper.xml
new file mode 100644
index 0000000..bd6bb66
--- /dev/null
+++ b/src/main/resources/mapper/old/SysUserMapper.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/src/test/java/com/czg/mergedata/MergeDataApplicationTests.java b/src/test/java/com/czg/mergedata/MergeDataApplicationTests.java
new file mode 100644
index 0000000..9a43b0c
--- /dev/null
+++ b/src/test/java/com/czg/mergedata/MergeDataApplicationTests.java
@@ -0,0 +1,13 @@
+package com.czg.mergedata;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class MergeDataApplicationTests {
+
+ @Test
+ void contextLoads() {
+ }
+
+}