ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysLoginController.java
@@ -85,6 +85,7 @@ @ApiOperation("登录接口") @RepeatSubmit public AjaxResult login(@RequestBody @ApiParam(value = "登录对象") LoginBody loginBody) { AjaxResult ajax = success(); // 生成令牌 String token; ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysRoleController.java
@@ -1,10 +1,30 @@ package com.ltkj.web.controller.system; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletResponse; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.RandomUtil; import com.ltkj.db.DataSourceConfig; import com.ltkj.db.DataSourceContextHolder; import com.ltkj.hosp.domain.DictHosp; import com.ltkj.hosp.service.IDictHospService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.ClassPathResource; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.FileCopyUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; @@ -55,6 +75,13 @@ @Autowired private ISysDeptService deptService; @Autowired private JdbcTemplate jdbcTemplate; @Autowired private IDictHospService dictHospService; @Value("${config.path}") private String path; // @PreAuthorize("@ss.hasPermi('system:role:list')") @GetMapping("/list") @@ -245,4 +272,59 @@ ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); return ajax; } @Autowired private DataSourceConfig dataSourceConfig; /** * 从库批量执行sql * 读取本地sql文件 * @return */ @GetMapping("/execUpdateSql") public AjaxResult execUpdateSql() { DataSourceContextHolder.setDataSourceKey("default"); List<DictHosp> list = dictHospService.list(); List<Map<String, Object>> resultList = new ArrayList<>(); boolean flag = false; for (DictHosp dictHosp : list) { String dbName = dictHosp.getDbname(); Map<String, Object> dbResult = new HashMap<>(); dbResult.put("database", dbName); List<String> successList = new ArrayList<>(); List<String> errorList = new ArrayList<>(); try { InputStreamReader reader = new InputStreamReader(Files.newInputStream(Paths.get(path + File.separator + "update.sql")), StandardCharsets.UTF_8); String sqlContent = FileCopyUtils.copyToString(reader); String[] sqlStatements = sqlContent.split("\\|-\\|"); for (String sql : sqlStatements) { sql = sql.trim(); if (!sql.isEmpty()) { // INSERT INTO `api_config` (`id`, `api_url`, `api_method`, `tab_name`, `is_response`, `primary_keys`, `remark`, `result_code_key`, `result_data_key`, `type`) VALUES (${id}, '${dbName}', '${randowmStr}', '${randowmStr}', 1, 'ResultData', '1.pas 检查申请信息作废', 'ResultCode', 'ResultData', 'pacs'); // sql = sql.replace("${dbName}",dbName).replace("${id}", IdUtil.getSnowflake().nextIdStr()).replace("${randowmStr}", RandomUtil.randomString(10)); try { dataSourceConfig.addDataSource(dbName); DataSourceContextHolder.setDataSourceKey(dbName); jdbcTemplate.execute(sql); successList.add(sql); } catch (Exception e) { errorList.add(sql + "\nERROR: " + e.getMessage()); } } } } catch (IOException e) { return AjaxResult.error("读取SQL文件失败:" + e.getMessage()); } dbResult.put("successSQL", successList); dbResult.put("failedSQL", errorList); resultList.add(dbResult); if (!errorList.isEmpty()) flag = true; } DataSourceContextHolder.clear(); if (flag) return AjaxResult.error("执行sql中存在失败",resultList); return AjaxResult.success(resultList); } } ltkj-admin/src/main/resources/application-dev.yml
@@ -21,7 +21,7 @@ # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 port: 5011 port: 5000 servlet: # 应用的访问路径 context-path: / @@ -147,7 +147,7 @@ # 是否允许账户多终端同时登录(true允许 false不允许) soloLogin: true #是否开启登录时判断商户秘钥是否过期 secret_key_login: true secret_key_login: false # MyBatis Plus配置 mybatis-plus: @@ -251,7 +251,7 @@ # username = root # password = Root_ltkj123 config: properties: D:\ltkjprojectconf\config.properties properties: D:\ltkjprojectconf\configregion.properties path: D:\ltkjprojectconf logging: level: ltkj-admin/src/main/resources/application-linux-dev.yaml
File was deleted ltkj-admin/src/main/resources/application-linux-mjprod.yml
File was deleted ltkj-admin/src/main/resources/application-linux-mjtest.yml
File was deleted ltkj-admin/src/main/resources/application-prod.yml
@@ -21,7 +21,7 @@ # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 port: 5000 port: 5001 servlet: # 应用的访问路径 context-path: /ltkj-admin ltkj-admin/src/main/resources/application-test.yml
@@ -21,7 +21,7 @@ # 开发环境配置 server: # 服务器的HTTP端口,默认为8080 port: 5001 port: 5002 servlet: # 应用的访问路径 context-path: /ltkj-admin ltkj-admin/src/main/resources/application-win-chkwyyprod.yaml
File was deleted ltkj-admin/src/main/resources/application-win-pbkwyyprod.yaml
File was deleted ltkj-admin/src/main/resources/application-win-xamjyyprod.yaml
File was deleted ltkj-admin/src/main/resources/application-win-xamjyytest.yaml
File was deleted ltkj-admin/src/main/resources/application.yml
@@ -1,19 +1,9 @@ # Spring配置 #dev 公司 开发/部署使用 #prod 泾川县部署正式环境使用(小程序端也可使用) #test 泾川县部署测试环境使用 # linux-prod # linux-test # linux-mjprod # linux-mjtest # win-xamjyyprod # win-xamjyytest # win-chkwyyprod # win-pbkwyyprod # 陕健医澄合矿务局中心医院正式 5001 # 陕健医澄合矿务局中心医院测试 5002 # 陕西西安煤机医院正式 5003 # 陕西西安煤机医院测试 5004 #dev 公司 开发/部署使用 5000 #prod 泾川县部署正式环境使用(小程序端也可使用) 5001 #test 泾川县部署测试环境使用 5002 # linux-prod 5001 # linux-test 5002 spring: profiles: active: dev ltkj-admin/src/main/resources/logback.xml
@@ -23,30 +23,7 @@ </springProfile> <!-- 日志存放路径 煤积医院linux环境--> <springProfile name="linux-mjprod"> <property name="log.path" value="/ltkj/jar/logs/meiji"/> </springProfile> <springProfile name="linux-mjtest"> <property name="log.path" value="/ltkj/jar/logs/meiji/ceshi"/> </springProfile> <springProfile name="win-pbkwyyprod"> <property name="log.path" value="../../logs/pbkwyy/prod"/> </springProfile> <springProfile name="win-chkwyyprod"> <property name="log.path" value="../../logs/chkwyy/prod"/> </springProfile> <springProfile name="win-xamjyyprod"> <property name="log.path" value="../../logs/xamjyy/prod"/> </springProfile> <springProfile name="win-xamjyytest"> <property name="log.path" value="../../logs/xamjyy/test"/> </springProfile> <!-- 日志输出格式 --> <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/> ltkj-common/pom.xml
@@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>ltkj</artifactId> <artifactId>ltkj_peis_region</artifactId> <groupId>com.ltkj</groupId> <version>3.8.4</version> </parent> ltkj-common/src/main/java/com/ltkj/common/core/domain/model/LoginBody.java
@@ -34,6 +34,8 @@ */ private String uuid; private String hospId; @ApiModelProperty(value = "是true否false") private Boolean type = false; ltkj-framework/src/main/java/com/ltkj/framework/config/DruidConfig.java
@@ -38,7 +38,7 @@ * * @author ltkj */ @Configuration //@Configuration @Slf4j public class DruidConfig { ltkj-framework/src/main/java/com/ltkj/framework/config/WebConfig.java
@@ -1,6 +1,10 @@ package com.ltkj.framework.config; //import com.ltkj.framework.interceptor.DBChangeInterceptor; import com.ltkj.framework.interceptor.DBChangeInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpMethod; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @@ -11,6 +15,10 @@ //定义拦截器 @Configuration public class WebConfig implements WebMvcConfigurer { @Autowired private DBChangeInterceptor dbChangeInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new TokenInterceptor()) @@ -22,8 +30,23 @@ "/cus/package/projectListByPacId/**", "/cus/hospital/getHospList", "/lis/**","/api/His/**","/pacs/**", "/callBack/**", "/hosp/order/signOrderInfo" "/callBack/**" }); registry.addInterceptor(dbChangeInterceptor) .addPathPatterns("/**") .excludePathPatterns(new String[]{ "/system/dict/data/**", "/system/dict/type/**", "/captchaImage","/getCaptchaConfigKey/**", "/system/role/execUpdateSql" // , // "/login", "/register", "/captchaImage","/cus/**","/getCaptchaConfigKey","/report/jmreport/**", // "/sqlserver/getdata/**","/api/His/**","/system/config/zx","/system/config/gxxmpym","/system/report/savePdf", // "/system/dyjl/saveGjddyjl","/system/dyjl/saveBlGjddyjl","/check/ceshi","/check/pacs","/check/ceshicc", // "/common/uploadImgExe","/common/listExeVal","/pacs/InvokeRisService/**","/check/dataSynchronizationApi", // String.valueOf(HttpMethod.GET), "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**", // "/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**","/jmreport/**","/lis/**","/pacs/**","/callBack/**" }); } } ltkj-framework/src/main/java/com/ltkj/framework/web/service/SysLoginService.java
@@ -95,6 +95,7 @@ */ public String login(String username, String password, Boolean type,String code,String uuid) { String aSwitch = configService.selectConfigByKey("captcha_switch"); if(null !=aSwitch && aSwitch.equalsIgnoreCase("Y")){ String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + uuid; @@ -138,8 +139,8 @@ } AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); LoginUser loginUser = (LoginUser) authentication.getPrincipal(); recordLoginInfo(Long.valueOf(loginUser.getUserId())); recordLoginInfo(Long.valueOf(loginUser.getUserId())); //校验商家过期否 if (secretKeyLogin) { ltkj-hosp/pom.xml
@@ -3,7 +3,7 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>ltkj</artifactId> <artifactId>ltkj_peis_region</artifactId> <groupId>com.ltkj</groupId> <version>3.8.4</version> </parent> @@ -28,6 +28,12 @@ <dependency> <groupId>com.ltkj</groupId> <artifactId>ltkj-common</artifactId> <exclusions> <exclusion> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </exclusion> </exclusions> </dependency> <!-- 集成积木报表--> @@ -35,6 +41,23 @@ <groupId>org.jeecgframework.jimureport</groupId> <artifactId>jimureport-spring-boot-starter</artifactId> <version>1.5.4</version> <exclusions> <exclusion> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </exclusion> </exclusions> </dependency> <!-- 阿里数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> </dependencies> ltkj-hosp/src/main/java/com/ltkj/hosp/domain/DictHosp.java
@@ -173,6 +173,9 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date expirationTime; // 数据库名 private String dbname; @Override public String toString() { ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/LtkjExamJcsqdServiceImpl.java
@@ -37,8 +37,6 @@ private LtkjExamJcsqdMapper mapper; @Qualifier(value = "slaveHisDataSource") @Autowired private DataSource dataSource; @Override ltkj-hosp/src/main/resources/mapper/hosp/DictHospMapper.xml
@@ -31,6 +31,7 @@ <result property="updateByName" column="update_by_name"/> <result property="imgbase64" column="imgBase64"/> <result property="deleted" column="deleted"/> <!-- <result property="dbname" column="dbname"/>--> </resultMap> <sql id="selectDictHospVo"> pom.xml