Просмотр исходного кода

feat(merchant): 实现商户管理功能并调整相关实体和接口

- 将 application.yml 中的环境配置从 test 改为 dev
- 修改 IbInfoEntity 中的 merchantId 类型从 Long 改为 Integer,并添加 merchantName 字段
- 在 MerchantController 中将 findSingle 和 delete 方法从 GET 改为 POST,并添加 getAllMerchant 接口
- 修改 SysQaController 继承 BaseLoginController 并在 list 方法中添加商户ID参数
- 新增 TenantEntity 实体类用于商户信息
- 在 TenantService 中添加 getAllMerchant 方法并在实现类中提供具体实现
- 在 UserInfoAddEntity、UserInfoTable、UserRoleAddEntity 等实体类中添加 merchantId 字段
- 在 UserRoleController 的 allList 方法中添加
kongxiangyang 5 месяцев назад
Родитель
Сommit
e6b784f5e0
20 измененных файлов с 154 добавлено и 35 удалено
  1. 14 2
      uacrd-manager-server/src/main/java/com/crm/manager/controller/MerchantController.java
  2. 5 3
      uacrd-manager-server/src/main/java/com/crm/manager/controller/SysQaController.java
  3. 3 3
      uacrd-manager-server/src/main/java/com/crm/manager/controller/UserRoleController.java
  4. 7 0
      uacrd-manager-server/src/main/java/com/crm/manager/dao/mapper/UserRoleMapper.java
  5. 2 0
      uacrd-manager-server/src/main/java/com/crm/manager/dao/repository/UserRoleRepository.java
  6. 5 4
      uacrd-manager-server/src/main/java/com/crm/manager/service/TenantService.java
  7. 3 1
      uacrd-manager-server/src/main/java/com/crm/manager/service/UserRoleService.java
  8. 16 4
      uacrd-manager-server/src/main/java/com/crm/manager/service/impl/TenantServiceImpl.java
  9. 15 2
      uacrd-manager-server/src/main/java/com/crm/manager/service/impl/UserInfoServiceImpl.java
  10. 37 12
      uacrd-manager-server/src/main/java/com/crm/manager/service/impl/UserRoleServiceImpl.java
  11. 7 0
      uacrd-manager-server/src/main/resources/mapper/UserRoleMapper.xml
  12. 1 1
      ucard-cloud/src/main/resources/application.yml
  13. 4 0
      ucard-core/src/main/java/com/crm/rely/backend/core/dto/user/role/UserRoleDto.java
  14. 3 1
      ucard-core/src/main/java/com/crm/rely/backend/core/entity/custom/info/IbInfoEntity.java
  15. 15 0
      ucard-core/src/main/java/com/crm/rely/backend/core/entity/tenant/info/TenantEntity.java
  16. 5 0
      ucard-core/src/main/java/com/crm/rely/backend/core/entity/user/info/UserInfoAddEntity.java
  17. 5 0
      ucard-core/src/main/java/com/crm/rely/backend/core/entity/user/role/UserRoleAddEntity.java
  18. 5 0
      ucard-core/src/main/java/com/crm/rely/backend/core/entity/user/role/UserRoleOperateListEntity.java
  19. 1 1
      ucard-core/src/main/java/com/crm/rely/backend/core/entity/user/role/UserRoleSearchEntity.java
  20. 1 1
      ucard-core/src/main/java/com/crm/rely/backend/core/pojo/table/UserInfoTable.java

+ 14 - 2
uacrd-manager-server/src/main/java/com/crm/manager/controller/MerchantController.java

@@ -6,11 +6,14 @@ import com.crm.rely.backend.core.dto.base.BaseResultDto;
 import com.crm.rely.backend.core.dto.base.BaseResultWithPagerDto;
 import com.crm.rely.backend.core.entity.tenant.info.TenantAddEntity;
 import com.crm.rely.backend.core.entity.tenant.info.TenantEditEntity;
+import com.crm.rely.backend.core.entity.tenant.info.TenantEntity;
 import com.crm.rely.backend.core.entity.tenant.info.TenantSearchEntity;
 import com.crm.rely.backend.exception.ServiceException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 /**
  * 商家管理
  */
@@ -46,7 +49,7 @@ public class MerchantController extends BaseLoginController {
      * @param id
      * @return
      */
-    @GetMapping("/findSingle")
+    @PostMapping("/findSingle")
     public BaseResultDto findSingle(@RequestParam Long id) {
         return BaseResultDto.success(tenantService.findSingle(id));
     }
@@ -66,8 +69,17 @@ public class MerchantController extends BaseLoginController {
      * @param id
      * @return
      */
-    @GetMapping("/delete")
+    @PostMapping("/delete")
     public BaseResultDto delete(@RequestParam Long id) {
         return BaseResultDto.success(tenantService.delete(id));
     }
+
+    /**
+     * 获取所有商户
+     * @return
+     */
+    @PostMapping("/getAllMerchant")
+    public BaseResultDto<List<TenantEntity>> getAllMerchant() {
+        return BaseResultDto.success(tenantService.getAllMerchant());
+    }
 }

+ 5 - 3
uacrd-manager-server/src/main/java/com/crm/manager/controller/SysQaController.java

@@ -1,5 +1,6 @@
 package com.crm.manager.controller;
 
+import com.crm.login.rely.backend.controller.BaseLoginController;
 import com.crm.manager.service.SysQaService;
 import com.crm.manager.service.UserRoleService;
 import com.crm.rely.backend.core.constant.Constants;
@@ -29,7 +30,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/qa")
-public class SysQaController {
+public class SysQaController extends BaseLoginController {
 
     @Autowired
     private SysQaService service;
@@ -125,11 +126,12 @@ public class SysQaController {
     }
 
     @PostMapping("/{method}/role/list")
-    public BaseResultDto list(@PathVariable("method") String method) throws Exception {
+    public BaseResultDto list(@PathVariable("method") String method, InfoEntity infoEntity) throws Exception {
         if (!"add".equals(method) && !"update".equals(method)) {
             return BaseResultDto.error(Constants.NOT_PERMIT);
         }
-        List<UserAllRoleDto> dtos = userRoleService.getListInfo();
+        Integer merchantId = infoEntity.getIbInfo().getMerchantId();
+        List<UserAllRoleDto> dtos = userRoleService.getListInfo(merchantId);
         return BaseResultDto.success(dtos);
 
     }

+ 3 - 3
uacrd-manager-server/src/main/java/com/crm/manager/controller/UserRoleController.java

@@ -169,9 +169,9 @@ public class UserRoleController extends BaseLoginController {
      * @return
      */
     @PostMapping("/search/list")
-    public BaseResultDto<List<UserAllRoleDto>> allList() throws Exception {
-
-        List<UserAllRoleDto> result = roleInfoService.getListInfo();
+    public BaseResultDto<List<UserAllRoleDto>> allList(InfoEntity infoEntity) throws Exception {
+        Integer merchantId = infoEntity.getIbInfo().getMerchantId();
+        List<UserAllRoleDto> result = roleInfoService.getListInfo(merchantId);
 
         return BaseResultDto.success(result);
     }

+ 7 - 0
uacrd-manager-server/src/main/java/com/crm/manager/dao/mapper/UserRoleMapper.java

@@ -0,0 +1,7 @@
+package com.crm.manager.dao.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface UserRoleMapper {
+}

+ 2 - 0
uacrd-manager-server/src/main/java/com/crm/manager/dao/repository/UserRoleRepository.java

@@ -45,4 +45,6 @@ public interface UserRoleRepository extends BaseRepository<UserRoleTable> {
     UserRoleTable getFirstById(Long id);
 
     UserRoleTable getFirstByCode(String code);
+
+    List<UserRoleTable> findAllByMerchantId(Integer merchantId);
 }

+ 5 - 4
uacrd-manager-server/src/main/java/com/crm/manager/service/TenantService.java

@@ -1,12 +1,11 @@
 package com.crm.manager.service;
 
 import com.crm.rely.backend.core.dto.base.BaseResultWithPagerDto;
-import com.crm.rely.backend.core.entity.tenant.info.TenantAddEntity;
-import com.crm.rely.backend.core.entity.tenant.info.TenantEditEntity;
-import com.crm.rely.backend.core.entity.tenant.info.TenantRespEntity;
-import com.crm.rely.backend.core.entity.tenant.info.TenantSearchEntity;
+import com.crm.rely.backend.core.entity.tenant.info.*;
 import com.crm.rely.backend.exception.ServiceException;
 
+import java.util.List;
+
 public interface TenantService {
     String add(TenantAddEntity entity);
 
@@ -17,4 +16,6 @@ public interface TenantService {
     String delete(Long id);
 
     BaseResultWithPagerDto searchPage(TenantSearchEntity entity) throws ServiceException;
+
+    List<TenantEntity> getAllMerchant();
 }

+ 3 - 1
uacrd-manager-server/src/main/java/com/crm/manager/service/UserRoleService.java

@@ -1,5 +1,6 @@
 package com.crm.manager.service;
 
+import com.crm.rely.backend.core.pojo.table.UserRoleTable;
 import com.crm.rely.backend.exception.ServiceException;
 import com.crm.rely.backend.core.dto.base.ResultWithPagerDto;
 import com.crm.rely.backend.core.dto.user.role.UserNodeDisplayDto;
@@ -87,7 +88,7 @@ public interface UserRoleService {
      * @return
      * @throws ServiceException
      */
-    List<UserAllRoleDto> getListInfo() throws ServiceException;
+    List<UserAllRoleDto> getListInfo(Integer merchantId) throws ServiceException;
 
     /**
      * 更新挂靠用户的数量
@@ -116,4 +117,5 @@ public interface UserRoleService {
     Long getIdByRoleCode(String code) throws Exception;
 
 
+    UserRoleTable findRoleInfo(Long roleId);
 }

+ 16 - 4
uacrd-manager-server/src/main/java/com/crm/manager/service/impl/TenantServiceImpl.java

@@ -9,10 +9,7 @@ import com.crm.rely.backend.core.dto.base.BaseResultWithPagerDto;
 import com.crm.rely.backend.core.dto.base.PageDto;
 import com.crm.rely.backend.core.dto.base.ResultWithPagerDto;
 import com.crm.rely.backend.core.dto.tenant.TenantSearchDto;
-import com.crm.rely.backend.core.entity.tenant.info.TenantAddEntity;
-import com.crm.rely.backend.core.entity.tenant.info.TenantEditEntity;
-import com.crm.rely.backend.core.entity.tenant.info.TenantRespEntity;
-import com.crm.rely.backend.core.entity.tenant.info.TenantSearchEntity;
+import com.crm.rely.backend.core.entity.tenant.info.*;
 import com.crm.rely.backend.core.pojo.table.MerchantTable;
 import com.crm.rely.backend.exception.ServiceException;
 import lombok.extern.slf4j.Slf4j;
@@ -20,6 +17,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -88,4 +86,18 @@ public class TenantServiceImpl implements TenantService {
 
         return new BaseResultWithPagerDto(pageDto, userInfoSearchDtos);
     }
+
+    @Override
+    public List<TenantEntity> getAllMerchant() {
+        List<MerchantTable> merchantTables = tenantRepository.findAll();
+        if (merchantTables == null || merchantTables.size() <= 0) {
+            return Collections.emptyList();
+        }
+        return merchantTables.stream().map(table -> {
+            TenantEntity entity = new TenantEntity();
+            BeanUtils.copyProperties(table, entity);
+            entity.setId(table.getId().intValue());
+            return entity;
+        }).collect(Collectors.toList());
+    }
 }

+ 15 - 2
uacrd-manager-server/src/main/java/com/crm/manager/service/impl/UserInfoServiceImpl.java

@@ -23,6 +23,7 @@ import com.crm.rely.backend.core.entity.custom.login.delete.CustomLoginDeleteExc
 import com.crm.rely.backend.core.entity.login.BaseLoginEntity;
 import com.crm.rely.backend.core.entity.sys.SysSalesLoginAddEntity;
 import com.crm.rely.backend.core.entity.system.email.SysEmailSendEntity;
+import com.crm.rely.backend.core.entity.tenant.info.TenantRespEntity;
 import com.crm.rely.backend.core.entity.user.info.*;
 import com.crm.rely.backend.core.entity.user.role.UserRoleUpdateNumberEntity;
 import com.crm.rely.backend.core.pojo.table.*;
@@ -45,6 +46,7 @@ import org.springframework.jms.annotation.JmsListener;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
 
 import java.util.*;
 
@@ -518,7 +520,10 @@ public class UserInfoServiceImpl implements UserInfoService {
 
         //判断角色是否存在
         userRoleService.existRole(entity.getRoleId());
-
+        UserRoleTable roleTable = userRoleService.findRoleInfo(entity.getRoleId());
+        if(roleTable.getMerchantId() != null){
+            entity.setMerchantId(roleTable.getMerchantId());
+        }
         //用户名
         existByUsername(entity.getUsername());
 
@@ -1177,12 +1182,20 @@ public class UserInfoServiceImpl implements UserInfoService {
         return sysEmailSendEntity;
     }
 
+    @Autowired
+    private TenantService tenantService;
+
     private InfoEntity transform(UserInfoTable userInfoTable, BaseLoginEntity entity, UserRoleDto userRoleDto,
                                  UserDepartmentSearchDto userDepartmentSearchDto, UserGroupTable userGroupTable) {
 
         InfoEntity infoEntity = new InfoEntity();
         IbInfoEntity userInfoEntity = new IbInfoEntity();
-
+        if(!StringUtils.isEmpty(userInfoTable.getMerchantId())){
+            TenantRespEntity single = tenantService.findSingle(userInfoTable.getMerchantId().longValue());
+            if(!StringUtils.isEmpty(single)){
+                userInfoEntity.setMerchantName(single.getMerchantName());
+            }
+        }
         BeanUtils.copyProperties(userInfoTable, userInfoEntity);
 
         if (!Strings.isNullOrEmpty(userInfoTable.getExcludeShowLoginTypes())) {

+ 37 - 12
uacrd-manager-server/src/main/java/com/crm/manager/service/impl/UserRoleServiceImpl.java

@@ -1,6 +1,7 @@
 package com.crm.manager.service.impl;
 
-import com.crm.manager.service.AuthorityService;
+import com.crm.manager.dao.mapper.UserRoleMapper;
+import com.crm.manager.service.*;
 import com.crm.rely.backend.core.constant.ManagerConstant;
 import com.crm.manager.dao.repository.SysActionRepository;
 import com.crm.manager.dao.repository.UserRoleRepository;
@@ -8,15 +9,10 @@ import com.crm.rely.backend.core.dto.user.role.UserActionDisplayDto;
 import com.crm.rely.backend.core.dto.user.role.UserAllRoleDto;
 import com.crm.rely.backend.core.dto.user.role.UserNodeDisplayDto;
 import com.crm.rely.backend.core.dto.user.role.UserRoleDto;
+import com.crm.rely.backend.core.entity.tenant.info.TenantEntity;
 import com.crm.rely.backend.core.entity.user.role.*;
-import com.crm.rely.backend.core.pojo.table.SysActionTable;
-import com.crm.rely.backend.core.pojo.table.UserRoleDetailTable;
-import com.crm.rely.backend.core.pojo.table.UserRoleNodeTable;
-import com.crm.rely.backend.core.pojo.table.UserRoleTable;
+import com.crm.rely.backend.core.pojo.table.*;
 import com.crm.rely.backend.core.pojo.view.SysNodeView;
-import com.crm.manager.service.UserRoleDetailService;
-import com.crm.manager.service.UserRoleNodeService;
-import com.crm.manager.service.UserRoleService;
 import com.crm.rely.backend.core.constant.Constants;
 import com.crm.rely.backend.core.constant.RoleConstants;
 import com.crm.rely.backend.core.dto.base.PageDto;
@@ -27,6 +23,7 @@ import com.crm.rely.backend.util.FormatPage;
 import com.crm.rely.backend.util.GetRandom;
 import com.crm.rely.backend.util.ValidateUtil;
 import com.google.common.base.Strings;
+import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -37,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.persistence.criteria.Predicate;
 import java.util.*;
+import java.util.stream.Collectors;
 
 
 /**
@@ -66,6 +64,9 @@ public class UserRoleServiceImpl implements UserRoleService {
     @Autowired
     private AuthorityService authorityService;
 
+    @Autowired
+    private UserRoleMapper userRoleMapper;
+
     /**
      * 获取角色权限信息
      *
@@ -151,6 +152,7 @@ public class UserRoleServiceImpl implements UserRoleService {
         sellerRoleOperateListEntity.setRoleId(userRoleTable.getId());
         sellerRoleOperateListEntity.setIsMerchantRole(userRoleAddEntity.getIsMerchantRole());
         sellerRoleOperateListEntity.setData(userRoleAddEntity.getData());
+        sellerRoleOperateListEntity.setMerchantId(userRoleAddEntity.getMerchantId());
         updateRoleInfo(sellerRoleOperateListEntity);
     }
 
@@ -331,6 +333,9 @@ public class UserRoleServiceImpl implements UserRoleService {
         return transform(userRoleTable);
     }
 
+    @Autowired
+    private TenantService tenantService;
+
     /**
      * 拉取角色列表
      *
@@ -376,8 +381,18 @@ public class UserRoleServiceImpl implements UserRoleService {
         }
 
         List<UserRoleDto> dtos = new ArrayList<>();
+        List<TenantEntity> tenantEntities = tenantService.getAllMerchant();
+        Map<Integer, TenantEntity> tenantMap = new HashMap<>();
+        if(CollectionUtils.isNotEmpty(tenantEntities)){
+            tenantMap = tenantEntities.stream().collect(Collectors.toMap(TenantEntity::getId, v -> v));
+        }
         for (UserRoleTable userRoleTable : pageResult.getContent()) {
-            dtos.add(transform(userRoleTable));
+            UserRoleDto transform = transform(userRoleTable);
+            if(tenantMap.containsKey(userRoleTable.getMerchantId())){
+                transform.setMerchantName(tenantMap.get(userRoleTable.getMerchantId()).getMerchantName());
+                transform.setMerchantId(userRoleTable.getMerchantId());
+            }
+            dtos.add(transform);
         }
 
         return new ResultWithPagerDto(Constants.SUCCESS_CODE, Constants.SEARCH_SUCCESS, dtos, pageDto);
@@ -390,9 +405,13 @@ public class UserRoleServiceImpl implements UserRoleService {
      * @throws ServiceException
      */
     @Override
-    public List<UserAllRoleDto> getListInfo() throws ServiceException {
-
-        List<UserRoleTable> roleTables = userRoleRepository.findAll();
+    public List<UserAllRoleDto> getListInfo(Integer merchantId) throws ServiceException {
+        List<UserRoleTable> roleTables = new ArrayList<>();
+        if(merchantId != null){
+            roleTables = userRoleRepository.findAllByMerchantId(merchantId);
+        }else {
+            roleTables = userRoleRepository.findAll();
+        }
         List<UserAllRoleDto> allRoleDtos = new ArrayList<>();
 
         for (UserRoleTable sellerRoleTable : roleTables) {
@@ -677,4 +696,10 @@ public class UserRoleServiceImpl implements UserRoleService {
             return userRoleTable.getId();
         }
     }
+
+    @Override
+    public UserRoleTable findRoleInfo(Long roleId) {
+        UserRoleTable userRoleTable = userRoleRepository.getOne(roleId);
+        return userRoleTable;
+    }
 }

+ 7 - 0
uacrd-manager-server/src/main/resources/mapper/UserRoleMapper.xml

@@ -0,0 +1,7 @@
+<?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.crm.manager.dao.mapper.UserRoleMapper">
+
+</mapper>

+ 1 - 1
ucard-cloud/src/main/resources/application.yml

@@ -2,7 +2,7 @@ server:
   port: 8777
 spring:
   profiles:
-    active: test
+    active: dev
   application:
     name: ucard-service
 

+ 4 - 0
ucard-core/src/main/java/com/crm/rely/backend/core/dto/user/role/UserRoleDto.java

@@ -23,4 +23,8 @@ public class UserRoleDto {
 
     private Date modifyTime;
 
+    private String merchantName;
+
+    private Integer merchantId;
+
 }

+ 3 - 1
ucard-core/src/main/java/com/crm/rely/backend/core/entity/custom/info/IbInfoEntity.java

@@ -168,5 +168,7 @@ public class IbInfoEntity {
 
     private Long attachId;
 
-    private Long merchantId;
+    private Integer merchantId;
+
+    private String merchantName;
 }

+ 15 - 0
ucard-core/src/main/java/com/crm/rely/backend/core/entity/tenant/info/TenantEntity.java

@@ -0,0 +1,15 @@
+package com.crm.rely.backend.core.entity.tenant.info;
+
+import lombok.Data;
+
+@Data
+public class TenantEntity {
+    /**
+     * 商户ID
+     */
+    private Integer id;
+    /**
+     * 商户名称
+     */
+    private String merchantName;
+}

+ 5 - 0
ucard-core/src/main/java/com/crm/rely/backend/core/entity/user/info/UserInfoAddEntity.java

@@ -100,4 +100,9 @@ public class UserInfoAddEntity extends BaseAddEntity {
 
     private String groupEmail;
 
+    /**
+     * 商户ID
+     */
+    private Integer merchantId;
+
 }

+ 5 - 0
ucard-core/src/main/java/com/crm/rely/backend/core/entity/user/role/UserRoleAddEntity.java

@@ -25,5 +25,10 @@ public class UserRoleAddEntity extends BaseAddEntity {
 
     private String content;
 
+    /**
+     * 商户ID
+     */
+    private Integer merchantId;
+
     private List<UserRoleOperateEntity> data;
 }

+ 5 - 0
ucard-core/src/main/java/com/crm/rely/backend/core/entity/user/role/UserRoleOperateListEntity.java

@@ -16,5 +16,10 @@ public class UserRoleOperateListEntity extends BaseUpdateEntity {
 
     private Integer isMerchantRole;
 
+    /**
+     * 商户id
+     */
+    private Integer merchantId;
+
     private List<UserRoleOperateEntity> data;
 }

+ 1 - 1
ucard-core/src/main/java/com/crm/rely/backend/core/entity/user/role/UserRoleSearchEntity.java

@@ -9,7 +9,7 @@ import java.util.Date;
 public class UserRoleSearchEntity extends BaseSearchPageEntity {
     private String name;
 
-    private Long merchantId;
+    private Integer merchantId;
 
     private Date startDate;
 

+ 1 - 1
ucard-core/src/main/java/com/crm/rely/backend/core/pojo/table/UserInfoTable.java

@@ -232,6 +232,6 @@ public class UserInfoTable extends BaseTable {
      */
     private Date resignDate;
 
-    private Long merchantId;
+    private Integer merchantId;
 
 }