Commit 88f0d0c0 authored by 徐州's avatar 徐州

代码转移

parent c17e7398
Pipeline #14296 failed with stages
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.house365</groupId>
<artifactId>web-server</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Eureka Server</name>
<description>Eureka Server project</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<start-class>com.springboot.EurekaServerApplication</start-class>
<docker.image.prefix>springcloud</docker.image.prefix>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.7</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.7</version>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Camden.BUILD-SNAPSHOT</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.2.3</version>
<configuration>
<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
<dockerDirectory>src/main/docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<!-- defined in spring-cloud-starter-parent pom (as documentation hint),
but needs to be repeated here -->
<configuration>
<requiresUnpack>
<dependency>
<groupId>com.netflix.eureka</groupId>
<artifactId>eureka-core</artifactId>
</dependency>
<dependency>
<groupId>com.netflix.eureka</groupId>
<artifactId>eureka-client</artifactId>
</dependency>
</requiresUnpack>
</configuration>
</plugin>
<plugin>
<groupId>pl.project13.maven</groupId>
<artifactId>git-commit-id-plugin</artifactId>
<configuration>
<failOnNoGitDirectory>false</failOnNoGitDirectory>
</configuration>
</plugin>
<plugin>
<!--skip deploy (this is just a test module) -->
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>jeesite-repos</id>
<name>Jeesite Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot-local</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/libs-release-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jeesite-repos</id>
<name>Jeesite Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</pluginRepository>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot-local</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
package com.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Date: 2016/11/29</p>
*
* @author XN
* @version 1.0
*/
@SpringBootApplication
@EnableEurekaServer
@EnableDiscoveryClient
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
# startWebServer.sh
# server1:nohup java -jar web-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=server1 &
# server2:nohup java -jar web-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=server2 &
# servertest:nohup java -jar web-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=servertest &
spring:
#profiles:
#active: dev
application:
name: eureka-server-clustered
output:
ansi:
enabled: always
server:
port: 8087
eureka:
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://server1:8087/eureka/
server:
waitTimeInMsWhenSyncEmpty: 0
---
server:
port: 8086
spring:
application:
name: eureka-server-clustered
profiles: servertest
output:
ansi:
enabled: always
eureka:
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://servertest:8086/eureka/
---
server:
port: 8087
spring:
application:
name: eureka-server-clustered
profiles: server1
output:
ansi:
enabled: always
eureka:
instance:
hostname: server1
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://server2:8088/eureka/
---
server:
port: 8088
spring:
application:
name: eureka-server-clustered
profiles: server2
output:
ansi:
enabled: always
eureka:
instance:
hostname: server2
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://server1:8087/eureka/
logging:
config: classpath:logback-spring.xml
path: /database/log/springboot/server/
█████▒█ ██ ▄████▄ ██ ▄█▀ ██████╗ ██╗ ██╗ ██████╗
▓██ ▒ ██ ▓██▒▒██▀ ▀█ ██▄█▒ ██╔══██╗██║ ██║██╔════╝
▒████ ░▓██ ▒██░▒▓█ ▄ ▓███▄░ ██████╔╝██║ ██║██║ ███╗
░▓█▒ ░▓▓█ ░██░▒▓▓▄ ▄██▒▓██ █▄ ██╔══██╗██║ ██║██║ ██║
░▒█░ ▒▒█████▓ ▒ ▓███▀ ░▒██▒ █▄ ██████╔╝╚██████╔╝╚██████╔╝
▒ ░ ░▒▓▒ ▒ ▒ ░ ░▒ ▒ ░▒ ▒▒ ▓▒ ╚═════╝ ╚═════╝ ╚═════╝
░ ░░▒░ ░ ░ ░ ▒ ░ ░▒ ▒░
░ ░ ░░░ ░ ░ ░ ░ ░░ ░
░ ░ ░ ░ ░
纯手工打造,品质保证!!! ${spring-boot.formatted-version}
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
<property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}kapac-configuration.log}"/>
<!--<springProfile name="dev">-->
<!--<appender name="DEBUG_LEVEL_REMAPPER" class="org.springframework.boot.logging.logback.LevelRemappingAppender">-->
<!--<destinationLogger>org.springframework.boot</destinationLogger>-->
<!--</appender>-->
<!--<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>-->
<!--<logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>-->
<!--<logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>-->
<!--<logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>-->
<!--<logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>-->
<!--<logger name="org.crsh.plugin" level="WARN"/>-->
<!--<logger name="org.crsh.ssh" level="WARN"/>-->
<!--<logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>-->
<!--<logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>-->
<!--<logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="WARN"/>-->
<!--<logger name="org.springframework.boot.actuate.endpoint.jmx" additivity="false">-->
<!--<appender-ref ref="DEBUG_LEVEL_REMAPPER"/>-->
<!--</logger>-->
<!--<logger name="org.thymeleaf" additivity="false">-->
<!--<appender-ref ref="DEBUG_LEVEL_REMAPPER"/>-->
<!--</logger>-->
<!--<logger name="com.springboot" level="TRACE" />-->
<!--<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">-->
<!--<encoder>-->
<!--<pattern>${CONSOLE_LOG_PATTERN}</pattern>-->
<!--<charset>utf8</charset>-->
<!--</encoder>-->
<!--</appender>-->
<!--<appender name="LOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--<encoder>-->
<!--<pattern>${FILE_LOG_PATTERN}</pattern>-->
<!--</encoder>-->
<!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
<!--<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory>-->
<!--</rollingPolicy>-->
<!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!--<MaxFileSize>10MB</MaxFileSize>-->
<!--</triggeringPolicy>-->
<!--</appender>-->
<!--</springProfile>-->
<!--<springProfile name="prod">-->
<!--<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">-->
<!--<encoder>-->
<!--<pattern>${CONSOLE_LOG_PATTERN}</pattern>-->
<!--<charset>utf8</charset>-->
<!--</encoder>-->
<!--</appender>-->
<!--<appender name="LOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
<!--<encoder>-->
<!--<pattern>${FILE_LOG_PATTERN}</pattern>-->
<!--</encoder>-->
<!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
<!--<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory>-->
<!--</rollingPolicy>-->
<!--<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">-->
<!--<MaxFileSize>10MB</MaxFileSize>-->
<!--</triggeringPolicy>-->
<!--</appender>-->
<!--</springProfile>-->
<appender name="DEBUG_LEVEL_REMAPPER" class="org.springframework.boot.logging.logback.LevelRemappingAppender">
<destinationLogger>org.springframework.boot</destinationLogger>
</appender>
<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
<logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
<logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
<logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
<logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
<logger name="org.crsh.plugin" level="WARN"/>
<logger name="org.crsh.ssh" level="WARN"/>
<logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
<logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
<logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="WARN"/>
<logger name="org.springframework.boot.actuate.endpoint.jmx" additivity="false">
<appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
</logger>
<logger name="org.thymeleaf" additivity="false">
<appender-ref ref="DEBUG_LEVEL_REMAPPER"/>
</logger>
<logger name="com.springboot" level="TRACE"/>
<logger name="org.springframework" level="warn"/>
<logger name="org.hibernate.validator" level="info"/>
<logger name="org.apache.ibatis" level="info"/>
<logger name="com.netflix" level="warn"/>
<logger name="org.apache.http" level="info"/>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<appender name="LOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<root level="info">
<appender-ref ref="CONSOLE" />
<appender-ref ref="LOGFILE" />
</root>
</configuration>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.house365</groupId>
<artifactId>wechat-beans</artifactId>
<packaging>jar</packaging>
<version>1.0.0-SNAPSHOT</version>
<name>wechat-beans Maven Webapp</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.2.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
<!-- commons begin -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
<!-- commons end -->
<!-- apache-httpclient begin -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.2</version>
</dependency>
<!-- apache-httpclient end -->
<!-- json-lib begin -->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-jaxb-annotations</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<!-- json-lib end -->
</dependencies>
<build>
<finalName>wechat-beans</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>jeesite-repos</id>
<name>Jeesite Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot-local</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-releases</id>
<name>Spring Releases</name>
<url>https://repo.spring.io/libs-release-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>jeesite-repos</id>
<name>Jeesite Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</pluginRepository>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot-local</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/libs-milestone-local</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
package com.house365.beans.dto;
import java.io.Serializable;
/**
* Description
* <p>
* Created by 365 on 2017/1/5 0005.
*/
public class AgentDTO implements Serializable{
private static final long serialVersionUID = -4291323506798029683L;
private String agentid;
private String report_location_flag;
private String logo_mediaid;
private String name;
private String description;
private String redirect_domain;
private String isreportuser;
private String isreportenter;
private String home_url;
private String chat_extension_url;
public String getAgentid() {
return agentid;
}
public void setAgentid(String agentid) {
this.agentid = agentid;
}
public String getReport_location_flag() {
return report_location_flag;
}
public void setReport_location_flag(String report_location_flag) {
this.report_location_flag = report_location_flag;
}
public String getLogo_mediaid() {
return logo_mediaid;
}
public void setLogo_mediaid(String logo_mediaid) {
this.logo_mediaid = logo_mediaid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getRedirect_domain() {
return redirect_domain;
}
public void setRedirect_domain(String redirect_domain) {
this.redirect_domain = redirect_domain;
}
public String getIsreportuser() {
return isreportuser;
}
public void setIsreportuser(String isreportuser) {
this.isreportuser = isreportuser;
}
public String getIsreportenter() {
return isreportenter;
}
public void setIsreportenter(String isreportenter) {
this.isreportenter = isreportenter;
}
public String getHome_url() {
return home_url;
}
public void setHome_url(String home_url) {
this.home_url = home_url;
}
public String getChat_extension_url() {
return chat_extension_url;
}
public void setChat_extension_url(String chat_extension_url) {
this.chat_extension_url = chat_extension_url;
}
}
package com.house365.beans.dto;
import com.house365.beans.vo.Company;
import java.io.Serializable;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Date: 2017/1/9</p>
*
* @author XN
* @version 1.0
*/
public class CompanyDTO implements Serializable {
private static final long serialVersionUID = 6285097507532594946L;
private Company entity;
public Company getEntity() {
return entity;
}
public void setEntity(Company entity) {
this.entity = entity;
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
CompanyDTO that = (CompanyDTO) o;
if (entity != null ? !entity.equals(that.entity) : that.entity != null)
return false;
return true;
}
@Override
public int hashCode() {
return entity != null ? entity.hashCode() : 0;
}
}
package com.house365.beans.dto;
import java.io.Serializable;
/**
* Description
* <p>
* Created by 365 on 2017/1/6 0006.
*/
public class DepartmentDTO implements Serializable{
private static final long serialVersionUID = -5023800419646212565L;
private String id;
private String name;
private String parentid;
private String companyid;
private Integer order;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getParentid() {
return parentid;
}
public void setParentid(String parentid) {
this.parentid = parentid;
}
public String getCompanyid() {
return companyid;
}
public void setCompanyid(String companyid) {
this.companyid = companyid;
}
public Integer getOrder() {
return order;
}
public void setOrder(Integer order) {
this.order = order;
}
}
package com.house365.beans.dto;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Date: 2017/3/24</p>
*
* @author XN
* @version 1.0
*/
public class MessageDTO implements Serializable {
private static final long serialVersionUID = -3215588967654592225L;
//公共属性
//成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
String touser;
//部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
String toparty;
//标签ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
String totag;
//消息类型
@NotNull
String msgtype;
//企业应用的id,整型。可在应用的设置页面查看
String agentid;
//图文消息,一个图文消息支持1到8条图文
String articles;
//视频媒体文件id,可以调用上传临时素材接口获取
String media_id;
//消息内容,最长不超过2048个字节,注意:主页型应用推送的文本消息在微信端最多只显示20个字(包含中英文)
String title;
//描述,不超过512个字节,超过会自动截断
String description;
//点击后跳转的链接。
String url;
//图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图640320,小图8080。
String picurl;
//按钮文字。 默认为“详情”, 不超过4个文字,超过自动截断。
String btntxt;
//消息内容,最长不超过2048个字节,注意:主页型应用推送的文本消息在微信端最多只显示20个字(包含中英文)
String content;
//表示是否是保密消息,0表示否,1表示是,默认0
String safe;
public String getTouser() {
return touser;
}
public void setTouser(String touser) {
this.touser = touser;
}
public String getToparty() {
return toparty;
}
public void setToparty(String toparty) {
this.toparty = toparty;
}
public String getTotag() {
return totag;
}
public void setTotag(String totag) {
this.totag = totag;
}
public String getMsgtype() {
return msgtype;
}
public void setMsgtype(String msgtype) {
this.msgtype = msgtype;
}
public String getAgentid() {
return agentid;
}
public void setAgentid(String agentid) {
this.agentid = agentid;
}
public String getMedia_id() {
return media_id;
}
public void setMedia_id(String media_id) {
this.media_id = media_id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getBtntxt() {
return btntxt;
}
public void setBtntxt(String btntxt) {
this.btntxt = btntxt;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getSafe() {
return safe;
}
public void setSafe(String safe) {
this.safe = safe;
}
public String getArticles() {
return articles;
}
public void setArticles(String articles) {
this.articles = articles;
}
public String getPicurl() {
return picurl;
}
public void setPicurl(String picurl) {
this.picurl = picurl;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder("MessageDTO{");
sb.append("touser='").append(touser).append('\'');
sb.append(", toparty='").append(toparty).append('\'');
sb.append(", totag='").append(totag).append('\'');
sb.append(", msgtype='").append(msgtype).append('\'');
sb.append(", agentid='").append(agentid).append('\'');
sb.append(", articles='").append(articles).append('\'');
sb.append(", media_id='").append(media_id).append('\'');
sb.append(", title='").append(title).append('\'');
sb.append(", description='").append(description).append('\'');
sb.append(", url='").append(url).append('\'');
sb.append(", picurl='").append(picurl).append('\'');
sb.append(", btntxt='").append(btntxt).append('\'');
sb.append(", content='").append(content).append('\'');
sb.append(", safe='").append(safe).append('\'');
sb.append('}');
return sb.toString();
}
}
package com.house365.beans.dto;
import java.io.Serializable;
/**
* Description
* <p>
* Created by 365 on 2017/1/6 0006.
*/
public class TagDTO implements Serializable{
private static final long serialVersionUID = 7790842213284366134L;
private String id;
private String tagname;
private String tagid;
private String userlist;
private String partylist;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getTagname() {
return tagname;
}
public void setTagname(String tagname) {
this.tagname = tagname;
}
public String getTagid() {
return tagid;
}
public void setTagid(String tagid) {
this.tagid = tagid;
}
public String getUserlist() {
return userlist;
}
public void setUserlist(String userlist) {
this.userlist = userlist;
}
public String getPartylist() {
return partylist;
}
public void setPartylist(String partylist) {
this.partylist = partylist;
}
}
package com.house365.beans.dto;
import java.io.Serializable;
import java.util.List;
/**
* Description
* <p>
* Created by 365 on 2017/1/6 0006.
*/
public class UserDTO implements Serializable {
private static final long serialVersionUID = -5729572598809792217L;
private String userid;
private String name;
private List<Integer> department;
private String position;
private String mobile;
private String gender;
private String email;
private String weixinid;
private String avatar_mediaid;
private String extattr;
private String companyid;
private String useridlist;
private String department_id;
private String fetch_child;
private String status;
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Integer> getDepartment() {
return department;
}
public void setDepartment(List<Integer> department) {
this.department = department;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getWeixinid() {
return weixinid;
}
public void setWeixinid(String weixinid) {
this.weixinid = weixinid;
}
public String getAvatar_mediaid() {
return avatar_mediaid;
}
public void setAvatar_mediaid(String avatar_mediaid) {
this.avatar_mediaid = avatar_mediaid;
}
public String getExtattr() {
return extattr;
}
public void setExtattr(String extattr) {
this.extattr = extattr;
}
public String getCompanyid() {
return companyid;
}
public void setCompanyid(String companyid) {
this.companyid = companyid;
}
public String getUseridlist() {
return useridlist;
}
public void setUseridlist(String useridlist) {
this.useridlist = useridlist;
}
public String getDepartment_id() {
return department_id;
}
public void setDepartment_id(String department_id) {
this.department_id = department_id;
}
public String getFetch_child() {
return fetch_child;
}
public void setFetch_child(String fetch_child) {
this.fetch_child = fetch_child;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
/*
* Copyright (C), 2002-2015, 江苏三六五网络股份有限公司
* FileName: BaseAttachment.java
* Author: duhui
* Date: 2015年1月18日 下午1:59:11
* Description:
* History:
* <author> <time> <version> <desc>
* 修改人姓名 修改时间 版本号 描述
*/
package com.house365.beans.vo;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import org.hibernate.validator.constraints.Length;
/**
* 上传文件类
*
* @author duhui
* @version [v1.0.0, 2015年1月18日]
* @see [相关类/方法](可选)
* @since [产品/模块版本] (可选)
*/
public class BaseAttachment {
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer id;
/**
* 表单id
*/
private Integer resourceId;
/**
* 表单bean
*/
@Length(max = 600)
private String resourceType;
/**
* 业务类型字段
*/
private Integer bizType;
/**
* 附件名称
*/
@Length(max = 900)
private String name;
/**
* 附件类型
*/
private Integer attachmentTypeId;
/**
* 附件后缀
*/
@Length(max = 30)
private String suffix;
/**
* 文件大小
*/
private Long size;
/**
* 文件路径
*/
@Length(max = 500)
private String remotePath;
/**
* 文件保存路径
*/
private Integer remoteServerUrlid;
/**
* 备注
*/
@Length(max = 100)
private String remark;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
/**
* 获取表单id
*
* @return 表单id
*/
public Integer getResourceId() {
return this.resourceId;
}
/**
* 设置表单id
*
* @param resourceId 表单id
*/
public void setResourceId(Integer resourceId) {
this.resourceId = resourceId;
}
/**
* 获取表单bean
*
* @return 表单bean
*/
public String getResourceType() {
return this.resourceType;
}
/**
* 设置表单bean
*
* @param resourceType 表单bean
*/
public void setResourceType(String resourceType) {
this.resourceType = resourceType;
}
/**
* 获取附件名称
*
* @return 附件名称
*/
public String getName() {
return this.name;
}
/**
* 设置附件名称
*
* @param name 附件名称
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取附件类型
*
* @return 附件类型
*/
public Integer getAttachmentTypeId() {
return this.attachmentTypeId;
}
/**
* 设置附件类型
*
* @param attachmentTypeId 附件类型
*/
public void setAttachmentTypeId(Integer attachmentTypeId) {
this.attachmentTypeId = attachmentTypeId;
}
/**
* 获取附件后缀
*
* @return 附件后缀
*/
public String getSuffix() {
return this.suffix;
}
/**
* 设置附件后缀
*
* @param suffix 附件后缀
*/
public void setSuffix(String suffix) {
this.suffix = suffix;
}
/**
* 获取文件大小
*
* @return 文件大小
*/
public Long getSize() {
return this.size;
}
/**
* 设置文件大小
*
* @param size 文件大小
*/
public void setSize(Long size) {
this.size = size;
}
/**
* 获取文件路径
*
* @return 文件路径
*/
public String getRemotePath() {
return this.remotePath;
}
/**
* 设置文件路径
*
* @param remotePath 文件路径
*/
public void setRemotePath(String remotePath) {
this.remotePath = remotePath;
}
/**
* 功能描述: <br>
* 获取缩放路径
*
* @param zoomStr 缩放比例的字符串
* @return
* @author chengjianfang
* @version [v1.0.0, 2015年2月4日]
* @since [产品/模块版本](可选)
*/
private String getZoomRemotePath(final String zoomStr) {
final int lastPointIndex = this.remotePath.lastIndexOf('.');
final String fileName = this.remotePath.substring(0, lastPointIndex);
final String suffix = this.remotePath.substring(lastPointIndex);
StringBuffer path = new StringBuffer(fileName);
//注释以下代码修改后台图片不显示问题 update by jiangzhou 2015-06-16
//path.append("_");
//path.append(zoomStr);
path.append(suffix);
return path.toString();
}
/**
* 获取文件保存路径
*
* @return 文件保存路径
*/
public Integer getRemoteServerUrlid() {
return this.remoteServerUrlid;
}
/**
* 设置文件保存路径
*
* @param remoteServerUrlid 文件保存路径
*/
public void setRemoteServerUrlid(Integer remoteServerUrlid) {
this.remoteServerUrlid = remoteServerUrlid;
}
/**
* 获取备注
*
* @return 备注
*/
public String getRemark() {
return this.remark;
}
/**
* 设置备注
*
* @param remark 备注
*/
public void setRemark(String remark) {
this.remark = remark;
}
/**
* @return the bizType
*/
public Integer getBizType() {
return bizType;
}
/**
* @param bizType the bizType to set
*/
public void setBizType(Integer bizType) {
this.bizType = bizType;
}
/**
* 实体的toString方法
*
* @return 实体字符串
*/
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("Id", getId())
.append("ResourceId", getResourceId())
.append("ResourceType", getResourceType())
.append("BizType", getBizType())
.append("Name", getName())
.append("AttachmentTypeId", getAttachmentTypeId())
.append("Suffix", getSuffix())
.append("Size", getSize())
.append("RemotePath", getRemotePath())
.append("RemoteServerUrlid", getRemoteServerUrlid())
.append("Remark", getRemark())
.toString();
}
/**
* 获取hash码
*
* @return HASH码
*/
public int hashCode() {
return new HashCodeBuilder()
.append(getId())
.toHashCode();
}
/**
* 对象比较
*
* @param obj 待比较对象
* @return 是否相同<li>true--相同<li>false--不相同
*/
public boolean equals(Object obj) {
if (obj instanceof BaseAttachment == false) return false;
if (this == obj) return true;
BaseAttachment other = (BaseAttachment) obj;
return new EqualsBuilder()
.append(getId(), other.getId())
.isEquals();
}
}
package com.house365.beans.vo;
import com.house365.common.beans.DomainObject;
import java.io.Serializable;
public class Company extends DomainObject implements Serializable {
private static final long serialVersionUID = -2550488765936108108L;
private String companyName;
private String corpid;
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName == null ? null : companyName.trim();
}
public String getCorpid() {
return corpid;
}
public void setCorpid(String corpid) {
this.corpid = corpid == null ? null : corpid.trim();
}
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
Company other = (Company) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getCompanyName() == null ? other.getCompanyName() == null : this.getCompanyName().equals(other.getCompanyName()))
&& (this.getCorpid() == null ? other.getCorpid() == null : this.getCorpid().equals(other.getCorpid()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getCompanyName() == null) ? 0 : getCompanyName().hashCode());
result = prime * result + ((getCorpid() == null) ? 0 : getCorpid().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", companyName=").append(companyName);
sb.append(", corpid=").append(corpid);
sb.append(", serialVersionUID=").append(serialVersionUID);
sb.append("]");
return sb.toString();
}
}
package com.house365.beans.vo;
import com.house365.common.beans.DomainObject;
import java.util.Date;
public class Department extends DomainObject {
private Integer wechatDepartmentId;
private String companyDepartmentId;
private String companyId;
private String companyName;
private String departmentName;
private Integer wechatParentId;
private String companyParentId;
private String hasChildren;
private Integer sort;
private Integer createBy;
private Date createTime;
public Integer getWechatDepartmentId() {
return wechatDepartmentId;
}
public void setWechatDepartmentId(Integer wechatDepartmentId) {
this.wechatDepartmentId = wechatDepartmentId;
}
public String getCompanyDepartmentId() {
return companyDepartmentId;
}
public void setCompanyDepartmentId(String companyDepartmentId) {
this.companyDepartmentId = companyDepartmentId;
}
public String getCompanyId() {
return companyId;
}
public void setCompanyId(String companyId) {
this.companyId = companyId;
}
public String getCompanyName() {
return companyName;
}
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
public String getDepartmentName() {
return departmentName;
}
public void setDepartmentName(String departmentName) {
this.departmentName = departmentName;
}
public Integer getWechatParentId() {
return wechatParentId;
}
public void setWechatParentId(Integer wechatParentId) {
this.wechatParentId = wechatParentId;
}
public String getCompanyParentId() {
return companyParentId;
}
public void setCompanyParentId(String companyParentId) {
this.companyParentId = companyParentId;
}
public String getHasChildren() {
return hasChildren;
}
public void setHasChildren(String hasChildren) {
this.hasChildren = hasChildren;
}
public Integer getSort() {
return sort;
}
public void setSort(Integer sort) {
this.sort = sort;
}
public Integer getCreateBy() {
return createBy;
}
public void setCreateBy(Integer createBy) {
this.createBy = createBy;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}
\ No newline at end of file
package com.house365.beans.vo;
import com.house365.common.beans.DomainObject;
import java.util.Date;
public class User extends DomainObject {
private String wechatUserId;
private String companyUserId;
private String companyId;
private String userName;
private Integer wechatDepartmentId;
private String companyDepartmentId;
private String position;
private String mobile;
private String gender;
private String email;
private String weixinid;
private String avatarMediaid;
private String extattr;
private String creater;
private Date createTime;
public String getWechatUserId() {
return wechatUserId;
}
public void setWechatUserId(String wechatUserId) {
this.wechatUserId = wechatUserId;
}
public Integer getWechatDepartmentId() {
return wechatDepartmentId;
}
public void setWechatDepartmentId(Integer wechatDepartmentId) {
this.wechatDepartmentId = wechatDepartmentId;
}
public String getCompanyId() {
return companyId;
}
public void setCompanyId(String companyId) {
this.companyId = companyId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
}
public String getCompanyUserId() {
return companyUserId;
}
public void setCompanyUserId(String companyUserId) {
this.companyUserId = companyUserId;
}
public String getCompanyDepartmentId() {
return companyDepartmentId;
}
public void setCompanyDepartmentId(String companyDepartmentId) {
this.companyDepartmentId = companyDepartmentId;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position == null ? null : position.trim();
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email == null ? null : email.trim();
}
public String getWeixinid() {
return weixinid;
}
public void setWeixinid(String weixinid) {
this.weixinid = weixinid == null ? null : weixinid.trim();
}
public String getAvatarMediaid() {
return avatarMediaid;
}
public void setAvatarMediaid(String avatarMediaid) {
this.avatarMediaid = avatarMediaid == null ? null : avatarMediaid.trim();
}
public String getExtattr() {
return extattr;
}
public void setExtattr(String extattr) {
this.extattr = extattr == null ? null : extattr.trim();
}
public String getCreater() {
return creater;
}
public void setCreater(String creater) {
this.creater = creater == null ? null : creater.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (that == null) {
return false;
}
if (getClass() != that.getClass()) {
return false;
}
User other = (User) that;
return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
&& (this.getWechatUserId() == null ? other.getWechatUserId() == null : this.getWechatUserId().equals(other.getWechatUserId()))
&& (this.getCompanyUserId() == null ? other.getCompanyUserId() == null : this.getCompanyUserId().equals(other.getCompanyUserId()))
&& (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId().equals(other.getCompanyId()))
&& (this.getUserName() == null ? other.getUserName() == null : this.getUserName().equals(other.getUserName()))
&& (this.getWechatDepartmentId() == null ? other.getWechatDepartmentId() == null : this.getWechatDepartmentId().equals(other.getWechatDepartmentId()))
&& (this.getCompanyDepartmentId() == null ? other.getCompanyDepartmentId() == null : this.getCompanyDepartmentId().equals(other.getCompanyDepartmentId()))
&& (this.getPosition() == null ? other.getPosition() == null : this.getPosition().equals(other.getPosition()))
&& (this.getMobile() == null ? other.getMobile() == null : this.getMobile().equals(other.getMobile()))
&& (this.getGender() == null ? other.getGender() == null : this.getGender().equals(other.getGender()))
&& (this.getEmail() == null ? other.getEmail() == null : this.getEmail().equals(other.getEmail()))
&& (this.getWeixinid() == null ? other.getWeixinid() == null : this.getWeixinid().equals(other.getWeixinid()))
&& (this.getAvatarMediaid() == null ? other.getAvatarMediaid() == null : this.getAvatarMediaid().equals(other.getAvatarMediaid()))
&& (this.getExtattr() == null ? other.getExtattr() == null : this.getExtattr().equals(other.getExtattr()))
&& (this.getCreater() == null ? other.getCreater() == null : this.getCreater().equals(other.getCreater()))
&& (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()));
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
result = prime * result + ((getWechatUserId() == null) ? 0 : getWechatUserId().hashCode());
result = prime * result + ((getCompanyUserId() == null) ? 0 : getCompanyUserId().hashCode());
result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode());
result = prime * result + ((getUserName() == null) ? 0 : getUserName().hashCode());
result = prime * result + ((getWechatDepartmentId() == null) ? 0 : getWechatDepartmentId().hashCode());
result = prime * result + ((getCompanyDepartmentId() == null) ? 0 : getCompanyDepartmentId().hashCode());
result = prime * result + ((getPosition() == null) ? 0 : getPosition().hashCode());
result = prime * result + ((getMobile() == null) ? 0 : getMobile().hashCode());
result = prime * result + ((getGender() == null) ? 0 : getGender().hashCode());
result = prime * result + ((getEmail() == null) ? 0 : getEmail().hashCode());
result = prime * result + ((getWeixinid() == null) ? 0 : getWeixinid().hashCode());
result = prime * result + ((getAvatarMediaid() == null) ? 0 : getAvatarMediaid().hashCode());
result = prime * result + ((getExtattr() == null) ? 0 : getExtattr().hashCode());
result = prime * result + ((getCreater() == null) ? 0 : getCreater().hashCode());
result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
return result;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getClass().getSimpleName());
sb.append(" [");
sb.append("Hash = ").append(hashCode());
sb.append(", wechatUserId=").append(wechatUserId);
sb.append(", companyUserId=").append(companyUserId);
sb.append(", companyId=").append(companyId);
sb.append(", userName=").append(userName);
sb.append(", wechatDepartmentId=").append(wechatDepartmentId);
sb.append(", companyDepartmentId=").append(companyDepartmentId);
sb.append(", position=").append(position);
sb.append(", mobile=").append(mobile);
sb.append(", gender=").append(gender);
sb.append(", email=").append(email);
sb.append(", weixinid=").append(weixinid);
sb.append(", avatarMediaid=").append(avatarMediaid);
sb.append(", extattr=").append(extattr);
sb.append(", creater=").append(creater);
sb.append(", createTime=").append(createTime);
sb.append("]");
return sb.toString();
}
}
/**
* Description: <类功能描述-必填>
* Copyright: Copyright (c)2012
* Company: house365
*
* @author: duhui
* @version: 1.0
* Create at: 2012-12-21 下午4:22:51
* <p>
* Modification History:
* Date Author Version Description
* ------------------------------------------------------------------
* 2015-1-21 duhui 1.0 如果修改了;必填
*/
package com.house365.common.beans;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import java.io.Serializable;
/**
* <p>
* 系统领域对象的基类
* </p>
* <br>
* 系统领域对象的基类,实现了Serializable接口。Allen. Lee
* DomainObject还覆写了hashCode()方法和equals()方法。这两个方法都将基于代理主键进行操作。
* 只有代理主键相等,领域对象才相等。如果创建的对象的entityId均未赋值,则直接比较物理地址。
*
* @author duhui
* @version 1.0 , 2014-12-27
* @see
*/
public class DomainObject implements Serializable {
/**
*
*/
private static final long serialVersionUID = 6234793910389347162L;
/**
* 领域对象的代理主键.
*/
private Integer id;
/*-------------------- construtors --------------------*/
/**
* 默认构造函数。
*
*/
public DomainObject() {
}
/**
* 通过代理主键构造领域对象。
*
* @param id
*/
public DomainObject(Integer id) {
this();
this.id = id;
}
/*----------------- public methods --------------------*/
/**
* 获取领域对象代理主键。
*
* @return
*/
public Integer getId() {
return id;
}
/**
* 设置领域对象代理主键。
*
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
/**
* 覆写基类的hashCode方法,如果代理主键不为null,返回Id对应的hashCode值,否则返回基类的hashCode值。
*
* @return
*/
@Override
public int hashCode() {
return new HashCodeBuilder().append(id).toHashCode();
}
/**
* 根据代理主键判断领域对象是否相同。
*
* @see Object#equals(Object)
*/
@Override
public boolean equals(Object target) {
if (target == null) {
return false;
}
if (target == this) {
return true;
}
if (target.getClass() != this.getClass()) {
return false;
}
DomainObject t = (DomainObject) target;
// 如果领域对象的Id为空,直接判断物理地址
if (id == 0 || t.getId() == 0) {
return t == this;
}
return new EqualsBuilder().append(id, t.getId()).isEquals();
}
}
package com.house365.common.beans;
/**
* return code and message,you can create your code and message here.
*/
public enum ReturnResult {
/**
* 操作成功
*/
SUCCESS("10000", "操作成功!"), /**
* 新增成功
*/
CREATE_SUCESS("10001", "新增成功,请查看详情!"), /**
* 编辑成功
*/
EDIT_SUCESS("10002", "编辑成功,请查看详情!"), /**
* 删除成功
*/
DELETE_SUCESS("10003", "删除成功!"),
// /////////////////////////////////////////////////////////////////////////
// 以上为正常编码,以下为异常编码
// /////////////////////////////////////////////////////////////////////////
/**
* 系统异常
*/
FAIL("-10000", "系统异常,请联系系统管理员,给您带来的不便请见谅,谢谢!"), /**
* 未发现异常
*/
NOT_FOUND("-10001", "系统内部异常!"), /**
* 参数错误异常
*/
ILLGEAL_PARAMTER("-10002", "参数异常!"), /**
* 关联内容为空异常
*/
CONTENT_EMPTY("-10003", "关联内容为空异常!"),
CHILD_NOT_EMPTY("-10011", "请先删除子部门或清除所有员工后再进行删除!");
/**
* resultCode小于-10000为异常编码,大于10000为正常编码
*/
private final String resultCode;
/**
* message
*/
private final String resultMessage;
/**
* 构造函数
*
* @param resultCode
* @param resultMessage
*/
ReturnResult(String resultCode, String resultMessage) {
this.resultCode = resultCode;
this.resultMessage = resultMessage;
}
public String getResultCode() {
return resultCode;
}
public String getResultMessage() {
return resultMessage;
}
}
package com.house365.common.constant;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Date: 2017/3/9</p>
*
* @author XN
* @version 1.0
*/
public class CacheConst {
//自己和下属部门员工信息
public static final String USERSKEY = "HGS_USERS";
}
package com.house365.common.constant;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.net.URLEncoder;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Date: 2016/12/30</p>
*
* @author XN
* @version 1.0
*/
@Component
@ConfigurationProperties(prefix = "urlConst")
public class UrlConst {
public static final String SESSIONUSER = "user";
public static final String HOUSE365_CORPID = "wx32f3a81d82530a8f";
public static final String HOUSE365_SECRET = "a1wzzur0EQNiiXFvSxYlfnTw497jtlj00KDw7D-IRQZqgox7q2gZBfUWURW05YT6";
public static final String loginURL = "https://qy.weixin.qq.com/cgi-bin/loginpage?";
public static final String getUserInfoURL = "https://qyapi.weixin.qq.com/cgi-bin/user/get?";
public static String redirectURL;
//企业获取code, 用于获取用户信息
public static String getCodeURL(String state) {
return "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx32f3a81d82530a8f&redirect_uri=" + URLEncoder.encode(
redirectURL) + "&response_type=code&scope=snsapi_base&state=" + state + "#wechat_redirect";
}
//第三方登录授权接口URL
public static String getLoginURL(String state, String corpId, String redirectURL) {
return loginURL + "corp_id=" + HOUSE365_CORPID + "&redirect_uri=" + URLEncoder.encode(
redirectURL) + "&state=" + state + "&usertype=all";
}
public static String getRedirectURL() {
return redirectURL;
}
public static void setRedirectURL(String redirectURL) {
UrlConst.redirectURL = redirectURL;
}
}
package com.house365.common.interfaces;
import com.house365.common.beans.DomainObject;
import com.house365.common.searchBeans.QueryParams;
import java.util.List;
/**
* 公共DAO接口<br>
*/
public interface Dao<T extends DomainObject> {
/**
* 分页查询 <br>
*
* @param queryParams
* @return
* @see
*/
List<T> queryByPage(QueryParams<?> queryParams);
/**
* 获取总数 <br>
*
* @param params
* @return
* @see
*/
int countByQueryParams(QueryParams<?> queryParams);
}
package com.house365.common.searchBeans;
import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;
/**
* TOP查询请求接口。
*/
public class CommonSearchRequest implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 随机码
*/
private String randomNumber;
/**
* 加密随机码
*/
private String encryptRandomNumber;
/**
* 分页
*/
private Page paging = new Page();
/**
* 原始查询条件
*/
private Map<String, Object> searchParams = new HashMap<String, Object>();
/**
* 排序列
*/
private String orderColumn = "id";
/**
* 排序方式。只允许两个值。desc和asc
*/
private String orderMode = "desc";
/**
* 方法中需要带入的其他参数
*/
private Map<String, Object> paramMap = new HashMap<String, Object>();
/**
* 可以通过该参数直接指定查询多少条。
*/
private int limit;
public String getRandomNumber() {
return randomNumber;
}
public void setRandomNumber(String randomNumber) {
this.randomNumber = randomNumber;
}
public String getEncryptRandomNumber() {
return encryptRandomNumber;
}
public void setEncryptRandomNumber(String encryptRandomNumber) {
this.encryptRandomNumber = encryptRandomNumber;
}
public Page getPaging() {
return paging;
}
public void setPaging(Page paging) {
this.paging = paging;
}
public Map<String, Object> getSearchParams() {
return searchParams;
}
public void setSearchParams(Map<String, Object> searchParams) {
this.searchParams = searchParams;
}
public String getOrderColumn() {
return orderColumn;
}
public void setOrderColumn(String orderColumn) {
this.orderColumn = orderColumn;
}
public String getOrderMode() {
return orderMode;
}
public void setOrderMode(String orderMode) {
this.orderMode = orderMode;
}
public int getLimit() {
return limit;
}
public void setLimit(int limit) {
this.limit = limit;
}
public Map<String, Object> getParamMap() {
return paramMap;
}
public void setParamMap(Map<String, Object> paramMap) {
this.paramMap = paramMap;
}
}
package com.house365.common.searchBeans;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* TOPAPI查询基础响应信息。
*/
public class CommonSearchResponse<T> implements java.io.Serializable
{
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 错误代码 1表示成功,0表示失败
*/
private String resultCode;
/**
* 错误信息
*/
private String resultMessage = "";
/**
* 分页
*/
private Page paging = new Page();
/**
* 原始查询条件
*/
/* private Map<String, Object> searchParams = new HashMap(); */
/**
* 返回给前台的出参容器
*/
private Map<String,Object> resultMap = new HashMap<String,Object>();
/**
* 返回的实体对象列表
*/
private List<T> objectList;
public Map<String, Object> getResultMap() {
return resultMap;
}
public void setResultMap(Map<String, Object> resultMap) {
this.resultMap = resultMap;
}
/**
*
* @return resultCode
*/
public String getResultCode()
{
return resultCode;
}
/**
*
* @param resultCode
* resultCode
*/
public void setResultCode(String resultCode) {
this.resultCode = resultCode;
}
/**
*
* @return resultMessage
*/
public String getResultMessage() {
return resultMessage;
}
/**
*
* @param resultMessage
* resultMessage
*/
public void setResultMessage(String resultMessage)
{
this.resultMessage = resultMessage;
}
public Page getPaging() {
return paging;
}
public void setPaging(Page paging) {
this.paging = paging;
}
/*
* public Map<String, Object> getSearchParams() { return searchParams; }
*
* public void setSearchParams(Map<String, Object> searchParams) {
* this.searchParams = searchParams; }
*/
public List<T> getObjectList() {
return objectList;
}
public void setObjectList(List<T> objectList) {
this.objectList = objectList;
}
}
package com.house365.common.searchBeans;
import java.io.Serializable;
/**
* 分页对象<br>
*/
public class Page implements Serializable {
/**
* 第一页
*/
public static final int FIRST_PAGE = 1;
/**
* 每页10条数
*/
public static final int DEFAULT_PAGE_SIZE = 30;
/**
* 每页5条数
*/
public static final int FIVE_PAGE_SIZE = 5;
/**
* 每页8条数
*/
public static final int EIGHT_PAGE_SIZE = 8;
/**
* 每页20条数
*/
public static final int TWENTY_PAGE_SIZE = 20;
/**
* 每页15条数
*/
public static final int FIFTEEN_PAGE_SIZE = 15;
private static final long serialVersionUID = -8315721579269048719L;
/**
* 每页有多少条记录
*/
private int pageSize = DEFAULT_PAGE_SIZE;
/**
* 总页数
*/
private int pages;
/**
* 当前页
*/
private int currentPage = 1;
/**
* 总条数
*/
private int records;
private int beginIndex;
private int endIndex;
private String baseUrl;
public int getBeginIndex() {
return beginIndex;
}
public void setBeginIndex(int beginIndex) {
this.beginIndex = beginIndex;
}
public int getEndIndex() {
return endIndex;
}
public void setEndIndex(int endIndex) {
this.endIndex = endIndex;
}
public String getBaseUrl() {
return baseUrl;
}
public void setBaseUrl(String baseUrl) {
this.baseUrl = baseUrl;
}
/**
*
*/
public Page() {
this(FIRST_PAGE, DEFAULT_PAGE_SIZE);
}
/**
* @param pageSize
*/
public Page(int pageSize) {
this(FIRST_PAGE, pageSize);
}
/**
* @param currentPage
* @param pageSize
*/
public Page(int currentPage, int pageSize) {
this.currentPage = currentPage;
this.pageSize = pageSize;
}
/**
* @param currentPage
* @param pageSize
* @param records
*/
public Page(int currentPage, int pageSize, int records) {
this.currentPage = currentPage;
this.pageSize = pageSize;
this.records = records;
}
/**
* @return the pageSize
*/
public int getPageSize() {
return pageSize;
}
/**
* @param pageSize the pageSize to set
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* @return the pages
*/
public int getPages() {
return pages;
}
/**
* @param pages the pages to set
*/
public void setPages(int pages) {
this.pages = pages;
}
/**
* @return the currentPage
*/
public int getCurrentPage() {
return currentPage;
}
/**
* @param currentPage the currentPage to set
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
/**
* 判断是否第一页 <br>
*
* @return
* @see
*/
public boolean isFirstPage() {
return currentPage == 1;
}
/**
* 判断是否最后一页 <br>
*
* @return
* @see
*/
public boolean isLastPage() {
return currentPage == pages;
}
/**
* 当前页第一条的位置<br>
*
* @return
* @see
*/
public int getStartRecord() {
return (currentPage - 1) * pageSize;
}
/**
* 当前页最后一条的位置<br>
*
* @return
* @see
*/
public int getEndRecord() {
return getStartRecord() + getPageSize();
}
/**
* @return the records
*/
public int getRecords() {
return records;
}
/**
* @param records records
*/
public void setRecords(int records) {
this.records = records;
int n = records % pageSize;
if (n > 0) {
pages = records / pageSize + 1;
} else {
pages = records / pageSize;
}
/*
* 如果当前页码小于第一页,强制将其设置成第一页
*/
if (currentPage < FIRST_PAGE) {
currentPage = FIRST_PAGE;
}
/*
* 如果当前页码大于总页码,强制设置成总页码
* 20160126 -by xu 测试反应这个不合理,超出页码返回空就好
*/
// if (pages > 0 && currentPage > pages) {
// currentPage = pages;
// }
int begin = Math.max(1, getCurrentPage() - 5);
int end = Math.min(begin + 7, getPages());
setBeginIndex(begin);
setEndIndex(end);
}
/**
* 下一页<br>
*
* @return
* @see
*/
public int getNextPage() {
int next = 0;
if (isLastPage()) {
next = pages;
} else {
next = currentPage + 1;
}
currentPage = next;
return next;
}
/**
* 前一页 <br>
*
* @return
* @see
*/
public int getPreviousPage() {
int previous = 0;
if (isFirstPage()) {
previous = 1;
} else {
previous = currentPage - 1;
}
currentPage = previous;
return previous;
}
}
package com.house365.common.searchBeans;
import com.google.common.base.Strings;
import com.house365.common.beans.DomainObject;
import org.springframework.web.util.WebUtils;
import javax.servlet.http.HttpServletRequest;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
/**
* 查询参数基类
*
* @param <T> 结果对象类型,一般为领域对象
*/
public class QueryParams<T> implements Serializable{
/**
* 操作枚举类
*/
enum Operation {
/**
* 等值比较
*/
EQ("="), /**
* 不等值比较
*/
NOTEQ("!="), /**
* 大于比较
*/
GT(">"), /**
* 小于比较
*/
LT("<"), /**
* 大于等于比较
*/
GTE(">="), /**
* 小于等于比较
*/
LTE("<="), /**
* 模糊匹配
*/
LIKE("like"), IN("in"), /**
* 反向模糊匹配
*/
NOTLIKE("not like");
/**
* 操作符
*/
private String operator;
/**
* @return the operator
*/
public String getOperator() {
return operator;
}
/**
* 枚举构造器
*
* @param operator 操作符
*/
private Operation(String operator) {
this.operator = operator;
}
/**
* 值转换<br>
* 根据操作符的不同构造不同的值形式
*
* @param value 原始值
* @return 改造值
*/
public Object convertValue(Object value) {
switch (this) {
// 当使用like或not like时,需要在value两侧增加%,以达到模糊查询的目的
case LIKE:
case NOTLIKE:
return "'%" + value + "%'";
default:
return value;
}
}
}
/**
* added by ixr_wang
*/
private T entity;
protected boolean distinct;
/**
* 原始查询条件
*/
private Map<String, Object> searchParams;
/**
* 查询过滤
*/
private Map<String, SearchFilter> searchFilters = new HashMap<String, SearchFilter>();
/**
* 排序列 added by andy_luo
*/
private String orderColumn;
/**
* 排序方式。只允许两个值。desc和asc
*/
private String orderMode = "desc";
/**
* 可以通过该参数直接指定查询多少条。
*/
private int limit;
/**
* 分页控制器
*/
private Page paging = new Page();
/**
* 无参构造器
*/
public QueryParams() {
}
/**
* 带查询条件构造器
*
* @param searchParams 查询条件
*/
public QueryParams(Map<String, Object> searchParams) {
setSearchParams(searchParams);
}
/**
* @return the limit
*/
public int getLimit() {
return limit;
}
public String getOrderColumn() {
return orderColumn;
}
public String getOrderMode() {
return orderMode;
}
public void setOrderColumn(String orderColumn) {
this.orderColumn = orderColumn;
}
public void setOrderMode(String orderMode) {
this.orderMode = orderMode;
}
/**
* @return the paging
*/
public Page getPaging() {
return paging;
}
/**
* @param limit the limit to set
*/
public void setLimit(int limit) {
this.limit = limit;
}
/**
* @param paging the paging to set
*/
public void setPaging(Page paging) {
this.paging = paging;
}
/**
* @return the searchParams
*/
public Map<String, Object> getSearchParams() {
return searchParams;
}
/**
* @param searchParams the searchParams to set
*/
public void setSearchParams(Map<String, Object> searchParams) {
this.searchParams = searchParams;
buildSearchFilters(searchParams);
}
/**
* 构建过滤条件
*
* @param searchParams 查询条件
*/
private void buildSearchFilters(Map<String, Object> searchParams) {
Map<String, Object> tmpSearchParams = new HashMap<String, Object>();
// Trim空格
for (String key : searchParams.keySet()) {
Object value = searchParams.get(key);
if (null != value && value instanceof String) {
value = value.toString().trim();
}
tmpSearchParams.put(key, value);
}
searchParams.clear();
searchParams.putAll(tmpSearchParams);
for (Map.Entry<String, Object> entry : searchParams.entrySet()) {
String key = entry.getKey();
Object value = entry.getValue();
// 如果value为空,不作为筛选条件
if (value == null) {
continue;
}
if (value instanceof String && Strings.isNullOrEmpty((String) value)) {
continue;
}
String[] names = key.split("_");
int namesLen = names.length;
// 这里预留后两部分,用于类型转换
if (2 > namesLen && 3 < namesLen) {
throw new IllegalArgumentException(key + " is not a valid search filter name");
}
String filedName = names[1];
Operation operation = Operation.valueOf(names[0]);
if (3 <= namesLen) {
String dateStyle = names[2];
try {
value = convert(dateStyle, value);
} catch (ParseException e) {
throw new IllegalArgumentException(key + " is not a date type");
}
}
this.searchFilters.put(filedName, new SearchFilter(operation.operator, operation.convertValue(value)));
}
}
/**
* 取值转换
*
* @param style 类型
* @param value 原始值
* @return 转换值
* @throws ParseException 解析异常
*/
private Object convert(String style, Object value) throws ParseException {
return new SimpleDateFormat(style).parse((String) value);
}
/**
* @return the searchFilters
*/
public Map<String, SearchFilter> getSearchFilters() {
return searchFilters;
}
public boolean isDistinct() {
return distinct;
}
public void setDistinct(boolean distinct) {
this.distinct = distinct;
}
/**
* @return the entity
*/
public T getEntity() {
return entity;
}
/**
* @param entity the entity to set
*/
public void setEntity(T entity) {
this.entity = entity;
}
public static QueryParams getQueryParams(HttpServletRequest request, String orderColumn, String orderMode) {
Map<String, Object> searchParams = WebUtils.getParametersStartingWith(request, "search_");
QueryParams<DomainObject> queryParams = new QueryParams<DomainObject>(searchParams);
queryParams.setPaging(new Page());
queryParams.setOrderColumn(orderColumn);
queryParams.setOrderMode(orderMode);
return queryParams;
}
}
package com.house365.common.searchBeans;
import java.io.Serializable;
public class SearchFilter implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
* 操作<br>
* =;!=;&gt;;&lt;;&gt;=;&lt;=;like;not like;
*/
private String operation;
/**
* 比较的值
*/
private Object value;
public SearchFilter() {
// TODO Auto-generated constructor stub
}
public SearchFilter(String operation, Object value) {
setOperation(operation);
setValue(value);
}
public String getOperation() {
return operation;
}
public void setOperation(String operation) {
this.operation = operation;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
}
package com.house365.common.util;
import com.google.common.base.Strings;
import javax.servlet.http.HttpServletRequest;
/**
* 远程IP工具
*/
public class RemoteIpUtils {
/**
* 获取IP地址
*
* @param request HTTP请求
* @return IP地址
*/
public static final String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (notRealIp(ip)) {
ip = request.getHeader("Proxy-Client-IP");
if (notRealIp(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
if (notRealIp(ip)) {
ip = request.getRemoteAddr();
}
}
}
return ip;
}
/**
* 是否非真实IP
*
* @param ip IP值
* @return 是否非真实IP<li>true--不是真实IP<li>false--是真实IP
*/
private static final boolean notRealIp(final String ip) {
return Strings.isNullOrEmpty(ip) || "unknown".equalsIgnoreCase(ip);
}
}
package com.house365.common.util;
import com.google.common.base.Strings;
import net.sf.json.JSONObject;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URIBuilder;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.web.client.RestTemplate;
import java.io.UnsupportedEncodingException;
import java.net.URISyntaxException;
import java.net.URLDecoder;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* Description
* <p>
* Created by 365 on 2017/1/3 0003.
*/
public class RestTemplateBean {
/**
* 获取私钥key
*/
private static final String PRIVATE_KEY = "00BE62C08DE8A6366D467D6555C268HH";
private final RestTemplate restTemplate;
public RestTemplateBean(RestTemplateBuilder restTemplateBuilder) {
restTemplate = restTemplateBuilder.build();
}
public static String doPost(String method, JSONObject requestBody) {
method = encrypt(method, true);
RestTemplateBuilder restTemplateBuilder = new RestTemplateBuilder();
RestTemplateBean restTemplateBean = new RestTemplateBean(restTemplateBuilder);
return restTemplateBean.postJsonBody(method, requestBody);
}
public static String doGet(String path, List<NameValuePair> params) throws URISyntaxException {
return doGet(getUri(path, params));
}
public static String doGet(String path) throws URISyntaxException {
path = encrypt(path, true);
RestTemplateBuilder restTemplateBuilder = new RestTemplateBuilder();
RestTemplateBean restTemplateBean = new RestTemplateBean(restTemplateBuilder);
System.out.println("call url :" + path);
return restTemplateBean.get(path);
}
public static String getUri(String path, List<NameValuePair> params) throws URISyntaxException {
URIBuilder builder = new URIBuilder(path);
builder.setParameters(params);
return String.valueOf(builder.build());
}
/**
* 功能描述: 接口参数排序加密算法<br>
* 〈功能详细描述〉
*
* @param url
* @return
* @throws UnsupportedEncodingException
*/
public static String encrypt(String url, boolean isUrlDecoded) {
if (isUrlDecoded) {
try {
url = URLDecoder.decode(url, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
// url参数排序
String sortUrl = UrlSortUtils.sort(url.substring(url.lastIndexOf("?") + 1));
// 拼接秘钥
sortUrl += "&key=" + PRIVATE_KEY;
// MD5加密
String encryptUrl = DigestUtils.md5Hex(sortUrl).toUpperCase();
return url + "&sign=" + encryptUrl;
}
private String get(String path) {
return restTemplate.getForObject(path, String.class);
}
private String postJsonBody(String method, JSONObject requestBody) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
JSONObject postBody = new JSONObject();
for (Iterator<Map.Entry> iter = requestBody.entrySet().iterator(); iter.hasNext(); ) {
Map.Entry item = iter.next();
if(!(item.getValue() instanceof String)){
postBody.put(item.getKey(), item.getValue());
}else if (item.getValue() != null && ((item.getValue() instanceof String) && !Strings.isNullOrEmpty(
String.valueOf(item.getValue())))) {
postBody.put(item.getKey(), item.getValue());
}
}
HttpEntity<JSONObject> entity = new HttpEntity<>(postBody, headers);
System.out.println("call url :" + method + ",postBody" + postBody);
return restTemplate.postForObject(method, entity, String.class);
}
}
package com.house365.common.util;
import java.util.*;
/**
* URL请求参数获取及排序功能
*
* @author jiangzhou
* @version [版本号, 2015年10月30日]
* @see [相关类/方法](可选)
* @since [产品/模块版本] (可选)
*/
public class UrlSortUtils {
/**
* 解析出url请求的路径,包括页面
*
* @param strURL url地址
* @return url路径
*/
public static String UrlPage(String strURL) {
String strPage = null;
String[] arrSplit = null;
strURL = strURL.trim().toLowerCase();
arrSplit = strURL.split("[?]");
if (strURL.length() > 0) {
if (arrSplit.length > 1) {
if (arrSplit[0] != null) {
strPage = arrSplit[0];
}
}
}
return strPage;
}
/**
* 去掉url中的路径,留下请求参数部分
*
* @param strURL url地址
* @return url请求参数部分
*/
/*
* private static String TruncateUrlPage(String strURL) { String strAllParam = null; String[] arrSplit = null;
* strURL = strURL.trim().toLowerCase(); arrSplit = strURL.split("[?]"); if (strURL.length() > 1) { if
* (arrSplit.length > 1) { if (arrSplit[1] != null) { strAllParam = arrSplit[1]; } } } return strAllParam; }
*/
/**
* 解析出url参数中的键值对 如 "index.jsp?Action=del&id=123",解析出Action:del,id:123存入map中
*
* @param URL url地址
* @return url请求参数部分
*/
public static Map<String, String> URLRequest(String URL) {
Map<String, String> mapRequest = new HashMap<String, String>();
String[] arrSplit = null;
// String strUrlParam = TruncateUrlPage(URL);
if (URL == null) {
return mapRequest;
}
// 每个键值为一组
arrSplit = URL.split("[&]");
for (String strSplit : arrSplit) {
String[] arrSplitEqual = null;
arrSplitEqual = strSplit.split("[=]");
// 解析出键值
if (arrSplitEqual.length > 1) {
// 正确解析
mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]);
}
}
return mapRequest;
}
// ASCII 升序排列
public static String sort(String url) {
// url参数键值对
String resultUrl = "";
List<String> strArray = new ArrayList<>();
Map<String, String> mapRequest = UrlSortUtils.URLRequest(url);
for (String strRequestKey : mapRequest.keySet()) {
//传送的sign参数不参与签名
if (!strRequestKey.equals("sign")) {
String strRequestValue = mapRequest.get(strRequestKey);
url = strRequestKey + "=" + strRequestValue;
strArray.add(url);
}
}
Collections.sort(strArray);
int count = 0;
for (String param : strArray) {
resultUrl += param;
count++;
if (count != strArray.size()) {
resultUrl += "&";
}
}
return resultUrl;
}
/**
* @param args
* @Test 功能描述: <br>
* 参数获取排序测试类
* @author jiangzhou
* @version [版本号, 2015年10月31日]
* @since [产品/模块版本](可选)
*/
public static void main(String[] args) {
// 请求url
String str = "city=nj&ad=123&sort=555&qq&banke=10&pid=1&welf=sss&sign=xxxxx888TTTTTT";
String url = UrlSortUtils.sort(str);
System.out.println(url);
}
}
# springboot
\ No newline at end of file
This diff is collapsed.
package com.house365;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Date: 2016/11/29</p>
*
* @author XN
* @version 1.0
*/
@SpringBootApplication
@EnableDiscoveryClient
public class WechatServiceApplication {
public static void main(String[] args) {
SpringApplication.run(WechatServiceApplication.class, args);
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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