林小张 2 months ago
parent
commit
3b8d529169

+ 5 - 0
ruoyi-api/ruoyi-api-system/src/main/java/org/dromara/system/api/domain/bo/RemoteUserBo.java

@@ -118,6 +118,11 @@ public class RemoteUserBo implements Serializable {
      * */
     private String userSonType;
 
+    /**
+     * 平台代码
+     */
+    private String platformCode;
+
     public RemoteUserBo(Long userId) {
         this.userId = userId;
     }

+ 8 - 1
ruoyi-common/ruoyi-common-mybatis/src/main/java/org/dromara/common/mybatis/interceptor/PlatformDataScopeInterceptor.java

@@ -82,7 +82,14 @@ public class PlatformDataScopeInterceptor implements Interceptor {
         "industry_category",
         "contract_product",
         "supplier_contact",
-        "address_area"
+        "address_area",
+        "partner_info",
+        "partner_user",
+        "partner_bank",
+        "partner_contacts",
+        "partner_contract",
+        "partner_warehouse",
+        "partner_qualification"
 
 
         // 注意:前缀匹配需特殊处理(如 qrtz_),见 isIgnoreTable 方法

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/PartnerBankController.java

@@ -40,7 +40,7 @@ public class PartnerBankController extends BaseController {
     /**
      * 查询伙伴商银行账户列表
      */
-    @SaCheckPermission("customer:partnerInfo:list")
+    @SaCheckPermission("customer:partnerBank:list")
     @GetMapping("/list")
     public TableDataInfo<PartnerBankVo> list(PartnerBankBo bo, PageQuery pageQuery) {
         return partnerBankService.queryPageList(bo, pageQuery);

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/PartnerContactsController.java

@@ -40,7 +40,7 @@ public class PartnerContactsController extends BaseController {
     /**
      * 查询伙伴商联系人列表
      */
-    @SaCheckPermission("customer:partnerInfo:list")
+    @SaCheckPermission("customer:partnerContacts:list")
     @GetMapping("/list")
     public TableDataInfo<PartnerContactsVo> list(PartnerContactsBo bo, PageQuery pageQuery) {
         return partnerContactsService.queryPageList(bo, pageQuery);

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/PartnerContractController.java

@@ -40,7 +40,7 @@ public class PartnerContractController extends BaseController {
     /**
      * 查询伙伴商合同列表
      */
-    @SaCheckPermission("customer:partnerInfo:list")
+    @SaCheckPermission("customer:partnerContract:list")
     @GetMapping("/list")
     public TableDataInfo<PartnerContractVo> list(PartnerContractBo bo, PageQuery pageQuery) {
         return partnerContractService.queryPageList(bo, pageQuery);

+ 9 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/PartnerInfoController.java

@@ -69,6 +69,15 @@ public class PartnerInfoController extends BaseController {
         return R.ok(partnerInfoService.queryById(id));
     }
 
+    /**
+     * 获取当前登录用户的伙伴商信息
+     */
+    @SaCheckPermission("customer:partnerInfo:query")
+    @GetMapping("/current")
+    public R<PartnerInfoVo> getCurrentPartnerInfo() {
+        return R.ok(partnerInfoService.queryCurrentPartnerInfo());
+    }
+
     /**
      * 新增伙伴商基本信息
      */

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/PartnerQualificationController.java

@@ -40,7 +40,7 @@ public class PartnerQualificationController extends BaseController {
     /**
      * 查询伙伴商资质列表
      */
-    @SaCheckPermission("customer:partnerInfo:list")
+    @SaCheckPermission("customer:partnerQualification:list")
     @GetMapping("/list")
     public TableDataInfo<PartnerQualificationVo> list(PartnerQualificationBo bo, PageQuery pageQuery) {
         return partnerQualificationService.queryPageList(bo, pageQuery);

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/PartnerWarehouseController.java

@@ -40,7 +40,7 @@ public class PartnerWarehouseController extends BaseController {
     /**
      * 查询伙伴商仓库列表
      */
-    @SaCheckPermission("customer:partnerInfo:list")
+    @SaCheckPermission("customer:partnerWarehouse:list")
     @GetMapping("/list")
     public TableDataInfo<PartnerWarehouseVo> list(PartnerWarehouseBo bo, PageQuery pageQuery) {
         return partnerWarehouseService.queryPageList(bo, pageQuery);

+ 7 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/IPartnerInfoService.java

@@ -67,4 +67,11 @@ public interface IPartnerInfoService extends IService<PartnerInfo>{
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    /**
+     * 获取当前登录用户的伙伴商信息
+     *
+     * @return 伙伴商基本信息
+     */
+    PartnerInfoVo queryCurrentPartnerInfo();
 }

+ 21 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/PartnerInfoServiceImpl.java

@@ -14,8 +14,11 @@ import org.springframework.stereotype.Service;
 import org.dromara.customer.domain.bo.PartnerInfoBo;
 import org.dromara.customer.domain.vo.PartnerInfoVo;
 import org.dromara.customer.domain.PartnerInfo;
+import org.dromara.customer.domain.PartnerUser;
 import org.dromara.customer.mapper.PartnerInfoMapper;
+import org.dromara.customer.mapper.PartnerUserMapper;
 import org.dromara.customer.service.IPartnerInfoService;
+import org.dromara.common.satoken.utils.LoginHelper;
 
 import java.util.List;
 import java.util.Map;
@@ -33,6 +36,7 @@ import java.util.Collection;
 public class PartnerInfoServiceImpl  extends ServiceImpl<PartnerInfoMapper, PartnerInfo> implements IPartnerInfoService {
 
     private final PartnerInfoMapper baseMapper;
+    private final PartnerUserMapper partnerUserMapper;
 
     /**
      * 查询伙伴商基本信息
@@ -140,4 +144,21 @@ public class PartnerInfoServiceImpl  extends ServiceImpl<PartnerInfoMapper, Part
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    /**
+     * 获取当前登录用户的伙伴商信息
+     *
+     * @return 伙伴商基本信息
+     */
+    @Override
+    public PartnerInfoVo queryCurrentPartnerInfo() {
+        Long userId = LoginHelper.getUserId();
+        LambdaQueryWrapper<PartnerUser> wrapper = Wrappers.lambdaQuery();
+        wrapper.eq(PartnerUser::getSysUserId, userId);
+        PartnerUser partnerUser = partnerUserMapper.selectOne(wrapper);
+        if (partnerUser == null) {
+            return null;
+        }
+        return baseMapper.selectVoById(partnerUser.getPartnerId());
+    }
 }

+ 3 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/PartnerUserServiceImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.customer.service.impl;
 
+import cn.hutool.crypto.digest.BCrypt;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -111,7 +112,7 @@ public class PartnerUserServiceImpl  extends ServiceImpl<PartnerUserMapper, Part
             // 调用远程服务创建系统用户
             RemoteUserBo remoteUserBo = new RemoteUserBo();
             remoteUserBo.setUserName(bo.getLoginUser());
-            remoteUserBo.setPassword(bo.getPassword());
+            remoteUserBo.setPassword(BCrypt.hashpw(bo.getPassword()));
             remoteUserBo.setPhonenumber(bo.getPhone());
             remoteUserBo.setEmail(bo.getEmail());
             remoteUserBo.setNickName(bo.getName());
@@ -119,6 +120,7 @@ public class PartnerUserServiceImpl  extends ServiceImpl<PartnerUserMapper, Part
             remoteUserBo.setUserSonType("2"); // 2=伙伴商
             remoteUserBo.setStatus(StringUtils.isNotBlank(bo.getStatus()) ? bo.getStatus() : "0");
             remoteUserBo.setRemark(bo.getRemark());
+            remoteUserBo.setPlatformCode("bp"); // 设置平台代码为bp,用于伙伴商协同平台登录
 
             // 调用远程服务新增用户
             Long sysUserId = remoteUserService.addUser(remoteUserBo);

+ 5 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java

@@ -319,10 +319,13 @@ public class SysUserServiceImpl implements ISysUserService {
        // 1. 校验当前是否为总控平台(main),否则不能指定 platformCode
         String currentPlatform = PlatformContext.getPlatform();
         String targetPlatform = currentPlatform;
-        if (SysPlatformCode.MAIN.getCode().equals(currentPlatform)) {
+        // 如果传入了 platformCode,优先使用传入的值
+        if (StringUtils.isNotBlank(user.getPlatformCode())) {
+            targetPlatform = user.getPlatformCode();
+        } else if (SysPlatformCode.MAIN.getCode().equals(currentPlatform)) {
             targetPlatform = user.getPlatformCode();
         }
-        //在 "main" 平台上下文中执行插入,并获取返回值
+        //在指定平台上下文中执行插入,并获取返回值
         Integer rows = PlatformContextUtil.executeWithPlatform(targetPlatform, () -> {
             return baseMapper.insert(sysUser); // MyBatis-Plus insert 返回 int(实际是 Integer)
         });