Helius
2021-03-18 605ad677377b5aa3e163890ef3ca43df49f57e67
modify
4 files added
1 files deleted
5 files modified
533 ■■■■ changed files
zq-erp/pom.xml 18 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/ZqErpApplication.java 3 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/config/DataSourceConfig.java 148 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java 11 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/dataMove/BeanMapMapper.java 15 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/dataMove/DateMoveServiceImpl.java 160 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/action/ShopBizUserScoreAction.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/config/application.properties 69 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/config/application.yml 69 ●●●●● patch | view | raw | blame | history
zq-erp/src/test/java/com/matrix/DataMoveTest.java 38 ●●●●● patch | view | raw | blame | history
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);
    }
}