Commit 14bba7d3 by 朱瑞泽

代码调整

parent a74ad8cf
......@@ -2,7 +2,7 @@ package com.gic.demo.project.service.dao.mapper;
import com.gic.demo.project.service.entity.TabGicDemoEnterprise;
public interface TabGicDemoEnterpriseMapper {
public interface DemoEnterpriseMapper {
int deleteByPrimaryKey(String enterpriseId);
int insert(TabGicDemoEnterprise record);
......
......@@ -2,7 +2,7 @@ package com.gic.demo.project.service.dao.mapper;
import com.gic.demo.project.service.entity.TabGicDemoStore;
public interface TabGicDemoStoreMapper {
public interface DemoStoreMapper {
int deleteByPrimaryKey(String storeId);
int insert(TabGicDemoStore record);
......
package com.gic.demo.project.service.entity;
import com.gic.commons.plugin.mybatis.InjectId;
import java.util.Date;
/**
* tab_gic_demo_enterprise
*/
public class TabGicDemoEnterprise {
/**
* 企业id
*/
@InjectId(InjectId.IdType.UUID)
private String enterpriseId;
/**
......
package com.gic.demo.project.service.entity;
import com.gic.commons.plugin.mybatis.InjectId;
import java.util.Date;
/**
......@@ -9,6 +11,7 @@ public class TabGicDemoStore {
/**
* 门店id
*/
@InjectId(InjectId.IdType.SNOWFLAKE)
private String storeId;
/**
......
package com.gic.demo.project.service.service.local;
package com.gic.demo.project.service.inner.service;
import com.gic.demo.project.service.entity.TabGicDemoStore;
/**
* @author zhurz
*/
public interface DemoStoreLocalService {
public interface DemoStoreInnerService {
/**
* 根据id查询
......
package com.gic.demo.project.service.service.local.impl;
package com.gic.demo.project.service.inner.service.impl;
import com.gic.demo.project.service.dao.mapper.TabGicDemoStoreMapper;
import com.gic.demo.project.service.dao.mapper.DemoStoreMapper;
import com.gic.demo.project.service.entity.TabGicDemoStore;
import com.gic.demo.project.service.service.local.DemoStoreLocalService;
import com.gic.demo.project.service.inner.service.DemoStoreInnerService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -12,10 +12,10 @@ import org.springframework.stereotype.Service;
* @author zhurz
*/
@Service
public class DemoStoreLocalServiceImpl implements DemoStoreLocalService {
public class DemoStoreInnerServiceImpl implements DemoStoreInnerService {
@Autowired
private TabGicDemoStoreMapper mapper;
private DemoStoreMapper mapper;
/**
* 根据id查询
......
package com.gic.demo.project.service.service.api;
import com.gic.commons.util.EntityUtil;
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 com.gic.demo.project.service.inner.service.DemoStoreInnerService;
import org.apache.commons.lang3.RandomUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -17,7 +17,7 @@ import org.springframework.stereotype.Service;
public class DemoStoreApiServiceImpl implements DemoStoreApiService {
@Autowired
private DemoStoreLocalService localService;
private DemoStoreInnerService localService;
/**
* 根据id查询
......@@ -28,10 +28,10 @@ public class DemoStoreApiServiceImpl implements DemoStoreApiService {
@Override
public ServiceResponse<DemoStoreDTO> findDemoStoreById(String storeId) {
if (RandomUtils.nextInt(0, 10) > 5) {
return new ServiceResponse<>(false, 1, "服务异常", null);
return ServiceResponse.failure("0001", "服务异常");
}
TabGicDemoStore store = localService.findDemoStoreById(storeId);
return new ServiceResponse<>(true, 0, EntityUtils.changeEntityByOrika(DemoStoreDTO.class, store));
return ServiceResponse.success(EntityUtil.changeEntityByOrika(DemoStoreDTO.class, store));
}
}
......@@ -29,6 +29,9 @@
<property name="mapperLocations" value="classpath*:mapper/*.xml"/>
<property name="plugins">
<array>
<!-- 自动生成id -->
<bean class="com.gic.commons.plugin.mybatis.AutoIdInterceptor"/>
<!-- 分页插件 -->
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<value>
......
<?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">
<mapper namespace="com.gic.demo.project.service.dao.mapper.DemoEnterpriseMapper">
<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" />
......
<?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">
<mapper namespace="com.gic.demo.project.service.dao.mapper.DemoStoreMapper">
<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" />
......
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.dexcoder.commons.utils.UUIDUtils;
import com.gic.demo.project.service.dao.mapper.DemoEnterpriseMapper;
import com.gic.demo.project.service.dao.mapper.DemoStoreMapper;
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;
......@@ -22,10 +21,10 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
public class AppTest {
@Autowired
private TabGicDemoEnterpriseMapper enterpriseMapper;
private DemoEnterpriseMapper enterpriseMapper;
@Autowired
private TabGicDemoStoreMapper storeMapper;
private DemoStoreMapper storeMapper;
@Test
public void test1() {
......@@ -41,13 +40,15 @@ public class AppTest {
@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);
for (int i = 0; i < 10; i++) {
System.out.println("insert >> " + i);
TabGicDemoStore store = new TabGicDemoStore();
store.setStoreId(id);
store.setStoreName(RandomStringUtils.random(10,"abcdefghigklmn0123456789"));
if (i % 2 == 0) {
store.setStoreId(UUIDUtils.getUUID32());
}
store.setStoreName(RandomStringUtils.random(10, "abcdefghigklmn0123456789"));
storeMapper.insertSelective(store);
System.out.println(JSON.toJSONString(store));
}
}
......
package com.gic.demo.project.web.controller;
import com.gic.commons.webapi.reponse.RestResponse;
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;
......@@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/demo")
public class DemoProjectController extends WebBaseController {
public class DemoProjectController {
private static final Logger logger = LoggerFactory.getLogger(DemoProjectController.class);
......@@ -33,15 +33,15 @@ public class DemoProjectController extends WebBaseController {
* @return
*/
@RequestMapping("/get-store-info")
public GicDemoResponse getStoreInfo(String storeId) {
public RestResponse getStoreInfo(String storeId) {
if (StringUtils.isBlank(storeId)) {
return resultResponse(GicDemoErrCode.ERR_2);
return GicDemoErrCode.ERR_2.buildFailureResponse();
}
ServiceResponse<DemoStoreDTO> response = demoStoreApiService.findDemoStoreById(storeId);
if (response.isSuccess()) {
return resultResponse(GicDemoErrCode.ERR_1, response.getResult());
return RestResponse.success(response.getResult());
}
logger.warn("获取门店信息异常 -> {} -> {}", storeId, response.getMessage());
return resultResponse(GicDemoErrCode.ERR_0);
return GicDemoErrCode.ERR_1.buildFailureResponse();
}
}
\ 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;
import com.gic.commons.webapi.reponse.RestResponse;
public enum GicDemoErrCode {
/**
* 操作失败
*/
ERR_0(0, "操作失败"),
/**
* 操作成功
*/
ERR_1(1, "操作成功"),
ERR_1("0001", "操作失败"),
/**
* 缺少参数
*/
ERR_2(2, "缺少参数"),
ERR_2("0002", "缺少参数"),
/**
* 系统异常
*/
ERR_3(3, "系统异常"),
ERR_3("0003", "系统异常"),
ERR_OTHER(-999, "未知错误code");
ERR_OTHER("9999", "未知错误code");
private int code;
private String msg;
private String code;
private String message;
GicDemoErrCode(int code, String value) {
GicDemoErrCode(String 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;
this.message = value;
}
public int getCode() {
public String getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
public String getMessage() {
return message;
}
public void setMsg(String msg) {
this.msg = msg;
public RestResponse buildFailureResponse() {
return RestResponse.failure(code, message);
}
}
package com.gic.demo.project.web.exception;
import com.gic.demo.common.utils.GicDemoResponse;
import com.gic.demo.project.web.controller.WebBaseController;
import com.gic.commons.webapi.reponse.RestResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
......@@ -18,14 +17,14 @@ import java.io.PrintWriter;
* @author hua
*/
@ControllerAdvice
public class GlobalExceptionHandler extends WebBaseController {
public class GlobalExceptionHandler {
private static Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
@ResponseBody
@ExceptionHandler(Exception.class)
public GicDemoResponse controllerException(HttpServletResponse response, Exception ex) {
public RestResponse controllerException(HttpServletResponse response, Exception ex) {
logger.error("err", ex);
GicDemoErrCode errCode = GicDemoErrCode.ERR_3;
RestResponse failureResponse = GicDemoErrCode.ERR_3.buildFailureResponse();
StringBuilder sb = new StringBuilder();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (PrintWriter printWriter = new PrintWriter(baos)) {
......@@ -39,7 +38,8 @@ public class GlobalExceptionHandler extends WebBaseController {
sb.append(ex.getMessage());
}
// 输出详细错误信息,便于调试
return resultResponse(errCode, null, sb.toString());
failureResponse.setDetailError(sb.toString());
return failureResponse;
}
}
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.vo;
package com.gic.demo.project.web.vo;
import java.io.Serializable;
import java.util.Date;
......
package com.gic.demo.project.web.pojo.vo;
package com.gic.demo.project.web.vo;
import java.io.Serializable;
import java.util.Date;
......
......@@ -3,7 +3,6 @@
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"/>
<bean class="com.gic.commons.interceptor.HeaderTagInterceptor"/>
</mvc:interceptors>
</beans>
\ 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