Kaynağa Gözat

接口测试和调整

1811872455@163.com 2 hafta önce
ebeveyn
işleme
5ffc918133
17 değiştirilmiş dosya ile 157 ekleme ve 84 silme
  1. 4 4
      java/storlead-api/src/main/java/com/storlead/login/TenantLoginApiController.java
  2. 2 0
      java/storlead-api/src/main/java/com/storlead/system/controller/LoginApiController.java
  3. 6 0
      java/storlead-message/storlead-message-biz/src/main/java/com/storlead/message/service/InsideMessageRecordService.java
  4. 65 0
      java/storlead-message/storlead-message-biz/src/main/java/com/storlead/message/service/impl/InsideMessageRecordServiceImpl.java
  5. 10 1
      java/storlead-message/storlead-message-biz/src/main/resources/mapper/InsideMessageSendLogMapper.xml
  6. 1 1
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/dto/MessageDTO.java
  7. 3 0
      java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageDetailVO.java
  8. 1 0
      java/storlead-system/storlead-system-api/src/main/java/com/storlead/system/controller/CompanyApiController.java
  9. 0 19
      java/storlead-system/storlead-system-api/src/main/java/com/storlead/system/controller/DeptRoleController.java
  10. 0 3
      java/storlead-system/storlead-system-api/src/main/java/com/storlead/system/controller/PermissionResApiController.java
  11. 52 1
      java/storlead-system/storlead-system-api/src/main/java/com/storlead/system/controller/SubCompanyApiController.java
  12. 0 51
      java/storlead-system/storlead-system-api/src/main/java/com/storlead/system/controller/SubCompanyController.java
  13. 1 1
      java/storlead-system/storlead-system-biz/src/main/java/com/storlead/system/mapper/MenuMapper.java
  14. 6 2
      java/storlead-system/storlead-system-biz/src/main/java/com/storlead/system/service/impl/MenuServiceImpl.java
  15. 3 0
      java/storlead-system/storlead-system-biz/src/main/resources/mapper/MenuMapper.xml
  16. 2 0
      java/storlead-system/storlead-system-spi/src/main/java/com/storlead/system/service/IMenuService.java
  17. 1 1
      java/storlead-user/storlead-user-biz/src/main/java/com/storlead/user/service/impl/UserServiceImpl.java

+ 4 - 4
java/storlead-api/src/main/java/com/storlead/login/TenantLoginApiController.java

@@ -123,10 +123,10 @@ public class TenantLoginApiController {
                 return Result.error("租户成员数据不一致,请联系管理员检查 tenant_user");
             }
 
-            Integer possessMenuCount = menuService.checkUserMenuAccess(userInfo.getId());
-            if (possessMenuCount == 0) {
-                return Result.error("暂未获取到菜单权限,请联系管理员分配权限!");
-            }
+//            Integer possessMenuCount = menuService.checkUserMenuAccess(userInfo.getId());
+//            if (possessMenuCount == 0) {
+//                return Result.error("暂未获取到菜单权限,请联系管理员分配权限!");
+//            }
 
             LoginUser loginUser = new LoginUser();
             BeanUtils.copyProperties(userInfo, loginUser);

+ 2 - 0
java/storlead-api/src/main/java/com/storlead/system/controller/LoginApiController.java

@@ -168,9 +168,11 @@ public class LoginApiController {
             }
 
         }
+
         if (Objects.isNull(userInfo)) {
             return Result.error("登录失败,未获取到用户信息");
         }
+
         if (!userInfo.getEnabled()) {
             return Result.error("该账号用户暂无登录权限");
         }

+ 6 - 0
java/storlead-message/storlead-message-biz/src/main/java/com/storlead/message/service/InsideMessageRecordService.java

@@ -2,6 +2,7 @@ package com.storlead.message.service;
 
 import com.storlead.framework.common.result.Result;
 import com.storlead.framework.mybatis.service.MyBaseService;
+import com.storlead.message.pojo.dto.MessageSendDTO;
 import com.storlead.message.pojo.entity.InsideMessageRecordEntity;
 import com.storlead.message.pojo.entity.MessageTemplateEventDetailEntity;
 import com.storlead.message.pojo.entity.MessageTemplateEventGroupEntity;
@@ -26,4 +27,9 @@ public interface InsideMessageRecordService extends MyBaseService<InsideMessageR
     void asynSendInsideMessage(MessageTemplateEventGroupEntity eventGroup, MessageTemplateEventDetailEntity templateEventDetail, Map map, Long receiverUserId, String callbackParam, Long sendUserId);
 
     void asynSendInsideMessage(MessageTemplateEventGroupEntity eventGroup, MessageTemplateEventDetailEntity templateEventDetail, Map map, Collection<Long> receiverUserIds, String callbackParam, Long sendUserId);
+
+    /**
+     * 直接发送站内消息(不依赖消息模板),用于联调 / ApiPost 测试。
+     */
+    Result<Long> sendDirectMessage(MessageSendDTO dto);
 }

+ 65 - 0
java/storlead-message/storlead-message-biz/src/main/java/com/storlead/message/service/impl/InsideMessageRecordServiceImpl.java

@@ -5,6 +5,8 @@ import com.storlead.framework.common.result.Result;
 import com.storlead.framework.common.enums.ErrorMsgCode;
 import com.storlead.framework.common.util.HtmlUtils;
 import com.storlead.framework.mybatis.service.impl.MyBaseServiceImpl;
+import com.storlead.framework.util.LoginUserUtil;
+import com.storlead.message.pojo.dto.MessageSendDTO;
 import com.storlead.message.pojo.entity.InsideMessageRecordEntity;
 import com.storlead.message.mapper.InsideMessageRecordMapper;
 import com.storlead.message.pojo.entity.InsideMessageSendLogEntity;
@@ -129,4 +131,67 @@ public class InsideMessageRecordServiceImpl extends MyBaseServiceImpl<InsideMess
     public void asynSendInsideMessage(MessageTemplateEventGroupEntity eventGroup,MessageTemplateEventDetailEntity templateEventDetail, Map map, Collection<Long> receiverUserIds, String callbackParam,Long sendUserId) {
         sendInsideMessage(eventGroup,templateEventDetail,map,receiverUserIds,callbackParam,sendUserId);
     }
+
+    @Override
+    public Result<Long> sendDirectMessage(MessageSendDTO dto) {
+        if (dto == null || StrUtil.isBlank(dto.getTitle())) {
+            return Result.error("消息标题不能为空");
+        }
+        List<Long> receiverUserIds = resolveReceiverUserIds(dto);
+        if (CollectionUtils.isEmpty(receiverUserIds)) {
+            return Result.error("接收人不能为空");
+        }
+
+        Long sendUserId = dto.getSendUserId();
+        if (sendUserId == null) {
+            sendUserId = LoginUserUtil.getCurrentUserId();
+        }
+        if (sendUserId == null) {
+            sendUserId = 0L;
+        }
+
+        String content = StrUtil.blankToDefault(dto.getContent(), dto.getTitle());
+        Integer messageType = dto.getMessageType() == null ? 999 : dto.getMessageType();
+
+        InsideMessageRecordEntity entity = new InsideMessageRecordEntity(
+                dto.getTitle(),
+                content,
+                dto.getMessageIcon(),
+                dto.getMessageTag(),
+                dto.getCallbackUrl(),
+                sendUserId,
+                1,
+                messageType
+        );
+        entity.setAppId(dto.getAppId());
+        entity.setCreateBy(sendUserId);
+        entity.setUpdateBy(sendUserId);
+        saveOrUpdate(entity);
+
+        List<InsideMessageSendLogEntity> messageSendLogs = new ArrayList<>();
+        for (Long receiverUserId : receiverUserIds) {
+            InsideMessageSendLogEntity messageSendLog = new InsideMessageSendLogEntity(
+                    entity.getId(), receiverUserId, 0, 1, messageType);
+            messageSendLog.setCreateBy(sendUserId);
+            messageSendLog.setUpdateBy(sendUserId);
+            messageSendLogs.add(messageSendLog);
+        }
+        insideMessageSendLogService.saveOrUpdateBatch(messageSendLogs);
+        return Result.result(entity.getId());
+    }
+
+    private List<Long> resolveReceiverUserIds(MessageSendDTO dto) {
+        List<Long> receiverUserIds = new ArrayList<>();
+        if (dto.getToUserIds() != null) {
+            for (Long userId : dto.getToUserIds()) {
+                if (userId != null) {
+                    receiverUserIds.add(userId);
+                }
+            }
+        }
+        if (receiverUserIds.isEmpty() && dto.getReceiverUserId() != null) {
+            receiverUserIds.add(dto.getReceiverUserId());
+        }
+        return receiverUserIds;
+    }
 }

+ 10 - 1
java/storlead-message/storlead-message-biz/src/main/resources/mapper/InsideMessageSendLogMapper.xml

@@ -26,7 +26,16 @@
 
     <select id="pageListMessageLog" resultType="com.storlead.message.pojo.vo.MessageDetailVO">
         SELECT
-            mlog.* ,mr.title,mr.content,mr.message_icon,mr.message_tag,mr.callback_url,send_user_id,us.avatar as photo,us.real_name as send_user_name
+            mlog.*,
+            mr.title,
+            mr.content,
+            mr.message_icon,
+            mr.message_tag,
+            mr.callback_url,
+            mr.app_id AS appId,
+            mr.send_user_id,
+            us.avatar AS photo,
+            us.real_name AS send_user_name
         FROM
             inside_message_send_log AS mlog
                 LEFT JOIN inside_message_record AS mr ON mlog.message_id = mr.id

+ 1 - 1
java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/dto/MessageDTO.java

@@ -25,6 +25,6 @@ public class MessageDTO extends PageDTO {
     @ApiModelProperty(value = "0:未读,1:已读")
     private Integer isRead;
 
-    @ApiModelProperty(value = "应用Id")
+    @ApiModelProperty(value = "应用 ID,对应 inside_message_record.app_id / sys_app.id")
     private Long appId;
 }

+ 3 - 0
java/storlead-message/storlead-message-core/src/main/java/com/storlead/message/pojo/vo/MessageDetailVO.java

@@ -42,5 +42,8 @@ public class MessageDetailVO extends InsideMessageSendLogEntity {
 
     @ApiModelProperty(value = "发送头像图片")
     private String photo;
+
+    @ApiModelProperty(value = "应用 ID,对应 inside_message_record.app_id")
+    private Long appId;
 }
 

+ 1 - 0
java/storlead-system/storlead-system-api/src/main/java/com/storlead/system/controller/CompanyApiController.java

@@ -85,4 +85,5 @@ public class CompanyApiController {
         companyService.removeByIds(Arrays.asList(ids));
         return Result.ok();
     }
+
 }

+ 0 - 19
java/storlead-system/storlead-system-api/src/main/java/com/storlead/system/controller/DeptRoleController.java

@@ -1,19 +0,0 @@
-package com.storlead.system.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 部门角色权限 前端控制器
- * </p>
- *
- * @author chenkq
- * @since 2024-04-02
- */
-@RestController
-@RequestMapping("/sys/dept/role")
-public class DeptRoleController {
-
-}

+ 0 - 3
java/storlead-system/storlead-system-api/src/main/java/com/storlead/system/controller/PermissionResApiController.java

@@ -48,9 +48,6 @@ public class PermissionResApiController {
             Long currentUserId = LoginUserUtil.getCurrentUserId();
             List<MenuEntity> userMenuList = menuService.getUserMenuList(currentUserId,Arrays.asList(0),Arrays.asList(1,2));
             List<UserMenuVO> menuls = new ArrayList();
-//            List<MenuEntity> menuBtnls = new ArrayList();
-//            List<MenuEntity> quickMenuls = new ArrayList();
-//            List<Long> qmIds = quickMenuService.listByMap(Map.of("user_id",currentUserId)).stream().map(QuickMenuEntity::getMenuId).collect(Collectors.toList());
 
             userMenuList.forEach(menu -> {
                 UserMenuVO menuVo = new UserMenuVO();

+ 52 - 1
java/storlead-system/storlead-system-api/src/main/java/com/storlead/system/controller/SubCompanyApiController.java

@@ -1,6 +1,7 @@
 package com.storlead.system.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -17,14 +18,20 @@ import com.storlead.user.service.ISubCompanyService;
 import com.storlead.user.service.IUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
 import org.apache.commons.lang3.StringUtils;
 import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -92,7 +99,15 @@ public class SubCompanyApiController {
 
     @ApiOperation("分页查询子公司")
     @PostMapping("pagelist")
-    public Result save(CompanyDTO param) {
+    public Result pagelist(CompanyDTO param) {
+        IPage<SubCompanyEntity> page = new Page<>(param.getPageIndex(),param.getPageSize());
+        IPage<SubCompanyEntity> companys = subCompanyService.page(page);
+        return Result.result(companys);
+    }
+
+    @ApiOperation("查询所有的子公司")
+    @PostMapping("list")
+    public Result list(CompanyDTO param) {
         IPage<SubCompanyEntity> page = new Page<>(param.getPageIndex(),param.getPageSize());
         IPage<SubCompanyEntity> companys = subCompanyService.page(page);
         return Result.result(companys);
@@ -157,5 +172,41 @@ public class SubCompanyApiController {
         return Result.ok();
     }
 
+    @GetMapping(value = "/subCompany/listHasAllCompany")
+    @ApiOperation(value = "公共接口-分公司-包含所有公司列表", notes = "公共接口-分公司-包含所有公司列表")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "", response = SubCompanyEntity.class)
+    })
+    public Result<?> listHasAllCompany() {
+        List<SubCompanyEntity> list = new ArrayList<>();
+        SubCompanyEntity subCompany = new SubCompanyEntity();
+        subCompany.setId(0L);
+        subCompany.setName("所有公司");
+        subCompany.setDesc("所有公司");
+        list.add(subCompany);
+        // Step.1 组装查询条件
+        QueryWrapper<SubCompanyEntity> queryWrapper = new QueryWrapper<SubCompanyEntity>();
+        queryWrapper.select("id,company_id,`desc`,name,sort,enabled");
+        queryWrapper.eq("enabled", 1);
+        queryWrapper.orderByAsc("sort");
+        List<SubCompanyEntity> subCompanyEntityList = subCompanyService.list(queryWrapper);
+        list.addAll(subCompanyEntityList);
+        return Result.result(list);
+    }
+
+    @ApiOperation("启用禁用子公司")
+    @PostMapping("/enable")
+    public Result setEnable(Long id,Boolean enable) {
+        LambdaUpdateWrapper<SubCompanyEntity> update = new LambdaUpdateWrapper();
+        update.in(SubCompanyEntity::getId, Arrays.asList(id));
+        update.set(SubCompanyEntity::getEnabled,enable);
+        Boolean re = subCompanyService.update(update);
+        if (re) {
+            return Result.ok();
+        } else {
+            return Result.error("操作失败");
+        }
+    }
+
 }
 

+ 0 - 51
java/storlead-system/storlead-system-api/src/main/java/com/storlead/system/controller/SubCompanyController.java

@@ -25,57 +25,6 @@ import java.util.List;
 @Api(tags="平台中心 - 系统: 公共接口")
 public class SubCompanyController {
 
-    @Resource
-    private ISubCompanyService subCompanyService;
 
-    @GetMapping(value = "/subCompany/list")
-    @ApiOperation(value = "公共接口-分公司-列表", notes = "公共接口-分公司-列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "", response = SubCompanyEntity.class)
-    })
-    public Result<?> list() {
-        // Step.1 组装查询条件
-        QueryWrapper<SubCompanyEntity> queryWrapper = new QueryWrapper<SubCompanyEntity>();
-        queryWrapper.select("id,company_id,`desc`,name,sort,enabled");
-        queryWrapper.eq("enabled", 1);
-        queryWrapper.orderByAsc("sort");
-        List<SubCompanyEntity> list = subCompanyService.list(queryWrapper);
-        return Result.result(list);
-    }
-
-    @GetMapping(value = "/subCompany/listHasAllCompany")
-    @ApiOperation(value = "公共接口-分公司-包含所有公司列表", notes = "公共接口-分公司-包含所有公司列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "", response = SubCompanyEntity.class)
-    })
-    public Result<?> listHasAllCompany() {
-        List<SubCompanyEntity> list = new ArrayList<>();
-        SubCompanyEntity subCompany = new SubCompanyEntity();
-        subCompany.setId(0L);
-        subCompany.setName("所有公司");
-        subCompany.setDesc("所有公司");
-        list.add(subCompany);
-        // Step.1 组装查询条件
-        QueryWrapper<SubCompanyEntity> queryWrapper = new QueryWrapper<SubCompanyEntity>();
-        queryWrapper.select("id,company_id,`desc`,name,sort,enabled");
-        queryWrapper.eq("enabled", 1);
-        queryWrapper.orderByAsc("sort");
-        List<SubCompanyEntity> subCompanyEntityList = subCompanyService.list(queryWrapper);
-        list.addAll(subCompanyEntityList);
-        return Result.result(list);
-    }
-    @ApiOperation("启用禁用部门")
-    @PostMapping("/su_company/enable")
-    public Result setEnable(Long id,Boolean enable) {
-        LambdaUpdateWrapper<SubCompanyEntity> update = new LambdaUpdateWrapper();
-        update.in(SubCompanyEntity::getId, Arrays.asList(id));
-        update.set(SubCompanyEntity::getEnabled,enable);
-        Boolean re = subCompanyService.update(update);
-        if (re) {
-            return Result.ok();
-        } else {
-            return Result.error("操作失败");
-        }
-    }
 
 }

+ 1 - 1
java/storlead-system/storlead-system-biz/src/main/java/com/storlead/system/mapper/MenuMapper.java

@@ -20,7 +20,7 @@ public interface MenuMapper extends BaseMapper<MenuEntity> {
 
     MenuEntity selectRootLastNodeInfo(@Param("pid") Long pid, @Param("appId") Long appId);
 
-    List<MenuEntity> selectUserMenuList(@Param("userId") Long userId,@Param("modeTypes") List modeTypes,@Param("menuTypes") List menuTypes);
+    List<MenuEntity> selectUserMenuList(@Param("userId") Long userId,@Param("appId") Long appId,@Param("modeTypes") List modeTypes,@Param("menuTypes") List menuTypes);
 
     Integer selectUserMenuCount(@Param("userId") Long userId);
 

+ 6 - 2
java/storlead-system/storlead-system-biz/src/main/java/com/storlead/system/service/impl/MenuServiceImpl.java

@@ -22,9 +22,13 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, MenuEntity> impleme
     }
 
     @Override
-    public List<MenuEntity> getUserMenuList(Long userId,List<Integer> modeTypes,List<Integer> menuTypes) {
+    public List<MenuEntity> getUserMenuList(Long userId,Long appId,List<Integer> modeTypes,List<Integer> menuTypes) {
+        return this.baseMapper.selectUserMenuList(userId, appId, modeTypes ,menuTypes);
+    }
 
-        return this.baseMapper.selectUserMenuList(userId, modeTypes ,menuTypes);
+    @Override
+    public List<MenuEntity> getUserMenuList(Long userId,List<Integer> modeTypes,List<Integer> menuTypes) {
+        return this.getUserMenuList(userId,null, modeTypes ,menuTypes);
     }
 
     @Override

+ 3 - 0
java/storlead-system/storlead-system-biz/src/main/resources/mapper/MenuMapper.xml

@@ -71,6 +71,9 @@
 				#{item}
 			</foreach>
 		</if>
+		<if test="appId  != null">
+			AND app_id = #{appId}
+		</if>
 		AND enabled = 1  ORDER BY sort,id ASC;
 	</select>
 

+ 2 - 0
java/storlead-system/storlead-system-spi/src/main/java/com/storlead/system/service/IMenuService.java

@@ -11,6 +11,8 @@ public interface IMenuService extends IService<MenuEntity> {
 
     MenuEntity getRootLastNodeInfo(Long pid, Long appId);
 
+    List<MenuEntity> getUserMenuList(Long userId,Long appId,List<Integer> modeTypes,List<Integer> menuTypes);
+
     List<MenuEntity> getUserMenuList(Long userId,List<Integer> modeTypes,List<Integer> menuTypes);
 
     Integer checkUserMenuAccess(Long userId);

+ 1 - 1
java/storlead-user/storlead-user-biz/src/main/java/com/storlead/user/service/impl/UserServiceImpl.java

@@ -383,7 +383,7 @@ public class UserServiceImpl extends MyBaseServiceImpl<UserMapper, UserEntity> i
 						.setPassword(passwordEncoder.encode(defaultPassWord))
 						.setDataSource(0)
 						.setCreateBy(currentUser.getId())
-						.setEnabled(false)
+						.setEnabled(true)
 						.setOwnerBy(user.getId());
 				addList.add(user);
 			} else {