Gqingci před 1 dnem
rodič
revize
7c31d0fec8

+ 1 - 1
ruoyi-common/ruoyi-common-tenant/src/main/java/org/dromara/common/tenant/manager/TenantSpringCacheManager.java

@@ -29,7 +29,7 @@ public class TenantSpringCacheManager extends PlusSpringCacheManager {
         }
         String tenantId = TenantHelper.getTenantId();
         if (StringUtils.isBlank(tenantId)) {
-            log.error("无法获取有效的租户id -> Null");
+            return super.getCache(name);
         }
         if (StringUtils.startsWith(name, tenantId)) {
             // 如果存在则直接返回

+ 47 - 0
ruoyi-modules/ruoyi-main/src/main/java/org/dromara/main/controller/PortalNoticeController.java

@@ -0,0 +1,47 @@
+package org.dromara.main.controller;
+
+import cn.dev33.satoken.annotation.SaIgnore;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.system.domain.bo.SysNoticeBo;
+import org.dromara.system.domain.vo.SysNoticeVo;
+import org.dromara.system.service.ISysNoticeService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 门户公告接口
+ */
+@SaIgnore
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/portal/notice")
+public class PortalNoticeController extends BaseController {
+
+    private final ISysNoticeService noticeService;
+
+    /**
+     * 根据标题获取公告内容
+     *
+     * @param noticeTitle 公告标题
+     */
+    @GetMapping("/getNoticeByTitle")
+    public R<SysNoticeVo> getNoticeByTitle(String noticeTitle) {
+        SysNoticeBo bo = new SysNoticeBo();
+        bo.setNoticeTitle(noticeTitle);
+        List<SysNoticeVo> list = noticeService.selectNoticeList(bo);
+        // 精准匹配标题,如果有多条取第一条
+        if (list != null && !list.isEmpty()) {
+            for (SysNoticeVo notice : list) {
+                if (noticeTitle.equals(notice.getNoticeTitle())) {
+                    return R.ok(notice);
+                }
+            }
+        }
+        return R.ok();
+    }
+}

+ 1 - 1
ruoyi-modules/ruoyi-main/src/main/java/org/dromara/main/service/impl/MainAuditServiceImpl.java

@@ -174,7 +174,7 @@ public class MainAuditServiceImpl implements IMainAuditService {
 
         // 必需字段:创建系统用户的用户名和密码
         tenantBo.setUsername(companyApply.getMobile()); // 使用手机号作为用户名
-        tenantBo.setPassword(companyApply.getPassword());
+        tenantBo.setEncodedPassword(companyApply.getPassword());
         tenantBo.setEmail(companyApply.getOfficialAccount()); // 设置邮箱
 
         // 4. 创建租户

+ 2 - 1
ruoyi-modules/ruoyi-main/src/main/java/org/dromara/main/service/impl/MainCompanyApplyServiceImpl.java

@@ -2,6 +2,7 @@ package org.dromara.main.service.impl;
 
 import cn.hutool.core.util.RandomUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.crypto.digest.BCrypt;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -135,7 +136,7 @@ public class MainCompanyApplyServiceImpl implements IMainCompanyApplyService {
         apply.setSurname(bo.getSurname());
         apply.setName(bo.getName());
         apply.setMobile(bo.getMobile());
-        apply.setPassword(bo.getPassword());
+        apply.setPassword(BCrypt.hashpw(bo.getPassword()));
         apply.setApplyStatus(0);
         apply.setAuthLetter(parseFirstOssId(bo.getAuthLetter()));
         apply.setAvatar(parseFirstOssId(bo.getAvatar()));

+ 5 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/bo/SysTenantBo.java

@@ -68,6 +68,11 @@ public class SysTenantBo extends BaseEntity {
 //    @Pattern(regexp = RegexConstants.PASSWORD, message = "{user.password.format.valid}", groups = { AddGroup.class })
     private String password;
 
+    /**
+     * 已加密密码(内部流转用)
+     */
+    private String encodedPassword;
+
     /**
      * 统一社会信用代码
      */

+ 10 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java

@@ -176,7 +176,7 @@ public class SysTenantServiceImpl implements ISysTenantService {
         user.setTenantId(tenantId);
         user.setUserName(bo.getUsername());
         user.setNickName(bo.getContactUserName());
-        user.setPassword(BCrypt.hashpw(bo.getPassword()));
+        user.setPassword(resolveUserPassword(bo));
         user.setAvatar(bo.getAvatar());
         user.setDeptId(deptId);
         user.setPlatformId(Platform.MERCHANT.getId());
@@ -322,6 +322,8 @@ public class SysTenantServiceImpl implements ISysTenantService {
         // 只有当密码不为空时才更新密码,并进行加密
         if (StringUtils.isNotBlank(bo.getPassword())) {
             user.setPassword(BCrypt.hashpw(bo.getPassword()));
+        } else if (StringUtils.isNotBlank(bo.getEncodedPassword())) {
+            user.setPassword(bo.getEncodedPassword());
         }
 
         boolean userUpdated = userMapper.updateById(user) > 0;
@@ -329,6 +331,13 @@ public class SysTenantServiceImpl implements ISysTenantService {
         return tenantUpdated && userUpdated;
     }
 
+    private String resolveUserPassword(SysTenantBo bo) {
+        if (StringUtils.isNotBlank(bo.getEncodedPassword())) {
+            return bo.getEncodedPassword();
+        }
+        return BCrypt.hashpw(bo.getPassword());
+    }
+
     /**
      * 修改租户状态
      *