Commit 6019f584 by 朱瑞泽

init

parents
# maven ignore
target/
*.jar
!.mvn/wrapper/*
*.war
*.zip
*.tar
*.tar.gz
.flattened-pom.xml
# eclipse ignore
.settings/
.project
.classpath
# idea ignore
.idea/
*.ipr
*.iml
*.iws
# temp ignore
*.log
*.cache
*.diff
*.patch
*.tmp
dubbo.cache*
# system ignore
.DS_Store
Thumbs.db
*.orig
<?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">
<parent>
<artifactId>gic-demo-pom</artifactId>
<groupId>com.gic</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>gic-demo-project-api</artifactId>
<version>${libraryVersion}</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<libraryVersion>1.0-SNAPSHOT</libraryVersion>
</properties>
<dependencies>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-demo-base-api</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
package com.gic.demo.project.api.dto;
import java.io.Serializable;
import java.util.Date;
/**
* tab_gic_demo_enterprise
*/
public class DemoEnterpriseDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 企业id
*/
private String enterpriseId;
/**
* 企业名称
*/
private String enterpriseName;
/**
* 企业编码
*/
private String enterpriseCode;
/**
* 品牌名称
*/
private String brandName;
/**
* LOGO_url地址
*/
private String logoUrl;
/**
* 企业简介
*/
private String enterpriseDescription;
/**
* 营业执照注册号
*/
private String licenseNumber;
/**
* 国家
*/
private String countryId;
/**
* 省
*/
private String provinceId;
/**
* 市
*/
private String cityId;
/**
* 县/区
*/
private String areaId;
/**
* 详细地址
*/
private String registerAddress;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
* 状态(0:已删除,1:正常 )
*/
private Integer status;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getEnterpriseName() {
return enterpriseName;
}
public void setEnterpriseName(String enterpriseName) {
this.enterpriseName = enterpriseName;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public String getLogoUrl() {
return logoUrl;
}
public void setLogoUrl(String logoUrl) {
this.logoUrl = logoUrl;
}
public String getEnterpriseDescription() {
return enterpriseDescription;
}
public void setEnterpriseDescription(String enterpriseDescription) {
this.enterpriseDescription = enterpriseDescription;
}
public String getLicenseNumber() {
return licenseNumber;
}
public void setLicenseNumber(String licenseNumber) {
this.licenseNumber = licenseNumber;
}
public String getCountryId() {
return countryId;
}
public void setCountryId(String countryId) {
this.countryId = countryId;
}
public String getProvinceId() {
return provinceId;
}
public void setProvinceId(String provinceId) {
this.provinceId = provinceId;
}
public String getCityId() {
return cityId;
}
public void setCityId(String cityId) {
this.cityId = cityId;
}
public String getAreaId() {
return areaId;
}
public void setAreaId(String areaId) {
this.areaId = areaId;
}
public String getRegisterAddress() {
return registerAddress;
}
public void setRegisterAddress(String registerAddress) {
this.registerAddress = registerAddress;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
\ No newline at end of file
package com.gic.demo.project.api.dto;
import java.io.Serializable;
import java.util.Date;
/**
* tab_gic_demo_store
*/
public class DemoStoreDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 门店id
*/
private String storeId;
/**
* 企业id
*/
private String enterpriseId;
/**
* 门店名称
*/
private String storeName;
/**
* 详细地址
*/
private String postAddress;
/**
* 状态(0:待审核,1:正常,2:审核失败,3:停业整顿 ,4:回收站 ,5:删除)
*/
private Integer status;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getPostAddress() {
return postAddress;
}
public void setPostAddress(String postAddress) {
this.postAddress = postAddress;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
\ No newline at end of file
package com.gic.demo.project.api.service;
import com.gic.demo.base.api.common.ServiceResponse;
import com.gic.demo.project.api.dto.DemoStoreDTO;
/**
* @author zhurz
*/
public interface DemoStoreApiService {
/**
* 根据id查询
*
* @param storeId 门店id
* @return
*/
ServiceResponse<DemoStoreDTO> findDemoStoreById(String storeId);
}
package com.gic;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/**
* Unit test for simple App.
*/
public class AppTest
{
/**
* Rigorous Test :-)
*/
@Test
public void shouldAnswerWithTrue()
{
assertTrue( true );
}
}
<?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">
<parent>
<groupId>com.gic</groupId>
<artifactId>gic-demo-pom</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>gic-demo-project-service</artifactId>
<version>${libraryVersion}</version>
<name>${project.artifactId}</name>
<url>http://www.demogic.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<libraryVersion>1.0-SNAPSHOT</libraryVersion>
</properties>
<dependencies>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-commons</artifactId>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-platform-config</artifactId>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-demo-config</artifactId>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-sharding-sdk</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-demo-project-api</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<classesDirectory>target/classes/</classesDirectory>
<archive>
<manifest>
<mainClass>com.gic.commons.DubboMain</mainClass>
<!-- 打包时 MANIFEST.MF文件不记录的时间戳版本 -->
<useUniqueVersions>false</useUniqueVersions>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<type>jar</type>
<includeTypes>jar</includeTypes>
<outputDirectory>
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
package com.gic.demo.project.service.dao.mapper;
import com.gic.demo.project.service.entity.TabGicDemoEnterprise;
public interface TabGicDemoEnterpriseMapper {
int deleteByPrimaryKey(String enterpriseId);
int insert(TabGicDemoEnterprise record);
int insertSelective(TabGicDemoEnterprise record);
TabGicDemoEnterprise selectByPrimaryKey(String enterpriseId);
int updateByPrimaryKeySelective(TabGicDemoEnterprise record);
int updateByPrimaryKey(TabGicDemoEnterprise record);
}
\ No newline at end of file
package com.gic.demo.project.service.dao.mapper;
import com.gic.demo.project.service.entity.TabGicDemoStore;
public interface TabGicDemoStoreMapper {
int deleteByPrimaryKey(String storeId);
int insert(TabGicDemoStore record);
int insertSelective(TabGicDemoStore record);
TabGicDemoStore selectByPrimaryKey(String storeId);
int updateByPrimaryKeySelective(TabGicDemoStore record);
int updateByPrimaryKey(TabGicDemoStore record);
}
\ No newline at end of file
package com.gic.demo.project.service.entity;
import java.util.Date;
/**
* tab_gic_demo_enterprise
*/
public class TabGicDemoEnterprise {
/**
* 企业id
*/
private String enterpriseId;
/**
* 企业名称
*/
private String enterpriseName;
/**
* 企业编码
*/
private String enterpriseCode;
/**
* 品牌名称
*/
private String brandName;
/**
* LOGO_url地址
*/
private String logoUrl;
/**
* 企业简介
*/
private String enterpriseDescription;
/**
* 营业执照注册号
*/
private String licenseNumber;
/**
* 国家
*/
private String countryId;
/**
* 省
*/
private String provinceId;
/**
* 市
*/
private String cityId;
/**
* 县/区
*/
private String areaId;
/**
* 详细地址
*/
private String registerAddress;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
* 状态(0:已删除,1:正常 )
*/
private Integer status;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getEnterpriseName() {
return enterpriseName;
}
public void setEnterpriseName(String enterpriseName) {
this.enterpriseName = enterpriseName;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public String getLogoUrl() {
return logoUrl;
}
public void setLogoUrl(String logoUrl) {
this.logoUrl = logoUrl;
}
public String getEnterpriseDescription() {
return enterpriseDescription;
}
public void setEnterpriseDescription(String enterpriseDescription) {
this.enterpriseDescription = enterpriseDescription;
}
public String getLicenseNumber() {
return licenseNumber;
}
public void setLicenseNumber(String licenseNumber) {
this.licenseNumber = licenseNumber;
}
public String getCountryId() {
return countryId;
}
public void setCountryId(String countryId) {
this.countryId = countryId;
}
public String getProvinceId() {
return provinceId;
}
public void setProvinceId(String provinceId) {
this.provinceId = provinceId;
}
public String getCityId() {
return cityId;
}
public void setCityId(String cityId) {
this.cityId = cityId;
}
public String getAreaId() {
return areaId;
}
public void setAreaId(String areaId) {
this.areaId = areaId;
}
public String getRegisterAddress() {
return registerAddress;
}
public void setRegisterAddress(String registerAddress) {
this.registerAddress = registerAddress;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
\ No newline at end of file
package com.gic.demo.project.service.entity;
import java.util.Date;
/**
* tab_gic_demo_store
*/
public class TabGicDemoStore {
/**
* 门店id
*/
private String storeId;
/**
* 企业id
*/
private String enterpriseId;
/**
* 门店名称
*/
private String storeName;
/**
* 详细地址
*/
private String postAddress;
/**
* 状态(0:待审核,1:正常,2:审核失败,3:停业整顿 ,4:回收站 ,5:删除)
*/
private Integer status;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getPostAddress() {
return postAddress;
}
public void setPostAddress(String postAddress) {
this.postAddress = postAddress;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
\ No newline at end of file
package com.gic.demo.project.service.service.api;
import com.gic.demo.base.api.common.ServiceResponse;
import com.gic.demo.common.utils.EntityUtils;
import com.gic.demo.project.api.dto.DemoStoreDTO;
import com.gic.demo.project.api.service.DemoStoreApiService;
import com.gic.demo.project.service.entity.TabGicDemoStore;
import com.gic.demo.project.service.service.local.DemoStoreLocalService;
import org.apache.commons.lang3.RandomUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author zhurz
*/
@Service
public class DemoStoreApiServiceImpl implements DemoStoreApiService {
@Autowired
private DemoStoreLocalService localService;
/**
* 根据id查询
*
* @param storeId 门店id
* @return
*/
@Override
public ServiceResponse<DemoStoreDTO> findDemoStoreById(String storeId) {
if (RandomUtils.nextInt(0, 10) > 5) {
return new ServiceResponse<>(false, 1, "服务异常", null);
}
TabGicDemoStore store = localService.findDemoStoreById(storeId);
return new ServiceResponse<>(true, 0, EntityUtils.changeEntityByOrika(DemoStoreDTO.class, store));
}
}
package com.gic.demo.project.service.service.local;
import com.gic.demo.project.service.entity.TabGicDemoStore;
/**
* @author zhurz
*/
public interface DemoStoreLocalService {
/**
* 根据id查询
*
* @param storeId 门店id
* @return
*/
TabGicDemoStore findDemoStoreById(String storeId);
}
package com.gic.demo.project.service.service.local.impl;
import com.gic.demo.project.service.dao.mapper.TabGicDemoStoreMapper;
import com.gic.demo.project.service.entity.TabGicDemoStore;
import com.gic.demo.project.service.service.local.DemoStoreLocalService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author zhurz
*/
@Service
public class DemoStoreLocalServiceImpl implements DemoStoreLocalService {
@Autowired
private TabGicDemoStoreMapper mapper;
/**
* 根据id查询
*
* @param storeId 门店id
* @return
*/
@Override
public TabGicDemoStore findDemoStoreById(String storeId) {
if (StringUtils.isBlank(storeId)) {
return null;
}
return mapper.selectByPrimaryKey(storeId);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="classpath:gic-demo-init.xml"/>
<import resource="classpath:dubbo-gic-demo-service.xml"/>
<import resource="classpath*:dubbo-setting.xml"/>
<import resource="classpath:jdbc-gic-demo-service.xml"/>
</beans>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<context:component-scan base-package="com.gic.demo.*"/>
<!-- 应用名称 -->
<dubbo:application name="gic-demo-project-service"/>
<dubbo:protocol name="dubbo" port="30101"/>
<dubbo:service interface="com.gic.demo.project.api.service.DemoStoreApiService" ref="demoStoreApiServiceImpl" timeout="60000" />
</beans>
dubbo.registry.file=gic-demo-project-service
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:apollo="http://www.ctrip.com/schema/apollo"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.ctrip.com/schema/apollo
http://www.ctrip.com/schema/apollo.xsd">
<context:annotation-config/>
<apollo:config namespaces="COMMON.sharding,COMMON.jdbc"/>
<bean id="dataSource" class="com.gic.sharding.sdk.ShardingDatasource" init-method="init">
<property name="shardingId" value="${sharding.shardingId}"/>
<property name="maxSize" value="${jdbc.maxsize}"/>
<property name="urlType" value="${sharding.urlType:inner}"/>
</bean>
<bean class="org.mybatis.spring.SqlSessionFactoryBean" id="sqlSessionFactory">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.gic.demo.**.entity"/>
<property name="mapperLocations" value="classpath*:mapper/*.xml"/>
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
helperDialect=mysql
</value>
</property>
</bean>
</array>
</property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.gic.demo.**.dao.mapper"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
<bean class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 事务管理器 -->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
</beans>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.demo.project.service.dao.mapper.TabGicDemoEnterpriseMapper">
<resultMap id="BaseResultMap" type="com.gic.demo.project.service.entity.TabGicDemoEnterprise">
<id column="enterprise_id" jdbcType="CHAR" property="enterpriseId" />
<result column="enterprise_name" jdbcType="VARCHAR" property="enterpriseName" />
<result column="enterprise_code" jdbcType="VARCHAR" property="enterpriseCode" />
<result column="brand_name" jdbcType="VARCHAR" property="brandName" />
<result column="logo_url" jdbcType="VARCHAR" property="logoUrl" />
<result column="enterprise_description" jdbcType="VARCHAR" property="enterpriseDescription" />
<result column="license_number" jdbcType="VARCHAR" property="licenseNumber" />
<result column="country_id" jdbcType="VARCHAR" property="countryId" />
<result column="province_id" jdbcType="VARCHAR" property="provinceId" />
<result column="city_id" jdbcType="VARCHAR" property="cityId" />
<result column="area_id" jdbcType="VARCHAR" property="areaId" />
<result column="register_address" jdbcType="VARCHAR" property="registerAddress" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="status" jdbcType="INTEGER" property="status" />
</resultMap>
<sql id="Base_Column_List">
enterprise_id, enterprise_name, enterprise_code, brand_name, logo_url, enterprise_description,
license_number, country_id, province_id, city_id, area_id, register_address, create_time,
update_time, status
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_gic_demo_enterprise
where enterprise_id = #{enterpriseId,jdbcType=CHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from tab_gic_demo_enterprise
where enterprise_id = #{enterpriseId,jdbcType=CHAR}
</delete>
<insert id="insert" parameterType="com.gic.demo.project.service.entity.TabGicDemoEnterprise">
insert into tab_gic_demo_enterprise (enterprise_id, enterprise_name, enterprise_code,
brand_name, logo_url, enterprise_description,
license_number, country_id, province_id,
city_id, area_id, register_address,
create_time, update_time, status
)
values (#{enterpriseId,jdbcType=CHAR}, #{enterpriseName,jdbcType=VARCHAR}, #{enterpriseCode,jdbcType=VARCHAR},
#{brandName,jdbcType=VARCHAR}, #{logoUrl,jdbcType=VARCHAR}, #{enterpriseDescription,jdbcType=VARCHAR},
#{licenseNumber,jdbcType=VARCHAR}, #{countryId,jdbcType=VARCHAR}, #{provinceId,jdbcType=VARCHAR},
#{cityId,jdbcType=VARCHAR}, #{areaId,jdbcType=VARCHAR}, #{registerAddress,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{status,jdbcType=INTEGER}
)
</insert>
<insert id="insertSelective" parameterType="com.gic.demo.project.service.entity.TabGicDemoEnterprise">
insert into tab_gic_demo_enterprise
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="enterpriseId != null">
enterprise_id,
</if>
<if test="enterpriseName != null">
enterprise_name,
</if>
<if test="enterpriseCode != null">
enterprise_code,
</if>
<if test="brandName != null">
brand_name,
</if>
<if test="logoUrl != null">
logo_url,
</if>
<if test="enterpriseDescription != null">
enterprise_description,
</if>
<if test="licenseNumber != null">
license_number,
</if>
<if test="countryId != null">
country_id,
</if>
<if test="provinceId != null">
province_id,
</if>
<if test="cityId != null">
city_id,
</if>
<if test="areaId != null">
area_id,
</if>
<if test="registerAddress != null">
register_address,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
<if test="status != null">
status,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="enterpriseId != null">
#{enterpriseId,jdbcType=CHAR},
</if>
<if test="enterpriseName != null">
#{enterpriseName,jdbcType=VARCHAR},
</if>
<if test="enterpriseCode != null">
#{enterpriseCode,jdbcType=VARCHAR},
</if>
<if test="brandName != null">
#{brandName,jdbcType=VARCHAR},
</if>
<if test="logoUrl != null">
#{logoUrl,jdbcType=VARCHAR},
</if>
<if test="enterpriseDescription != null">
#{enterpriseDescription,jdbcType=VARCHAR},
</if>
<if test="licenseNumber != null">
#{licenseNumber,jdbcType=VARCHAR},
</if>
<if test="countryId != null">
#{countryId,jdbcType=VARCHAR},
</if>
<if test="provinceId != null">
#{provinceId,jdbcType=VARCHAR},
</if>
<if test="cityId != null">
#{cityId,jdbcType=VARCHAR},
</if>
<if test="areaId != null">
#{areaId,jdbcType=VARCHAR},
</if>
<if test="registerAddress != null">
#{registerAddress,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.demo.project.service.entity.TabGicDemoEnterprise">
update tab_gic_demo_enterprise
<set>
<if test="enterpriseName != null">
enterprise_name = #{enterpriseName,jdbcType=VARCHAR},
</if>
<if test="enterpriseCode != null">
enterprise_code = #{enterpriseCode,jdbcType=VARCHAR},
</if>
<if test="brandName != null">
brand_name = #{brandName,jdbcType=VARCHAR},
</if>
<if test="logoUrl != null">
logo_url = #{logoUrl,jdbcType=VARCHAR},
</if>
<if test="enterpriseDescription != null">
enterprise_description = #{enterpriseDescription,jdbcType=VARCHAR},
</if>
<if test="licenseNumber != null">
license_number = #{licenseNumber,jdbcType=VARCHAR},
</if>
<if test="countryId != null">
country_id = #{countryId,jdbcType=VARCHAR},
</if>
<if test="provinceId != null">
province_id = #{provinceId,jdbcType=VARCHAR},
</if>
<if test="cityId != null">
city_id = #{cityId,jdbcType=VARCHAR},
</if>
<if test="areaId != null">
area_id = #{areaId,jdbcType=VARCHAR},
</if>
<if test="registerAddress != null">
register_address = #{registerAddress,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
<if test="status != null">
status = #{status,jdbcType=INTEGER},
</if>
</set>
where enterprise_id = #{enterpriseId,jdbcType=CHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.demo.project.service.entity.TabGicDemoEnterprise">
update tab_gic_demo_enterprise
set enterprise_name = #{enterpriseName,jdbcType=VARCHAR},
enterprise_code = #{enterpriseCode,jdbcType=VARCHAR},
brand_name = #{brandName,jdbcType=VARCHAR},
logo_url = #{logoUrl,jdbcType=VARCHAR},
enterprise_description = #{enterpriseDescription,jdbcType=VARCHAR},
license_number = #{licenseNumber,jdbcType=VARCHAR},
country_id = #{countryId,jdbcType=VARCHAR},
province_id = #{provinceId,jdbcType=VARCHAR},
city_id = #{cityId,jdbcType=VARCHAR},
area_id = #{areaId,jdbcType=VARCHAR},
register_address = #{registerAddress,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP},
status = #{status,jdbcType=INTEGER}
where enterprise_id = #{enterpriseId,jdbcType=CHAR}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.demo.project.service.dao.mapper.TabGicDemoStoreMapper">
<resultMap id="BaseResultMap" type="com.gic.demo.project.service.entity.TabGicDemoStore">
<id column="store_id" jdbcType="CHAR" property="storeId" />
<result column="enterprise_id" jdbcType="CHAR" property="enterpriseId" />
<result column="store_name" jdbcType="VARCHAR" property="storeName" />
<result column="post_address" jdbcType="VARCHAR" property="postAddress" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
store_id, enterprise_id, store_name, post_address, status, create_time, update_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_gic_demo_store
where store_id = #{storeId,jdbcType=CHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from tab_gic_demo_store
where store_id = #{storeId,jdbcType=CHAR}
</delete>
<insert id="insert" parameterType="com.gic.demo.project.service.entity.TabGicDemoStore">
insert into tab_gic_demo_store (store_id, enterprise_id, store_name,
post_address, status, create_time,
update_time)
values (#{storeId,jdbcType=CHAR}, #{enterpriseId,jdbcType=CHAR}, #{storeName,jdbcType=VARCHAR},
#{postAddress,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.gic.demo.project.service.entity.TabGicDemoStore">
insert into tab_gic_demo_store
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="storeId != null">
store_id,
</if>
<if test="enterpriseId != null">
enterprise_id,
</if>
<if test="storeName != null">
store_name,
</if>
<if test="postAddress != null">
post_address,
</if>
<if test="status != null">
status,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="storeId != null">
#{storeId,jdbcType=CHAR},
</if>
<if test="enterpriseId != null">
#{enterpriseId,jdbcType=CHAR},
</if>
<if test="storeName != null">
#{storeName,jdbcType=VARCHAR},
</if>
<if test="postAddress != null">
#{postAddress,jdbcType=VARCHAR},
</if>
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.demo.project.service.entity.TabGicDemoStore">
update tab_gic_demo_store
<set>
<if test="enterpriseId != null">
enterprise_id = #{enterpriseId,jdbcType=CHAR},
</if>
<if test="storeName != null">
store_name = #{storeName,jdbcType=VARCHAR},
</if>
<if test="postAddress != null">
post_address = #{postAddress,jdbcType=VARCHAR},
</if>
<if test="status != null">
status = #{status,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where store_id = #{storeId,jdbcType=CHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.demo.project.service.entity.TabGicDemoStore">
update tab_gic_demo_store
set enterprise_id = #{enterpriseId,jdbcType=CHAR},
store_name = #{storeName,jdbcType=VARCHAR},
post_address = #{postAddress,jdbcType=VARCHAR},
status = #{status,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where store_id = #{storeId,jdbcType=CHAR}
</update>
</mapper>
\ No newline at end of file
package com.gic;
import com.alibaba.fastjson.JSON;
import com.gic.demo.common.utils.UniqueIdUtils;
import com.gic.demo.project.service.dao.mapper.TabGicDemoEnterpriseMapper;
import com.gic.demo.project.service.dao.mapper.TabGicDemoStoreMapper;
import com.gic.demo.project.service.entity.TabGicDemoEnterprise;
import com.gic.demo.project.service.entity.TabGicDemoStore;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.RandomUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Unit test for simple App.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:applicationContext-conf.xml"})
public class AppTest {
@Autowired
private TabGicDemoEnterpriseMapper enterpriseMapper;
@Autowired
private TabGicDemoStoreMapper storeMapper;
@Test
public void test1() {
TabGicDemoEnterprise tabGicDemoEnterprise = enterpriseMapper.selectByPrimaryKey("22323423");
System.out.println(JSON.toJSONString(tabGicDemoEnterprise, true));
}
@Test
public void test2() {
TabGicDemoStore tabGicDemoStore = storeMapper.selectByPrimaryKey("11b");
System.out.println(JSON.toJSONString(tabGicDemoStore, true));
}
@Test
public void test3() {
for (int i = 0; i < 100; i++) {
String id = UniqueIdUtils.uniqueLongHex();
System.out.printf("insert >> %s >> %d\r\n", id, i);
TabGicDemoStore store = new TabGicDemoStore();
store.setStoreId(id);
store.setStoreName(RandomStringUtils.random(10,"abcdefghigklmn0123456789"));
storeMapper.insertSelective(store);
}
}
}
{
"_id": "gic_demo_dev",
"datagroupConfigList": [
{
"datagroupName": "ds_0",
"defaultSource": true,
"enterpriseIds": [ ],
"masterDatasource": {
"database": "test",
"databaseId": "db_dev",
"datasourceName": "sharding_0"
},
"slaveDatasources": [ ]
}
],
"tableConfigs": [
{
"dbTable": "tab_gic_demo_store_",
"logicTable": "tab_gic_demo_store",
"shardingColumn": "store_id",
"shardingType": 3,
"shardingValue": "10"
}
],
"tableList": [
"tab_gic_demo_store"
]
}
<?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">
<parent>
<groupId>com.gic</groupId>
<artifactId>gic-demo-pom</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>gic-demo-project-web</artifactId>
<version>${libraryVersion}</version>
<packaging>jar</packaging>
<name>${project.artifactId}</name>
<url>http://www.demogic.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<libraryVersion>1.0-SNAPSHOT</libraryVersion>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-demo-common</artifactId>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-demo-config</artifactId>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-demo-project-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring-boot.version}</version>
<configuration>
<mainClass>com.gic.demo.project.web.Main</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
package com.gic.demo.project.web;
import com.gic.dubbo.util.DubboContextUtil;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.ImportResource;
/**
* Spring Boot Web 启动类
*
* @author zhurz
*/
@SpringBootApplication
@ImportResource(value = {
"classpath*:gic-demo-init.xml",
"classpath*:dubbo-setting.xml",
"classpath*:dubbo-gic-demo-web.xml",
"classpath*:spring-interceptor.xml"
})
public class Main {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(Main.class, args);
DubboContextUtil.setApplicationContext(context.getParent());
}
}
\ No newline at end of file
package com.gic.demo.project.web.controller;
import com.gic.demo.base.api.common.ServiceResponse;
import com.gic.demo.common.utils.GicDemoResponse;
import com.gic.demo.project.api.dto.DemoStoreDTO;
import com.gic.demo.project.api.service.DemoStoreApiService;
import com.gic.demo.project.web.exception.GicDemoErrCode;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 指标管理接口
*
* @author zhurz
*/
@RestController
@RequestMapping("/demo")
public class DemoProjectController extends WebBaseController {
private static final Logger logger = LoggerFactory.getLogger(DemoProjectController.class);
@Autowired
private DemoStoreApiService demoStoreApiService;
/**
* 获取门店信息
*
* @param storeId 门店id
* @return
*/
@RequestMapping("/get-store-info")
public GicDemoResponse getStoreInfo(String storeId) {
if (StringUtils.isBlank(storeId)) {
return resultResponse(GicDemoErrCode.ERR_2);
}
ServiceResponse<DemoStoreDTO> response = demoStoreApiService.findDemoStoreById(storeId);
if (response.isSuccess()) {
return resultResponse(GicDemoErrCode.ERR_1, response.getResult());
}
logger.warn("获取门店信息异常 -> {} -> {}", storeId, response.getMessage());
return resultResponse(GicDemoErrCode.ERR_0);
}
}
\ No newline at end of file
package com.gic.demo.project.web.controller;
import com.gic.demo.common.utils.GicDemoResponse;
import com.gic.demo.project.web.exception.GicDemoErrCode;
/**
* 基础Controller
*
* @author zhurz
*/
public class WebBaseController {
public GicDemoResponse resultResponse(GicDemoErrCode errCode, Object data, String detailError) {
GicDemoResponse response = new GicDemoResponse();
response.setMessage(errCode.getMsg());
response.setErrorCode(errCode.getCode());
response.setResult(data);
response.setDetailError(detailError);
return response;
}
public GicDemoResponse resultResponse(GicDemoErrCode errCode, Object data) {
return resultResponse(errCode, data, null);
}
public GicDemoResponse resultResponse(GicDemoErrCode errCode) {
return resultResponse(errCode, null, null);
}
}
package com.gic.demo.project.web.exception;
public enum GicDemoErrCode {
/**
* 操作失败
*/
ERR_0(0, "操作失败"),
/**
* 操作成功
*/
ERR_1(1, "操作成功"),
/**
* 缺少参数
*/
ERR_2(2, "缺少参数"),
/**
* 系统异常
*/
ERR_3(3, "系统异常"),
ERR_OTHER(-999, "未知错误code");
private int code;
private String msg;
GicDemoErrCode(int code, String value) {
this.code = code;
this.msg = value;
}
public static GicDemoErrCode getValue(int code) {
for (GicDemoErrCode sec : GicDemoErrCode.values()) {
if (code == sec.getCode()) {
return sec;
}
}
ERR_OTHER.setMsg("未知错误code:" + code);
return ERR_OTHER;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
package com.gic.demo.project.web.exception;
import com.gic.demo.common.utils.GicDemoResponse;
import com.gic.demo.project.web.controller.WebBaseController;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
/**
* 全局异常处理类
*
* @author hua
*/
@ControllerAdvice
public class GlobalExceptionHandler extends WebBaseController {
private static Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
@ResponseBody
@ExceptionHandler(Exception.class)
public GicDemoResponse controllerException(HttpServletResponse response, Exception ex) {
logger.error("err", ex);
GicDemoErrCode errCode = GicDemoErrCode.ERR_3;
StringBuilder sb = new StringBuilder();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (PrintWriter printWriter = new PrintWriter(baos)) {
ex.printStackTrace(printWriter);
}
try {
sb.append(baos.toString());
} catch (Exception ignored) {
}
if (sb.length() == 0) {
sb.append(ex.getMessage());
}
// 输出详细错误信息,便于调试
return resultResponse(errCode, null, sb.toString());
}
}
package com.gic.demo.project.web.interceptor;
import com.alibaba.fastjson.JSONObject;
import com.gic.commons.interceptor.HeaderParamInterceptor;
import com.gic.commons.util.StringUtil;
import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.dubbo.entity.TraceNode;
import org.apache.dubbo.rpc.RpcContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
import java.util.UUID;
/**
* Created by paste on 2018/8/2 15:24
* <p>
* TODO: class description
*/
public class HeaderTagInterceptor extends HandlerInterceptorAdapter{
private static final String HEADER_TAG = "X-Request-Id".toLowerCase();
static Logger logger = LogManager.getLogger(HeaderTagInterceptor.class);
static Logger paramLogger = LogManager.getLogger(HeaderParamInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// return super.preHandle(request, response, handler);
RpcContext rpcContext = RpcContext.getContext();
String headerTag = request.getHeader(HEADER_TAG);
ProviderLocalTag localTag = ProviderLocalTag.tag.get();
localTag.traceNode = new TraceNode();
localTag.traceNode.setTimeCost(System.currentTimeMillis());
if (StringUtil.isNotNullStr(headerTag, true)) {
rpcContext.getAttachments().put(ProviderLocalTag.TAG_KEY, headerTag);
localTag.traceId = headerTag;
} else {
String traceId = UUID.randomUUID().toString();
rpcContext.getAttachments().put(ProviderLocalTag.TAG_KEY, traceId);
localTag.traceId = traceId;
}
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
ProviderLocalTag localTag = ProviderLocalTag.tag.get();
response.setHeader(HEADER_TAG, ProviderLocalTag.tag.get().traceId);
super.afterCompletion(request, response, handler, ex);
// consumer调用异常
if (localTag.currentTraceNode != null) {
localTag.currentTraceNode.setTimeCost(System.currentTimeMillis()- localTag.currentTraceTime);
localTag.traceNode.addChildNode(localTag.currentTraceNode);
localTag.currentTraceNode = null;
}
if (localTag.traceNode.getChildNodes().size() > 0) {
localTag.traceNode.setTimeCost(System.currentTimeMillis() - localTag.traceNode.getTimeCost());
logger.info(JSONObject.toJSONString(localTag.traceNode));
}
if (handler instanceof HandlerMethod) {
Map<String, String[]> parameterMap = request.getParameterMap();
// Set<Map.Entry<String, String[]>> entries = parameterMap.entrySet();
JSONObject object = new JSONObject();
if (parameterMap.size() > 0) {
object = JSONObject.parseObject(JSONObject.toJSONString(parameterMap));
}
if (request.getAttribute("clerkId") != null) {
object.put("clerkId", request.getAttribute("clerkId"));
object.put("enterpriseId", request.getAttribute("enterpriseId"));
}
paramLogger.info(object.toJSONString());
}
}
}
package com.gic.demo.project.web.interceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class TestInterceptor extends HandlerInterceptorAdapter{
private static final Logger logger = LoggerFactory.getLogger(TestInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
logger.info("request -> {}", request.getRequestURL());
return true;
}
}
package com.gic.demo.project.web.pojo.qo;
import java.io.Serializable;
/**
* 分页查询
*
* @author zhurz
*/
public class PageQO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 页码
*/
private Integer pageNum;
/**
* 分页大小
*/
private Integer pageSize;
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
}
package com.gic.demo.project.web.pojo.vo;
import java.io.Serializable;
import java.util.Date;
/**
* tab_gic_demo_enterprise
*/
public class DemoEnterpriseVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 企业id
*/
private String enterpriseId;
/**
* 企业名称
*/
private String enterpriseName;
/**
* 企业编码
*/
private String enterpriseCode;
/**
* 品牌名称
*/
private String brandName;
/**
* LOGO_url地址
*/
private String logoUrl;
/**
* 企业简介
*/
private String enterpriseDescription;
/**
* 营业执照注册号
*/
private String licenseNumber;
/**
* 国家
*/
private String countryId;
/**
* 省
*/
private String provinceId;
/**
* 市
*/
private String cityId;
/**
* 县/区
*/
private String areaId;
/**
* 详细地址
*/
private String registerAddress;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
/**
* 状态(0:已删除,1:正常 )
*/
private Integer status;
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getEnterpriseName() {
return enterpriseName;
}
public void setEnterpriseName(String enterpriseName) {
this.enterpriseName = enterpriseName;
}
public String getEnterpriseCode() {
return enterpriseCode;
}
public void setEnterpriseCode(String enterpriseCode) {
this.enterpriseCode = enterpriseCode;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
public String getLogoUrl() {
return logoUrl;
}
public void setLogoUrl(String logoUrl) {
this.logoUrl = logoUrl;
}
public String getEnterpriseDescription() {
return enterpriseDescription;
}
public void setEnterpriseDescription(String enterpriseDescription) {
this.enterpriseDescription = enterpriseDescription;
}
public String getLicenseNumber() {
return licenseNumber;
}
public void setLicenseNumber(String licenseNumber) {
this.licenseNumber = licenseNumber;
}
public String getCountryId() {
return countryId;
}
public void setCountryId(String countryId) {
this.countryId = countryId;
}
public String getProvinceId() {
return provinceId;
}
public void setProvinceId(String provinceId) {
this.provinceId = provinceId;
}
public String getCityId() {
return cityId;
}
public void setCityId(String cityId) {
this.cityId = cityId;
}
public String getAreaId() {
return areaId;
}
public void setAreaId(String areaId) {
this.areaId = areaId;
}
public String getRegisterAddress() {
return registerAddress;
}
public void setRegisterAddress(String registerAddress) {
this.registerAddress = registerAddress;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
\ No newline at end of file
package com.gic.demo.project.web.pojo.vo;
import java.io.Serializable;
import java.util.Date;
/**
* tab_gic_demo_store
*/
public class DemoStoreVO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 门店id
*/
private String storeId;
/**
* 企业id
*/
private String enterpriseId;
/**
* 门店名称
*/
private String storeName;
/**
* 详细地址
*/
private String postAddress;
/**
* 状态(0:待审核,1:正常,2:审核失败,3:停业整顿 ,4:回收站 ,5:删除)
*/
private Integer status;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
public String getStoreId() {
return storeId;
}
public void setStoreId(String storeId) {
this.storeId = storeId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getStoreName() {
return storeName;
}
public void setStoreName(String storeName) {
this.storeName = storeName;
}
public String getPostAddress() {
return postAddress;
}
public void setPostAddress(String postAddress) {
this.postAddress = postAddress;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
\ No newline at end of file
server:
port: 9001
servlet:
context-path: /gic-demo-project-web
tomcat:
uri-encoding: UTF-8
spring:
jackson:
serialization:
# 以时间戳返回日期
write-dates-as-timestamps: true
http:
encoding:
charset: UTF-8
enabled: true
force: true
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<context:component-scan base-package="com.gic.demo"/>
<!-- 应用名称 -->
<dubbo:application name="gic-demo-project-web"/>
<dubbo:reference interface="com.gic.demo.project.api.service.DemoStoreApiService" id="demoStoreApiService" timeout="60000" retries="0"/>
</beans>
\ No newline at end of file
dubbo.registry.file=gic-demo-project-web
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
<mvc:interceptors>
<bean class="com.gic.demo.project.web.interceptor.TestInterceptor"/>
<bean class="com.gic.demo.project.web.interceptor.HeaderTagInterceptor"/>
</mvc:interceptors>
</beans>
\ No newline at end of file
<?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.gic</groupId>
<artifactId>gic-demo-project</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<modules>
<module>gic-demo-project-api</module>
<module>gic-demo-project-service</module>
<module>gic-demo-project-web</module>
</modules>
</project>
\ No newline at end of file
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