Commit bcfed5b5 by 阳浪

配置信息

parent def59a6d
......@@ -41,7 +41,7 @@ public enum InternationalEnums {
SALTCONTROLLER3("SaltController3","用户名禁止明文传输"),
SALTCONTROLLER4("SaltController4","传递的appId有误"),
SALTCONTROLLER5("SaltController5","传递的盐和加密用户名中的盐不一致"),
SALTCONTROLLER6("SaltController6","学习平台暂无本账户信息,请联系管理员!"),
SALTCONTROLLER6("SaltController6","智慧党建暂无本账户信息,请联系管理员!"),
SALTCONTROLLER7("SaltController7","加密失败!"),
SALTCONTROLLER8("SaltController8","解密失败!"),
SALTCONTROLLER9("SaltController9","更新失败,无效的AppId"),
......
......@@ -4,8 +4,6 @@
package com.yizhi.core.application.log;
import com.yizhi.core.application.event.LogEvent;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
......@@ -16,11 +14,12 @@ import org.springframework.stereotype.Component;
@Component
public class LogEventPublisher{
@Autowired
RabbitTemplate rabbitTemplate;
/*@Autowired
RabbitTemplate rabbitTemplate;*/
public <T> void publish(LogEvent<T> event) {
rabbitTemplate.convertAndSend(event.getQueue(),event.getData());
//rabbitTemplate.convertAndSend(event.getQueue(),event.getData());
}
}
......@@ -17,8 +17,6 @@ import com.yizhi.core.application.operatelog.source.Version;
import com.yizhi.core.application.log.OperateLog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
......@@ -27,9 +25,9 @@ import com.yizhi.util.application.constant.QueueConstant;
import com.yizhi.util.application.json.JsonUtil;
public class OperationLogInteceptor implements HandlerInterceptor {
/*
@Autowired
private AmqpTemplate rabbitTemplate;
private AmqpTemplate rabbitTemplate;*/
private Logger logger = LoggerFactory.getLogger(getClass());
......@@ -86,7 +84,7 @@ public class OperationLogInteceptor implements HandlerInterceptor {
}
// 获取操作系统和浏览器信息
setBrowserAndOS(request, operateLog);
rabbitTemplate.convertAndSend(QueueConstant.OPERATE_LOG_QUEUE, operateLog);
//rabbitTemplate.convertAndSend(QueueConstant.OPERATE_LOG_QUEUE, operateLog);
logger.info("operate log ======", operateLog);
}
} catch (Exception el) {
......
......@@ -4,8 +4,6 @@
package com.yizhi.core.application.publish;
import com.yizhi.core.application.event.EventWrapper;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
......@@ -17,12 +15,13 @@ import org.springframework.stereotype.Component;
@Component
public class CloudEventPublisher {
@Autowired
RabbitTemplate rabbitTemplate;
//@Autowired
//RabbitTemplate rabbitTemplate;
public <T> void publish(String queue, EventWrapper<T> event) {
rabbitTemplate.convertAndSend(queue,event);
//rabbitTemplate.convertAndSend(queue,event);
}
}
\ No newline at end of file
......@@ -23,7 +23,6 @@ import io.jsonwebtoken.Claims;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
......
......@@ -9,7 +9,6 @@ import com.yizhi.logging.dto.RequestLogDTO;
import com.yizhi.util.application.constant.GlobalConstant;
import com.yizhi.util.application.constant.QueueConstant;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
......@@ -42,9 +41,9 @@ public class LogPostFilter extends BaseZuulFilter {
@Value("${gateway.logSwitch:false}")
private Boolean logSwitch;
/*
@Autowired
private RabbitTemplate rabbitTemplate;
private RabbitTemplate rabbitTemplate;*/
@Override
public boolean shouldFilter() {
......@@ -110,7 +109,7 @@ public class LogPostFilter extends BaseZuulFilter {
.terminalType(getUserAgent(request.getHeader("User-Agent")))
.build();
rabbitTemplate.convertAndSend(QueueConstant.REQUEST_LOG_QUEUE, requestLogDTO);
//rabbitTemplate.convertAndSend(QueueConstant.REQUEST_LOG_QUEUE, requestLogDTO);
return null;
}
......
package com.yizhi.application.filter;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.charset.Charset;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import com.yizhi.core.application.cache.CacheNamespace;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StreamUtils;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.springframework.util.StringUtils;
/**
* @ClassName LogPostFilter
......
server.port=8090
spring.application.name=gateWay
ACTIVE=${spring.profiles.active}
spring.profiles.active=wmy4
spring.profiles.active=prod
# nacos
spring.cloud.nacos.config.shared-dataids=common-${spring.profiles.active}.properties
spring.cloud.nacos.config.namespace=${spring.profiles.active}
spring.cloud.nacos.config.prefix=${spring.application.name}
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.config.server-addr=192.168.1.9:8848
\ No newline at end of file
spring.cloud.nacos.config.server-addr=10.23.1.183:8848
\ No newline at end of file
......@@ -4,12 +4,13 @@ import com.yizhi.core.application.log.LogQueue;
import org.springframework.amqp.core.Queue;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@SpringBootApplication(exclude = {RabbitAutoConfiguration.class})
@EnableDiscoveryClient
@ComponentScan(basePackages = {"com.yizhi"})
public class LogApplication {
......
server.port=35000
spring.application.name=log
ACTIVE=${spring.profiles.active}
spring.profiles.active=wmy401
spring.profiles.active=prod
# nacos
spring.cloud.nacos.config.shared-dataids=common-${spring.profiles.active}.properties
spring.cloud.nacos.config.namespace=${spring.profiles.active}
spring.cloud.nacos.config.prefix=${spring.application.name}
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.config.server-addr=192.168.1.7:3333
\ No newline at end of file
spring.cloud.nacos.config.server-addr=10.23.1.183:8848
\ No newline at end of file
......@@ -32,21 +32,6 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-jdbc</artifactId>-->
<!-- </dependency>-->
<!-- <dependency>-->
<!-- <groupId>org.apache.velocity</groupId>-->
<!-- <artifactId>velocity-engine-core</artifactId>-->
<!-- <version>2.0</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatisplus-spring-boot-starter</artifactId>
<version>1.0.5</version>
</dependency>
......
......@@ -58,7 +58,7 @@ public class MybatisCodeGenerator {
return super.processTypeConvert(fieldType);
}
});
dsc.setDriverName("com.mysql.jdbc.Driver");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("fulan@321#$");
dsc.setUrl("jdbc:mysql://192.168.0.150:3306/cloud_message?characterEncoding=utf8");
......
......@@ -13,7 +13,7 @@ import java.util.List;
@Data
public class OutsideUserSyncVO {
@ApiModelProperty(value = "接入方的应用唯一标识(对接时学习平台会生成提供到给对方)")
@ApiModelProperty(value = "接入方的应用唯一标识(对接时智慧党建会生成提供到给对方)")
private String appId;
@ApiModelProperty(value = "接入的用户信息")
......
......@@ -20,10 +20,10 @@ public class SaltAccountVO {
@ApiModelProperty ("盐")
private String salt;
@ApiModelProperty ("学习平台提供给第三方的appId")
@ApiModelProperty ("智慧党建提供给第三方的appId")
private String appId;
@ApiModelProperty ("用户名验证方式:null或0=不验证用户名;1=第三方使用学习平台的加密规则验证用户名;2=学习平台使用第三方的加密规则验证用户名")
@ApiModelProperty ("用户名验证方式:null或0=不验证用户名;1=第三方使用智慧党建的加密规则验证用户名;2=智慧党建使用第三方的加密规则验证用户名")
private Integer type;
@ApiModelProperty ("终端类型:1=安卓,0=IOS,3=微信,4=PC")
......
......@@ -12,7 +12,7 @@ import lombok.Data;
public class SaltPlusAccountVO {
@ApiModelProperty ("学习平台提供给第三方的appId")
@ApiModelProperty ("智慧党建提供给第三方的appId")
private String appId;
@ApiModelProperty ("加密的账号名称(md5nm)")
......@@ -24,7 +24,7 @@ public class SaltPlusAccountVO {
@ApiModelProperty ("盐")
private String salt;
@ApiModelProperty ("用户名验证方式:null或0=不验证用户名;1=第三方使用学习平台的加密规则验证用户名;2=学习平台使用第三方的加密规则验证用户名")
@ApiModelProperty ("用户名验证方式:null或0=不验证用户名;1=第三方使用智慧党建的加密规则验证用户名;2=智慧党建使用第三方的加密规则验证用户名")
private Integer type;
@ApiModelProperty ("提供的一次性校验值,访问后立即失效")
......
......@@ -115,4 +115,8 @@
</plugins>
</build>
<properties>
<!-- 跳过测试 -->
<skipTests>true</skipTests>
</properties>
</project>
\ No newline at end of file
package com.yizhi.system.application; import feign.RequestInterceptor;import feign.RequestTemplate;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.cloud.netflix.hystrix.EnableHystrix;import org.springframework.cloud.openfeign.EnableFeignClients;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.core.env.Environment;import org.springframework.scheduling.annotation.EnableAsync;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Enumeration; @EnableHystrix@SpringBootApplication@EnableDiscoveryClient@EnableFeignClients(basePackages = "com.yizhi")@EnableAsync@ComponentScan(basePackages = {"com.yizhi"})public class SystemApplication { private static final Logger logger = LoggerFactory.getLogger(SystemApplication.class); public static void main(String[] args) throws UnknownHostException { Environment env = SpringApplication.run(SystemApplication.class, args).getEnvironment(); String port = env.getProperty("server.port", "8080"); logger.info( "Access URLs:\n----------------------------------------------------------\n\t" + "Local: \t\thttp://127.0.0.1:{}\n\t" + "External: \thttp://{}:{}\n----------------------------------------------------------", port, InetAddress.getLocalHost().getHostAddress(), port); } @Bean //帮助调其他服务时,能取到上下文里面的信息 public RequestInterceptor headerInterceptor() { return new RequestInterceptor() { @Override public void apply(RequestTemplate requestTemplate) { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder .getRequestAttributes(); if (attributes != null) { HttpServletRequest request = attributes.getRequest(); Enumeration<String> headerNames = request.getHeaderNames(); if (headerNames != null) { while (headerNames.hasMoreElements()) { String name = headerNames.nextElement(); String values = request.getHeader(name); requestTemplate.header(name, values); } } } } }; } }
\ No newline at end of file
package com.yizhi.system.application; import feign.RequestInterceptor;import feign.RequestTemplate;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration;import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.cloud.netflix.hystrix.EnableHystrix;import org.springframework.cloud.openfeign.EnableFeignClients;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.core.env.Environment;import org.springframework.scheduling.annotation.EnableAsync;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Enumeration; @EnableHystrix@SpringBootApplication(exclude = {RabbitAutoConfiguration.class})@EnableDiscoveryClient@EnableFeignClients(basePackages = "com.yizhi")@EnableAsync@ComponentScan(basePackages = {"com.yizhi"})public class SystemApplication { private static final Logger logger = LoggerFactory.getLogger(SystemApplication.class); public static void main(String[] args) throws UnknownHostException { Environment env = SpringApplication.run(SystemApplication.class, args).getEnvironment(); String port = env.getProperty("server.port", "8080"); logger.info( "Access URLs:\n----------------------------------------------------------\n\t" + "Local: \t\thttp://10.23.1.183:{}\n\t" + "External: \thttp://{}:{}\n----------------------------------------------------------", port, InetAddress.getLocalHost().getHostAddress(), port); } @Bean //帮助调其他服务时,能取到上下文里面的信息 public RequestInterceptor headerInterceptor() { return new RequestInterceptor() { @Override public void apply(RequestTemplate requestTemplate) { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder .getRequestAttributes(); if (attributes != null) { HttpServletRequest request = attributes.getRequest(); Enumeration<String> headerNames = request.getHeaderNames(); if (headerNames != null) { while (headerNames.hasMoreElements()) { String name = headerNames.nextElement(); String values = request.getHeader(name); requestTemplate.header(name, values); } } } } }; } }
\ No newline at end of file
......
......@@ -5,7 +5,7 @@ package com.yizhi.system.application.constant;
*/
public interface CommunityParams {
final static String GET_TOKEN_LOCATION = "http://127.0.0.1:8301";
final static String GET_TOKEN_LOCATION = "http://10.23.1.183:8301";
final static String GET_TOKEN_URL = "/auth/oauth/token";
final static String SYMBOL_1 = "?";
final static String SYMBOL_2 = "=";
......
......@@ -7,7 +7,7 @@ public enum OutsideUserMsg {
TOKEN_INVALID("19011","令牌无效!"),
USER_IS_NULL("19010","用户名为空!"),
USER_STATUS_EXISTS("19009","同步的用户必须指定状态!"),
USER_NOT_EXISTS("19008","学习平台暂无本账户信息,请联系管理员!"),
USER_NOT_EXISTS("19008","智慧党建暂无本账户信息,请联系管理员!"),
USER_INFO_DECRYP_ERROR("19007","包含用户信息解密失败"),
USER_ORG_NAME_IS_EMPTY("19006","包含用户组织信息为空的用户"),
USER_FULL_NAME_IS_EMPTY("19005","包含用户昵称为空的用户"),
......
......@@ -20,14 +20,10 @@ import com.yizhi.system.application.vo.SaltPlusAccountVO;
import com.yizhi.system.application.vo.UpdateAccountReqVO;
import com.yizhi.system.application.vo.UpdateAccountVO;
import com.yizhi.system.application.vo.domain.Account;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -64,6 +60,8 @@ import com.yizhi.util.application.json.JsonUtil;
import com.yizhi.util.application.regex.RegexUtil;
import com.yizhi.wechat.application.utils.HttpClientUtils;
import javax.annotation.Resource;
/**
* 第三方用户数据同步接口
*
......@@ -84,12 +82,12 @@ public class SaltController {
final Integer NO_VALIDATION = 0;
/**
* 第三方使用学习平台的加密规则验证用户名
* 第三方使用智慧党建的加密规则验证用户名
*/
final Integer SALT_VALIDATION = 1;
/**
* 学习平台使用第三方的加密规则验证用户名
* 智慧党建使用第三方的加密规则验证用户名
*/
final Integer OTHER_VALIDATION = 2;
......@@ -114,14 +112,14 @@ public class SaltController {
@Autowired
IdGenerator idGenerator;
@Autowired
@Resource
AccountMapper accountMapper;
@Autowired
OrganizationIndexService organizationIndexService;
@Autowired
RabbitTemplate rabbitTemplate;
/* @Autowired
RabbitTemplate rabbitTemplate;*/
@Autowired
LogEventPublisher publisher;
......@@ -326,7 +324,7 @@ public class SaltController {
if (StringUtils.isEmpty(nameString)) {
publisher.publish(event);
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER1.getName()));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER1.getName());
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -353,7 +351,7 @@ public class SaltController {
if (System.currentTimeMillis() > expireTime.getTime()) {
publisher.publish(event);
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER2.getName()+appId));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER2.getName()+appId);
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -368,7 +366,7 @@ public class SaltController {
if(selectOne.getRsaState().equals(0)){
publisher.publish(event);
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER3.getName()));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER3.getName());
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -381,7 +379,7 @@ public class SaltController {
} else {
publisher.publish(event);
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER4.getName()+appId));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER4.getName()+appId);
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -396,7 +394,7 @@ public class SaltController {
if (null == decryptName) {
publisher.publish(event);
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER5.getName()+saltAccountVO.getSalt()));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp,InternationalEnums.SALTCONTROLLER5.getName()+saltAccountVO.getSalt());
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -417,7 +415,7 @@ public class SaltController {
if (null == user) {
publisher.publish(event);
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER6.getName()+nameString));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER6.getName()+nameString);
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -451,7 +449,7 @@ public class SaltController {
} else {
publisher.publish(event);
failEvents.add(new TaskLogDetailEvent(taskId,Constants.MSG_NOT_SITE_ACCESS_AUTH.getName()+user.getName()));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, Constants.MSG_NOT_SITE_ACCESS_AUTH.getName()+user.getName());
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -465,7 +463,7 @@ public class SaltController {
e.printStackTrace();
publisher.publish(event);
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER7.getName()));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER7.getName());
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -479,7 +477,7 @@ public class SaltController {
e.printStackTrace();
publisher.publish(event);
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER8.getName()));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER8.getName());
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -544,7 +542,7 @@ public class SaltController {
String appId = updateAccountReqVO.getAppId();
if (null == appId) {
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER9.getName()+appId));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER9.getName()+appId);
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -566,7 +564,7 @@ public class SaltController {
if (System.currentTimeMillis() > expireTime.getTime()) {
String error = InternationalEnums.SALTCONTROLLER10.getName();
failEvents.add(new TaskLogDetailEvent(taskId, error));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER10.getName());
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -978,7 +976,7 @@ public class SaltController {
//错误的信息发送给任务详情表
if (CollectionUtils.isNotEmpty(failEvents)) {
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
}
TaskLogEvent successLogEvent = TaskLogEvent.success(taskContextTemp, "批量更新用户成功","");
LogEvent<TaskLogEvent> successEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, successLogEvent);
......@@ -1019,7 +1017,7 @@ public class SaltController {
String appId = updateAccountReqVO.getAppId();
if (null == appId) {
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER49.getName()));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER49.getName()+appId);
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -1039,7 +1037,7 @@ public class SaltController {
if (System.currentTimeMillis() > expireTime.getTime()) {
String error = InternationalEnums.SALTCONTROLLER50.getName();
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER50.getName()));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
TaskLogEvent failLogEvent = TaskLogEvent.fail(taskContextTemp, InternationalEnums.SALTCONTROLLER50.getName());
LogEvent<TaskLogEvent> faileEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, failLogEvent);
publisher.publish(faileEvent);
......@@ -1439,7 +1437,7 @@ public class SaltController {
//错误的信息发送给任务详情表
if (CollectionUtils.isNotEmpty(failEvents)) {
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
}
TaskLogEvent successLogEvent = TaskLogEvent.success(taskContextTemp, "批量新增用户成功","");
LogEvent<TaskLogEvent> successEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, successLogEvent);
......@@ -1478,7 +1476,7 @@ public class SaltController {
String appId = updateAccountReqVO.getAppId();
if (null == appId) {
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER59.getName()));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
return Response.fail(InternationalEnums.SALTCONTROLLER59.getName());
}
// 查询companyId
......@@ -1495,7 +1493,7 @@ public class SaltController {
if (System.currentTimeMillis() > expireTime.getTime()) {
String error = InternationalEnums.SALTCONTROLLER60.getName();
failEvents.add(new TaskLogDetailEvent(taskId, error));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
return Response.fail(error);
}
com.yizhi.system.application.domain.Account account = new com.yizhi.system.application.domain.Account();
......@@ -1579,7 +1577,7 @@ public class SaltController {
}
if (CollectionUtils.isNotEmpty(failEvents)) {
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
}
TaskLogEvent successLogEvent = TaskLogEvent.success(taskContextTemp, "批量禁用用户成功","");
LogEvent<TaskLogEvent> successEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, successLogEvent);
......@@ -1622,7 +1620,7 @@ public class SaltController {
String appId = updateAccountReqVO.getAppId();
if (null == appId) {
failEvents.add(new TaskLogDetailEvent(taskId, InternationalEnums.SALTCONTROLLER64.getName()));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
return Response.fail(InternationalEnums.SALTCONTROLLER64.getName());
}
// 查询companyId
......@@ -1639,7 +1637,7 @@ public class SaltController {
if (System.currentTimeMillis() > expireTime.getTime()) {
String error =InternationalEnums.SALTCONTROLLER65.getName();
failEvents.add(new TaskLogDetailEvent(taskId, error));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
return Response.fail(error);
}
com.yizhi.system.application.domain.Account account = new com.yizhi.system.application.domain.Account();
......@@ -1723,7 +1721,7 @@ public class SaltController {
}
if (CollectionUtils.isNotEmpty(failEvents)) {
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
}
TaskLogEvent successLogEvent = TaskLogEvent.success(taskContextTemp, "查询用户成功","");
LogEvent<TaskLogEvent> successEvent = new LogEvent<>(LogQueue.TASK_LOG_QUEUE, successLogEvent);
......
package com.yizhi.system.application.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.baomidou.mybatisplus.service.impl.ServiceImpl;import com.yizhi.application.orm.id.IdGenerator;import com.yizhi.application.orm.util.QueryUtil;import com.yizhi.core.application.cache.RedisCache;import com.yizhi.core.application.context.RequestContext;import com.yizhi.core.application.exception.BizException;import com.yizhi.core.application.log.LogQueue;import com.yizhi.core.application.log.TaskLogDetailEvent;import com.yizhi.system.application.constant.AccountExportConditionConstant;import com.yizhi.system.application.constant.AuthzConstant;import com.yizhi.system.application.constant.ImpAccountError;import com.yizhi.system.application.domain.Account;import com.yizhi.system.application.domain.Company;import com.yizhi.system.application.domain.Organization;import com.yizhi.system.application.mapper.*;import com.yizhi.system.application.model.AccountImpModel;import com.yizhi.system.application.model.ImportModel;import com.yizhi.system.application.service.*;import com.yizhi.system.application.service.using.OrganizationCacheService;import com.yizhi.system.application.service.using.OrganizationIndexService;import com.yizhi.util.application.constant.ReturnCode;import com.yizhi.util.application.date.DateUtil;import com.yizhi.util.application.encrypt.ShaEncrypt;import com.yizhi.util.application.regex.RegexUtil;import com.yizhi.wechat.application.feign.WeiXinClient;import org.apache.commons.collections.CollectionUtils;import org.apache.commons.lang3.ArrayUtils;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.amqp.rabbit.core.RabbitTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional; import java.util.*;import java.util.stream.Collectors; @Service@Transactional(rollbackFor = Exception.class)public class AccountImportServiceImpl extends ServiceImpl<AccountMapper, Account> implements IAccountImportService { private static final Logger logger = LoggerFactory.getLogger(AccountImportServiceImpl.class); @Autowired AccountMapper accountMapper; @Autowired AuthzAccountRoleMapper accountRoleMapper; @Autowired AuthzRoleMapper roleMapper; @Autowired IOrganizationService orgService; @Autowired SiteMapper siteMapper; @Autowired CompanyMapper companyMapper; @Autowired IdGenerator idGenerator; @Autowired AuthorityService authorityService; @Autowired AccountEnableLogMapper logMapper; @Autowired AuthzGroupMemberMapper memberMapper; @Autowired IAuthzUserGroupService groupService; @Autowired OrganizationMapper organizationMapper; @Autowired private IOrganizationService organizationService; @Autowired private AuthzGroupMemberMapper groupMemberMapper; @Autowired private OrganizationIndexService organizationIndexService; @Autowired private OrganizationCacheService organizationCacheService; @Autowired private AuthService authService; @Autowired RabbitTemplate rabbitTemplate; @Autowired RedisCache redisCache; @Autowired private ISmsSendRecordService smsSendRecordService; @Autowired private WeiXinClient weiXinClient; @Override public List<AccountImpModel> importAccount(ImportModel importModel, RequestContext context) { List<AccountImpModel> models = importModel.getData(); // 获取企业的id Long companyId = context.getCompanyId(); logger.info("当前用户的企业的companyId:" + companyId); // 获取当前企业的用户name 的列表 List<String> names = accountMapper.selectNamesByCompanyId(companyId); logger.info("names size:" + names.size()); names = names.parallelStream().map(name -> { return name.toLowerCase(); }).collect(Collectors.toList()); logger.info("names lowCase:" + names.size()); Long taskId = importModel.getTaskId(); if (CollectionUtils.isNotEmpty(models)) { List<TaskLogDetailEvent> failEvents = new ArrayList<TaskLogDetailEvent>(); // 根组织 Organization rootOrg = new Organization(); rootOrg.setParentId(0L); rootOrg.setDeleted(Boolean.valueOf(false)); rootOrg.setCompanyId(context.getCompanyId()); EntityWrapper<Organization> rootOrgEw = new EntityWrapper(rootOrg); rootOrgEw.like("code", AuthzConstant.DEFAULT_COMPANY_ORG_ROOT_CODE_SUFFIX); rootOrg = rootOrg.selectOne(rootOrgEw); if (null == rootOrg) { failEvents.add(new TaskLogDetailEvent(taskId, "!!!查找根组织错误:未成功查询到根组织!!!")); rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents); return models; } List<Account> accounts = new ArrayList<Account>(); // 文件中的用户名集合 List<String> accountNamesInFile = new ArrayList<String>(); List<String> newAaccountNamesInFile = new ArrayList<>(); // 初始化文件中的手机号集合 List<String> accountMobileInFile = new ArrayList<String>(); // 初始化组织id Long orgId = null; List<Map<String, Long>> tempList = new ArrayList<Map<String, Long>>(); // 存放已添加的节点数据 Map<String, Map<String, Long>> orgMap = new HashMap<String, Map<String, Long>>(); Map<String, Long> childOrgMap = new HashMap<String, Long>(); Map<Long, String> parentIdLayerMap = new HashMap<>(); //判断是否有新节点产生 boolean isNewNode = false; boolean clearFlag = false; Long parentId; List<Account> updateAccountList = new ArrayList<Account>(); // 初始化解绑集合 List<Long> accountIds = new ArrayList<Long>(8); for (int j = 0; j < models.size(); j++) { AccountImpModel model = models.get(j); int i = j + 2; // 获取操作栏位的信息 String operation = model.getOperation(); boolean unBindUserFlag = false; if (StringUtils.isNotEmpty(operation)) { unBindUserFlag = AccountExportConditionConstant.UNBIND_USER.equals(operation.trim()); } // 判断操作是否解绑 if (!unBindUserFlag) { parentId = rootOrg.getId(); isNewNode = false; childOrgMap = new HashMap<String, Long>(); //检查用组织不能为空 // if (StringUtils.isEmpty(operation.trim())) { if (StringUtils.isEmpty(model.getFullOrgName() != null ? model.getFullOrgName().trim() : model.getFullOrgName())) { model.setResult(ImpAccountError.ORG_CODE_EMPTY); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.ORG_CODE_EMPTY)); continue; } // } // add 2018-7-17 10:00:14 String[] orgNameArray = model.getFullOrgName().trim().split("\\+"); // 子组织名不能和跟组织相同 add 2019年4月2日 int step = j + 2; if (useArrayUtils(orgNameArray, rootOrg.getName())) { model.setResult(ImpAccountError.ORGANIZATION_REPEAT); failEvents.add(new TaskLogDetailEvent(taskId, "第" + step + "行:" + ImpAccountError.ORGANIZATION_REPEAT)); continue; } orgNameArray = checkOrgImportCode(orgNameArray, rootOrg.getName().trim()); List<Organization> organizationList = new ArrayList<Organization>(); Date sysDate = new Date(); Organization midOrg = null; String newOrgCode = null; // 组织列表的新增 for (int k = 0; k < orgNameArray.length; k++) { Long id = null; if (!isNewNode && !orgMap.isEmpty()) { if (orgMap.size() > 0 && orgMap.get(orgNameArray[0]) != null) { parentId = orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k)); if (parentId != null) { if (k == 0) { parentId = rootOrg.getId(); } else { parentId = orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k - 1)); } orgId = orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k)); if (k > 0) { if (k == 1) { logger.info("已存在组织:" + orgNameArray[k] + "_" + k + " 本节点ID:" + orgMap.get(orgNameArray[0]).get(orgNameArray[k] + k) + " 父节点ID:" + parentId + "组织ID:" + orgId); } else { logger.info("已存在组织:" + orgNameArray[k] + "_" + k + " 本节点ID:" + orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k)) + " 父节点ID:" + parentId + "组织ID:" + orgId); } } continue; } } } if (k == 0) { parentId = rootOrg.getId(); } else { parentId = orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k - 1)); logger.info("parentId:" + parentId); } midOrg = getOrg(orgNameArray[k], parentId); if (midOrg != null) { logger.info("已经存在导入组织的名称:" + k + "-层级-" + midOrg.getEnName()); logger.info("已经存在导入组织id:" + k + "-层级-" + midOrg.getId()); parentId = midOrg.getId(); orgId = parentId; isNewNode = false; if (k == 0) { childOrgMap.put(getAllParentName(orgNameArray, k), orgId); orgMap.put(orgNameArray[0], childOrgMap); midOrg.setParentIdLayer(rootOrg.getId() + Organization.PARENT_ID_LAYER_SEPARATOR + midOrg.getId()); parentIdLayerMap.put(midOrg.getId(), midOrg.getParentIdLayer()); } else { childOrgMap.put(getAllParentName(orgNameArray, k), orgId); childOrgMap.putAll(orgMap.get(orgNameArray[0])); orgMap.put(orgNameArray[0], childOrgMap); midOrg.setParentIdLayer(parentIdLayerMap.get(midOrg.getParentId()) + Organization.PARENT_ID_LAYER_SEPARATOR + midOrg.getId()); parentIdLayerMap.put(midOrg.getId(), midOrg.getParentIdLayer()); } continue; } else { Organization organization = new Organization(); id = idGenerator.generate(); logger.info("公司id:" + context.getCompanyId()); organization.setCompanyId(context.getCompanyId()); // 生成组织编码 // 获取redis中的编码值编码 String orgCode = redisCache.get(context.getCompanyCode()) + ""; if (orgCode != null && !"".equals(orgCode) && !"null".equals(orgCode)) { // 新的组织编码 newOrgCode = (Integer.valueOf(orgCode) + 1) + ""; // 放到缓存中 redisCache.set(context.getCompanyCode(), newOrgCode); } else { newOrgCode = "1"; redisCache.set(context.getCompanyCode(), newOrgCode); } String orgNum = ""; switch (newOrgCode.length()) { case 1: orgNum = "000" + newOrgCode; break; case 2: orgNum = "00" + newOrgCode; break; case 3: orgNum = "0" + newOrgCode; break; default: orgNum = newOrgCode; } organization.setCode(context.getCompanyCode() + orgNum); organization.setId(id); organization.setName(orgNameArray[k].trim()); // 设置rootId organization.setRootId(rootOrg.getId()); if (organization.getName().equals("理赔")) { int uu = 0; logger.info("理赔"); } if (k == 0) { organization.setParentId(rootOrg.getId()); organization.setParentIdLayer(rootOrg.getId() + Organization.PARENT_ID_LAYER_SEPARATOR + organization.getId()); parentIdLayerMap.put(organization.getId(), organization.getParentIdLayer()); } else { if (k > 0) { parentId = orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k - 1)); logger.info("父级parentId:" + parentId); } organization.setParentId(parentId); organization.setParentIdLayer(parentIdLayerMap.get(organization.getParentId()) + Organization.PARENT_ID_LAYER_SEPARATOR + organization.getId()); parentIdLayerMap.put(organization.getId(), organization.getParentIdLayer()); } organization.setLayer(k + 1); organization.setCreateTime(sysDate); organization.setCreateByName(context.getAccountName()); organization.setCompanyId(context.getCompanyId()); organizationList.add(organization); parentId = id; orgId = id; logger.info("组织的id:" + orgId); } //有新节点产生,那么它下面的子节点全部是新增加 isNewNode = true; if (k == 0) { childOrgMap.put(getAllParentName(orgNameArray, k), id); orgMap.put(orgNameArray[0], childOrgMap); } else { childOrgMap.put(getAllParentName(orgNameArray, k), id); childOrgMap.putAll(orgMap.get(orgNameArray[0])); orgMap.put(orgNameArray[0], childOrgMap); } logger.info("添加新组织:" + orgNameArray[k] + "_" + k + ":" + id); } // 组织列表新增完成 if (organizationList != null && organizationList.size() > 0) { // 批量新增组织 orgService.insertBatch(organizationList); logger.info("organization add complete!"); clearFlag = true; } // 获取用户名 String name = model.getName(); logger.info("当前 current_name:" + name); String workNum = model.getWorknum(); //检查用户名不能为空 if (StringUtils.isEmpty(name)) { model.setResult(ImpAccountError.NAME_EMPTY); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_EMPTY)); continue; } // 转为小写 name = name.trim().toLowerCase(); // 获取用户名密码 String password = model.getPassword() != null ? model.getPassword().trim() : null; if (StringUtils.isEmpty(operation)) { //检查密码不能为空 if (StringUtils.isEmpty(password)) { model.setResult(ImpAccountError.PASSWORD_EMPTY); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.PASSWORD_EMPTY)); continue; } //检查密码是否合法 if (!RegexUtil.checkAccountPassword(password.trim())) { model.setResult(ImpAccountError.PASSWORD_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.PASSWORD_FORMAT_ERROR)); continue; } } //检查名称是否合法 if (StringUtils.isNotEmpty(name)) { if (!RegexUtil.checkAccountName(name.trim())) { model.setResult(ImpAccountError.NAME_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_FORMAT_ERROR)); continue; } } //检查手机是否合法 String phone = model.getMobile(); if (StringUtils.isNotEmpty(phone)) { if (!RegexUtil.checkMobile(phone.trim())) { model.setResult(ImpAccountError.PHONE_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.PHONE_FORMAT_ERROR)); continue; } } //检查邮箱是否合法 String email = model.getEmail(); if (StringUtils.isNotEmpty(email.trim())) { if (!RegexUtil.checkEmail(email.trim())) { model.setResult(ImpAccountError.EMAIL_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.EMAIL_FORMAT_ERROR)); continue; } } //判断备注 add by ly 2019-4-4 11:28:18 String remarkFirst = model.getRemarkFirst(); logger.info("remarkFirst的值是:" + remarkFirst); if (StringUtils.isNotEmpty(remarkFirst)) { if (!RegexUtil.isSuccessRemark(remarkFirst.trim())) { model.setResult(ImpAccountError.REMARK_REQUIRED); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_REQUIRED)); continue; } if ((remarkFirst.trim()).length() > 50) { model.setResult(ImpAccountError.REMARK_LENGTH); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_LENGTH)); continue; } } String remarkSecond = model.getRemarkSecond(); if (StringUtils.isNotEmpty(remarkSecond)) { if (!RegexUtil.isSuccessRemark(remarkSecond.trim())) { model.setResult(ImpAccountError.REMARK_REQUIRED); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_REQUIRED)); continue; } if ((remarkSecond.trim()).length() > 50) { model.setResult(ImpAccountError.REMARK_LENGTH); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_LENGTH)); continue; } } String remarkThird = model.getRemarkThird(); if (StringUtils.isNotEmpty(remarkThird)) { if (!RegexUtil.isSuccessRemark(remarkThird.trim())) { model.setResult(ImpAccountError.REMARK_REQUIRED); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_REQUIRED)); continue; } if ((remarkThird.trim()).length() > 50) { model.setResult(ImpAccountError.REMARK_LENGTH); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_LENGTH)); continue; } } // 判断导入用户 2019-2-28 List<String> mobileList = accountMapper.selectMobilesByCompanyId(companyId); String newName = ""; if (StringUtils.isEmpty(operation)) { // 检查文件中是否有重名 if (accountNamesInFile.contains(name.toLowerCase())) { model.setResult(ImpAccountError.NAME_EXIST_IN_FILE); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_EXIST_IN_FILE)); continue; } accountNamesInFile.add(name.toLowerCase()); //检查名称是否重复 // modified by shengchenglong,不区分大小写 if (names.contains(name.toLowerCase())) { model.setResult(ImpAccountError.NAME_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_EXIST)); continue; } names.add(name.toLowerCase()); // 新增用户 //检查手机号是否重复 if (StringUtils.isNotEmpty(phone)) { if (accountMapper.countExistMobile(0L, context.getCompanyId(), phone.trim()) > 0) { model.setResult(ImpAccountError.MOBILE_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.MOBILE_EXIST)); continue; } mobileList.add(phone); } } else { if (AccountExportConditionConstant.UPDATE_NAME.equals(operation.trim())) { logger.info("name" + name); logger.info("" + names); if (!names.contains(name)) { model.setResult(ImpAccountError.MODIFY_NAME_NOT_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.MODIFY_NAME_NOT_EXIST)); continue; } Account userInfo = new Account(); userInfo.setName(model.getName().trim()); userInfo.setCompanyId(companyId); Account account = this.selectOne(QueryUtil.condition(userInfo)); if (!StringUtils.isNotEmpty(account.getMobile())) { if (StringUtils.isNotEmpty(phone)) { if (!phone.equals(account.getMobile())) { if (mobileList.contains(phone)) { model.setResult(ImpAccountError.MOBILE_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.MOBILE_EXIST)); continue; } } } } newName = model.getNewName().trim(); if (StringUtils.isNotEmpty(newName)) { logger.info("当前的新名称:" + newName); boolean flag = RegexUtil.checkAccountName(newName.trim()); logger.info("校验的结果:" + flag); // 校验新用户名的格式 if (!RegexUtil.checkAccountName(newName.trim())) { model.setResult(ImpAccountError.NEW_NAME_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NEW_NAME_FORMAT_ERROR)); continue; } newName = newName.toLowerCase(); // 检查文件中是否有重名 if (newAaccountNamesInFile.contains(newName)) { model.setResult(ImpAccountError.NEW_NAME_EXIST_IN_FILE); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NEW_NAME_EXIST_IN_FILE)); continue; } newAaccountNamesInFile.add(model.getNewName()); //检查名称是否和数据库中的名称重复 if (names.contains(model.getNewName())) { model.setResult(ImpAccountError.NAME_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_EXIST)); continue; } names.add(name); } } } // 判断文件中手机号是否重复 if (StringUtils.isNotEmpty(phone)) { if (accountMobileInFile.contains(phone)) { model.setResult(ImpAccountError.MOBILE_EXIST_IN_FILE); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.MOBILE_EXIST_IN_FILE)); continue; } } accountMobileInFile.add(phone); String fullName = model.getFullName(); if (StringUtils.isNotEmpty(fullName)) { if ((fullName.trim()).length() > 20) { model.setResult(ImpAccountError.FULLNAME_LENGTH_LONG); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.FULLNAME_LENGTH_LONG)); continue; } mobileList.add(phone); } String enable = model.getEnabled(); Boolean enabled = null; if (StringUtils.isNotEmpty(enable)) { if ("1".equals(enable)) { enabled = Boolean.TRUE; } else if ("0".equals(enable)) { enabled = Boolean.FALSE; } } //查询账号过期类型 Integer expiredType = 0; String validDate = model.getValidDate(); Date startDate = null; Date endDate = null; Date expiredTime = null; Integer validDays = 0; try { if (org.apache.commons.lang3.StringUtils.EMPTY.equals(org.apache.commons.lang3.StringUtils.trimToEmpty(validDate))) { expiredType = 1; } else { if (validDate.indexOf("-") != -1) { String[] dateArr = validDate.split("-"); if (dateArr.length < 2) { model.setResult(ImpAccountError.VALIDDATE_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.VALIDDATE_FORMAT_ERROR)); continue; } else { expiredType = 2; startDate = DateUtil.parseShort(dateArr[0]); endDate = DateUtil.parseShort(dateArr[1]); } } else { expiredType = 3; validDays = Integer.parseInt(validDate); Calendar cal = Calendar.getInstance(); //根据有效天数计算账号过期时间 cal.add(Calendar.DATE, validDays); expiredTime = cal.getTime(); } } } catch (Exception e) { model.setResult(ImpAccountError.VALIDDATE_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.VALIDDATE_FORMAT_ERROR)); continue; } Account account = new Account(); account.setId(idGenerator.generate()); account.setName(name.trim()); account.setCompanyId(companyId); account.setEmail(email); account.setMobile(phone); account.setTelephone(phone); account.setWorkNum(workNum); account.setExpiredType(expiredType); account.setStartTime(startDate); account.setEndTime(endDate); account.setExpiredTime(expiredTime); account.setValidDays(validDays); account.setOrgId(orgId); logger.info("导入用户的用户组织id"); account.setFullName(model.getFullName()); account.setPosition(model.getPosition()); account.setCreateById(importModel.getAccountId()); account.setCreateByName(importModel.getAccountName()); account.setCreateTime(new Date()); // add by ly 2019-4-4 11:13:27 account.setRemarkFirst(model.getRemarkFirst()); account.setRemarkSecond(model.getRemarkSecond()); account.setRemarkThird(model.getRemarkThird()); // 判断导入用户还是新增用户 logger.info("当前导入操作:" + operation.trim()); if (StringUtils.isEmpty(operation)) { // 新增用户 account.setPassword(ShaEncrypt.encryptNewPassword(password)); accounts.add(account); } else { if (AccountExportConditionConstant.UPDATE_NAME.equals(operation.trim())) { try { // 获取用户信息 Account updateAccount = new Account(); updateAccount.setName(name); updateAccount.setCompanyId(companyId); // 获取当前的用户的信息 updateAccount = this.selectOne(QueryUtil.condition(updateAccount)); logger.info("返回用户:" + updateAccount); // 密码校验 if (StringUtils.isNotEmpty(password)) { //检查密码是否合法 if (!RegexUtil.checkAccountPassword(password.trim())) { model.setResult(ImpAccountError.PASSWORD_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.PASSWORD_FORMAT_ERROR)); continue; } account.setPassword(ShaEncrypt.encryptNewPassword(password)); } //更新部门校验部门为空,不修改 if (StringUtils.isEmpty(model.getFullOrgName() != null ? model.getFullOrgName().trim() : model.getFullOrgName())) { account.setOrgId(updateAccount.getOrgId()); } if (updateAccount != null) { logger.info("用户id:" + updateAccount.getId()); if (enabled != null) { account.setEnabled(enabled); if (enabled) { account.setEnabledTime(new Date()); } } account.setId(updateAccount.getId()); // 可修改用户的名 add 2019年7月25日11:28:26 by lingye String new_name = StringUtils.isNotEmpty(newName) ? newName : name; account.setName(new_name); } account.setCreateTime(null); account.setUpdateTime(new Date()); updateAccountList.add(account); } catch (Exception e) { logger.info("更新异常{}", e); } } } // 解绑用户 } else if (unBindUserFlag) { String name = model.getName(); logger.info("解绑的用户名:" + name); if (StringUtils.isEmpty(name)) { model.setResult(ImpAccountError.NAME_EMPTY); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_EMPTY)); continue; } if (!names.contains(name)) { model.setResult(ImpAccountError.UNBIND_NAME_NOT_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.UNBIND_NAME_NOT_EXIST)); continue; } Account userInfo = new Account(); userInfo.setName(model.getName().trim()); userInfo.setCompanyId(companyId); Account account = this.selectOne(QueryUtil.condition(userInfo)); if (account == null) { model.setResult(ImpAccountError.UNBIND_NAME_NOT_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.UNBIND_NAME_NOT_EXIST)); continue; } accountIds.add(account.getId()); } } if (CollectionUtils.isNotEmpty(accountIds)) { // 解绑用户 Boolean unbindUserResult = weiXinClient.unbindUser(accountIds); if (CollectionUtils.isNotEmpty(failEvents)) { rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents); } return models; } if (CollectionUtils.isNotEmpty(accounts)) { if (!this.insertBatch(accounts)) { throw new BizException(ReturnCode.SAVE_FAIL.getCode(), ReturnCode.SAVE_FAIL.getMsg()); } clearFlag = true; } // 更新用户信息 if (CollectionUtils.isNotEmpty(updateAccountList)) { if (!this.updateBatchById(updateAccountList)) { throw new BizException(ReturnCode.UPDATE_FAIL.getCode(), ReturnCode.UPDATE_FAIL.getMsg()); } clearFlag = true; } if (clearFlag) { Company company = companyMapper.selectById(companyId); if (company!=null){ // 计算左右索引 organizationIndexService.addInitTask(companyId); } } //错误的信息发送给任务详情表 if (CollectionUtils.isNotEmpty(failEvents)) { rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents); } return models; } else { throw new BizException(ReturnCode.RESOURCE_NOT_FOUND.getCode(), ReturnCode.RESOURCE_NOT_FOUND.getMsg()); } } /** * 获取当前节点的所有父亲节点 * * @param orgNameArray * @param curIndex * @return */ private String getAllParentName(String[] orgNameArray, int curIndex) { String name = ""; for (int i = 0; i < curIndex + 1; i++) { name += orgNameArray[i]; } return name + curIndex; } /** * 数组包含 * * @param arr * @param targetValue * @return */ public boolean useArrayUtils(String[] arr, String targetValue) { return ArrayUtils.contains(arr, targetValue); } /** * 去除跟组织 * * @param fullOrgName * @param rootName * @return */ private String[] checkOrgImportCode(String[] fullOrgName, String rootName) { if (fullOrgName[0].equals(rootName)) { return Arrays.copyOfRange(fullOrgName, 1, fullOrgName.length); } return fullOrgName; } /** * 查询组织 * * @param name * @param parentId * @return */ public Organization getOrg(String name, Long parentId) { Organization org = new Organization(); org.setName(name.trim()); org.setParentId(parentId); org.setDeleted(false); return orgService.selectOne(QueryUtil.condition(org)); } }
\ No newline at end of file
package com.yizhi.system.application.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper;import com.baomidou.mybatisplus.service.impl.ServiceImpl;import com.yizhi.application.orm.id.IdGenerator;import com.yizhi.application.orm.util.QueryUtil;import com.yizhi.core.application.cache.RedisCache;import com.yizhi.core.application.context.RequestContext;import com.yizhi.core.application.exception.BizException;import com.yizhi.core.application.log.LogQueue;import com.yizhi.core.application.log.TaskLogDetailEvent;import com.yizhi.system.application.constant.AccountExportConditionConstant;import com.yizhi.system.application.constant.AuthzConstant;import com.yizhi.system.application.constant.ImpAccountError;import com.yizhi.system.application.domain.Account;import com.yizhi.system.application.domain.Company;import com.yizhi.system.application.domain.Organization;import com.yizhi.system.application.mapper.*;import com.yizhi.system.application.model.AccountImpModel;import com.yizhi.system.application.model.ImportModel;import com.yizhi.system.application.service.*;import com.yizhi.system.application.service.using.OrganizationCacheService;import com.yizhi.system.application.service.using.OrganizationIndexService;import com.yizhi.util.application.constant.ReturnCode;import com.yizhi.util.application.date.DateUtil;import com.yizhi.util.application.encrypt.ShaEncrypt;import com.yizhi.util.application.regex.RegexUtil;import com.yizhi.wechat.application.feign.WeiXinClient;import org.apache.commons.collections.CollectionUtils;import org.apache.commons.lang3.ArrayUtils;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional; import java.util.*;import java.util.stream.Collectors; @Service@Transactional(rollbackFor = Exception.class)public class AccountImportServiceImpl extends ServiceImpl<AccountMapper, Account> implements IAccountImportService { private static final Logger logger = LoggerFactory.getLogger(AccountImportServiceImpl.class); @Autowired AccountMapper accountMapper; @Autowired AuthzAccountRoleMapper accountRoleMapper; @Autowired AuthzRoleMapper roleMapper; @Autowired IOrganizationService orgService; @Autowired SiteMapper siteMapper; @Autowired CompanyMapper companyMapper; @Autowired IdGenerator idGenerator; @Autowired AuthorityService authorityService; @Autowired AccountEnableLogMapper logMapper; @Autowired AuthzGroupMemberMapper memberMapper; @Autowired IAuthzUserGroupService groupService; @Autowired OrganizationMapper organizationMapper; @Autowired private IOrganizationService organizationService; @Autowired private AuthzGroupMemberMapper groupMemberMapper; @Autowired private OrganizationIndexService organizationIndexService; @Autowired private OrganizationCacheService organizationCacheService; @Autowired private AuthService authService; /*@Autowired RabbitTemplate rabbitTemplate;*/ @Autowired RedisCache redisCache; @Autowired private ISmsSendRecordService smsSendRecordService; @Autowired private WeiXinClient weiXinClient; @Override public List<AccountImpModel> importAccount(ImportModel importModel, RequestContext context) { List<AccountImpModel> models = importModel.getData(); // 获取企业的id Long companyId = context.getCompanyId(); logger.info("当前用户的企业的companyId:" + companyId); // 获取当前企业的用户name 的列表 List<String> names = accountMapper.selectNamesByCompanyId(companyId); logger.info("names size:" + names.size()); names = names.parallelStream().map(name -> { return name.toLowerCase(); }).collect(Collectors.toList()); logger.info("names lowCase:" + names.size()); Long taskId = importModel.getTaskId(); if (CollectionUtils.isNotEmpty(models)) { List<TaskLogDetailEvent> failEvents = new ArrayList<TaskLogDetailEvent>(); // 根组织 Organization rootOrg = new Organization(); rootOrg.setParentId(0L); rootOrg.setDeleted(Boolean.valueOf(false)); rootOrg.setCompanyId(context.getCompanyId()); EntityWrapper<Organization> rootOrgEw = new EntityWrapper(rootOrg); rootOrgEw.like("code", AuthzConstant.DEFAULT_COMPANY_ORG_ROOT_CODE_SUFFIX); rootOrg = rootOrg.selectOne(rootOrgEw); if (null == rootOrg) { failEvents.add(new TaskLogDetailEvent(taskId, "!!!查找根组织错误:未成功查询到根组织!!!")); //rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents); return models; } List<Account> accounts = new ArrayList<Account>(); // 文件中的用户名集合 List<String> accountNamesInFile = new ArrayList<String>(); List<String> newAaccountNamesInFile = new ArrayList<>(); // 初始化文件中的手机号集合 List<String> accountMobileInFile = new ArrayList<String>(); // 初始化组织id Long orgId = null; List<Map<String, Long>> tempList = new ArrayList<Map<String, Long>>(); // 存放已添加的节点数据 Map<String, Map<String, Long>> orgMap = new HashMap<String, Map<String, Long>>(); Map<String, Long> childOrgMap = new HashMap<String, Long>(); Map<Long, String> parentIdLayerMap = new HashMap<>(); //判断是否有新节点产生 boolean isNewNode = false; boolean clearFlag = false; Long parentId; List<Account> updateAccountList = new ArrayList<Account>(); // 初始化解绑集合 List<Long> accountIds = new ArrayList<Long>(8); for (int j = 0; j < models.size(); j++) { AccountImpModel model = models.get(j); int i = j + 2; // 获取操作栏位的信息 String operation = model.getOperation(); boolean unBindUserFlag = false; if (StringUtils.isNotEmpty(operation)) { unBindUserFlag = AccountExportConditionConstant.UNBIND_USER.equals(operation.trim()); } // 判断操作是否解绑 if (!unBindUserFlag) { parentId = rootOrg.getId(); isNewNode = false; childOrgMap = new HashMap<String, Long>(); //检查用组织不能为空 // if (StringUtils.isEmpty(operation.trim())) { if (StringUtils.isEmpty(model.getFullOrgName() != null ? model.getFullOrgName().trim() : model.getFullOrgName())) { model.setResult(ImpAccountError.ORG_CODE_EMPTY); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.ORG_CODE_EMPTY)); continue; } // } // add 2018-7-17 10:00:14 String[] orgNameArray = model.getFullOrgName().trim().split("\\+"); // 子组织名不能和跟组织相同 add 2019年4月2日 int step = j + 2; if (useArrayUtils(orgNameArray, rootOrg.getName())) { model.setResult(ImpAccountError.ORGANIZATION_REPEAT); failEvents.add(new TaskLogDetailEvent(taskId, "第" + step + "行:" + ImpAccountError.ORGANIZATION_REPEAT)); continue; } orgNameArray = checkOrgImportCode(orgNameArray, rootOrg.getName().trim()); List<Organization> organizationList = new ArrayList<Organization>(); Date sysDate = new Date(); Organization midOrg = null; String newOrgCode = null; // 组织列表的新增 for (int k = 0; k < orgNameArray.length; k++) { Long id = null; if (!isNewNode && !orgMap.isEmpty()) { if (orgMap.size() > 0 && orgMap.get(orgNameArray[0]) != null) { parentId = orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k)); if (parentId != null) { if (k == 0) { parentId = rootOrg.getId(); } else { parentId = orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k - 1)); } orgId = orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k)); if (k > 0) { if (k == 1) { logger.info("已存在组织:" + orgNameArray[k] + "_" + k + " 本节点ID:" + orgMap.get(orgNameArray[0]).get(orgNameArray[k] + k) + " 父节点ID:" + parentId + "组织ID:" + orgId); } else { logger.info("已存在组织:" + orgNameArray[k] + "_" + k + " 本节点ID:" + orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k)) + " 父节点ID:" + parentId + "组织ID:" + orgId); } } continue; } } } if (k == 0) { parentId = rootOrg.getId(); } else { parentId = orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k - 1)); logger.info("parentId:" + parentId); } midOrg = getOrg(orgNameArray[k], parentId); if (midOrg != null) { logger.info("已经存在导入组织的名称:" + k + "-层级-" + midOrg.getEnName()); logger.info("已经存在导入组织id:" + k + "-层级-" + midOrg.getId()); parentId = midOrg.getId(); orgId = parentId; isNewNode = false; if (k == 0) { childOrgMap.put(getAllParentName(orgNameArray, k), orgId); orgMap.put(orgNameArray[0], childOrgMap); midOrg.setParentIdLayer(rootOrg.getId() + Organization.PARENT_ID_LAYER_SEPARATOR + midOrg.getId()); parentIdLayerMap.put(midOrg.getId(), midOrg.getParentIdLayer()); } else { childOrgMap.put(getAllParentName(orgNameArray, k), orgId); childOrgMap.putAll(orgMap.get(orgNameArray[0])); orgMap.put(orgNameArray[0], childOrgMap); midOrg.setParentIdLayer(parentIdLayerMap.get(midOrg.getParentId()) + Organization.PARENT_ID_LAYER_SEPARATOR + midOrg.getId()); parentIdLayerMap.put(midOrg.getId(), midOrg.getParentIdLayer()); } continue; } else { Organization organization = new Organization(); id = idGenerator.generate(); logger.info("公司id:" + context.getCompanyId()); organization.setCompanyId(context.getCompanyId()); // 生成组织编码 // 获取redis中的编码值编码 String orgCode = redisCache.get(context.getCompanyCode()) + ""; if (orgCode != null && !"".equals(orgCode) && !"null".equals(orgCode)) { // 新的组织编码 newOrgCode = (Integer.valueOf(orgCode) + 1) + ""; // 放到缓存中 redisCache.set(context.getCompanyCode(), newOrgCode); } else { newOrgCode = "1"; redisCache.set(context.getCompanyCode(), newOrgCode); } String orgNum = ""; switch (newOrgCode.length()) { case 1: orgNum = "000" + newOrgCode; break; case 2: orgNum = "00" + newOrgCode; break; case 3: orgNum = "0" + newOrgCode; break; default: orgNum = newOrgCode; } organization.setCode(context.getCompanyCode() + orgNum); organization.setId(id); organization.setName(orgNameArray[k].trim()); // 设置rootId organization.setRootId(rootOrg.getId()); if (organization.getName().equals("理赔")) { int uu = 0; logger.info("理赔"); } if (k == 0) { organization.setParentId(rootOrg.getId()); organization.setParentIdLayer(rootOrg.getId() + Organization.PARENT_ID_LAYER_SEPARATOR + organization.getId()); parentIdLayerMap.put(organization.getId(), organization.getParentIdLayer()); } else { if (k > 0) { parentId = orgMap.get(orgNameArray[0]).get(getAllParentName(orgNameArray, k - 1)); logger.info("父级parentId:" + parentId); } organization.setParentId(parentId); organization.setParentIdLayer(parentIdLayerMap.get(organization.getParentId()) + Organization.PARENT_ID_LAYER_SEPARATOR + organization.getId()); parentIdLayerMap.put(organization.getId(), organization.getParentIdLayer()); } organization.setLayer(k + 1); organization.setCreateTime(sysDate); organization.setCreateByName(context.getAccountName()); organization.setCompanyId(context.getCompanyId()); organizationList.add(organization); parentId = id; orgId = id; logger.info("组织的id:" + orgId); } //有新节点产生,那么它下面的子节点全部是新增加 isNewNode = true; if (k == 0) { childOrgMap.put(getAllParentName(orgNameArray, k), id); orgMap.put(orgNameArray[0], childOrgMap); } else { childOrgMap.put(getAllParentName(orgNameArray, k), id); childOrgMap.putAll(orgMap.get(orgNameArray[0])); orgMap.put(orgNameArray[0], childOrgMap); } logger.info("添加新组织:" + orgNameArray[k] + "_" + k + ":" + id); } // 组织列表新增完成 if (organizationList != null && organizationList.size() > 0) { // 批量新增组织 orgService.insertBatch(organizationList); logger.info("organization add complete!"); clearFlag = true; } // 获取用户名 String name = model.getName(); logger.info("当前 current_name:" + name); String workNum = model.getWorknum(); //检查用户名不能为空 if (StringUtils.isEmpty(name)) { model.setResult(ImpAccountError.NAME_EMPTY); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_EMPTY)); continue; } // 转为小写 name = name.trim().toLowerCase(); // 获取用户名密码 String password = model.getPassword() != null ? model.getPassword().trim() : null; if (StringUtils.isEmpty(operation)) { //检查密码不能为空 if (StringUtils.isEmpty(password)) { model.setResult(ImpAccountError.PASSWORD_EMPTY); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.PASSWORD_EMPTY)); continue; } //检查密码是否合法 if (!RegexUtil.checkAccountPassword(password.trim())) { model.setResult(ImpAccountError.PASSWORD_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.PASSWORD_FORMAT_ERROR)); continue; } } //检查名称是否合法 if (StringUtils.isNotEmpty(name)) { if (!RegexUtil.checkAccountName(name.trim())) { model.setResult(ImpAccountError.NAME_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_FORMAT_ERROR)); continue; } } //检查手机是否合法 String phone = model.getMobile(); if (StringUtils.isNotEmpty(phone)) { if (!RegexUtil.checkMobile(phone.trim())) { model.setResult(ImpAccountError.PHONE_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.PHONE_FORMAT_ERROR)); continue; } } //检查邮箱是否合法 String email = model.getEmail(); if (StringUtils.isNotEmpty(email.trim())) { if (!RegexUtil.checkEmail(email.trim())) { model.setResult(ImpAccountError.EMAIL_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.EMAIL_FORMAT_ERROR)); continue; } } //判断备注 add by ly 2019-4-4 11:28:18 String remarkFirst = model.getRemarkFirst(); logger.info("remarkFirst的值是:" + remarkFirst); if (StringUtils.isNotEmpty(remarkFirst)) { if (!RegexUtil.isSuccessRemark(remarkFirst.trim())) { model.setResult(ImpAccountError.REMARK_REQUIRED); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_REQUIRED)); continue; } if ((remarkFirst.trim()).length() > 50) { model.setResult(ImpAccountError.REMARK_LENGTH); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_LENGTH)); continue; } } String remarkSecond = model.getRemarkSecond(); if (StringUtils.isNotEmpty(remarkSecond)) { if (!RegexUtil.isSuccessRemark(remarkSecond.trim())) { model.setResult(ImpAccountError.REMARK_REQUIRED); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_REQUIRED)); continue; } if ((remarkSecond.trim()).length() > 50) { model.setResult(ImpAccountError.REMARK_LENGTH); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_LENGTH)); continue; } } String remarkThird = model.getRemarkThird(); if (StringUtils.isNotEmpty(remarkThird)) { if (!RegexUtil.isSuccessRemark(remarkThird.trim())) { model.setResult(ImpAccountError.REMARK_REQUIRED); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_REQUIRED)); continue; } if ((remarkThird.trim()).length() > 50) { model.setResult(ImpAccountError.REMARK_LENGTH); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.REMARK_LENGTH)); continue; } } // 判断导入用户 2019-2-28 List<String> mobileList = accountMapper.selectMobilesByCompanyId(companyId); String newName = ""; if (StringUtils.isEmpty(operation)) { // 检查文件中是否有重名 if (accountNamesInFile.contains(name.toLowerCase())) { model.setResult(ImpAccountError.NAME_EXIST_IN_FILE); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_EXIST_IN_FILE)); continue; } accountNamesInFile.add(name.toLowerCase()); //检查名称是否重复 // modified by shengchenglong,不区分大小写 if (names.contains(name.toLowerCase())) { model.setResult(ImpAccountError.NAME_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_EXIST)); continue; } names.add(name.toLowerCase()); // 新增用户 //检查手机号是否重复 if (StringUtils.isNotEmpty(phone)) { if (accountMapper.countExistMobile(0L, context.getCompanyId(), phone.trim()) > 0) { model.setResult(ImpAccountError.MOBILE_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.MOBILE_EXIST)); continue; } mobileList.add(phone); } } else { if (AccountExportConditionConstant.UPDATE_NAME.equals(operation.trim())) { logger.info("name" + name); logger.info("" + names); if (!names.contains(name)) { model.setResult(ImpAccountError.MODIFY_NAME_NOT_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.MODIFY_NAME_NOT_EXIST)); continue; } Account userInfo = new Account(); userInfo.setName(model.getName().trim()); userInfo.setCompanyId(companyId); Account account = this.selectOne(QueryUtil.condition(userInfo)); if (!StringUtils.isNotEmpty(account.getMobile())) { if (StringUtils.isNotEmpty(phone)) { if (!phone.equals(account.getMobile())) { if (mobileList.contains(phone)) { model.setResult(ImpAccountError.MOBILE_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.MOBILE_EXIST)); continue; } } } } newName = model.getNewName().trim(); if (StringUtils.isNotEmpty(newName)) { logger.info("当前的新名称:" + newName); boolean flag = RegexUtil.checkAccountName(newName.trim()); logger.info("校验的结果:" + flag); // 校验新用户名的格式 if (!RegexUtil.checkAccountName(newName.trim())) { model.setResult(ImpAccountError.NEW_NAME_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NEW_NAME_FORMAT_ERROR)); continue; } newName = newName.toLowerCase(); // 检查文件中是否有重名 if (newAaccountNamesInFile.contains(newName)) { model.setResult(ImpAccountError.NEW_NAME_EXIST_IN_FILE); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NEW_NAME_EXIST_IN_FILE)); continue; } newAaccountNamesInFile.add(model.getNewName()); //检查名称是否和数据库中的名称重复 if (names.contains(model.getNewName())) { model.setResult(ImpAccountError.NAME_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_EXIST)); continue; } names.add(name); } } } // 判断文件中手机号是否重复 if (StringUtils.isNotEmpty(phone)) { if (accountMobileInFile.contains(phone)) { model.setResult(ImpAccountError.MOBILE_EXIST_IN_FILE); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.MOBILE_EXIST_IN_FILE)); continue; } } accountMobileInFile.add(phone); String fullName = model.getFullName(); if (StringUtils.isNotEmpty(fullName)) { if ((fullName.trim()).length() > 20) { model.setResult(ImpAccountError.FULLNAME_LENGTH_LONG); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.FULLNAME_LENGTH_LONG)); continue; } mobileList.add(phone); } String enable = model.getEnabled(); Boolean enabled = null; if (StringUtils.isNotEmpty(enable)) { if ("1".equals(enable)) { enabled = Boolean.TRUE; } else if ("0".equals(enable)) { enabled = Boolean.FALSE; } } //查询账号过期类型 Integer expiredType = 0; String validDate = model.getValidDate(); Date startDate = null; Date endDate = null; Date expiredTime = null; Integer validDays = 0; try { if (org.apache.commons.lang3.StringUtils.EMPTY.equals(org.apache.commons.lang3.StringUtils.trimToEmpty(validDate))) { expiredType = 1; } else { if (validDate.indexOf("-") != -1) { String[] dateArr = validDate.split("-"); if (dateArr.length < 2) { model.setResult(ImpAccountError.VALIDDATE_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.VALIDDATE_FORMAT_ERROR)); continue; } else { expiredType = 2; startDate = DateUtil.parseShort(dateArr[0]); endDate = DateUtil.parseShort(dateArr[1]); } } else { expiredType = 3; validDays = Integer.parseInt(validDate); Calendar cal = Calendar.getInstance(); //根据有效天数计算账号过期时间 cal.add(Calendar.DATE, validDays); expiredTime = cal.getTime(); } } } catch (Exception e) { model.setResult(ImpAccountError.VALIDDATE_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.VALIDDATE_FORMAT_ERROR)); continue; } Account account = new Account(); account.setId(idGenerator.generate()); account.setName(name.trim()); account.setCompanyId(companyId); account.setEmail(email); account.setMobile(phone); account.setTelephone(phone); account.setWorkNum(workNum); account.setExpiredType(expiredType); account.setStartTime(startDate); account.setEndTime(endDate); account.setExpiredTime(expiredTime); account.setValidDays(validDays); account.setOrgId(orgId); logger.info("导入用户的用户组织id"); account.setFullName(model.getFullName()); account.setPosition(model.getPosition()); account.setCreateById(importModel.getAccountId()); account.setCreateByName(importModel.getAccountName()); account.setCreateTime(new Date()); // add by ly 2019-4-4 11:13:27 account.setRemarkFirst(model.getRemarkFirst()); account.setRemarkSecond(model.getRemarkSecond()); account.setRemarkThird(model.getRemarkThird()); // 判断导入用户还是新增用户 logger.info("当前导入操作:" + operation.trim()); if (StringUtils.isEmpty(operation)) { // 新增用户 account.setPassword(ShaEncrypt.encryptNewPassword(password)); accounts.add(account); } else { if (AccountExportConditionConstant.UPDATE_NAME.equals(operation.trim())) { try { // 获取用户信息 Account updateAccount = new Account(); updateAccount.setName(name); updateAccount.setCompanyId(companyId); // 获取当前的用户的信息 updateAccount = this.selectOne(QueryUtil.condition(updateAccount)); logger.info("返回用户:" + updateAccount); // 密码校验 if (StringUtils.isNotEmpty(password)) { //检查密码是否合法 if (!RegexUtil.checkAccountPassword(password.trim())) { model.setResult(ImpAccountError.PASSWORD_FORMAT_ERROR); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.PASSWORD_FORMAT_ERROR)); continue; } account.setPassword(ShaEncrypt.encryptNewPassword(password)); } //更新部门校验部门为空,不修改 if (StringUtils.isEmpty(model.getFullOrgName() != null ? model.getFullOrgName().trim() : model.getFullOrgName())) { account.setOrgId(updateAccount.getOrgId()); } if (updateAccount != null) { logger.info("用户id:" + updateAccount.getId()); if (enabled != null) { account.setEnabled(enabled); if (enabled) { account.setEnabledTime(new Date()); } } account.setId(updateAccount.getId()); // 可修改用户的名 add 2019年7月25日11:28:26 by lingye String new_name = StringUtils.isNotEmpty(newName) ? newName : name; account.setName(new_name); } account.setCreateTime(null); account.setUpdateTime(new Date()); updateAccountList.add(account); } catch (Exception e) { logger.info("更新异常{}", e); } } } // 解绑用户 } else if (unBindUserFlag) { String name = model.getName(); logger.info("解绑的用户名:" + name); if (StringUtils.isEmpty(name)) { model.setResult(ImpAccountError.NAME_EMPTY); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.NAME_EMPTY)); continue; } if (!names.contains(name)) { model.setResult(ImpAccountError.UNBIND_NAME_NOT_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.UNBIND_NAME_NOT_EXIST)); continue; } Account userInfo = new Account(); userInfo.setName(model.getName().trim()); userInfo.setCompanyId(companyId); Account account = this.selectOne(QueryUtil.condition(userInfo)); if (account == null) { model.setResult(ImpAccountError.UNBIND_NAME_NOT_EXIST); failEvents.add(new TaskLogDetailEvent(taskId, "第" + i + "行:" + ImpAccountError.UNBIND_NAME_NOT_EXIST)); continue; } accountIds.add(account.getId()); } } if (CollectionUtils.isNotEmpty(accountIds)) { // 解绑用户 Boolean unbindUserResult = weiXinClient.unbindUser(accountIds); if (CollectionUtils.isNotEmpty(failEvents)) { //rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents); } return models; } if (CollectionUtils.isNotEmpty(accounts)) { if (!this.insertBatch(accounts)) { throw new BizException(ReturnCode.SAVE_FAIL.getCode(), ReturnCode.SAVE_FAIL.getMsg()); } clearFlag = true; } // 更新用户信息 if (CollectionUtils.isNotEmpty(updateAccountList)) { if (!this.updateBatchById(updateAccountList)) { throw new BizException(ReturnCode.UPDATE_FAIL.getCode(), ReturnCode.UPDATE_FAIL.getMsg()); } clearFlag = true; } if (clearFlag) { Company company = companyMapper.selectById(companyId); if (company!=null){ // 计算左右索引 organizationIndexService.addInitTask(companyId); } } //错误的信息发送给任务详情表 if (CollectionUtils.isNotEmpty(failEvents)) { // rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents); } return models; } else { throw new BizException(ReturnCode.RESOURCE_NOT_FOUND.getCode(), ReturnCode.RESOURCE_NOT_FOUND.getMsg()); } } /** * 获取当前节点的所有父亲节点 * * @param orgNameArray * @param curIndex * @return */ private String getAllParentName(String[] orgNameArray, int curIndex) { String name = ""; for (int i = 0; i < curIndex + 1; i++) { name += orgNameArray[i]; } return name + curIndex; } /** * 数组包含 * * @param arr * @param targetValue * @return */ public boolean useArrayUtils(String[] arr, String targetValue) { return ArrayUtils.contains(arr, targetValue); } /** * 去除跟组织 * * @param fullOrgName * @param rootName * @return */ private String[] checkOrgImportCode(String[] fullOrgName, String rootName) { if (fullOrgName[0].equals(rootName)) { return Arrays.copyOfRange(fullOrgName, 1, fullOrgName.length); } return fullOrgName; } /** * 查询组织 * * @param name * @param parentId * @return */ public Organization getOrg(String name, Long parentId) { Organization org = new Organization(); org.setName(name.trim()); org.setParentId(parentId); org.setDeleted(false); return orgService.selectOne(QueryUtil.condition(org)); } }
\ No newline at end of file
......
......@@ -54,7 +54,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.session.RowBounds;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -104,9 +103,9 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
private OrganizationCacheService organizationCacheService;
@Autowired
private AuthService authService;
/*
@Autowired
RabbitTemplate rabbitTemplate;
RabbitTemplate rabbitTemplate;*/
@Autowired
RedisCache redisCache;
......@@ -1491,7 +1490,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
rootOrg = rootOrg.selectOne(rootOrgEw);
if (null == rootOrg) {
failEvents.add(new TaskLogDetailEvent(taskId, "!!!查找根组织错误:未成功查询到根组织!!!"));
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
// rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
return models;
}
......@@ -2044,7 +2043,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
}
//错误的信息发送给任务详情表
if (CollectionUtils.isNotEmpty(failEvents)) {
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
// rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
}
return models;
} else {
......
......@@ -50,7 +50,6 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.Cacheable;
......@@ -85,8 +84,8 @@ public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Org
private SiteMapper siteMapper;
@Autowired
private AuthzGroupMemberMapper groupMemberMapper;
@Autowired
RabbitTemplate rabbitTemplate;
/*@Autowired
RabbitTemplate rabbitTemplate;*/
@Autowired
private IAuthzGroupMemberService groupMemberService;
@Autowired
......@@ -436,7 +435,7 @@ public class OrganizationServiceImpl extends ServiceImpl<OrganizationMapper, Org
}
//错误的信息发送给任务详情表
if (CollectionUtils.isNotEmpty(failEvents)) {
rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
//rabbitTemplate.convertAndSend(LogQueue.BATCH_TASK_LOG_DETAIL_QUEUE, failEvents);
}
}
return impModels;
......
server.port=35000
spring.application.name=system
ACTIVE=${spring.profiles.active}
spring.profiles.active=dev
spring.profiles.active=prod
# nacos
spring.cloud.nacos.config.shared-dataids=common-${spring.profiles.active}.properties
spring.cloud.nacos.config.namespace=${spring.profiles.active}
spring.cloud.nacos.config.prefix=${spring.application.name}
spring.cloud.nacos.config.file-extension=properties
spring.cloud.nacos.config.server-addr=192.168.1.22:3333
spring.cloud.nacos.config.server-addr=10.23.1.183:8848
mybatis-plus.global-config.logic-not-delete-value=0
mybatis-plus.global-config.logic-delete-value=1
mybatis-plus.global-config.sql-injector=com.baomidou.mybatisplus.mapper.LogicSqlInjector
......@@ -53,7 +53,7 @@
// DataSourceConfig dsc = new DataSourceConfig();
// dsc.setUrl("jdbc:mysql://172.17.3.163:3306/czt?useUnicode=true&useSSL=false&characterEncoding=utf8");
// // dsc.setSchemaName("public");
// dsc.setDriverName("com.mysql.jdbc.Driver");
// dsc.setDriverName("com.mysql.cj.jdbc.Driver");
// dsc.setUsername("root");
// dsc.setPassword("123456");
// mpg.setDataSource(dsc);
......
connection.url=jdbc:mysql://192.168.0.150:3306/cloud_security?useUnicode=true&characterEncoding=UTF-8&relaxAutoCommit=true&zeroDateTimeBehavior=convertToNull
connection.driverClassName=com.mysql.jdbc.Driver
connection.driverClassName=com.mysql.cj.jdbc.Driver
connection.username=root
connection.password=fulan@321#$
......@@ -146,7 +146,7 @@ public class RegexUtil {
}
/**
* 匹配IP地址(简单匹配,格式,如:192.168.1.1,127.0.0.1,没有匹配IP段的大小)
* 匹配IP地址(简单匹配,格式,如:192.168.1.1,10.23.1.183,没有匹配IP段的大小)
* @param ipAddress IPv4标准地址
* @return 验证成功返回true,验证失败返回false
*/
......
......@@ -55,8 +55,8 @@
<repositories>
<repository>
<id>learning-data-group</id>
<url>http://192.168.0.15:8081/repository/learning-data-group/</url>
<id>hqzhdj-data-group</id>
<url>http://192.168.0.15:8081/repository/hqzhdj-data-group/</url>
<releases>
<enabled>true</enabled>
</releases>
......@@ -69,8 +69,8 @@
<distributionManagement>
<snapshotRepository>
<id>learning-data</id>
<url>http://192.168.0.15:8081/repository/learning-data/</url>
<id>hqzhdj-data</id>
<url>http://192.168.0.15:8081/repository/hqzhdj-data/</url>
</snapshotRepository>
</distributionManagement>
......
......@@ -7,7 +7,7 @@
"parentPom": "elearn",
"servicePom": "elearn/cloud-system",
"dev": {
"JAVA_OPTS": "-Dspring.profiles.active=dev -Dspring.cloud.nacos.config.server-addr=192.168.1.22:3333,192.168.1.22:4444,192.168.1.22:5555"
"JAVA_OPTS": "-Dspring.profiles.active=prod -Dspring.cloud.nacos.config.server-addr=192.168.1.22:3333,192.168.1.22:4444,192.168.1.22:5555"
},
"sit": {
"JAVA_OPTS": "-Dspring.profiles.active=sit -Dspring.cloud.nacos.config.server-addr=192.168.1.13:3333,192.168.1.24:4444,192.168.1.38:5555"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment