zq-erp/pom.xml
@@ -239,8 +239,8 @@ <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.21</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> @@ -371,16 +371,24 @@ <artifactId>mapstruct</artifactId> <version>1.3.0.Final</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version> <version>3.3.0</version> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.1</version> </dependency> </dependencies> <build> <resources> @@ -394,12 +402,12 @@ <exclude>config/test/*</exclude> <exclude>config/xcx/*</exclude> <!----> <!-- <exclude>config/config.json</exclude> <exclude>config/application.properties</exclude> <exclude>config/system.properties</exclude> --> <exclude>**/*.woff</exclude> <exclude>**/*.woff2</exclude> zq-erp/src/main/java/com/matrix/ZqErpApplication.java
@@ -1,5 +1,6 @@ package com.matrix; import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; @@ -9,7 +10,7 @@ * * @author jiangyouyao */ @SpringBootApplication @SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class) @ComponentScan(basePackages = {"com.matrix.**"}) zq-erp/src/main/java/com/matrix/config/DataSourceConfig.java
@@ -25,80 +25,80 @@ @MapperScan(value = { "com.xincheng.**.dao","com.matrix.**.dao"}) @Configuration public class DataSourceConfig { /** * 数据源配置 * * @return * @author jiangyouyao */ @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource druid() { DruidDataSource druidDataSource = new DruidDataSource(); List<Filter> filters = new ArrayList<>(); filters.add(wallFilter()); druidDataSource.setProxyFilters(filters); return druidDataSource; } /** * 注册一个StatViewServlet * @return */ @Bean public ServletRegistrationBean druidStatViewServlet(){ //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册. ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); //添加初始化参数:initParams //白名单: servletRegistrationBean.addInitParameter("allow",""); //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. //servletRegistrationBean.addInitParameter("deny",""); //登录查看信息的账号密码. /*servletRegistrationBean.addInitParameter("loginUsername","xc_erp_scop"); servletRegistrationBean.addInitParameter("loginPassword","xc_erp_scop");*/ //是否能够重置数据. servletRegistrationBean.addInitParameter("resetEnable","false"); return servletRegistrationBean; } /** * 注册一个:filterRegistrationBean * @return */ @Bean public FilterRegistrationBean druidStatFilter(){ FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); //添加过滤规则. filterRegistrationBean.addUrlPatterns("/*"); //添加不需要忽略的格式信息. filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; } @Bean public WallFilter wallFilter(){ WallFilter wallFilter = new WallFilter(); wallFilter.setConfig(wallConfig()); return wallFilter; } @Bean public WallConfig wallConfig() { WallConfig config = new WallConfig(); config.setMultiStatementAllow(true);//允许一次执行多条语句 config.setNoneBaseStatementAllow(true);//允许一次执行多条语句 return config; } // // /** // * 数据源配置 // * // * @return // * @author jiangyouyao // */ // @ConfigurationProperties(prefix = "spring.datasource") // @Bean // public DataSource druid() { // // DruidDataSource druidDataSource = new DruidDataSource(); // // List<Filter> filters = new ArrayList<>(); // filters.add(wallFilter()); // druidDataSource.setProxyFilters(filters); // // return druidDataSource; // } // // // /** // * 注册一个StatViewServlet // * @return // */ // @Bean // public ServletRegistrationBean druidStatViewServlet(){ // //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册. // ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); // // //添加初始化参数:initParams // //白名单: // servletRegistrationBean.addInitParameter("allow",""); // //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. // //servletRegistrationBean.addInitParameter("deny",""); // //登录查看信息的账号密码. // /*servletRegistrationBean.addInitParameter("loginUsername","xc_erp_scop"); // servletRegistrationBean.addInitParameter("loginPassword","xc_erp_scop");*/ // //是否能够重置数据. // servletRegistrationBean.addInitParameter("resetEnable","false"); // return servletRegistrationBean; // } // // /** // * 注册一个:filterRegistrationBean // * @return // */ // @Bean // public FilterRegistrationBean druidStatFilter(){ // // FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); // // //添加过滤规则. // filterRegistrationBean.addUrlPatterns("/*"); // // //添加不需要忽略的格式信息. // filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); // return filterRegistrationBean; // } // // @Bean // public WallFilter wallFilter(){ // WallFilter wallFilter = new WallFilter(); // wallFilter.setConfig(wallConfig()); // return wallFilter; // } // // @Bean // public WallConfig wallConfig() { // WallConfig config = new WallConfig(); // config.setMultiStatementAllow(true);//允许一次执行多条语句 // config.setNoneBaseStatementAllow(true);//允许一次执行多条语句 // return config; // } } zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java
@@ -14,6 +14,9 @@ import com.matrix.system.common.service.SysCompanyService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; import org.springframework.stereotype.Controller; import org.springframework.web.context.ServletContextAware; @@ -25,7 +28,7 @@ * @author:姜友瑶 * @date 2016年10月18日 */ @Controller @Component public class InitWebContainer implements ServletContextAware{ private static final String TRUE = "true"; @@ -62,7 +65,6 @@ @Override public void setServletContext(ServletContext sc) { this.servletContext = sc; // 初始化调试模式 initDebug(); // 初始化语言环境 @@ -77,6 +79,11 @@ + "**********************************************\r\n"); } // @EventListener // public void onApplicationEvent(ContextRefreshedEvent event) { // // } private void initDebug() { if (TRUE.equals(debug)) { MatrixConstance.DEBUG = true; zq-erp/src/main/java/com/matrix/system/dataMove/BeanMapMapper.java
New file @@ -0,0 +1,15 @@ package com.matrix.system.dataMove; import com.matrix.system.common.bean.SysUsers; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; /** * @author wzy * @date 2021-03-18 **/ @Mapper public abstract class BeanMapMapper { public static BeanMapMapper INSTANCE = Mappers.getMapper(BeanMapMapper.class); } zq-erp/src/main/java/com/matrix/system/dataMove/DateMoveServiceImpl.java
New file @@ -0,0 +1,160 @@ package com.matrix.system.dataMove; import cn.hutool.core.collection.CollUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.annotation.DS; import com.matrix.component.redis.RedisClient; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.dao.SysUsersDao; import com.matrix.system.common.tools.PasswordUtil; import com.matrix.system.hive.bean.SysShopInfo; import com.matrix.system.hive.dao.SysShopInfoDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import java.util.*; /** * @author wzy * @date 2021-03-18 **/ @Service public class DateMoveServiceImpl { @Autowired private JdbcTemplate jdbcTemplate; @Autowired private SysShopInfoDao sysShopInfoDao; @Autowired private SysUsersDao sysUsersDao; @Autowired private RedisClient redisClient; private Long companyId = 35L; public List<Map<String, Object>> dataMove() { return jdbcTemplate.queryForList("select * from sys_vip_info limit 10"); } public <T> List<T> mapsToListBean(List<Map<String, Object>> maps, Class<T> t) { List<T> list = new ArrayList<>(); for (Map<String, Object> map : maps) { String s = JSONObject.toJSONString(map); T object = JSONObject.parseObject(s, t); list.add(object); } return list; } /** * 旧系统商店数据 * * @return */ @DS("slave") public List<SysShopInfo> oldShopInfo() { List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from sys_shop_info"); List<SysShopInfo> shopInfos = new ArrayList<>(); for (Map<String, Object> map : maps) { String s = JSONObject.toJSONString(map); SysShopInfo sysShopInfo = JSONObject.parseObject(s, SysShopInfo.class); shopInfos.add(sysShopInfo); } return shopInfos; } public void toNewShopInfo(List<SysShopInfo> shopInfos) { if (CollUtil.isNotEmpty(shopInfos)) { Map<Long, Long> oldAndNewId = new HashMap<>(); for (SysShopInfo shopInfo : shopInfos) { if (shopInfo.getShopName().equals("总部")) { shopInfo.setShopType(1); shopInfo.setIsOpenNet(2); } else { shopInfo.setShopType(2); shopInfo.setIsOpenNet(1); } shopInfo.setShopShortName(shopInfo.getShopName()); shopInfo.setCompanyId(companyId); SysShopInfo query = new SysShopInfo(); query.setShopNo(shopInfo.getShopNo()); Long oldId = shopInfo.getId(); shopInfo.setId(null); // TODO 若迁往正式环境,这里需要变动 if (!shopInfo.getShopName().contains("美度") && !shopInfo.getShopName().contains("总店")) { sysShopInfoDao.insert(shopInfo); oldAndNewId.put(oldId, shopInfo.getId()); } else { SysShopInfo sysShopInfo = sysShopInfoDao.selectByShopName(shopInfo.getShopName()); oldAndNewId.put(oldId, sysShopInfo.getId()); } } redisClient.saveMapValue("shopId", oldAndNewId); } } @DS("slave") public List<SysUsers> oldSysUsers() throws UnsupportedEncodingException, NoSuchAlgorithmException { List<Map<String, Object>> maps = jdbcTemplate.queryForList("select * from users"); List<SysUsers> list = new ArrayList<>(); String shopIds = redisClient.getCachedValue("shopId"); Map shopMap = JSONObject.parseObject(shopIds, Map.class); for (Map<String, Object> map : maps) { SysUsers sysUsers = new SysUsers(); sysUsers.setSuAccount((String) map.get("account")); sysUsers.setSuId((Long) map.get("id")); sysUsers.setSuName((String) map.get("name")); sysUsers.setSuTel((String) map.get("tel")); sysUsers.setSuPhoto((String) map.get("photo")); sysUsers.setSuEmail((String) map.get("email")); sysUsers.setSuUserType((String) map.get("user_type")); sysUsers.setSuAccountStatus((String) map.get("account_status")); sysUsers.setSuValid("Y"); sysUsers.setCompanyId(companyId); Long aaa = (Long) map.get("shop_id"); System.out.println(aaa); if (aaa != null) { Integer shopId = (Integer) shopMap.get(aaa.toString()); if (shopId != null) { sysUsers.setShopId(Long.parseLong(shopId.toString())); } } sysUsers.setSuRegisterTime((Date) map.get("register_time")); sysUsers.setCreateBy(AppConstance.SYSTEM_USER); sysUsers.setUpdateBy(AppConstance.SYSTEM_USER); sysUsers.setSuPassword(PasswordUtil.getEncrypUserPwd(sysUsers)); list.add(sysUsers); } return list; } @Transactional public void newSysUsers(List<SysUsers> list) { if (CollUtil.isNotEmpty(list)) { Map<Long, Long> sysUsersOldAndNew = new HashMap<>(); for (SysUsers sysUsers : list) { Long oldId = sysUsers.getSuId(); sysUsers.setSuId(null); sysUsersDao.insert(sysUsers); sysUsersOldAndNew.put(oldId, sysUsers.getSuId()); } redisClient.saveMapValue("sys_users", sysUsersOldAndNew); } } } zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopBizUserScoreAction.java
@@ -44,7 +44,7 @@ \ } zq-erp/src/main/resources/config/application.properties
File was deleted zq-erp/src/main/resources/config/application.yml
New file @@ -0,0 +1,69 @@ evn: jyy server: port: 8080 servlet: session: timeout: 120 mybatis-plus: config-location: classpath:mybatis/mybatis-config.xml mapper-locations: classpath*:mybatis/mapper/**/*.xml # 文件上传时的大小限制 单位M spring: servlet: multipart: max-file-size: 100MB max-request-size: 100MB datasource: dynamic: primary: master strict: false datasource: master: url: jdbc:mysql://120.27.238.55:3306/hive_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8 username: ct_test password: 123456 driver-class-name: com.mysql.jdbc.Driver slave: url: jdbc:mysql://47.111.134.136:3306/db_meidu8300?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&transformedBitIsBoolean=true&serverTimezone=GMT%2B8 username: meidu_data password: meidu_4321#&@ driver-class-name: com.mysql.jdbc.Driver druid: filters: stat,slf4j initial-size: 5 autoconfigure: exclude: com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure useRabbit: false rabbitmq: host: 47.111.134.136 port: 5672 username: hivequeue password: hivequeueadmin ali: sms: accessKeyId: LTAI4FrjY9R9iDfC6YQTHfne accessKeySecret: eSvQslpHpDSGlI9Hxm4y5MynNgLbCp regionId: cn-hangzhou signName: \u80bd\u598d activities: groupBuy: limit: 24 groupBuy: pay: timeLimit: 30 scheduling: enabled: false swagger: enable: true default: vip: photo: woman: https://filehive2.jyymatrix.cc/uploadeFile/20210125/db53552e688040afb286686f081e1e68f3fe946f75624598828f01898635152e.png man: https://filehive2.jyymatrix.cc/uploadeFile/20210125/3642f1d827c44c76832fea106c85e0f89e089c16cbcc4dd0a82bb52b9ac700f4.png zq-erp/src/test/java/com/matrix/DataMoveTest.java
New file @@ -0,0 +1,38 @@ package com.matrix; import com.matrix.system.common.bean.SysUsers; import com.matrix.system.hive.bean.SysShopInfo; import com.matrix.system.dataMove.DateMoveServiceImpl; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import java.io.UnsupportedEncodingException; import java.security.NoSuchAlgorithmException; import java.util.List; /** * @author wzy * @date 2021-03-18 **/ @RunWith(SpringRunner.class) @SpringBootTest(classes = {ZqErpApplication.class},webEnvironment =SpringBootTest.WebEnvironment.RANDOM_PORT) public class DataMoveTest { @Autowired private DateMoveServiceImpl dataMove; @Test public void slaveTest() { List<SysShopInfo> shopInfos = dataMove.oldShopInfo(); dataMove.toNewShopInfo(shopInfos); } @Test public void sysUsersMoveTest() throws UnsupportedEncodingException, NoSuchAlgorithmException { List<SysUsers> sysUsers = dataMove.oldSysUsers(); dataMove.newSysUsers(sysUsers); } }