适配IResult,让ws和被动http自动适配不同返回值

segment2.0
beeajax 2 years ago
parent 35082f74b8
commit f5188f5685

@ -0,0 +1,21 @@
package com.docus.server.collect.basic.http;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.server.ws.IHttpResult;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component("httpBasicResultImpl")
public class HttpBasicResultImpl implements IHttpResult {
@Override
public CommonResult ok(Map<String, Object> params) {
return CommonResult.success("ok");
}
@Override
public CommonResult fail(Map<String, Object> params) {
return CommonResult.failed("fail");
}
}

@ -0,0 +1,20 @@
package com.docus.server.collect.dept.http;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.server.ws.IHttpResult;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component("httpDeptResultImpl")
public class HttpDeptResultImpl implements IHttpResult {
@Override
public CommonResult ok(Map<String, Object> params) {
return CommonResult.success("ok");
}
@Override
public CommonResult fail(Map<String, Object> params) {
return CommonResult.failed("fail");
}
}

@ -1,6 +1,5 @@
package com.docus.server.collect.user.http;
import com.docus.core.util.json.JSON;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.server.ws.IHttpResult;
import org.springframework.stereotype.Component;
@ -11,12 +10,12 @@ import java.util.Map;
public class HttpUserResultImpl implements IHttpResult {
@Override
public String ok(Map<String, Object> params) {
return JSON.toJSON(CommonResult.success("ok"));
public CommonResult ok(Map<String, Object> params) {
return CommonResult.success("ok");
}
@Override
public String fail(Map<String, Object> params) {
return JSON.toJSON(CommonResult.failed("fail"));
public CommonResult fail(Map<String, Object> params) {
return CommonResult.failed("fail");
}
}

@ -12,21 +12,21 @@ spring:
datasource:
master:
url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_archivefile?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: docus
password: docus702
username: root
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
his:
url: jdbc:log4jdbc:mysql://db.docus.cn:3306/his?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: docus
password: docus702
username: root
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource
redis:
host: redis.docus.cn
password: JSdocus@702
# password: JSdocus@702
cloud:
nacos:
discovery:
@ -39,12 +39,12 @@ spring:
shared-configs:
- comm.${spring.cloud.nacos.config.file-extension}
docus:
dbtype: mysql
user:
# 用户默认密码
defpwd: fd29cd53ec12616e5f36b77d4afffbff
mybatis-plus:
configuration:
map-underscore-to-camel-case: true
@ -80,4 +80,4 @@ xxl:
# replica:
# queueManager: MqManager02
# channel: chl_server02
# connName: 10.222.23.131(1414)
# connName: 10.222.23.131(1414)

@ -49,7 +49,7 @@
<springProfile name="dev">
<root level="debug">
<root level="INFO">
<appender-ref ref="console"/>
</root>

@ -0,0 +1,77 @@
package com.docus.server.collect.controller;
import com.docus.core.util.json.JSON;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.log.annotation.TrackGroup;
import com.docus.log.context.TrackHelper;
import com.docus.server.record.pojo.dto.TBasicDTO;
import com.docus.server.record.service.ITBasicService;
import com.docus.server.visitor.VisitorProcessor;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author wen yongbin
* @date 202322521:56:33
* @see com.docus.server.collect.infrastructure.dao.CollectTypeEnum
* @see com.docus.server.ws.convert.IConverter
* @see com.docus.server.ws.IHttpResult
* @see VisitorProcessor
*/
@Api(value = "基础数据管理接口", tags = "基础数据管理接口")
@Slf4j
@RestController
@RequestMapping("/api/rest/basic")
public class BasicController {
@Resource
private ITBasicService tBasicService;
/**
* http
*
* @param message
* @return
*/
@ApiOperation("新增基础数据(根据记账号)")
@PostMapping("/insert")
@TrackGroup(
group = "HTTP_PASSIVE_BASIC",
beanNames = {"tBasicConverter", "httpBasicResultImpl"},
processor = VisitorProcessor.class)
public CommonResult insertHttpPassiveBasic(@RequestBody String message) {
log.info("新增基础数据:{}", message);
tBasicService.insertTBasic(getValue());
return null;
}
/**
* http
*
* @param message
* @return
*/
@ApiOperation("编辑基础数据(根据记账号)")
@PostMapping("/update")
@TrackGroup(
group = "HTTP_PASSIVE_BASIC",
beanNames = {"tBasicConverter", "httpBasicResultImpl"},
processor = VisitorProcessor.class)
public CommonResult updateHttpPassiveBasic(@RequestBody String message) {
log.info("编辑基础数据:{}", message);
tBasicService.updateTBasic(getValue());
return null;
}
public TBasicDTO getValue() {
return JSON.fromJSON((String) TrackHelper.getValue("jsonStr"), TBasicDTO.class);
}
}

@ -0,0 +1,55 @@
package com.docus.server.collect.controller;
import com.docus.core.util.json.JSON;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.log.annotation.TrackGroup;
import com.docus.log.context.TrackHelper;
import com.docus.server.collect.service.CollectService;
import com.docus.server.sys.common.pojo.dto.DeptDTO;
import com.docus.server.visitor.VisitorProcessor;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author wen yongbin
* @date 202322521:56:33
* @see com.docus.server.collect.infrastructure.dao.CollectTypeEnum
* @see com.docus.server.ws.convert.IConverter
* @see com.docus.server.ws.IHttpResult
* @see VisitorProcessor
*/
@Api(value = "科室管理接口", tags = "科室管理接口")
@Slf4j
@RestController
@RequestMapping("/api/rest/dept")
public class DeptController {
@Resource
private CollectService collectService;
/**
* http
*
* @param message
* @return
*/
@ApiOperation("新增/编辑科室(根据科室代码)")
@PostMapping("/update")
@TrackGroup(
group = "HTTP_PASSIVE_DEPT",
beanNames = {"powerDeptConverter", "httpDeptResultImpl"},
processor = VisitorProcessor.class)
public CommonResult httpPassiveDept(@RequestBody String message) {
log.info("新增/修改科室数据:{}", message);
collectService.insertOrUpdateDept(JSON.fromJSON((String) TrackHelper.getValue("jsonStr"), DeptDTO.class));
return null;
}
}

@ -0,0 +1,32 @@
package com.docus.server.collect.controller;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.docus.core.util.json.JSON;
import com.docus.infrastructure.web.api.CommonResult;
public class Test {
public static void main(String[] args) {
HttpRequest post = HttpUtil.createPost("http://localhost:9111/api/rest/dept/update");
post.timeout(60 * 1000);
post.header("Content-Type", "application/json; charset=utf-8");
post.body("{\n" +
"\t\"deptCode\": \"3\",\n" +
"\t\"deptName\": \"4\",\n" +
"\t\"messageId\": \"05f6135a-174d-4f7d-b957-38add35edd56\",\n" +
"\t\"message\": null,\n" +
"\t\"receiver\": \"1\",\n" +
"\t\"operateType\": \"2\",\n" +
"\t\"authorId\": \"5\",\n" +
"\t\"authorName\": \"6\",\n" +
"\t\"source\": \"2\",\n" +
"\t\"params\": null\n" +
"}");
HttpResponse response = post.execute();
String body = response.body();
CommonResult commonResult = JSON.fromJSON(body, CommonResult.class);
System.out.println(body);
}
}

@ -1,6 +1,7 @@
package com.docus.server.collect.controller;
import com.docus.core.util.json.JSON;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.log.annotation.TrackGroup;
import com.docus.log.context.TrackHelper;
import com.docus.server.collect.service.CollectService;
@ -10,25 +11,27 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @author wen yongbin
* @date 202322521:56:33
* @see com.docus.server.collect.infrastructure.dao.CollectTypeEnum
* @see com.docus.server.ws.convert.IConverter
* @see com.docus.server.ws.IWsResult
* @see com.docus.server.ws.IHttpResult
* @see VisitorProcessor
*/
@Api(value = "用户管理接口", tags = "用户管理接口")
@Slf4j
@RestController
@Api(value = "用户管理接口", tags = "用户管理接口")
@RequestMapping("/api/http/user")
public class PowerUserController {
protected final static String DEL_TYPE = "D";
@RequestMapping("/api/rest/user")
public class UserController {
@Resource
private CollectService collectService;
@ -38,17 +41,15 @@ public class PowerUserController {
* @param message
* @return
*/
@ApiOperation("新增/编辑用户(根据id)")
@ApiOperation("新增/编辑用户(根据用户工号)")
@PostMapping("/update")
@TrackGroup(
group = "HTTP_PASSIVE_USER",
beanNames = {"powerUserConverter", "httpResultAdapter"},
beanNames = {"powerUserConverter", "httpUserResultImpl"},
processor = VisitorProcessor.class)
public String httpPassiveUser(String message) {
log.debug("新增/修改用户数据:{}", message);
public CommonResult httpPassiveUser(@RequestBody String message) {
log.info("新增/修改用户数据:{}", message);
collectService.insertOrUpdateUser(JSON.fromJSON((String) TrackHelper.getValue("jsonStr"), UserDTO.class));
return null;
}
}

@ -13,7 +13,10 @@ public enum CollectTypeEnum implements IIntegerEnum {
WEBSERVICE_XML_INSERT_INSPECTION_REPORT(6, "WEBSERVICE_XML_INSERT_INSPECTION_REPORT", "新增-检查报告的信息"),
WEBSERVICE_XML_UPDATE_INSPECTION_REPORT(7, "WEBSERVICE_XML_UPDATE_INSPECTION_REPORT", "更新-检查报告的信息"),
HTTP_PASSIVE_USER(8, "HTTP_PASSIVE_USER", "新增/修改-用户信息");
HTTP_PASSIVE_USER(8, "HTTP_PASSIVE_USER", "新增/修改-用户信息"),
HTTP_PASSIVE_DEPT(9, "HTTP_PASSIVE_DEPT", "新增/修改-科室信息"),
HTTP_PASSIVE_BASIC(10, "HTTP_PASSIVE_BASIC", "新增/修改-基础数据"),
;
private Integer value;
private String display;

@ -8,10 +8,8 @@ import com.docus.server.collect.infrastructure.dao.CollectTypeEnum;
import com.docus.server.collect.infrastructure.dao.StateEnum;
import com.docus.server.collect.infrastructure.enums.IIntegerEnum;
import com.docus.server.tool.SpringUtils;
import com.docus.server.ws.HttpResultAdapter;
import com.docus.server.ws.IHttpResult;
import com.docus.server.ws.IResult;
import com.docus.server.ws.ITaskOriginalMessageService;
import com.docus.server.ws.IWsResult;
import com.docus.server.ws.convert.IConverter;
import com.fasterxml.jackson.core.type.TypeReference;
import lombok.extern.slf4j.Slf4j;
@ -25,7 +23,7 @@ import java.util.Map;
public class VisitorProcessor extends AbstractProcessor {
private ITaskOriginalMessageService messageService;
private IConverter converter;
private IWsResult wsResult;
private IResult result;
/**
*
@ -38,7 +36,8 @@ public class VisitorProcessor extends AbstractProcessor {
if (Func.isEmpty(message)) {
throw new RuntimeException("参数为空");
}
String jsonStr = JSON.toJSON(converter.convert(message, context.getMethodName()));
Object convert = converter.convert(message, context.getMethodName());
String jsonStr = JSON.toJSON(convert);
Long taskId = messageService.insertTaskOriginalMessage(jsonStr, message, IIntegerEnum.fromDisplay(CollectTypeEnum.class, context.getGroup()));
Map<String, Object> params = context.getParams();
params.put("taskId", taskId);
@ -66,15 +65,15 @@ public class VisitorProcessor extends AbstractProcessor {
if (!context.isError()) {
log.info("=== AOP 后置通知 ===");
params.put("msg", "操作成功!");
return wsResult.ok(params);
return result.ok(params);
} else {
log.info("=== AOP 异常通知 ===");
messageService.updateTaskOriginalMessage(taskId, afterReturnResult, StateEnum.FAIL);
return wsResult.fail(params);
return result.fail(params);
}
} catch (Exception e) {
log.error(e.getMessage(), e);
return wsResult.fail(params);
return result.fail(params);
}
}
@ -82,10 +81,8 @@ public class VisitorProcessor extends AbstractProcessor {
* bean
*/
private void initBeans(String[] beanNames) {
HttpResultAdapter httpResultAdapter = new HttpResultAdapter((IHttpResult) SpringUtils.getBean(beanNames[0]));
SpringUtils.initializeBean(httpResultAdapter);
this.converter = (IConverter) SpringUtils.getBean(beanNames[0]);
this.wsResult = (IWsResult) SpringUtils.getBean(beanNames[1]);
this.result = (IResult) SpringUtils.getBean(beanNames[1]);
this.messageService = SpringUtils.getBean(ITaskOriginalMessageService.class);
}
}

@ -1,6 +1,8 @@
package com.docus.server.ws;
public interface IHttpResult extends IResult {
import com.docus.infrastructure.web.api.CommonResult;
public interface IHttpResult extends IResult<CommonResult> {
}

@ -2,10 +2,11 @@ package com.docus.server.ws;
import java.util.Map;
public interface IResult {
public interface IResult<T> {
String ok(Map<String, Object> params);
T ok(Map<String, Object> params);
String fail(Map<String, Object> params);
T fail(Map<String, Object> params);
}

@ -1,6 +1,6 @@
package com.docus.server.ws;
public interface IWsResult extends IResult {
public interface IWsResult extends IResult<String> {
}

@ -43,6 +43,7 @@ public class BasicServerImpl implements IBasicServer {
beanNames = {"tBasicConverter", "wsBasicResultImpl"},
processor = VisitorProcessor.class)
public String updateTBasic(String message) {
log.info("修改基础数据:{}", message);
tBasicService.updateTBasic(getValue());
return null;
}

Loading…
Cancel
Save