perf:调整消息日志相关代码

This commit is contained in:
曾文豪
2024-08-05 14:46:54 +08:00
parent cdae6a9868
commit ad90c83cf7
11 changed files with 85 additions and 171 deletions

View File

@@ -2,7 +2,6 @@ package com.tiesheng.demo.controller;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.TimeInterval; import cn.hutool.core.date.TimeInterval;
import cn.hutool.json.JSONUtil;
import cn.hutool.log.LogFactory; import cn.hutool.log.LogFactory;
import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelUtil;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
@@ -12,8 +11,6 @@ import com.tiesheng.annotation.token.TokenIgnore;
import com.tiesheng.database.config.DbBackupConfig; import com.tiesheng.database.config.DbBackupConfig;
import com.tiesheng.demo.pojos.PoiBean; import com.tiesheng.demo.pojos.PoiBean;
import com.tiesheng.demo.pojos.TestFile; import com.tiesheng.demo.pojos.TestFile;
import com.tiesheng.message.pojos.MessageReqResp;
import com.tiesheng.message.pojos.UserChannel;
import com.tiesheng.platform.config.ding.PlatformDingConfig; import com.tiesheng.platform.config.ding.PlatformDingConfig;
import com.tiesheng.platform.config.ding.bean.DingUserInfo; import com.tiesheng.platform.config.ding.bean.DingUserInfo;
import com.tiesheng.util.config.EncryptConfig; import com.tiesheng.util.config.EncryptConfig;
@@ -53,8 +50,6 @@ public class TestController {
@Autowired @Autowired
EncryptConfig encryptConfig; EncryptConfig encryptConfig;
@Autowired @Autowired
CoreMessageService coreMessageService;
@Autowired
CoreLogService coreLogService; CoreLogService coreLogService;
@Autowired @Autowired
DbBackupConfig dbBackupConfig; DbBackupConfig dbBackupConfig;
@@ -99,12 +94,12 @@ public class TestController {
@GetMapping("/send") @GetMapping("/send")
@TokenIgnore @TokenIgnore
public ApiResp<MessageReqResp> sendMessage() { public ApiResp<String> sendMessage() {
MessageReqResp reqResp = coreMessageService.send(new UserChannel("13567116463", "sms"), // MessageReqResp reqResp = coreMessageService.send(new UserChannel("13567116463", "sms"),
JSONUtil.createObj().putOpt("action", "sms-visitor-invite")); // JSONUtil.createObj().putOpt("action", "sms-visitor-invite"));
return ApiResp.respOK(reqResp); return ApiResp.respOK(null);
} }

View File

@@ -7,9 +7,9 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.tiesheng.message.pojos.MessageReqResp;
import com.tiesheng.message.service.TsMessageSender; import com.tiesheng.message.service.TsMessageSender;
import com.tiesheng.util.exception.ApiException; import com.tiesheng.util.exception.ApiException;
import com.tiesheng.util.pojos.ApiResp;
import com.tiesheng.util.service.http.OkHttpUtil; import com.tiesheng.util.service.http.OkHttpUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -119,17 +119,7 @@ public class AliyunSmsSender implements TsMessageSender {
* @param tempParam 短信模板 * @param tempParam 短信模板
* @return * @return
*/ */
public MessageReqResp sendSms(String phoneNumbers, AliyunTempParam tempParam) { public ApiResp<String> sendSms(String phoneNumbers, AliyunTempParam tempParam) {
MessageReqResp reqResp = new MessageReqResp("阿里云短信");
reqResp.setTarget(phoneNumbers);
reqResp.setResult(1);
reqResp.setContent(JSONUtil.createObj()
.putOpt("PhoneNumbers", phoneNumbers)
.putOpt("SignName", tempParam.getSignName())
.putOpt("TemplateCode", tempParam.getTemplateCode())
.putOpt("TemplateParam", tempParam.getTemplateParam())
.toString());
// 业务API参数 // 业务API参数
ConcurrentHashMap<String, String> queryMap = new ConcurrentHashMap<>(); ConcurrentHashMap<String, String> queryMap = new ConcurrentHashMap<>();
@@ -140,18 +130,16 @@ public class AliyunSmsSender implements TsMessageSender {
queryMap.put("TemplateParam", tempParam.getTemplateParam().toString()); queryMap.put("TemplateParam", tempParam.getTemplateParam().toString());
} }
reqResp.setRespBody(request("SendSms", queryMap)); JSONObject respObj = JSONUtil.parseObj(request("SendSms", queryMap));
JSONObject respObj = JSONUtil.parseObj(reqResp.getRespBody());
if (!Objects.equals(respObj.getStr("Code"), "OK")) { if (!Objects.equals(respObj.getStr("Code"), "OK")) {
reqResp.setResult(0); return ApiResp.resp130(respObj.getStr("Message"));
reqResp.setToast(respObj.getStr("Message"));
} }
return reqResp; return ApiResp.respOK("");
} }
@Override @Override
public MessageReqResp send(String user, JSONObject body) { public ApiResp<String> send(String user, JSONObject body) {
boolean mobile = Validator.isMobile(user); boolean mobile = Validator.isMobile(user);
if (!mobile) { if (!mobile) {
return null; return null;

View File

@@ -1,87 +0,0 @@
package com.tiesheng.message.pojos;
public class MessageReqResp {
private String type;
/**
* 发送对象
*/
private String target;
/**
* 发送内容
*/
private String content;
/**
* 返回结果
*/
private String respBody;
/**
* 结果0-否1-是
*/
private Integer result;
/**
* 提示的异常信息
*/
private String toast;
public MessageReqResp(String type) {
this.type = type;
}
///////////////////////////////////////////////////////////////////////////
// setter\getter
///////////////////////////////////////////////////////////////////////////
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getRespBody() {
return respBody;
}
public void setRespBody(String respBody) {
this.respBody = respBody;
}
public Integer getResult() {
return result;
}
public void setResult(Integer result) {
this.result = result;
}
public String getToast() {
return toast;
}
public void setToast(String toast) {
this.toast = toast;
}
}

View File

@@ -2,7 +2,7 @@ package com.tiesheng.message.service;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import com.tiesheng.message.pojos.MessageReqResp; import com.tiesheng.util.pojos.ApiResp;
/** /**
* @author hao * @author hao
@@ -20,7 +20,7 @@ public interface TsMessageSender {
* @param channel 消息通道,如果为空表示所有通道 * @param channel 消息通道,如果为空表示所有通道
* @return 返回的内容,如果为空表示发送成功 * @return 返回的内容,如果为空表示发送成功
*/ */
MessageReqResp send(String user, JSONObject body); ApiResp<String> send(String user, JSONObject body);
/** /**

View File

@@ -4,8 +4,8 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import com.tiesheng.message.pojos.MessageReqResp;
import com.tiesheng.message.pojos.UserChannel; import com.tiesheng.message.pojos.UserChannel;
import com.tiesheng.util.pojos.ApiResp;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -61,18 +61,18 @@ public class TsMessageService {
* @param userChannel * @param userChannel
* @param body * @param body
*/ */
public MessageReqResp send(UserChannel userChannel, JSONObject body) { public ApiResp<String> send(UserChannel userChannel, JSONObject body) {
if (StrUtil.isEmpty(userChannel.getUser()) || StrUtil.isEmpty(userChannel.getChannel())) { if (StrUtil.isEmpty(userChannel.getUser()) || StrUtil.isEmpty(userChannel.getChannel())) {
return null; return ApiResp.resp130("消息对象或消息通道不存在");
} }
TsMessageSender messageSender = CollUtil.findOne(messageSenderList, TsMessageSender messageSender = CollUtil.findOne(messageSenderList,
sender -> Objects.equals(sender.getChannel(), userChannel.getChannel()) && sender.support()); sender -> Objects.equals(sender.getChannel(), userChannel.getChannel()) && sender.support());
if (messageSender != null) { if (messageSender != null) {
messageSender.send(userChannel.getUser(), body); return messageSender.send(userChannel.getUser(), body);
} }
return null; return ApiResp.resp130("消息未成功发送");
} }
} }

View File

@@ -129,6 +129,19 @@ public class ApiResp<T> {
} }
/**
* 130错误
*
* @param msg
* @return
*/
public static ApiResp<String> resp130(String msg) {
ApiResp<String> result = new ApiResp<>();
result.code = 130;
result.message = msg;
return result;
}
/** /**
* 是否成功 * 是否成功
* *

View File

@@ -1,37 +0,0 @@
package com.tiesheng.util.service.http;
import cn.hutool.json.JSONUtil;
import cn.hutool.log.LogFactory;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
import org.jetbrains.annotations.NotNull;
public class HttpLogInterceptor implements Interceptor {
@NotNull
@Override
public Response intercept(@NotNull Chain chain) {
Request request = chain.request();
Response response;
try {
response = chain.proceed(request);
} catch (Exception e) {
response = new Response.Builder()
.request(request)
.body(OkHttpUtil.ofJsonResponse(JSONUtil.createObj()
.putOpt("code", -1)
.putOpt("message", e.getMessage())
.putOpt("exception", e)
.toString()))
.code(200).build();
}
LogFactory.get().info("url: {}body: {}", request.url(), response.body().contentType().toString());
return response;
}
}

View File

@@ -3,13 +3,14 @@ package com.tiesheng.web.controller;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tiesheng.util.pojos.ApiResp;
import com.tiesheng.util.pojos.PageDTO;
import com.tiesheng.web.pojos.dao.CoreLogApi;
import com.tiesheng.web.pojos.dao.CoreLogLogin; import com.tiesheng.web.pojos.dao.CoreLogLogin;
import com.tiesheng.web.pojos.dao.CoreLogOperation; import com.tiesheng.web.pojos.dao.CoreLogOperation;
import com.tiesheng.web.pojos.dao.CoreLogProcess; import com.tiesheng.web.pojos.dao.CoreLogProcess;
import com.tiesheng.util.pojos.PageDTO;
import com.tiesheng.web.pojos.vo.ProcessDetailVo; import com.tiesheng.web.pojos.vo.ProcessDetailVo;
import com.tiesheng.web.service.CoreLogService; import com.tiesheng.web.service.CoreLogService;
import com.tiesheng.util.pojos.ApiResp;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
@@ -69,23 +70,23 @@ public class LogController {
/** /**
* 登录日志列表 * 调用日志
* *
* @return * @return
*/ */
@GetMapping("/message/page") @GetMapping("/api/page")
public ApiResp<List<CoreLogMessage>> messagePage(String result, @Valid PageDTO dto) { public ApiResp<List<CoreLogApi>> messagePage(String result, @Valid PageDTO dto) {
QueryWrapper<CoreLogMessage> queryWrapper = new QueryWrapper<>(); QueryWrapper<CoreLogApi> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_deleted", 0); queryWrapper.eq("is_deleted", 0);
if (!StrUtil.isEmpty(result)) { if (!StrUtil.isEmpty(result)) {
queryWrapper.eq("result", result); queryWrapper.eq("result", result);
} }
dto.likeColumns(queryWrapper, "type", "target", "content", "resp_body"); dto.likeColumns(queryWrapper, "type", "content");
queryWrapper.orderByDesc("create_time"); queryWrapper.orderByDesc("create_time");
Page<CoreLogMessage> page = dto.pageObj(); Page<CoreLogApi> page = dto.pageObj();
coreLogService.getLogMessageMapper().selectPage(page, queryWrapper); coreLogService.getLogApiMapper().selectPage(page, queryWrapper);
return ApiResp.respOK(page.getRecords(), page.getTotal()); return ApiResp.respOK(page.getRecords(), page.getTotal());
} }

View File

@@ -4,4 +4,4 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tiesheng.web.pojos.dao.CoreLogApi; import com.tiesheng.web.pojos.dao.CoreLogApi;
public interface CoreLogApiMapper extends BaseMapper<CoreLogApi> { public interface CoreLogApiMapper extends BaseMapper<CoreLogApi> {
} }

View File

@@ -13,6 +13,7 @@ import com.tiesheng.util.config.Ip2regionConfig;
import com.tiesheng.util.exception.ApiException; import com.tiesheng.util.exception.ApiException;
import com.tiesheng.util.pojos.TokenBean; import com.tiesheng.util.pojos.TokenBean;
import com.tiesheng.util.service.TsServiceBase; import com.tiesheng.util.service.TsServiceBase;
import com.tiesheng.web.mapper.CoreLogApiMapper;
import com.tiesheng.web.mapper.CoreLogLoginMapper; import com.tiesheng.web.mapper.CoreLogLoginMapper;
import com.tiesheng.web.mapper.CoreLogOperationMapper; import com.tiesheng.web.mapper.CoreLogOperationMapper;
import com.tiesheng.web.mapper.CoreLogProcessMapper; import com.tiesheng.web.mapper.CoreLogProcessMapper;
@@ -47,7 +48,7 @@ public class CoreLogService extends TsServiceBase<CoreLogOperationMapper, CoreLo
@Autowired @Autowired
CoreLogLoginMapper coreLogLoginMapper; CoreLogLoginMapper coreLogLoginMapper;
@Autowired @Autowired
CoreLogMessageMapper coreLogMessageMapper; CoreLogApiMapper coreLogApiMapper;
@Autowired @Autowired
Ip2regionConfig ip2regionConfig; Ip2regionConfig ip2regionConfig;
@Autowired @Autowired
@@ -57,8 +58,8 @@ public class CoreLogService extends TsServiceBase<CoreLogOperationMapper, CoreLo
return coreLogLoginMapper; return coreLogLoginMapper;
} }
public CoreLogMessageMapper getLogMessageMapper() { public CoreLogApiMapper getLogApiMapper() {
return coreLogMessageMapper; return coreLogApiMapper;
} }
public CoreLogProcessMapper getCoreLogProcessMapper() { public CoreLogProcessMapper getCoreLogProcessMapper() {

View File

@@ -0,0 +1,40 @@
//package com.tiesheng.web.service;
//
//import cn.hutool.json.JSONUtil;
//import cn.hutool.log.LogFactory;
//import com.tiesheng.util.service.http.OkHttpUtil;
//import okhttp3.Interceptor;
//import okhttp3.Request;
//import okhttp3.Response;
//import org.springframework.stereotype.Component;
//
//import javax.validation.constraints.NotNull;
//
//@Component
//public class LogApiOkHttpInterceptor implements Interceptor {
//
// @NotNull
// @Override
// public Response intercept(@NotNull Chain chain) {
//
// Request request = chain.request();
//
// Response response;
// try {
// response = chain.proceed(request);
// } catch (Exception e) {
// response = new Response.Builder()
// .request(request)
// .body(OkHttpUtil.ofJsonResponse(JSONUtil.createObj()
// .putOpt("code", -1)
// .putOpt("message", e.getMessage())
// .putOpt("exception", e)
// .toString()))
// .code(200).build();
// }
//
// LogFactory.get().info("url: {}body: {}", request.url(), response.body().contentType().toString());
//
// return response;
// }
//}