浏览代码

更新日志列表接口,增加昵称返回

DESKTOP-VAEGFGM\zqc 3 月之前
父节点
当前提交
73693e9e3b

+ 8 - 0
citu-framework/citu-spring-boot-starter-web/src/main/java/com/citu/framework/web/core/util/WebFrameworkUtils.java

@@ -24,6 +24,9 @@ public class WebFrameworkUtils {
 
     private static final String REQUEST_ATTRIBUTE_LOGIN_USER_ID = "login_user_id";
     private static final String REQUEST_ATTRIBUTE_LOGIN_USER_TYPE = "login_user_type";
+    private static final String REQUEST_ATTRIBUTE_LOGIN_USER_TYPE2 = "Login_User_Type";
+
+
 
     private static final String REQUEST_ATTRIBUTE_COMMON_RESULT = "common_result";
 
@@ -98,6 +101,11 @@ public class WebFrameworkUtils {
         if (userType != null) {
             return userType;
         }
+        // 2. 优先,从 Attribute 中获取 兼容浏览器驼峰命名
+         userType = (Integer) request.getAttribute(REQUEST_ATTRIBUTE_LOGIN_USER_TYPE2);
+        if (userType != null) {
+            return userType;
+        }
         // 2. 其次,基于 URL 前缀的约定
         if (request.getServletPath().startsWith(properties.getAdminApi().getPrefix())) {
             return UserTypeEnum.ADMIN.getValue();

+ 4 - 4
citu-module-infra/citu-module-infra-biz/src/main/java/com/citu/module/infra/controller/admin/logger/ApiAccessLogController.java

@@ -40,8 +40,8 @@ public class ApiAccessLogController {
     @Operation(summary = "获得API 访问日志分页")
     @PreAuthorize("@ss.hasPermission('infra:api-access-log:query')")
     public CommonResult<PageResult<ApiAccessLogRespVO>> getApiAccessLogPage(@Valid ApiAccessLogPageReqVO pageReqVO) {
-        PageResult<ApiAccessLogDO> pageResult = apiAccessLogService.getApiAccessLogPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, ApiAccessLogRespVO.class));
+        PageResult<ApiAccessLogRespVO> pageResult = apiAccessLogService.getApiAccessLogPage(pageReqVO);
+        return success(pageResult);
     }
 
     @GetMapping("/export-excel")
@@ -51,10 +51,10 @@ public class ApiAccessLogController {
     public void exportApiAccessLogExcel(@Valid ApiAccessLogPageReqVO exportReqVO,
                                         HttpServletResponse response) throws IOException {
         exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<ApiAccessLogDO> list = apiAccessLogService.getApiAccessLogPage(exportReqVO).getList();
+        List<ApiAccessLogRespVO> list = apiAccessLogService.getApiAccessLogPage(exportReqVO).getList();
         // 导出 Excel
         ExcelUtils.write(response, "API 访问日志.xls", "数据", ApiAccessLogRespVO.class,
-                BeanUtils.toBean(list, ApiAccessLogRespVO.class));
+                list);
     }
 
 }

+ 8 - 0
citu-module-infra/citu-module-infra-biz/src/main/java/com/citu/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java

@@ -27,6 +27,11 @@ public class ApiAccessLogRespVO {
     @ExcelProperty("用户编号")
     private Long userId;
 
+    @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1")
+    @ExcelProperty("用户 昵称")
+    private String userNickName;
+
+
     @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
     @ExcelProperty(value = "用户类型", converter = DictConvert.class)
     @DictFormat(DictTypeConstants.USER_TYPE)
@@ -56,6 +61,9 @@ public class ApiAccessLogRespVO {
     @ExcelProperty("用户 IP")
     private String userIp;
 
+
+
+
     @Schema(description = "浏览器 UA", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0")
     @ExcelProperty("浏览器 UA")
     private String userAgent;

+ 2 - 1
citu-module-infra/citu-module-infra-biz/src/main/java/com/citu/module/infra/service/logger/ApiAccessLogService.java

@@ -3,6 +3,7 @@ package com.citu.module.infra.service.logger;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;
 import com.citu.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
+import com.citu.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogRespVO;
 import com.citu.module.infra.dal.dataobject.logger.ApiAccessLogDO;
 
 /**
@@ -25,7 +26,7 @@ public interface ApiAccessLogService {
      * @param pageReqVO 分页查询
      * @return API 访问日志分页
      */
-    PageResult<ApiAccessLogDO> getApiAccessLogPage(ApiAccessLogPageReqVO pageReqVO);
+    PageResult<ApiAccessLogRespVO> getApiAccessLogPage(ApiAccessLogPageReqVO pageReqVO);
 
     /**
      * 清理 exceedDay 天前的访问日志

+ 55 - 2
citu-module-infra/citu-module-infra-biz/src/main/java/com/citu/module/infra/service/logger/ApiAccessLogServiceImpl.java

@@ -7,14 +7,24 @@ import com.citu.framework.tenant.core.context.TenantContextHolder;
 import com.citu.framework.tenant.core.util.TenantUtils;
 import com.citu.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;
 import com.citu.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
+import com.citu.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogRespVO;
 import com.citu.module.infra.dal.dataobject.logger.ApiAccessLogDO;
 import com.citu.module.infra.dal.mysql.logger.ApiAccessLogMapper;
+import com.citu.module.menduner.system.api.user.MendunerUserApi;
+import com.citu.module.menduner.system.api.user.UserInfoRespDTO;
+import com.citu.module.system.api.dict.DictDataApi;
+import com.citu.module.system.api.dict.dto.DictDataRespDTO;
+import com.citu.module.system.api.user.AdminUserApi;
+import com.citu.module.system.api.user.dto.AdminUserRespDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 import static com.citu.module.infra.dal.dataobject.logger.ApiAccessLogDO.REQUEST_PARAMS_MAX_LENGTH;
 import static com.citu.module.infra.dal.dataobject.logger.ApiAccessLogDO.RESULT_MSG_MAX_LENGTH;
@@ -32,6 +42,16 @@ public class ApiAccessLogServiceImpl implements ApiAccessLogService {
     @Resource
     private ApiAccessLogMapper apiAccessLogMapper;
 
+    @Resource
+    MendunerUserApi mendunerUserApi;
+
+    @Resource
+    AdminUserApi adminUserApi;
+
+    @Resource
+    DictDataApi dictDataApi;
+
+
     @Override
     public void createApiAccessLog(ApiAccessLogCreateReqDTO createDTO) {
         ApiAccessLogDO apiAccessLog = BeanUtils.toBean(createDTO, ApiAccessLogDO.class);
@@ -46,8 +66,41 @@ public class ApiAccessLogServiceImpl implements ApiAccessLogService {
     }
 
     @Override
-    public PageResult<ApiAccessLogDO> getApiAccessLogPage(ApiAccessLogPageReqVO pageReqVO) {
-        return apiAccessLogMapper.selectPage(pageReqVO);
+    public PageResult<ApiAccessLogRespVO> getApiAccessLogPage(ApiAccessLogPageReqVO pageReqVO) {
+        PageResult<ApiAccessLogRespVO> bean = BeanUtils.toBean(apiAccessLogMapper.selectPage(pageReqVO), ApiAccessLogRespVO.class);
+        List<DictDataRespDTO> datas = dictDataApi.getDictDataList("").getData();
+        Map<String, Map<Long,String>> userTypeMap =new HashMap<>();
+        for (DictDataRespDTO data : datas) {
+            userTypeMap.put(data.getValue(), new HashMap<>());
+        }
+        bean.getList().forEach(item ->userTypeMap.get(item.getUserType().toString()).put(null==item.getUserId()?-1L:item.getUserId(),""));
+        userTypeMap.forEach((key, value) -> {
+            value.remove(-1L);
+
+            if(value.keySet().isEmpty()){
+                return;
+            }
+            // 会员用户
+            if(key.equals("1") ){
+                List<UserInfoRespDTO> data = mendunerUserApi.getUserList(value.keySet()).getData();
+                for (UserInfoRespDTO datum : data) {
+                    value.put(datum.getUserId(),datum.getName());
+                }
+            }
+            // 管理员用户
+            if(key.equals("2")){
+                List<AdminUserRespDTO> data = adminUserApi.getUserList(value.keySet()).getData();
+                for (AdminUserRespDTO datum : data) {
+                    value.put(datum.getId(),datum.getNickname());
+                }
+            }
+        });
+
+
+
+
+
+        return bean;
     }
 
     @Override

+ 2 - 1
citu-module-infra/citu-module-infra-biz/src/test/java/com/citu/module/infra/service/logger/ApiAccessLogServiceImplTest.java

@@ -6,6 +6,7 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.test.core.ut.BaseDbUnitTest;
 import com.citu.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;
 import com.citu.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
+import com.citu.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogRespVO;
 import com.citu.module.infra.dal.dataobject.logger.ApiAccessLogDO;
 import com.citu.module.infra.dal.mysql.logger.ApiAccessLogMapper;
 import org.junit.jupiter.api.Test;
@@ -67,7 +68,7 @@ public class ApiAccessLogServiceImplTest extends BaseDbUnitTest {
         reqVO.setResultCode(GlobalErrorCodeConstants.SUCCESS.getCode());
 
         // 调用
-        PageResult<ApiAccessLogDO> pageResult = apiAccessLogService.getApiAccessLogPage(reqVO);
+        PageResult<ApiAccessLogRespVO> pageResult = apiAccessLogService.getApiAccessLogPage(reqVO);
         // 断言,只查到了一条符合条件的
         assertEquals(1, pageResult.getTotal());
         assertEquals(1, pageResult.getList().size());

+ 2 - 1
citu-module-mall/citu-module-trade-biz/src/main/java/com/citu/module/trade/service/order/handler/TradeLotteryOrderHandler.java

@@ -50,7 +50,8 @@ public class TradeLotteryOrderHandler implements TradeOrderHandler {
                 .skuId(item.getSkuId())
                 .userId(order.getUserId())
                 .build();
-        luckLotteryApi.raffle(reqDTO).getCheckedData();
+        luckLotteryApi.raffle(reqDTO)
+                .getCheckedData();
     }
 
     /**